[0026]本開示の態様は、以下でより詳細に説明するように、ビデオコーディングにおける並列処理ツールの早期指示のための様々な技法に関し得る。いくつかの事例では、技法は、以下に述べるように、HEVCに対するマルチビュービデオコーディング拡張(MV−HEVC:Multi-view Video Coding extension to HEVC)、HEVCに対するマルチビュープラス深度ビデオコーディング拡張(3D−HEVC:Multi-view plus depth Video Coding extension to HEVC)、またはHEVCに対するスケーラブルビデオコーディング(SVC)拡張(SHVC:SVC extension to HEVC)などの、高効率ビデオコーディング(HEVC)規格に対するマルチレイヤ拡張とともに実行され得る。ただし、本開示の技法は、いかなる特定のビデオコーディング規格にも限定されず、同じくまたは代替的に、HEVCに対する他の拡張、(深度成分を用いるまたは用いない)他のマルチビューコーディング規格および/または他のマルチレイヤビデオ規格とともに使用され得る。さらに、本開示の技法は、以下で説明するように、単独でまたは組み合わせて適用され得る。
[0027]並列処理ツールは、ビデオデータを並列に符号化または復号するために使用され得る。たとえば、いくつかの並列処理ツールにより、単一のビデオピクチャの異なる空間部分を並列に符号化または復号することが可能になり得る。説明のための一例では、上述のHEVC規格に関して、並列処理は、波面並列処理(WPP:wavefront parallel processing)を使用して達成され得る。WPPは、それによってビデオブロックの2つ以上の行(たとえば、以下で説明するように、コード化ツリーブロック(CTB:coded tree block)行)がほぼ同時に(すなわち、並列に)符号化および/または復号されるビデオコーディング技法である。
[0028]WPPを使用した、イントラ予測と、インター予測と、いくつかのシンタックス要素パースとにおける相互依存性により、ブロックの行の並列復号が同期され得る。すなわち、ブロックの現在の行中のビデオブロックは、ブロックの現在の行の上のブロックの行中のビデオブロックからのコード化情報を使用し得る。ブロックの2つの行を並列に処理するときに、ビデオデコーダは、ブロックの下の行によって必要とされるデータがブロックの上の行中ですでにコーディングされていることを保証するために、2つの行中のブロック間の処理を同期させ得る。この点について、WPPプロセスは、ビットストリームパースプロセスと再構成プロセスとを含む2つの主要なプロセスに分割されると見なされ得る。再構成プロセスは、ブロックの行間の同期を含み得る。
[0029]別の並列処理技術は、ビデオをコーディングするためにいわゆるタイルを使用することを含む。たとえば、HEVCは、タイルのラスタ走査において連続的に順序付けられた、1つの列および1つの行内で同時に発生する整数個のブロックとしてタイルを定義する。各ピクチャをタイルに分割することは、パーティショニングと呼ばれることがある。ピクチャ中のタイルは、ピクチャのタイルラスタ走査において連続的に順序付けられる。タイルの数およびそれらの境界のロケーションは、全体のシーケンスに対して定義されるか、またはピクチャごとに変更され得る。タイル境界は、スライス境界と同様に、パースおよび予測依存を中断し、したがって、タイルは、別のタイルとは無関係に処理され得る。ただし、いくつかの事例では、ループ内フィルタ(たとえば、デブロッキングまたはサンプルアダプティブオフセット(SAO)フィルタ)は、依然としてタイル境界を横切り得る。
[0030]エントロピー復号および動き補償再構成のためにプロセッサまたはプロセッサコアの間で通信が必要とされない(または、比較的少量ですむ)ので、タイルの使用は並列性を向上させ得る。したがって、ピクチャの異なるタイルは、異なるプロセッサまたはプロセッサコアによって処理され得る。加えて、タイルがスライスよりも潜在的に高い相関を有するサンプルを含むピクチャパーティション形状を可能にするので、タイルは、スライスと比較したときに比較的良好なコーディング効率を示し得る。タイルはまた、スライスヘッダのオーバーヘッドを低減し得る。
[0031]上記で説明したWPPおよびタイル技法は、特定のレイヤ内で並列処理を提供し得るが、いくつかの事例では、ビデオデータの複数のレイヤも並列に符号化または復号され得る。ビデオデータの「レイヤ」は、概して、ビュー、フレームレート、解像度などの少なくとも1つの共通の特性を有するピクチャのシーケンスを指すことがある。たとえば、レイヤは、(たとえば、以下の図7に関して説明するように)マルチビュービデオデータの特定のビュー(たとえば、パースペクティブ)に関連するビデオデータを含み得る。別の例として、レイヤは、(たとえば、以下の図8〜図10に関して説明するように)スケーラブルビデオデータの特定のレイヤに関連するビデオデータを含み得る。したがって、本開示は、ビデオデータのレイヤとビューを交換可能に指すことがある。すなわち、ビデオデータのビューはビデオデータのレイヤと呼ばれることがあり、ビデオデータのレイヤはビデオデータのビューと呼ばれることがある。さらに、ビュー間予測およびレイヤ間予測という用語は、ビデオデータの複数のレイヤおよび/またはビューの間の予測を交換可能に指すことがある。さらに、(マルチレイヤビデオコーダまたはマルチレイヤエンコーダ−デコーダとも呼ばれる)マルチレイヤコーデックは、マルチビューコーデックまたはスケーラブルコーデック(たとえば、MV−HEVC、3D−HEVC、SHVC、または別のマルチレイヤコーディング技法を使用してビデオデータを符号化および/または復号するように構成されたコーデック)を共同で指すことがある。
[0032]いくつかの事例では、ビデオデータの複数のレイヤは、オフセット遅延を使用して並列にコーディングされ得る。オフセット遅延は、概して、複数のレイヤを並列に処理(たとえば、符号化または復号)することと関連する遅延を指すことがある。たとえば、ビデオデコーダは、マルチレイヤビットストリームの2つ以上のレイヤを並列に復号し得る。しかしながら、現在のレイヤを復号するためにレイヤ間予測技法を使用するとき、ビデオデコーダは、現在のレイヤとは異なる参照レイヤの参照データにアクセスし得る。現在のレイヤを復号するためのレイヤ間の参照として使用されるために、参照データが利用可能で(たとえば、復号され)なければならない。したがって、一般に、ビデオデコーダは、参照レイヤのうちの1つまたは複数を参照するレイヤを復号するより前に、マルチレイヤ復号方式におけるすべての参照レイヤの復号を確定する。
[0033]参照レイヤ全体が確定(たとえば、復号)されるのを待つのではなく、ビデオデコーダは、参照レイヤのうちの少なくともいくつかが復号されるまで、現在のレイヤの復号の開始を遅延し得る。オフセット遅延は、一般に、ビデオデコーダが現在のレイヤの復号を開始する前に復号されるべき参照レイヤの最低限の量を示し得る。オフセット遅延を実装することは、参照レイヤおよび現在のレイヤの少なくとも部分が並列に復号されることを依然として可能にしながら、レイヤ間参照データが参照として使用されるために、確実に利用可能にさせる助けとなり得る。たとえば、並列デコーダは、指定された参照レイヤのオフセット遅延が達成されるとすぐに、エンハンスメントレイヤの復号を開始し得る。上記の例はビデオ復号(並列デコーダによって実行されるような)に関して説明されるが、類似の技法が並列な符号化の間にビデオエンコーダによって適用され得ることを理解されたい。
[0034](たとえば、MV−HEVC、3D−HEVC、またはSHVCなどの)HEVCおよびHEVC拡張の設計は、いくつかの欠点を示し得る。たとえば、レイヤを横切って使用されるとき、タイルおよびWPPのいくつかの構成は、パイプライン化設計(たとえば、レイヤを横切ったリソースの割当て)およびコーデックの実装に影響を及ぼし得る。いくつかの事例では、パイプライン設計は、タイルおよびWPPの異なる構成に対して変更する必要があり得る。たとえば、タイルを使用してレイヤ間予測を実行するとき、レイヤ間予測についてのデータに異なる処理コアがアクセスする必要がないように、レイヤ中で同じ相対的な空間的ロケーションを有するタイルが、同じ処理リソース(たとえば、同じ処理コア)によって処理されるべきである。さらに、いくつかの事例では、メモリ、サイクルおよび遅延要件が、レイヤごとに異なり得る。
[0035]レイヤを横切った上記で説明した並列コーディングツール(たとえば、タイルおよび/またはWPP)の利用は、一般に、各レイヤのアクティブなピクチャパラメータセット(PPS)をパースすることによって導出され得る。しかしながら、PPSからそのような情報をパースすることは、簡単なプロセスではないことがあり、アクティブなPPSのコンテンツは、アクティブ化プロセスが開始した後(たとえば、特定のレイヤ内のピクチャを復号する間)になって初めてわかるので、遅延をもたらし得る。さらに、コード化ビデオシーケンスのための関係するPPSのすべてを発見し、PPSをパースすることでは、計算量的にわずらわしいパース作業が必要になり得る。
[0036]HEVC設計および(たとえば、MV−HEVC、3D−HEVC、および/またはSHVCなどの)関係する拡張に関する別の潜在的な問題は、並列性のためにレイヤにわたって(たとえば、マルチレイヤビデオデータの2つ以上のレイヤ中で)タイルが使用されるとき、タイル境界を横切ってループフィルタが適用され得るということである。ループフィルタは、デブロッキングフィルタまたはビデオ品質を改善するためにビデオコーディングプロセスにおいて使用される他のフィルタを含み得る。ビデオ品質を改善する可能性にもかかわらず、タイル境界を横切ってループフィルタを適用することを可能にすることは、並列性に影響を及ぼし、遅延をもたらし得る。たとえば、ループフィルタ処理がタイルを横切って適用される場合、特定のタイルのブロックは、ループフィルタ処理により変更され得、これは、そのタイルを使用してレイヤ間予測を実行することに関する問題を生じ得る。
[0037]本開示では、並列処理に関するシグナリング情報のための技法について説明する。本開示の技法により、ビデオデコーダは、コード化ビデオシーケンスの復号プロセスにおける比較的早期の時点においてコード化ビデオシーケンスのレイヤを横切ってタイルの構成および/またはWPP構成を決定することが可能になり得る。さらに、本開示の技法により、ビデオデコーダは、復号プロセスにおける比較的早期の時点においてタイル境界を横切ってループフィルタが適用され得るかどうかを決定することが可能になり得る。復号プロセスの比較的早期にそのような情報を決定することにより、いくつかの事例では、ビデオデコーダは、(たとえば、上記で説明したように、PPSなどの別のロケーションでそのような情報を与えることと比較して)より効率的にシステムリソースを割り当て、遅延を低減することが可能になり得る。すなわち、並列処理情報により、ビデオデコーダは、並列コーディングツールが使用されるかどうかを決定し、それが使用される場合、並列コーディングツールが実装される方法を決定することが可能になり得る。
[0038]いくつかの例では、並列処理情報は、以下でより詳細に説明するように、ビデオパラメータセット(VPS)中に与えられ得る。他の例では、並列処理情報は、以下でより詳細に説明するように、VPSビデオユーザビリティ情報(VUI:video usability information)中に与えられ得る。VPSは、(たとえば、PPSと比較して)復号プロセスの比較的早期に復号される。したがって、本開示の態様によれば、以下でより詳細に説明するように、VPS(またはVPS VUI)の並列処理情報は、コーディング中に使用される並列処理情報の早期指示を与え得る。すなわち、VPSの並列処理情報は、PPS中で与えられ、コーディング中に使用され得る他の並列処理情報を補い得る。たとえば、VPS(またはVPS VUI)の並列処理情報は、PPS中に含まれる並列処理情報の早期指示を与え得る。このようにして、以下でより詳細に説明するように、ビデオデコーダは、VPS(またはVPS VUI)からの並列処理情報を復号し、並列処理コーディングツールがマルチレイヤビットストリームにおいて使用されるかどうか(および/またはどのように使用されるか)を決定し、VPSからの並列処理情報の情報に基づいて復号リソースを割り当て得る。ビデオデコーダは、次いで、VPSによって示されたPPSの並列処理情報を使用して、マルチレイヤビットストリームを復号し始め得る。
[0039]本開示の態様によれば、ビデオデコーダは、ビデオデータに対応する1つまたは複数のシンタックス要素をパースするように構成され得、ここにおいて、1つまたは複数のシンタックス要素は、タイル構成、ループフィルタ構成、および並列処理構成のうちの1つまたは複数を示し、1つまたは複数のシンタックス要素に従ってビデオデータの並列復号を実行する。
[0040]図1は、本開示で説明する並列ビデオ処理のための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
[0041]宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0042]代替的に、符号化データは出力インターフェース22からストレージデバイス32に出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイス32からアクセスされ得る。ストレージデバイス32は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス32は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス32から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワークアタッチドストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、両方の組合せを含み得る。ストレージデバイス32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
[0043]本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他のアプリケーションなどの、様々なマルチメディアアプリケーションのいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどのアプリケーションをサポートするために、単方向または双方向ビデオ送信をサポートするように構成され得る。
[0044]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。しかしながら、本開示で説明する技法は、ビデオコーディング全般に適用可能であり得、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。
[0045]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化されたビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス32上に記憶され得る。
[0046]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス33とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、またはストレージデバイス32上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダによる使用のためにビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信され、記憶媒体上に記憶され、またはファイルサーバに記憶される、符号化されたビデオデータとともに含まれ得る。
[0047]ディスプレイデバイス33は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス33は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備え得る。
[0048]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0049]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本開示の技法がソフトウェアに部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を好適な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用して命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、そのいずれも、それぞれのデバイスにおいて、複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0050]本開示では、概して、ビデオエンコーダ20が、ある種の情報をビデオデコーダ30などの別のデバイスに「シグナリング」することに言及することがある。ただし、ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ20は、ビデオデータの様々な符号化された部分のヘッダに、あるシンタックス要素を格納することによって、データを「シグナリング」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ30によって受信され復号されるより前に、符号化および格納され得る。したがって、「シグナリング」という用語は、通信がリアルタイムまたはほぼリアルタイムで行われるか、あるいは、符号化時にシンタックス要素を媒体に記憶し、次いで、この媒体に記憶された後の任意の時間にそのシンタックス要素が復号デバイスによって取り出され得るときなどに行われ得る、ある時間期間にわたって行われるかどうかにかかわらず、概して、圧縮ビデオデータを復号するためのシンタックスまたは他のデータの通信を指し得る。
[0051]ビデオエンコーダ20およびビデオデコーダ30は、ITU-T Video Coding Experts Group(VCEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって開発されたHEVC規格およびISO/IEC Motion Picture Experts Group(MPEG)などのビデオ圧縮規格に従って動作し得る。HEVCは、ITU−T H.265、SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS、オーディオビジュアルサービスのインフラストラクチャ−動画像(Moving Video)のコーディング、「高効率ビデオコーディング(High Efficiency Video Coding)」(2013年4月)に記載されている。以下でHEVC WDと呼ぶ、1つのHEVCドラフト仕様が、
http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip
から入手可能である。
[0052]HEVCの様々な拡張が提案されている。たとえば、HEVCのマルチビュー拡張、すなわち、MV−HEVCおよびより高度の3Dビデオコーディングのための別のHEVC拡張(3D−HEVC)がJCT−3Vによって開発されている。一方、HEVCのスケーラブルビデオコーディング拡張、すなわち、SHVCが、JCT−VCによって開発されている。
[0053]以下でMV−HEVC WD5と呼ぶ、MV−HEVCの最近のワーキングドラフト(WD)が、
http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1004-v6.zip
から入手可能である。
以下で3D−HEVC WD1と呼ぶ、3D−HEVCの最近のWDが、
http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1001-v3.zip
から入手可能である。
以下でSHVC WD3と呼ばれる、SHVCの最近のWDが、
http://phenix.it-sudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1008-v3.zip
から入手可能である。HEVCの別の拡張は、「高効率ビデオコーディング(HEVC)範囲拡張テキスト仕様:ドラフト4」、JCTVC−N1005_v1、2013年4月(以下「JCTVC−N1005」)に記載されているHEVC範囲拡張である。
[0054]ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。したがって、本開示の技法は、並列処理の指示が望ましい様々なコーディング規格のいずれかに適用され得る。
[0055]HEVCに関して、一例として、規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対して、ビデオコーディングデバイスのいくつかの追加の機能を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを与えるが、HMは33個ものイントラ予測符号化モードを与え得る。
[0056]概して、HEVC HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むコーディングツリーブロック(CTB:coding tree block)または最大コーディングユニット(LCU:largest coding unit)のシーケンスに分割され得ることを記載している。多くの例では、CTBは、サンプル(たとえば、ルーマまたはクロマサンプル)のN×Nブロックである。CTBは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順にいくつかの連続するCTBを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスにパーティショニングされ得る。各CTBは、4分木に従って、コーディングユニット(CU)に分割され得る。たとえば、クワッドツリーのルートノードとしてのCTBは、4つの子ノードに分割され得、各子ノードは、次に親ノードとなる場合があり、別の4つの子ノードに分割され得る。4分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連付けられるシンタックスデータは、CTBが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
[0057]CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、概して、コーディングノードのサイズに対応し、一般に、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64ピクセル以上のCTBのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUの1つまたは複数のPUへのパーティショニングを記述し得る。パーティショニングモードは、CUがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかの間で異なり得る。PUは、形状が非正方形になるようにパーティショニングされ得る。CUに関連するシンタックスデータはまた、たとえば、4分木に従うCUの1つまたは複数のTUへのパーティショニングを記述し得る。TUは、形状が正方形または非正方形であり得る。
[0058]HEVC規格は、異なるCUに対して異なり得る、TUに従う変換を可能にする。TUは、一般に、パーティショニングされたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般に、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
[0059]概して、PUは、予測プロセスに関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0060]概して、TUは、変換プロセスと量子化プロセスとのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)をも含み得る。予測に続いて、ビデオエンコーダ20は、PUに従ってコーディングノードによって識別されたビデオブロックから残差値を計算し得る。コーディングノードは、次いで、元のビデオブロックではなく、残差値を参照するように更新される。残差値はピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化変換係数(serialized transform coefficient)を生成するためにTU中で指定された変換と他の変換情報とを使用して変換係数に変換され、量子化され、走査され得る。コーディングノードはこれらのシリアル化変換係数を指すようにもう一度更新され得る。本開示では、一般に、コーディングノードならびにPUおよびTUを含む、CTB、LCU、またはCUのうちの1つまたは複数を指すためも「ビデオブロック」という用語を使用する。
[0061]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャの1つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは変動サイズを有し得、指定されたコーディング規格に応じてサイズが異なり得る。
[0062]一例として、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を指す。
[0063]本開示では、「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に等しいとは限らない。
[0064]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUによって指定された変換が適用される残差データを計算し得る。残差データは、符号化されていないピクチャのピクセルと、CUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUについての残差データを形成し、次いで、残差データを変換して、変換係数を生成し得る。
[0065]変換係数を生成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ここで、nはmよりも大きい。
[0066]いくつかの例では、ビデオエンコーダ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が使用するための、符号化されたビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0067]上記のように、本開示の技法は、タイルおよび/またはWPPを使用してビデオデータをコーディングすることなど、並列コーディングツールの早期指示を与えるために使用され得る。たとえば、典型的なビットストリーム構成は、ビデオパラメータセット(VPS)、VPS拡張、シーケンスパラメータセット(SPS)、SPS拡張、ピクチャパラメータセット(PPS)、PPS拡張、スライスヘッダ、ビデオペイロードであり得る。いくつかの事例では、並列コーディングツールは、PPSおよび/またはPPS拡張において示され得る。
[0068]本開示の技法は、いくつかの事例では、並列コーディングツールがビデオデコーダによって受信されたマルチレイヤビットストリームのレイヤ内、たとえば、VPS中で使用されるかどうかの早期指示をビデオデコーダに与えるために使用され得る。たとえば、VPSの並列処理情報は、PPS中に与えられ、コーディング中に使用され得る他の並列処理情報を補い得、それによって、(たとえば、VPSの情報がPPSより前に復号されるので)PPS中に含まれる並列処理情報の早期指示を与え得る。
[0069]本開示の態様によれば、本技法により、ビデオデコーダ30などのビデオデコーダは、マルチレイヤビデオデータを復号するための復号リソースを効率的に割り当て、全体的な復号遅延を低減することが可能になり得る。たとえば、ビデオエンコーダ20は、マルチレイヤビットストリームのレイヤについてのタイル構成および/またはマルチレイヤビットストリームのレイヤについての並列処理構成を示すVPSおよび/またはVPS VUIのデータを符号化し得る(およびビデオデコーダ30は、それを復号し得る)。特に、並列処理構成に関して、データは、並列処理同期(たとえば、WPPにおいて実行されるエントロピーコーディング同期)が実行されるかどうかを示し得る。
[0070]概して、VPSは、サブレイヤ間の依存性を含む、コード化ビデオシーケンスの全特性を記述するデータを含み得る。VPSの1つの目的は、システムレイヤにおけるシグナリングに関して、特定の規格の互換性のある拡張性を可能にすることであり得る。VPSは、通常、復号されるべきビットストリームのためのマルチレイヤビットストリームの中に含まれなければならない。VPSは、追加または代替として、ビデオ表現情報、仮想参照デコーダ(HRD)パラメータ、および/またはビットストリーム制限情報などのビデオユーザビリティ情報(VUI)を定義するデータを含み得る。ビットストリーム制限情報は、動きベクトルレンジと、復号ピクチャバッファ(DPB)サイズ(たとえば、DPBによって保持されるピクチャの数に関する)と、並べ替えフレームの数(すなわち、順序を表示するための、復号順序から並べ替えられるフレームの数の表示)と、コーディングされたブロック(たとえば、マクロブロック(MB)またはコーディングツリーユニット)のサイズと、コーディングされたピクチャのサイズとに関する制限を含み得る。VPSは、未来の規格または次回のHEVC規格の拡張によって拡張され得るように、1つまたは複数のVPS拡張についてのデータをさらに与え得る。本開示では、頭字語VPSは、適用可能なとき、VPSとVPS VUIとの両方を一緒に指し得る。
[0071]レイヤごとにタイルとWPPとの構成を示すための例示的なVPS VUIが、以下の表1に示されている。WPPについて、たとえば、以下の図4A〜図5に関してより詳細に説明する。タイルについて、たとえば、以下の図6に関してより詳細に説明する。本開示の態様によれば、ビデオエンコーダ20は、表1に示すシンタックス要素を符号化し、符号化されたビットストリーム中に符号化されたシンタックス要素を含め得る。同様に、ビデオデコーダ30は、符号化されたビットストリームからシンタックス要素をパースし、復号し得る。
[0072]1の値に等しいシンタックス要素tiles_enabled_vps_flag[i]は、VPSによって指定されたi番目のレイヤの少なくとも1つのピクチャによって参照される(たとえば、それに関連付けられる)各PPSについてtiles_enabled_flagの値が1に等しくなることを示す。値0に等しいシンタックス要素tiles_enabled_vps_flag[i]は、VPSによって指定されたi番目のレイヤの少なくとも1つのピクチャによって参照される(たとえば、それに関連付けられる)各PPSについてtiles_enabled_flagの値が0に等しくなることを示す。
[0073]1に等しいシンタックス要素tiles_enabled_flagは、PPSを参照する各ピクチャ中に2つ以上のタイルがあることを指定する。0の値に等しいシンタックス要素tiles_enabled_flagは、PPSを参照する各ピクチャ中に1つだけタイルがあることを指定する。
[0074]値1に等しいシンタックス要素loop_filter_across_tiles_disabled_vps_flag[i]は、VPSによって指定されたi番目のレイヤの少なくとも1つのピクチャによって参照される(たとえば、それに関連付けられる)各PPSについてloop_filter_across_tiles_enabled_flagの値が0に等しくなることを示す。0の値に等しいシンタックス要素loop_filter_across_tiles_enabled_vps_flag[i]は、上記の制約が適用され得るか、または適用され得ないことを示す。
[0075]1に等しいシンタックス要素loop_filter_across_tiles_enabled_flagは、ループ内フィルタ処理動作がタイル境界を横切って実行されることを指定する。0の値に等しいシンタックス要素loop_filter_across_tiles_enabled_flagは、ループ内フィルタ処理動作がタイル境界を横切って実行されないことを指定する。ループ内フィルタリング動作は、デブロッキングフィルタおよびサンプルアダプティブオフセットフィルタ動作を含み得る。存在しない(たとえば、シンタックス要素loop_filter_across_tiles_enabled_flagがビットストリーム中に含まれない)とき、シンタックス要素loop_filter_across_tiles_enabled_flagの値が1に等しくなると推論される。
[0076]値1に等しいシンタックス要素entropy_coding_sync_enabled_vps_flag[i]は、VPSによって指定されたi番目のレイヤの少なくとも1つのピクチャによって参照される(たとえば、それに関連付けられる)各PPSについてentropy_coding_sync_enabled_flagの値が1に等しくなることを示す。0の値に等しいシンタックス要素entropy_coding_sync_enabled_vps_flag[i]は、VPSによって指定されたi番目のレイヤの少なくとも1つのピクチャによって参照される(たとえば、それに関連付けられる)各PPSについてentropy_coding_sync_enabled_flagの値が0に等しくなることを示す。
[0077]1に等しいシンタックス要素entropy_coding_sync_enabled_flagは、コンテキスト変数のための特定の同期プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の第1のコーディングツリーブロックを復号する前に呼び出されることと、コンテキスト変数のための特定の記憶プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の2つのコーディングツリーブロックを復号した後に呼び出されることとを指定する。0の値に等しいシンタックス要素entropy_coding_sync_enabled_flagは、コンテキスト変数のための特定の同期プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の第1のコーディングツリーブロックを復号する前に呼び出される必要がないことと、コンテキスト変数のための特定の記憶プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の2つのコーディングツリーブロックを復号した後に呼び出される必要がないこととを指定する。
[0078]したがって、上記で表1の例中に含まれるシンタックス要素を受信すると、ビデオデコーダ30は、マルチレイヤビットストリームのレイヤについてのタイル構成および/または並列処理構成を決定し得る。たとえば、0からレイヤの最大数までの各レイヤについて(たとえば、for(i=0; i≦vps_max_layers_minus1; i++)、ビデオデコーダ30は、符号化ビットストリームのVPSから、レイヤ中の少なくとも1つのピクチャ中でタイルが使用可能(enabled)であるかどうかを示すデータ(たとえば、tiles_enabled_vps_flag[i]シンタックス要素)を取得し得る。さらに、タイルが使用可能である各レイヤについて(たとえば、if(tiles_enabled_vps_flag[i]))、ビデオデコーダ30はまた、ループフィルタ処理がタイル境界を横切って適用されるかどうか、またはタイル境界を横切ったループフィルタ処理が使用不可(disabled)であるかどうかを示すデータ(たとえば、loop_filter_across_tiles_disabled_vps_flag[i]シンタックス要素)を取得し得る。
[0079]さらに、ビデオデコーダ30はまた、並列処理構成を示すデータを取得し得る。たとえば、ビデオデコーダ30は、たとえば、WPPを介してエントロピーコーディング同期が実行されるかどうかを示すデータ(たとえば、entropy_coding_sync_enabled_vps_flag[i])を取得し得る。他の例では、タイル構成および/または並列処理構成を搬送するために、異なる命名規則を有するシンタックス要素が使用され得る。
[0080]別の例では、本開示の技法は、VPS中でタイルのクロスレイヤ整列ならびにWPPおよびループフィルタ構成(たとえば、タイル境界を横切ったループフィルタの使用、loopfilter_accross_tile_boundary)の指示のシグナリング/読取りを行うことを含む。第1の例では、レイヤごとのタイルおよびWPPの構成の指示は、以下の表2で示すように、修正VPS VUIで行われ得る。ビデオエンコーダ20は、表2に示すシンタックス要素を符号化し、符号化されたビットストリーム中に符号化されたシンタックス要素を含め得る。同様に、ビデオデコーダ30は、符号化されたビットストリームからシンタックス要素をパースし、復号し得る。
[0081]0に等しいシンタックス要素parallel_tools_vps_idcは、ピクチャについてシンタックス要素tiles_enabled_flagとシンタックス要素entropy_coding_sync_enabled_flagとの両方が0に等しくなることを示す。1に等しいシンタックス要素parallel_tools_vps_idcは、すべてのレイヤ中のピクチャについて、シンタックス要素entropy_coding_sync_enabled_flagが1に等しくなり、シンタックス要素tiles_enabled_flagが0に等しくなることを示す。2に等しいシンタックス要素parallel_tools_vps_idcは、すべてのレイヤ中のピクチャについて、シンタックス要素tiles_enabled_flagが1に等しくなり、シンタックス要素entropy_coding_sync_enabled_flagが0に等しくなることを示す。3に等しいシンタックス要素parallel_tools_vps_idcは、0個以上のレイヤ中のピクチャについてシンタックス要素tiles_enabled_flagが1に等しくなり得、0個以上のレイヤ中のピクチャについてシンタックス要素entropy_coding_sync_enabled_flagが1に等しくなり得ることを示す。
[0082]以下の表3および表4に、タイルおよびWPPの構成を示すためにVPS VUIがどのように変更され得るかの追加の例を示す。本開示の態様によれば、ビデオエンコーダ20は、表3および表4に示すシンタックス要素を符号化し、符号化されたビットストリーム中に符号化されたシンタックス要素を含め得る。同様に、ビデオデコーダ30は、符号化されたビットストリームからシンタックス要素をパースし、復号し得る。
[0083]0の値に等しいシンタックス要素parallel_tools_vps_idc[i]は、アクティブPPSを参照するi番目のレイヤのピクチャについて、シンタックス要素tiles_enabled_flagとシンタックス要素entropy_coding_sync_enabled_flagとの両方が0に等しくなることを示す。1に等しいシンタックス要素parallel_tools_vps_idc[i]は、i番目のレイヤのピクチャおよびアクティブPPSを参照するそれの直接参照レイヤピクチャのすべてについてシンタックス要素entropy_coding_sync_enabled_flagが1に等しくなることを示す。2に等しいシンタックス要素parallel_tools_vps_idc[i]は、i番目のレイヤのピクチャおよびアクティブPPSを参照するそれの直接参照レイヤピクチャのすべてについてシンタックス要素tiles_enabled_flagが1に等しくなることを示す。3に等しいシンタックス要素parallel_tools_vps_idc[i]は、シンタックス要素tiles_enabled_flagが、i番目のレイヤのピクチャについて1に等しくなるとき、それの直接参照レイヤのうちの少なくとも1つがシンタックス要素entropy_coding_sync_enabled_flag = 1 を有し、i番目のレイヤのピクチャについてシンタックス要素entropy_coding_sync_enabled_flag = 1 であるとき、それの直接参照レイヤのうちの少なくとも1つが1に等しいシンタックス要素tiles_enabled_flagを有することを示す。
[0084]1に等しいシンタックス要素tile_entropy_sync_coding_not_mixed_flag[i][j]は、CVS内で、シンタックス要素tiles_enabled_flagが、i番目のレイヤのアクティブPPSについて1に等しくなるとき、シンタックス要素entropy_coding_sync_enabled_flagが、i番目のレイヤのj番目の直接参照レイヤのアクティブPPSについて0に等しくなること、またはシンタックス要素entropy_coding_sync_enabled_flagが、i番目のレイヤのアクティブPPSについて1に等しくなるとき、シンタックス要素tiles_enabled_flagは、i番目のレイヤのj番目の直接参照レイヤのアクティブPPSについて0に等しくなることを示す。0の値に等しいシンタックス要素tile_entropy_sync_coding_not_mixed_flag[i][j]は、そのような制限が適用され得るか、または適用され得ないことを示す。そのような例では、制限を適用すべきかどうかを示すために、1つまたは複数の追加のシンタックス要素が使用され得る。
[0085]1に等しいシンタックス要素loopfilter_across_tile_boundary_not_mixed_flag[i][j]は、CVS内で、シンタックス要素loop_filter_across_tiles_enabled_flagが、i番目のレイヤのアクティブPPSについて1に等しくなるとき、シンタックス要素loop_filter_across_tiles_enabled_flagも、i番目のレイヤのj番目の直接参照レイヤのアクティブPPSについて1に等しくなることを示す。0の値に等しいシンタックス要素loopfilter_across_tile_boundary_not_mixed_flag[i][j]は、そのような制限が適用され得るか、または適用され得ないことを示す。そのような例では、制限を適用すべきかどうかを示すために、1つまたは複数の追加のシンタックス要素が使用され得る。
[0086]このようにして、ビデオエンコーダ20は、マルチレイヤビットストリームのビデオパラメータセット(VPS)中で、マルチレイヤビットストリームのレイヤについてのタイル構成を示すデータ、またはマルチレイヤビットストリームのレイヤについての並列処理構成を示すデータのうちの少なくとも1つを符号化し得る。同様に、ビデオデコーダ30は、マルチレイヤビットストリームのビデオパラメータセット(VPS)から、マルチレイヤビットストリームのレイヤについてのタイル構成を示すデータ、またはマルチレイヤビットストリームのレイヤについての並列処理構成を示すデータのうちの少なくとも1つを復号し得る。
[0087]図2は、本開示で説明する技法を実施し得る例示的なビデオエンコーダ20を示すブロック図である。特に、ビデオエンコーダ20は、本開示の技法に従ってマルチレイヤビットストリームのデータを符号化するように構成され得る。上述のように、ビデオエンコーダ20は、マルチビューおよび/またはスケーラブルビデオコーディングを実行するように適応され得る。たとえば、ビデオエンコーダ20は、SHVC、MV−HEVC、または3D−HEVCなどの1つまたは複数のビデオコーディング規格の拡張に準拠するビットストリームを符号化するように構成され得る。ただし、特定のコーディング規格が参照されるが、本技法は、任意の1つのコーディング規格に固有のものではなく、将来のおよび/またはまだ開発されていない規格とともに実装され得ることを理解されたい。
[0088]図2の例では、ビデオエンコーダ20は、パーティショニングユニット35と、ビデオデータメモリ37と、予測処理ユニット41と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62と、(復号ピクチャバッファ(DPB)と呼ばれることもある)参照ピクチャメモリ64と、フィルタリングユニット66とを含む。
[0089]ビデオデータメモリ37は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ37に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。参照ピクチャメモリ64は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する、復号ピクチャバッファと呼ばれることがある。ビデオデータメモリ37および参照ピクチャメモリ64は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)など、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ37および参照ピクチャメモリ64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ37は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0090]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオ中の空間冗長性を低減または削除するために、空間予測に頼る。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオ中の時間冗長性を低減または削除するために、時間的予測に頼る。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
[0091]たとえば、図2に示すように、ビデオエンコーダ20はビデオデータを受信し、パーティショニングユニット35はデータをビデオブロックにパーティショニングする。このパーティショニングはまた、たとえば、LCUおよびCUの4分木構造に従って、スライス、タイル、または他のより大きいユニットへのパーティショニング、ならびにビデオブロックパーティショニングをも含み得る。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、エラー結果(たとえば、コーディングレートおよびひずみレベル)に基づいて、現在のビデオブロックのために、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
[0092]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在のブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行する。
[0093]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライスまたはBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
[0094]予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、完全なピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0095]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0096]動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックについての残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
[0097]イントラ予測処理ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードにレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または、誤差)の量、ならびに符号化されたブロックを生成するために使用されたビットレート(すなわち、ビットの個数)を決定する。イントラ予測処理ユニット46は、符号化された様々なブロックのひずみおよびレートから比を算出し、どのイントラ予測モードがブロックの最良のレートひずみ値を示すのかを決定し得る。
[0098]いずれの場合も、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更イントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更イントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
[0099]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後に、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT:discrete cosine transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
[0100]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が、走査を実行し得る。
[0101]量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔パーティショニングエントロピー(PIPE)コーディングまたは別のエントロピー符号化方法もしくは技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームはビデオデコーダ30に送信されるか、またはビデオデコーダ30が後で送信するかもしくは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
[0102]逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
[0103]フィルタリングユニット66は、様々なフィルタリングプロセスを実行し得る。たとえば、フィルタリングユニット66は、デブロッキングフィルタリングを実行し得る。すなわち、フィルタリングユニット66は、スライスまたはフレームからブロッキネスアーティファクトを除去するために、再構成されたビデオおよびフィルタブロック境界のスライスまたはフレームを形成する複数の再構成されたビデオブロックを受信し得る。一例では、フィルタリングユニット66は、ビデオブロックのいわゆる「境界強度」を評価する。ビデオブロックの境界強度に基づいて、ビデオブロックのエッジピクセルは、閲覧者にとって1つのビデオブロックから別のビデオブロックへの遷移を知覚することがより困難になるように、隣接ビデオブロックのエッジピクセルに対してフィルタ処理され得る。
[0104]いくつかの事例では、デブロッキングフィルタによって使用される変数は、再構成されたビデオブロックを元のソースビデオブロックと比較せずに、再構成されたビデオブロックから導出され得る。したがって、ビデオエンコーダ20およびビデオデコーダ30(図3)はそれぞれ、ビットストリーム内にコーディングされた元のビデオフレームに関する最小の追加の情報を用いて、再構成されたビデオブロックに関して同じデブロッキングプロセスを実行するようにプログラムされ得る。ただし、場合によっては、フィルタリングユニット66は、デブロッキングが実行されるべきであるかどうか、および/または特定のタイプのデブロッキングモードのうちの1つが実行されるべきであるかどうかを示すシンタックス要素をビットストリーム中に含み得る。他の例では、フィルタリングユニット66は、サンプルアダプティブオフセット(SAO)フィルタまたは他のフィルタなど、いくつかの追加のおよび/または代替のフィルタを適用し得る。
[0105]本開示の態様によれば、ビデオエンコーダ20は、マルチレイヤビットストリームのレイヤについてのタイル構成および/または並列処理構成を示すデータを符号化するように構成され得る。たとえば、ビデオエンコーダ20は、マルチレイヤビットストリームのレイヤについてのタイル構成および/またはマルチレイヤビットストリームのレイヤについての並列処理構成を示すVPSおよび/またはVPS VUIのデータを符号化するように構成され得る。特に、並列処理構成に関して、データは、並列処理同期(たとえば、WPPにおいて実行されるエントロピーコーディング同期)が実行されるかどうかを示し得る。
[0106]いくつかの例では、タイル構成および/または並列処理構成を示すデータは、いくつかのシンタックス要素を含み得る。たとえば、マルチレイヤビットストリーム中のビデオデータの各レイヤについて、ビデオエンコーダ20は、(たとえば、上記の表1の例で示されるtiles_enabled_vps_flag[i]シンタックス要素など)レイヤ中の少なくとも1つのピクチャ中でタイルが使用可能であるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。さらに、タイルが使用可能である各レイヤについて、ビデオエンコーダ20はまた、(たとえば、上記の表1の例で示されるloop_filter_across_tiles_disabled_vps_flag[i]シンタックス要素など)タイル境界を横切ってループフィルタ処理が適用されるかどうか、またはタイル境界を横切ったループフィルタ処理が使用不可であるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。いくつかの事例では、ビデオエンコーダ20はまた、並列処理構成を示す1つまたは複数のシンタックス要素を符号化し得る。たとえば、ビデオエンコーダ20は、(たとえば、上記の表1の例で示されるentropy_coding_sync_enabled_vps_flag[i]シンタックス要素など)たとえば、WPPを介して、エントロピーコーディング同期が実行されるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。
[0107]図3は、本開示で説明する技法を実施し得る例示的なビデオデコーダ30を示すブロック図である。特に、ビデオデコーダ30は、本開示の技法に従ってビデオデータの波面並列処理を実行するように構成され得る。上述のように、ビデオデコーダ30は、マルチビューおよび/またはスケーラブルビデオコーディングを実行するように構成され得る。たとえば、ビデオデコーダ30は、SHVC、MV−HEVC、または3D−HEVCなどの1つまたは複数のビデオコーディング規格の拡張に準拠するビットストリームを復号するように構成され得る。ただし、特定のコーディング規格が参照されるが、本技法は、任意の1つのコーディング規格に固有のものではなく、将来のおよび/またはまだ開発されていない規格とともに実装され得ることを理解されたい。
[0108]図3の例では、ビデオデコーダ30は、ビデオデータメモリ79と、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、参照ピクチャメモリ92と、フィルタリングユニット94とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
[0109]ビデオデータメモリ79は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ79に記憶されるビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ79は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコーディング済みピクチャバッファ(CPB)を形成し得る。参照ピクチャメモリ92は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する、復号ピクチャバッファと呼ばれることがある。ビデオデータメモリ79および参照ピクチャメモリ92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)など、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ79および参照ピクチャメモリ92は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0110]復号プロセスの間、ビデオデコーダ30は、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームをビデオエンコーダ20から受信する。ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0111]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ92に記憶された参照ピクチャに基づくデフォルトの構成技法を使用して参照フレームリストのリスト0およびリスト1を構成し得る。
[0112]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスの各インター符号化されたビデオブロックのための動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0113]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0114]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された、量子化された変換係数を逆量子化する(inverse quantize)、すなわち、逆量子化する(de-quantize)。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0115]動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックに関する予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。
[0116]フィルタリングユニット94は、いくつかの例では、ビデオエンコーダ20(図2)のフィルタリングユニット66と同様に構成され得る。たとえば、フィルタリングユニット94は、符号化ビットストリームからのビデオデータを復号および再構成するとき、デブロッキング、SAO、または他のフィルタリング動作を実行するように構成され得る。その後、所与のフレームまたはピクチャ内の復号されたビデオブロックは、参照ピクチャメモリ92内に記憶され、参照ピクチャメモリ92は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ92はまた、図1のディスプレイデバイス33などのディスプレイデバイス上での後の表示のための、復号ビデオを記憶する。
[0117]本開示の態様によれば、ビデオデコーダ30は、マルチレイヤビットストリームのレイヤについてのタイル構成および/または並列処理構成を示すデータを復号するように構成され得る。たとえば、ビデオデコーダ30は、マルチレイヤビットストリームのレイヤについてのタイル構成および/またはマルチレイヤビットストリームのレイヤについての並列処理構成を示すVPSおよび/またはVPS VUIのデータを復号するように構成され得る。特に、並列処理構成に関して、データは、並列処理同期(たとえば、WPPにおいて実行されるエントロピーコーディング同期)が実行されるかどうかを示し得る。
[0118]いくつかの例では、タイル構成および/または並列処理構成を示すデータは、いくつかのシンタックス要素を含み得る。たとえば、マルチレイヤビットストリーム中のビデオデータの各レイヤについて、ビデオデコーダ30は、(たとえば、上記の表1の例で示されるtiles_enabled_vps_flag[i]シンタックス要素など)レイヤ中の少なくとも1つのピクチャ中でタイルが使用可能であるかどうかを示す1つまたは複数のシンタックス要素を復号し得る。さらに、タイルが使用可能である各レイヤについて、ビデオデコーダ30はまた、(たとえば、上記の表1の例で示されるloop_filter_across_tiles_disabled_vps_flag[i]シンタックス要素など)タイル境界を横切ってループフィルタ処理が適用されるかどうか、またはタイル境界を横切ったループフィルタ処理が使用不可であるかどうかを示す1つまたは複数のシンタックス要素を復号し得る。いくつかの事例では、ビデオデコーダ30はまた、並列処理構成を示す1つまたは複数のシンタックス要素を復号し得る。たとえば、ビデオデコーダ30は、(たとえば、上記の表1の例で示されるentropy_coding_sync_enabled_vps_flag[i]シンタックス要素など)たとえば、WPPを介して、エントロピーコーディング同期が実行されるかどうかを示す1つまたは複数のシンタックス要素を復号し得る。
[0119]本開示の態様によれば、ビデオデコーダ30は、シンタックス要素に従ってビデオデータのビデオ復号を実行し得る。たとえば、ビデオデコーダ30は、復号されたシンタックス要素に基づいて復号リソースを割り当て、ビデオデータを復号することを続け得る。
[0120]図4Aおよび図4Bに、波面並列処理におけるCTB同期の例を示す概念図を示す。図4Aおよび図4Bの例が説明のために提示されることに留意されたい。他の例では、3つ以上のCTB行が並列に処理され得る。さらに、ビデオフレームは、CTB行中に、図4Aおよび図4Bに示される7つのCTBより多いまたはそれより少ないCTBを備え得る。
[0121]図4Aに、1つのCTBによって遅延された同期ポイントをもつ波面並列処理の一例を示す。図4Aの例では、2つのCTB行が並列に処理(たとえば、復号)される。CTB行1中のCTB0の復号は、同期ポイントAにおいて、CTB行0の復号も同期ポイントAに達するまで始まらない。
[0122]図4Aの例では、同期ポイントAは、CTB行0中のCTB0の復号が完了した後に発生する。この遅延により、CTBの真上または左上のCTB中の復号されたシンタックス要素および/またはピクセル情報に頼る、行1中のCTB0中のシンタックス要素および/またはピクセル情報の復号が可能になる。すなわち、ビデオデコーダ30は、行1のCTB0中のシンタックス要素を適切に復号するために、行0のCTB0中のいくつかのシンタックス要素がすでに復号されていることを必要とし得る。同期ポイントB〜Gに、対応するポイントにおいて行1のコーディングが始まり得る前に、行0のコーディングが完了し得る他のポイントを示す。理解されるように、各CTBにおいて同期が必要とされる。このコンテキストでは、同期は、両方の行中での、たとえば、ポイントAにおける復号が必ずしも同時に発生することを必要とするとは限らない。むしろ、同期は、下の行中での復号が対応する同期ポイントにおいて始まり得る前に、上の行の復号が同期ポイントに達することを必要とするにすぎない。
[0123]図4Bは、波面並列処理のための同期ポイントの別の例を示す概念図である。この例では、下のCTB行(たとえば、CTB行1)中のピクセル情報および/またはシンタックス要素の復号はまた、現在復号されているCUの右上に位置するCU中の復号されたピクセル情報および/またはシンタックス要素に依存し得る。したがって、行0中の2つのCTB(すなわち、CTB0およびCTB1)は、CTB行1中で復号を始めることができるようになる前に復号されていなければならない。図4Bに示すように、ビデオデコーダ30は、CTB行0中のCTB1の復号が完了したときにCTB行1中のCTB0を復号し始め得る。
[0124]上記で説明したように、シンタックス要素は、一般に、ビデオエンコーダ20中のエントロピーエンコーダによって符号化され得る。たとえば、ビデオエンコーダ20は、CABACを使用してシンタックス要素を符号化し得る。各シンタックス要素は、CABACのアプリケーションのために1つまたは複数のビンに2値化され得る。したがって、CTB全体のためのシンタックス要素は、単一のビンによって、または多数のビンによってシグナリングされ得る。CTB間のパース演算のための負荷分散を有することが望ましい。パースモジュールの同期を、あらゆるCTBにおいてではなく、あらゆるCTB行の最初に実行するように緩和される場合、波面サブストリームのパース(すなわち、各CTB行のパース)のための負荷分散が達成され得る。したがって、CTBごとの同期の必要を除去するために、ビデオエンコーダ20は、現在コーディングされているCTBの上のCTB行からの任意のシンタックス要素情報を使用せずにすべてのシンタックス要素が復号可能になるように構成され得る。
[0125]図4Aおよび図4Bの例に示すWPPは、1つまたは複数のシンタックス要素を使用して使用可能になり得る。たとえば、HEVC仕様に記載されているように、1に等しいシンタックス要素entropy_coding_sync_enabled_flagは、コンテキスト変数のための特定の同期プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の第1のコーディングツリーブロックを含むコーディングツリーユニットを復号する前に呼び出されることと、コンテキスト変数のための特定の記憶プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の第2のコーディングツリーブロックを含むコーディングツリーユニットを復号した後に呼び出されることとを指定する。さらに、0の値に等しいシンタックス要素entropy_coding_sync_enabled_flagは、コンテキスト変数のための特定の同期プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の第1のコーディングツリーブロックを含むコーディングツリーユニットを復号する前に呼び出される必要がないことと、コンテキスト変数のための特定の記憶プロセスが、PPSを参照する各ピクチャ中の各タイル中のコーディングツリーブロックの行の第2のコーディングツリーブロックを含むコーディングツリーユニットを復号した後に呼び出される必要がないこととを指定する。いくつかの事例では、図4Aおよび図4Bに関して上記で説明した同期を制御するために、entropy_coding_sync_enabled_flagシンタックス要素が使用され得る。
[0126]図5は、ビデオブロック行の並列処理のための同期ポイントの別の例を示す概念図である。図5の例では、ビデオエンコーダ20およびビデオデコーダ30は、現在コーディングされているCTB行の上のCTB行から任意の情報を使用せずにすべてのシンタックス要素をパースするように構成され得る。したがって、行間のパース複雑さおよびパース時間のいかなる差も別の行とは何の関係もないので、波面並列処理のパース部分は、CTB行の最初に単一の同期ポイントから進み得る。
[0127]図5に示すように、再構成プロセス中に使用される予測コーディング技法(たとえば、インター予測またはイントラ予測)が依然として上記の行中のピクセル情報に頼り得るので、CTB行0のコーディングは、CTB行1のコーディングの前に始まり得る。図5に示すように、CTB行1の処理は、CTB行0中のCTB1の再構成が完了するとすぐに始まり得る。しかしながら、図4Aおよび図4Bの例とは異なり、CTB行0および1を処理するためにさらなる同期ポイントは使用されない。したがって、第1の複数のCTB行は、ただ1つの同期ポイント、すなわち、同期ポイントA’を用いて2つのCTB遅延を使用して並列に処理され得る。第2の複数のCTB行(すなわち、CTB行2および3)は、第1の複数のCTB行が処理された後、単一の同期ポイントB’を使用してビデオエンコーダ20またはビデオデコーダ30によって並列にコーディングされ得る。図5の例では、CTB行の第1および第2のグループは2つのCTB行を含む。ただし、3つ以上のCTB行が、本開示の技法を使用して並列に処理され得る。
[0128]本開示の態様によれば、ビデオエンコーダ20は、マルチレイヤビットストリームのレイヤについての並列処理構成を示すデータを符号化するように構成され得る。たとえば、ビデオエンコーダ20は、マルチレイヤビットストリームのレイヤについての並列処理構成を示すVPSおよび/またはVPS VUIのデータを符号化するように構成され得る。特に、並列処理構成に関して、データは、図4A〜図5に関して上記で説明したものなどの並列処理同期が実行されるかどうかを示し得る。同様に、ビデオデコーダ30は、たとえば、VPSおよび/またはVPS VUIからそのようなデータを復号するように構成され得る。
[0129]いくつかの例では、並列処理構成を示すデータは、いくつかのシンタックス要素を含み得る。たとえば、ビデオエンコーダ20は、マルチレイヤビットストリーム中のレイヤの任意のピクチャ中でエントロピーコーディング同期が実行されるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。すなわち、ビデオエンコーダ20は、(たとえば、パラメータセットがPPSなどのエントロピーコーディング同期を実際に使用可能にするよりもビットストリーム中で比較的前にVPSが発生するので)可能にされたエントロピーコーディング同期がマルチレイヤビットストリームのレイヤ中で実行されたかどうかの早期指示をVPSを使用して与え得る。説明のための一例では、ビデオエンコーダ20は、特定のレイヤの少なくとも1つのピクチャによって参照される各PPSについてシンタックス要素entropy_coding_sync_enabled_flagの値が1に等しくなるかどうかを示すentropy_coding_sync_enabled_vps_flag[i]シンタックス要素を符号化し得る。ビデオデコーダ30はまた、VPSからそのような情報を復号するように構成され得る。ビデオデコーダ30は、いくつかの事例では、マルチレイヤビデオデータを復号するためのシステムリソースを割り当てるためにそのような情報を使用し得る。
[0130]図6は、HEVC規格による例示的なタイルを示す概念図である。図6に示すタイル構造を使用することにより、いくつかの事例では、コーデックがより並列フレンドリーになり得る。HEVCは、タイルのCTBラスタ走査において連続的に順序付けられた、1つの列および1つの行内で同時に発生する整数個のCTBとしてタイルを定義する。各ピクチャをタイルに分割することは、パーティショニングと呼ばれることがある。ピクチャ内のタイルは、図6に示すように、ピクチャのタイルラスタ走査において連続的に順序付けられる。
[0131]たとえば、図6に、複数のタイル98A、98B、98C、98D、98E、98F、98G、98H、および98I(まとめて、「タイル98」)にパーティショニングされるピクチャ96のための例示的なCTBコーディング順序を示し、タイル境界が太線によって示されている。ピクチャ96における各正方形ブロックは、CTBに関連付けられたピクセルブロックを表す。ピクセルブロックにおける数字は、ピクチャ96についてのタイルのコーディング順序で対応するCTB(たとえば、LCU)の位置を示す。図6の例に示すように、タイル98A中のCTBが最初にコーディングされ、続いてタイル98B中のCTB、続いてタイル98C中のCTB、続いてタイル98D中のCTB、続いてタイル98E中のCTB、続いてタイル98F中のCTB、続いてタイル98G中のCTB、続いてタイル98H中のCTB、続いてタイル98I中のCTBが、コーディングされる。タイル98の各々の内で、ラスタ走査順序に従ってCTBがコーディングされる。
[0132]タイルの数およびそれらの境界のロケーションは、全体のシーケンスに対して定義されるか、またはピクチャごとに変更され得る。タイル境界は、スライス境界と同様に、パースおよび予測依存を中断し、したがって、タイルは、独立して処理され得る。ただし、いくつかの事例では、ループ内フィルタ(たとえば、デブロッキングおよびサンプルアダプティブオフセット(SAO)フィルタ)は、依然としてタイル境界を横切り得る。たとえば、HEVCは、PPSの中に指定されるloop_filter_across_tiles_enabled_flagシンタックス要素を提供する。loop_filter_across_tiles_enabled_flagシンタックス要素の値が1に等しいとき、ループ内フィルタリング動作は、PPSを参照するピクチャの中のタイル境界を横切って実行され得る。0の値に等しいloop_filter_across_tiles_enabled_flagシンタックス要素は、ループ内フィルタリング動作がPPSを参照するピクチャの中のタイル境界を横切って実行されないことを指定する。
[0133]エントロピー復号および動き補償再構成のためにプロセッサまたはプロセッサコアの間で通信が必要とされない(または、比較的少量ですむ)ので、タイルの使用は並列性を向上させ得る。加えて、タイルがスライスよりも潜在的に高い相関を有するサンプルを含むピクチャパーティション形状を可能にするので、タイルは、スライスと比較したときに比較的良好なコーディング効率を示し得る。タイルはまた、スライスヘッダのオーバーヘッドを低減し得る。
[0134]タイルがシングルレイヤコーディングにおいて使用されるとき、シンタックス要素min_spatial_segmentation_idcは、1つの処理スレッドによって処理されるべきルーマサンプルの最大数を計算するために(ビデオデコーダ30などの)ビデオデコーダによって使用され得、ビデオデコーダ30は並列復号情報を最大限に利用することが想定される。0に等しくないとき、min_spatial_segmentation_idcシンタックス要素は、コーディングされたビデオシーケンスのピクチャの中で、異なるコーディングされた空間セグメント化領域の最大可能なサイズで境界を確立する助けとなり得る。HEVCにおいて、たとえば、エントロピーコーディング同期またはタイル境界もしくはスライス境界を横切るデブロッキングフィルタリングによって、異なるスレッド間に何らかのピクチャの相互依存性が存在し得る。そのような相互依存性は、本明細書で説明するように、ビデオデコーダ30がビデオデータを復号するためのリソースを割り当てる方法に影響を及ぼし得る。
[0135]本開示の態様によれば、ビデオエンコーダ20は、マルチレイヤビットストリームのレイヤについてのタイル構成を示すデータを符号化し得る。たとえば、ビデオエンコーダ20は、図6に関して上記で図示し説明したタイルなどのタイルがマルチレイヤビットストリームの特定のレイヤのために使用可能であるかどうかを示すVPSおよび/またはVPS VUIのデータを符号化し得る。追加または代替として、ビデオエンコーダ20は、タイルを横切ったループフィルタ処理が使用可能であるかまたは使用不可であるかを示すデータを符号化し得る。ビデオデコーダ30は、たとえば、VPSおよび/またはVPS VUIからそのようなデータを復号するように構成され得る。
[0136]いくつかの例では、タイル構成を示すデータは、いくつかのシンタックス要素を含み得る。たとえば、マルチレイヤビットストリーム中のビデオデータの各レイヤについて、ビデオエンコーダ20は、レイヤ中の少なくとも1つのピクチャ中でタイルが使用可能であるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。さらに、タイルが使用可能である各レイヤについて、ビデオエンコーダ20はまた、タイル境界を横切ってループフィルタ処理が適用されるかどうか、またはタイル境界を横切ったループフィルタ処理が使用不可であるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。このようにして、ビデオエンコーダ20は、(たとえば、パラメータセットがPPSなどのエントロピーコーディング同期を実際に使用可能にするよりもビットストリーム中で比較的前にVPSが発生するので)マルチレイヤビットストリームのレイヤについてのタイル構成の早期指示(たとえば、タイルが使用可能であるかどうか、および/またはフィルタ処理がタイルを横切って適用されるかどうか)をVPSを使用して与え得る。
[0137]説明のための一例では、ビデオエンコーダ20は、特定のレイヤの少なくとも1つのピクチャによって参照される各PPSについてtiles_enabled_flagの値が1に等しくなるかどうかを示すtiles_enabled_vps_flag[i]シンタックス要素を符号化し得る。追加または代替として、ビデオエンコーダ20は、特定のレイヤの少なくとも1つのピクチャによって参照される各PPSについてloop_filter_across_tiles_enabled_flagの値が0に等しくなるかどうかを示すloop_filter_across_tiles_disabled_vps_flag[i]シンタックス要素を符号化し得る。ビデオデコーダ30はまた、VPSからそのような情報を復号するように構成され得る。ビデオデコーダ30は、いくつかの事例では、マルチレイヤビデオデータを復号するためのシステムリソースを割り当てるためにそのような情報を使用し得る。
[0138]図7〜図10に、本開示の技法と連携して使用され得る様々なマルチレイヤコーディング技法を示す。たとえば、本技法は、本明細書で説明する、テクスチャビューコンポーネント、深度ビューコンポーネント、ならびに様々な時間レイヤ、空間レイヤ、および品質レイヤに適用され得る。
[0139]図7は、例示的なMVC予測パターンを示す概念図である。図7に、H.264/AVCおよびMVCに関して説明するが、同様の予測パターンが、MV−HEVC、3D−HEVC(HEVCに対するマルチビュープラス深度拡張)、およびスケーラブルビデオコーディングを使用したマルチビュー(たとえば、図8〜図10に関して説明するスケーラブルビデオコーディングの例を参照)を含む、他のマルチビュービデオコーディング方式とともに使用され得ることを理解されたい。したがって、以下のマルチビューコーディングおよび/またはMVCへの言及は、概してマルチビュービデオコーディングに適用し、H.264/MVCに限定されない。
[0140]図7の例では、(ビューID「S0」〜「S7」を有する)8つのビューが示され、12個の時間ロケーション(「T0」〜「T11」)がビューごとに示されている。すなわち、図7中の各行はビューに対応し、各列は時間ロケーションを示す。
[0141]MVCがH.264/AVCデコーダによって復号可能である、いわゆるベースビューを有し、また、ステレオビューペアがMVCによってサポートされ得るが、MVCの利点は、MVCが、3Dビデオ入力として3つ以上のビューを使用し、複数のビューによって表されるこの3Dビデオを復号する例をサポートすることができることである。MVCデコーダを有するクライアントのレンダラは、複数のビューを用いて3Dビデオコンテンツを予想し得る。
[0142]図7中のピクチャは、対応するピクチャがイントラコーディングされる(すなわち、Iフレームである)のか、一方向に(すなわち、Pフレームとして)インターコーディングされるのか、複数の方向に(すなわち、Bフレームとして)インターコーディングされるのかを指定する、文字を含む影付きブロックを使用して、図7中の各行と各列との交差部において示されている。概して、予測は矢印によって示され、ここで矢印の終点のピクチャは、予測参照のために矢印の始点のオブジェクトを使用する。たとえば、時間ロケーションT0におけるビューS2のPフレームは、時間ロケーションT0におけるビューS0のIフレームから予測される。
[0143]シングルビュービデオ符号化の場合と同様に、マルチビュービデオコーディングビデオシーケンスのピクチャは、異なる時間ロケーションにあるピクチャに対して予測符号化され得る。たとえば、時間ロケーションT1におけるビューS0のbフレームは、時間ロケーションT0におけるビューS0のIフレームからそのbフレームに向けられた矢印を有し、その矢印は、bフレームがIフレームから予測されることを示す。しかしながら、加えて、マルチビュービデオの符号化のコンテキストにおいて、ピクチャはビュー間予測され得る。すなわち、ビューコンポーネントは、参照のために他のビュー中のビューコンポーネントを使用することができる。MVCでは、マルチビュービデオコーディングの一例として、別のビュー中のビューコンポーネントがインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット(SPS)MVC拡張においてシグナリングされ、インター予測またはビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
[0144]MVCでは、同じアクセスユニット中の(すなわち、同じ時間インスタンスを有する)ピクチャ間でビュー間予測が可能になる。アクセスユニットは、概して、共通の時間インスタンスのためのすべてのビューコンポーネント(たとえば、すべてのネットワークアブストラクションレイヤ(NAL)ユニット)を含むデータのユニットである。したがって、MVCでは、同じアクセスユニット中のピクチャ間でビュー間予測が許可される。非ベースビューのうちの1つの中のピクチャをコーディングするとき、ピクチャが異なるビュー中にあるが同じ時間インスタンス(たとえば、同じPOC値)をもつ場合(したがって、同じアクセスユニット中にある)、そのピクチャは参照ピクチャリストに追加され得る。ビュー間予測の参照ピクチャは、任意のインター予測の参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。
[0145]図7は、ビュー間予測の様々な例を提供する。図7の例では、ビューS1のピクチャは、ビューS1の異なる時間ロケーションにあるピクチャから予測されるものとして、ならびに同じ時間ロケーションにあるビューS0およびS2のピクチャからビュー間予測されるものとして示されている。たとえば、時間位置T1にあるビューS1のbフレームは、時間位置T0およびT2にあるビューS1のBフレームの各々、ならびに時間位置T1にあるビューS0およびビューS2のbフレームから予測される。
[0146]図7の例では、大文字の「B」および小文字の「b」は、異なる符号化方法ではなく、ピクチャ間の異なる階層関係を示すものとする。概して、大文字の「B」ピクチャは、小文字の「b」ピクチャよりも予測階層が比較的高い。図7はまた、異なるレベルの陰影を使用して予測階層の差異を示し、より陰影の量が大きい(すなわち、比較的暗い)ピクチャは、より陰影が少ない(すなわち、比較的明るい)ピクチャよりも予測階層が高い。たとえば、図7のすべてのIフレームは完全な陰影によって示されるが、Pフレームはいくぶん明るい陰影を有し、Bフレーム(および小文字のbフレーム)は、互いに対して様々なレベルの陰影を有するが、PフレームおよびIフレームの陰影よりも常に明るい。
[0147]一般に、階層の比較的高いピクチャが、階層の比較的低いピクチャの復号中に参照ピクチャとして使用され得るように、予測階層の比較的高いピクチャは、階層の比較的低いピクチャを復号する前に復号されるべきであるという点で、予測階層はビュー順序インデックスに関係する。ビュー順序インデックスは、アクセスユニット中のビューコンポーネントの復号順序を示すインデックスである。このようにして、参照ピクチャとして使用されるピクチャは、その参照ピクチャを参照して符号化されたピクチャを復号する前に復号され得る。
[0148]本開示の態様によれば、ビデオエンコーダ20は、図7の例に示すビューS0〜S7など、マルチレイヤビットストリームのレイヤについてのタイル構成および/または並列処理構成を示すデータを符号化し得る。たとえば、ビデオエンコーダ20は、図7の例に示すマルチビュービデオデータのビューのタイル構成を示すVPSおよび/またはVPS VUIのデータを符号化し得る。たとえば、ビデオエンコーダ20は、図6に関して上記で図示し説明したタイルなどのタイルがマルチビュービデオデータの特定のビューのために使用可能であるかどうかを示すVPSおよび/またはVPS VUIのデータを符号化し得る。追加または代替として、ビデオエンコーダ20は、タイルを横切ったループフィルタ処理が使用可能であるかまたは使用不可であるかを示すデータを符号化し得る。ビデオデコーダ30は、たとえば、VPSおよび/またはVPS VUIからそのようなデータを復号するように構成され得る。
[0149]追加または代替として、ビデオエンコーダ20は、図7の例に示すマルチビュービデオデータのビューの並列処理構成を示すVPSおよび/またはVPS VUIのデータを符号化し得る。たとえば、ビデオエンコーダ20は、図4A〜図5に関して上記で説明した同期がマルチビュービデオデータの特定のビューのピクチャのために使用可能であるかどうかを示すVPSおよび/またはVPS VUIのデータを符号化し得る。ビデオデコーダ30は、たとえば、VPSおよび/またはVPS VUIからそのようなデータを復号するように構成され得る。
[0150]図8は、スケーラブルビデオコーディング(SVC)のための様々なスケーラブルな次元を示す概念図である。この例では、スケーラビリティが3つの次元において使用可能である。時間次元では、7.5Hz、15Hzまたは30Hzをもつフレームレートが時間スケーラビリティ(T)によってサポートされ得る。空間スケーラビリティ(S)がサポートされるとき、QCIF、CIF、および4CIFなどの様々な解像度が使用可能であり得る。特定の空間解像度およびフレームレートごとに、ピクチャ品質を改善するために信号対ノイズ(SNR)(Q)レイヤが追加され得る。
[0151]ビデオコンテンツがそのようなスケーラブルな方法で符号化されると、たとえば、クライアントまたは送信チャネルに依存し得るアプリケーション要件に従って、実際の配信されたコンテンツを適応させるために、抽出器ツールが使用され得る。図8に示された例では、各体積、すなわち立方体は、同じフレームレート(時間レベル)、空間解像度およびSNRレイヤをもつピクチャを含んでいる。それらの立方体(ピクチャ)を任意の次元で追加することによって、より良い表現が達成され得る。使用可能な2つ、3つまたはさらに多くのスケーラビリティがあるとき、複合スケーラビリティがサポートされ得る。
[0152]SVCの仕様によれば、最も低い空間レイヤおよび品質レイヤを有するピクチャは、H.264/AVCと互換性があり、最低の時間レベルにあるピクチャは、より高い時間レベルにあるピクチャで強調され得る時間ベースレイヤを形成する。H.264/AVC適合レイヤに加えて、空間スケーラビリティおよび/または品質スケーラビリティを与えるためにいくつかの空間および/またはSNRエンハンスメントレイヤが追加され得る。SNRスケーラビリティは品質スケーラビリティと呼ばれることもある。各空間エンハンスメントレイヤまたはSNRエンハンスメントレイヤ自体は、H.264/AVC適合レイヤと同じ時間スケーラビリティ構造で、時間的にスケーラブルであり得る。1つの空間またはSNRのエンハンスメントレイヤの場合、それが依存するより低いレイヤは、その特定の空間またはSNRのエンハンスメントレイヤのベースレイヤとも呼ばれる。
[0153]図9は、SVCコーディング構造の一例を示す概念図である。この例では、最低空間および品質レイヤをもつピクチャ(QCIF解像度をもつ、レイヤ0およびレイヤ1中のピクチャ)は、H.264/AVCに適合する。それらの中で、最低時間レベルのピクチャは、図9のレイヤ0に示すように、時間ベースレイヤを形成する。この時間ベースレイヤ(レイヤ0)は、より高い時間レベル(レイヤ1)のピクチャを用いて拡張され得る。H.264/AVC互換レイヤに加えて、空間スケーラビリティおよび/または品質スケーラビリティを実現するために、いくつかの空間エンハンスメントレイヤおよび/またはSNRエンハンスメントレイヤが追加され得る。たとえば、エンハンスメントレイヤは、レイヤ2と同じ解像度をもつCIF表現であり得る。この例では、レイヤ3はSNRエンハンスメントレイヤである。この例に示すように、各空間またはSNRエンハンスメントレイヤ自体は、H.264/AVC適合レイヤと同じ時間スケーラビリティ構造で、時間的にスケーラブルになり得る。また、エンハンスメントレイヤは空間解像度とフレームレートの両方を向上させることができる。たとえば、レイヤ4は、フレームレートを15Hzから30Hzにさらに増加させる4CIFエンハンスメントレイヤを与える。
[0154]図10は、例示的なアクセスユニット(AU)を示す概念図である。各AUは、ネットワークアブストラクションレイヤ(NAL)ユニット内にカプセル化された、1つまたは複数のスライスを含む。レイヤごとのアクセスユニット当たりにゼロまたはそれ以上のNALユニットが存在し得る。1つのAU内の1つのレイヤに対応するNALユニットのセットは、「レイヤコンポーネント」と呼ばれることがある。図10の例は、図9のレイヤコンポーネントに対応するレイヤコンポーネントを描いている。図10の例に示すように、同じ時間インスタンス中(すなわち、共通のAUの中)のコード化スライスは、ビットストリーム順序で連続しており、SVCのコンテキストにおける1つのアクセスユニットを形成する。それらのSVCアクセスユニットは、次いで、表示順序とは異なり得る、たとえば、時間的予測関係によって決定され得る、復号順序に従う。
[0155]H.264/AVC(アドバンストビデオコーディング)のスケーラブルな拡張が、以下で説明される。SVCのいくつかの機能はH.264/AVCから引き継がれている。以前のスケーラブルな規格と比較して、H.264/AVCに対するSVC拡張の最大の利点のいくつか、すなわちレイヤ間予測およびシングルループ復号が、以下で考察される。
[0156]H.264/AVCのSVC拡張は、シングルループ復号をサポートする。シングルループ復号の場合、各サポートされるレイヤは、単一の動き補償ループを用いて復号され得る。これを達成するために、レイヤ間イントラ予測の使用は、コロケートされた参照レイヤ信号がそのためにイントラコーディングされるエンハンスメントレイヤマクロブロックのためにのみ可能にされる。より高いレイヤをレイヤ間予測するために使用されるすべてのレイヤが、制約付きイントラ予測を使用してコーディングされることがさらに必要である。
[0157]H.264/AVCのSVC拡張もまた、レイヤ間予測をサポートする。SVCは、テクスチャ、残差および動きに基づいて、空間スケーラビリティおよびSNRスケーラビリティのためのレイヤ間予測を導入する。SVCにおける空間スケーラビリティは、2つのレイヤ間の任意の解像度比に一般化されている。SNRスケーラビリティは、粗粒度スケーラビリティ(CGS)または中粒度スケーラビリティ(MGS)によって実現され得る。SVCでは、2つの空間レイヤまたはCGSレイヤは、(NALユニットヘッダ中でシンタックス要素dependency_idによって示される)異なる依存性レイヤに属するが、2つのMGSレイヤは同じ依存性レイヤ中にあり得る。1つの依存性レイヤは、品質エンハンスメントレイヤに対応する、0からより高い値までのシンタックス要素quality_idの値をもつ品質レイヤを含む。SVCでは、レイヤ間の冗長性を低減するために、レイヤ間予測方法が利用される。
[0158]上述のように、H.264/AVCと同様に、HEVCもまた、少なくとも時間スケーラビリティと、SNRスケーラビリティと、空間スケーラビリティとを提供する、SHVCと現在呼ばれるスケーラブルビデオコーディング拡張を有する。SHVCにおいて、レイヤ間テクスチャ予測を達成するために、参照レイヤの解像度がエンハンスメントレイヤの解像度より低いときに、参照レイヤの再構成されたサンプルが最初にアップサンプリングされる。SNRスケーラビリティの場合でさえ、参照レイヤサンプルは、より高いコーディング効率を得るために、レイヤ間予測のために使用される前にフィルタリングされ得る。アップサンプリングまたはレイヤ間フィルタリング処理が、レイヤコンポーネントまたは単にピクチャと呼ばれることもあるレイヤピクチャ全体について実行され得る。SHVCでは、マルチループ復号構造が使用され得、ビデオデコーダ(ビデオデコーダ30などの)は、異なるレイヤを並列に処理し得る。
[0159]本開示の態様によれば、ビデオエンコーダ20は、図8〜図10の例に示すスケーラブルレイヤなど、マルチレイヤビットストリームのレイヤについてのタイル構成および/または並列処理構成を示すデータを符号化し得る。たとえば、ビデオエンコーダ20は、図8〜図10の例に示すスケーラブルビデオデータのレイヤについてのタイル構成を示すVPSおよび/またはVPS VUIのデータを符号化し得る。たとえば、ビデオエンコーダ20は、図6に関して上記で図示し説明したタイルなどのタイルがスケーラブルビデオデータの特定のレイヤのために使用可能であるかどうかを示すVPSおよび/またはVPS VUIのデータを符号化し得る。追加または代替として、ビデオエンコーダ20は、タイルを横切ったループフィルタ処理が使用可能であるかまたは使用不可であるかを示すデータを符号化し得る。ビデオデコーダ30は、たとえば、VPSおよび/またはVPS VUIからそのようなデータを復号するように構成され得る。
[0160]追加または代替として、ビデオエンコーダ20は、図8〜図10に示すレイヤなど、スケーラブルビデオデータのレイヤについての並列処理構成を示すVPSおよび/またはVPS VUIのデータを符号化し得る。たとえば、ビデオエンコーダ20は、図4A〜図5に関して上記で説明した同期がスケーラブルビデオデータの特定のレイヤのピクチャのために使用可能であるかどうかを示すVPSおよび/またはVPS VUIのデータを符号化し得る。ビデオデコーダ30は、たとえば、VPSおよび/またはVPS VUIからそのようなデータを復号するように構成され得る。
[0161]図11に、本開示に一致する、ビデオデータを処理するための技法を示す。例としてビデオエンコーダ20(図1および図2)に関して説明したが、本開示の技法は、様々な他のプロセッサを使用して実行され得る。さらに、図11に示す特定のプロセスは例として提供される。他の例では、本開示の技法に一致するプロセスは、より多くの、より少数の、または代替の構成のステップを含み得る。
[0162]ビデオエンコーダ20は、マルチレイヤビデオデータのレイヤについてのタイル構成を決定し得る(110)。たとえば、ビデオエンコーダ20は、ビデオデータのレイヤを符号化するときにタイルを使用すべきかどうかを決定し得る。ビデオエンコーダ20はまた、ビデオデータのレイヤを符号化するときにタイル境界を横切ってループフィルタを適用すべきかどうかを決定し得る。いくつかの例では、ビデオエンコーダ20は、レートひずみ分析に基づいてタイルを使用すべきかどうか、およびタイル境界を横切ってループフィルタを適用すべきかどうかを決定し得る。
[0163]ビデオエンコーダ20はまた、ビデオデータのレイヤをコーディングするための並列処理構成を決定し得る(112)。たとえば、ビデオエンコーダ20は、図4A〜図5に関して上記の例で説明したように、WPPを適用すべきかどうか、ならびにWPPが実行される方法を決定し得る。ビデオエンコーダ20は、次いで、決定されたタイル構成および並列処理構成を使用してマルチレイヤビデオデータのレイヤを符号化し得る(114)。たとえば、ビデオエンコーダ20は、上記で説明したように、(レイヤ間予測を含む)ビデオデータのイントラ予測またはインター予測を実行し得る。
[0164]本開示の態様によれば、ビデオエンコーダ20はまた、タイル構成および並列処理構成を示すデータを符号化し得る(116)。たとえば、ビデオエンコーダ20は、マルチレイヤビットストリームのレイヤについてのタイル構成およびマルチレイヤビットストリームのレイヤについての並列処理構成を示すVPSおよび/またはVPS VUIのデータを符号化し得る。説明のための一例では、ビデオエンコーダ20は、(たとえば、上記の表1の例で示されるtiles_enabled_vps_flag[i]シンタックス要素など)レイヤ中の少なくとも1つのピクチャ中でタイルが使用可能であるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。さらに、タイルが使用可能である各レイヤについて、ビデオエンコーダ20はまた、(たとえば、上記の表1の例で示されるloop_filter_across_tiles_disabled_vps_flag[i]シンタックス要素など)タイル境界を横切ってループフィルタ処理が適用されるかどうか、またはタイル境界を横切ったループフィルタ処理が使用不可であるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。ビデオエンコーダ20はまた、並列処理構成を示す1つまたは複数のシンタックス要素を符号化し得る。たとえば、ビデオエンコーダ20は、(たとえば、上記の表1の例で示されるentropy_coding_sync_enabled_vps_flag[i]シンタックス要素など)たとえば、WPPを介して、エントロピーコーディング同期が実行されるかどうかを示す1つまたは複数のシンタックス要素を符号化し得る。
[0165]図12に、本開示に一致する、ビデオデータを処理するための別の技法を示す。例としてビデオデコーダ30(図1および図3)に関して説明したが、本開示の技法は、様々な他のプロセッサを使用して実行され得る。さらに、図12に示す特定のプロセスは例示の目的で提供される。他の例では、本開示の技法に一致するプロセスは、より多くの、より少数の、または代替の構成のステップを含み得る。
[0166]ビデオデコーダ30はマルチレイヤビットストリームを受信し得る(120)。たとえば、ビデオデコーダ30は、HEVC規格またはそれの拡張(たとえば、MV−HEVC、3D−HEVC、SHVCなど)など特定のビデオコーディング規格に準拠するビットストリームを受信し得る。
[0167]本開示の態様によれば、ビデオデコーダ30は、タイル構成を示すデータを復号し得る(122)。ビデオデコーダ30はまた、並列処理構成を示すデータを復号し得る(124)。たとえば、ビデオデコーダ30は、マルチレイヤビットストリームのレイヤについてのタイル構成およびマルチレイヤビットストリームのレイヤについての並列処理構成を示すVPSおよび/またはVPS VUIのデータを復号し得る。説明のための一例では、ビデオデコーダ30は、(たとえば、上記の表1の例で示されるtiles_enabled_vps_flag[i]シンタックス要素など)レイヤ中の少なくとも1つのピクチャ中でタイルが使用可能であるかどうかを示す1つまたは複数のシンタックス要素を復号し得る。さらに、タイルが使用可能である各レイヤについて、ビデオデコーダ30はまた、(たとえば、上記の表1の例で示されるloop_filter_across_tiles_disabled_vps_flag[i]シンタックス要素など)タイル境界を横切ってループフィルタ処理が適用されるかどうか、またはタイル境界を横切ったループフィルタ処理が使用不可であるかどうかを示す1つまたは複数のシンタックス要素を復号し得る。いくつかの事例では、ビデオデコーダ30はまた、並列処理構成を示す1つまたは複数のシンタックス要素を復号し得る。たとえば、ビデオデコーダ30は、(たとえば、上記の表1の例で示されるentropy_coding_sync_enabled_vps_flag[i]シンタックス要素など)たとえば、WPPを介して、エントロピーコーディング同期が実行されるかどうかを示す1つまたは複数のシンタックス要素を復号し得る。
[0168]いくつかの事例では、ビデオデコーダ30は、次いで、マルチレイヤデータを復号するための復号リソースを割り当て得る(126)。たとえば、本開示の態様によれば、上記で説明した情報は、たとえば、ビデオデータのピクチャを復号するより前に、ビデオデータのタイル構成および/または並列処理構成の早期指示を与え得る。ビデオデコーダ30は、特定の処理コアによって復号されるべき(可能である場合)ビデオデータの特定のタイルを割り当て得る。ビデオデコーダ30は、リソースを割り当てるとき、ループフィルタ処理がタイル境界を横切って適用され得るかどうかを検討し得る。さらに、ビデオデコーダ30は、特定のレイヤ内のピクチャの並列処理構成(たとえば、WPP構成)に基づいてリソースを復号すると決定し得る。ビデオデコーダ30は、次いで、たとえば、ビデオエンコーダ20によって適用される逆プロセスを使用して、マルチレイヤビデオデータを復号し得る(128)。
[0169]本開示のいくつかの態様が、説明のためにHEVC規格およびHEVC規格の拡張に関して説明した。ただし、本開示で説明する技法は、他の規格またはまだ開発されていないプロプライエタリなビデオコーディング処理を含む、他のビデオコーディング処理にとって有用であり得る。
[0170]本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットはビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングは、適宜、ビデオ符号化またはビデオ復号を指すことがある。
[0171]例に応じて、本明細書で説明した技法のうちの任意のもののいくつかの動作または事象は、異なるシーケンスで実行され得、全体的に追加、結合、または除外され得ることが認識されるべきである(たとえば、説明する動作または事象のすべてが、この技法の実施のために必要であるとは限らない)。その上、いくつかの例では、動作または事象は、たとえば、マルチスレッドの処理、割込み処理、または多数のプロセッサを用いて、連続的ではなく同時に実行され得る。
[0172]一例では、ビデオデコーダ30は、ビデオデータに対応する1つまたは複数のシンタックス要素をパースするように構成され得、ここにおいて、1つまたは複数のシンタックス要素は、タイル構成、ループフィルタ構成、および並列処理構成のうちの1つまたは複数を示し、1つまたは複数のシンタックス要素に従ってビデオデータの並列復号を実行する。ビデオデコーダ30は、ビデオパラメータセット中で1つまたは複数のシンタックス要素を受信するように構成され得る。
[0173]本開示の一例では、1つまたは複数のシンタックス要素は、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのタイル構成を示すtiles_enabled_vps_flagと、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示すloop_filter_across_tiles_disabled_vps_flagと、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての並列処理構成を示すentropy_coding_sync_enabled_vps_flagとを含む。
[0174]本開示の別の例では、1つまたは複数のシンタックス要素は、parallel_tools_vps_idcシンタックス要素を含み、parallel_tools_vps_idcシンタックス要素は、ビデオパラメータセットを参照するビデオデータの各レイヤについてのタイル構成と並列処理構成との両方を示す。
[0175]本開示の別の例では、1つまたは複数のシンタックス要素は、parallel_tools_vps_idcシンタックス要素を含み、parallel_tools_vps_idcシンタックス要素は、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのタイル構成と並列処理構成との両方を示す。
[0176]本開示の別の例では、1つまたは複数のシンタックス要素は、tile_entropy_sync_coding_not_mixed_flagとloopfilter_across_tile_boundary_not_mixedフラグとを含み、ここにおいて、tile_entropy_sync_coding_not_mixed_flagは、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのタイル構成および並列処理構成を示し、ここにおいて、loopfilter_across_tile_boundary_not_mixedフラグは、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示す。
[0177]本開示の別の例では、ビデオエンコーダ20は、ビデオデータに対応する1つまたは複数のシンタックス要素を決定するように構成され得、ここにおいて、1つまたは複数のシンタックス要素は、タイル構成、ループフィルタ構成、および並列処理構成のうちの1つまたは複数を示し、1つまたは複数のシンタックス要素に従ってビデオデータの並列符号化を実行し、1つまたは複数のシンタックス要素をシグナリングする。ビデオエンコーダ20は、ビデオパラメータセット中で1つまたは複数のシンタックス要素をシグナリングし得る。
[0178]本開示の一例では、1つまたは複数のシンタックス要素は、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのタイル構成を示すtiles_enabled_vps_flagと、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示すloop_filter_across_tiles_disabled_vps_flagと、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての並列処理構成を示すentropy_coding_sync_enabled_vps_flagとを含む。
[0179]本開示の別の例では、1つまたは複数のシンタックス要素は、parallel_tools_vps_idcシンタックス要素を含み、parallel_tools_vps_idcシンタックス要素は、ビデオパラメータセットを参照するビデオデータの各レイヤについてのタイル構成と並列処理構成との両方を示す。
[0180]本開示の別の例では、1つまたは複数のシンタックス要素は、parallel_tools_vps_idcシンタックス要素を含み、parallel_tools_vps_idcシンタックス要素は、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのタイル構成と並列処理構成との両方を示す。
[0181]本開示の別の例では、1つまたは複数のシンタックス要素は、tile_entropy_sync_coding_not_mixed_flagとloopfilter_across_tile_boundary_not_mixedフラグとを含み、ここにおいて、tile_entropy_sync_coding_not_mixed_flagは、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのタイル構成および並列処理構成を示し、ここにおいて、loopfilter_across_tile_boundary_not_mixedフラグは、ビデオデータの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示す。
[0182]1つまたは複数の例では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。ソフトウェアで実装される場合、機能は、1つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶され、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0183]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)と、レーザーディスク(登録商標)と、光ディスクと、デジタル多用途ディスク(DVD)と、フロッピー(登録商標)ディスクと、Blu−rayディスクとを含み、通常、ディスク(disk)は磁気的にデータを再生するが、ディスク(disc)はレーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0184]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積論理回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明する技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0185]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した1つもしくは複数のプロセッサを含む、適切なソフトウェアおよび/あるいはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
[0186]様々な例が記載されている。これらおよび他の例は、添付の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
マルチレイヤビットストリームのビデオパラメータセット(VPS)から、前記マルチレイヤビットストリームのレイヤについてのタイル構成または前記マルチレイヤビットストリームのレイヤについての並列処理構成のうちの少なくとも1つを示すデータを復号することと、
前記VPSから復号された前記データに従って、前記マルチレイヤビットストリームを復号することと
を備える方法。
[C2]
前記タイル構成を示す前記データを復号することが、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤのためにタイルが使用可能であるかどうかを示すデータを復号することを備える、上記C1に記載の方法。
[C3]
前記タイル構成を示す前記データを復号することが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記タイル構成を示すtiles_enabled_vps_flagシンタックス要素を復号することをさらに備える、上記C2に記載の方法。
[C4]
前記タイル構成を示す前記データを復号することが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示すloop_filter_across_tiles_disabled_vps_flagシンタックス要素を復号することをさらに備える、上記C3に記載の方法。
[C5]
前記並列処理構成を示す前記データを復号することが、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤについてエントロピーコーディング同期が実行されるかどうかを示すデータを復号することを備える、上記C1に記載の方法。
[C6]
前記並列処理構成を示す前記データを復号することが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記並列処理構成を示すentropy_coding_sync_enabled_vps_flagシンタックス要素を復号することをさらに備える、上記C5に記載の方法。
[C7]
前記タイル構成と前記並列処理構成とを示す前記データが、parallel_tools_vps_idcシンタックス要素を含み、前記parallel_tools_vps_idcシンタックス要素が、前記ビデオデータの各レイヤについての前記タイル構成と前記並列処理構成との両方を示す、上記C1に記載の方法。
[C8]
前記タイル構成と前記並列処理構成とを示す前記データが、tile_entropy_sync_coding_not_mixed_flagシンタックス要素とloopfilter_across_tile_boundary_not_mixed_flagシンタックス要素とを含み、前記tile_entropy_sync_coding_not_mixed_flagシンタックス要素が、ビデオデータの各レイヤについての前記タイル構成と前記並列処理構成とを示し、前記loopfilter_across_tile_boundary_not_mixed_flagシンタックス要素が、ビデオデータの各レイヤについての前記ループフィルタ構成を示す、上記C1に記載の方法。
[C9]
前記VPSから復号された前記データに基づいてビデオデコーダの復号リソースを割り当てることをさらに備える、上記C1に記載の方法。
[C10]
前記VPSを復号することが、前記マルチレイヤビットストリームのピクチャのシーケンスより前に前記VPSを復号することを備える、ここにおいて、前記マルチレイヤビットストリームを復号することが、前記VPSから復号された前記データに従ってピクチャの前記シーケンスを復号することを備える、上記C1に記載の方法。
[C11]
ビデオデータを符号化する方法であって、
マルチレイヤビットストリームのビデオパラメータセット(VPS)中で、前記マルチレイヤビットストリームのレイヤについてのタイル構成または前記マルチレイヤビットストリームのレイヤについての並列処理構成のうちの少なくとも1つを示すデータを符号化することと、
前記マルチレイヤビットストリームの前記VPSを符号化することを含む、前記マルチレイヤビットストリームを符号化することと
を備える方法。
[C12]
前記タイル構成を示す前記データを符号化することが、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤのためにタイルが使用可能であるかどうかを示すデータを符号化することを備える、上記C11に記載の方法。
[C13]
前記タイル構成を示す前記データを符号化することが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記タイル構成を示すtiles_enabled_vps_flagシンタックス要素を符号化することをさらに備える、上記C12に記載の方法。
[C14]
前記タイル構成を示す前記データを符号化することが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示すloop_filter_across_tiles_disabled_vps_flagシンタックス要素を符号化することをさらに備える、上記C13に記載の方法。
[C15]
前記並列処理構成を示す前記データを符号化することが、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤについてエントロピーコーディング同期が実行されるかどうかを示すデータを符号化することを備える、上記C11に記載の方法。
[C16]
前記並列処理構成を示す前記データを符号化することが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記並列処理構成を示すentropy_coding_sync_enabled_vps_flagシンタックス要素を符号化することをさらに備える、上記C15に記載の方法。
[C17]
前記タイル構成および前記並列処理構成を示す前記データが、parallel_tools_vps_idcシンタックス要素を含み、前記parallel_tools_vps_idcシンタックス要素が、前記ビデオデータの各レイヤについての前記タイル構成と前記並列処理構成との両方を示す、上記C11に記載の方法。
[C18]
前記タイル構成および前記並列処理構成を示す前記データが、tile_entropy_sync_coding_not_mixed_flagシンタックス要素とloopfilter_across_tile_boundary_not_mixed_flagシンタックス要素とを含み、前記tile_entropy_sync_coding_not_mixed_flagシンタックス要素が、ビデオデータの各レイヤについての前記タイル構成と前記並列処理構成とを示し、前記loopfilter_across_tile_boundary_not_mixed_flagシンタックス要素が、ビデオデータの各レイヤについての前記ループフィルタ構成を示す、上記C11に記載の方法。
[C19]
前記VPSの前記データに従ってビデオエンコーダの符号化リソースを割り当てることをさらに備える、上記C11に記載の方法。
[C20]
前記VPSを符号化することが、前記マルチレイヤビットストリームのピクチャのシーケンスを符号化するより前に前記VPSを符号化することを備え、前記マルチレイヤビットストリームを符号化することが、ピクチャの前記シーケンスを符号化することを備える、上記C11に記載の方法。
[C21]
ビデオデータを処理する装置であって、
マルチレイヤビデオデータを記憶するメモリと、
ビデオコーダであって、
前記マルチレイヤビデオデータのレイヤについてのタイル構成または前記マルチレイヤビデオデータのレイヤについての並列処理構成のうちの少なくとも1つを示すデータを処理することと、ここにおいて、前記データが、前記マルチレイヤビデオデータを含むビットストリームのビデオパラメータセット(VPS)に関連付けられる、
前記VPSの前記データに従って、前記マルチレイヤビデオデータを処理することと
を行うように構成されたビデオコーダと
を備える装置。
[C22]
前記タイル構成を示す前記データを処理するために、前記ビデオコーダが、前記マルチレイヤビデオデータのレイヤごとに、前記マルチレイヤビデオデータの前記それぞれのレイヤのためにタイルが使用可能であるかどうかを示すデータを処理するように構成された、上記C21に記載の装置。
[C23]
前記タイル構成を示す前記データを処理するために、前記ビデオコーダが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記タイル構成を示すtiles_enabled_vps_flagシンタックス要素を処理するようにさらに構成された、上記C22に記載の装置。
[C24]
前記タイル構成を示す前記データを処理するために、前記ビデオコーダが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示すloop_filter_across_tiles_disabled_vps_flagシンタックス要素を処理するようにさらに構成された、上記C23に記載の装置。
[C25]
前記並列処理構成を示す前記データを処理するために、前記ビデオコーダが、前記マルチレイヤビデオデータのレイヤごとに、前記マルチレイヤビデオデータの前記それぞれのレイヤについてエントロピーコーディング同期が実行されるかどうかを示すデータを処理するように構成された、上記C21に記載の装置。
[C26]
前記並列処理構成を示す前記データを処理するために、前記ビデオコーダが、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記並列処理構成を示すentropy_coding_sync_enabled_vps_flagシンタックス要素を処理するようにさらに構成された、上記C25に記載の装置。
[C27]
前記ビデオデータを処理するために、前記ビデオコーダは、
前記マルチレイヤビデオデータの少なくとも1つのレイヤについての残差ビデオデータを決定することと、
前記残差データを変換することと、
前記ビットストリーム中の前記変換された残差データを表すデータを符号化することと
を備える、前記ビデオデータを符号化するように構成された、上記C21に記載の装置。
[C28]
前記ビデオデータを処理するために、前記ビデオコーダは、
前記ビットストリームの前記VPSをパースすることと、
前記VPSをパースした後に前記ビットストリームから、前記マルチレイヤビットストリームの少なくとも1つのレイヤについての残差ビデオデータを表すデータをパースすることと、
前記残差データを逆変換することと、
前記逆変換された残差データに基づいてビデオデータの前記少なくとも1つのレイヤを再構成することと
を備える、前記ビデオデータを復号するように構成された、上記C21に記載の装置。
[C29]
前記マルチレイヤビデオデータの少なくとも1つのレイヤを提示するように構成されたディスプレイデバイスをさらに備える、上記C21に記載の装置。
[C30]
前記マルチレイヤビデオデータを受信するように構成されたワイヤレスモデムをさらに備える、上記C21に記載の装置。
[C31]
ビデオデータを実行する装置であって、
マルチレイヤビットストリームのレイヤについてのタイル構成または前記マルチレイヤビットストリームのレイヤについての並列処理構成のうちの少なくとも1つを示すデータを処理するための手段と、ここにおいて、前記データが、前記マルチレイヤビットストリームのビデオパラメータセット(VPS)に関連付けられる、
前記VPSの前記データに従って、前記マルチレイヤビットストリームを処理するための手段と
を備える装置。
[C32]
前記タイル構成を示す前記データを処理するための前記手段が、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤのためにタイルが使用可能であるかどうかを示すデータを処理するための手段を備える、上記C31に記載の装置。
[C33]
前記タイル構成を示す前記データを処理するための前記手段が、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記タイル構成を示すtiles_enabled_vps_flagシンタックス要素を処理するための手段をさらに備える、上記C32に記載の装置。
[C34]
前記タイル構成を示す前記データを処理するための前記手段が、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示すloop_filter_across_tiles_disabled_vps_flagシンタックス要素を処理するための手段をさらに備える、上記C33に記載の装置。
[C35]
前記並列処理構成を示す前記データを処理するための前記手段が、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤについてエントロピーコーディング同期が実行されるかどうかを示すデータを処理するための手段を備える、上記C31に記載の装置。
[C36]
前記並列処理構成を示す前記データを処理するための前記手段が、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記並列処理構成を示すentropy_coding_sync_enabled_vps_flagシンタックス要素を処理するための手段をさらに備える、上記C35に記載の装置。
[C37]
実行されたとき、1つまたは複数のプロセッサに、
マルチレイヤビットストリームのレイヤについてのタイル構成または前記マルチレイヤビットストリームのレイヤについての並列処理構成のうちの少なくとも1つを示すデータを処理することと、ここにおいて、前記データが、前記マルチレイヤビットストリームのビデオパラメータセット(VPS)に関連付けられる、
前記VPSの前記データに従って、前記マルチレイヤビットストリームを処理することと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
[C38]
前記タイル構成を示す前記データを処理するために、前記命令が、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤのためにタイルが使用可能であるかどうかを示すデータを処理することを前記1つまたは複数のプロセッサに行わせる、上記C37に記載の非一時的コンピュータ可読記憶媒体。
[C39]
前記タイル構成を示す前記データを処理するために、前記命令が、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記タイル構成を示すtiles_enabled_vps_flagシンタックス要素を処理することを前記1つまたは複数のプロセッサにさらに行わせる、上記C38に記載の非一時的コンピュータ可読記憶媒体。
[C40]
前記タイル構成を示す前記データを処理するために、前記命令が、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについてのループフィルタ構成を示すloop_filter_across_tiles_disabled_vps_flagシンタックス要素を処理することを前記1つまたは複数のプロセッサにさらに行わせる、上記C39に記載の非一時的コンピュータ可読記憶媒体。
[C41]
前記並列処理構成を示す前記データを処理するために、前記命令が、前記マルチレイヤビットストリームのレイヤごとに、前記マルチレイヤビットストリームの前記それぞれのレイヤについてエントロピーコーディング同期が実行されるかどうかを示すデータを処理することを前記1つまたは複数のプロセッサに行わせる、上記C37に記載の非一時的コンピュータ可読記憶媒体。
[C42]
前記並列処理構成を示す前記データを処理するために、前記命令が、前記それぞれのレイヤの少なくとも1つのピクチャによって参照される各ピクチャパラメータセットについての前記並列処理構成を示すentropy_coding_sync_enabled_vps_flagシンタックス要素を処理することを前記1つまたは複数のプロセッサにさらに行わせる、上記C41に記載の非一時的コンピュータ可読記憶媒体。