[0024]概して、本開示では、マルチレイヤビデオコーディングにおける復号ピクチャの管理のための技法について説明し、ここにおいて、異なるレイヤが異なる空間解像度を有し得る。本開示のコンテキストでは、レイヤは、スケーラブルビデオコーディングプロセス(たとえば、H.264/SVC、または新生の高効率ビデオコーディング(HEVC)規格のスケーラブル拡張)におけるレイヤ、マルチビューまたは3Dビデオコーディングにおけるテクスチャビュー、あるいは3Dビデオコーディングにおける深度ビューであり得る。別の例として、レイヤは、テクスチャビューコンポーネントと深度ビューコンポーネントの両方を含むシングルビューに対応し得る。したがって、「レイヤ」という用語は、本開示では、概して、SVCの意味ではレイヤを指し、MVCの意味ではビューを指すために使用され得る。本開示の技法は、マルチビュー拡張、3Dビデオ拡張、ならびにHEVCおよびH.264/AVCのスケーラブル拡張を含む、そのようなビデオコーディングシナリオに適用され得る。
[0025]以下で説明する技法は、深度マップを用いたピクチャの2つ以上のビューのコーディングを含む、アドバンストコーデックに基づく、スケーラブル、マルチビューおよび3Dビデオコーディングに適用され得る。ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびそれのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含む。さらに、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって現在開発されている。HEVCの最近のWDは、JCTVC−K1003、「High Efficiency Video Coding (HEVC) text specification draft 9」、第11回会議:上海、中国、2012年10月10〜19日に記載されており、2012年12月17日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v12.zipにおいてダウンロードのために利用可能であり、その内容全体は参照により本明細書に組み込まれる。
[0026]HEVCのより最近のドラフトは、ITU−T H.265、SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS、Infrastructure of Audiovisual Services−Coding of Moving Video、「High Efficiency Video Coding」、2013年4月(以下、「HEVC」)に記載されている。HEVCは、その全体が参照により本明細書に組み込まれる。HEVCに対する様々な拡張が提案されている。1つのそのような拡張はHEVC範囲拡張であり、HEVC範囲拡張は、「High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 4」、JCTVC−N1005_v1、2013年4月(以下、「JCTVC−N1005」)に記載されている。「High efficiency video coding (HEVC) scalable extension draft 3」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC:Joint Collaborative Team on Video Coding)、第14回会議:ウィーン、オーストリア、2013年7月25日〜8月2日と題し、以下でSHEVC WD3と呼ばれる、スケーラブルHEVC(SHEVC)の最近のワーキングドラフト(WD)は、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1008-v3.zipから利用可能であり、その内容全体は参照により本明細書に組み込まれる。
[0027]復号ピクチャバッファ(DPB)管理のための現在のソリューションは、同じ解像度をもつ異なるレイヤが記憶される状況のみを対象とする。すなわち、DPB管理のための現在の技法は、各レイヤが同数のピクセル(すなわち、解像度)を含むと仮定し、それにより、レイヤが異なる数のピクセルを有するときに非効率が生じる。この欠点に鑑みて、本開示では、異なる解像度をもつ複数の復号レイヤコンポーネントが記憶される必要があるときのDPB管理のための様々な方法および技法について説明する。
[0028]図1は、本開示で説明するマルチレイヤビデオコーディングにおける復号ピクチャバッファ管理のための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0029]宛先デバイス14は、リンク16を介して復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0030]代替的に、符号化データは、出力インターフェース22からストレージデバイス34に出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイス34からアクセスされ得る。ストレージデバイス34は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス34は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス34から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイス34からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
[0031]マルチレイヤビデオ復号における復号ピクチャバッファ管理のための本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0032]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
[0033]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス34上に記憶され得る。
[0034]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、またはストレージデバイス34上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30など、ビデオデコーダが使用するためのビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
[0035]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0036]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM:HEVC Test Model)に準拠し得る。特に、いくつかの例では、ビデオエンコーダ20およびビデオデコーダは、マルチビュー、またはマルチビュー+深度ビデオコーディングをサポートする、HEVCの拡張に従って動作し得る。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいは、H.264/SVCを含む、そのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、MPEG−2およびITU−T H.263がある。特に、本開示の技法によれば、ビデオエンコーダ20およびビデオデコーダ30は、3DVおよび/またはマルチビュー符号化が可能なビデオコーディング規格(たとえば、3D−HEVC、H.264/MVCなど)に従って動作し得る。
[0037]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0038]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0039]本開示の以下のセクションでは、HEVC規格の背景を与える。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを与えるが、HMは33個ものイントラ予測符号化モードを与え得る。
[0040]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)に分割され得ることを記載している。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
[0041]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)とを含む。CUのサイズは、概して、コーディングノードのサイズに対応し、一般に、形状が方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルをもつツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含んでいることがある。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。PUは、形状が非方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形であり得る。
[0042]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
[0043]概して、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、予測方向によって示され得る、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0044]概して、TUは、変換プロセスと量子化プロセスとのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)をも含み得る。予測に続いて、ビデオエンコーダ20は、PUに従ってコーディングノードによって識別されたビデオブロックから残差値を計算し得る。コーディングノードは、次いで、元のビデオブロックではなく、残差値を参照するように更新される。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化変換係数(serialized transform coefficient)を生成するためにTU中で指定された変換および他の変換情報を使用して変換係数に変換され、量子化され、走査され得る。コーディングノードは、これらのシリアル化変換係数を参照するように、もう一度更新され得る。本開示では、一般に、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードならびにPUおよびTUを含む、ツリーブロック、すなわち、LCUまたはCUを指す「ビデオブロック」という用語をも使用し得る。
[0045]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP:group of picture)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
[0046]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0047]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、ただし、Nは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。
[0048]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ20は、CUのTUによって指定された変換が適用される残差データを計算し得る。残差データは、符号化されていないピクチャのピクセルと、CUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを形成し、次いで、残差データを変換して、変換係数を生成し得る。
[0049]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
[0050]いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0051]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0052]また、HEVC拡張がJCT−3VおよびJCT−VCにおいて現在開発中である。JCT−3Vでは、2つのHEVC拡張、マルチビュー拡張(MV−HEVC)と3Dビデオ拡張(3D−HEVC)とが開発されている。さらに、2つのAVC拡張、MVC+Dと3D−AVCとが開発されている。
[0053]進行中の規格の最新のバージョンは次のように記載されている。
− http://phenix.int-evry.fr/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V-C1001-v3.zipにおいて利用可能である、T.Suzuki、M.M.Hannuksela、Y.Chen、S.Hattori、G.Sullivan、「MVC Extension for Inclusion of Depth Maps Draft Text 6」、JCT3V−C1001、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオン3Dビデオコーディング拡張開発、第4回会議。
− http://phenix.int-evry.fr/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1002-v3.zipにおいて利用可能である、M.M.Hannuksela、Y.Chen、T.Suzuki、J.−R.Ohm、G.Sullivan、「3D-AVC Draft Text 8」、JCT3V−F1002、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオン3Dビデオコーディング拡張開発、第6回会議。
− http://phenix.int-evry.fr/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1004-v6.zipにおいて利用可能である、JCT3V−F1004、「MV-HEVC Draft Text 6」、G.Tech、K.Wegner、Y.Chen、M.Hannuksela、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオン3Dビデオコーディング拡張開発、第6回会議。
− http://phenix.int-evry.fr/jct2/doc_end_user/documents/6_Geneva/wg11/JCT3V-F1001-v2において利用可能である、Gerhard Tech、Krzysztof Wenger、Ying Chen、Sehoon Yea、「3D-HEVC Draft Text 2」、JCT3V−F1001、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオン3Dビデオコーディング拡張開発、第6回会議。
[0054]次に、H.264/アドバンストビデオコーディング(AVC)規格の拡張のマルチビュービデオコーディング技法について説明する。ただし、本開示の技法は、新生のHEVC規格(たとえば、マルチビューHEVCおよび3D−HEVC)のためのマルチビューコーディングおよび/または3Dコーディングマルチビュー提案をサポートする任意のビデオコーディング規格とともに適用可能であり得る。
[0055]マルチビュービデオコーディング(MVC)はH.264/AVCの拡張である。典型的なMVC復号順序(すなわち、ビットストリーム順序)を図2に示す。復号順序構成は時間優先(time-first)コーディングと呼ばれる。アクセスユニットの復号順序は出力または表示の順序と同じでないことがあることに留意されたい。図2では、S0〜S7はそれぞれ、マルチビュービデオの異なるビューを指す。T0〜T8はそれぞれ、1つの出力時間インスタンスを表す。アクセスユニットは、1つの出力時間インスタンスについてのすべてのビューのコード化ピクチャを含み得る。たとえば、第1のアクセスユニットは時間インスタンスT0についてのビューS0〜S7のすべてを含み得、第2のアクセスユニットは時間インスタンスT1についてのビューS0〜S7のすべてを含み得、以下同様である。
[0056]簡潔のために、本開示では、以下の定義を使用し得る。
ビューコンポーネント:単一のアクセスユニット中のビューのコード化表現。ビューがコード化テクスチャ表現とコード化深度表現の両方を含むとき、ビューコンポーネントは、テクスチャビューコンポーネントと深度ビューコンポーネントとを含み得る。
テクスチャビューコンポーネント:単一のアクセスユニット中のビューのテクスチャのコード化表現。
深度ビューコンポーネント:単一のアクセスユニット中のビューの深度のコード化表現。
[0057]上記で説明したように、本開示のコンテキストでは、ビューコンポーネント、テクスチャビューコンポーネント、および深度バイドコンポーネントは一般にレイヤと呼ばれることがある。図2では、ビューの各々はピクチャのセットを含む。たとえば、ビューS0はピクチャ0、8、16、24、32、40、48、56、および64のセットを含み、ビューS1はピクチャ1、9、17、25、33、41、49、57、および65のセットを含み、以下同様である。各セットは2つのピクチャを含み、一方のピクチャはテクスチャビューコンポーネントと呼ばれ、他方のピクチャは深度ビューコンポーネントと呼ばれる。ビューのピクチャのセット内のテクスチャビューコンポーネントと深度ビューコンポーネントは、互いに対応すると見なされ得る。たとえば、ビューのピクチャのセット内のテクスチャビューコンポーネントは、そのビューのピクチャのセット内の深度ビューコンポーネントに対応すると見なされ、その逆も同様である(すなわち、深度ビューコンポーネントはセット中のそれのテクスチャビューコンポーネントに対応し、その逆も同様である)。本開示で使用する、深度ビューコンポーネントに対応するテクスチャビューコンポーネントは、単一のアクセスユニットの同じビューの一部であるテクスチャビューコンポーネントおよび深度ビューコンポーネントと見なされ得る。
[0058]テクスチャビューコンポーネントは、表示される実際の画像コンテンツを含む。たとえば、テクスチャビューコンポーネントは、ルーマ(Y)成分と、クロマ(CbおよびCr)成分とを含み得る。深度ビューコンポーネントは、それの対応するテクスチャビューコンポーネント中のピクセルの相対深度を示し得る。一例として、深度ビューコンポーネントは、ルーマ値のみを含むグレースケール画像である。言い換えれば、深度ビューコンポーネントは、画像コンテンツを搬送するのではなく、テクスチャビューコンポーネント中のピクセルの相対深度の測度を与え得る。
[0059]たとえば、深度ビューコンポーネント中の純白のピクセルは、対応するテクスチャビューコンポーネント中のそれの対応する1つまたは複数のピクセルが閲覧者から見てより近いことを示し、深度ビューコンポーネント中の純黒のピクセルは、対応するテクスチャビューコンポーネント中のそれの対応する1つまたは複数のピクセルが閲覧者から見てより遠いことを示す。黒と白との中間にあるグレーの様々な色合いは、様々な深度レベルを示す。たとえば、深度ビューコンポーネント中の濃いグレーのピクセルは、テクスチャビューコンポーネント中のそれの対応するピクセルが、深度ビューコンポーネント中のより薄いグレーのピクセルよりも遠いことを示す。ピクセルの深度を識別するためにグレースケールのみが必要とされるので、深度ビューコンポーネントの色値がいかなる目的も果たし得ないことから、深度ビューコンポーネントはクロマ成分を含む必要がない。
[0060]深度を識別するためにルーマ値(たとえば、強度値)のみを使用する深度ビューコンポーネントが説明のために与えられ、限定するものと見なされるべきではない。他の例では、テクスチャビューコンポーネント中のピクセルの相対深度を示すために任意の技法が利用され得る。
[0061]マルチビュービデオコーディングのための(各ビュー内のピクチャ間予測とビュー間予測の両方を含む)典型的なMVC予測構造を図3に示す。予測方向は矢印によって示され、矢印の終点のオブジェクトは、予測参照として矢印の始点のオブジェクトを使用する。MVCでは、H.264/AVC動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることを可能にするディスパリティ(disparity)動き補償により、ビュー間予測がサポートされる。
[0062]図3の例では、(ビューID「S0」〜「S5」を有する)6つのビューが示され、各ビューについて12個の時間ロケーション(「T0」〜「T11」)が示されている。すなわち、図3中の各行はビューに対応し、各列は時間ロケーションを示す。
[0063]MVCがH.264/AVCデコーダによって復号可能である、いわゆるベースビューを有し、また、ステレオビューペアがMVCによってサポートされ得るが、MVCの利点は、MVCが、3Dビデオ入力として3つ以上のビューを使用し、複数のビューによって表されるこの3Dビデオを復号する例をサポートすることができることである。MVCデコーダを有するクライアントのレンダラ(renderer)は、複数のビューをもつ3Dビデオコンテンツを予想し得る。
[0064]図3中のピクチャは、各行と各列との交点に示されている。H.264/AVC規格は、ビデオの一部分を表すためにフレームという用語を使用し得る。本開示では、ピクチャという用語とフレームという用語とを互換的に使用し得る。
[0065]図3中のピクチャは、対応するピクチャがイントラコーディングされる(すなわち、Iピクチャである)か、あるいは一方向に(すなわち、Pピクチャとして)または複数の方向に(すなわち、Bピクチャとして)インターコーディングされるかを指定する、文字を含むブロックを使用して示されている。概して、予測は矢印によって示され、ここで矢印の終点のピクチャは、予測参照のために矢印の始点のピクチャを使用する。たとえば、時間ロケーションT0にあるビューS2のPピクチャは、時間ロケーションT0にあるビューS0のIピクチャから予測される。
[0066]シングルビュービデオ符号化の場合と同様に、マルチビュービデオコーディングビデオシーケンスのピクチャは、異なる時間ロケーションにあるピクチャに対して予測符号化され得る。たとえば、時間ロケーションT1にあるビューS0のbピクチャは、時間ロケーションT0にあるビューS0のIピクチャからそのbピクチャに向けられた矢印を有し、その矢印は、bピクチャがIピクチャから予測されることを示す。しかしながら、さらに、マルチビュービデオ符号化のコンテキストにおいて、ピクチャはビュー間予測され得る。すなわち、ビューコンポーネントは、参照のために他のビュー中のビューコンポーネントを使用することができる。MVCでは、たとえば、別のビュー中のビューコンポーネントがインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット(SPS)MVC拡張においてシグナリングされ、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。ビュー間予測は、3D−HEVC(マルチビュー+深度)を含むHEVCの提案されたマルチビュー拡張の機能でもある。
[0067]図3は、ビュー間予測の様々な例を与える。図3の例では、ビューS1のピクチャは、ビューS1の異なる時間ロケーションにあるピクチャから予測されるものとして、ならびに同じ時間ロケーションにあるビューS0およびS2のピクチャからビュー間予測されるものとして示されている。たとえば、時間ロケーションT1にあるビューS1のbピクチャは、時間ロケーションT0およびT2にあるビューS1のBピクチャの各々、ならびに時間ロケーションT1にあるビューS0およびビューS2のbピクチャから予測される。
[0068]いくつかの例では、図3は、テクスチャビューコンポーネントを示すものとして見られ得る。たとえば、図2に示されたIピクチャ、Pピクチャ、Bピクチャ、およびbピクチャは、ビューの各々のためのテクスチャビューコンポーネントと見なされ得る。本開示で説明する技法によれば、図3に示されているテクスチャビューコンポーネントの各々について、対応する深度ビューコンポーネントがある。いくつかの例では、深度ビューコンポーネントは、対応するテクスチャビューコンポーネントについて図3に示されている方式と同様の方式で予測され得る。
[0069]2つのビューのコーディングもMVCによってサポートされ得る。MVCの利点のうちの1つは、MVCエンコーダが3Dビデオ入力として3つ以上のビューをとり得、MVCデコーダがそのようなマルチビュー表現を復号し得ることである。したがって、MVCデコーダをもつどんなレンダラも、3つ以上のビューをもつ3Dビデオコンテンツを復号し得る。
[0070]上記で説明したように、MVCでは、(いくつかの事例では、同じ時間インスタンスをもつことを意味する)同じアクセスユニット中のピクチャ間でビュー間予測が可能になる。非ベースビューのうちの1つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンス内にある場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測の参照ピクチャは、任意のインター予測の参照ピクチャとまったく同様に、参照ピクチャリストの任意の位置に置かれ得る。図3に示されているように、ビューコンポーネントは、参照のために他のビュー中のビューコンポーネントを使用することができる。MVCでは、別のビュー中のビューコンポーネントがインター予測参照であるかのように、ビュー間予測が実現される。
[0071]MVCでは、同じアクセスユニット中の(すなわち、同じ時間インスタンスをもつ)ピクチャ間でビュー間予測が可能になる。非ベースビューのうちの1つ中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンスをもつ場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測参照ピクチャは、任意のインター予測参照ピクチャとまったく同様に、参照ピクチャリストの任意の位置に置かれ得る。
[0072]図3に示されているように、ビューコンポーネントは、参照のために他のビュー中のビューコンポーネントを使用することができる。これはビュー間予測と呼ばれる。MVCでは、別のビュー中のビューコンポーネントがインター予測の参照であるかのように、ビュー間予測が実現される。しかしながら、潜在的なビュー間参照は、(表1に示すように)シーケンスパラメータセット(SPS)MVC拡張においてシグナリングされ、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
[0074]SPS MVC拡張では、ビューごとに、参照ピクチャリスト0と参照ピクチャリスト1とを形成するために使用され得るビューの数がシグナリングされる。SPS MVC拡張においてシグナリングされるアンカーピクチャについての予測関係は、同じビューの(SPS MVC拡張においてシグナリングされる)非アンカーピクチャについての予測関係とは異なり得る。
[0075]次のセクションでは、HEVCに関するマルチビューおよび3Dビデオコーディングについて説明する。特に、本開示の例示的な技法は、各々がテクスチャビューコンポーネントと深度ビューコンポーネントとをもつ、2つ以上のビューをコーディングするときに適用可能である。各ビューについての複数のビデオピクチャはテクスチャビューコンポーネントと呼ばれることがある。各テクスチャビューコンポーネントは、対応する深度ビューコンポーネントを有する。テクスチャビューコンポーネントはビデオコンテンツ(たとえば、ピクセル値のルーマ成分およびクロマ成分)を含み、深度ビューコンポーネントはテクスチャビューコンポーネント内のピクセルの相対深度を示し得る。
[0076]本開示の技法は、テクスチャデータと深度データとをコーディングすることによって3Dビデオデータをコーディングすることに関する。概して、「テクスチャ」という用語は、画像のルミナンス(すなわち、輝度または「ルーマ」)値と画像のクロミナンス(すなわち、色または「クロマ」)値とを説明するために使用される。いくつかの例では、テクスチャ画像は、1セットのルミナンスデータと、青色相(Cb)および赤色相(Cr)のための2セットのクロミナンスデータとを含み得る。4:2:2または4:2:0などの特定のクロマフォーマットでは、クロマデータは、ルーマデータに関してダウンサンプリングされる。すなわち、クロミナンス成分の空間解像度は、対応するルミナンス成分の空間解像度よりも低く、たとえば、ルミナンス解像度の1/2または1/4である。
[0077]深度データは、概して、対応するテクスチャデータの深度値を表す。たとえば、深度画像は、各々が対応するテクスチャデータの深度を表す深度ピクセルのセットを含み得る。深度データは、対応するテクスチャデータの水平ディスパリティを決定するために使用され得る。したがって、テクスチャデータと深度データとを受信するデバイスは、一方のビュー(たとえば、左眼ビュー)のための第1のテクスチャ画像を表示し、深度値に基づいて決定された水平ディスパリティ値だけ第1の画像のピクセル値をオフセットすることによって、他方のビュー(たとえば、右眼ビュー)のための第2のテクスチャ画像を生成するように第1のテクスチャ画像を変更するために深度データを使用し得る。概して、水平ディスパリティ(または単に「ディスパリティ」)は、第2のビュー中の対応するピクセルに対する第1のビュー中のピクセルの水平空間オフセットを表し、2つのピクセルは、2つのビュー中で表される同じオブジェクトの同じ部分に対応する。
[0078]さらに他の例では、画像について定義されたゼロディスパリティ平面に対して所与のピクセルに関連する深度が定義されるように、画像平面に直交するz次元におけるピクセルについて深度データが定義され得る。そのような深度は、ピクセルを表示するための水平ディスパリティを作成するために使用され得、その結果として、ピクセルは、ゼロディスパリティ平面に対するピクセルのz次元深度値に応じて、左眼と右眼とで異なるように表示される。ゼロディスパリティ平面は、ビデオシーケンスの異なる部分に対して変化し得、ゼロディスパリティ平面に対する深度の量も変化し得る。ゼロディスパリティ平面上に位置するピクセルは、左眼と右眼とに対して同様に定義され得る。ゼロディスパリティ平面の前に位置するピクセルは、ピクセルが画像平面に直交するz方向の画像から出てくるように見える知覚を作成するように、(たとえば、水平ディスパリティを用いて)左眼と右眼とに対して異なるロケーションで表示され得る。ゼロディスパリティ平面の後に位置するピクセルは、深度のわずかな知覚を提示するために、わずかなぼかしとともに表示され得るか、または(たとえば、ゼロディスパリティ平面の前に位置するピクセルの水平ディスパリティとは反対の水平ディスパリティを用いて)左眼と右眼とに対して異なるロケーションで表示され得る。他の多くの技法も、画像の深度データを伝達または定義するために使用され得る。
[0079]深度ビューコンポーネント中の各ピクセルについて、テクスチャビューコンポーネント中の1つまたは複数の対応するピクセルがあり得る。たとえば、深度ビューコンポーネントの空間解像度とテクスチャビューコンポーネントの空間解像度が同じである場合、深度ビューコンポーネント中の各ピクセルはテクスチャビューコンポーネント中の1つのピクセルに対応する。深度ビューコンポーネントの空間解像度がテクスチャビューコンポーネントの空間解像度よりも小さい場合、深度ビューコンポーネント中の各ピクセルは、テクスチャビューコンポーネント中の複数のピクセルに対応する。深度ビューコンポーネント中のピクセルの値は、テクスチャビュー中の対応する1つまたは複数のピクセルの相対深度を示し得る。
[0080]いくつかの例では、ビデオエンコーダは、ビューの各々についてのテクスチャビューコンポーネントと対応する深度ビューコンポーネントとのビデオデータをシグナリングする。ビデオデコーダは、テクスチャビューコンポーネントと深度ビューコンポーネントとの両方のビデオデータを利用して、表示のためにビューのビデオコンテンツを復号する。次いで、ディスプレイは、マルチビュービデオを表示して、3Dビデオを生成する。
[0081]また、HEVCのスケーラブル拡張がJCT−VCによって開発されている。図4は、スケーラブルビデオコーディングの一例を示す概念図である。図4について、H.264/AVCおよびSVCに関して説明するが、同様のレイヤは、HEVCのスケーラブル拡張を含む、他のマルチレイヤビデオコーディング方式を請いながらコーディングされ得ることを理解されたい。図4の例は、同じコーデックを使用してコーディングされるレイヤを示す。他の例では、レイヤは、マルチスタンダードコーデックを使用してコーディングされ得る。たとえば、ベースレイヤは、H.264/AVCを使用してコーディングされ得るが、エンハンスメントレイヤは、HEVCに対するスケーラブル拡張を使用してコーディングされ得る。したがって、以下のSVCへの参照は、概してスケーラブルビデオコーディングに適用され得、H.264/SVCに限定されない。
[0082]SVCでは、スケーラビリティは、(ビットレートまたは信号対雑音比(SNR)として表される)たとえば、空間、時間、品質を含む3次元において可能になり得る。概して、通常、任意の次元における表現を追加することによって、より良い表現が達成され得る。たとえば、図4の例では、レイヤ0は、7.5Hzのフレームレートと64キロバイト毎秒(KBPS)のビットレートとを有する1/4共通中間フォーマット(QCIF:Quarter Common Intermediate Format)においてコーディングされる。さらに、レイヤ1は、15Hzのフレームレートと64KBPSのビットレートとを有するQCIFにおいてコーディングされ、レイヤ2は、15Hzのフレームレートと256KBPSのビットレートとを有するCIFにおいてコーディングされ、レイヤ3は、7.5Hzのフレームレートと512KBPSのビットレートとを有するQCIFにおいてコーディングされ、レイヤ4は、30Hzのフレームレートとメガバイト毎秒(MBPS)のビットレートとを有する4CIFにおいてコーディングされる。図4に示されているレイヤの特定の数、コンテンツおよび構成は例として与えたものにすぎないことを理解されたい。
[0083]いずれの場合も、ビデオエンコーダ(ビデオエンコーダ20など)がそのようなスケーラブルな方法でコンテンツを符号化すると、ビデオデコーダ(ビデオデコーダ30など)は、抽出器ツールを使用して、たとえば、クライアントまたは送信チャネルに依存し得るアプリケーション要件に従って実際の配信されたコンテンツを適応させ得る。
[0084]SVCでは、最低空間と品質レイヤとを有するピクチャは、通常、H.264/AVCに適合する。図4の例では、最低空間と品質レイヤとをもつピクチャ(QCIF解像度をもつ、レイヤ0およびレイヤ1中のピクチャ)は、H.264/AVCに適合し得る。それらの中で、最低時間レベルのピクチャは時間ベースレイヤ(レイヤ0)を形成する。この時間ベースレイヤ(レイヤ0)は、より高い時間レベル(レイヤ1)のピクチャを用いて拡張され得る。
[0085]H.264/AVC適合レイヤに加えて、空間スケーラビリティおよび/または品質スケーラビリティを実現するために、いくつかの空間エンハンスメントレイヤおよび/または品質エンハンスメントレイヤが追加され得る。各空間または品質エンハンスメントレイヤ自体は、H.264/AVC適合レイヤと同じ時間スケーラビリティ構造で、時間的にスケーラブルになり得る。
[0086]レイヤの各々が、たとえば、ビデオデコーダ30、またはビデオエンコーダ20の再構成ループによって復号されると、復号レイヤはDPBに記憶される。DPBは、ピクチャ、および、本開示の例では、マルチレイヤビデオコーディング技法を使用するときのレイヤまたは復号ピクチャを記憶するために使用されるバッファまたはメモリである。DPBに記憶された復号レイヤは、出力並べ替え、および出力遅延のために、(動き補償、ビュー間予測およびレイヤ間予測を含む)インター予測のための参照として使用され得る。HEVC、および他のビデオコーディング規格では、DPBの動作は、しばしば、仮想参照デコーダ(HRD:hypothetical reference decoder)に関して指定される。ビデオエンコーダ20およびビデオデコーダ30は、DPBに記憶された復号ピクチャを、参照のために使用されない(すなわち、インター予測プロセスのために参照ピクチャを使用されることができない)とマークすることと、(たとえば、ディスプレイデバイス32への)出力のために復号ピクチャをマークすることと、(バンピングとも呼ばれる)DPBからの削除のためにピクチャをマークすることとを含む、様々なアクションを実行するためにDPBを管理するように構成され得る。ピクチャは、一般に、それが、インター予測のために参照ピクチャとしてもはや必要とされず、出力のためにnより長く必要とされるとき、DPBから削除される(すなわち、バンプされる)。
[0087]スケーラブル、マルチビュー、または3Dビデオコーディング技法を使用してコーディングするかにかかわらず、異なるレイヤ、テクスチャビュー、および/または深度ビューは異なる空間解像度を有し得る。すなわち、異なるレイヤまたはビューのコンポーネント(たとえば、ピクチャまたは深度マップに対応する、ビューコンポーネントまたはレイヤコンポーネント)は異なる空間解像度を有し得る。既存のDPB管理技法では、出力関係動作は、各ビューまたはレイヤについて別個に実行される。これは、各ビューについて、制約または整合が適用され得るが、(1つのレイヤ/ビューの)参照ピクチャの出力または削除のためのマーキングが別個に行われることを意味する。
[0088]一般性の喪失なしに、本開示では、1つのアクセスユニットの復号レイヤ表現または復号テクスチャ/深度ビューコンポーネントをアクセスユニットの復号レイヤコンポーネントとも呼ぶ。異なるレイヤ中で複数の空間解像度を伴うマルチレイヤビデオコーディングでは、特にマルチループ復号が適用されるとき、ここにおいて、さらに少なくとも2つのレイヤが復号プロセス中に完全に再構成され得る、1つまたは複数の復号ピクチャバッファへの異なるレイヤの復号レイヤコンポーネントの記憶が必要とされるであろう。
[0089]SVCでは、シングルループ復号が適用され、したがって、最上位レイヤのみが完全に再構成され得、各アクセスユニット中の最上位レイヤの復号レイヤコンポーネントのみが記憶される必要があり得る。MVCのための既存の技法では、複数のループ復号が適用されるが、異なるビューは同じ空間解像度を有する必要がある。したがって、各アクセスユニット中の複数の復号レイヤコンポーネントが記憶される必要があるが、それらはすべて同じ解像度を有する。現在、異なる解像度をもつ複数の復号レイヤコンポーネントが記憶される必要があるときのDPB管理のための機構がない。
[0090]これらの欠点に鑑みて、本開示では、異なる解像度をもつ複数の復号レイヤコンポーネントが記憶される必要があるときのDPB管理のための様々な機構および技法について説明する。
[0091]図5は、本開示で説明するDPB管理のための技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、HEVCおよびH.264/AVC、ならびに、そのような規格のスケーラブル拡張、マルチビュー拡張および3D拡張を含む、ビデオ符号化技法に従ってビデオデータを符号化するように構成され得る。図5の例についてHEVCに関して説明する。この点について、図5に示されているビデオ符号化ループは、スケーラブルビデオ符号化プロセスの各レイヤ(すなわち、ベースレイヤおよびエンハンスメントレイヤ)に適用されるか、マルチビュービデオコーディングプロセスの各ビューに適用されるか、または3Dビデオコーディングプロセスのテクスチャビューと深度ビューの両方に適用され得る。
[0092]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。さらに、ビデオエンコーダ20は、上記で説明したように、異なるビューまたはレイヤ間でビュー間予測および/またはレイヤ間予測を実行し得る。
[0093]図5の例では、ビデオエンコーダ20は、予測処理ユニット41と、DPB64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動きおよびディスパリティ推定ユニット42と、動きおよびディスパリティ補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図5に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。追加のループフィルタ(ループ内またはループ後)もデブロッキングフィルタに加えて使用され得る。
[0094]図5に示されているように、ビデオエンコーダ20は、ビデオデータを受信し、データをビデオブロックに区分するように構成され得る。この区分は、たとえば、LCUおよびCUの4分木構造に応じて、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえば、コーディングレートおよびひずみレベル)に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つ、あるいは複数のインターコーディングモードまたはビュー間コーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
[0095]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動きおよびディスパリティ推定ユニット42ならびに動きおよびディスパリティ補償ユニット44は、時間的予測およびビュー間予測を行うために、1つまたは複数の参照ピクチャ、参照ピクチャレイヤ、および/または参照ビュー中の1つまたは複数の予測ブロックに対して現在ビデオブロックのインター予測コーディングおよび/またはビュー間コーディングを実行する。
[0096]動きおよびディスパリティ推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードおよび/またはビュー間予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライスまたはBスライスに指定し得る。動きおよびディスパリティ推定ユニット42と動きおよびディスパリティ補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動きおよびディスパリティ推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。動きおよびディスパリティ推定ユニット42によって実行されるディスパリティ推定は、異なるビュー中のブロックから現在コーディングされているブロックを予測するために使用され得るディスパリティベクトルを生成するプロセスである。
[0097]予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、DPB64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0098]動きおよびディスパリティ推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライスまたはビュー間予測スライスにおけるビデオブロックのPUのための(動き補償予測のための)動きベクトルおよび/または(ディスパリティ補償予測のための)ディスパリティベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、DPB64に記憶された1つまたは複数の参照ピクチャを識別する。ビュー間予測の場合、参照ピクチャは異なるビュー中にある。動きおよびディスパリティ推定ユニット42は、計算された動きベクトルおよび/またはディスパリティベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0099]動きおよびディスパリティ補償ユニット44によって実行される動き補償および/またはディスパリティ補償は、動き推定および/またはディスパリティ推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在ビデオブロックのPUのための動きベクトルおよび/またはディスパリティを受信すると、動きおよびディスパリティ補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルおよび/またはディスパリティベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動きおよびディスパリティ補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0100]イントラ予測処理ユニット46は、上記で説明したように、動きおよびディスパリティ推定ユニット42と動きおよびディスパリティ補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比を計算し得る。
[0101]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピーコーディングユニット56に与え得る。エントロピーコーディングユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る、構成データを含め得る。
[0102]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後に、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
[0103]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0104]量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングあるいは別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
[0105]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築する。ビデオエンコーダ20のこの部分は、再構成ループと呼ばれることがあり、インター予測において参照ピクチャとして使用するために符号化ビデオブロックを効果的に復号する。再構成されたピクチャはDPB64に記憶され得る。
[0106]動きおよびディスパリティ補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動きおよびディスパリティ補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、DPB64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動きおよびディスパリティ推定ユニット42と動きおよびディスパリティ補償ユニット44とによって参照ブロックとして使用され得る。以下でより詳細に説明するように、ビデオエンコーダ20は、異なる解像度でのDPBにおけるビデオデータの複数のレイヤの記憶および管理を可能にする本開示のDPB管理技法を実行するように構成され得る。
[0107]図6は、本開示で説明するDPB管理技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図6の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換ユニット88と、加算器90と、DPB92とを含む。予測処理ユニット81は、動きおよびディスパリティ補償ユニット82と、イントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、図5のビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
[0108]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、ディスパリティベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと、ディスパリティベクトルと、他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0109]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、またはP)スライスまたはビュー間予測スライスとしてコーディングされたとき、予測処理ユニット81の動きおよびディスパリティ補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルと、ディスパリティベクトルと、他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。
[0110]動きおよびディスパリティ補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動きおよびディスパリティ補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測またはビュー間予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルおよび/またはディスパリティベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0111]動きおよびディスパリティ補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0112]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0113]動きおよびディスパリティ補償ユニット82が、動きベクトルおよび/またはディスパリティベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。
[0114]所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するDPB92に記憶される。以下でより詳細に説明するように、ビデオデコーダ30は、異なる解像度でDPBにおいてビデオデータの複数のレイヤを記憶するときのDPB管理のための本開示の技法を実行するように構成され得る。DPB92はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での表示のために、復号ビデオを記憶する。
[0115]ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、DPB管理のための以下の技法の任意の組合せを実行するように構成され得る。概して、以下の技法の各々は以下の特徴を呈する。ビデオエンコーダ20および/またはビデオデコーダ30は、複数の復号レイヤコンポーネントを生成するためにビデオデータを(たとえば、ビデオエンコーダ20のための再構成ループ中で)復号するように構成され得る。ビデオエンコーダ20および/またはビデオデコーダ30は、復号レイヤコンポーネントをDPBの1つまたは複数のサブユニットに記憶するように構成され得る。このコンテキストでは、DPBの「ユニット」は、いくつかの共通の特性を有する再構成または復号されたビデオデータを含んでいるDPBの別個にアドレス指定可能なエリアである。さらに、DPBのサブユニットは、それ自体が管理され、別個のDPBのように扱われる、DPBの別個にアドレス指定可能なエリアと見なされ得る。
[0116]ビデオエンコーダ20および/またはビデオデコーダ30は、1つまたは複数のサブユニットに対してDPB管理プロセスを実行するようにさらに構成され得、ここにおいて、DPB管理プロセスは、1つまたは複数のサブユニットの各々について別個に管理される。DPB管理プロセスは、サブユニットから復号レイヤコンポーネントを削除することと、サブユニット中の復号レイヤコンポーネントを、参照のために使用されないとマークすることとのうちの1つまたは複数を含み得る。このようにして、いくつかの例では、異なる特性(たとえば、空間解像度、レイヤタイプ)を有する復号および/または再構成されたレイヤは別個に管理され得る。
[0117]本開示の例のさらなる例では、ビデオエンコーダ20および/またはビデオデコーダ30は、アクセスユニット中の第1の復号レイヤコンポーネントに対してDPB管理プロセスを実行することと、同じアクセスユニット中の他の復号レイヤコンポーネントに対して同じDPB管理プロセスを実行することとによって、1つまたは複数のサブユニットに対してDPB管理プロセスを実行するように構成され得る。
[0118] 本開示の一例では、ビデオコーダは、複数の復号レイヤコンポーネントを生成するためにビデオデータを復号または再構成することと、DPBの単一のサブユニットが、アクセスユニット内の完全に再構成されたレイヤのための復号レイヤコンポーネントの結合を含んでいるように、復号レイヤコンポーネントをDPBの単一のサブユニットに記憶することとを行うように構成され得る。すなわち、この例では、DPBは単一のサブユニットのみからなる。
[0119]本開示のこの例では、DPBの単一のサブユニットは、アクセスユニット内の完全に再構成されたレイヤのための復号レイヤコンポーネントの結合を記憶する。いくつかの例では、完全に再構成されたレイヤのための復号レイヤコンポーネントの結合は、テクスチャビューコンポーネントと深度ビューコンポーネントの両方、複数のテクスチャビューコンポーネント、またはベースレイヤおよび1つまたは複数のエンハンスメントレイヤの結合であり得る。アクセスユニットは、復号順序が連続しており、1つのコード化ピクチャを含んでいる、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットのセットである。DPBの単一のサブユニットのサイズは、すべての復号レイヤコンポーネント中のすべてのコンポーネントのサンプルの数の合計によって決定され得る。すなわち、DPBの単一のサブユニットのサイズは、サブユニットに記憶されたすべての復号レイヤコンポーネントの解像度に基づいて決定され得る。このようにして、ビデオエンコーダ20および/またはビデオデコーダ30は、実際にコーディングされているレイヤの解像度に従ってDPBをフレキシブルにサイズ決定するように構成され得る。
[0120]図7は、アクセスユニット内のすべての完全に再構成されたレイヤの復号レイヤコンポーネントの結合を記憶するように構成されたDPB700を示す概念図である。サブユニット710A〜Dの各々は、復号レイヤコンポーネントの結合のための記憶ロケーションを表す。ビデオコーダは、DPB700から復号レイヤコンポーネントを削除するようにさらに構成され得る。本開示のこの例では、DPBから特定の復号レイヤコンポーネントを削除すること(たとえば、テクスチャビューコンポーネントを削除すること)は、DPBから復号レイヤコンポーネントに関係する復号アクセスユニット全体をも削除する(たとえば、他のテクスチャビューコンポーネントおよび/または深度ビューコンポーネントをも削除する)。ビデオコーダは、DPB中の復号レイヤコンポーネントを、参照のために使用されないとマークするようにさらに構成され得る。同様に、この例では、特定の復号レイヤコンポーネント(たとえば、テクスチャビューコンポーネント)を、参照のために使用されないとマークすることは、復号レイヤコンポーネントに関係する復号アクセスユニット全体をも、参照のために使用されないとマークする(たとえば、他のテクスチャビューコンポーネントおよび/または深度ビューコンポーネントをもマークすること)。
[0121]本開示の別の例では、ビデオコーダ(たとえば、ビデオエンコーダ20および/またはビデオデコーダ30)は、複数の復号レイヤコンポーネントを生成するためにビデオデータを復号するように構成され得る。いくつかの事例では、復号レイヤコンポーネントは少なくとも2つの異なる空間解像度を有する。ビデオコーダは、復号レイヤコンポーネントの空間解像度応じて、復号レイヤコンポーネントを復号ピクチャバッファ(DPB)の複数のサブユニットのうちの1つに記憶するようにさらに構成され得る。たとえば、複数のサブユニットの各々は異なる空間解像度に関連する。このようにして、ビデオコーダは、それらの解像度に基づいて、復号レイヤコンポーネント(たとえば、テクスチャビューコンポーネント、深度ビューコンポーネント、ベースレイヤ、エンハンスメントレイヤなど)をいくつかのサブユニットに記憶するように構成され得る。このようにして、各解像度は別個に処理され得る。
[0122]図8は、異なるサブユニットにおいて異なる解像度で復号レイヤコンポーネントを記憶するように構成されたDPB800を示す概念図である。サブユニット810A〜Dの各々は、異なる解像度での復号レイヤコンポーネントのための記憶ロケーションを表す。たとえば、サブユニット810A〜Dの各々は、異なる解像度1〜4の記憶のために指定される。サブユニット810A〜Dの各々は、ピクチャに関連する復号レイヤコンポーネントを記憶するように構成された別個のユニットを含んでいる。1つの例示的な説明として、ピクチャのテクスチャビューコンポーネントは、テクスチャビューコンポーネントの解像度に対応するサブユニット(たとえば、サブユニット810A)に記憶され得、同じピクチャの深度ビューコンポーネントは、深度ビューコンポーネントの解像度(一般により低い)に対応する異なるサブユニット(たとえば、サブユニット810B)に記憶され得る。
[0123]ビデオコーダは、複数のサブユニット810A〜Dから復号レイヤコンポーネントを削除するようにさらに構成され得る。本開示のこの例では、復号レイヤコンポーネントの削除は、各サブユニットについて別個に管理される。たとえば、サブユニット810Aからのテクスチャビューコンポーネントの削除は、異なる解像度を有する関連する深度ビューコンポーネント(たとえば、サブユニット810Bに記憶された関連する深度ビューコンポーネント)を削除しないことになる。同様に、ビデオコーダは、複数のサブユニット中の復号レイヤコンポーネントを、参照のために使用されないとマークするようにさらに構成され得、ここにおいて、マークすることは、各サブユニットについて別個に管理される。
[0124]さらなる一例では、ビデオコーダはまた、複数のサブユニット810A〜Dのうちの1つから復号レイヤコンポーネントを削除するように構成され得、ここにおいて、復号レイヤコンポーネントを削除することは、複数のサブユニット810A〜Dのうちの1つから復号レイヤコンポーネントに関係する復号アクセスユニット全体をも削除する。ビデオコーダは、複数のサブユニットのうちの1つの中の復号レイヤコンポーネントを、参照のために使用されないとマークするようにさらに構成され得、ここにおいて、復号レイヤコンポーネントをマークすることは、復号レイヤコンポーネントに関係する復号アクセスユニット全体をも、参照のために使用されないとマークする。
[0125]図8の例における例示的なサブユニットは空間解像度によって分類されたが、本開示の他の例は異なる分類を使用し得る。たとえば、複数のサブユニットの各々は、異なる空間解像度、クロマサンプリングフォーマット、ビット深度、または空間解像度と、クロマサンプリングフォーマットと、ビット深度との任意の組合せに関連し得る。
[0126]本開示の別の例では、ビデオコーダは、複数の復号レイヤコンポーネントを生成するためにビデオデータを復号するように構成され得る。ビデオコーダは、復号レイヤコンポーネントを複数のサブユニットのうちの1つに記憶するようにさらに構成され得、ここにおいて、複数のサブユニットの各々は、異なる完全に再構成されたレイヤに関連する。たとえば、3Dビデオコーディングでは、テクスチャビューコンポーネントを記憶するためにあるサブユニットが使用され得、深度ビューコンポーネントを記憶するために別のサブユニットが使用され得る。テクスチャビューコンポーネントと深度ビューコンポーネントとは、一般に、異なる解像度を有するので、そのような技法は、異なる解像度での復号レイヤの独立管理を可能にする。すなわち、図8の例のように、各サブユニットは別個に管理され得る。
[0127]図9は、異なる復号レイヤコンポーネントを異なるサブユニットに記憶するように構成されたDPB900を示す概念図である。サブユニット910A〜Dの各々は、異なる解像度での異なるタイプの復号レイヤコンポーネントのための記憶ロケーションを表す。たとえば、サブユニット910Aは、テクスチャビューコンポーネントを記憶するために使用され得、サブユニット910Bは、深度ビューコンポーネントを記憶するために使用され得る。同様に、サブユニット910Cは、スケーラブルビデオコーディングプロセスにおいてベースレイヤを記憶するために使用され得、サブユニット910Dは、スケーラブルビデオコーディングプロセスにおいてエンハンスメントレイヤの1つのレベルを記憶するために使用され得る。追加のサブユニットは、エンハンスメントレイヤの追加のレベルまたは追加のテクスチャビューコンポーネントを記憶することように構成され得る。サブユニット910A〜Dの各々は、ピクチャに関連する復号レイヤコンポーネントを記憶するように構成された別個のユニットを含んでいる。
[0128]ビデオコーダは、複数のサブユニット910A〜Dから復号レイヤコンポーネントを削除するようにさらに構成され得、ここにおいて、削除することは、各サブユニットについて別個に管理される。ビデオコーダは、複数のサブユニット910A〜D中の復号レイヤコンポーネントを、参照のために使用されないとマークするようにさらに構成され得、ここにおいて、マークすることは、各サブユニットについて別個に管理される。ビデオコーダは、複数のサブユニット910A〜Dのうちの1つから復号レイヤコンポーネントを削除するようにさらに構成され得、ここにおいて、復号レイヤコンポーネントを削除することは、複数のサブユニット910A〜Dのうちの1つから復号レイヤコンポーネントに関係する復号アクセスユニット全体をも削除する。ビデオコーダは、複数のサブユニット910A〜Dのうちの1つの中の復号レイヤコンポーネントを、参照のために使用されないとマークするようにさらに構成され得、ここにおいて、復号レイヤコンポーネントをマークすることは、復号レイヤコンポーネントに関係する復号アクセスユニット全体をも、参照のために使用されないとマークする。
[0129]本開示の別の例では、ビデオコーダは、複数の復号レイヤコンポーネントを生成するためにビデオデータを復号することと、DPBの各サブユニットが、最も高い空間解像度を有する復号レイヤコンポーネントに対応するように、復号レイヤコンポーネントを復号ピクチャバッファ(DBP)の複数のサブユニットのうちの1つに記憶することとを行うように構成され得る。すなわち、DPBの各サブユニットのサイズは、最も高い解像度を有する復号レイヤコンポーネントに等しくなるように構成される。DPBの複数のサブユニットの各々は、復号レイヤコンポーネントの解像度にかかわらず、1つの復号レイヤコンポーネントを記憶し得る。
[0130]図10は、復号レイヤコンポーネントを記憶するように構成されたDPB1000を示す概念図である。サブユニット1010A〜Dの各々は、復号レイヤコンポーネントのための記憶ロケーションを表し、各サブユニットのサイズは、最も高い解像度を有する復号レイヤコンポーネントの空間解像度に対応する。ビデオコーダは、DPB1000から復号レイヤコンポーネントを削除するようにさらに構成され得、ここにおいて、復号レイヤコンポーネントを削除することは、DPB1000から復号レイヤコンポーネントに関係する復号アクセスユニット全体をも削除する。ビデオコーダは、DPB1000中の復号レイヤコンポーネントを、参照のために使用されないとマークするようにさらに構成され得、ここにおいて、復号レイヤコンポーネントをマークすることは、復号レイヤコンポーネントに関係する復号アクセスユニット全体をも、参照のために使用されないとマークする。
[0131]要約すると、本開示の第1の例では、DPBの単一のサブユニットが、アクセスユニット内のすべての完全に再構成されたレイヤのための復号レイヤコンポーネントの結合を記憶する。この第1の例は、以下の技法および/または構造のうちの1つまたは複数を含み得る。
− DPBの単一のサブユニットのサイズは、すべての復号レイヤコンポーネント中のすべてのコンポーネントのサンプルの数の合計によって決定され得る。
− 復号ピクチャの削除は復号アクセスユニット全体の削除を含む。
− 復号ピクチャの「参照のために使用されない」とのマーキングは、復号アクセスユニット全体の「参照のために使用されない」とのマーキングを含む。
[0132]本開示の第2の例では、DPBは複数のサブユニットを含み得、それらのサブユニットの各々は異なる空間解像度に関連する。各レイヤのための復号レイヤコンポーネントは別個に管理される(マーキングと削除の両方を含む)。さらに、1つの特定のレイヤ中のアクセスユニットのためのDPB管理プロセスの呼出し中に、同じアクセスユニット中の他のレイヤの復号レイヤコンポーネントは、「参照のために使用されない」とマークされ、それらの復号レイヤコンポーネントのためのサブユニットから削除され得る。代替的に、さらに、各サブユニットは、空間解像度と、クロマサンプリングフォーマットと、ビット深度との異なる組合せに関連し得る。
[0133]本開示の第3の例では、DPBは、複数のサブユニットを含むように構成され得、それらのサブユニットの各々は、異なる完全に再構成されたレイヤに関連する。各レイヤのための復号レイヤコンポーネントは別個に管理される(マーキングと削除の両方を含む)。さらに、1つの特定のレイヤ中のアクセスユニットのためのDPB管理プロセスの呼出し中に、同じアクセスユニット中の他のレイヤの復号レイヤコンポーネントは、「参照のために使用されない」とマークされ、それらの復号レイヤコンポーネントのためのサブユニットから削除され得る。
[0134]本開示の第4の例では、DPB中の各サブユニットは、最も大きい解像度をもつレイヤの復号レイヤコンポーネントに対応する。各サブユニットは、復号レイヤコンポーネントの解像度にかかわらず、1つの復号レイヤコンポーネントの記憶のために使用される。さらに、1つの特定のレイヤ中のアクセスユニットのためのDPB管理プロセスの呼出し中に、同じアクセスユニット中の他のレイヤの復号レイヤコンポーネントは、「参照のために使用されない」とマークされ、DPBから削除され得る。
[0135]図11は、本開示の技法による例示的な方法を示すフローチャートである。図11の技法は、たとえば、DPB64およびDPB92を含む、ビデオエンコーダ20および/またはビデオデコーダ30の1つまたは複数の機能ユニットによって実行され得る。
[0136]本開示の一例では、ビデオエンコーダ20および/またはビデオデコーダ30は、複数の復号レイヤコンポーネントを生成するためにビデオデータを復号すること(1100)と、復号レイヤコンポーネントをDPBの1つまたは複数のサブユニットに記憶すること(1110)と、1つまたは複数のサブユニットに対してDPB管理プロセスを実行すること、ここにおいて、DPB管理プロセスが、1つまたは複数のサブユニットの各々について別個に管理される(1120)、を行うように構成され得る。本開示の一例では、DPB管理プロセスは、サブユニットから復号レイヤコンポーネントを削除することと、サブユニット中の復号レイヤコンポーネントを、参照のために使用されないとマークすることとのうちの1つまたは複数を備える。本開示の別の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、アクセスユニット中の第1の復号レイヤコンポーネントに対してDPB管理プロセスを実行することと、同じアクセスユニット中の他の復号レイヤコンポーネントに対して同じDPB管理プロセスを実行することとを行うようにさらに構成される。
[0137]本開示の一例では、復号レイヤコンポーネントは少なくとも2つの異なる空間解像度を有する。この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、復号レイヤコンポーネントの空間解像度に基づいて復号レイヤコンポーネントをDPBの1つまたは複数のサブユニットのうちの1つに記憶するようにさらに構成され、ここにおいて、1つまたは複数のサブユニットの各々は異なる空間解像度に関連する。別の例では、1つまたは複数のサブユニットの各々は、空間解像度と、クロマサンプリングフォーマットと、ビット深度との特定の組合せに関連する。
[0138]本開示の別の例では、復号レイヤコンポーネントは少なくとも2つの異なる空間解像度を有し、1つまたは複数のサブユニットの各々は、異なる完全に再構成されたレイヤに関連する。
[0139]本開示の別の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、DPBの各サブユニットが、最も高い空間解像度を有する復号レイヤコンポーネントに対応するように、復号レイヤコンポーネントをDPBのサブユニットのうちの1つまたは複数のうちの1つに記憶するようにさらに構成される。一例では、DPBの1つまたは複数のサブユニットの各々は1つの復号レイヤコンポーネントを記憶する。
[0140]本開示の別の例では、1つまたは複数のサブユニットは単一のサブユニットを備え、ビデオエンコーダ20および/またはビデオデコーダ30は、DPBの単一のサブユニットが、アクセスユニット内の完全に再構成されたレイヤのための復号レイヤコンポーネントの結合を含んでいるように、復号レイヤコンポーネントをDPBの単一のサブユニットに記憶するようにさらに構成される。別の例では、DPBの単一のサブユニットのサイズは、すべての復号レイヤコンポーネント中のすべてのコンポーネントのサンプルの数の合計によって決定される。
[0141]本開示の次のセクションでは、本開示の第1の例示的な技法のための(たとえば、スケーラブル、マルチビュー、および3D拡張を含む、HEVCのための)例示的な仮想参照デコーダ(HRD)実装形態について説明する。すなわち、以下のセクションは本開示の技法に適用され、それにより、DPBの単一のサブユニットは、アクセスユニット内のすべての完全に再構成されたレイヤの復号レイヤコンポーネントの結合を記憶する。本明細書において述べる節および従属節は、上記のHEVC WD9の付属書類CにおけるHRD仕様に言及する。
[0142]4.1.1 HRD:仮想参照デコーダ(例#1)
[0143]A.1 復号ピクチャバッファ(DPB)の動作
[0144]この従属節における仕様は、従属節C.1において指定されているように、選択されたDPBパラメータの各セットに独立して適用される。
[0145]復号ピクチャバッファはピクチャ記憶バッファを含んでいる。ピクチャ記憶バッファの各々は、「参照のために使用される」とマークされたか、または将来の出力のために保持された復号ピクチャを含んでいることがある。初期化より前に、DPBは空である(DPBフルネス(fullness)は0に設定される)。この従属節の従属節の以下のステップは、以下に記載する順序で起こる。
[0146]ピクチャ記憶バッファの各々は、アクセスユニットの(スケーラブルコーデックではレイヤ表現、MV−HEVCではすべての復号ビューコンポーネント、または3D−HEVCではすべての復号テクスチャおよび深度ビューコンポーネントとも呼ばれる)すべての復号レイヤコンポーネントを含んでいる。したがって、各復号ピクチャは復号アクセスユニットである。ピクチャ記憶バッファのメモリサイズは、コード化ビデオシーケンス中のすべてのアクセスユニットの間のすべての復号レイヤコンポーネントの記憶のために最大バッファサイズを必要とする復号アクセスユニットに対応する。たとえば、異なるアクセスユニットが異なる数のレイヤコンポーネントを有する場合、最大バッファサイズは、各々がすべてのアクセスユニットの間のレイヤコンポーネントの最大数を有するアクセスユニットの記憶のために必要とされ得る。
[0147]1つまたは複数のレイヤコンポーネントが「参照のために使用される」とマークされた場合のみ、復号ピクチャは「参照のために使用される」とマークされる。
[0148]すべてのレイヤコンポーネントが「参照のために使用されない」とマークされた場合のみ、復号ピクチャは「参照のために使用されない」とマークされる。
[0149]さらに、セクション4.1.3に記載されている制約が適用され得る。
[0150]代替的に:
[0151]layer_idの最も高い値をもつレイヤコンポーネントが「参照のために使用される」とマークされた場合のみ、復号ピクチャは「参照のために使用される」とマークされる。
[0152]layer_idの最も高い値をもつレイヤコンポーネントが「参照のために使用されない」とマークされた場合のみ、復号ピクチャは「参照のために使用されない」とマークされる。
[0153]さらに、セクション4.1.3に記載されている制約が適用され得る。
[0154]同じアクセスユニットの複数のレイヤコンポーネントが異なるマーキングステータスを有することができる場合、各レイヤコンポーネントのマーキングステータスは、HEVCにおける復号ピクチャピクチャマーキングプロセスと同様の方法で、各レイヤコンポーネントのための復号ピクチャマーキングプロセスを適用した後に知られる。
[0155]1つの代替として、複数のレイヤコンポーネントはまた、一緒にマークされ得、この場合、アクセスユニット全体のために、HEVCにおける復号ピクチャマーキングプロセスと同様のプロセスが呼び出される。
[0156]すべてのレイヤコンポーネントが、IDR_W_DLPまたはIDR_N_LPに等しいnal_unit_typeを有する場合、ピクチャは瞬時デコーダリフレッシュ(IDR:instantaneous decoder refresh)である。
[0157]すべてのレイヤコンポーネントが、BLA_W_LP、BLA_W_DLP、またはBLA_N_LPに等しいnal_unit_typeを有する場合、ピクチャは切断リンクアクセス(BLA:broken link access)である。
[0158]nal_unit_typeが、両端値を含む、16〜23の範囲内の値を有するとき(ランダムアクセスピクチャ(RAP))、slice_typeは、ベースレイヤのために2に等しくなる(layer_idは0に等しい)が、layer_idが0よりもより大きい場合、他の値に等しくなり得る。
[0159]A.1.1 DPBからのピクチャの削除
[0160]現在ピクチャの復号の前の(ただし、現在ピクチャの第1のスライスのスライスヘッダをパースした後の)DPBからのピクチャの削除は、(現在ピクチャを含んでいる)アクセスユニットnの第1の復号ユニットのCPB削除時間に瞬時に起こり、次のように進む。
[0161]従属節8.3.2において指定されている参照ピクチャセットのための復号プロセスが呼び出される。
[0162]現在ピクチャがIDRピクチャまたはBLAピクチャである場合、以下が適用される。
[0163]IDRピクチャまたはBLAピクチャが、復号される第1のピクチャではなく、現在アクセスユニットのいずれかのレイヤのためのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値が、それぞれ、前のアクセスユニットを復号したときに導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実効値にかかわらず、HRDによって1に等しいと推論される。
[0164]no_output_of_prior_pics_flagが、1に等しいかまたは1に等しいと推論されるとき、DPB中のすべてのピクチャ記憶バッファは、それらが含んでいるピクチャの出力なしに空にされ、DPBフルネスは0に設定される。
[0165]以下の条件のうちのすべてが真である、DPB中のすべてのピクチャkがDPBから削除される。
− ピクチャkが「参照のために使用されない」とマークされる、
− ピクチャkが、0に等しいPicOutputFlagを有するか、またはそれのDPB出力時間が、現在ピクチャnの(復号ユニットmとして示される)第1の復号ユニットのCPB削除時間以下である、すなわち、to,dpb(k)≦tr(m)である。
[0166]ピクチャがDPBから削除されると、DPBフルネスは1だけ減分される。
[0167]A.1.2 ピクチャ出力
[0168]以下は、アクセスユニットnのCPB削除時間、tr(n)に瞬時に起こる。
[0169]ピクチャnが1に等しいPicOutputFlagを有するとき、それのDPB出力時間to,dpb(n)は
によって導出される。上式で、pic_dpb_output_delay(n)は、アクセスユニットnに関連するピクチャタイミングSEIメッセージにおいて指定されているpic_dpb_output_delayの値である。
[0170]現在ピクチャの出力は次のように指定される。
− PicOutputFlagが1に等しく、to,dpb(n)=tr(n)である場合、現在ピクチャは出力される。
− そうではなく、PicOutputFlagが0に等しい場合、現在ピクチャは、出力されないが、従属節C.3.4において指定されているようにDPBに記憶される。
− そうでない場合(PicOutputFlagが1に等しく、to,dpb(n)>tr(n)である)、現在ピクチャは、後で出力され、(従属節C.3.4において指定されているように)DPBに記憶されることになり、to,dpb(n)に先行する時間に1に等しいno_output_of_prior_pics_flagの復号または推論によって出力されるべきでないことが示されない限り、時間to,dpb(n)に出力される。
[0171]出力時に、ピクチャは、アクティブシーケンスパラメータセットにおいて指定されている適合クロッピングウィンドウ(conformance cropping window)を使用してクロップされる。
[0172]ピクチャnが、出力されるピクチャであり、出力されるビットストリームの最後のピクチャではないとき、Dto,dpb(n)の値は、
のように定義される。上式で、nnは、出力順序でピクチャnに続く、1に等しいPicOutputFlagを有するピクチャを示す。
[0173]A.1.3 現在復号ピクチャマーキングおよび記憶
[0174]以下は、アクセスユニットnのCPB削除時間、tr(n)に瞬時に起こる。
[0175]現在復号ピクチャは空のピクチャ記憶バッファ中のDPBに記憶され、DPBフルネスは1だけ増分され、現在ピクチャは、「短期参照のために使用される」とマークされる。
[0176]A.2 ビットストリーム適合
[0177]従属節C.2における仕様が適用される。
[0178]A.3 デコーダ適合
[0179]A.3.1 一般
[0180]C.5.1における仕様は、以下の追加とともに適用される。
[0181]ピクチャ記憶バッファの各々は、アクセスユニットの(スケーラブルコーデックではレイヤ表現、MV−HEVCではすべての復号ビューコンポーネント、または3D−HEVCではすべての復号テクスチャおよび深度ビューコンポーネントとも呼ばれる)すべての復号レイヤコンポーネントを含んでいる。したがって、各復号ピクチャは復号アクセスユニットである。ピクチャ記憶バッファのメモリサイズは、コード化ビデオシーケンス中のすべてのアクセスユニットの間のすべての復号レイヤコンポーネントの記憶のために最大バッファサイズを必要とする復号アクセスユニットに対応する。たとえば、異なるアクセスユニットが異なる数のレイヤコンポーネントを有する場合、最大バッファサイズは、各々がすべてのアクセスユニットの間のレイヤコンポーネントの最大数を有するアクセスユニットの記憶のために必要とされ得る。
[0182]以下は、レイヤコンポーネントのマーキングステータスのための1つの代替の一例である。1つまたは複数のレイヤコンポーネントが「参照のために使用される」とマークされた場合のみ、復号ピクチャは「参照のために使用される」とマークされる。すべてのレイヤコンポーネントが「参照のために使用されない」とマークされた場合のみ、復号ピクチャは「参照のために使用されない」とマークされる。さらに、セクション4.1.3に記載されている制約が適用され得る。
[0183]以下は、レイヤコンポーネントのマーキングステータスのための別の代替の一例である。layer_idの最も高い値をもつレイヤコンポーネントが「参照のために使用される」とマークされた場合のみ、復号ピクチャは「参照のために使用される」とマークされる。layer_idの最も高い値をもつレイヤコンポーネントが「参照のために使用されない」とマークされた場合のみ、復号ピクチャは「参照のために使用されない」とマークされる。さらに、セクション4.1.3に記載されている制約が適用され得る。
[0184]すべてのレイヤコンポーネントが、IDR_W_DLPまたはIDR_N_LPに等しいnal_unit_typeを有する場合、ピクチャはIDRである。
[0185]すべてのレイヤコンポーネントが、BLA_W_LP、BLA_W_DLP、またはBLA_N_LPに等しいnal_unit_typeを有する場合、ピクチャはBLAである。
[0186]nal_unit_typeが、両端値を含む、16〜23の範囲内の値を有するとき(RAPピクチャ)、slice_typeは、ベースレイヤのために2に等しくなる(layer_idは0に等しい)が、layer_idが0よりもより大きい場合、他の値に等しくなり得る。
[0187]A.3.2 出力順序DPBの動作
[0188]復号ピクチャバッファはピクチャ記憶バッファを含んでいる。ピクチャ記憶バッファの各々は、「参照のために使用される」とマークされたか、または将来の出力のために保持された復号ピクチャを含んでいる。HRDの初期化において、DPBは空である。以下のステップは、以下に記載する順序で起こる。
[0189]A.3.3 DPBからのピクチャの出力および削除
[0190]現在ピクチャの復号の前の(ただし、現在ピクチャの第1のスライスのスライスヘッダをパースした後の)DPBからのピクチャの削除は、現在ピクチャを含んでいるアクセスユニットの第1の復号ユニットがCPBから削除されるときに瞬時に起こり、次のように進む。
[0191]従属節8.3.2において指定されている参照ピクチャセットのための復号プロセスが呼び出される。
− 現在ピクチャがIDRピクチャまたはBLAピクチャである場合、以下が適用される。
1.IDRピクチャまたはBLAピクチャが、復号される第1のピクチャではなく、現在アクセスユニットの各レイヤのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値が、それぞれ、前のアクセスユニットのために導出された各レイヤのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実効値にかかわらず、HRDによって1に等しいと推論される。
注−デコーダ実装形態は、pic_width_in_luma_samples、pic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の変更に関して、HRDよりも適切にピクチャまたはDPBサイズ変更を処理することを試みるべきである。
2.no_output_of_prior_pics_flagが、1に等しいかまたは1に等しいと推論されるとき、DPB中のすべてのピクチャ記憶バッファは、それらが含んでいるピクチャの出力なしに空にされる。
3.no_output_of_prior_pics_flagが1に等しくなく、1に等しいと推論されないとき、「出力のために必要とされない」および「参照のために使用されない」とマークされたピクチャを含んでいるピクチャ記憶バッファが(出力なしに)空にされ、従属節C.5.3.1において指定されている「バンピング」プロセスを繰り返し呼び出すことによって、DPB中のすべての空でないピクチャ記憶バッファが空にされる。
− そうでない場合(現在ピクチャがIDRピクチャまたはBLAピクチャではない)、「出力のために必要とされない」および「参照のために使用されない」とマークされたピクチャを含んでいるピクチャ記憶バッファが(出力なしに)空にされる。以下の条件のうちの1つまたは複数が真であるとき、従属節C.5.3.1において指定されている「バンピング」プロセスは、現在復号ピクチャを記憶するために空のピクチャ記憶バッファがあるまで、繰り返し呼び出される。
1.「出力のために必要とされる」とマークされたDPB中のピクチャの数は、sps_max_num_reorder_pics[HighestTid]よりも大きい、
2.DPB中のピクチャの数は、sps_max_dec_pic_buffering[HighestTid]に等しい。
アクセスユニットの各レイヤのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]は、現在アクセスユニットによって参照されたシーケンスパラメータセット中でシグナリングされるか、またはアクティブビデオパラメータセット中でシグナリングされるかのいずれかであり得ることに留意されたい。
[0192]A.3.3.1 「バンピング」プロセス
[0193]「バンピング」プロセスは以下の場合に呼び出される。
− 現在ピクチャはIDRピクチャまたはBLAピクチャであり、no_output_of_prior_pics_flagは、従属節C.5.2において指定されているように、1に等しくなく、1に等しいと推論されない。
− 「出力のために必要とされる」とマークされたDPB中のピクチャの数は、従属節C.5.2において指定されているように、sps_max_num_reorder_pics[TemporalId]よりも大きい。
− 現在ピクチャのTemporalIdよりも低いかまたはそれに等しいTemporalIdをもつDPB中のピクチャの数は、従属節C.5.2において指定されているように、sps_max_dec_pic_buffering[TemporalId]に等しい。
[0194]「バンピング」プロセスは以下の順序付きステップからなる。
1.出力のための最初のものであるピクチャは、「出力のために必要とされる」とマークされたDPB中のすべてのピクチャのうちのPicOrderCntValの最も小さい値を有するピクチャとして選択される。
2.ピクチャは、ピクチャのためのアクティブシーケンスパラメータセットにおいて指定されたクロッピング矩形を使用してクロップされ、クロップされたピクチャは出力され、ピクチャは「出力のために必要とされない」とマークされる。
3.クロップされ、出力されたピクチャを含んだピクチャ記憶バッファが、「参照のために使用されない」とマークされたピクチャを含んでいる場合、ピクチャ記憶バッファは空にされる。
[0195]A.3.4 ピクチャ復号、マーキングおよび記憶
[0196]以下は、現在ピクチャを含んでいるアクセスユニットnの最後の復号ユニットがCPBから削除されたときに瞬時に起こる。
[0197]現在ピクチャは、ピクチャの最後の復号ユニットが復号された後に復号されると見なされる。現在復号ピクチャは、DPB中の空のピクチャ記憶バッファに記憶され、以下が適用される。
− 現在復号ピクチャが、1に等しいPicOutputFlagを有する場合、それは「出力のために必要とされる」とマークされる。
− そうでない場合(現在復号ピクチャが、0に等しいPicOutputFlagを有する)、それは「出力のために必要とされない」とマークされる。
[0198]現在復号ピクチャは「短期参照のために使用される」とマークされる。
[0199]4.1.2 付属書類Aにおける最大ルーマピクチャサイズ:プロファイル、ティアおよびレベル
[0200]表A1において指定されているMaxLumaPSは、アクセスユニット中の各レイヤのルーマピクチャサイズ(AUMaxLumaPS)の最大合計に対応し得る。
[0201]代替的に、HEVC基本仕様におけるレベルの同じ値は、拡張を示すために使用され得、ここにおいて、1つのレイヤは同じレベルを必要とする。この場合、以下の2つの態様が適用され得る。
− MaxLumaPSは、マルチビューまたは3DV拡張における最も高い空間解像度をもつ、スケーラブル拡張またはテクスチャビューにおける最も高いレイヤの最大ルーマピクチャサイズに対応する。
− AUMaxLumaPS/MaxLumaPSに基づいて、および、たとえば、DPBサイズおよび他のレベル関係制約を導出するときに考慮に入れて、スケーリングファクタが導入され、計算される。
[0202]上述のように、スケーリングファクタは、1つのレイヤコンポーネントの最大サンプル数で除算されたすべてのレイヤコンポーネントのサンプル数の合計として導出され得る。代替的に、スケーリングファクタは、ルーマ成分とクロマ成分の両方のためのクロマサンプリングフォーマットおよびビット深度値を考慮に入れることによって計算され得る。
[0203]スケーリングファクタに関係し得るDPBサイズを定義するために、様々な手法が使用され得る。
[0204]1つの手法では、「DPBサイズ」は物理メモリサイズを示し、したがって、スケーリングファクタは、記憶され得るピクチャの数をスケールダウンする。
[0205]代替的に、異なる手法では、「DPBサイズ」は、いくつのAUが記憶され得るかを示し、したがって、スケーリングファクタは、(ベースレイヤのみを有することと比較して)物理メモリサイズをスケールアップする。
[0206]4.1.3 レイヤコンポーネント参照ピクチャセットのマーキングステータスのための制約
[0207]代替#1
[0208]HEVCのスケーラブル拡張では、各レイヤの、同じアクセスユニットの復号中に生成されたピクチャを除く、参照ピクチャセットは、次のように制約される。
[0209]RPSiとして示された、各レイヤコンポーネントiのRPSは、RPSjのスーパーセットであり、ここにおいて、(同じアクセスユニットの)レイヤコンポーネントjはより小さいlayer_idを有し、RPSj中に含まれるピクチャ識別情報(POC)はRPSi中にも含まれることを意味する。
[0210]代替的に、各レイヤコンポーネントのためのそのRPSは同じであるべきである。この場合、インター予測参照のために、RPSのAUベースのシグナリングのみが必要とされる。AUベースのシグナリングは、ベースレイヤコンポーネントのみがRPSシンタックス要素を含んでいる方法で行われ得る。代替的に、AUベースのシグナリングは、各独立レイヤコンポーネントのみがRPSシンタックス要素を含んでいる方法で行われ得る。
[0211]参照ピクチャセットは、RefPicSetLtCurrと、RefPicSetLtFollと、RefPicSetStCurrBeforeと、RefPicSetStCurrAfterと、RefPicSetStFollとを含むことに留意されたい。
[0212]同様に、MV−HEVCでは、同じアクセスユニットの復号中に生成された参照ピクチャを除く、各ビューコンポーネントの参照ピクチャセットは、次のように制約される。
[0213]RPSiとして示された、レイヤコンポーネントiのRPSは、RPSjのスーパーセットであり、ここにおいて、(同じアクセスユニットの)レイヤコンポーネントjはより小さいlayer_idを有し、RPSi中にあるピクチャ識別情報(POC)はRPSj中に含まれないことを意味する。
[0214]代替的に、各レイヤコンポーネントのためのそのRPSは同じであるべきである。この場合、インター予測参照のために、RPSのAUベースのシグナリングのみが必要とされる。AUベースのシグナリングは、ベースレイヤコンポーネントのみがRPSシンタックス要素を含んでいる方法で行われ得る。代替的に、AUベースのシグナリングは、各独立レイヤコンポーネントのみがRPSシンタックス要素を含んでいる方法で行われ得る。
[0215]3D−HEVCでは、以下の制約する適用され得る。
[0216]RPSiとして示された、各テクスチャビューコンポーネントiのRPSは、RPSjのスーパーセットであり、ここにおいて、(同じアクセスユニットの)テクスチャビューコンポーネントjはより小さいlayer_idを有する。
[0217]RPSiとして示された、各深度ビューコンポーネントiのRPSは、RPSjのスーパーセットであり、ここにおいて、(同じアクセスユニットの)深度ビューコンポーネントjはより小さいlayer_idを有する。
[0218]RPStとして示された、テクスチャビューコンポーネントのRPSは、RPSdのスーパーセット、同じビューの深度ビューコンポーネントのRPSである。
[0219]代替的に、ビューコンポーネントがテクスチャであるか深度であるかにかかわらず、RPSiとして示された、レイヤコンポーネントiのRPSは、RPSjのスーパーセットであり、ここにおいて、(同じアクセスユニットの)レイヤコンポーネントjはより小さいlayer_idを有する。
[0220]代替#2
[0221]同じアクセスユニットのすべてのレイヤコンポーネントは同じRPSを共有する。
[0222]たとえば、各レイヤコンポーネントのためのRPSは同じであるべきである。さらに、代替的に、インター予測参照のために、RPSのAUベースのシグナリングのみが必要とされる。AUベースのシグナリングは、ベースレイヤコンポーネントのみがRPSシンタックス要素を含んでいる方法で行われ得る。代替的に、AUベースのシグナリングは、各独立レイヤコンポーネントのみがRPSシンタックス要素を含んでいる方法で行われ得る。
[0223]本開示の次のセクションでは、本開示の第2の例示的な技法のための(たとえば、スケーラブル、マルチビュー、および3D拡張を含む、HEVCのための)別の例示的な仮想参照デコーダ(HRD)実装形態について説明する。すなわち、以下のセクションは本開示の技法に適用され、それにより、DPBは複数のサブDPBからなり、各々は異なる空間解像度に関連し、各レイヤのための復号レイヤコンポーネントは別個に管理される。本明細書において述べる節および従属節は、上記のHEVC WD9の付属書類CにおけるHRD仕様に言及する。
[0224]4.2.1 HRD:仮想参照デコーダ(例#2)
[0225]A.4 復号ピクチャバッファ(DPB)の動作
[0226]この従属節における仕様は、従属節C.1において指定されているように、選択されたDPBパラメータの各セットに独立して適用される。
[0227]復号ピクチャバッファはピクチャ記憶バッファを含んでいる。ピクチャ記憶バッファの各々は、「参照のために使用される」とマークされたか、または将来の出力のために保持された復号レイヤコンポーネントを含んでいることがある。
[0228]復号ピクチャバッファは、1つまたは複数のサブ復号ピクチャバッファ(SDPB:sub decoded picture buffer)からなり、各々は異なる空間解像度に関連する。初期化より前に、各SDPBは空である(SDPBフルネスは0に設定される)。
[0229]この従属節の従属節の以下のステップは、以下に記載する順序で起こり、復号順序で、1つのレイヤについて毎回、繰り返し呼び出され、呼出し中に、「DPB」は「SDPB」と置き換えられ、「復号ピクチャ」は「復号レイヤコンポーネント」と置き換えられる。
[0230]すべてのレイヤコンポーネントが、IDR_W_DLPまたはIDR_N_LPに等しいnal_unit_typeを有する場合、ピクチャはIDRである。
[0231]すべてのレイヤコンポーネントが、BLA_W_LP、BLA_W_DLP、またはBLA_N_LPに等しいnal_unit_typeを有する場合、ピクチャはBLAである。
[0232]nal_unit_typeが、両端値を含む、16〜23の範囲内の値を有するとき(RAPピクチャ)、slice_typeは、ベースレイヤのために2に等しくなる(layer_idは0に等しい)が、layer_idが0よりもより大きい場合、他の値に等しくなり得る。
[0233]A.4.1 DPBからのピクチャの削除
[0234]現在ピクチャの復号の前の(ただし、現在ピクチャの第1のスライスのスライスヘッダをパースした後の)DPBからのピクチャの削除は、(現在ピクチャを含んでいる)アクセスユニットnの第1の復号ユニットのCPB削除時間に瞬時に起こり、次のように進む。
[0235]従属節8.3.2において指定されている参照ピクチャセットのための復号プロセスが呼び出される。
[0236]現在ピクチャがIDRピクチャまたはBLAピクチャである場合、以下が適用される。
1.IDRピクチャまたはBLAピクチャが、復号される第1のピクチャではなく、現在アクセスユニットのいずれかのレイヤのためのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値が、それぞれ、前のアクセスユニットを復号したときに導出されたpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実効値にかかわらず、HRDによって1に等しいと推論される。
注−デコーダ実装形態は、pic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering[i]の変更に関して、HRDよりも適切にピクチャまたはDPBサイズ変更を処理することを試みるべきである。
2.no_output_of_prior_pics_flagが、1に等しいかまたは1に等しいと推論されるとき、DPB中のすべてのピクチャ記憶バッファは、それらが含んでいるピクチャの出力なしに空にされ、DPBフルネスは0に設定される。
[0237]以下の条件のうちのすべてが真である、DPB中のすべてのピクチャkがDPBから削除される。
− ピクチャkが「参照のために使用されない」とマークされる、
− ピクチャkが、0に等しいPicOutputFlagを有するか、またはそれのDPB出力時間が、現在ピクチャnの(復号ユニットmとして示される)第1の復号ユニットのCPB削除時間以下である、すなわち、to,dpb(k)≦tr(m)である。
[0238]ピクチャがDPBから削除されると、DPBフルネスは1だけ減分される。
[0239]A.4.2 ピクチャ出力
[0240]以下は、アクセスユニットnのCPB削除時間、tr(n)に瞬時に起こる。
[0241]ピクチャnが1に等しいPicOutputFlagを有するとき、それのDPB出力時間to,dpb(n)は
によって導出される。上式で、pic_dpb_output_delay(n)は、アクセスユニットnに関連するピクチャタイミングSEIメッセージにおいて指定されているpic_dpb_output_delayの値である。
[0242]現在ピクチャの出力は次のように指定される。
− PicOutputFlagが1に等しく、to,dpb(n)=tr(n)である場合、現在ピクチャは出力される。
− そうではなく、PicOutputFlagが0に等しい場合、現在ピクチャは、出力されないが、従属節C.3.4において指定されているようにDPBに記憶される。
− そうでない場合(PicOutputFlagが1に等しく、to,dpb(n)>tr(n)である)、現在ピクチャは、後で出力され、(従属節C.3.4において指定されているように)DPBに記憶されることになり、to,dpb(n)に先行する時間に1に等しいno_output_of_prior_pics_flagの復号または推論によって出力されるべきでないことが示されない限り、時間to,dpb(n)に出力される。
[0243]出力時に、ピクチャは、アクティブシーケンスパラメータセットにおいて指定されている適合クロッピングウィンドウを使用してクロップされる。
[0244]ピクチャnが、出力されるピクチャであり、出力されるビットストリームの最後のピクチャではないとき、Dto,dpb(n)の値は、
のように定義される。上式で、nnは、出力順序でピクチャnに続く、1に等しいPicOutputFlagを有するピクチャを示す。
[0245]A.4.3 現在復号ピクチャマーキングおよび記憶
[0246]以下は、アクセスユニットnのCPB削除時間、tr(n)に瞬時に起こる。
[0247]現在復号ピクチャは空のピクチャ記憶バッファ中のDPBに記憶され、DPBフルネスは1だけ増分され、現在ピクチャは、「短期参照のために使用される」とマークされる。
[0248]A.5 ビットストリーム適合
[0249]従属節C.2における仕様が適用される。
[0250]A.6 デコーダ適合
[0251]A.6.1 一般
[0252]C.5.1における仕様は、以下の追加とともに適用される。
[0253]復号ピクチャバッファはピクチャ記憶バッファを含んでいる。ピクチャ記憶バッファの各々は、「参照のために使用される」とマークされたか、または将来の出力のために保持された復号レイヤコンポーネントを含んでいることがある。
[0254]復号ピクチャバッファは、1つまたは複数のサブ復号ピクチャバッファ(SDPB)を含み得、各々は異なる空間解像度に関連する。初期化より前に、各SDPBは空である(SDPBフルネスは0に設定される)。
[0255]この従属節の従属節の以下のステップは、以下に記載する順序で起こり、復号順序で、1つのレイヤについて毎回、繰り返し呼び出され、呼出し中に、「DPB」は「SDPB」と置き換えられ、「復号ピクチャ」は「復号レイヤコンポーネント」と置き換えられる。
[0256]ピクチャが、IDR_W_DLPまたはIDR_N_LPに等しいnal_unit_typeを有するレイヤコンポーネントである場合、それはIDRである。
[0257]ピクチャが、BLA_W_LP、BLA_W_DLP、またはBLA_N_LPに等しいnal_unit_typeを有するレイヤコンポーネントである場合、それはBLAである。
[0258]nal_unit_typeが、両端値を含む、16〜23の範囲内の値を有するとき(RAPピクチャ)、slice_typeは、ベースレイヤのために2に等しくなる(layer_idは0に等しい)が、layer_idが0よりもより大きい場合、他の値に等しくなり得る。
[0259]A.6.2 出力順序DPBの動作
[0260]復号ピクチャバッファはピクチャ記憶バッファを含んでいる。ピクチャ記憶バッファの各々は、「参照のために使用される」とマークされたか、または将来の出力のために保持された復号ピクチャを含んでいる。HRDの初期化において、DPBは空である。以下のステップは、以下に記載する順序で起こる。
[0261]A.6.3 DPBからのピクチャの出力および削除
[0262]現在ピクチャの復号の前の(ただし、現在ピクチャの第1のスライスのスライスヘッダをパースした後の)DPBからのピクチャの削除は、現在ピクチャを含んでいるアクセスユニットの第1の復号ユニットがCPBから削除されるときに瞬時に起こり、次のように進む。
[0263]従属節8.3.2において指定されている参照ピクチャセットのための復号プロセスが呼び出される。
− 現在ピクチャがIDRピクチャまたはBLAピクチャである場合、以下が適用される。
1.IDRピクチャまたはBLAピクチャが、復号される第1のピクチャではなく、現在アクセスユニットの各レイヤのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値が、それぞれ、前のアクセスユニットのために導出された各レイヤのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値とは異なるとき、no_output_of_prior_pics_flagは、no_output_of_prior_pics_flagの実効値にかかわらず、HRDによって1に等しいと推論される。
2.no_output_of_prior_pics_flagが、1に等しいかまたは1に等しいと推論されるとき、DPB中のすべてのピクチャ記憶バッファは、それらが含んでいるピクチャの出力なしに空にされる。
3.no_output_of_prior_pics_flagが1に等しくなく、1に等しいと推論されないとき、「出力のために必要とされない」および「参照のために使用されない」とマークされたピクチャを含んでいるピクチャ記憶バッファが(出力なしに)空にされ、従属節C.5.3.1において指定されている「バンピング」プロセスを繰り返し呼び出すことによって、DPB中のすべての空でないピクチャ記憶バッファが空にされる。
− そうでない場合(現在ピクチャがIDRピクチャまたはBLAピクチャではない)、「出力のために必要とされない」および「参照のために使用されない」とマークされたピクチャを含んでいるピクチャ記憶バッファが(出力なしに)空にされる。以下の条件のうちの1つまたは複数が真であるとき、従属節C.5.3.1において指定されている「バンピング」プロセスは、現在復号ピクチャを記憶するために空のピクチャ記憶バッファがあるまで、繰り返し呼び出される。
3.「出力のために必要とされる」とマークされたDPB中のピクチャの数は、sps_max_num_reorder_pics[HighestTid]よりも大きい、
4.DPB中のピクチャの数は、sps_max_dec_pic_buffering[HighestTid]に等しい。
アクセスユニットの各レイヤのpic_width_in_luma_samplesまたはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]は、現在アクセスユニットによって参照されたシーケンスパラメータセット中でシグナリングされるか、またはアクティブビデオパラメータセット中でシグナリングされるかのいずれかであり得ることに留意されたい。
[0264]A.6.3.1 「バンピング」プロセス
[0265]「バンピング」プロセスは以下の場合に呼び出される。
− 現在ピクチャはIDRピクチャまたはBLAピクチャであり、no_output_of_prior_pics_flagは、従属節C.5.2において指定されているように、1に等しくなく、1に等しいと推論されない。
− 「出力のために必要とされる」とマークされたDPB中のピクチャの数は、従属節C.5.2において指定されているように、sps_max_num_reorder_pics[TemporalId]よりも大きい。
− 現在ピクチャのTemporalIdよりも低いかまたはそれに等しいTemporalIdをもつDPB中のピクチャの数は、従属節C.5.2において指定されているように、sps_max_dec_pic_buffering[TemporalId]に等しい。
[0266]「バンピング」プロセスは以下の順序付きステップのを含み得る。
1.出力のための最初のものであるピクチャは、「出力のために必要とされる」とマークされたDPB中のすべてのピクチャのうちのPicOrderCntValの最小値を有するピクチャとして選択される。
2.ピクチャは、ピクチャのためのアクティブシーケンスパラメータセットにおいて指定されたクロッピング矩形を使用してクロップされ、クロップされたピクチャは出力され、ピクチャは、「出力のために必要とされない」とマークされる。
3.クロップされ、出力されたピクチャを含んだピクチャ記憶バッファが、「参照のために使用されない」とマークされたピクチャを含んでいる場合、ピクチャ記憶バッファは空にされる。
[0267]A.6.4 ピクチャ復号、マーキングおよび記憶
[0268]以下は、現在ピクチャを含んでいるアクセスユニットnの最後の復号ユニットがCPBから削除されたときに瞬時に起こる。
[0269]現在ピクチャは、ピクチャの最後の復号ユニットが復号された後に復号されると見なされる。現在復号ピクチャは、DPB中の空のピクチャ記憶バッファに記憶され、以下が適用される。
− 現在復号ピクチャが、1に等しいPicOutputFlagを有する場合、それは「出力のために必要とされる」とマークされる。
− そうでない場合(現在復号ピクチャが、0に等しいPicOutputFlagを有する)、それは「出力のために必要とされない」とマークされる。
[0270]現在復号ピクチャは「短期参照のために使用される」とマークされる。
[0271]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0272]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0273]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において十分に実装され得る。
[0274]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0275]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。