(58)【調査した分野】(Int.Cl.,DB名)
前記参照レイヤが前記第1のビットストリームの中に含まれるかどうかを決定することは、前記参照レイヤが前記第1のビットストリームの中に含まれるかどうかを、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、または適応パラメータセットのうちの1つの中に含まれる値に基づいて決定することを備える、請求項1に記載の方法。
前記参照レイヤに対する前記パラメータの前記フラグを処理するべきか否かを、前記参照レイヤが前記第1のビットストリームの中に含まれるかどうかに基づいて決定することは、前記フラグが冗長であるか否かを、前記参照レイヤが前記第1のビットストリームの中に含まれるかどうかに基づいて決定することを備える、請求項1に記載の方法。
【発明を実施するための形態】
【0016】
[0025]本明細書に記載されるいくつかの実施形態は、HEVC(高効率ビデオコーディング)などのアドバンストビデオコーデックのコンテキストにおけるスケーラブルビデオコーディングのためのレイヤ間予測に関する。より具体的には、本開示は、マルチレイヤビデオコーディングにおけるレイヤ間予測の実行を改善するためのシステムおよび方法に関する。
【0017】
[0026]以下の説明では、いくつかの実施形態に関係するH.264/AVC技法が記載され、HEVC規格および関係する技法も説明される。HEVC規格および/またはH.264規格のコンテキストにおいて、いくつかの実施形態が本明細書に記載されるが、本明細書で開示されるシステムおよび方法が任意の適切なビデオコーディング規格に適用可能であり得ることを、当業者なら諒解されよう。たとえば、本明細書で開示される実施形態は、以下の規格、すなわち、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262もしくはISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアル、およびそのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含むITU−T H.264(ISO/IEC MPEG−4 AVCとも呼ばれる)のうちの、1つまたは複数に適用可能であり得る。
【0018】
[0027]HEVCは、概して、多くの点で、前のビデオコーディング規格のフレームワークに従う。HEVCにおける予測の単位は、いくつかの前のビデオコーディング規格における単位(たとえば、マクロブロック)とは異なる。事実上、マクロブロックの概念は、いくつかの前のビデオコーディング規格において理解されているように、HEVC中に存在しない。マクロブロックは、他の考えられる利益の中でも高いフレキシビリティを与え得る、4分木方式に基づく階層構造と置き換えられる。たとえば、HEVC方式内で、コーディングユニット(CU)、予測ユニット(PU:Prediction Unit)、および変換ユニット(TU:Transform Unit)という3つのタイプのブロックが定義される。CUは領域分割の基本単位を指すことがある。CUはマクロブロックの概念に類似するとみなされてよいが、CUは最大サイズを制限せず、コンテンツ適応性を改善するために4つの等しいサイズのCUへの再帰的分割を可能にし得る。PUは、インター/イントラ予測の基本単位とみなされてよく、PUは、不規則なイメージパターンを効率的にコーディングするために、単一のPUに複数の任意形状区分を含み得る。TUは、変換の基本単位とみなされてよい。TUはPUとは無関係に定義され得るが、TUのサイズはTUが属するCUに限定されることがある。3つの異なる概念へのブロック構造のこの分離は、各々がそのユニットの役割に従って最適化されることを可能にし得、このことはコーディング効率の改善をもたらし得る。
【0019】
[0028]単に説明の目的で、本明細書で開示するいくつかの実施形態について、2つのレイヤのみ(たとえば、ベースレイヤなどの下位レイヤ、およびエンハンスメントレイヤなどの上位レイヤ)を含む例を用いて説明する。そのような例が複数のベースレイヤおよび/またはエンハンスメントレイヤを含む構成に適用可能であり得ることを理解されたい。さらに、説明を簡単にするために、以下の開示は、いくつかの実施形態に関して「フレーム」または「ブロック」という用語を含む。しかしながら、これらの用語は、限定的であることを意味しない。たとえば、以下で説明する技法は、ブロック(たとえば、CU、PU、TU、マクロブロックなど)、スライス、フレームなどの、任意の適切なビデオユニットとともに使用され得る。
【0020】
ビデオコーディング規格
[0029]ビデオ画像、TV画像、静止画像、またはビデオレコーダもしくはコンピュータによって生成された画像などの、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルからなり得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含む。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の量は、リアルタイム画像伝送を不可能にさせるほど非常に大きい。送信されるべき情報の量を低減するために、JPEG、MPEGおよびH.263規格など、いくつかの異なる圧縮方法が開発された。
【0021】
[0030]ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1ビジュアルと、ITU−T H.262またはISO/IEC MPEG−2ビジュアルと、ITU−T H.263と、ISO/IEC MPEG−4ビジュアルと、それのSVCおよびMVC拡張を含むITU−T H.264とを含む。
【0022】
[0031]さらに、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって開発されている。HEVCドラフト10についての完全引用は、文書JCTVC−L1003、Brossら、「High Efficiency Video Coding(HEVC)Text Specification Draft 10」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、第12回会合:ジュネーブ、スイス、2013年1月14日〜2013年1月23日である。HEVCへのマルチビュー拡張、すなわち、MV−HEVC、およびSHVCと名付けられたHEVCへのスケーラブル拡張も、JCT−3V(ITU−T/ISO/IECジョイントコラボレーティブチームオン3Dビデオコーディング拡張開発)およびJCT−VCによって、それぞれ開発されている。
【0023】
[0032]新規のシステム、装置、および方法の様々な態様は、これ以降、添付図面を参照しながら、より十分に説明される。しかしながら、本開示は、多くの異なる形態で実施可能であり、本開示の全体を通して示される任意の特定の構造または機能に限定されるものと解釈されるべきでない。むしろ、本開示が、入念で完全であり、本開示の範囲を当業者に十分に伝達するように、これらの態様が提供される。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様と無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載される任意の数の態様を使用して装置が実装されてよく、または方法が実施されてもよい。さらに、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する任意の態様は、特許請求の範囲の1つまたは複数の要素により実施されてもよいことを理解されたい。
【0024】
[0033]特定の態様について本明細書で説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利益、使用、または目的に限定されることを意図しない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能なものであり、そのうちのいくつかが図面および好ましい態様の以下の説明において例として示される。詳細な説明および図面は、限定的ではなく、本開示の例示にすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【0025】
[0034]添付の図面は、例を示す。添付の図面内で参照番号によって指示される要素は、以下の説明において同様の参照番号で指示される要素に対応する。本開示では、序数語(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの、異なる要素を指すために使用されるにすぎない。
【0026】
ビデオコーディングシステム
[0035]
図1Aは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願に記載される態様は、トランスコーダ(たとえば、ビットストリームを復号し別のビットストリームを再符号化することができるデバイス)およびミドルボックス(たとえば、ビットストリームを修正、変換、および/または別のやり方で操作することができるデバイス)などの、他の関係するデバイスに拡張され得る。
【0027】
[0036]
図1Aに示すように、ビデオコーディングシステム10は、宛先モジュール14によって後で復号されるべき符号化ビデオデータを生成するソースモジュール12を含む。
図1Aの例では、ソースモジュール12および宛先モジュール14は別個のデバイス上にある− 詳細には、ソースモジュール12はソースデバイスの部分であり、宛先モジュール14は宛先デバイスの部分である。しかしながら、ソースおよび宛先モジュール12、14が、
図1Bの例に示すように、同じデバイス上にあってもよく、または同じデバイスの部分であってもよいことに留意されたい。
【0028】
[0037]もう一度
図1Aを参照すると、ソースモジュール12および宛先モジュール14は、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースモジュール12および宛先モジュール14はワイヤレス通信のために装備され得る。
【0029】
[0038]宛先モジュール14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースモジュール12から宛先モジュール14に符号化ビデオデータを動かすことが可能な任意のタイプの媒体またはデバイスを備え得る。
図1Aの例では、リンク16は、ソースモジュール12が、符号化ビデオデータをリアルタイムで宛先モジュール14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され得、宛先モジュール14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体または有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースのネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースモジュール12から宛先モジュール14への通信を容易にするために有用であり得る、任意の他の機器を含み得る。
【0030】
[0039]代替的に、符号化データは出力インターフェース22から、随意の記憶デバイス31に出力され得る。同様に、符号化データは、入力インターフェース28によって記憶デバイス31からアクセスされ得る。記憶デバイス31は、ハードドライブ、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたは局所的にアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス31は、ソースモジュール12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先モジュール14は、記憶されているビデオデータに、記憶デバイス31からストリーミングまたはダウンロードを介してアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することができ、その符号化ビデオデータを宛先モジュール14に送信することができる、任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイトのための)、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、または局所的なディスクドライブを含む。宛先モジュール14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイス31からの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、またはその両方の組合せであり得る。
【0031】
[0040]本開示の技法は、ワイヤレスの用途または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信(たとえば、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)など)、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
【0032】
[0041]
図1Aの例では、ソースモジュール12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)および/または送信機を含み得る。ソースモジュール12において、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、
図1Bの例に示すように、ビデオソース18がビデオカメラである場合、ソースモジュール12および宛先モジュール14は、いわゆるカメラ付き電話またはビデオ電話を形成し得る。しかしながら、本開示に記載される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスアプリケーションおよび/または有線アプリケーションに適用され得る。
【0033】
[0042]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースモジュール12の出力インターフェース22を介して、宛先モジュール14に直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先モジュール14または他のデバイスによる後のアクセスのために、記憶デバイス31に記憶され得る。
図1Aおよび
図1Bに示すビデオエンコーダ20は、
図2Aに示すビデオエンコーダ20、
図2Bに示すビデオエンコーダ23、または本明細書に記載される任意の他のビデオエンコーダを備えてよい。
【0034】
[0043]
図1Aの例では、宛先モジュール14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先モジュール14の入力インターフェース28は、符号化ビデオデータを、リンク16を介して受信し得る。リンク16を介して通信され、または記憶デバイス31上に提供された符号化ビデオデータは、ビデオデータを復号する際のビデオデコーダ30などのビデオデコーダによる使用のために、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体に記憶されるか、またはファイルサーバに記憶される符号化ビデオデータに含まれ得る。
図1Aおよび
図1Bに示すビデオデコーダ30は、
図3Aに示すビデオデコーダ30、
図3Bに示すビデオデコーダ33、または本明細書に記載される任意の他のビデオデコーダを備えてよい。
【0035】
[0044]ディスプレイデバイス32は、宛先モジュール14と一体化されるか、またはその外部にあり得る。いくつかの例では、宛先モジュール14は、一体型ディスプレイデバイスを含み得、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先モジュール14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0036】
[0045]関係する態様では、
図1Bは、例示的なビデオ符号化および復号システム10’を示し、ここにおいて、ソースおよび宛先モジュール12、14は、デバイスまたはユーザデバイス11上にあり、またはその部分である。デバイス11は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス11は、ソースおよび宛先モジュール12、14と動作可能に通信している随意のコントローラ/プロセッサモジュール13を含み得る。
図1Bのシステム10’は、ビデオエンコーダ20と出力インターフェース22との間にビデオ処理ユニット21をさらに含み得る。いくつかの実装形態では、ビデオ処理ユニット21は、
図1Bに示すように別個のユニットであるが、他の実施態様では、ビデオ処理ユニット21は、ビデオエンコーダ20および/またはプロセッサ/コントローラモジュール13の部分として実装され得る。
図1Bのシステム10’およびその構成要素は、
図1Aのシステム10およびその構成要素と場合によっては類似である。
【0037】
[0046]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中のHEVC規格など、ビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他の独自の規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、MPEG−2およびITU−T H.263を含む。
【0038】
[0047]
図1Aおよび
図1Bの例に示されないが、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0039】
[0048]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し得、本開示の技法を実行するために、1つまたは複数のプロセッサを使用して、命令をハードウェアで実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0040】
ビデオコーディングプロセス
[0049]上記で簡略に述べられたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは、1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャは、ビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと、関連するデータとを含み得る。コード化ピクチャは、ピクチャのコーディングされた表現である。
【0041】
[0050]ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ20がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと、関連するデータとを生成し得る。関連するデータは、ビデオパラメータセット(VPS:video parameter set)と、シーケンスパラメータセット(SPS:sequence parameter set)と、ピクチャパラメータセット(PPS:picture parameter set)と、適応パラメータセット(APS:adaptation parameter set)と、他のシンタックス構造とを含み得る。SPSは、ピクチャの0個以上のシーケンスに適用可能なパラメータを含み得る。PPSは、0個以上のピクチャに適用可能なパラメータを含み得る。APSは、0個以上のピクチャに適用可能なパラメータを含み得る。APS中のパラメータは、PPS中のパラメータよりも変化する可能性が高いパラメータであり得る。
【0042】
[0051]コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの2次元アレイであり得る。ビデオブロックの各々は、ツリーブロックに関連付けられる。いくつかの事例では、ツリーブロックは、最大コーディングユニット(LCU:largest coding unit)と呼ばれることがある。HEVCのツリーブロックは、H.264/AVCのような従来の規格のマクロブロックに、広い意味で類似し得る。しかしながら、ツリーブロックは、特定のサイズに必ずしも限定されず、1つまたは複数のCUを含み得る。ビデオエンコーダ20は、ツリーブロックのビデオブロックを、CUに関連付けられたビデオブロックに区分するために、4分木区分を使用し得、したがって、「ツリーブロック」という名前である。
【0043】
[0052]いくつかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分し得る。スライスの各々は、整数個のCUを含み得る。いくつかの事例では、スライスは、整数個のツリーブロックを備える。他の事例では、スライスの境界は、ツリーブロック内にあり得る。
【0044】
[0053]ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは、「コード化スライス」と呼ばれることがある。
【0045】
[0054]コード化スライスを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を実行するとき、ビデオエンコーダ20は、コーディングされたツリーブロックを生成し得る。コーディングされたツリーブロックは、ツリーブロックの符号化されたバージョンを表すデータを備え得る。
【0046】
[0055]ビデオエンコーダ20がコード化スライスを生成するとき、ビデオエンコーダ20は、ラスタ走査順序に従って、スライス中のツリーブロックに対して符号化演算を実行(たとえば、符号化)し得る。たとえば、ビデオエンコーダ20は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む順序で、ビデオエンコーダ20がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
【0047】
[0056]ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上および左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下および右のツリーブロックはまだ符号化されていない。したがって、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上および左のツリーブロックを符号化することによって生成される情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下および右のツリーブロックを符号化することによって生成される情報にアクセスできないことがある。
【0048】
[0057]コーディングされたツリーブロックを生成するために、ビデオエンコーダ20は、ビデオブロックを徐々により小さいビデオブロックに分割するために、ツリーブロックのビデオブロック上で4分木区分を再帰的に実行し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。たとえば、ビデオエンコーダ20は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し得、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたCUは、そのビデオブロックが他のCUに関連付けられたビデオブロックに区分されているCUであり得る。区分されていないCUは、そのビデオブロックが他のCUに関連付けられたビデオブロックに区分されていないCUであり得る。
【0049】
[0058]ビットストリーム中の1つまたは複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。CUのビデオブロックは形状が正方形であり得る。CUのビデオブロックのサイズ(たとえば、CUのサイズ)は、8×8のピクセルから、最大で64×64以上のピクセルを有するツリーブロックのビデオブロックのサイズ(たとえば、ツリーブロックのサイズ)までわたり得る。
【0050】
[0059]ビデオエンコーダ20は、z走査順序に従って、ツリーブロックの各CUに対して符号化演算を実行(たとえば、符号化)し得る。言い換えれば、ビデオエンコーダ20は、左上のCUと、右上のCUと、左下のCUと、次いで右下のCUとを、その順序で符号化し得る。ビデオエンコーダ20が、区分されているCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、z走査順序に従って、区分されているCUのビデオブロックのサブブロックに関連付けられたCUを符号化し得る。言い換えれば、ビデオエンコーダ20は、左上のサブブロックに関連付けられたCUと、右上のサブブロックに関連付けられたCUと、左下のサブブロックに関連付けられたCUと、次いで右下のサブブロックに関連付けられたCUとを、その順序で符号化し得る。
【0051】
[0060]z走査順序に従ってツリーブロックのCUを符号化した結果として、所与のCUの上、左上、右上、左、および左下のCUは符号化されていることがある。所与のCUの下または右のCUはまだ符号化されていない。したがって、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接するいくつかのCUを符号化することによって生成される情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接する他のCUを符号化することによって生成される情報にアクセスできないことがある。
【0052】
[0061]ビデオエンコーダ20が、区分されていないCUを符号化するとき、ビデオエンコーダ20は、CUに対する1つまたは複数のPUを生成し得る。CUのPUの各々は、CUのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ20は、CUの各PUに対して予測ビデオブロックを生成し得る。PUの予測ビデオブロックは、サンプルのブロックであり得る。ビデオエンコーダ20は、PUのための予測ビデオブロックを生成するために、イントラ予測またはインター予測を使用し得る。
【0053】
[0062]ビデオエンコーダ20がPUの予測ビデオブロックを生成するためにイントラ予測を使用するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がCUのPUの予測ビデオブロックを生成するためにイントラ予測を使用する場合、CUはイントラ予測されたCUである。ビデオエンコーダ20がPUの予測ビデオブロックを生成するためにインター予測を使用するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がCUのPUの予測ビデオブロックを生成するためにインター予測を使用する場合、CUはインター予測されたCUである。
【0054】
[0063]さらに、ビデオエンコーダ20がPUのための予測ビデオブロックを生成するためにインター予測を使用するとき、ビデオエンコーダ20は、PUのための動き情報を生成し得る。PUのための動き情報は、PUの1つまたは複数の参照ブロックを示し得る。PUの各参照ブロックは、参照ピクチャ内のビデオブロックであり得る。参照ピクチャは、PUに関連付けられたピクチャ以外のピクチャであり得る。いくつかの事例では、PUの参照ブロックは、PUの「参照サンプル」と呼ばれることもある。ビデオエンコーダ20は、PUの参照ブロックに基づいて、PUのための予測ビデオブロックを生成し得る。
【0055】
[0064]ビデオエンコーダ20がCUの1つまたは複数のPUのための予測ビデオブロックを生成した後、ビデオエンコーダ20は、CUのPUのための予測ビデオブロックに基づいて、CUに対する残差データを生成し得る。CUの残差データは、CUのPUのための予測ビデオブロック中のサンプルと、CUの元のビデオブロック中のサンプルとの差分を示し得る。
【0056】
[0065]さらに、区分されていないCUに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、CUの残差データを、CUのTUに関連付けられた残差データの1つまたは複数のブロック(たとえば、残差ビデオブロック)に区分するために、CUの残差データに対して再帰的な4分木区分を実行し得る。CUの各TUは、異なる残差ビデオブロックに関連付けられ得る。
【0057】
[0066]ビデオエンコーダ20は、TUに関連付けられた変換係数ブロック(たとえば、変換係数のブロック)を生成するために、TUに関連付けられた残差ビデオブロックに1つまたは複数の変換を適用し得る。概念的に、変換係数ブロックは変換係数の2次元(2D)行列であり得る。
【0058】
[0067]変換係数ブロックを生成した後、ビデオエンコーダ20は、変換係数ブロックに対して量子化プロセスを実行し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、変換係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中に、nビット変換係数はmビット変換係数に切り捨てられ得、ここで、nはmよりも大きい。
【0059】
[0068]ビデオエンコーダ20は、各CUを、量子化パラメータ(QP)値に関連付け得る。CUに関連付けられたQP値は、ビデオエンコーダ20が、CUに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
【0060】
[0069]ビデオエンコーダ20が変換係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数ブロックの中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ20は、これらのシンタックス要素のうちのいくつかに、コンテキスト適応型バイナリ算術コーディング(CABAC:Context Adaptive Binary Arithmetic Coding)演算などのエントロピー符号化演算を適用し得る。コンテンツ適応型可変長コーディング(CAVLC:content adaptive variable length coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コーディング、または他のバイナリ算術コーディングなど、他のエントロピーコーディング技法も使用され得る。
【0061】
[0070]ビデオエンコーダ20によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ(NAL:Network Abstraction Layer)ユニットを含み得る。NALユニットの各々は、NALユニット中のデータのタイプの指示と、データを含むバイトとを含む、シンタックス構造であり得る。たとえば、NALユニットは、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足エンハンスメント情報(SEI:supplemental enhancement information)、アクセスユニットデリミタ、フィラーデータ、または別のタイプのデータを表すデータを含み得る。NALユニット中のデータは、様々なシンタックス構造を含み得る。
【0062】
[0071]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ20によって符号化されたビデオデータのコーディングされた表現を含み得る。ビデオデコーダ30がビットストリームを受信すると、ビデオデコーダ30は、ビットストリームに対して構文解析動作を実行し得る。ビデオデコーダ30が構文解析動作を実行するとき、ビデオデコーダ30は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ30は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ20によって実行されるプロセスの逆であり得る。
【0063】
[0072]ビデオデコーダ30がCUに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ30は、シンタックス要素に基づいて、CUのPUのための予測ビデオブロックを生成し得る。さらに、ビデオデコーダ30は、CUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、CUのTUに関連付けられた残差ビデオブロックを再構成するために、変換係数ブロックに対して逆変換を実行し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ30は、予測ビデオブロックおよび残差ビデオブロックに基づいて、CUのビデオブロックを再構成し得る。このようにして、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、CUのビデオブロックを再構成し得る。
【0064】
ビデオエンコーダ
[0073]
図2Aは、本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図である。ビデオエンコーダ20は、HEVCの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオエンコーダ20は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。一例として、予測処理ユニット100は、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。別の実施形態では、ビデオエンコーダ20は、本開示で説明する技法のいずれかまたはすべてを実行するように構成された随意のレイヤ間予測ユニット128を含む。他の実施形態では、レイヤ間予測は、予測処理ユニット100(たとえば、インター予測ユニット121および/またはイントラ予測ユニット126)によって実行され得、その場合、レイヤ間予測ユニット128は省略され得る。しかしながら、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
【0065】
[0074]説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオエンコーダ20を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
図2Aに示す例は、シングルレイヤコーデックのためのものである。しかしながら、
図2Bに関してさらに説明するように、ビデオエンコーダ20の一部または全部は、マルチレイヤコーデックの処理のために複製され得る。
【0066】
[0075]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために、空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレーム内またはピクチャ内のビデオの時間的冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを参照し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを参照し得る。
【0067】
[0076]
図2Aの例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換ユニット110と、再構成ユニット112と、フィルタユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116とを含む。予測処理ユニット100は、インター予測ユニット121と、動き推定ユニット122と、動き補償ユニット124と、イントラ予測ユニット126と、レイヤ間予測ユニット128とを含む。他の例では、ビデオエンコーダ20は、より多いか、より少ないか、または異なる機能構成要素を含み得る。さらに、動き推定ユニット122および動き補償ユニット124は、高度に統合され得るが、
図2Aの例では、説明の目的で別々に表されている。
【0068】
[0077]ビデオエンコーダ20は、ビデオデータを受信し得る。ビデオエンコーダ20は、様々なソースからビデオデータを受信し得る。たとえば、ビデオエンコーダ20は、ビデオソース18(たとえば、
図1Aまたは
図1Bに示す)または別のソースからビデオデータを受信し得る。ビデオデータは、一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ピクチャの各々に対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、スライス中のツリーブロックに対して符号化演算を実行し得る。
【0069】
[0078]ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット100は、ビデオブロックを徐々により小さいビデオブロックに分割するために、ツリーブロックのビデオブロックに対して4分木区分を実行し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。たとえば、予測処理ユニット100は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し得、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロックに区分し得、以下同様である。
【0070】
[0079]CUに関連付けられたビデオブロックのサイズは、8×8サンプルから、最大で64×64サンプル以上のツリーブロックのサイズにまでわたり得る。本開示では、「N×N」および「N by N」は、垂直方向の寸法および水平方向の寸法に関するビデオブロックのサンプルの寸法、たとえば、16×16サンプルまたは16 by 16サンプルを指すために、互換的に使用され得る。一般に、16×16のビデオブロックは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×Nのブロックは、一般に、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表す。
【0071】
[0080]さらに、ツリーブロックに対して符号化演算を実行することの一部として、予測処理ユニット100は、ツリーブロック用の階層的な4分木データ構造を生成し得る。たとえば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。予測処理ユニット100がツリーブロックのビデオブロックを4つのサブブロックに区分する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードの各々は、サブブロックのうちの1つに関連付けられたCUに対応する。予測処理ユニット100がサブブロックのうちの1つを4つのサブサブブロックに区分する場合、サブブロックに関連付けられたCUに対応するノードは、サブサブブロックのうちの1つに関連付けられたCUに各々が対応する、4つの子ノードを有し得る。
【0072】
[0081]4分木データ構造の各ノードは、対応するツリーブロックまたはCUのシンタックスデータ(たとえば、シンタックス要素)を含み得る。たとえば、4分木の中のノードは、そのノードに対応するCUのビデオブロックが4つのサブブロックに区分(たとえば、分割)されているかどうかを示すスプリットフラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUのビデオブロックがサブブロックに分割されているかどうかに依存し得る。ビデオブロックが区分されていないCUは、4分木データ構造におけるリーフノードに対応し得る。コーディングされたツリーブロックは、対応するツリーブロック用の4分木データ構造に基づくデータを含み得る。
【0073】
[0082]ビデオエンコーダ20は、ツリーブロックの区分されていない各CUに対して符号化演算を実行し得る。ビデオエンコーダ20が、区分されていないCUに対して符号化演算を実行するとき、ビデオエンコーダ20は、区分されていないCUの符号化された表現を表すデータを生成する。
【0074】
[0083]CUに対して符号化演算を実行することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの中で、CUのビデオブロックを区分し得る。ビデオエンコーダ20およびビデオデコーダ30は、様々なPUサイズをサポートし得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、2N×2NまたはN×NのPUサイズ、および2N×2N、2N×N、N×2N、N×N、2N×nU、nL×2N、nR×2N、または同様の対称PUサイズでのインター予測とをサポートし得る。ビデオエンコーダ20およびビデオデコーダ30は、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズに対する非対称区分もサポートし得る。いくつかの例では、予測処理ユニット100は、CUのビデオブロックの辺に直角に接触しない境界に沿ってCUのPUの間でCUのビデオブロックを区分するように、幾何学的な区分を実行し得る。
【0075】
[0084]インター予測ユニット121は、CUの各PUに対してインター予測を実行し得る。インター予測は、時間圧縮を実現し得る。PUに対してインター予測を実行するために、動き推定ユニット122は、PUのための動き情報を生成し得る。動き補償ユニット124は、PUベースの動き情報およびCUに関連付けられたピクチャ以外のピクチャ(たとえば、参照ピクチャ)の復号サンプルのための、予測ビデオブロックを生成し得る。本開示では、動き補償ユニット124によって生成される予測ビデオブロックは、インター予測ビデオブロックと呼ばれることがある。
【0076】
[0085]スライスは、Iスライス、Pスライス、またはBスライスであり得る。動き推定ユニット122および動き補償ユニット124は、PUがIスライス中にあるのか、Pスライス中にあるのか、それともBスライス中にあるのかに応じて、CUのPUのための異なる演算を実行し得る。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、動き推定ユニット122および動き補償ユニット124は、PUに対してインター予測を実行しない。
【0077】
[0086]PUがPスライス中にある場合、PUを含むピクチャは、「リスト0」と呼ばれる参照ピクチャのリストに関連付けられる。リスト0中の参照ピクチャの各々は、他のピクチャのインター予測のために使用され得るサンプルを含む。動き推定ユニット122がPスライス中のPUに関して動き推定演算を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得る。PUの参照ブロックは、PUのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、たとえば、サンプルのブロックであり得る。動き推定ユニット122は、参照ピクチャ中のサンプルのセットがどの程度密接にPUのビデオブロック中のサンプルに対応するかを決定するために、様々なメトリックを使用し得る。たとえば、動き推定ユニット122は、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって、参照ピクチャ中のサンプルのセットがどの程度密接にPUのビデオブロック中のサンプルに対応するかを決定し得る。
【0078】
[0087]Pスライス中のPUの参照ブロックを識別した後、動き推定ユニット122は、参照ブロックを含んでいる、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット122は、動きベクトルを異なる精度に生成し得る。たとえば、動き推定ユニット122は、1/4サンプル精度、1/8サンプル精度、または他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって識別された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0079】
[0088]PUがBスライス中にある場合、PUを含むピクチャは、「リスト0」および「リスト1」と呼ばれる参照ピクチャの2つのリストに関連付けられ得る。いくつかの例では、Bスライスを含むピクチャは、リスト0とリスト1の組合せである、リストの組合せと関連付けられ得る。
【0080】
[0089]さらに、PUがBスライス中にある場合、動き推定ユニット122は、PUのための単方向予測または双方向予測を実行し得る。動き推定ユニット122がPUのための単方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0またはリスト1の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含む、リスト0またはリスト1中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力し得る。予測方向インジケータは、参照インデックスが、リスト0中の参照ピクチャを示すのか、それともリスト1中の参照ピクチャを示すのかを示し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0081】
[0090]動き推定ユニット122がPUのための双方向予測を実行するとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得、また、PUのための別の参照ブロックについて、リスト1中の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含む、リスト0およびリスト1中の参照ピクチャを示す参照インデックスと、参照ブロックとPUとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、PUの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
【0082】
[0091]いくつかの事例では、動き推定ユニット122は、PUのための動き情報のフルセットをエントロピー符号化ユニット116に出力しない。そうではなく、動き推定ユニット122は、別のPUの動き情報を参照して、PUの動き情報をシグナリングし得る。たとえば、動き推定ユニット122は、PUの動き情報が、隣接PUの動き情報と十分に類似していると決定し得る。この例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、PUが隣接PUと同じ動き情報を有することをビデオデコーダ30に示す値を示し得る。別の例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、隣接PUと動きベクトル差分(MVD)とを識別し得る。動きベクトル差分は、PUの動きベクトルと、示される隣接PUの動きベクトルとの差分を示す。ビデオデコーダ30は、PUの動きベクトルを決定するために、示された隣接PUの動きベクトルと、動きベクトル差分とを使用し得る。第2のPUの動き情報をシグナリングするときに第1のPUの動き情報を参照することによって、ビデオエンコーダ20は、より少数のビットを使用して、第2のPUの動き情報をシグナリングすることが可能であり得る。
【0083】
[0092]CUに対して符号化演算を実行することの一部として、イントラ予測ユニット126は、CUのPUに対してイントラ予測を実行し得る。イントラ予測は、空間圧縮を実現し得る。イントラ予測ユニット126がPUに対してイントラ予測を実行するとき、イントラ予測ユニット126は、同じピクチャ中の他のPUの復号サンプルに基づいて、PUのための予測データを生成し得る。PUのための予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット126は、Iスライス、Pスライス、およびBスライス中のPUに対してイントラ予測を実行し得る。
【0084】
[0093]PUに対してイントラ予測を実行するために、イントラ予測ユニット126は、PUのための予測データの複数のセットを生成するために、複数のイントラ予測モードを使用し得る。イントラ予測ユニット126がPUのための予測データのセットを生成するためにイントラ予測モードを使用するとき、イントラ予測ユニット126は、イントラ予測モードと関連する方向および/または勾配で、隣接PUのビデオブロックからPUのビデオブロックにわたってサンプルを延ばし得る。PU、CU、およびツリーブロックについて左から右、上から下の符号化順序を仮定すると、隣接PUは、PUの上、右上、左上、または左にあり得る。イントラ予測ユニット126は、PUのサイズに応じて、様々な数のイントラ予測モード、たとえば、33個の方向性イントラ予測モードを使用し得る。
【0085】
[0094]予測処理ユニット100は、動き補償ユニット124によってPUのために生成された予測データ、またはイントラ予測ユニット126によってPUのために生成された予測データの中から、PUのための予測データを選択し得る。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみメトリックに基づいて、PUのための予測データを選択する。
【0086】
[0095]予測処理ユニット100がイントラ予測ユニット126によって生成された予測データを選択する場合、予測処理ユニット100は、PUのための予測データを生成するために使用されたイントラ予測モード、たとえば、選択されたイントラ予測モードをシグナリングし得る。予測処理ユニット100は、選択されたイントラ予測モードを様々な方法でシグナリングし得る。たとえば、選択されたイントラ予測モードは、隣接PUのイントラ予測モードと同じであることが起こり得る。言い換えれば、隣接PUのイントラ予測モードは、現在PUに対して最確モードであり得る。したがって、予測処理ユニット100は、選択されたイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示すためのシンタックス要素を生成し得る。
【0087】
[0096]上記で説明したように、ビデオエンコーダ20は、レイヤ間予測ユニット128を含み得る。レイヤ間予測ユニット128は、SVCにおいて利用可能である1つまたは複数の異なるレイヤ(たとえば、ベースレイヤまたは参照レイヤ)を使用して、現在ブロック(たとえば、EL中の現在ブロック)を予測するように構成される。そのような予測は、レイヤ間予測と呼ばれることがある。レイヤ間予測ユニット128は、レイヤ間冗長性を低減するための予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例は、レイヤ間イントラ予測と、レイヤ間動き予測と、レイヤ間残差予測とを含む。レイヤ間イントラ予測は、エンハンスメントレイヤ中の現在ブロックを予測するために、ベースレイヤの中でコロケートされているブロックの再構成を使用する。レイヤ間動き予測は、エンハンスメントレイヤ中の動作を予測するために、ベースレイヤの動き情報を使用する。レイヤ間残差予測は、エンハンスメントレイヤの残差を予測するために、ベースレイヤの残差を使用する。レイヤ間予測方式の各々について、以下でより詳細に説明する。
【0088】
[0097]予測処理ユニット100がCUのPUのための予測データを選択した後、残差生成ユニット102は、CUのビデオブロックからCUのPUの予測ビデオブロックを差し引くこと(たとえば、マイナス符号によって示される)によって、CUの残差データを生成し得る。CUの残差データは、CUのビデオブロック中のサンプルの異なるサンプル成分に対応する2D残差ビデオブロックを含み得る。たとえば、残差データは、CUのPUの予測ビデオブロック中のサンプルのルミナンス成分と、CUの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。さらに、CUの残差データは、CUのPUの予測ビデオブロック中のサンプルのクロミナンス成分と、CUの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
【0089】
[0098]予測処理ユニット100は、CUの残差ビデオブロックをサブブロックに区分するために、4分木区分を実行し得る。分割されていない各残差ビデオブロックは、CUの異なるTUに関連付けられ得る。CUのTUに関連付けられる残差ビデオブロックのサイズおよび位置は、CUのPUに関連付けられたビデオブロックのサイズおよび位置に基づいてもよく、または基づかなくてもよい。「残差4分木」(RQT)と呼ばれる4分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
【0090】
[0099]変換処理ユニット104は、TUに関連付けられた残差ビデオブロックに1つまたは複数の変換を適用することによって、CUの各TUのための1つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の2D行列であり得る。変換処理ユニット104は、TUに関連付けられた残差ビデオブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に類似の変換を、TUに関連付けられた残差ビデオブロックに適用し得る。
【0091】
[00100]変換処理ユニット104が、TUに関連付けられた変換係数ブロックを生成した後、量子化ユニット106は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット106は、CUに関連付けられたQP値に基づいて、CUのTUに関連付けられた変換係数ブロックを量子化し得る。
【0092】
[00101]ビデオエンコーダ20は、様々な方法でQP値をCUに関連付け得る。たとえば、ビデオエンコーダ20は、CUに関連付けられたツリーブロックに対して、レートひずみ分析を実行し得る。レートひずみ分析では、ビデオエンコーダ20は、ツリーブロックに対して符号化演算を複数回実行することによって、ツリーブロックの複数のコーディングされた表現を生成し得る。ビデオエンコーダ20が、ツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ20は、異なるQP値をCUに関連付け得る。最小のビットレートおよびひずみメトリックを有するツリーブロックのコーディングされた表現で所与のQP値がCUに関連付けられるとき、ビデオエンコーダ20は、所与のQP値がCUに関連付けられることをシグナリングし得る。
【0093】
[00102]逆量子化ユニット108および逆変換ユニット110は、変換係数ブロックから残差ビデオブロックを再構成するために、それぞれ、逆量子化と逆変換とを変換係数ブロックに適用し得る。再構成ユニット112は、TUに関連付けられた再構成されたビデオブロックを生成するために、再構成された残差ビデオブロックを、予測処理ユニット100によって生成された1つまたは複数の予測ビデオブロックからの対応するサンプルに追加し得る。このようにCUの各TUについてビデオブロックを再構成することによって、ビデオエンコーダ20は、CUのビデオブロックを再構成し得る。
【0094】
[00103]再構成ユニット112がCUのビデオブロックを再構成した後、フィルタユニット113は、CUに関連付けられたビデオブロックにおけるブロッキングアーティファクトを低減するために、デブロッキング演算を実行し得る。1つまたは複数のデブロッキング演算を実行した後、フィルタユニット113は、CUの再構成されたビデオブロックを復号ピクチャバッファ114に記憶し得る。動き推定ユニット122および動き補償ユニット124は、後続のピクチャのPUに対してインター予測を実行するために、再構成されたビデオブロックを含む参照ピクチャを使用し得る。さらに、イントラ予測ユニット126は、CUと同じピクチャ中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ114の中の再構成されたビデオブロックを使用し得る。
【0095】
[00104]エントロピー符号化ユニット116は、ビデオエンコーダ20の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット116は、量子化ユニット106から変換係数ブロックを受信し得、予測処理ユニット100からシンタックス要素を受信し得る。エントロピー符号化ユニット116がデータを受信すると、エントロピー符号化ユニット116は、エントロピー符号化データを生成するために、1つまたは複数のエントロピー符号化演算を実行し得る。たとえば、ビデオエンコーダ20は、コンテキスト適応型可変長コーディング(CAVLC)演算、CABAC演算、変数間(V2V:variable-to-variable)レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)演算、確率間隔区分エントロピー(PIPE)コーディング演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。エントロピー符号化ユニット116は、エントロピー符号化データを含むビットストリームを出力し得る。
【0096】
[00105]データに対してエントロピー符号化演算を実行することの一部として、エントロピー符号化ユニット116は、コンテキストモデルを選択し得る。エントロピー符号化ユニット116がCABAC演算を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。CABACのコンテキストでは、「ビン」という用語は、シンタックス要素の2値化されたバージョンのビットを指すために使用される。
【0097】
マルチレイヤビデオエンコーダ
[00106]
図2Bは、本開示で説明する態様による技法を実装し得るマルチレイヤビデオエンコーダ23の一例を示すブロック図である。ビデオエンコーダ23は、SHVCおよびマルチビューコーディングの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオエンコーダ23は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
【0098】
[00107]ビデオエンコーダ23はビデオエンコーダ20Aとビデオエンコーダ20Bとを含み、それらの各々はビデオエンコーダ20として構成され得、ビデオエンコーダ20に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオエンコーダ20Aおよび20Bは、ビデオエンコーダ20としてのシステムおよびサブシステムのうちの少なくともいくつかを含み得る。ビデオエンコーダ23は、2つのビデオエンコーダ20Aおよび20Bを含むように示されるが、ビデオエンコーダ23は、そのように限定されず、任意の数のビデオエンコーダ20のレイヤを含み得る。いくつかの実施形態では、ビデオエンコーダ23は、アクセスユニット中の各ピクチャまたは各フレームに対してビデオエンコーダ20を含み得る。たとえば、5つのピクチャを含むアクセスユニットは、5つのエンコーダレイヤを含むビデオエンコーダによって処理または符号化され得る。いくつかの実施形態では、ビデオエンコーダ23は、アクセスユニット中のフレームよりも多くのエンコーダレイヤを含み得る。いくつかのそのような場合では、ビデオエンコーダのレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【0099】
[00108]ビデオエンコーダ20Aおよび20Bに加えて、ビデオエンコーダ23は、リサンプリングユニット90を含み得る。リサンプリングユニット90は、場合によっては、たとえば、エンハンスメントレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。リサンプリングユニット90は、フレームの受信されたベースレイヤに関連付けられた特定の情報をアップサンプリングし得るが、他の情報をアップサンプリングしないことがある。たとえば、リサンプリングユニット90は、ベースレイヤの空間サイズまたはピクセルの数をアップサンプリングし得るが、スライスの数またはピクチャ順序カウントは一定のままであり得る。場合によっては、リサンプリングユニット90は、受信されたビデオを処理しないことがあり、および/または随意であり得る。たとえば、場合によっては、予測処理ユニット100は、アップサンプリングを実行し得る。いくつかの実施形態では、リサンプリングユニット90は、レイヤをアップサンプリングし、スライス境界ルールおよび/またはラスタ走査ルールのセットに準拠するように、1つまたは複数のスライスを再編成、再定義、修正、または調整するように構成される。アクセスユニット中のベースレイヤまたは下位レイヤをアップサンプリングするものとして主に説明したが、場合によっては、リサンプリングユニット90は、レイヤをダウンサンプリングし得る。たとえば、ビデオのストリーミング中に帯域幅が低減した場合、フレームは、アップサンプリングされるのではなく、ダウンサンプリングされ得る。
【0100】
[00109]リサンプリングユニット90は、下位レイヤエンコーダ(たとえば、ビデオエンコーダ20A)の復号ピクチャバッファ114からピクチャまたはフレーム(またはピクチャに関連付けられたピクチャ情報)を受信し、ピクチャ(または受信されたピクチャ情報)をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤエンコーダと同じアクセスユニット中のピクチャを符号化するように構成された、上位レイヤエンコーダ(たとえば、ビデオエンコーダ20B)の予測処理ユニット100に供給され得る。場合によっては、上位レイヤエンコーダは、下位レイヤエンコーダから除去された1つのレイヤである。他の場合には、
図2Bのレイヤ0ビデオエンコーダとレイヤ1エンコーダとの間に、1つまたは複数の上位レイヤエンコーダがあり得る。
【0101】
[00110]場合によっては、リサンプリングユニット90は、省略またはバイパスされ得る。そのような場合、ビデオエンコーダ20Aの復号ピクチャバッファ114からのピクチャは、直接、または少なくともリサンプリングユニット90に供給されずに、ビデオエンコーダ20Bの予測処理ユニット100に供給され得る。たとえば、ビデオエンコーダ20Bに供給されたビデオデータ、およびビデオエンコーダ20Aの復号ピクチャバッファ114からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、いかなるリサンプリングも伴わずにビデオエンコーダ20Bに供給され得る。
【0102】
[00111]いくつかの実施形態では、ビデオエンコーダ23は、ビデオエンコーダ20Aにビデオデータを供給する前に、ダウンサンプリングユニット94を使用して下位レイヤエンコーダに供給されるべきビデオデータをダウンサンプリングする。代替的に、ダウンサンプリングユニット94は、ビデオデータをアップサンプリングまたはダウンサンプリングすることが可能なリサンプリングユニット90であり得る。また他の実施形態では、ダウンサンプリングユニット94は省略され得る。
【0103】
[00112]
図2Bに示すように、ビデオエンコーダ23は、マルチプレクサ98、すなわちmuxをさらに含み得る。mux98は、ビデオエンコーダ23から合成ビットストリームを出力することができる。合成ビットストリームは、ビデオエンコーダ20Aおよび20Bの各々からビットストリームを取ることと、所与の時間において出力されるビットストリームを交替することとによって、作成され得る。場合によっては、2つの(または、3つ以上のビデオエンコーダレイヤの場合には、より多くの)ビットストリームからのビットが一度に1ビットずつ交替され得るが、多くの場合、ビットストリームは別様に合成される。たとえば、出力ビットストリームは、選択されたビットストリームを一度に1ブロックずつ交替することによって作成され得る。別の例では、出力ビットストリームは、ビデオエンコーダ20Aおよび20Bの各々から非1:1比のブロックを出力することによって作成され得る。たとえば、2つのブロックは、ビデオエンコーダ20Aから出力された各ブロックについてビデオエンコーダ20Bから出力され得る。いくつかの実施形態では、mux98からの出力ストリームはプリプログラムされ得る。他の実施形態では、mux98は、ソースモジュール12を含むソースデバイス上のプロセッサからなど、ビデオエンコーダ23の外部のシステムから受信された制御信号に基づいて、ビデオエンコーダ20A、20Bからのビットストリームを合成し得る。制御信号は、ビデオソース18からのビデオの解像度またはビットレートに基づいて、リンク16の帯域幅に基づいて、ユーザに関連するサブスクリプション(たとえば、有料サブスクリプション対無料サブスクリプション)に基づいて、またはビデオエンコーダ23から望まれる解像度出力を決定するための他のファクタに基づいて生成され得る。
【0104】
ビデオデコーダ
[00113]
図3Aは、本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ30は、HEVCの場合など、ビデオフレームの単一のレイヤを処理するように構成され得る。さらに、ビデオデコーダ30は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。一例として、動き補償ユニット162および/またはイントラ予測ユニット164は、本開示で説明する技法のうちのいずれかまたはすべてを実行するように構成され得る。一実施形態では、ビデオデコーダ30は、本開示で説明する技法のいずれかまたはすべてを実行するように構成されたレイヤ間予測ユニット166を随意に含み得る。他の実施形態では、レイヤ間予測は、予測処理ユニット152(たとえば、動き補償ユニット162および/またはイントラ予測ユニット164)によって実行され得、その場合、レイヤ間予測ユニット166は省略され得る。しかしながら、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素の間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
【0105】
[00114]説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30を説明する。しかしながら、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
図3Aに示す例は、シングルレイヤコーデックのためのものである。しかしながら、
図3Bに関してさらに説明するように、ビデオデコーダ30の一部または全部は、マルチレイヤコーデックの処理のために複製され得る。
【0106】
[00115]
図3Aの例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換ユニット156と、再構成ユニット158と、フィルタユニット159と、復号ピクチャバッファ160とを含む。予測処理ユニット152は、動き補償ユニット162と、イントラ予測ユニット164と、レイヤ間予測ユニット166とを含む。いくつかの例では、ビデオデコーダ30は、
図2Aのビデオエンコーダ20に関して説明された符号化経路とは全般に逆の復号経路を実行し得る。他の例では、ビデオデコーダ30は、より多いか、より少ないか、または異なる機能構成要素を含み得る。
【0107】
[00116]ビデオデコーダ30は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは、複数のシンタックス要素を含み得る。ビデオデコーダ30がビットストリームを受信すると、エントロピー復号ユニット150は、ビットストリームに対して構文解析動作を実行し得る。ビットストリームに対して構文解析動作を実行した結果として、エントロピー復号ユニット150は、ビットストリームからシンタックス要素を抽出し得る。構文解析動作を実行することの一部として、エントロピー復号ユニット150は、ビットストリーム中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換ユニット156、再構成ユニット158、およびフィルタユニット159は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を実行し得る。
【0108】
[00117]上記で説明したように、ビットストリームは、一連のNALユニットを備え得る。ビットストリームのNALユニットは、ビデオパラメータセットNALユニット、シーケンスパラメータセットNALユニット、ピクチャパラメータセットNALユニット、SEI NALユニットなどを含み得る。ビットストリームに対して構文解析動作を実行することの一部として、エントロピー復号ユニット150は、シーケンスパラメータセットNALユニットからのシーケンスパラメータセット、ピクチャパラメータセットNALユニットからのピクチャパラメータセット、SEI NALユニットからのSEIデータなどを抽出しエントロピー復号する、構文解析動作を実行し得る。
【0109】
[00118]さらに、ビットストリームのNALユニットは、コード化スライスNALユニットを含み得る。ビットストリームに対して構文解析動作を実行することの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからコード化スライスを抽出しエントロピー復号する、構文解析動作を実行し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含み得る。スライスヘッダ中のシンタックス要素は、スライスを含むピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット150は、スライスヘッダを復元するために、コード化スライスヘッダ中のシンタックス要素に対してCABAC復号演算などのエントロピー復号演算を実行し得る。
【0110】
[00119]コード化スライスNALユニットからスライスデータを抽出することの一部として、エントロピー復号ユニット150は、スライスデータ中のコーディングされたCUからシンタックス要素を抽出する構文解析動作を実行し得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット150は、次いで、シンタックス要素のうちのいくつかに対してCABAC復号演算を実行し得る。
【0111】
[00120]エントロピー復号ユニット150が、区分されていないCUに対して構文解析動作を実行した後、ビデオデコーダ30は、区分されていないCUに対して再構成演算を実行し得る。区分されていないCUに対して再構成演算を実行するために、ビデオデコーダ30は、CUの各TUに対して再構成演算を実行し得る。CUの各TUについて再構成演算を実行することによって、ビデオデコーダ30は、CUに関連付けられた残差ビデオブロックを再構成し得る。
【0112】
[00121]TUに対して再構成演算を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた変換係数ブロックを逆量子化(inverse quantize)、たとえば、逆量子化(de-quantize)し得る。逆量子化ユニット154は、HEVCのために提案された、またはH.264復号規格によって定義された逆量子化処理と同様の方法で、変換係数ブロックを逆量子化し得る。逆量子化ユニット154は、量子化の程度を決定し、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、変換係数ブロックのCUに関してビデオエンコーダ20によって計算される量子化パラメータQPを使用し得る。
【0113】
[00122]逆量子化ユニット154が変換係数ブロックを逆量子化した後、逆変換ユニット156は、変換係数ブロックに関連付けられたTUのための残差ビデオブロックを生成し得る。逆変換ユニット156は、TUのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。たとえば、逆変換ユニット156は、変換係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、または別の逆変換を適用し得る。いくつかの例では、逆変換ユニット156は、ビデオエンコーダ20からのシグナリングに基づいて、変換係数ブロックに適用すべき逆変換を決定し得る。そのような例では、逆変換ユニット156は、変換係数ブロックに関連付けられたツリーブロックの4分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を決定し得る。他の例では、逆変換ユニット156は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性から逆変換を推定し得る。いくつかの例では、逆変換ユニット156はカスケード逆変換を適用し得る。
【0114】
[00123]いくつかの例では、動き補償ユニット162は、補間フィルタに基づく補間を実行することによって、PUの予測ビデオブロックを改良し得る。サブサンプル精度を有する動き補償のために使用されるべき補間フィルタ用の識別子は、シンタックス要素に含まれ得る。動き補償ユニット162は、参照ブロックのサブ整数サンプルについての補間値を計算するために、PUの予測ビデオブロックの生成中にビデオエンコーダ20によって使用された同じ補間フィルタを使用し得る。動き補償ユニット162は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し得、予測ビデオブロックを生成するためにその補間フィルタを使用し得る。
【0115】
[00124]PUが、イントラ予測を使用して符号化される場合、イントラ予測ユニット164は、PUのための予測ビデオブロックを生成するためにイントラ予測を実行し得る。たとえば、イントラ予測ユニット164は、ビットストリーム中のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定し得る。ビットストリームは、PUのイントラ予測モードを決定するためにイントラ予測ユニット164が使用し得るシンタックス要素を含み得る。
【0116】
[00125]いくつかの事例では、イントラ予測ユニット164が現在PUのイントラ予測モードを決定するために別のPUのイントラ予測モードを使用するべきであることを、シンタックス要素が示し得る。たとえば、現在PUのイントラ予測モードが隣接PUのイントラ予測モードと同じであることが起こり得る。言い換えれば、隣接PUのイントラ予測モードは、現在PUに対して最確モードであり得る。したがって、この例では、ビットストリームは、PUのイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット164は、次いで、空間的に隣接するPUのビデオブロックに基づいてPUのための予測データ(たとえば、予測サンプル)を生成するために、イントラ予測モードを使用し得る。
【0117】
[00126]上記で説明したように、ビデオデコーダ30もレイヤ間予測ユニット166を含み得る。レイヤ間予測ユニット166は、SVCにおいて利用可能である1つまたは複数の異なるレイヤ(たとえば、ベースレイヤまたは参照レイヤ)を使用して、現在ブロック(たとえば、EL中の現在ブロック)を予測するように構成される。そのような予測は、レイヤ間予測と呼ばれることがある。レイヤ間予測ユニット166は、レイヤ間冗長性を低減するための予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例は、レイヤ間イントラ予測と、レイヤ間動き予測と、レイヤ間残差予測とを含む。レイヤ間イントラ予測は、エンハンスメントレイヤ中の現在ブロックを予測するために、ベースレイヤの中でコロケートされているブロックの再構成を使用する。レイヤ間動き予測は、エンハンスメントレイヤ中の動作を予測するために、ベースレイヤの動き情報を使用する。レイヤ間残差予測は、エンハンスメントレイヤの残差を予測するために、ベースレイヤの残差を使用する。レイヤ間予測方式の各々について、以下でより詳細に説明する。
【0118】
[00127]再構成ユニット158は、CUのビデオブロックを再構成するために、CUのTUに関連付けられた残差ビデオブロックおよびCUのPUの予測ビデオブロック、たとえば、適用可能なとき、イントラ予測データまたはインター予測データのいずれかを使用し得る。したがって、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいてビデオブロックを生成し得る。
【0119】
[00128]再構成ユニット158がCUのビデオブロックを再構成した後、フィルタユニット159は、CUに関連したブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。フィルタユニット159が、CUに関連したブロッキングアーティファクトを低減するためにデブロッキング演算を実行した後、ビデオデコーダ30は、CUのビデオブロックを復号ピクチャバッファ160に記憶し得る。復号ピクチャバッファ160は、次の動き補償、イントラ予測、および
図1Aまたは
図1Bのディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを提供し得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ160の中のビデオブロックに基づいて、他のCUのPUに対して、イントラ予測演算またはインター予測演算を実行し得る。
【0120】
マルチレイヤデコーダ
[00129]
図3Bは、本開示で説明する態様による技法を実装し得るマルチレイヤビデオデコーダ33の一例を示すブロック図である。ビデオデコーダ33は、SHVCおよびマルチビューコーディングの場合など、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオデコーダ33は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
【0121】
[00130]ビデオデコーダ33は、ビデオデコーダ30Aとビデオデコーダ30Bとを含み、それらの各々はビデオデコーダ30として構成され得、ビデオデコーダ30に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオデコーダ30Aおよび30Bは、ビデオデコーダ30としてのシステムおよびサブシステムのうちの少なくともいくつかを含み得る。ビデオデコーダ33は、2つのビデオデコーダ30Aおよび30Bを含むように示されるが、ビデオデコーダ33は、そのように限定されず、任意の数のビデオデコーダ30のレイヤを含み得る。いくつかの実施形態では、ビデオデコーダ33はアクセスユニット中の各ピクチャまたは各フレームに対してビデオデコーダ30を含み得る。たとえば、5つのピクチャを含むアクセスユニットは、5つのデコーダレイヤを含むビデオデコーダによって処理または復号され得る。いくつかの実施形態では、ビデオデコーダ33は、アクセスユニット中のフレームよりも多くのデコーダレイヤを含み得る。いくつかのそのような場合では、ビデオデコーダのレイヤのうちのいくつかは、いくつかのアクセスユニットを処理するときに非アクティブであり得る。
【0122】
[00131]ビデオデコーダ30Aおよび30Bに加えて、ビデオデコーダ33は、アップサンプリングユニット92を含み得る。いくつかの実施形態では、アップサンプリングユニット92は、フレームまたはアクセスユニットのための参照ピクチャリストに追加されるべきエンハンストレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。このエンハンストレイヤは、復号ピクチャバッファ160に記憶され得る。いくつかの実施形態では、アップサンプリングユニット92は、
図2Aのリサンプリングユニット90に関して説明した実施形態の一部または全部を含むことができる。いくつかの実施形態では、アップサンプリングユニット92は、レイヤをアップサンプリングし、スライス境界ルールおよび/またはラスタ走査ルールのセットに準拠するように、1つまたは複数のスライスを再編成、再定義、修正、または調整するように構成される。場合によっては、アップサンプリングユニット92は、受信されたビデオフレームのレイヤをアップサンプリングおよび/またはダウンサンプリングするように構成されたリサンプリングユニットであり得る。
【0123】
[00132]アップサンプリングユニット92は、下位レイヤデコーダ(たとえば、ビデオデコーダ30A)の復号ピクチャバッファ160からピクチャまたはフレーム(またはピクチャに関連付けられたピクチャ情報)を受信し、ピクチャ(または受信されたピクチャ情報)をアップサンプリングするように構成され得る。このアップサンプリングされたピクチャは、次いで、下位レイヤデコーダと同じアクセスユニット中のピクチャを復号するように構成された、上位レイヤデコーダ(たとえば、ビデオデコーダ30B)の予測処理ユニット152に供給され得る。場合によっては、上位レイヤデコーダは、下位レイヤデコーダから除去された1つのレイヤである。他の場合には、
図3Bのレイヤ0デコーダとレイヤ1デコーダとの間に、1つまたは複数の上位レイヤデコーダがあり得る。
【0124】
[00133]場合によっては、アップサンプリングユニット92は、省略またはバイパスされ得る。そのような場合、ビデオデコーダ30Aの復号ピクチャバッファ160からのピクチャは、直接、または少なくともアップサンプリングユニット92に供給されずに、ビデオデコーダ30Bの予測処理ユニット152に供給され得る。たとえば、ビデオデコーダ30Bに供給されたビデオデータ、およびビデオデコーダ30Aの復号ピクチャバッファ160からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、アップサンプリングを伴わずにビデオデコーダ30Bに供給され得る。さらに、いくつかの実施形態では、アップサンプリングユニット92は、ビデオデコーダ30Aの復号ピクチャバッファ160から受信された参照ピクチャを、アップサンプリングまたはダウンサンプリングするように構成されたリサンプリングユニット90であり得る。
【0125】
[00134]
図3Bに示すように、ビデオデコーダ33は、デマルチプレクサ99、すなわちdemuxをさらに含み得る。demux99は、符号化ビデオビットストリームを複数のビットストリームに分割することができ、demux99によって出力された各ビットストリームは、異なるビデオデコーダ30Aおよび30Bに供給される。複数のビットストリームは、ビットストリームを受信することによって作成され得、ビデオデコーダ30Aおよび30Bの各々は、所与の時間においてビットストリームの一部分を受信する。場合によっては、demux99において受信されるビットストリームからのビットは、ビデオデコーダの各々(たとえば、
図3Bの例ではビデオデコーダ30Aおよび30B)の間で、一度に1ビットずつ交替され得るが、多くの場合、ビットストリームは別様に分割される。たとえば、ビットストリームは、一度に1ブロックずつビットストリームを受信するビデオデコーダを交替することによって分割され得る。別の例では、ビットストリームは、非1:1比のブロックによって、ビデオデコーダ30Aおよび30Bの各々に分割され得る。たとえば、2つのブロックは、ビデオデコーダ30Aに供給される各ブロックについてビデオデコーダ30Bに供給され得る。いくつかの実施形態では、demux99によるビットストリームの分割は、プリプログラムされ得る。他の実施形態では、demux99は、宛先モジュール14を含む宛先デバイス上のプロセッサからなど、ビデオデコーダ33の外部のシステムから受信された制御信号に基づいてビットストリームを分割し得る。制御信号は、入力インターフェース28からのビデオの解像度またはビットレートに基づいて、リンク16の帯域幅に基づいて、ユーザに関連付けられたサブスクリプション(たとえば、有料サブスクリプション対無料サブスクリプション)に基づいて、またはビデオデコーダ33によって取得可能な解像度を決定するための他のファクタに基づいて生成され得る。
【0126】
イントラランダムアクセスポイント(IRAP)ピクチャ
[00135]いくつかのビデオコーディング方式は、ビットストリームが、ビットストリームの中でそれらのランダムアクセスポイントに先行するいかなるピクチャも復号する必要なく、それらのランダムアクセスポイントのいずれかから始めて復号され得るような、様々なランダムアクセスポイントをビットストリーム全体にわたって提供し得る。そのようなビデオコーディング方式では、出力順序においてランダムアクセスポイントに追従するすべてのピクチャ(たとえば、ランダムアクセスポイントを提供するピクチャと同じアクセスユニットの中にあるピクチャを含む)は、ランダムアクセスポイントに先行するいかなるピクチャも使用することなく正しく復号され得る。たとえば、ビットストリームの一部分が送信の間または復号の間に失われても、デコーダは、次のランダムアクセスポイントから始めてビットストリームの復号を再開することができる。ランダムアクセスのサポートは、たとえば、動的なストリーミングサービス、シーク動作、チャネル切替えなどを容易にし得る。
【0127】
[00136]いくつかのコーディング方式では、そのようなランダムアクセスポイントは、イントラランダムアクセスポイント(IRAP)ピクチャと呼ばれるピクチャによって提供され得る。たとえば、layerBの中にあり復号順序においてauAに先行するアクセスユニット(「auB」)の中に含まれるランダムアクセスポイント(または、auAの中に含まれるランダムアクセスポイント)を有するlayerAの各参照レイヤ(「layerB」)(たとえば、layerAを予測するために使用されるレイヤである参照レイヤ)に関して出力順序においてauBに追従するlayerAの中のピクチャ(auBの中に位置するそれらのピクチャを含む)が、auBに先行するlayerAの中のいかなるピクチャも復号する必要なく正しく復号可能であるように、アクセスユニット(「auA」)の中に含まれるエンハンスメントレイヤ(「layerA」)の中のランダムアクセスポイント(たとえば、エンハンスメントレイヤIRAPピクチャによって提供される)は、レイヤ特有のランダムアクセスを提供し得る。
【0128】
[00137]IRAPピクチャは、イントラ予測(たとえば、他のピクチャを参照することなくコーディングされる)および/またはレイヤ間予測を使用してコーディングされ得、たとえば、瞬時デコーダリフレッシュ(IDR:instantaneous decoder refresh)ピクチャと、クリーンランダムアクセス(CRA:clean random access)ピクチャと、ブロークンリンクアクセス(BLA:broken link access)ピクチャとを含み得る。ビットストリームの中にIDRピクチャがあるとき、復号順序においてIDRピクチャに先行するすべてのピクチャは、IDRピクチャに追従するピクチャによる予測のために使用されない。ビットストリームの中にCRAピクチャがあるとき、CRAピクチャに追従するピクチャは、復号順序においてCRAピクチャに先行するピクチャを予測のために使用してよく、または使用しなくてもよい。復号順序においてCRAピクチャに追従するが、復号順序においてCRAピクチャに先行するピクチャを使用するピクチャは、ランダムアクセススキップド進み(RASL:random access skipped leading)ピクチャと呼ばれることがある。復号順序においてIRAPピクチャに追従し得るとともに出力順序においてIRAPピクチャに先行し得る別のタイプのピクチャは、復号順序においてIRAPピクチャに先行するいかなるピクチャへの参照も含まないことがあるランダムアクセス復号可能進み(RADL:random access decodable leading)ピクチャである。CRAピクチャに先行するピクチャが利用可能でない場合、RASLピクチャはデコーダによって廃棄されてよい。BLAピクチャは、(たとえば、2つのビットストリームが互いに接合され、BLAピクチャが復号順序において第2のビットストリームの最初のピクチャであるので)BLAピクチャに先行するピクチャがデコーダにとって利用可能でない場合があることを、デコーダに示す。IRAPピクチャであるベースレイヤのピクチャ(たとえば、0としてのレイヤIDを有する)を含むアクセスユニット(たとえば、複数のレイヤにわたって同じ出力時間に関連付けられたすべてのコード化ピクチャからなるピクチャのグループ)は、IRAPアクセスユニットと呼ばれることがある。ベースレイヤなどのレイヤのレイヤIDは、nuh_layer_id値の中に含まれ得る。いくつかの態様では、ベースレイヤは0としてのレイヤIDを有し得る。
【0129】
直接依存性フラグ
[00138]いくつかの例示的な実装形態(たとえば、MV−HEVCおよびSHVC)では、特定のレイヤについて、どの1つまたは複数のレイヤが特定のレイヤのレイヤ間予測のために使用され得るかを指定する、direct_dependency_flagと呼ばれるシンタックス要素がある。一実施形態では、direct_dependency_flagは、ビデオデータのあるレイヤがビデオデータの別のレイヤに基づいて(またはそれに依存して)コーディングされるかどうかを指定する2次元アレイである。そのような2次元アレイは値direct_dependency_flag[i][j]の形態をとり得、ここで、iは、コーディングされるべきレイヤ(たとえば、現在レイヤ)に対応し、jは、参照されるべきレイヤ(たとえば、参照レイヤ)に対応する。この例では、参照レイヤが現在レイヤの直接参照レイヤでない場合、direct_dependency_flagは0であり得、参照レイヤが現在レイヤの直接参照レイヤである場合、direct_dependency_flagは1であり得る。一実施形態では、direct_dependency_flagが省略されるかまたは未定義である場合、値は0であると推定される。別の実施形態では、direct_dependency_flagが省略されるかまたは未定義である場合、値は1であると推定される。一実施形態では、レイヤAがレイヤBの直接参照レイヤである場合、そのことは、レイヤBがレイヤAの中に含まれる情報に少なくとも部分的に基づいてコーディングされ得ることを意味する。別の実施形態では、レイヤAがレイヤBの直接参照レイヤである場合、そのことは、レイヤBがレイヤAの中に含まれる情報に少なくとも部分的に基づいてコーディングされることを意味する。いくつかの実施形態では、より小さいレイヤIDを有するすべてのレイヤ(たとえば、下位レイヤ)は、特定のレイヤの直接参照レイヤである。他の実施形態では、下位レイヤのうちの一部だけが特定のレイヤの直接参照レイヤであり得る。たとえば、エンコーダは、計算量を低減するために、下位レイヤのうちの一部だけを特定のレイヤの直接依存性レイヤとして選定し得る。適用可能なコーディング方式(たとえば、HEVC)は、特定のレイヤがいくつの直接参照レイヤを有し得るかに関する限界を有することがある(たとえば、空間スケーラビリティの場合、1つ以下の参照レイヤ)。一実施形態では、direct_dependency_flagフラグは、ビデオパラメータセット(VPS)の中でシグナリングされ、コード化ビデオシーケンス(CVS:coded video sequence)全体に適用される。
【0130】
直接依存性タイプ
[00139]現在レイヤをコーディングするために使用される情報は、参照レイヤのテクスチャ情報(たとえば、ピクセル値)、参照レイヤの動き情報(たとえば、動きベクトル、参照インデックス、予測方向など)を含み得る。しかしながら、現在レイヤをコーディングするために使用され得る参照レイヤの情報は、本明細書で説明するものに限定されず、参照レイヤの中に含まれるか、または参照レイヤの一部である、任意の情報であり得る。
【0131】
[00140]いくつかの実装形態では、現在レイヤをコーディングするために参照レイヤから導出またはインポートされる情報の1つまたは複数のタイプを示すために、1つまたは複数の追加のフラグまたはシンタックス要素が使用され得る。たとえば、いくつかの実施形態では、参照レイヤは、レイヤ間動き予測、レイヤ間テクスチャ予測、またはその両方のために使用され得る。一実施形態では、そのようなフラグまたはシンタックス要素は「direct_dependency_type」と呼ばれることがある。
【0132】
[00141]一実施形態では、direct_dependency_typeは、どのタイプのレイヤ間予測が、参照レイヤを使用して現在レイヤをコーディングするために使用されるかを指定する2次元アレイである。そのような2次元アレイは値direct_dependency_type[i][j]の形態をとり得、ここで、iは現在(たとえば、コーディングされるべきレイヤ)に対応し、jは参照レイヤ(たとえば、参照されるべきレイヤ)に対応する。この例では、0としてのdirect_dependency_type値はレイヤ間サンプル予測のみを示し得、1はレイヤ間動き予測のみを示し得、2はレイヤ間サンプル予測とレイヤ間動き予測の両方を示し得る。いくつかの実施形態では、3(または、他の値)としてのdirect_dependency_type値は、依存性がないことを示し得る。各direct_dependency_type値が異なるタイプのレイヤ間予測にどのように割り当てられるのか、またはマッピングされるのかは、他の実装形態では異なり得、本開示は、異なるタイプのレイヤ間予測へのdirect_dependency_type値の特定の割当てまたはマッピングに限定されない。一実施形態では、direct_dependency_typeシンタックス要素は、ビデオパラメータセット(VPS)の中でシグナリングされ、コード化ビデオシーケンス(CVS)全体に適用される。
【0133】
参照レイヤコーデック
[00142]いくつかの既存のコーディング方式では、参照レイヤまたはベースレイヤのコーデックは、任意の数のコーデックであり得る。たとえば、HEVCコーデックが参照レイヤ向けに使用されてよく、またはH.264/AVCが使用されてよく、もしくは一般的な非HEVCコーデックが使用されてよい。加えて、使用されるべきコーデックを示すパラメータセットの中にフラグがあってよい。たとえば、ビデオパラメータセット(VPS)の中のフラグは、参照レイヤをコーディングするためにHEVCコーデックが使用されるのか、それとも非HEVC(たとえば、AVC)コーデックが使用されるのかを示し得る。一例では、フラグavc_base_layer_flagは、参照レイヤコーデックが勧告ITU−T H.264|国際規格ISO/IEC14496−10に従うビデオコーディング規格に適合することを示す、1に等しい値を有し得、代替的に、参照レイヤコーデックがHEVC仕様に適合することを示す、0に等しい値を有し得る。したがって、エンハンスメントレイヤを符号化または復号するように構成されたコーディングデバイスは、参照レイヤに関してAVCコーデックが使用されるのか、HEVCコーデックが使用されるのか(それとも、何らかの他の非HEVCコーデックが使用されるのか)に関する情報を有し得る。
【0134】
[00143]たとえば、いくつかの態様では、非HEVCコーデックが、参照レイヤまたはベースレイヤ向けに使用され得、1つまたは複数のエンハンスメントレイヤは、H.265/HEVCコーディング規格およびそのマルチレイヤ拡張に基づき得る。たとえば、これらのエンハンスメントレイヤは、ベースのH.265/HEVCのスケーラブル拡張(SHVC)であり得る。そのような構成を使用することは、いくつかの利点を有し得る。たとえば、このことは、非HEVCコーデックのみと互換性のあるデバイスが、エンハンスメントレイヤを伴わないビデオを復号することを可能にし得、HEVCコーデックと互換性のあるデバイスが、ビデオとエンハンスメントレイヤとを復号することをさらに可能にし得る。
【0135】
SHVCベースのエンハンスメントレイヤのサポート
[00144]いくつかの設計は、H.264/AVC(または、他の非HEVC)ベースレイヤの、SHVCベースのエンハンスメントレイヤを用いたサポートを可能にし得る。したがって、2つ以上のデコーダが、これらの技法を使用してビデオを復号するために使用され得る。たとえば、1つのデコーダが、当技術分野で既知であるような非HEVCベースレイヤを復号し得る。1つまたは複数のSHVCベースのエンハンスメントレイヤを復号するために、HEVCデコーダなどの別のデコーダが使用され得る。いくつかの態様では、非HEVCベースレイヤが使用されるとき、HEVCデコーダがこれらのレイヤを復号することを可能にし得る、エンハンスメントレイヤ向けの設計を提供することが有益であり得る。HEVCデコーダから見て、これらのベースレイヤは、外部ソースまたは外部の手段によって復号され得る。したがって、HEVCデコーダは、ベースレイヤからのいかなる情報も受信しなくてよく、または、ベースレイヤからの各フレームのための画像情報などの、ベースレイヤからの情報の限定されたサブセットのみを受信してよい。
【0136】
[00145]非HEVCベースのベースレイヤを含むビデオの中のHEVCベースのエンハンスメントレイヤを復号するとき、ベースレイヤピクチャ情報はエンハンスメントレイヤに提供されなくてよい。あるいは、外部ソース(ベースレイヤデコーダなどの)は、ベースレイヤ復号ピクチャの復号されたサンプル値と、ルーマサンプルにおける幅および高さ、カラーフォーマット、ルーマビット深度、ならびにクロマビット深度を含むベースレイヤ復号ピクチャの表現フォーマットと、ベースレイヤピクチャがIDRピクチャであるか否かの表示とを含む、情報の差し止められたセットをデコーダに提供し得る。随意に、ピクチャがフレームであるのかそれともフィールドであるのか、および、いつフィールドであるのか、フィールドパリティ(フィールドがトップフィールドであるのか、それともボトムフィールドであるのかを示す)であるのかについての情報も提供される。この情報が提供されない場合、復号ピクチャはフレームピクチャであると推定され得る。
【0137】
[00146]ベースレイヤピクチャを出力することは、ベースレイヤデコーダの役目であり得る。たとえば、このデコーダは、H.264/AVCデコーダ、または別の非HEVCコーデックのデコーダであり得る。同じアクセスユニットの中のベースレイヤピクチャとエンハンスメントレイヤピクチャとの間の出力同期は、外部的に制御され得る。たとえば、外部制御の1つの方法は、提示タイムスタンプを使用することであり得る。いくつかの態様では、ベースレイヤ復号ピクチャのアクセスユニットへの関連付けは、外部ソース/エンハンスメントレイヤデコーダの外部にあるベースレイヤデコーダまたは別のソースなどのソースの役目であり得る。
【0138】
[00147]いくつかの態様では、1つまたは複数のエンハンスメントレイヤを復号するために使用されるSHVCデコーダは、ベースレイヤ復号ピクチャ用のメモリの1つの復号ピクチャ記憶だけを保持するだけでよいことがあり、このメモリは、復号ピクチャバッファ(DPB)の一部とみなされないことがある。
【0139】
[00148]非HEVCベースレイヤ復号ピクチャは、0としてのレイヤID(nuh_layer_id値)を有し得る。いくつかの態様では、ベースレイヤがHEVCベースレイヤであるか否かを示すために、HevcBaseLayerFlag値が使用され得る。ベースレイヤがHEVCベースレイヤでないとき、このフラグは0の値を有し得、ベースレイヤがHEVCレイヤであるとき、このフラグは1の値を有し得る。
【0140】
[00149]いくつかの態様では、ベースレイヤ復号ピクチャのピクチャ順序カウントは、エンハンスメントレイヤピクチャのピクチャ順序カウントに等しく設定される。この場合、そのようなスケーラブルコーデックまたはマルチビューコーデックにおけるベースレイヤデコーダによって復号されるベースレイヤピクチャの実際のピクチャ順序カウントが、同じピクチャがAVCデコーダによって復号されるときのそれのピクチャ順序カウント値と異なる場合があることに留意されたい。
【0141】
[00150]いくつかの態様では、ベースレイヤ復号ピクチャは、「長期の参照用に使用される」としてマークされ得る。仮定的参照デコーダまたはバッファリングモデルのコード化ピクチャバッファ動作の場合、ベースレイヤはゼロビットを有するとみなされ得る。仮定的参照デコーダまたはバッファリングモデルの復号ピクチャバッファ動作の場合、エンハンスメントレイヤの復号ピクチャだけが考慮され得る。
【0142】
SHVCベースのエンハンスメントレイヤのサポートに関して特定される課題
[00151]上述されたように、SHVCベースのエンハンスメントレイヤは、H.264/AVCコーデックなどの非HEVCコーデックを使用したベースレイヤとともに使用され得る。しかしながら、これらのSHVCベースのエンハンスメントレイヤは、SHVCベースのエンハンスメントレイヤと非HEVCベースレイヤの組合せに起因するいくつかの問題に遭遇することがある。いくつかの課題は、HEVCベースレイヤを使用するときに起こり得ず、復号ピクチャがAVCコーダなどの外部ソースによってSHVCコーダに提供されるときのような、非HEVCベースレイヤを使用するときにのみ起こり得る。
【0143】
[00152]いくつかの態様では、ベースレイヤが非HEVCレイヤであるとき、いくつかのパラメータのシグナリングは、そのようなシグナリングのために使用されるビットの量を限定する方式で行われ得る。たとえば、サブDPBサイズと、最大リオーダーと、最大レイテンシとを割り当てるものなどのいくつかのDPBパラメータに対して、限定された量のビットを使用することが有利であり得る。さらに、ベースレイヤが非HVECレイヤであるとき、いくつかのシンタックス構造がベースレイヤ(レイヤ0)に適用されない場合、有利であり得る。
【0144】
[00153]たとえば、非HEVCベースレイヤを使用するとき、いくつかのパラメータのシグナリングは不必要または冗長であり得る。いくつかのパラメータは、非HEVCベースレイヤが存在することから簡単に推定され得、したがって、それらのパラメータのこれ以上のシグナリングは不必要であり得る。したがって、メモリと他のリソースとを効率よく使用するために、コーダは、ベースレイヤがHEVCコーデックを使用してコーディングされているか否かを決定し、ビデオストリームのベースレイヤ向けに使用されるコーデックに少なくとも部分的に基づいて、いくつかのパラメータをシグナリングするか否かを選定するように構成され得る。ベースレイヤが非HEVCベースレイヤであるとき、コーダは、それらの値を明示的に規定する代わりに、これらのパラメータのいくつかの値を推定するように構成され得る。
【0145】
[00154]いくつかの態様では、ベースレイヤ復号ピクチャは、外部の手段または外部ソースによって提供され得る。このピクチャがベースレイヤ用のサブDPBに記憶される場合、有利であり得る。このサブDPBのサイズは1に設定され得、サブDPBは、各アクセスユニットのための復号プロセスの終わりに空にされ得る。
【0146】
[00155]ベースレイヤデコーダ(SHVCデコーダの外部にあるので、外部ソースと呼ばれることがある)が、ベースレイヤについての情報を含むいくつかの値をSHVCデコーダに提供する場合、また有利であり得る。たとえば、外部ソースは、復号ベースレイヤピクチャを提供し得、ベースレイヤピクチャがIRAPピクチャであるか否かという表示も提供し得る。ベースレイヤピクチャがIRAPピクチャである場合、ピクチャがIDRピクチャであるのか、CRAピクチャであるのか、それともBLAピクチャであるのかを規定するIRAP NALユニットタイプを、外部ソースがコーダに提供することがさらに必要とされ得る。
【0147】
DPBパラメータの効率のよいシグナリング
[00156]いくつかの態様では、非HEVCベースレイヤと1つまたは複数のSVHCベースのエンハンスメントレイヤとを使用するとき、DPBパラメータの何らかのシグナリングは非効率であり得る。たとえば、ベースレイヤが非HEVCベースレイヤであるとき、いくつかのパラメータは制約された値を有し得る。たとえば、ベースレイヤが非HEVCレイヤであるときはいつも、所与のパラメータは単一の特定の値を有し得る。したがって、これらの値はベースレイヤが非HEVCレイヤであると示すことに基づいて推定され得、または他の情報に基づいて推定され得るので、アレイ(または、他のデータ構造)の中の各要素に対してこれらの値をシグナリングすることは冗長であり得る。
【0148】
[00157]たとえば、シグナリングされ得る1つのDPBパラメータは、vps_max_dec_pic_buffering_minus1[i]である。このアレイの値+1は、復号されるべき最上位の時間サブレイヤ用の復号ピクチャバッファの最大必要サイズをシグナリングする。しかしながら、非HEVCベースレイヤを使用するとき、vps_max_dec_pic_buffering_minus1[i]は、iとしてのすべての可能な値について0となる。したがって、非HEVCベースレイヤを使用するとき、vps_max_dec_pic_buffering_minus1[i]の値が制約されるので、これらの値をシグナリングすることを避けることが望ましくあり得る。
【0149】
[00158]たとえば、非HEVCベースレイヤが存在するとき、HevcBaseLayerFlagの値が0に設定され得、AvcBaseLayerFlagの値が1に設定され得る。したがって、コーダは、vps_max_dec_pic_buffering_minus1[i]に対して値を設定する前に、これらの値のうちの1つまたは複数を検査するように構成され得る。非HEVCベースレイヤが存在するとコーダが決定すると、ベースレイヤが非HEVCコーデックを使用してコーディングされているという表示などの他の情報からこの値が推定され得るので、コーダは、次いで、iの各値について、vps_max_dec_pic_buffering_minus1[i]に対して値を設定することを控え得る。
【0150】
[00159]いくつかの態様では、非HEVCベースレイヤが存在するとコーダが決定すると、各可能なiについてvps_max_dec_pic_buffering_minus1[i]の各値を0に設定するように、コーダは構成され得る。たとえば、この値または別の値は、vps_max_dec_pic_buffering_minus1[i]をシグナリングするのに可能な最小量のビットを使用し得る。非HEVCベースレイヤの使用に起因してアレイの値が制約されるとき、vps_max_dec_pic_buffering_minus1[i]の値をシグナリングするのに可能な最小量のビットを使用することが有益であり得る。したがって、vps_max_dec_pic_buffering_minus1[i]に対する値は、iのすべての値について0に設定され得る。復号するとき、非HEVCベースレイヤの使用に基づいてその値が制約され得るので、デコーダは、これらの値を無視するように構成され得る。
【0151】
[00160]さらに、非HEVCベースレイヤが使用されるとき、vps_sub_layer_ordering_info_present_flagが存在し1に設定され得る。1の値は、i個のサブレイヤに対して、vps_max_dec_pic_buffering_minus1[i]、vps_max_num_reorder_pics[i]、およびvps_max_latency_increase_plus1[i]が存在することを示し得、0の値は、vps_max_dec_pic_buffering_minus1[vps_max_sub_layers_minus1]、vps_max_num_reorder_pics[vps_max_sub_layers_minus1]、およびvps_max_latency_increase_plus1[vps_max_sub_layers_minus1]の値が、すべてのサブレイヤに適用されることを示し得る(その結果、これらのアレイの各々がi個のサブレイヤの各々に対して同じ値を有する)。
【0152】
[00161]シグナリングされ得る別のDPBパラメータは、出力されるべきピクチャ間で発生し得るリオーダーの最大量を示すvps_max_num_reorder_pics[i]である。たとえば、出力されるべきいくつかのピクチャは、出力されるべき別のピクチャにコーディング順序において先行し得るが、その同じピクチャに出力順序において後続し得る。最大リオーダー値(vps_max_num_reorder_pics[i])は、iに等しいHighestTidの値について、復号順序において所与の出力ピクチャを進み得るが、その同じピクチャに出力順序において後続し得る、出力されるように設定されるピクチャの最大許容数を示す。
【0153】
[00162]vps_max_dec_pic_buffering_minus1[i]を伴うので、ベースレイヤが非HEVCレイヤであるとき、vps_max_num_reorder_pics[i]はiのすべての値について0に設定され得る。したがって、ベースレイヤが非HEVCベースレイヤであるとコーダが決定した後、コーダがvps_max_num_reorder_pics[i]の値をシグナリングしないことが有利であり得る。この値がシグナリングされないとき、vps_max_num_reorder_pics[i]の値は、ベースレイヤが非HEVCレイヤであるという表示に基づいて推定され得る。いくつかの態様では、非HEVCベースレイヤが存在するとコーダが決定すると、各可能なiについてvps_max_num_reorder_pics[i]の各値を0に設定するように、コーダは構成され得る。
【0154】
[00163]いくつかの態様では、非HEVCベースレイヤが存在するとコーダが決定すると、各可能なiについてvps_max_num_reorder_pics[i]の各値を0に設定するように、コーダは構成され得る。たとえば、この値または別の値は、vps_max_num_reorder_pics[i]をシグナリングするのに可能な最小量のビットを使用し得る。非HEVCベースレイヤの使用に起因してアレイの値が制約されるとき、vps_max_num_reorder_pics[i]の値をシグナリングするのに可能な最小量のビットを使用することが有益であり得る。したがって、vps_max_num_reorder_pics[i]に対する値は、iのすべての値について0に設定され得る。復号するとき、非HEVCベースレイヤの使用に基づいてその値が制約され得るので、デコーダは、これらの値を無視するように構成され得る。
【0155】
[00164]シグナリングされ得る別のDPBパラメータは、vps_max_latency_increase_plus1[i]である。0に等しくないこのパラメータの値は、復号されるべき最上位の時間サブレイヤがiに等しいとき、ビデオストリームウィズ内で出力ピクチャに出力順序において先行し得、その出力ピクチャに復号順序において後続し得る出力ピクチャの最大数を計算するために使用され得る。
【0156】
[00165]上記のように、ベースレイヤが非HEVCレイヤであるとき、vps_max_latency_increase_plus1[i]は、iのすべての値について0に設定され得る。したがって、ベースレイヤが非HEVCベースレイヤであるとコーダが決定した後、コーダがvps_max_latency_increase_plus1[i]の値をシグナリングしないことが有利であり得る。この値がシグナリングされないとき、vps_max_latency_increase_plus1[i]の値は、ベースレイヤが非HEVCレイヤであるという表示に基づいて推定され得る。いくつかの態様では、非HEVCベースレイヤが存在するとコーダが決定すると、各可能なiについてvps_max_latency_increase_plus1[i]の各値を0に設定するように、コーダは構成され得る。
【0157】
[00166]いくつかの態様では、非HEVCベースレイヤが存在するとコーダが決定すると、各可能なiについてvps_max_latency_increase_plus1[i]の各値を0に設定するように、コーダは構成され得る。たとえば、この値または別の値は、vps_max_latency_increase_plus1[i]をシグナリングするのに可能な最小量のビットを使用し得る。非HEVCベースレイヤの使用に起因してアレイの値が制約されるとき、vps_max_latency_increase_plus1[i]の値をシグナリングするのに可能な最小量のビットを使用することが有益であり得る。したがって、vps_max_latency_increase_plus1[i]に対する値は、iのすべての値について0に設定され得る。復号するとき、非HEVCベースレイヤの使用に基づいてその値が制約され得るので、デコーダは、これらの値を無視するように構成され得る。
【0158】
[00167]したがって、上述されたように、vps_max_dec_pic_buffering_minus1[i]と、vps_max_num_reorder_pics[i]と、vps_max_latency_increase_plus1[i]とをシグナリングするのに可能な最小量のビットをコーダが使用することが有利であり得る。たとえば、非HEVCベースレイヤが使用されるときにこれらのアレイの各々の値が制約される場合、値が制約されない状況で必要となるはずのビットよりも少ないビットを使用してこれらの値をシグナリングすることが有利であり得る。たとえば、これらのアレイの各々に対する値は、iのすべての値について0に設定され得る。デコーダは、その場合、これらの値を無視するように構成され得る。たとえば、デコーダは、ベースレイヤがHEVCベースレイヤであるか否かを、フラグを検査することなどによって決定するように構成され得る。ベースレイヤが非HEVCベースレイヤである場合、デコーダは、vps_max_dec_pic_buffering_minus1[i]、vps_max_num_reorder_pics[i]、およびvps_max_latency_increase_plus1[i]の各々の値を無視するように構成され得る。
【0159】
[00168]いくつかの態様では、hrd_layer_set_idx[i]は、VPSの中のi番目のhrd_parameters()シンタックス構造が適用されるレイヤセットを規定するために使用され得る。ビデオストリームの前のバージョンでは、hrd_layer_set_idx[i]が0に等しく設定され得ることが規定されていたことがある。したがって、前の規格に準拠するのではなく、ビデオストリームが非HEVCベースレイヤを有するビデオストリームであるとデコーダが知り得るように、hrd_layer_set_idx[i]が0よりも大きいことが有益であり得る。さらに、いくつかの態様では、hrd_parameters()シンタックス構造のいずれも、0としてのレイヤIDを有する非HEVCベースレイヤに適用され得ない。たとえば、ベースレイヤが非HEVCであるものと、または外部的に提供されるものとシグナリングされるとき、ベースレイヤがビットストリームの中にないので、ベースレイヤに適用可能なHRDパラメータが存在するべきでない。
【0160】
例示的なフローチャート#1
[00169]
図4は、本開示の一実施形態による、ビデオ情報をコーディングするための方法400を示すフローチャートである。
図4に示すステップは、エンコーダ(たとえば、
図2Aまたは
図2Bに示すようなビデオエンコーダ)、デコーダ(たとえば、
図3Aまたは
図3Bに示すようなビデオデコーダ)、または任意の他の構成要素によって実行され得る。便宜上、方法400について、エンコーダ、デコーダ、または別の構成要素であり得る、コーダによって実行されるものとして説明する。方法は、復号の方法または符号化の方法であり得る。
【0161】
[00170]方法400は、ブロック401において開始する。ブロック405では、コーダが、参照レイヤがビットストリームの中に含まれるかどうかを決定する。たとえば、参照レイヤが非HEVCコーデックであるとき、参照レイヤがビットストリームの中に含まれないことがある。したがって、いくつかの態様では、参照レイヤは、非HEVCコーデックにおいてコーディングされてよく、またはAVCコーデックにおいてコーディングされてよく、したがって、ビットストリームの中に含まれないことがある。いくつかの態様では、方法は、参照レイヤがビットストリームの中に含まれるかどうかを、フラグまたは変数の値に基づいて決定する。そのようなフラグまたは他のインジケータは、外部ソースから受信され得、または方法によって決定され得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。
【0162】
[00171]次に、ブロック410において、コーダが、復号ピクチャバッファのための1つまたは複数のパラメータの表示を、参照レイヤがビットストリームの中に含まれるかどうかに基づいて決定する。たとえば、復号ピクチャバッファのための1つまたは複数のパラメータは、サブDPBの最大サイズなどのDPBの最大必要サイズをシグナリングするパラメータを含み得る。概して、参照レイヤがビットストリームの中に含まれない場合、これらのパラメータに対する値は上述されたように知られ得る。いくつかの態様では、サブDPBの最大サイズに対する表示を決定することは、サブDPBの最大サイズが1であることを示す、サブDPBの最大サイズに対する表示を決定することを含み得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。ビデオ符号化プロセスでは、コーダは、1つまたは複数のパラメータの表示を含む1つまたは複数のシンタックス構造を、ビットストリームの中に含め得る。ビデオ復号プロセスでは、表示を決定することは、1つまたは複数のシンタックス構造をビットストリームから復号することを含み得る。例示的なシンタックス構造の詳細が本明細書に記載される。
【0163】
[00172]いくつかの態様では、パラメータはまた、出力ピクチャのリオーダーの最大数、または最大レイテンシをシグナリングする値を含み得る。いくつかの態様では、いくつかのパラメータが、ベースレイヤ向けに使用されるコーデックに少なくとも部分的に基づいて決定され得る。たとえば、いくつかの態様では、ベースレイヤが非HVECコーデックであるとき、1つまたは複数のパラメータの値は、iとしてのすべての可能な値について0に設定され得る。ブロック415において、コーダが、復号ピクチャバッファのための1つまたは複数のパラメータの決定された表示に少なくとも部分的に基づいて、ビデオ情報をコーディングする。いくつかの態様では、コーディングするための手段はプロセッサを含み得る。方法400は、ブロック425において終了する。
【0164】
[00173]上記で説明したように、
図2Aのビデオエンコーダ20、
図2Bのビデオエンコーダ21、
図3Aのビデオデコーダ30、または
図3Bのビデオデコーダ31のうちの1つまたは複数の構成要素(たとえば、レイヤ間予測ユニット128および/またはレイヤ間予測ユニット166)は、参照レイヤのコーデックが特定のタイプのコーデックであるかどうかを決定すること、復号ベースレイヤピクチャを受信すること、復号ベースレイヤピクチャを記憶すること、およびメモリを空にすることなどの、本開示で説明する技法のいずれかを実施するために使用され得る。
【0165】
非HEVCベースレイヤを使用するときのVPS拡張の中での不必要なシグナリングの低減
[00174]いくつかの態様では、ベースレイヤが非HEVCベースレイヤであるとき、VPSビデオ有用性情報(VUI:video usability information)メタデータを含む、VPS拡張の中でのベースレイヤのための不必要なシグナリングを避けることが望ましくあり得る。たとえば、VPS VUIは、ベースレイヤが非HEVCコーデックを使用して符号化されているという知識に基づいて簡単に推定され得るいくつかの値を含み得、したがって、この冗長な情報をビデオの中でシグナリングし続けることが不必要であり得る。
【0166】
[00175]たとえば、VPS VUIの中のいくつかの値は、単にベースレイヤが非HEVCベースレイヤであるという知識に基づいて決定され得る。したがって、ベースレイヤが非HEVCベースレイヤであることがシグナリングされる場合、VPS VUIの中のいくつかの値に関するさらなるシグナリングは、冗長および不必要であり得る。上述されたように、HevcBaseLayerFlagの値が0に設定される場合、このことは、ベースレイヤがHEVCレイヤでないことをシグナリングし得る。したがって、他のシグナリングは、冗長および不必要として避けられ得る。
【0167】
[00176]上述されたように、direct_dependency_type[i][j]は、レイヤiとレイヤjとの間の依存関係のタイプを示す。たとえば、0の値は、レイヤjがレイヤiに対するレイヤ間サンプル予測とレイヤ間動き予測の両方のために使用され得ることを示す。1の値は、レイヤjがレイヤiに対するレイヤ間サンプル予測のために使用され得るが、レイヤ間動き予測のために使用され得ないことを示す。2の値は、レイヤjがレイヤiに対するレイヤ間動き予測のために使用され得るが、レイヤ間サンプル予測のために使用され得ないことを示す。
【0168】
[00177]非HEVCであるベースレイヤを使用するとき、ベースレイヤからのレイヤ間動き予測は、すべての他のレイヤに対して許容され得ない。上述されたように、非HEVCベースレイヤは0としてのレイヤIDを有する。さらに、レイヤ間動き予測が許容されないとき、このことは、1としてのdirect_dependency_type値に対応し得る。したがって、レイヤ間動き予測のためにベースレイヤ(レイヤIDが0である)を使用し得るレイヤがないので、direct_dependency_type[i][0]の値は、iのすべての値について1であると推定され得る。ベースレイヤが非HEVCベースレイヤであるという表示の後、そのようなシグナリングは冗長であり得るので、これらの値は明示的にシグナリングされる必要がない。
【0169】
[00178]たとえば、コーダ、すなわち、エンコーダまたはデコーダのいずれかが、ベースレイヤが非HEVCベースレイヤであると認識し得る。この認識(たとえば、フラグなどの1つまたは複数の表示に基づいて認識され得る)に基づいて、コーダは、iのすべての値について推定される値が1であり得るように、iのすべての値についてdirect_dependency_type[i][0]の値を推定するように構成され得る。
【0170】
[00179]いくつかの態様では、以下のコードセグメントが、VPS拡張の中での不必要なシグナリングを避けるために使用され得る。上述されたように、ベースレイヤがHEVCレイヤでないという表示に基づいてそれらの値が推定され得るので、このコードセグメントは、direct_dependency_type[i][0]に対して値をシグナリングすることを避け得る。
【0172】
[00180]VPS VUIの中の他の値も、ベースレイヤが非HEVCレイヤであることがシグナリングされた後、不必要または冗長であり得る。たとえば、sub_layers_vps_max_minus1[0]の値も、非HEVCベースレイヤが存在することに基づいて推定され得る。
【0173】
[00181]たとえば、sub_layers_vps_max_minus1[i]+1は、レイヤiに対してコーディングされたビデオシーケンスの中に存在し得る時間サブレイヤの最大数を規定する。前述のように、ベースレイヤのレイヤIDは0である。ベースレイヤが外部ソースによって復号され、デコーダ(すなわち、SHVCデコーダ)によって復号されないので、ベースレイヤはいかなるサブレイヤも含まず、そのため、非HEVCベースレイヤのためのsub_layers_vps_max_minus1[0]に対して値をシグナリングすることは不必要である。したがって、コーダは、ベースレイヤが非HEVCベースレイヤであると認識することに基づいて、この値を推定するように構成され得る。
【0174】
[00182]いくつかの態様では、ベースレイヤが非HEVCベースレイヤであるとき、この値は不必要であり得るので、vps_extension()からの以下のコードセグメントが、sub_layers_vps_max_minus1[0]の値をシグナリングすることを避けるために使用され得る。
【0176】
[00183]VPS VUIの中の他の値も、ベースレイヤが非HEVCレイヤであることがシグナリングされた後、不必要または冗長であり得る。たとえば、max_tid_il_ref_pics_plus1[0][j]の値も、非HEVCベースレイヤが存在することに基づいて推定され得る。
【0177】
[00184]概して、max_tid_il_ref_pics_plus1[i][j]は、レイヤiからの所与のTemporalIdを有するピクチャが、レイヤjからのピクチャに対するレイヤ間予測のために使用され得るか否かを決定するために使用され得る。0に等しい値は、レイヤiからの非IRAPピクチャが、レイヤjを伴うレイヤ間予測のために使用されないことを示す。0よりも大きい値は、レイヤiからの、max_tid_il_ref_pics_plus1[i][j]以下のTemporalIdを有するピクチャが、レイヤjからのピクチャに対するレイヤ間予測のための参照として使用され得ることを示す。存在しないとき、max_tid_il_ref_pics_plus1[i][j]は、7に等しいと推定される。
【0178】
[00185]しかしながら、ベースレイヤが非HEVCベースレイヤでありビットストリームの中に存在しないとき、レイヤ0からの所与のTemporalIdを有するピクチャがレイヤjからのピクチャに対するレイヤ間予測のために使用され得るか否かを示すmax_tid_il_ref_pics_plus1[0][j]の値は(ここで、ベースレイヤはレイヤ0である)、より有用でなくなる。したがって、この値の明示的なシグナリングは不必要であり得、避けられ得る。
【0179】
[00186]いくつかの態様では、ベースレイヤが非HEVCベースレイヤであるとき、max_tid_il_ref_pics_plus1[0][j]に対して値をシグナリングすることを避けるために、以下のコードセグメントがvps_extension()の中で使用され得る。
【0181】
例示的なフローチャート#2
[00187]
図5は、本開示の一実施形態による、ビデオ情報をコーディングするための方法500を示すフローチャートである。
図5に示すステップは、エンコーダ(たとえば、
図2Aまたは
図2Bに示すようなビデオエンコーダ)、デコーダ(たとえば、
図3Aまたは
図3Bに示すようなビデオデコーダ)、または任意の他の構成要素によって実行され得る。便宜上、方法500について、エンコーダ、デコーダ、または別の構成要素であり得る、コーダによって実行されるものとして説明する。方法は、復号の方法または符号化の方法であり得る。
【0182】
[00188]方法500は、ブロック501において開始する。ブロック505では、コーダが、参照レイヤがビットストリームの中にあるかどうかを決定する。一実施形態では、参照レイヤは、AVCコーデックおよび/または非HEVCコーデックを使用してコーディングされ得る。いくつかの態様では、コーダまたはプロセッサが、参照レイヤがビットストリームの中に含まれるかどうかを、フラグの値またはコーデックの他のインジケータに基づいて決定する。そのようなフラグまたは他のインジケータは、外部ソースから受信され得、または方法によって決定され得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。ビデオ符号化プロセスでは、参照レイヤがビットストリームの中に含まれるかどうかをフラグの値またはコーデックの他のインジケータに基づいて決定することは、1つまたは複数のシンタックス構造をビットストリームの中へ生成することを含み得る。ビデオ復号プロセスでは、参照レイヤがビットストリームの中に含まれるかどうかをフラグの値またはコーデックの他のインジケータに基づいて決定することは、1つまたは複数のシンタックス構造をビットストリームから復号することを含み得る。例示的なシンタックス構造の詳細が本明細書に記載される。
【0183】
[00189]次に、ブロック510において、コーダが、参照レイヤに対する表示を処理するべきであるか否かを、参照レイヤがビットストリームの中に含まれるかどうかに基づいて決定する。たとえば、この決定は、参照レイヤがビットストリームの中に含まれるかどうかに基づいて、表示が冗長または不必要にされることになるか否かに基づき得る。たとえば、いくつかの表示は、表示をシグナリングすることが不必要であり得るような、参照レイヤがビットストリームの中に含まれないときの知られている値を有し得る。いくつかの態様では、表示は、所与のレイヤが動き予測およびサンプル予測などのために使用され得るという、レイヤ間予測のタイプの表示を含み得る。いくつかの態様では、表示は、外部ソースによってコーディングされているベースレイヤに対してシグナリングするのに不必要であり得る、特定のレイヤに対するいくつかのサブレイヤの表示であり得る。いくつかの態様では、表示は、所与のレイヤが別のレイヤに対するレイヤ間予測のために使用され得るか否かの表示であり得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。
【0184】
[00190]ブロック515において、参照レイヤがビットストリームの中に含まれる場合、コーダが、ビデオビットストリームの中、および参照レイヤに対する表示を処理する。たとえば、いくつかの表示は、参照レイヤがHEVCコーデックを使用してコーディングされるときのような、参照レイヤがビットストリームの中に含まれるときにのみ処理され得る。他の状況では、それらが不必要または冗長であり得るので、これらの表示は処理されなくてよい。いくつかの態様では、決定するための手段はプロセッサを含み得る。
【0185】
[00191]ブロック520において、コーダが、処理された表示に少なくとも部分的に基づいて、ビデオ情報をコーディングする。いくつかの態様では、コーディングするための手段はプロセッサを含み得る。方法500は、ブロック525において終了する。
【0186】
[00192]上記で説明したように、
図2Aのビデオエンコーダ20、
図2Bのビデオエンコーダ21、
図3Aのビデオデコーダ30、または
図3Bのビデオデコーダ31のうちの1つまたは複数の構成要素(たとえば、レイヤ間予測ユニット128および/またはレイヤ間予測ユニット166)は、参照レイヤのコーデックが特定のタイプのコーデックであるかどうかを決定すること、復号ベースレイヤピクチャを受信すること、復号ベースレイヤピクチャを記憶すること、およびメモリを空にすることなどの、本開示で説明する技法のいずれかを実施するために使用され得る。
【0187】
復号ベースレイヤピクチャのDPBの中での記憶
[00193]いくつかの態様では、アクセスユニットに対して外部ソース(ベースレイヤデコーダなどの)によって提供される復号ベースレイヤピクチャはDPBに記憶されず、けれどもそれは「長期の参照用に使用される」としてマークされ、レイヤ間予測参照のために後で使用される。したがって、そのような復号ピクチャは、DPBの中にない限りレイヤ間予測参照などの参照のために使用され得ないので、このことが問題となり得る。
【0188】
[00194]ビデオストリームの中のベースレイヤ(レイヤID0)が非HEVCレイヤであるので、デコーダは、レイヤ0の中のコード化ピクチャを受信し得ない。前述のように、デコーダは、1つまたは複数のエンハンスメントレイヤを復号するために使用され得るSHVCデコーダを、ここで参照する。むしろ、ベースレイヤは、外部ソースを使用して復号され得る。これらの外部ソースは、たとえば、ベースレイヤを復号し、復号ベースレイヤピクチャをSHVCデコーダに渡すように構成されているAVCデコーダを含み得る。復号ベースレイヤピクチャに加えて、外部ソースは、上述されたように、いくつかの他の情報も同様にデコーダに提供するように構成され得る。
【0189】
[00195]したがって、ベースレイヤは、レイヤIDが0の復号ピクチャを含み得る。デコーダは、復号ベースレイヤピクチャをサブDPBに記憶し、このピクチャを「長期の参照用に使用される」としてマークするように構成され得る。さらに、レイヤIDが0よりも大きい少なくとも1つのピクチャをアクセスユニットが有する場合、ベースレイヤ復号ピクチャのPicOrderCntValは、アクセスユニットの中の任意の他のピクチャのPicOrderCntValに等しく設定される。そうでない場合、そのベースレイヤ復号ピクチャを除いてアクセスユニットの中に他のピクチャがない場合、ベースレイヤピクチャは廃棄され、ベースレイヤ用のサブDPBは空になるように設定される。
【0190】
[00196]レイヤIDが0よりも大きい少なくとも1つのピクチャをアクセスユニットが有するとき、アクセスユニットの中のすべてのピクチャが復号された後、ベースレイヤ用のサブDPBは空になるように設定される。すなわち、復号ベースレイヤピクチャを含むサブDPBは、アクセスユニットの中の各ピクチャが復号された後、空にされ得る。サブDPBのサイズは、1に等しく設定され得る。したがって、サブDPBは1つのピクチャを記憶し得、各アクセスユニットは1つのベースレイヤ復号ピクチャを含み得る。
【0191】
例示的なフローチャート#3
[00197]
図6は、本開示の一実施形態による、ビデオ情報を復号するための方法600を示すフローチャートである。
図6に示すステップは、デコーダ(たとえば、
図3Aまたは
図3Bに示すビデオデコーダ)、または任意の他の構成要素によって実行され得る。いくつかの態様では、方法は、参照レイヤがビットストリームの中に含まれるかどうかを、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、適応パラメータセットのうちの1つの中に含まれる値などの、フラグまたは変数の値に基づいて決定する。そのようなフラグまたは他のインジケータは、外部ソースから受信され得、または方法によって決定され得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。
【0192】
[00198]方法600は、ブロック601において開始する。ブロック605では、デコーダが、参照レイヤがビットストリームの中に含まれないと決定する。一例では、参照レイヤは、AVCコーデックおよび/または非HEVCコーデックに従ってコーディングされ得る。いくつかの態様では、方法が、ビットストリームが参照レイヤを含むかどうかを、フラグの値またはコーデックの他のインジケータに基づいて決定する。値は、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、または適応パラメータセットのうちの1つの中に含まれ得る。そのようなフラグまたは他のインジケータは、外部ソースから受信され得、または方法によって決定され得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。
【0193】
[00199]次に、ブロック610において、デコーダが、復号ベースレイヤピクチャを外部ソースから受信し、復号ベースレイヤピクチャはアクセスユニットに関連付けられている。一態様では、外部ソースは、AVCコーデックを使用するように構成されているデコーダ、または非HEVCコーデックを使用するように構成されているデコーダなどの、別のデコーダを含み得る。たとえば、外部ソースは、第2のデコーダを含み得る。いくつかの態様では、各アクセスユニットに関連付けられた1つの復号ベースレイヤピクチャがあり得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。
【0194】
[00200]デコーダは、次いで、ブロック615において、復号ベースレイヤピクチャをメモリに記憶する。メモリは、DPBまたはサブDPBを含み得る。いくつかの態様では、サブDPBは、唯一無二の復号ベースレイヤピクチャを保持できるようにサイズ決定され得る。いくつかの態様では、デコーダは、復号ベースレイヤピクチャが長期の参照用に使用され得るという表示をさらに提供し得る。いくつかの態様では、記憶するための手段はメモリを含み得る。
【0195】
[00201]デコーダは、次いで、ブロック618において、アクセスユニットに関連付けられたピクチャを、記憶された復号ベースレイヤピクチャに基づいて復号する。復号するための手段はプロセッサを含み得る。ブロック620において、コーダが、アクセスユニットに関連付けられたピクチャを復号することに続いて、復号ベースレイヤピクチャをメモリから取り去る。いくつかの態様では、取り去るための手段はプロセッサを含み得る。方法600は、ブロック625において終了する。
【0196】
[00202]上記で説明したように、
図2Aのビデオエンコーダ20、
図2Bのビデオエンコーダ21、
図3Aのビデオデコーダ30、または
図3Bのビデオデコーダ31のうちの1つまたは複数の構成要素(たとえば、レイヤ間予測ユニット128および/またはレイヤ間予測ユニット166)は、参照レイヤのコーデックが特定のタイプのコーデックであるかどうかを決定すること、復号ベースレイヤピクチャを受信すること、復号ベースレイヤピクチャを記憶すること、およびメモリを空にすることなどの、本開示で説明する技法のいずれかを実施するために使用され得る。
【0197】
IRAPベースレイヤピクチャのシグナリング
[00203]いくつかの態様では、1つまたは複数のエンハンスメントレイヤ上で動作しているSHVCデコーダのようなデコーダが、非HVECベースレイヤのいくつかの特性を知っていることが有益であり得る。たとえば、所与のベースレイヤピクチャがIRAPピクチャであるか否かを外部ソースがシグナリングすることを、デコーダが要求することが望ましくあり得る。ベースレイヤピクチャがIRAPピクチャである場合、IDRピクチャ、CRAピクチャ、またはBLAピクチャを規定し得るIRAP NALユニットタイプを、外部ソースがさらにシグナリングすれば望ましくあり得る。
【0198】
[00204]非HEVCベースレイヤが使用されるとき、各アクセスユニットは、外部ソースによって復号されたベースレイヤピクチャ(レイヤIDが0に等しい)を含み得る。そのようなピクチャが提供されないとき、そのアクセスユニットに対するレイヤ間予測のために使用され得るベースレイヤピクチャはない。
【0199】
[00205]復号ベースレイヤピクチャが外部ソースによって提供されるとき、外部ソースは他の情報も提供し得る。たとえば、外部ソースは、復号されたサンプル値を提供し得る。値chroma_format_idcが0に等しい場合、外部ソースは、復号されたサンプル値として1つのサンプルアレイS
Lを提供し得る。そうでない場合、外部ソースは、3つのサンプルアレイ、すなわち、S
LとS
CbとS
Crとを提供し得る。
【0200】
[00206]外部ソースは、復号ベースレイヤピクチャがIRAPピクチャであるか否かという表示も提供し得る。たとえば、この表示は、BlIrapPicFlagと名付けられた変数に見出され得る。このベースレイヤIRAPピクチャフラグは、ベースレイヤピクチャがIRAPピクチャであるか否かを示し得る。1の値は、ベースレイヤピクチャがIRAPピクチャであることを示し得る。同様に、IrapPicFlagと名付けられた変数が1に等しい場合、このことは、復号ベースレイヤピクチャが非IRAPピクチャであることを示し得る。
【0201】
[00207]ベースレイヤピクチャがIRAPピクチャであるとき、外部ソースは、IRAP NALユニットタイプをさらに提供し得る。これは、IDRピクチャ、CRAピクチャ、またはBLAピクチャを規定し得る。たとえば、これは、変数nal_unit_typeに対する値として提供され得る。この変数は、IRAPピクチャが、それぞれ、IDRピクチャ、CRAピクチャ、またはBLAピクチャであるかどうかを示し得る、IDR_W_RADL、CRA_NUT、またはBLA_W_LPの値を有し得る。
【0202】
[00208]たとえば、NALユニットタイプ変数は、IRAPベースレイヤピクチャがIDR_W_RADLであることを示し得る。この値は、復号ピクチャがIDRピクチャであり、勧告ITU−T H.264|ISO/IEC14496−10のIDRピクチャから復号されたことを示し得る。
【0203】
[00209]いくつかの態様では、NALユニットタイプ変数は、IRAPベースレイヤピクチャがCRA_NUTであることを示し得る。これは、復号ピクチャがCRAピクチャであり、recovery_frame_cntが0に等しくbroken_link_flagが0に等しい、勧告ITU−T H.264|ISO/IEC14496−10の回復点SEIメッセージに関連付けられていた勧告ITU−T H.264|ISO/IEC14496−10のコード化ピクチャから復号されたことを規定する。
【0204】
[00210]いくつかの態様では、NALユニットタイプ変数は、IRAPベースレイヤピクチャがBLA_W_LPであることを示し得る。これは、復号ピクチャがBLAピクチャであり、recovery_frame_cntが0に等しくbroken_link_flagが1に等しい、勧告ITU−T H.264|ISO/IEC14496−10の回復点SEIメッセージに関連付けられていた勧告ITU−T H.264|ISO/IEC14496−10のコード化ピクチャから復号されたことを規定する。
【0205】
[00211]随意に、外部ソースはまた、ピクチャがフレームであるのかそれともフィールドであるのかを示し得る。その場合、ピクチャはフィールドであり、外部ソースは、トップフィールドまたはボトムフィールドなどのフィールドパリティを示し得る。外部ソースがこれを示さない場合、復号ピクチャはフレームピクチャであると推定され得る。
【0206】
例示的なフローチャート#4
[00212]
図7は、本開示の一実施形態による、ビデオ情報をコーディングするための方法700を示すフローチャートである。
図7に示すステップは、エンコーダ(たとえば、
図2Aまたは
図2Bに示すようなビデオエンコーダ)、デコーダ(たとえば、
図3Aまたは
図3Bに示すようなビデオデコーダ)、または任意の他の構成要素によって実行され得る。便宜上、方法700について、エンコーダ、デコーダ、または別の構成要素であり得る、コーダによって実行されるものとして説明する。
【0207】
[00213]方法700は、ブロック701において開始する。ブロック705では、デコーダが、参照レイヤがビットストリームの中に含まれないと決定する。一例では、参照レイヤは、AVCコーデックに従って、および/または非HEVCコーデックに従ってコーディングされる。いくつかの態様では、方法が、参照レイヤがビットストリームの中に含まれるかどうかを、フラグの値またはコーデックの他のインジケータに基づいて決定する。そのようなフラグまたは他のインジケータは、外部ソースから受信され得、または方法によって決定され得る。いくつかの態様では、決定するための手段はプロセッサを含み得る。いくつかの態様では、値は、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、または適応パラメータセットのうちの1つの中に含まれ得る。
【0208】
[00214]デコーダは、次いで、ブロック710において、復号ベースレイヤピクチャを外部ソースから受信する。いくつかの態様では、ベースレイヤピクチャは、アクセスユニットに関連付けられ得る。いくつかの態様では、外部ソースは別のデコーダを含み得る。いくつかの態様では、他のデコーダはAVCデコーダであり得る。いくつかの態様では、受信するための手段はプロセッサを含み得る。
【0209】
[00215]ブロック715において、デコーダが、ピクチャがIRAPピクチャであるという表示を、外部ソースから受信する。たとえば、この表示は、ベースレイヤピクチャがIRAPピクチャであることを示すフラグを含み得る。いくつかの態様では、受信するための手段はプロセッサを含み得る。ブロック720において、デコーダが、ピクチャがIDRピクチャ、CLAピクチャ、またはBLAピクチャのうちの1つであるかどうかの第2の表示を受信する。いくつかの態様では、受信するための手段はプロセッサを含み得る。いくつかの態様では、第2の表示は、3つ以上の可能な値を有するシンタックス要素であり得る。ブロック730において、デコーダが、第1および第2の表示に少なくとも部分的に基づいて、ビデオ情報をコーディングする。いくつかの態様では、復号するための手段はプロセッサを含み得る。方法700は、ブロック730において終了する。
【0210】
[00216]上記で説明したように、
図2Aのビデオエンコーダ20、
図2Bのビデオエンコーダ21、
図3Aのビデオデコーダ30、または
図3Bのビデオデコーダ31のうちの1つまたは複数の構成要素(たとえば、レイヤ間予測ユニット128および/またはレイヤ間予測ユニット166)は、参照レイヤのコーデックが特定のタイプのコーデックであるかどうかを決定すること、復号ベースレイヤピクチャを受信すること、復号ベースレイヤピクチャを記憶すること、およびメモリを空にすることなどの、本開示で説明する技法のいずれかを実施するために使用され得る。
【0211】
設計の追加の態様
[00217]概して、現在のアクセスユニットに対して、ベースレイヤ情報が外部ソースによって提供されないか、または外部ソースが情報の少なくとも差し止められたセットを提供しなければならないかのいずれかである。情報が提供されない場合、ベースレイヤピクチャがベースレイヤビットストリームにおけるアクセスユニットの中で提供されたかどうかにかかわらず、ベースレイヤピクチャは現在のアクセスユニットに対するレイヤ間予測のために使用されない。あるいは、外部ソースは、(1)ベースレイヤ復号ピクチャの復号されたサンプル値、(2)ルーマサンプルにおける幅および高さ、カラーフォーマット、個別カラープレーンフラグ、ルーマビット深度、ならびにクロマビット深度を含むベースレイヤ復号ピクチャの表現フォーマット、(3)ベースレイヤピクチャがIRAPピクチャであるか否かについての情報、および、はいの場合、IDRピクチャ、CRAピクチャ、またはBLAピクチャを規定し得るIRAP NALユニットタイプ、ならびに随意に、(4)ピクチャがフレームであるのかそれともフィールドであるのか、および、いつフィールドであるのか、フィールドパリティ(トップフィールドまたはボトムフィールド)であるのか、を提供することを差し止められ得る。ピクチャがフレームであるのかそれともフィールドであるのかについての情報が提供されないとき、復号ピクチャはフレームピクチャであると推定され得る。
【0212】
[00218]ベースレイヤ復号ピクチャのピクチャ順序カウントは、存在する場合、同じアクセスユニットの中の任意のエンハンスメントレイヤピクチャのピクチャ順序カウントに等しく設定され得る。この場合、そのようなスケーラブルコーデックまたはマルチビューコーデックにおけるベースレイヤデコーダによって復号されるベースレイヤピクチャの実際のピクチャ順序カウントが、同じピクチャがAVCデコーダによって復号されるときのそれのピクチャ順序カウント値と異なる場合があることに留意されたい。アクセスユニットに対してエンハンスメントレイヤピクチャが存在しないとき、ベースレイヤ復号ピクチャは使用されず廃棄され得る。
【0213】
[00219]ベースレイヤ復号ピクチャは、「長期の参照用に使用される」としてマークされ得る。CPB動作の場合、ベースレイヤはゼロビットを有するとみなされ得る。DPB動作の場合、エンハンスメントレイヤ復号ピクチャだけが考慮され得る。
【0214】
[00220]ベースレイヤが非HEVCであるとき、VPSの中の最初のprofile_tier_level()シンタックス構造の中のgeneral_profile_spaceは、1に等しく設定され得る。この場合、コーデックタイプがシグナリングされ、AVCが示されるとき、3バイトのAVCプロファイルおよびレベル情報がシグナリングされ、profile_tier_level()シンタックス構造の中のビットの残りはすべて予約済みである。
【0215】
[00221]ベースレイヤが非HEVCであるとき、3つのDPBパラメータ(最大サブDPBサイズ、最大リオーダー、および最大レイテンシ)のシグナリングが最小量のビットを使用することが必要とされ得る。hrd_parameters()シンタックス構造のいずれも0に設定されたレイヤ(ベースレイヤのみ)に適用されないことも必要とされ得る。
【0216】
[00222]ベースレイヤが非HEVCであるとき、sub_layers_vps_max_minus1[0]、max_tid_il_ref_pics_plus1[0][j]、およびdirect_dependency_type[i][0]などの、VPS VUIを含むVPS拡張の中でのベースレイヤに対する不必要なシグナリングは避けられ得る。
【0217】
追加のコードセグメント
[00223]以下の例示的なコードセグメントは、VPS VUIシンタックスの一部として使用され得、ベースレイヤがHEVCレイヤであるかどうかに少なくとも部分的に基づいて、いくつかのフラグを設定すること、または設定しないことを定め得る。
【0219】
[00224]以下の例示的なコードセグメントは、プロファイル、ティア、およびレベルのシンタックスの一部として使用され得、general_profile_space(それ自体がビデオストリームのベースレイヤ向けに使用されるコーデックに基づいて設定され得る)の値に基づいて、いくつかのフラグを設定すること、または設定しないことを定め得る。
【0221】
[00225]いくつかの態様では、VPSの中の最初のprofile_tier_level()シンタックスは、0に等しいgeneral_profile_spaceフラグを有し、変数HevcBaseLayerFlagは1に等しく設定され得、変数AvcBaseLayerFlagは0に等しく設定され得る。たとえば、変数HevcBaseLayerFlagは、特定のビデオのベースレイヤがHEVCコーデックに基づいて符号化されているか否かを示すために使用され得る。同様に、変数AvcBaseLayerFlagは、特定のビデオのベースレイヤがAVCコーデックに基づいて符号化されているか否かを示すために使用され得る。
【0222】
[00226]あるいは、最初のprofile_tier_level()シンタックス構造が、1に等しいgeneral_profile_spaceと、0に等しいbase_later_codec_typeとを有するとき、変数AvcBaseLayerFlagは1に等しく設定され得、変数HevcBaseLayerFlagは0に等しく設定され得る。さらに、このシナリオでは、vps_sub_layer_ordering_info_present_flagの値は0に等しくあり得、vps_max_dec_pic_buffering_minus1[i]、vps_max_num_reorder_pics[i]、およびvps_max_latency_increase_plus1[i]の値はすべて、iとしてのすべての可能な値について0に等しくあり得る。このシナリオでは、デコーダは、vps_sub_layer_ordering_info_present_flag、vps_max_dec_pic_buffering_minus1[i]、vps_max_num_reorder_pics[i]、およびvps_max_latency_increase_plus1[i]の値を無視するように構成され得、hrd_layer_set_idx[i]の値は0よりも大きくあり得る。
【0223】
[00227]概して、vps_extension_offsetフラグは、存在するとき、VPS NALユニットの中のvps_vui_present_flagから始まる固定長のコーディングされた情報の次のセットの、VPS NALユニットの開始から始まるバイトオフセットを規定し得る。存在するとき、VPS NALユニットの中に現れるエミュレーション防止バイトは、バイトオフセット識別のためにカウントされる。
【0224】
[00228]いくつかの態様では、ベースレイヤがHEVCコーデックを使用してコーディングされないとき(したがって、フラグHevcBaseLayerFlagが0に等しいとき)、sps_scaling_list_ref_layer_idの値が0よりも大きくなければならないことが必要とされ得る。概して、sps_scaling_list_ref_layer_idは、アクティブなSPSが現在のSPSと同じスケーリングリストデータに関連付けられるべきレイヤを規定する。
【0225】
[00229]ジェンリアリー、pps_scaling_list_ref_layer_idは、アクティブなPPSが現在のPPSと同じスケーリングリストデータを有するべきレイヤを規定する。pps_scaling_list_ref_layer_idの値は、両端値を含む0〜62としての範囲の中になければならない。いくつかの態様では、ビデオのベースレイヤがHEVCベースレイヤでないとき(すなわち、HevcBaseLayerFlagが0に等しいとき)、pps_scaling_list_ref_layer_idが0よりも大きいことは、ビットストリーム適合の要件であり得る。
【0226】
プロファイル、ティア、およびレベルのセマンティクス
[00230]概して、general_profile_spaceの値が提供されないとき、その値は0であると推定される。ただし、general_profile_spaceの値が1に等しい場合、0に等しいbase_layer_codec_typeの値は、ベースレイヤが勧告ITU−T H.264|ISO/IEC14496−10に適合することを規定し得る。両端値を含む1〜63としての範囲の中のbase_layer_codec_typeの他の値は、将来の使用のためにITU−T|ISO/IECによって予約済みであり得る。
【0227】
[00231]さらに、avc_base_profile_level_idcは、勧告ITU−T H.264|ISO/IEC14496−10のベースレイヤとしての適合点を示し得る。たとえば、avc_base_profile_level_idcは、勧告ITU−T H.264|ISO/IEC14496−10のシーケンスパラメータセットのprofile_idc、constraint_set0_flag、constraint_set1_flag、constraint_set2_flag、constraint_set3_flag、constraint_set4_flag、constraint_set5_flag、reserved_zero_2bits、およびlevel_idcからなる、勧告ITU−T H.264|ISO/IEC14496−10における3バイトと同じ値を有し得る。
【0228】
[00232]さらに、reserved_zero_24bitsおよびreserved_zero_32bitsはともに0に等しくなければならず、他の値は将来の使用のためにITU−T|ISO/IECによって予約済みであり得る。デコーダは、reserved_zero_24bitsとreserved_zero_32bitsの両方の値を無視するように構成され得る。たとえば、general_profile_spaceが1に設定されるとき、以下のコードセグメントがreserved_zero_24bitsおよびreserved_zero_32bitsの値を設定するために使用され得る。
【0230】
一般の復号プロセス
[00233]概して、ビデオのベースレイヤがAVCベースレイヤであるとき(すなわち、AvcBaseLayerFlagが1に等しいとき)、以下のことが適用される。
【0231】
[00234]ビットストリームの中にレイヤID0を有するコード化ピクチャが存在し得ない。というのも、ベースレイヤが非HEVCレイヤであり、そのため、ベースレイヤに対するピクチャが、ビットストリームの中に含まれ得るのでなく、外部ソースから生じ得るからである。レイヤID0用のサブDPBのサイズは、1に等しく設定される。
【0232】
[00235]レイヤID0を有する復号ピクチャについてのpic_width_in_luma_samples、pic_height_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_luma_minus8、およびbit_depth_chroma_minus8の値は、外部ソースによって提供される。
【0233】
[00236]各アクセスユニットに対して、レイヤID0を有する復号ピクチャは、外部のソースによって提供され得る。提供されないとき、現在のアクセスユニットに対するレイヤ間予測のために、レイヤID0を有するピクチャは使用されない。そのようなピクチャが提供されるとき、そのピクチャはまた、復号されたサンプル値(chroma_format_idcが0に等しい場合には1つのサンプルアレイSL、そうでない場合には3つのサンプルアレイSL、SCb、およびSCr)と、変数BlIrapPicFlagの値と、BlIrapPicFlagが1に等しいときには復号ピクチャのnal_unit_typeの値とを含み得る。さらに、1に等しいBlIrapPicFlagは、復号ピクチャがIRAPピクチャであることを規定する。1に等しいIrapPicFlagは、復号ピクチャが非IRAPピクチャであることを規定する。復号ピクチャのnal_unit_typeとして提供される値は、IDR_W_RADL、CRA_NUT、またはBLA_W_LPに等しくなければならない。概して、IDR_W_RADLに等しいnal_unit_typeの値は、復号ピクチャがIDRピクチャであり、勧告ITU−T H.264|ISO/IEC14496−10のIDRピクチャから復号されたことを規定する。CRA_NUTに等しいnal_unit_typeの値は、復号ピクチャがCRAピクチャであり、recovery_frame_cntが0に等しくbroken_link_flagが0に等しい、勧告ITU−T H.264|ISO/IEC14496−10の回復点SEIメッセージに関連付けられていた勧告ITU−T H.264|ISO/IEC14496−10のコード化ピクチャから復号されたことを規定する。BLA_W_LPに等しいnal_unit_typeの値は、復号ピクチャがBLAピクチャであり、recovery_frame_cntが0に等しくbroken_link_flagが1に等しい、勧告ITU−T H.264|ISO/IEC14496−10の回復点SEIメッセージに関連付けられていた勧告ITU−T H.264|ISO/IEC14496−10のコード化ピクチャから復号されたことを規定する。外部ソースは、ピクチャがフレームであるのかそれともフィールドであるのか、および、いつフィールドであるのか、フィールドパリティ(トップフィールドまたはボトムフィールド)であるのかを、随意に示し得る。提供されない場合、復号ピクチャはフレームピクチャであると推定される。
【0234】
[00237]概して、レイヤID0を有する復号ピクチャは、サブDPBに記憶され、「長期の参照用に使用される」としてマークされる。レイヤIDが0よりも大きい少なくとも1つのピクチャをアクセスユニットが有する場合、レイヤID0に対する復号ピクチャのPicOrderCntValは、アクセスユニットの中のレイヤIDが0よりも大きい任意のピクチャのPicOrderCntValに等しく設定される。そうでない場合、レイヤID0に対する復号ピクチャは廃棄され、レイヤID0用のサブDPBは空になるように設定される。レイヤIDが0よりも大きい少なくとも1つのピクチャをアクセスユニットが有するとき、アクセスユニットの中のすべてのピクチャが復号された後、レイヤID0を有するレイヤ用のサブDPBは空になるように設定される。
【0235】
他の考慮事項
[00238]本明細書で開示された情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【0236】
[00239]本明細書で開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能性が、ハードウェアまたはソフトウェアのどちらとして実施されるのかは、特定の応用例と、システム全体に課せられる設計制約とに依存する。当業者は、特定の適用例ごとに様々な方法で記載された機能を実装し得るが、そのような実装の決定が、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
【0237】
[00240]本明細書に記載された技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアに実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【0238】
[00241]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価の集積回路もしくはディスクリート論理回路を含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示に記載された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書に記載された技法の実装に適した任意の他の構造もしくは装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書に記載された機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に提供され得るか、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
【0239】
[00242]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記で説明したように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【0240】
[00243]本発明の様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオ情報をコーディングする方法であって、
参照レイヤがビットストリームの中に含まれるかどうかを決定することと、
表示を処理するべきか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定することと、
前記参照レイヤが前記ビットストリームの中に含まれる場合、前記表示を前記ビットストリームの中で処理することと、
前記処理された表示に少なくとも部分的に基づいて、前記ビデオ情報をコーディングすることと
を備える方法。
[C2]
前記参照レイヤが、非HEVC(高効率ビデオコーディング)コーデックに従ってコーディングされる、C1に記載の方法。
[C3]
前記参照レイヤが、アドバンストビデオコーディング(AVC)コーデックに従ってコーディングされる、C1に記載の方法。
[C4]
前記参照レイヤが前記ビットストリームの中に含まれるかどうかを決定することは、前記参照レイヤが前記ビットストリームの中に含まれるかどうかを、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、または適応パラメータセットのうちの1つの中に含まれる値に基づいて決定することを備える、C1に記載の方法。
[C5]
前記表示を処理するべきか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定することは、前記表示が冗長であるか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定することを備える、C1に記載の方法。
[C6]
前記表示は、前記参照レイヤ(RL)が少なくとも1つのエンハンスメントレイヤ(EL)のサンプル予測および動き予測のうちの1つまたは複数のために使用され得るという表示を備える、C1に記載の方法。
[C7]
前記表示が、特定のレイヤに対するいくつかのサブレイヤの表示を備える、C1に記載の方法。
[C8]
前記表示は、第1のレイヤが第2のレイヤに対するレイヤ間予測のために使用され得るかどうかの表示を備える、C1に記載の方法。
[C9]
前記表示が、データアレイの中の1つまたは複数の値を備える、C1に記載の方法。
[C10]
1つまたは複数のパラメータの前記表示を備える1つまたは複数のシンタックス要素を前記ビットストリームの中で生成することをさらに備え、ここにおいて、ビデオ情報をコーディングすることが、ビデオ情報を符号化することを備える、C1に記載の方法。
[C11]
1つまたは複数のパラメータの前記表示を備える1つまたは複数のシンタックス要素を前記ビットストリームの中で生成することをさらに備え、ここにおいて、ビデオ情報をコーディングすることが、ビデオ情報を復号することを備える、C1に記載の方法。
[C12]
ビデオ情報をコーディングするように構成された装置であって、
ビットストリームに関連付けられたビデオ情報を記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
参照レイヤが前記ビットストリームの中に含まれるかどうかを決定することと、
表示を処理するべきか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定することと、
前記参照レイヤが前記ビットストリームの中に含まれる場合、前記表示をビデオビットストリームの中で処理することと、
前記処理された表示に少なくとも部分的に基づいて、前記ビデオ情報をコーディングすることとを行うように構成される、
装置。
[C13]
前記参照レイヤが、非HEVC(高効率ビデオコーディング)コーデックに従ってコーディングされる、C12に記載の装置。
[C14]
前記参照レイヤが、アドバンストビデオコーディング(AVC)コーデックに従ってコーディングされる、C12に記載の装置。
[C15]
前記参照レイヤが前記ビットストリームの中に含まれるかどうかを決定することは、前記参照レイヤが前記ビットストリームの中に含まれるかどうかを、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、または適応パラメータセットのうちの1つの中に含まれる値に基づいて決定することを備える、C12に記載の装置。
[C16]
前記表示を処理するべきか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定することは、前記表示が冗長であるか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定することを備える、C12に記載の装置。
[C17]
前記表示は、前記参照レイヤが少なくとも1つのエンハンスメントレイヤ(EL)のサンプル予測および動き予測のうちの1つまたは複数のために使用され得るという表示を備える、C12に記載の装置。
[C18]
前記表示が、特定のレイヤに対するいくつかのサブレイヤの表示を備える、C12に記載の装置。
[C19]
前記表示は、第1のレイヤが第2のレイヤに対するレイヤ間予測のために使用され得るかどうかの表示を備える、C12に記載の装置。
[C20]
前記表示が、データアレイの中の1つまたは複数の値を備える、C12に記載の装置。
[C21]
前記プロセッサは、1つまたは複数のパラメータの前記表示を備える1つまたは複数のシンタックス要素を前記ビットストリームの中で生成するようにさらに構成され、ここにおいて、ビデオ情報をコーディングすることが、ビデオ情報を符号化することを備える、C12に記載の装置。
[C22]
前記プロセッサは、1つまたは複数のパラメータの前記表示を備える1つまたは複数のシンタックス要素を前記ビットストリームの中で生成するようにさらに構成され、ここにおいて、ビデオ情報をコーディングすることが、ビデオ情報を復号することを備える、C12に記載の装置。
[C23]
実行されたとき、装置に、
参照レイヤがビットストリームの中に含まれるかどうかを決定することと、
表示を処理するべきか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定することと、
前記参照レイヤが前記ビットストリームの中に含まれる場合、前記表示をビデオビットストリームの中で処理することと、
前記処理された表示に少なくとも部分的に基づいて、前記ビデオ情報をコーディングすることと、
を備えるプロセスを実行させるコードを備える非一時的コンピュータ可読媒体。
[C24]
前記参照レイヤが、非HEVC(高効率ビデオコーディング)コーデックおよびアドバンストビデオコーディング(AVC)コーデックのうちの少なくとも1つに従ってコーディングされる、C23に記載の非一時的コンピュータ可読媒体。
[C25]
前記表示は、前記参照レイヤが少なくとも1つのエンハンスメントレイヤ(EL)のサンプル予測および動き予測のうちの1つまたは複数のために使用され得るという表示を備える、C23に記載の非一時的コンピュータ可読媒体。
[C26]
前記表示が、特定のレイヤに対するいくつかのサブレイヤの表示を備える、C23に記載の非一時的コンピュータ可読媒体。
[C27]
ビデオ情報をコーディングするように構成されたビデオコーディングデバイスであって、
参照レイヤがビットストリームの中に含まれるかどうかを決定するための手段と、
表示を処理するべきか否かを、前記参照レイヤが前記ビットストリームの中に含まれるかどうかに基づいて決定するための手段と、
前記参照レイヤが前記ビットストリームの中に含まれる場合、前記表示をビデオビットストリームの中で処理するための手段と、
前記処理された表示に少なくとも部分的に基づいて、前記ビデオ情報をコーディングするための手段と
を備えるビデオコーディングデバイス。
[C28]
前記参照レイヤが、非HEVC(高効率ビデオコーディング)コーデックおよびアドバンストビデオコーディング(AVC)コーデックのうちの少なくとも1つに従ってコーディングされる、C27に記載のビデオコーディングデバイス。
[C29]
前記表示は、前記参照レイヤが少なくとも1つのエンハンスメントレイヤ(EL)のサンプル予測および動き予測のうちの1つまたは複数のために使用され得るという表示を備える、C27に記載のビデオコーディングデバイス。
[C30]
前記表示が、特定のレイヤに対するいくつかのサブレイヤの表示を備える、C27に記載のビデオコーディングデバイス。