[0026] 本明細書で説明するいくつかの実施形態は、HEVC(高効率ビデオコーディング)など、アドバンストビデオコーデックのコンテキストにおけるスケーラブルビデオコーディングのためのレイヤ間予測に関する。より詳細には、本開示は、HEVCのスケーラブルビデオコーディング(SVC)拡張におけるレイヤ間予測の性能の改善のためのシステムおよび方法に関する。以下の説明では、いくつかの実施形態に関係するH.264/AVC技法について説明し、HEVC規格および関係する技法についても説明する。いくつかの実施形態について、HEVCおよび/またはH.264規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。例えば、本明細書で開示する実施形態は、以下の規格、すなわち、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびそれのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264のうちの1つまたは複数に適用可能であり得る。
[0027] ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を行う。ブロックベースのビデオコーディングの場合、ビデオスライス(例えば、ビデオフレーム、ビデオフレームの一部分など)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0028] 空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は2次元アレイで構成され、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピー符号化が適用され得る。
[0029] 上記で説明したように、HEVC拡張では、2つの動きベクトル予測モード、すなわち、マージモードとAMVPモードとがあり得る。例えば、マージモードは、コーディングすべき現在ビデオブロックのための(動きベクトル、参照フレームインデックス、予測方向、または他の情報などの)動き情報が、現在ビデオブロック、あるいは異なるピクチャ(例えば、時間ピクチャ、別のレイヤ中のピクチャ、または別のビュー中のピクチャ)中のコロケートビデオブロックを含んでいる同じピクチャ中の空間的に近隣するビデオブロックから継承される1つまたは複数のビデオコーディングモードを指す。同じピクチャ中の空間的に近隣するブロックは空間候補ブロックと呼ばれることがある。異なるピクチャ中のコロケートブロックはコロケート候補ブロックと呼ばれることがある。現在ビデオブロックがそれの動き情報をそこから継承する空間的に近隣するブロックまたはコロケートブロック(例えば、現在ブロックに対する、上、右上、左、左下ブロック、または時間的に隣接するピクチャからのコロケートブロック、別のレイヤからのブロック、または別のビューからのブロック)を識別するために、インデックス値が使用され得る。
[0030] スキップモードはマージモードの1つのタイプ(またはマージモードと同様のモード)を備え得る。スキップモードでは、動き情報は継承されるが、残差情報はコーディングされない。残差情報は、概して、コーディングされるべきブロックと、空間的に近隣するブロックまたはコロケートブロックから継承される動き情報によって識別される予測ブロックとの間のピクセル差分を示すピクセル差分情報を指し得る。直接モードは別のタイプのマージモード(またはマージモードと同様のモード)であり得る。直接モードは、動き情報が継承されるという点でスキップモードと同様であり得るが、直接モードでは、ビデオブロックは、残差情報を含むようにコーディングされる。「マージモード」という句は、本明細書では、スキップモード、直接モード、またはマージモードと呼ばれることがある、これらのモードのうちのいずれか1つを指すために使用される。
[0031] AMVPモードはマージモードと同様であり得る。しかしながら、AMVPモードでは、ビデオコーダはまた、参照インデックスを、インター予測のために使用されるピクチャを識別する(候補動きベクトル予測子のリストとは異なる)参照ピクチャリスト中にコーディングする。言い換えれば、AMVPモードでは、ビデオコーダは、参照フレームインデックスを継承しないことがあり、むしろ、参照フレームインデックスはシグナリングされ得る。また、いくつかの実施形態では、AMVPモードでは、ビデオコーダは動きベクトル差分(MVD)をコーディングし得る。MVDは、ブロックの実際の動きベクトルと、候補動きベクトル予測子のリストへのインデックスによって識別される動きベクトル予測子との間の差である。
[0032] 従って、動きベクトル自体を符号化し、通信するのではなく、ビデオエンコーダ(例えば、図2のビデオエンコーダ20)は、知られている(または知り得る)動きベクトルに対する動きベクトル差分(MVD)を符号化し、通信し得る。H.264/AVCでは、現在動きベクトルを定義するためにMVDとともに使用され得る、知られている動きベクトルは、近隣ブロックに関連する動きベクトルの中央値として導出される、いわゆる動きベクトル予測子(MVP)によって定義され得る。しかしながら、より高度のMVP技法は、ビデオエンコーダが、MVPをそこから定義すべきネイバーを選択することを可能にし得る。
[0033] 単に説明の目的で、本明細書で開示するいくつかの実施形態について、ただ2つのレイヤ(例えば、ベースレイヤなどの下位レベルレイヤ、およびエンハンスメントレイヤなどの上位レベルレイヤ)を含む例を用いて説明する。そのような例は、複数のベースレイヤおよび/またはエンハンスメントレイヤを含む構成に適用可能であり得ることを理解されたい。さらに、説明を簡単にするために、以下の開示は、いくつかの実施形態に関して「フレーム」または「ブロック」という用語を含む。ただし、これらの用語は限定的なものではない。例えば、以下で説明する技法は、ブロック(例えば、CU、PU、TU、マクロブロックなど)、スライス、フレームなど、任意の好適なビデオユニットとともに使用され得る。
[0034] HEVCは、概して、多くの点で、前のビデオコーディング規格のフレームワークに従う。HEVCにおける予測のユニットは、いくつかの前のビデオコーディング規格におけるユニット(例えば、マクロブロック)とは異なる。事実上、マクロブロックの概念は、いくつかの前のビデオコーディング規格において理解されているように、HEVC中に存在しない。マクロブロックは、考えられる利益の中でも、高いフレキシビリティを与え得る、4分木方式に基づく階層構造と置き換えられ得る。例えば、HEVC方式内で、3つのタイプのブロック、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU:Transform Unit)が定義される。CUは領域分割の基本ユニットを指し得る。CUはマクロブロックの概念に類似すると見なされ得るが、それは、最大サイズを制限せず、コンテンツ適応性を改善するために4つの等しいサイズのCUへの再帰的分割を可能にし得る。PUはインター/イントラ予測の基本ユニットと見なされ得、それは、不規則な画像パターンを効果的にコーディングするために、単一のPU中に複数の任意の形状区分を含んでいることがある。TUは変換の基本ユニットと見なされ得る。それは、PUとは無関係に定義され得るが、それのサイズは、TUが属するCUに制限され得る。3つの異なる概念へのブロック構造のこの分離は、各々がそれの役割に従って最適化されることを可能にし得、これが改善されたコーディング効率をもたらし得る。
ビデオコーディング規格
[0035] ビデオ画像、TV画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルからなり得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮なしに、画像エンコーダから画像デコーダに搬送されるべき情報の量は、リアルタイム画像送信を不可能にするほど非常に大きい。送信されるべき情報の量を低減するために、JPEG、MPEGおよびH.263規格など、いくつかの異なる圧縮方法が開発された。
[0036] ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびそれのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含み、その全ての全体が参照により組み込まれる。
[0037] さらに、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって開発されている。HEVCの最近のドラフトは、2013年11月15日現在、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから利用可能であり、その全体が参照により組み込まれる。HEVCドラフト10についての完全引用は、文書JJCTVC−L1003、Brossら、「High Efficiency Video Coding (HEVC) Text Specification Draft 10」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントコラボレーティブチームオンビデオコーディング(JCT−VC:Joint Collaborative Team on Video Coding)、第12回会合:ジュネーブ、スイス、2013年1月14日〜2013年1月23日である。
[0038] 添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、本発明の他の態様と組み合わされるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載の態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示するどの態様も請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
[0039] 本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であることが意図され、そのうちのいくつかが例として図面および好ましい態様の以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
[0040] 添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。
ビデオコーディングシステム
[0041] 図1は、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。
[0042] 図1に示されているように、ビデオコーディングシステム10は、ソースデバイス12と宛先デバイス14とを含む。ソースデバイス12は符号化ビデオデータを生成する。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号し得る。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(例えば、ラップトップなど)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲にわたるデバイスを備え得る。いくつかの例では、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0043] 宛先デバイス14は、チャネル16を介してソースデバイス12から符号化ビデオデータを受信し得る。チャネル16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、チャネル16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にする通信媒体を備え得る。この例では、ソースデバイス12は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス14に送信し得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、ワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするルータ、スイッチ、基地局、または他の機器を含み得る。
[0044] 別の例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する記憶媒体に対応し得る。この例では、宛先デバイス14は、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。さらなる例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオを記憶する、ファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス14は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスに記憶された、符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス14に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、(例えば、ウェブサイトなどのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続など)、ワイヤード接続(例えば、DSL、ケーブルモデムなど)、またはその両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
[0045] 本開示の技法は、ワイヤレスの用途または設定には限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信(例えば、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)など)、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
[0046] 図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/またはビデオデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。
[0047] ビデオエンコーダ20は、キャプチャされたビデオデータ、以前にキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化するように構成され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化ビデオデータはまた、復号および/または再生のための宛先デバイス14による後のアクセスのために記憶媒体またはファイルサーバ上に記憶され得る。
[0048] 図1の例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、チャネル16を介して符号化ビデオデータを受信する。符号化ビデオデータは、ビデオデータを表す、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。シンタックス要素は、ブロックおよび他のコード化ユニット、例えば、ピクチャグループ(GOP:group of pictures)の特性および/または処理を記述し得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
[0049] ディスプレイデバイス32は、宛先デバイス14と一体であり得るか、またはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み得、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示する。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0050] ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格など、ビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263がある。
[0051] 図1の例には示されていないが、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0052] この場合も、図1は例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定(例えば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化デバイスは、データを符号化し、メモリに記憶し得、および/または、復号デバイスは、メモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信せずに、単純にメモリへのデータを符号化し、および/またはメモリからデータを取り出して復号するデバイスによって行なわれる。
[0053] ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を行い得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0054] 上記で手短に述べられたように、ビデオエンコーダ20は、ビデオデータを符号化する。ビデオデータは1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャとは、ピクチャのコード化表現である。
[0055] ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算を行い得る。ビデオエンコーダ20がピクチャに対して符号化演算を行うとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、シーケンスパラメータセットと、ピクチャパラメータセットと、適応パラメータセットと、他のシンタックス構造とを含み得る。シーケンスパラメータセット(SPS:sequence parameter set)は、ピクチャの0個以上のシーケンスに適用可能なパラメータを含んでいることがある。ピクチャパラメータセット(PPS:picture parameter set)は、0個以上のピクチャに適用可能なパラメータを含み得る。適応パラメータセット(APS:adaptation parameter set)は、0個以上のピクチャに適用可能なパラメータを含み得る。APS中のパラメータは、PPS中のパラメータよりも変化する可能性が高いパラメータであり得る。
[0056] コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの2次元アレイであり得る。ビデオブロックの各々はツリーブロックに関連付けられる。いくつかの事例では、ツリーブロックは、最大コーディングユニット(LCU:largest coding unit)と呼ばれることがある。HEVCのツリーブロックは、H.264/AVCなど、以前の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。ビデオエンコーダ20は、4分木区分(quadtree partitioning)を使用して、ツリーブロックのビデオブロックを、CUに関連付けられたビデオブロックに区分し得、従って「ツリーブロック」という名前がある。
[0057] いくつかの例では、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。スライスの各々は整数個のCUを含み得る。いくつかの事例では、スライスは、整数個のツリーブロックを備える。他の事例では、スライスの境界はツリーブロック内にあり得る。
[0058] ピクチャに対して符号化演算を行うことの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を行い得る。ビデオエンコーダ20がスライスに対して符号化演算を行うとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
[0059] コード化スライスを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を行い得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を行うとき、ビデオエンコーダ20はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
[0060] ビデオエンコーダ20がコード化スライスを生成するとき、ビデオエンコーダ20は、ラスタ走査順序に従って、スライス中のツリーブロックに対して符号化演算を行い得る(例えば、そのツリーブロックを符号化し得る)。言い換えれば、ビデオエンコーダ20は、スライス中のツリーブロックの一番上の行にわたって左から右に進み、次いでツリーブロックの次の下の行にわたって左から右に進み、以下同様に進む、順序で、ビデオエンコーダ20がスライス中のツリーブロックの各々を符号化するまで、スライスのツリーブロックを符号化し得る。
[0061] ラスタ走査順序に従ってツリーブロックを符号化した結果として、所与のツリーブロックの上および左のツリーブロックは符号化されていることがあるが、所与のツリーブロックの下および右のツリーブロックはまだ符号化されていない。従って、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの上および左のツリーブロックを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のツリーブロックを符号化するとき、所与のツリーブロックの下および右のツリーブロックを符号化することによって生成された情報にアクセスすることができないことがある。
[0062] コード化ツリーブロックを生成するために、ビデオエンコーダ20は、ツリーブロックのビデオブロックに対して4分木区分を再帰的に行って、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。例えば、ビデオエンコーダ20は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックのうちの1つまたは複数を、4つの等しいサイズのサブサブブロックに区分し得、以下同様である。区分されたCUは、それのビデオブロックが、他のCUに関連付けられたビデオブロックに区分された、CUであり得る。区分されていないCUは、それのビデオブロックが、他のCUに関連付けられたビデオブロックに区分されていない、CUであり得る。
[0063] ビットストリーム中の1つまたは複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックのビデオブロックを区分し得る最大の回数を示し得る。CUのビデオブロックは形状が正方形であり得る。CUのビデオブロックのサイズ(例えば、CUのサイズ)は、8×8ピクセルから、最大64×64以上のピクセルをもつツリーブロックのビデオブロックのサイズ(例えば、ツリーブロックのサイズ)までに及び得る。
[0064] ビデオエンコーダ20は、z走査順序に従って、ツリーブロックの各CUに対して符号化演算を行い得る(例えば、各CUを符号化し得る)。言い換えれば、ビデオエンコーダ20は、左上のCUと、右上のCUと、左下のCUと、次いで右下のCUとを、その順序で符号化し得る。ビデオエンコーダ20が、区分されたCUに対して符号化演算を行うとき、ビデオエンコーダ20は、z走査順序に従って、区分されたCUのビデオブロックのサブブロックに関連付けられたCUを符号化し得る。言い換えれば、ビデオエンコーダ20は、左上のサブブロックに関連付けられたCUと、右上のサブブロックに関連付けられたCUと、左下のサブブロックに関連付けられたCUと、次いで右下のサブブロックに関連付けられたCUとを、その順序で符号化し得る。
[0065] z走査順序に従ってツリーブロックのCUを符号化した結果として、所与のCUの上、左上、右上、左、および左下のCUは符号化されていることがある。所与のCUの下または右のCUはまだ符号化されていない。従って、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接するいくつかのCUを符号化することによって生成された情報にアクセスすることが可能であり得る。しかしながら、ビデオエンコーダ20は、所与のCUを符号化するとき、所与のCUに隣接する他のCUを符号化することによって生成された情報にアクセスすることができない可能性がある。
[0066] ビデオエンコーダ20が、区分されていないCUを符号化するとき、ビデオエンコーダ20は、CUのために1つまたは複数の予測ユニット(PU)を生成し得る。CUのPUの各々は、CUのビデオブロック内の異なるビデオブロックに関連付けられ得る。ビデオエンコーダ20は、CUの各PUについて予測ビデオブロックを生成し得る。PUの予測ビデオブロックはサンプルのブロックであり得る。ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PUのための予測ビデオブロックを生成し得る。
[0067] ビデオエンコーダ20がイントラ予測を使用してPUの予測ビデオブロックを生成するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がイントラ予測を使用してCUのPUの予測ビデオブロックを生成する場合、CUはイントラ予測されたCUである。ビデオエンコーダ20がインター予測を使用してPUの予測ビデオブロックを生成するとき、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ビデオブロックを生成し得る。ビデオエンコーダ20がインター予測を使用してCUのPUの予測ビデオブロックを生成する場合、CUはインター予測されたCUである。
[0068] さらに、ビデオエンコーダ20がインター予測を使用してPUのための予測ビデオブロックを生成するとき、ビデオエンコーダ20はPUの動き情報を生成し得る。PUの動き情報は、PUの1つまたは複数の参照ブロックを示し得る。PUの各参照ブロックは参照ピクチャ内のビデオブロックであり得る。参照ピクチャはPUに関連付けられたピクチャ以外のピクチャであり得る。いくつかの事例では、PUの参照ブロックはPUの「参照サンプル」と呼ばれることもある。ビデオエンコーダ20は、PUの参照ブロックに基づいて、PUのための予測ビデオブロックを生成し得る。
[0069] ビデオエンコーダ20がCUの1つまたは複数のPUのための予測ビデオブロックを生成した後、ビデオエンコーダ20は、CUのPUのための予測ビデオブロックに基づいて、CUの残差データを生成し得る。CUの残差データは、CUのPUのための予測ビデオブロック中のサンプルと、CUの元のビデオブロック中のサンプルとの間の差を示し得る。
[0070] さらに、区分されていないCUに対して符号化演算を行うことの一部として、ビデオエンコーダ20は、CUの残差データに対して再帰的な4分木区分を行って、CUの残差データを、CUの変換ユニット(TU)に関連付けられた残差データの1つまたは複数のブロック(例えば、残差ビデオブロック)に区分し得る。CUの各TUは異なる残差ビデオブロックに関連付けられ得る。
[0071] ビデオコーダ20は、TUに関連付けられた残差ビデオブロックに1つまたは複数の変換を適用して、TUに関連付けられた変換係数ブロック(例えば、変換係数のブロック)を生成し得る。概念的に、変換係数ブロックは変換係数の2次元(2D)行列であり得る。
[0072] 変換係数ブロックを生成した後、ビデオエンコーダ20は、変換係数ブロックに対して量子化プロセスを行い得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現する処理を指す。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。例えば、量子化中にnビットの変換係数がmビットの変換係数に切り捨てられることがあり、ここで、nはmよりも大きい。
[0073] ビデオエンコーダ20は、各CUを量子化パラメータ(QP:quantization parameter)値に関連付け得る。CUに関連付けられたQP値は、ビデオエンコーダ20が、CUに関連付けられた変換係数ブロックをどのように量子化するかを決定し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。
[0074] ビデオエンコーダ20が変換係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数ブロック中で変換係数を表すシンタックス要素のセットを生成し得る。ビデオエンコーダ20は、これらのシンタックス要素のうちのいくつかに、コンテキスト適応型バイナリ算術コーディング(CABAC:Context Adaptive Binary Arithmetic Coding)演算などのエントロピー符号化演算を適用し得る。コンテンツ適応型可変長コーディング(CAVLC:content adaptive variable length coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コーディング、または他のバイナリ算術コーディングなど、他のエントロピーコーディング技法も使用され得る。
[0075] ビデオエンコーダ20によって生成されるビットストリームは、一連のネットワークアブストラクションレイヤ(NAL:Network Abstraction Layer)ユニットを含み得る。NALユニットの各々は、NALユニット中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。例えば、NALユニットは、シーケンスパラメータセット、ピクチャパラメータセット、コード化スライス、補足エンハンスメント情報(SEI:supplemental enhancement information)、アクセスユニット区切り文字、フィラーデータ、または別のタイプのデータを表すデータを含み得る。NALユニット中のデータは様々なシンタックス構造を含み得る。
[0076] ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。ビットストリームは、ビデオエンコーダ20によって符号化されたビデオデータのコード化表現を含み得る。ビデオデコーダ30がビットストリームを受信するとき、ビデオデコーダ30は、ビットストリームに対してパース演算(parsing operation)を行い得る。ビデオデコーダ30がパース演算を行うとき、ビデオデコーダ30は、ビットストリームからシンタックス要素を抽出し得る。ビデオデコーダ30は、ビットストリームから抽出されたシンタックス要素に基づいて、ビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、一般に、シンタックス要素を生成するためにビデオエンコーダ20によって行なわれるプロセスとは逆であり得る。
[0077] ビデオデコーダ30がCUに関連付けられたシンタックス要素を抽出した後、ビデオデコーダ30は、シンタックス要素に基づいて、CUのPUのための予測ビデオブロックを生成し得る。さらに、ビデオデコーダ30は、CUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、変換係数ブロックに対して逆変換を行い、CUのTUに関連付けられた残差ビデオブロックを再構成し得る。予測ビデオブロックを生成し、残差ビデオブロックを再構成した後、ビデオデコーダ30は、予測ビデオブロックと残差ビデオブロックとに基づいて、CUのビデオブロックを再構成し得る。このようにして、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、CUのビデオブロックを再構成し得る。
ビデオエンコーダ
[0078] 図2は、本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図である。ビデオエンコーダ20は、本開示の技法のいずれかまたは全てを行うように構成され得る。一例として、予測ユニット100は、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。いくつかの例では、追加としてまたは代わりに、プロセッサ(図示せず)が、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。
[0079] 説明の目的で、本開示では、HEVCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。
[0080] ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを行い得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
[0081] 図2の例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、予測ユニット100と、残差生成ユニット102と、変換ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換ユニット110と、再構成ユニット112と、フィルタユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116とを含む。予測ユニット100は、インター予測ユニット121と、動き推定ユニット122と、動き補償ユニット124と、イントラ予測ユニット126とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。さらに、動き推定ユニット122と動き補償ユニット124とは、高度に統合され得るが、図2の例では、説明の目的で別々に表されている。
[0082] ビデオエンコーダ20はビデオデータを受信し得る。ビデオエンコーダ20は、様々なソースからビデオデータを受信し得る。例えば、ビデオエンコーダ20は、ビデオソース18(図1)または別のソースからビデオデータを受信し得る。ビデオデータは一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ピクチャの各々に対して符号化演算を行い得る。ピクチャに対して符号化演算を行うことの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を行い得る。スライスに対して符号化演算を行うことの一部として、ビデオエンコーダ20は、スライス中のツリーブロックに対して符号化演算を行い得る。
[0083] ツリーブロックに対して符号化演算を行うことの一部として、予測ユニット100は、ツリーブロックのビデオブロックに対して4分木区分を行い、ビデオブロックを徐々により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は、異なるCUに関連付けられ得る。例えば、予測ユニット100は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックの1つまたは複数を、4つの等しいサイズのサブサブブロックに区分し得、以下同様である。
[0084] CUに関連付けられたビデオブロックのサイズは、8×8サンプルから、最大64×64以上のサンプルをもつツリーブロックのサイズまでに及び得る。本開示では、「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は非負整数値を表す。
[0085] さらに、ツリーブロックに対して符号化演算を行うことの一部として、予測ユニット100は、ツリーブロック用の階層的な4分木データ構造を生成し得る。例えば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。予測ユニット100が、ツリーブロックのビデオブロックを4つのサブブロックに区分する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードの各々は、サブブロックのうちの1つに関連付けられたCUに対応する。予測ユニット100が、サブブロックのうちの1つを4つのサブサブブロックに区分する場合、サブブロックに関連付けられたCUに対応するノードは、サブサブブロックのうちの1つに関連付けられたCUに各々が対応する、4つの子ノードを有し得る。
[0086] 4分木データ構造の各ノードは、対応するツリーブロックまたはCUのシンタックスデータ(例えば、シンタックス要素)を含み得る。例えば、4分木の中のノードは、そのノードに対応するCUのビデオブロックが4つのサブブロックに区分される(例えば、分割される)かどうかを示すスプリットフラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUのビデオブロックがサブブロックに分割されるかどうかに依存し得る。それのビデオブロックが区分されていないCUは、4分木データ構造におけるリーフノードに対応し得る。コード化ツリーブロックは、対応するツリーブロック用の4分木データ構造に基づくデータを含み得る。
[0087] ビデオエンコーダ20は、ツリーブロックの区分されていない各CUに対して符号化演算を行い得る。ビデオエンコーダ20が、区分されていないCUに対して符号化演算を行うとき、ビデオエンコーダ20は、区分されていないCUの符号化表現を表すデータを生成する。
[0088] 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のビデオブロックを区分するように、幾何学的な区分を行い得る。
[0089] インター予測ユニット121はCUの各PUに対してインター予測を行い得る。インター予測は時間圧縮を実現し得る。PUに対してインター予測を行うために、動き推定ユニット122はPUの動き情報を生成し得る。動き補償ユニット124は、動き情報と、CUに関連付けられたピクチャ以外のピクチャ(例えば、参照ピクチャ)の復号サンプルと基づくPUのための予測ビデオブロックを生成し得る。本開示では、動き補償ユニット124によって生成された予測ビデオブロックは、インター予測ビデオブロックと呼ばれることがある。
[0090] スライスは、Iスライス、Pスライス、またはBスライスであり得る。動き推定ユニット122および動き補償ユニット124は、PUがIスライス中にあるか、Pスライス中にあるか、Bスライス中にあるかに応じて、CUのPUに対して異なる演算を行い得る。Iスライス中では、全てのPUがイントラ予測される。従って、PUがIスライス中にある場合、動き推定ユニット122および動き補償ユニット124は、PUに対してインター予測を行わない。
[0091] 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のビデオブロック中のサンプルに対応するかを判断し得る。
[0092] Pスライス中のPUの参照ブロックを識別した後、動き推定ユニット122は、参照ブロックを含んでいる、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例において、動き推定ユニット122は動きベクトルを異なる精度に生成し得る。例えば、動き推定ユニット122は、1/4サンプル精度、1/8サンプル精度、または他の分数のサンプル精度で動きベクトルを生成し得る。分数のサンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって識別された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
[0093] PUがBスライス中にある場合、PUを含むピクチャは、「リスト0」および「リスト1」と呼ばれる参照ピクチャの2つのリストと関連付けられ得る。いくつかの例では、Bスライスを含むピクチャは、リスト0とリスト1の組合せである、リストの組合せと関連付けられ得る。
[0094] さらに、PUがBスライス中にある場合、動き推定ユニット122は、PUについての単方向予測または双方向予測を行い得る。動き推定ユニット122が、PUについての単方向予測を行うとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0またはリスト1の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含んでいる、リスト0またはリスト1中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力し得る。予測方向インジケータは、参照インデックスが、リスト0中の参照ピクチャを示すか、リスト1中の参照ピクチャを示すかを示し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
[0095] 動き推定ユニット122が、PUについての双方向予測を行うとき、動き推定ユニット122は、PUのための参照ブロックについて、リスト0中の参照ピクチャを探索し得、また、PUのための別の参照ブロックについて、リスト1中の参照ピクチャを探索し得る。動き推定ユニット122は、次いで、参照ブロックを含んでいる、リスト0およびリスト1中の参照ピクチャを示す参照インデックスと、参照ブロックとPUの間の空間変位を示す動きベクトルとを生成し得る。動き推定ユニット122は、PUの動き情報としてPUの参照インデックスと動きベクトルとを出力し得る。動き補償ユニット124は、PUの動き情報によって示された参照ブロックに基づいて、PUの予測ビデオブロックを生成し得る。
[0096] 図8〜図10に関して以下でさらに説明するように、予測ユニット100は、図8〜図10に示されている方法を行うことによって動き推定を行うように構成され得る。
[0097] いくつかの例では、動き推定ユニット122は、PUの動き情報のフルセットをエントロピー符号化ユニット116に出力しない。そうではなく、動き推定ユニット122は、別のPUの動き情報を参照して、PUの動き情報をシグナリングし得る。例えば、動き推定ユニット122は、PUの動き情報が、隣接PUの動き情報と十分に類似していると判断し得る。この例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、PUが隣接PUと同じ動き情報を有することをビデオデコーダ30に示す値を示し得る。別の例では、動き推定ユニット122は、PUに関連付けられたシンタックス構造において、隣接PUと動きベクトル差分(MVD:motion vector difference)とを識別し得る。動きベクトル差分は、PUの動きベクトルと、示される隣接PUの動きベクトルとの間の差分を示す。ビデオデコーダ30は、示される隣接PUの動きベクトルと、動きベクトル差分とを使用して、PUの動きベクトルを判断し得る。第2のPUの動き情報をシグナリングするときに第1のPUの動き情報を参照することによって、ビデオエンコーダ20は、より少数のビットを使用して、第2のPUの動き情報をシグナリングすることが可能であり得る。
[0098] CUに対して符号化演算を行うことの一部として、イントラ予測ユニット126は、CUのPUに対してイントラ予測を行い得る。イントラ予測は空間的な圧縮を実現し得る。イントラ予測ユニット126がPUに対してイントラ予測を行うとき、イントラ予測ユニット126は、同じピクチャ中の他のPUの復号サンプルに基づいて、PUの予測データを生成し得る。PUの予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測ユニット126は、Iスライス、Pスライス、およびBスライス中のPUに対してイントラ予測を行い得る。
[0099] PUに対してイントラ予測を行うために、イントラ予測ユニット126は、複数のイントラ予測モードを使用して、PUの予測データの複数のセットを生成し得る。イントラ予測ユニット126が、イントラ予測モードを使用してPUの予測データのセットを生成するとき、イントラ予測ユニット126は、イントラ予測モードに関連付けられた方向および/または勾配で、隣接PUのビデオブロックからPUのビデオブロックにわたって、サンプルを延ばし得る。隣接PUは、PU、CU、およびツリーブロックについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測ユニット126は、PUのサイズに応じて、様々な数のイントラ予測モード、例えば、33個の方向性イントラ予測モードを使用し得る。
[00100] 予測ユニット100は、PUについての、動き補償ユニット124によって生成された予測データ、またはPUについての、イントラ予測ユニット126によって生成された予測データの中から、PUの予測データを選択し得る。いくつかの例では、予測ユニット100は、予測データのセットのレート/ひずみメトリックに基づいて、PUの予測データを選択する。
[00101] 予測ユニット100が、イントラ予測ユニット126によって生成された予測データを選択する場合、予測ユニット100は、PUの予測データを生成するために使用されたイントラ予測モード、例えば、選択されたイントラ予測モードをシグナリングし得る。予測ユニット100は、選択されたイントラ予測モードを様々な方法でシグナリングし得る。例えば、選択されたイントラ予測モードは、隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは現在PUに対して最尤モード(most probable mode)であり得る。従って、予測ユニット100は、選択されたイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示すための、シンタックス要素を生成し得る。
[00102] 予測ユニット100がCUのPUの予測データを選択した後、残差生成ユニット102は、CUのビデオブロックからCUのPUの予測ビデオブロックを差し引くことによって、CUの残差データを生成し得る。CUの残差データは、CUのビデオブロック中のサンプルの異なるサンプル成分に対応する、2D残差ビデオブロックを含み得る。例えば、残差データは、CUのPUの予測ビデオブロック中のサンプルのルミナンス成分と、CUの元のビデオブロック中のサンプルのルミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。さらに、CUの残差データは、CUのPUの予測ビデオブロック中のサンプルのクロミナンス成分と、CUの元のビデオブロック中のサンプルのクロミナンス成分との間の差分に対応する、残差ビデオブロックを含み得る。
[00103] 予測ユニット100は、4分木区分を行って、CUの残差ビデオブロックをサブブロックに区分し得る。各分割されていない残差ビデオブロックは、CUの異なるTUに関連付けられ得る。CUのTUに関連付けられた残差ビデオブロックのサイズおよび位置は、CUのPUに関連付けられたビデオブロックのサイズおよび位置に基づくことも基づかないこともある。「残差4分木」(RQT:residual quad tree)として知られる4分木構造は、残差ビデオブロックの各々に関連付けられたノードを含み得る。CUのTUはRQTのリーフノードに対応し得る。
[00104] 変換ユニット104は、TUに関連付けられた残差ビデオブロックに1つまたは複数の変換を適用することによって、CUの各TUのための1つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の2D行列であり得る。変換ユニット104は、TUに関連付けられた残差ビデオブロックに様々な変換を適用し得る。例えば、変換ユニット104は、離散コサイン変換(DCT)、方向性変換、または概念的に同様の変換を、TUに関連付けられた残差ビデオブロックに適用し得る。
[00105] 変換ユニット104が、TUに関連付けられた変換係数ブロックを生成した後、量子化ユニット106は、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット106は、CUに関連付けられたQP値に基づいて、CUのTUに関連付けられた変換係数ブロックを量子化し得る。
[00106] ビデオエンコーダ20は、様々な方法でQP値をCUに関連付け得る。例えば、ビデオエンコーダ20は、CUに関連付けられたツリーブロックに対して、レートひずみ分析を行い得る。レートひずみ分析では、ビデオエンコーダ20は、ツリーブロックに対して符号化演算を複数回行うことによって、ツリーブロックの複数のコード化表現を生成し得る。ビデオエンコーダ20がツリーブロックの異なる符号化表現を生成するとき、ビデオエンコーダ20は、異なるQP値をCUに関連付け得る。ビデオエンコーダ20は、最小のビットレートおよびひずみメトリックを有するツリーブロックのコード化表現で所与のQP値がCUに関連付けられるとき、所与のQP値がCUに関連付けられることをシグナリングし得る。
[00107] 逆量子化ユニット108および逆変換ユニット110は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを再構成し得る。再構成ユニット112は、再構成された残差ビデオブロックを、予測ユニット100によって生成された1つまたは複数の予測ビデオブロックからの対応するサンプルに追加して、TUに関連付けられた再構成されたビデオブロックを生成し得る。このようにCUの各TUのためのビデオブロックを再構成することによって、ビデオエンコーダ20は、CUのビデオブロックを再構成し得る。
[00108] 再構成ユニット112がCUのビデオブロックを再構成した後、フィルタユニット113は、CUに関連付けられたビデオブロックにおけるブロッキングアーティファクトを低減するためにデブロッキング演算を行い得る。1つまたは複数のデブロッキング演算を行った後、フィルタユニット113は、復号ピクチャバッファ114にCUの再構成されたビデオブロックを記憶し得る。動き推定ユニット122および動き補償ユニット124は、再構成されたビデオブロックを含んでいる参照ピクチャを使用して、後続ピクチャのPUに対してインター予測を行い得る。さらに、イントラ予測ユニット126は、復号ピクチャバッファ114中の再構成されたビデオブロックを使用して、CUと同じピクチャの中の他のPUに対してイントラ予測を行い得る。
[00109] エントロピー符号化ユニット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は、エントロピー符号化されたデータを含むビットストリームを出力し得る。
[00110] データに対してエントロピー符号化演算を行うことの一部として、エントロピー符号化ユニット116は、コンテキストモデルを選択し得る。エントロピー符号化ユニット116がCABAC演算を行っている場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。CABACのコンテキストでは、「ビン」という用語は、シンタックス要素の2値化されたバージョンのビットを指すために使用される。
ビデオデコーダ
[00111] 図3は、本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図である。ビデオデコーダ30は、本開示の技法のいずれかまたは全てを行うように構成され得る。一例として、動き補償ユニット162および/またはイントラ予測ユニット164は、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。いくつかの例では、追加としてまたは代わりに、プロセッサ(図示せず)が、本開示で説明する技法のいずれかまたは全てを行うように構成され得る。
[00112] 図3の例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号ユニット150と、予測ユニット152と、逆量子化ユニット154と、逆変換ユニット156と、再構成ユニット158と、フィルタユニット159と、復号ピクチャバッファ160とを含む。予測ユニット152は、動き補償ユニット162と、イントラ予測ユニット164とを含む。いくつかの例では、ビデオデコーダ30は、図2のビデオエンコーダ20に関して説明された符号化経路とは全般に逆の復号経路を行い得る。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[00113] ビデオデコーダ30は、符号化ビデオデータを備えるビットストリームを受信し得る。ビットストリームは複数のシンタックス要素を含み得る。ビデオデコーダ30がビットストリームを受信したとき、エントロピー復号ユニット150は、ビットストリームに対してパース演算を行い得る。ビットストリームに対してパース演算を行った結果として、エントロピー復号ユニット150は、ビットストリームからシンタックス要素を抽出し得る。パース演算を行うことの一部として、エントロピー復号ユニット150は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。予測ユニット152、逆量子化ユニット154、逆変換ユニット156、再構成ユニット158、およびフィルタユニット159は、ビットストリームから抽出されたシンタックス要素に基づいて、復号ビデオデータを生成する再構成演算を行い得る。
[00114] 上記で説明したように、ビットストリームは、一連のNALユニットを備え得る。ビットストリームのNALユニットは、シーケンスパラメータセットNALユニット、ピクチャパラメータセットNALユニット、SEI NALユニットなどを含み得る。ビットストリームに対してパース演算を行うことの一部として、エントロピー復号ユニット150は、シーケンスパラメータセットNALユニットからのシーケンスパラメータセット、ピクチャパラメータセットNALユニットからのピクチャパラメータセット、SEI NALユニットからのSEIデータなどを抽出しエントロピー復号する、パース演算を行い得る。
[00115] さらに、ビットストリームのNALユニットはコード化スライスNALユニットを含み得る。ビットストリームに対してパース演算を行うことの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからコード化スライスを抽出しエントロピー復号する、パース演算を行い得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたピクチャパラメータセットを識別するシンタックス要素を含み得る。エントロピー復号ユニット150は、コード化されたスライスヘッダ中のシンタックス要素に対して、CABAC復号演算などのエントロピー復号演算を行って、スライスヘッダを再構成し得る。
[00116] コード化スライスのNALユニットからスライスデータを抽出することの一部として、エントロピー復号ユニット150は、スライスデータ中のコード化CUからシンタックス要素を抽出するパース演算を行い得る。抽出されたシンタックス要素は、変換係数ブロックに関連付けられたシンタックス要素を含み得る。エントロピー復号ユニット150は、次いで、シンタックス要素のうちのいくつかに対してCABAC復号演算を行い得る。
[00117] エントロピー復号ユニット150が区分されていないCUに対してパース演算を行った後、ビデオデコーダ30は、区分されていないCUに対して再構成演算を行い得る。区分されていないCUに対して再構成演算を行うために、ビデオデコーダ30はCUの各TUに対して再構成演算を行い得る。CUの各TUについて再構成演算を行うことによって、ビデオデコーダ30は、CUに関連付けられた残差ビデオブロックを再構成し得る。
[00118] TUに対して再構成演算を行うことの一部として、逆量子化ユニット154は、TUに関連付けられた変換係数ブロックを逆量子化(inverse quantize)、例えば、逆量子化(de-quantize)し得る。逆量子化ユニット154は、HEVC用に提案された、またはH.264復号規格によって定義された逆量子化プロセスと同様の方式で、変換係数ブロックを逆量子化し得る。逆量子化ユニット154は、量子化の程度を判断し、同様に、逆量子化ユニット154が適用するべき逆量子化の程度を判断するために、変換係数ブロックのCUのためにビデオエンコーダ20によって計算される量子化パラメータQPを使用し得る。
[00119] 逆量子化ユニット154が変換係数ブロックを逆量子化した後、逆変換ユニット156は、変換係数ブロックに関連付けられたTUのための残差ビデオブロックを生成し得る。逆変換ユニット156は、TUのための残差ビデオブロックを生成するために、変換係数ブロックに逆変換を適用し得る。例えば、逆変換ユニット156は、変換係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、または別の逆変換を適用し得る。いくつかの例では、逆変換ユニット156は、ビデオエンコーダ20からのシグナリングに基づいて、変換係数ブロックに適用すべき逆変換を判断し得る。そのような例では、逆変換ユニット156は、変換係数ブロックに関連付けられたツリーブロックの4分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を判断し得る。他の例では、逆変換ユニット156は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性から逆変換を推論し得る。いくつかの例では、逆変換ユニット156はカスケード逆変換を適用し得る。
[00120] いくつかの例では、動き補償ユニット162は、補間フィルタに基づく補間を行うことによって、PUの予測ビデオブロックを改良し得る。サブサンプル精度をもつ動き補償のために使用されるべき補間フィルタのための識別子が、シンタックス要素中に含まれ得る。動き補償ユニット162は、PUの予測ビデオブロックの生成中にビデオエンコーダ20によって使用された同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルについての補間値を計算し得る。動き補償ユニット162は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ビデオブロックを生成し得る。
[00121] 図8〜図10に関して以下でさらに説明するように、予測ユニット152(例えば、動き補償ユニット162を介して)は、図8〜図10に示されている方法を行うことによって動き補償を行い得る。
[00122] PUが、イントラ予測を使用して符号化される場合、イントラ予測ユニット164は、PUのための予測ビデオブロックを生成するためにイントラ予測を行い得る。例えば、イントラ予測ユニット164は、ビットストリーム中のシンタックス要素に基づいて、PUのためのイントラ予測モードを判断し得る。ビットストリームは、PUのイントラ予測モードを判断するためにイントラ予測ユニット164が使用し得るシンタックス要素を含み得る。
[00123] いくつかの事例では、シンタックス要素は、イントラ予測ユニット164が別のPUのイントラ予測モードを使用して現在PUのイントラ予測モードを判断するべきであることを示し得る。例えば、現在PUのイントラ予測モードは隣接PUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接PUのイントラ予測モードは現在PUに対して最尤モードであり得る。従って、この例では、ビットストリームは、PUのイントラ予測モードが隣接PUのイントラ予測モードと同じであることを示す、小さいシンタックス要素を含み得る。イントラ予測ユニット164は、次いで、イントラ予測モードを使用して、空間的に隣接するPUのビデオブロックに基づいて、PUの予測データ(例えば、予測サンプル)を生成し得る。
[00124] 再構成ユニット158は、適用可能なとき、CUのTUに関連付けられた残差ビデオブロックとCUのPUの予測ビデオブロックとを使用して、例えば、イントラ予測データまたはインター予測データのいずれかを使用して、CUのビデオブロックを再構成し得る。従って、ビデオデコーダ30は、ビットストリーム中のシンタックス要素に基づいて、予測ビデオブロックと残差ビデオブロックとを生成し得、予測ビデオブロックと残差ビデオブロックとに基づいて、ビデオブロックを生成し得る。
[00125] 再構成ユニット158がCUのビデオブロックを再構成した後、フィルタユニット159は、デブロッキング演算を行って、CUに関連付けられたブロッキングアーティファクトを低減し得る。フィルタユニット159がデブロッキング演算を行ってCUに関連付けられたブロッキングアーティファクトを低減した後、ビデオデコーダ30は、復号ピクチャバッファ160にCUのビデオブロックを記憶し得る。復号ピクチャバッファ160は、後続の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。例えば、ビデオデコーダ30は、復号ピクチャバッファ160中のビデオブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を行い得る。
候補リスト構成
[00126] 図4Aは、予測されるべきサブブロック400の一例を示しており、図4Bは、サブブロック400のための候補動きベクトルのリスト410(例えば、マージ候補リスト)を示す概念図である。AMVP候補リストは、図4Bに示されているように同様に導出され得る。サブブロック400の例としては、限定はしないが、最大コーディングユニット(LCU)、コーディングユニット(CU)、予測ユニット(PU)、変換ユニット(TU)、または任意のサブブロックレベルがある。サブブロック400は、より大きいブロックの一部分であり得る(従ってサブブロックと呼ばれる)。例えば、サブブロック400はCUのPUであり得る。この例では、CUは現在ブロックと呼ばれることがあり、PUはサブブロックと呼ばれることがある。現在ブロックは1つまたは複数のサブブロックを含み得る。しかしながら、サブブロック400が可能な最大のブロックであることは可能であり得、そのような場合、サブブロック400は単にブロックと見なされ得る。
[00127] 図4Aでは、LA、L、BL、AおよびRAはサブブロック400の隣接ブロックを指す。これらの隣接ブロックの各々についての動きベクトルは潜在的にマージリスト410のための候補であり得る。例えば、図4Bは空間動きベクトル411〜414を示している。これらの動きベクトルの各々は、図4Aに示されている隣接ブロックLA、L、BL、AおよびRAのうちの1つのための動きベクトルに対応し得る。
[00128] 図4AはブロックTを示している。このブロックTは、それがサブブロック400の隣接ブロックであることを意味すると解釈されるべきでない。そうではなく、このブロックTはサブブロック400の時間的コロケートブロックを指す。時間的コロケートブロックは、現在ブロック(例えば、サブブロック400)を含むピクチャ以外のピクチャ(例えば、同じレイヤまたはビュー中の別のピクチャ、あるいはベースレイヤまたはベースビュー中の別のピクチャ)中に常駐する。時間的コロケートブロックは、前記他のピクチャ中の、サブブロック400がそれのピクチャ中に位置するところと同じ位置に位置し得る。例えば、サブブロック400が第1のピクチャ中に位置する場合、時間的コロケートブロックは第2のピクチャ中に位置する。ブロックTは、時間動きベクトル予測子(TMVP)があることを示し得る。
[00129] いくつかの実施形態では、ブロックTはコロケートブロックを指すことがあり、ただし、そのコロケートブロックは、サブブロック400を含むピクチャ(例えば、第1のピクチャ)とは異なるレイヤ中のピクチャ(例えば、第2のピクチャ)中に位置する。他の実施形態では、ブロックTはコロケートブロックを指すことがあり、ただし、そのコロケートブロックは、サブブロック400を含むピクチャ(例えば、第1のピクチャ)とは異なるビュー中のピクチャ(例えば、第2のピクチャ)中に位置する。
[00130] 図4Bに示されているように、マージリスト410はTMVP415を含み得る。AMVPのためのリストは同様に導出され得る。TMVP415は第2のピクチャ中の時間的コロケートブロックのための動きベクトルである。いくつかの実施形態では、図4Bに示されているリスト410などのリストは、別のレイヤまたは別のビュー中のコロケートブロックのための動きベクトルを含み得る。
[00131] いくつかの事例では、ビデオコーダ(例えば、エンコーダまたはデコーダ)は、ビデオコーダがサブブロック400をコーディング(例えば、符号化または復号)できるように第2のピクチャについてのある情報を決定する必要があり得る。例えば、ビデオコーダが第2のピクチャについてそのような情報を決定すると、ビデオコーダは、第2のピクチャ中にあるコロケートブロックのための動きベクトルがどこを指すかを決定できる。ビデオコーダが、コロケートブロックのための動きベクトルがどこを指すかを決定した後、ビデオコーダは、コロケートブロックの動きベクトルが指すブロックに基づいてサブブロック400をコーディングし得る。従って、ビデオコーダは、異なるレイヤまたはビュー中のそれのコロケートブロックの動き情報を使用してサブブロック400をコーディングし得る。
[00132] 第2のピクチャについて決定されたそのような情報は参照フレーム(例えば、ピクチャ)インデックスであり得る。例えば、サブブロック400はPUであり得る。現在のHEVCテストモデルでは、TMVP候補のための(参照インデックスとも呼ばれる)参照フレームインデックスは、図4A中のロケーションLにおける左ネイバーPUの(1つまたは複数の)参照インデックスから導出される。ロケーションLにおける左ネイバーPUの参照インデックスが利用可能でない場合、例えば、PUが単予測であるか、またはそれがイントラコーディングされる場合、その参照インデックスは0に設定される。
[00133] 現在のHEVCテストモデルでは、潜在的非効率性があり得る。例えば、マージ候補リストがサブブロックレベルごとに生成される必要があり得る。単に説明のためにおよび理解を容易にするために、本技法について、CU中のPUの例を用いて説明する。しかしながら、これらの技法は、LCU、CU、PU、TU、LCUのグループ、CUのグループ、PUのグループ、およびTUのグループ、または任意のサブブロックレベルに適用可能である。
[00134] リストはCU中のPUごとに生成され得、従って、コロケートブロック(例えば、時間ピクチャ中のブロック、異なるビュー中のピクチャ中のブロック、または異なるレイヤ中のピクチャ中のブロック)のための動きベクトルもPUごとに導出され得る。コロケートブロックのための動きベクトルを決定することは、そのような決定が、参照フレーム中に対応するブロック(例えば、コロケートブロック)を配置することと、ピクチャ順序カウント(POC)距離に基づいてブロックの動きベクトル(MV)をスケーリングすることと、参照フレーム(例えば、ピクチャ)インデックスを導出することとを含むので、複雑であり得る。
[00135] いくつかの実施形態では、ビデオコーダ(例えば、エンコーダまたはデコーダ)は、CUごとに1回のみコロケートブロックのための動きベクトル情報を導出し、それをCU中の全てのPUのための共通動きベクトル予測子候補として使用し得る。いくつかの実施形態では、コロケートブロックから1つの動きベクトル候補のみを生成することと、全てのPUについてそれを共有することとが複雑さを潜在的に低減し得る。
[00136] いくつかの実施形態では、空間MV候補ロケーションは、HEVCワーキングドラフト中の現在の定義において指定されたものと同じであり得る。言い換えれば、CU中の各PUは空間MV候補の異なるセットを有し得る。しかしながら、いくつかの実施形態では、単一のコロケート動きベクトル予測子候補がCU中のPUごとに使用され得る。「コロケート動きベクトル予測子」という用語は、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトルを意味する。
[00137] 図5A〜図5Iは、異なるパーティションモードについての候補ロケーションの例を示すブロック図である。図5A〜図5Iは、異なるパーティションモードについての単一のコロケートブロック候補を示し得る。また、図5A〜図5Iには詳細に示されていないが、本技法はAMP(非対称動きパーティション)モードまたは他のブロック区分にも適用され得る。また、これらの例では、本技法は、任意のパーティション構成(例えば、パーティションの任意のサイズおよび任意の数)に適用され得る。例えば、パーティションはパーティションユニットまたは予測ユニットと見なされ得る。
[00138] 例えば、図5A〜図5Iの例では、第2のピクチャ(例えば、サブブロック400を含んでいるピクチャ以外のピクチャ)中の(例えば、図4Aに示された)サブブロック400のコロケートブロックのロケーションは、パーティションモードにかかわらず、同じであり得る。これは、図5A〜図5Iの各々において同じ位置に位置するブロックTによって示されている。また、いくつかの例では、第2のピクチャは、(例えば、図4Aに示された)空間ネイバーLの動きベクトルによって参照される参照ピクチャに基づいて識別され得る。しかしながら、本開示の態様はそのように限定されず、空間ネイバーサブブロックのいずれか1つは、第2のピクチャを識別するために使用され得る。その上、同じく、時間ピクチャ、別のレイヤ(例えば、ベースレイヤ)中のピクチャ、または別のビュー(例えば、ベースビュー)中のピクチャであり得る第2のピクチャの識別情報をシグナリングすることが可能であり得る。
[00139] このようにして、ビデオコーダは第2のピクチャを識別し得る。ビデオコーダは、次いで、第1のピクチャ中の現在ブロックとコロケートされた第2のピクチャ内のコロケートブロックを識別し得る。ビデオコーダは、第2のピクチャ内のコロケートブロックの動きベクトルを決定し、その動きベクトルを、第1のピクチャの現在ブロック内のサブブロックの全てのためのコロケート動きベクトル予測子候補として割り当て得る。この場合も、「コロケート動きベクトル予測子」は、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトルを意味する。
[00140] 例えば、図5A〜図5Iは、1つのサブブロック(例えば、図5A中のPU0)、2つのサブブロック(例えば、図5B〜図5E中のPU0およびPU1)、または4つのサブブロック(例えば、図5F〜図5I中のPU0〜PU3)を有する現在ブロック(例えば、CU)を示している。例えば、上記で説明したように、図5A〜図5IのCUは第1のピクチャ中にある。いくつかの実施形態では、ビデオコーダは、図5A〜図5Iに示されているパーティションモードの各々について、第2のピクチャ中のコロケートブロックに基づいてCU全体のためのコロケート動きベクトル予測子を識別し得る。ビデオコーダは、次いで、パーティション(例えば、パーティションのサイズおよび数)にかかわらず、このコロケート動きベクトル予測子をPUの各々に割り当て得る。
[00141] 本開示の一実施形態によれば、図5A〜図5Iでは、パーティションモードにかかわらず、コロケートブロックのロケーションは常に固定であり得る。図5A〜図5Iに示されているロケーションは一例にすぎないことを理解されたい。他の実施形態では、現在CUの近隣にある他のロケーションは、コロケート動きベクトル予測子を決定するためのロケーションとして使用され得る。いくつかの実施形態では、パーティションモードにかかわらず単一コロケートブロックロケーションを有する利点は、全てのパーティションモードが、コロケート動きベクトル予測子(例えば、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトル)を導出するために同じモジュールを共有できることであり得る。
[00142] いくつかの実施形態では、単一コロケートブロックのロケーションは、パーティションモードに基づいて異なり得る。例えば、所与のパーティションモードの場合、CU中の全てのPUの間で共有されるべきコロケート動きベクトル予測子を導出するために、固定ロケーションが使用され得る。しかしながら、異なるパーティションモードの場合、そのパーティションモードを有するCU中の全てのPUの間で共有されるべきコロケート動きベクトル予測子を導出するために、異なる固定ロケーションが使用され得る。
[00143] 例えば、2N×2Nモードの場合、図5Aに示されているコロケートブロックのロケーションが使用され得る。しかしながら、N×2Nモードの場合、図6Aおよび図6Bに示されているように、コロケートブロックの異なるロケーションが使用され得る。図6Aおよび図6Bは、異なるパーティションユニットについての異なるマージ候補ロケーションの例を示すブロック図であり、それはAMVPモードの場合に適用され得る。図6Aおよび図6Bは、N×2NモードのPU0のための単一コロケートブロックロケーションを示し得る。図5A〜図5Iと同様に、図6Aおよび図6Bに示されているコロケートブロックのロケーションは一例にすぎない。現在CUの近隣にある他のロケーションも、このパーティションモードの下でコロケート動きベクトル予測子(例えば、現在ブロックのための動きベクトルを予測するための予測子を形成するコロケートブロックのための動きベクトル)を決定するためのロケーションとして使用され得る。
[00144] 上記で説明したように、いくつかの実施形態では、コロケートブロックのロケーションはパーティションモードに基づき得る。図6C〜図6Eは、パーティションモードに基づく、異なるマージ候補ロケーションの例を示すブロック図であり、それはAMVPモードのために適用され得る。図6C〜図6Eに示されているように、(例えば、時間的コロケートブロックを表す)Tブロックのロケーションは、図6C〜図6Eの様々なパーティションモードの各々について異なる。
[00145] 上記で説明したように、いくつかの実施形態では、コロケートブロックのロケーションはシグナリングされ得る。例えば、ビデオエンコーダはコロケートブロックのロケーションをシグナリングし得、ビデオデコーダはコロケートブロックのロケーションを受信し得る。ロケーションをシグナリングするために、ビデオエンコーダはロケーションを符号化し得、ロケーションを受信するために、ビデオデコーダは符号化信号を復号し得る。このプロセスは、一般に、ビデオコーダがロケーションをコーディングすること(例えば、ビデオエンコーダが信号を符号化すること、およびビデオデコーダが信号を復号すること)と呼ばれ得る。コロケートブロックのロケーションは、CUヘッダ、スライスヘッダ、ピクチャレベル、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、または他のレベルでシグナリングされ得る。
[00146] 本開示の技法はまた、TMVPのための参照インデックスをリセットするための機構を提供し得るが、これらの技法は、コロケートブロックがベースレイヤまたはベースビュー中に位置する例に適用可能であり得る。例えば、現在のHEVCテストモデル(HM)では、参照リストL0と参照リストL1の両方について、現在PUのTMVP参照インデックスは、それの左ネイバーPUの参照インデックスから導出される。いくつかの例では、それの左ネイバーPUの参照インデックスが利用可能でない場合、TMVPのための対応する参照インデックスは0に設定され、他の場合、TMVPのための対応する参照インデックスは、それの左ネイバーPUの参照インデックスに等しく設定される。
[00147] 本開示で説明する例示的な技法では、現在PUのための(例えば、2つのピクチャに関して予測された)双予測TMVPのための参照インデックスを導出するときに、それの左ネイバーPUの1つの参照リスト、例えば、L0のための参照インデックスが利用可能でない場合、TMVPのための対応する参照インデックスは即時に0に設定されない。代わりに、左ネイバーPUの別のリスト、例えば、L1からの参照インデックスを検査することは有益であり得る。そのような参照インデックスが利用可能である場合、ビデオコーダは、その参照インデックス値を、現在リスト、例えば、L0のためのTMVP参照インデックスに割り当て得る。
[00148] 1つの可能な実装形態は次のようであり得る。
1.左PUから参照インデックスrefIdx0およびrefIdx1を導出する。
2.refIdx0が利用可能でないが、refIdx1が利用可能である場合、refIdx0=refIdx1に設定し、他の場合、refIdx0=0に設定する。
3.refIdx1が利用可能でないが、refIdx0が利用可能である場合、refIdx1=refIdx0に設定し、他の場合、refIdx1=0に設定する。
[00149] 上記の例では、左ネイバーPUはTMVP参照インデックス導出のために使用される。しかしながら、左ネイバーPU以外の異なる空間または時間ロケーションがTMVP参照インデックス導出のために使用される場合、本開示の技法はそのような場合にも適用可能である。
並列動き推定(PME)
[00150] 現在のHEVCでは、2つの動きベクトル候補リスト構成プロセスがあり、1つは通常プロセスであり、もう1つは並列動き推定(PME)スタイルプロセスである。通常候補リスト構成プロセスの場合、候補リスト構成から、利用不可能な動きベクトル(MV)候補がスキップされる。例えば、対応するブロックが動き情報を有しない(例えば、イントラコーディングされた)か、あるいはまだコーディングされていないか、あるいは動き情報が(プルーニングアウトされたMV候補としても知られる)リスト中にすでに挿入されたMV候補と同様であるかまたはそれに等しい場合、MV候補は利用不可能であり得る。
[00151] PMEスタイルの候補リスト構成プロセスは並列動き推定のために使用される。例えば、並列動き推定(PME)は、PMEエリアのサイズをシグナリングすることによって使用可能であり得、PMEエリアのサイズが0でない、例えば、サイズが4×4よりも大きい場合、PMEスタイルマージまたはAMVP候補リスト構成は、図7上に示されているようPME領域700の内部に位置するブロックのために適用される。
[00152] PMEスタイル候補リスト構成と通常候補リスト構成との間の差は、PME領域(例えば、図7に示されているPME領域700)の完全に内側に位置する空間候補が候補として使用され得ないということである。PME領域の外側にある空間候補のみが使用され得る。例えば、図7のPME領域700の境界に位置するブロック(例えば、図7中のCU「A」および「B」)は、図7中のPME領域700の外側に位置する空間ブロックAL、L、AおよびARによって示されているように、PME領域700の外側にある空間候補を有し得る。PME領域700の境界を共有しないブロック(例えば、CU「C」)は、時間動きベクトル予測子(TMVP)候補のみを有することができる。全ての空間および時間候補が追加された後に候補リストが依然として完了していない(例えば、リストが空であるか、または所定の数よりも少ない候補を含んでいる)場合、候補リストに人工MV候補(例えば、0,0ベクトル)が追加され得る。
[00153] PMEスタイル候補リスト構成がPME領域内の候補リスト依存性をなくすので、動き推定は特定のPME領域のために並列に行われ得る。
[00154] 例えば、MER(動き推定領域、例えば、図7に示されている領域700)が使用可能である、8×8CUなどの特定のブロックサイズの場合、単一候補リスト構成が適用され得る(例えば、CUまたはCUのグループ中の全てのPUについて1回のみ、空間候補が生成される)。すなわち、任意の影響を受けるCUの場合、PUのための空間候補はCU内の全てのPUについて1回のみ導出され、TMVPのみが各PUについて導出される。例えば、CUが8×8であり、それが2N×Nパーティションを用いてコーディングされる場合、PU1およびPU2のための空間候補は、それが8×8 2N×2NのCUの場合であるとき1回導出され、TMVPのみが各PUについて導出される。
ベースレイヤ動きベクトル
[00155] HEVC拡張では、ベースレイヤ動きベクトル(BL MV)は、マージモードまたはAMVPモードの場合、候補として使用され得る。しかしながら、BL MVが候補リスト中に含められ、単一候補リスト生成(例えば、CUまたはCUのグループの全てのPUについて1回のみ空間候補が生成される)が、動き推定領域(MER)とともに使用可能であるとき、それらのBL MVを追加する方法は定義される必要がある。
[00156] 本明細書で開示する実施形態は、SVC、MVC、または3DVなどのHEVC拡張に適用可能である。いくつかの実施形態では、ベースレイヤ/ビューからの動きフィールドは、空間および時間候補に加えて、エンハンスメントレイヤ/ビューをコーディング(例えば、符号化または復号)するために使用され得る。SVC事例の場合、ベースレイヤ動きフィールドは、空間アスペクト比に従ってスケーリングされ得、ベースレイヤとエンハンスメントレイヤとが異なる解像度を有する場合にそのスケーリングが適用されると仮定して、実施形態について説明する。3DVおよびMVC事例の場合、ベースビューディスパリティ動きベクトルは、SVC拡張のそれと同様の様式で適用され得る。
[00157] 説明の目的で、SVC拡張のための実施形態について説明する。しかしながら、他の実施形態は3DV、MVCまたは他の拡張を含み、ただし、現在ピクチャコーディングのために、追加の非空間および非時間動きフィールドが利用可能であり、本明細書で説明する技法は、同様の方法でそのような実施形態に適用され得る。
[00158] 一実施形態では、単一候補リスト構成が使用可能であるときにBL MVを生成および追加する振舞いを定義することを含む、コーディングシステムおよび方法が開示される。単一候補リスト構成はMER(動き推定領域、例えば、図7の領域700)なしに使用可能であり得ることを諒解されたい。しかしながら、現在のHEVCでは、単一リスト構成はMERと併せてのみ使用可能である。
[00159] 図8は、本開示の一実施形態による、ビデオ情報をコーディングするための方法800を示すフローチャートである。図8に示されている方法800は、エンコーダ(例えば、図2に示されたビデオエンコーダ20)、デコーダ(例えば、図3に示されたビデオデコーダ30)、または他の構成要素によって行われ得る。便宜上、方法800については、エンコーダ、デコーダまたは別の構成要素であり得るコーダによって行われるものとして説明する。
[00160] 方法800はブロック805において開始する。ブロック810において、コーダは、ベースレイヤ動きベクトル候補を生成するための振舞いを決定する。振舞いは、ベースレイヤ動きベクトル候補がどのように生成され、候補リストに追加されるべきかを指定し得る。例えば、そのような振舞いは予測ユニット(PU)ごとに指定され得る。いくつかの実施形態では、2つ以上のBL MVが追加され得る。ブロック815において、コーダは、コーダによって決定された振舞いに従って特定のコーディングユニット(CU)中の現在PUのためのベースレイヤ動きベクトル候補を生成する。例えば、振舞いは、BL MV候補が、PUごとに、または特定のCUについてただ1回生成されるべきであることを指定し得る。ブロック820において、生成されたBL MV候補を候補リストに追加する。方法800はブロック825において終了する。
[00161] 上記で手短に説明したように、単一候補リスト生成の場合、(1つまたは複数の)BL MVが、いくつかの異なる方法で生成され、候補リストに追加され得る。一実施形態では、1つまたは複数のBL MV候補はPUごとに生成され、空間候補は特定のCU(例えば、8×8)について1回のみ生成され、TMVPは、同じく各PUについて導出される。別の実施形態では、1つまたは複数のBL MV候補と空間候補とは特定のCU(例えば、8×8)について1回のみ生成され、TMVPは、同じく各PUについて導出される。また別の実施形態では、1つまたは複数のBL MV候補と空間候補とTMVPとは、特定のCU(例えば、8×8)について1回のみ生成される。従って、本開示の実施形態によれば、単一候補リスト構成の場合にBL MV候補が決定され、候補リストに追加されるとき、BL MV候補を扱うための方法が定義される。一実施形態では、BL MV候補は、空間候補、時間候補または他の候補として扱われ得る。
[00162] しかしながら、いくつかの実施形態では、全ての候補が候補リスト中に存在するとは限らない。例えば、対応するブロック(およびその隣接ブロック)がイントラコーディングされるので、空間候補および/またはTMVPは利用不可能であり得る。従って、上記で説明した候補の生成および導出は動き情報の利用可能性に左右される。
ベースレイヤ動きベクトルの他の使用
例1:利用不可能な動きベクトル候補の場合、動き情報は、ベースレイヤからの対応するブロックから導出される。
[00163] 例えば、PME領域の内側のブロックの場合、空間候補は利用可能でない。通常マージモードの場合、候補は、ネイバーブロックがイントラコーディングされる場合、利用可能でないことがある。
[00164] そのような利用不可能な空間候補ではなく、ベースレイヤ候補は、エンハンスメントレイヤ中の空間ネイバーブロックのロケーションに対応するベースレイヤコロケートブロックから導出され得る。例えば、左空間候補ではなく、ベースレイヤ中に位置するコロケートブロックの左候補が使用され得る。
[00165] 例えば、マージリスト構成のシングルレイヤプロセスと同じプロセスが呼び出され得るが、単にエンハンスメントレイヤ中の現在ブロックの空間ネイバー候補を使用するのではなく、コロケートブロックの空間ネイバー候補が使用され得る。
[00166] 代替的に、ベースレイヤから動き情報を導出するために、空間ネイバーのコロケートブロック以外のロケーションが使用され得る。概して、ベースレイヤ動き情報生成のために、コロケートブロックの内側または外側の任意のサブブロックが使用され得る。例えば、コロケートブロックの任意の中心サブブロックまたは任意のコーナーサブブロックが使用され得る。別の例では、TMVP生成と同様に、コロケートブロックの外側の右下サブブロックが使用され得る。
[00167] 利用不可能なマージ候補とベースレイヤ動き候補との交換は、通常候補リスト構成のみ、またはPMEスタイル候補リスト構成のみのいずれかのために行われるか、あるいはその両方の場合のために行われ得る。
例2:TMVPはベースレイヤ動きベクトルと交換される
[00168] 空間候補交換に加えて(または代替的に)、利用不可能なTMVP候補がベースレイヤ動きベクトル候補と交換され得る。同様に、任意のサブブロックが使用され得るが、単に統一の目的のために、コロケートブロックの外側の右下サブブロックがTMVP交換のために使用され得る。
[00169] 利用不可能なTMVP候補とベースレイヤ動き候補との交換は、通常候補リスト構成のみ、またはPMEスタイル候補リスト構成のみのいずれかのために行われるか、あるいはその両方の場合のために行われ得る。
[00170] 代替的に、TMVPは、現在TMVPがPMEスタイルマージのためにのみ利用可能である場合でも、ベースレイヤ候補(例えば、上記の例において述べた右下)と交換され得る。別の実施形態では、このTMVP交換は、PME領域のためにのみ行われ、例えば、境界共有のない、領域の完全に内側に位置するブロックのために行われる。これらのブロックの場合、通常空間候補が候補リスト構成に関与しないので、TMVPも交換された場合、ベースレイヤ中のコロケートブロックを使用して完全な候補リスト構成が行われ得る。
例3:動きベクトル候補を補足すること
[00171] Bスライスの場合、動きベクトル候補が単方向である場合、ベースレイヤから別の方向が導出され得る。導出目的のために、任意のサブブロックが使用され得るが、統一目的のために、対応するコロケートブロックが使用され得る。
[00172] 例えば、現在ブロックの空間左候補は、参照リストL0からの単方向MVのみを有し得る。次いで、コロケートベースレイヤブロックの空間左候補からの参照リストL1のための動きベクトルが導出され、現在動きベクトル候補を補足し、それを双方向にし得る。双方向動き補償は単方向動き補償よりも優れていることがよく知られているので、それは性能を改善し得る。
[00173] TMVP事例の場合、MV導出のために、ベースレイヤ中のコロケートブロックの右下サブブロックが使用され得る。
[00174] 動きベクトル候補を補足することは、通常候補リスト構成のみ、またはPMEスタイル候補リスト構成のみのいずれかのために行われるか、あるいはその両方の場合のために行われ得る。
[00175] 図9は、ビデオ情報をコーディングするための方法900を示すフローチャートである。図9に示されているステップは、エンコーダ(例えば、図2に示されたビデオエンコーダ20)、デコーダ(例えば、図3に示されたビデオデコーダ30)、または他の構成要素によって行われ得る。便宜上、ステップについては、エンコーダ、デコーダまたは別の構成要素であり得るコーダによって行われるものとして説明する。
[00176] 方法900はブロック905において開始する。ブロック910において、コーダは、ベースレイヤ動きベクトル候補が導出されるべきかどうかを決定する。例えば、上記で説明したように、そのような決定は、(例えば、PME領域のために、または隣接ブロックがイントラコーディングされるので)隣接ブロックの動き情報が利用不可能であるかどうかに基づいて行われ得る。別の例では、決定は、TMVPがベースレイヤ動きベクトル候補と交換されるべきであるとき、PME領域内の現在ブロックのロケーション(例えば、そのブロックが、任意の境界をPMEの境界と共有するようにPME領域の完全に内側にあるかどうか)に基づいて行われ得る。ベースレイヤ動きベクトル候補が導出されるべきでないと決定された場合、方法900はブロック925において終了する。ベースレイヤ動きベクトル候補が導出されるべきであると決定された場合、コーダは、図9のブロック915に示されているように、対応するベースレイヤブロックからベースレイヤ動きベクトル候補を導出する。例えば、対応するブロックは、ベースレイヤ中のコロケートブロック、またはベースレイヤ中のコロケートブロックの隣接ブロックであり得る。ブロック920において、コーダは、ベースレイヤ動きベクトル候補を、エンハンスメントレイヤ(または従属ビュー)中のブロックをコーディングするために使用されるべき候補リストに追加する。方法900はブロック925において終了する。
ブロックのグループのためのベースレイヤ情報を導出すること
[00177] 本開示で説明するように、SVCにおけるベースレイヤまたは3DV/MVCにおけるベースビューからのシンタックス情報は、(SVCの場合)エンハンスメントレイヤのコーディングのために使用されるか、または(3DV/MVCの場合)別のビューをコーディングするために使用され得る。例えば、ベースレイヤまたはベースビューからの動きベクトルおよび参照インデックスなどの動き情報は、マージ/AMVPモードで動きベクトル候補として使用され得る。別の例では、ベースレイヤまたはベースビューからのイントラモードは、エンハンスメントレイヤまたは別のビューコーディング(例えば、従属ビュー)中の最尤モードまたはイントラモード予測子として使用され得る。
[00178] 例えば、このベースレイヤまたはベースビュー情報はコロケートまたは対応するブロックから導出され、従って、小さいがあらゆるブロックは、不必要に複雑であり得るこの導出を必要とする。ベースレイヤ/ビュー情報がアクセスされなければならないので、さらなる複雑さがベースレイヤ/ビューシンタックスを使用することに関連し得る。また、エンハンスメントレイヤまたは従属ビューをコーディングするために1つまたは複数の動きベクトルが使用され得る前に、1つまたは複数の動きベクトルはスケーリングを必要とし得る。
[00179] 本開示で説明する技法は、ベースレイヤ/ビューシンタックス情報を使用することから生じるさらなる複雑さに対処し得る。例えば、以下は、上述の問題に対処し得る例示的な技法(例えば、エンハンスメントレイヤまたは従属ビュー中のブロックを予測するためにベースレイヤ/ビュー情報を使用することに関係する複雑さに対処する技法)である。
[00180] 一実施形態では、ベースレイヤ/ビュー情報は、エンハンスメントレイヤまたは拡張ビュー(例えば、従属ビュー)中のブロックまたはブロックのグループごとに1回導出され得る。いくつかの実施形態では、エンハンスメントレイヤ/ビュー(例えば、エンハンスメントレイヤまたは従属ビュー)中のブロック区分は、(HEVCにおける2N×2N、N×2N、2N×N、N×N、またはAMPのような)区分モードによってシグナリングされ得るか、またはベースレイヤ/ビューパーティションから導出され得る。
[00181] 一実施形態では、ベースレイヤ/ビューシンタックス導出がいくつかのブロックサイズについて制限され得る。拡張レイヤ/ビュー中のブロックまたはブロックのグループについて1回ベースレイヤ/ビューから動き情報を導出する技法と、いくつかのブロックサイズについてベースレイヤ/ビューシンタックス導出を制限する技法とは、別個にまたは一緒に実装され得ることを理解されたい。言い換えれば、上記の例示的な技法は相互排他的でなく、上記2つの例示的な技法のうちのいずれか一方を別個に実装するか、または本技法を組合せで実装することが可能であり得る。
[00182] 従って、上記で説明したように、動き情報またはイントラモードなどの情報はベースレイヤから導出され、エンハンスメントレイヤ中の現在ブロック(例えば、予測ユニット)をコーディングするために使用され得る。いくつかの実施形態では、そのような導出は、予測ユニット(PU)ごとにではなく、コーディングユニット(CU)ごとに1回行われ得る。代替的に、ベースレイヤ/ビューシンタックス情報は、CUのグループまたは最大コーディングユニット(LCU)のグループごとに1回導出され得る。
[00183] ベースレイヤ/ビューシンタックス導出領域のサイズは、少なくともヘッダ(例えば、SPS、PPS、スライス)のうちの1つ中の高レベルフラグとしてシグナリングされ得る。また、ベースレイヤ/ビュー情報がブロックのグループごとに1回導出されるべきかどうかは、同じく少なくともヘッダ上の中の別の高レベルフラグを用いてシグナリングされるか、またはLCU/CUなどのブロックレベルにおいてシグナリングされ得る。例えば、ベースレイヤ/ビュー情報を共有することになるブロックのグループを示す情報が、ヘッダ中でおよび/またはブロックレベルにおいてシグナリングされ得る。
[00184] エンハンスメントレイヤまたは別のビュー(例えば、拡張ビューと呼ばれることがある従属ビュー)中のブロックのグループのために使用されるベースレイヤ/ビューシンタックスは、ベースレイヤ/ビュー中のコロケートされたまたは対応する領域の任意のサブブロックから導出され得る。例えば、ベースレイヤ/ビュー中のコロケートされたまたは対応する領域は、エンハンスメントレイヤ/従属ビュー中のブロックのグループによって包含される領域の中心またはコーナーであり得る。代替または追加として、ベースレイヤ/ビューシンタックスは、コロケートされたまたは対応する領域の外側に導出され得る。
[00185] 例えば、ベースレイヤ動き情報は、コロケートCUの外側の右下サブブロックから導出されるか、あるいは代替または追加として、CUごとに1回コロケートCUの中心サブブロックから導出され、エンハンスメントレイヤ中のCUのPUごとに使用され得る。従属ビューのためのベースビュー動き情報を導出するために、同様の方法が適用され得る。イントラモードまたは他のシンタックス情報を導出するために、同様の方法が適用され得る。
[00186] 例えば、現在エンハンスメントレイヤコーディングのために2つ以上のベースレイヤシンタックス要素が使用された場合、複雑さのより大きい低減が達成され得、同様の低減は、現在従属ビューコーディングのために使用されるベースビューシンタックス要素のために達成され得る。例えば、いくつかの他の技法(例えば、必ずしも本開示で説明する技法に従うとは限らない技法)では、複数のベースレイヤ/ビュー動き情報は、エンハンスメントレイヤまたは従属ビュー中のPUについてマージ/AMVPモードで動き候補として使用され得、従って、2つ以上のベースレイヤ/ビュー動きベクトルが導出されなければならず、PUごとにそれを行うことはわずらわしくなり得る。本開示で説明する技法によれば、この複数のベースレイヤ/ビュー動きベクトルは、エンハンスメントレイヤ/従属ビュー中のブロックのグループごとに1回、例えば、PUごとにではなくCUについて(例えば、CU内の各PUではなくCUについて)1回導出され得る。
[00187] 上記で説明したベースレイヤ/ビューシンタックス導出複雑さ低減への追加または代替の実施形態として、ベースレイヤ/ビューシンタックス情報は、あるサイズのブロック(PUまたはCU)についてのみ、例えば、(例えば、所定の、または必要なときに計算される)しきい値よりも大きいサイズについて導出され得る。一実施形態では、現在PUが8×4または4×8よりも大きい場合、ベースレイヤ/ビュー動き情報はそのブロックについて導出され、他の場合、ベースレイヤ/ビュー情報は、コーディングのためのエンハンスメントレイヤブロック/従属ビューブロックのために使用されない。
[00188] 本明細書で説明する1つまたは複数のアイデア(例えば、あるサイズのブロックについてのみベースレイヤ/ビューシンタックスを導出することに基づく技法)は、ブロックのグループのためのベースレイヤ/ビューシンタックス導出のアイデアと組み合わせられ得る。例えば、しきい値を下回るいくつかのブロックの場合、ベースレイヤ/ビューシンタックスはブロックのグループについて導出され、通常のしきい値よりも大きいブロックの場合、ブロックごとまたはPUごとのベースレイヤ/ビューシンタックス導出が適用され得る。代替的に、しきい値よりも小さいブロックの場合、ベースレイヤ/ビュー情報は、そのようなブロックをコーディングするために使用されないことがあり、しきい値よりも大きいブロックの場合、ベースレイヤ/ビュー情報はブロックのグループごとに1回導出され得る(例えば、CUベースの導出)。
[00189] 上記の説明では、動き情報およびイントラモードを一例として使用した。本開示で説明する技法は他のシンタックス要素に適用可能である。また、本技法は、制限なしにSVCおよび3DV/MVC拡張のために適用可能であり得る。
[00190] 図10は、ビデオ情報をコーディングするための方法1000を示すフローチャートである。図10に示されている方法1000は、エンコーダ(例えば、図2に示されたビデオエンコーダ20)、デコーダ(例えば、図3に示されたビデオデコーダ30)、または他の構成要素によって行われ得る。便宜上、方法1000については、エンコーダ、デコーダまたは別の構成要素であり得るコーダによって行われるものとして説明する。
[00191] 方法1000はブロック1005において開始する。ブロック1010において、コーダは、情報がベースレイヤから導出されるべきかどうかを決定する。コーダが、情報がベースレイヤから導出されるべきでないと決定した場合、方法1000はブロック1025において終了する。コーダが、情報がベースレイヤから導出されるべきであると決定した場合、ブロック1015において、コーダは、情報がベースレイヤからどのように導出されるべきかを決定する。ブロック1010および1015は別個に示されているが、ベースレイヤから情報を導出すべきかどうか、およびどのように導出すべきかの決定は、単一の決定に組み合わせられ得る。コーダは、現在コーディングされている特定のPUが所定のしきい値よりも大きい(例えば、8×4または4×8よりも大きい)サイズを有するかどうかに基づいて、そのような決定(または一連の決定)を行い得る。例えば、PUが、しきい値よりも大きいサイズを有すると決定された場合、情報はそのようなPUごとにベースレイヤから導出され得る。一方、PUが、しきい値よりも小さいサイズを有する場合、情報はPUについてベースレイヤから導出されないことがある。別の例では、PUが、しきい値よりも小さいサイズを有する場合、コーダは、ブロックのグループごとに(例えば、特定のPUを含むCUごとに)ベースレイヤから情報を導出し得、他の場合、コーダはPUごとにベースレイヤから情報を導出し得る。また別の例では、PUがしきい値よりも小さいサイズを有する場合、コーダは特定のPUについてベースレイヤから情報を導出しないことがあり、他の場合、コーダは、ブロックのグループごとに(例えば、特定のPUを含むCUごとに1回)ベースレイヤから情報を導出し得る。いくつかの実施形態では、コーダは、情報がサブブロックごとに、ブロックごとに、またはブロックのグループごとにベースレイヤから導出されるべきであると決定するか、あるいはそのサイズにかかわらず各予測サブブロック/ブロックについてベースレイヤからまったく導出されるべきでないと決定し得る。図10の例では、ベースレイヤから情報が導出されているが、方法1000を行うために他のレイヤまたはビューが使用され得る。図10のブロック1020に示されているように、コーダが、情報(例えば、動き情報または予測情報)がベースレイヤからどのように導出されるべきかを決定すると、情報は、そのような決定に従ってベースレイヤから導出される。方法1000はブロック1025において終了する。
BL MVと空間候補との間のプルーニング
[00192] 上述の方法に加えて、いくつかの実施形態では、BL MV候補と空間候補との間のプルーニング(例えば、冗長候補を削除すること)が適用され得る。他の実施形態では、プルーニングは、BL MV候補と空間候補との間で適用されることを妨げられ得る。
他の実施形態
[00193] いくつかの実施形態では、BL MVは、ベースレイヤ中のコロケートブロックの内側または外側の任意の位置から導出され得る。それは、中心ブロックまたは任意のコーナー、現在コロケートブロックの外側の右下ブロックなどであり得る。いくつかの実施形態では、(1つまたは複数の)BL MVは、TMVP後のリスト中の第1の候補として、または候補リスト中の任意の位置に含まれ得る。いくつかの実施形態では、BL MV導出は、ベースレイヤ/ビュー中の対応するコロケートブロックからの動きベクトルまたは参照インデックスの導出を含むことができる。
[00194] 本明細書で開示される情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
[00195] 本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
[00196] 本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明する任意の機能は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装した場合、本技法は、実行されたとき、上記で説明した方法のうちの1つまたは複数を行う命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
[00197] プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価の集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明する技法のいずれかを行うように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明する技法の実装に好適な他の構造または装置のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得、あるいは複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
[00198] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[00199] 本発明の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオ情報をコーディングするように構成された装置であって、前記装置が、
少なくとも1つのベースレイヤ動きベクトル候補を備える候補リストを記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサとを備え、前記プロセッサは、
前記少なくとも1つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット(CU)中の現在予測ユニット(PU)のための前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、前記特定のCUが1つまたは複数のPUを有する、
前記少なくとも1つのベースレイヤ動きベクトル候補を前記候補リストに追加することと
を行うように構成された、装置。
[C2]
前記装置がエンコーダを備え、前記プロセッサが、前記記憶された候補リストを使用してビデオブロックを符号化するようにさらに構成された、C1に記載の装置。
[C3]
前記装置がデコーダを備え、前記プロセッサが、前記記憶された候補リストを使用してビデオブロックを復号するようにさらに構成された、C1に記載の装置。
[C4]
前記装置が、コンピュータと、ノートブックと、ラップトップと、コンピュータと、タブレットコンピュータと、セットトップボックスと、電話ハンドセットと、スマートフォンと、スマートパッドと、テレビジョンと、カメラと、ディスプレイデバイスと、デジタルメディアプレーヤと、ビデオゲームコンソールと、車内コンピュータとのうちの1つまたは複数なるグループから選択されるデバイスを備える、C1に記載の装置。
[C5]
前記候補リストが空間候補と時間動きベクトル予測子(TMVP)とをさらに含む、C1に記載の装置。
[C6]
前記少なくとも1つのベースレイヤ動きベクトル候補が各PUについて生成され、前記空間候補が前記特定のCUについて1回のみ生成され、前記TMVPが各PUについて導出される、C5に記載の装置。
[C7]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記特定のCUについて1回のみ生成され、前記空間候補が前記特定のCUについて1回のみ生成され、前記TMVPが各PUについて導出される、C5に記載の装置。
[C8]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記特定のCUについて1回のみ生成され、前記空間候補が前記特定のCUについて1回のみ生成され、前記TMVPが前記特定のCUについて1回のみ導出される、C5に記載の装置。
[C9]
前記候補リストがマージ候補リストである、C1に記載の装置。
[C10]
前記候補リストが高度動きベクトル予測(AMVP)候補リストである、C1に記載の装置。
[C11]
前記少なくとも1つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが適用される、C5に記載の装置。
[C12]
前記少なくとも1つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが無効にされる、C5に記載の装置。
[C13]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記候補リスト中の第1の候補として追加される、C1に記載の装置。
[C14]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記TMVPの後に追加される、C5に記載の装置。
[C15]
前記少なくとも1つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの内側の位置から導出される、C1に記載の装置。
[C16]
前記少なくとも1つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの外側の位置から導出される、C1に記載の装置。
[C17]
前記少なくとも1つのベースレイヤ動きベクトル候補は、前記現在PUのサイズが所定のしきい値よりも大きい場合のみ生成される、C1に記載の装置。
[C18]
前記現在PUのサイズが所定のしきい値よりも小さいとき、前記少なくとも1つのベースレイヤ動きベクトル候補が前記特定のCUについて1回のみ生成されるか、または前記特定のCUを含むCUのグループについて1回のみ生成される、C1に記載の装置。
[C19]
前記少なくとも1つのベースレイヤ動きベクトル候補は、前記現在PUのための1つまたは複数の空間候補が利用不可能であると決定された場合のみ生成される、C1に記載の装置。
[C20]
前記少なくとも1つのベースレイヤ動きベクトル候補は、(i)前記現在PUのための時間動きベクトル予測子(TMVP)が利用不可能であると決定されたか、または(ii)前記現在PUを含む並列動き推定(PME)領域が指定され、前記現在PUが前記PME領域の完全に内側に位置するときのみ生成される、C1に記載の装置。
[C21]
ビデオ情報を符号化する方法であって、前記方法は、
前記ビデオ情報を符号化するための候補リストを記憶することと、前記候補リストが少なくとも1つのベースレイヤ動きベクトル候補を備える、
前記少なくとも1つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット(CU)中の現在予測ユニット(PU)のための前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、前記特定のCUが1つまたは複数のPUを有する、
前記少なくとも1つのベースレイヤ動きベクトル候補を前記候補リストに追加することと
を備える、方法。
[C22]
前記候補リストに空間候補と時間動きベクトル予測子(TMVP)とを追加することをさらに備える、C21に記載の方法。
[C23]
各PUについて前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、
前記特定のCUについて1回のみ前記空間候補を生成することと、
各PUについて前記TMVPを生成することとをさらに備える、C22に記載の方法。
[C24]
前記特定のCUについて1回のみ前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、
前記特定のCUについて1回のみ前記空間候補を生成することと、
各PUについて前記TMVPを生成することと
をさらに備える、C22に記載の方法。
[C25]
前記特定のCUについて1回のみ前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、
前記特定のCUについて1回のみ前記空間候補を生成することと、
前記特定のCUについて1回のみ前記TMVPを生成することと
をさらに備える、C22に記載の方法。
[C26]
前記候補リストがマージ候補リストである、C21に記載の方法。
[C27]
前記候補リストが高度動きベクトル予測(AMVP)候補リストである、C21に記載の方法。
[C28]
前記少なくとも1つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが適用される、C22に記載の方法。
[C29]
前記少なくとも1つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが無効にされる、C22に記載の方法。
[C30]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記候補リスト中の第1の候補として追加される、C21に記載の方法。
[C31]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記TMVPの後に追加される、C22に記載の方法。
[C32]
前記少なくとも1つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの内側の位置から導出される、C21に記載の方法。
[C33]
前記少なくとも1つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの外側の位置から導出される、C21に記載の方法。
[C34]
前記現在PUのサイズが所定のしきい値よりも大きい場合のみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C21に記載の方法。
[C35]
前記現在PUのサイズが所定のしきい値よりも小さいとき、前記特定のCUについて1回のみ、または前記特定のCUを含むCUのグループについて1回のみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C21に記載の方法。
[C36]
前記現在PUのための1つまたは複数の空間候補が利用不可能であると決定された場合のみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C21に記載の方法。
[C37]
(i)前記現在PUのための時間動きベクトル予測子(TMVP)が利用不可能であると決定されたか、または(ii)前記現在PUを含む並列動き推定(PME)領域が指定され、前記現在PUが前記PME領域の完全に内側に位置するときのみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C21に記載の方法。
[C38]
ビデオ情報を復号する方法であって、前記方法は、
符号化ビデオビットストリームから抽出されたシンタックス要素を受信することと、ここにおいて、前記シンタックス要素が、少なくとも1つのベースレイヤ動きベクトル候補を備える候補リストに関連付けられたビデオ情報を備える、
前記少なくとも1つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット(CU)中の現在予測ユニット(PU)のための前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、前記特定のCUが1つまたは複数のPUを有する、
前記少なくとも1つのベースレイヤ動きベクトル候補を前記候補リストに追加するための手段と
を備える、方法。
[C39]
前記候補リストに空間候補と時間動きベクトル予測子(TMVP)とを追加することをさらに備える、C38に記載の方法。
[C40]
各PUについて前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、
前記特定のCUについて1回のみ前記空間候補を生成することと、
各PUについて前記TMVPを生成することと
をさらに備える、C39に記載の方法。
[C41]
前記特定のCUについて1回のみ前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、
前記特定のCUについて1回のみ前記空間候補を生成することと、
各PUについて前記TMVPを生成することと
をさらに備える、C39に記載の方法。
[C42]
前記特定のCUについて1回のみ前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、
前記特定のCUについて1回のみ前記空間候補を生成することと、
前記特定のCUについて1回のみ前記TMVPを生成することと
をさらに備える、C39に記載の方法。
[C43]
前記候補リストがマージ候補リストである、C38に記載の方法。
[C44]
前記候補リストが高度動きベクトル予測(AMVP)候補リストである、C38に記載の方法。
[C45]
前記少なくとも1つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが適用される、C39に記載の方法。
[C46]
前記少なくとも1つのベースレイヤ動きベクトル候補と前記空間候補との間でプルーニングが無効にされる、C39に記載の方法。
[C47]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記候補リスト中の第1の候補として追加される、C38に記載の方法。
[C48]
前記少なくとも1つのベースレイヤ動きベクトル候補が前記TMVPの後に追加される、C39に記載の方法。
[C49]
前記少なくとも1つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの内側の位置から導出される、C38に記載の方法。
[C50]
前記少なくとも1つのベースレイヤ動きベクトル候補が、ベースレイヤ中のコロケートブロックの外側の位置から導出される、C38に記載の方法。
[C51]
前記現在PUのサイズが所定のしきい値よりも大きい場合のみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C38に記載の方法。
[C52]
前記現在PUのサイズが所定のしきい値よりも小さいとき、前記特定のCUについて1回のみ、または前記特定のCUを含むCUのグループについて1回のみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C38に記載の方法。
[C53]
前記現在PUのための1つまたは複数の空間候補が利用不可能であると決定された場合のみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C38に記載の方法。
[C54]
(i)前記現在PUのための時間動きベクトル予測子(TMVP)が利用不可能であると決定されたか、または(ii)前記現在PUを含む並列動き推定(PME)領域が指定され、前記現在PUが前記PME領域の完全に内側に位置するときのみ、前記少なくとも1つのベースレイヤ動きベクトル候補を生成することをさらに備える、C38に記載の方法。
[C55]
実行されたとき、
少なくとも1つのベースレイヤ動きベクトル候補を備える候補リストを記憶することと、
前記少なくとも1つのベースレイヤ動きベクトル候補を生成するための振舞いを決定することと、
前記決定された振舞いに従って特定のコーディングユニット(CU)中の現在予測ユニット(PU)のための前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、前記特定のCUが1つまたは複数のPUを有する、
前記少なくとも1つのベースレイヤ動きベクトル候補を前記候補リストに追加することとを備えるプロセスを装置に行わせるコードを備える非一時的コンピュータ可読媒体。
[C56]
前記プロセスが、前記候補リストに空間候補と時間動きベクトル予測子(TMVP)とを追加することをさらに備える、C55に記載の媒体。
[C57]
前記プロセスが、
前記特定のCUについてまたは各PUについて1回のみ前記少なくとも1つのベースレイヤ動きベクトル候補を生成することと、
前記特定のCUについて1回のみ前記空間候補を生成することと、
前記特定のCUについてまたは各PUについて1回のみ前記TMVPを生成することとをさらに備える、C56に記載の媒体。
[C58]
ビデオ情報をコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
少なくとも1つのベースレイヤ動きベクトル候補を備える候補リストを記憶するための手段と、
前記少なくとも1つのベースレイヤ動きベクトル候補を生成するための振舞いを決定するための手段と、
前記決定された振舞いに従って特定のコーディングユニット(CU)中の現在予測ユニット(PU)のための前記少なくとも1つのベースレイヤ動きベクトル候補を生成するための手段と、前記特定のCUが1つまたは複数のPUを有する、
前記少なくとも1つのベースレイヤ動きベクトル候補を前記候補リストに追加するための手段と
を備える、ビデオコーディングデバイス。
[C59]
前記候補リストに空間候補と時間動きベクトル予測子(TMVP)とを追加するための手段をさらに備える、C58に記載のデバイス。
[C60]
前記特定のCUについてまたは各PUについて1回のみ前記少なくとも1つのベースレイヤ動きベクトル候補を生成するための手段と、
前記特定のCUについて1回のみ前記空間候補を生成するための手段と、
前記特定のCUについてまたは各PUについて1回のみ前記TMVPを生成するための手段と
をさらに備える、C59に記載のデバイス。