関連出願
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、2013年10月14日に出願された米国仮出願第61/890,843号の利益を主張する。
[0002]本開示は、ビデオコーディングに関する。
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタル直接ブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータもしくはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、セルラー電話機もしくは衛星無線電話機、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイス、および類似物を含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって規定された規格、およびそのような規格の拡張に記載されているビデオコーディング技法などのビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶することができる。
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)は、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれる場合もあるビデオブロックに区分される場合がある。ピクチャのイントラコード化(intra-coded)(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(inter-coded)(PもしくはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用することができる。ピクチャは、フレームと呼ばれる場合があり、参照ピクチャは、参照フレームと呼ばれる場合がある。
[0005]空間予測または時間予測は、コーディングされるべきブロックに関する予測ブロックをもたらす。残差データは、コーディングされるべきオリジナルブロックと予測ブロックとの間のピクセル差を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、次いで量子化され得る残差変換係数が生じ得る。最初に2次元アレイで構成される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
[0006]概して、本開示は、マルチレイヤビデオコーディング(multi-layer video coding)における3次元(3D)ルックアップテーブルベースの色域スケーラビリティ(lookup table based color gamut scalability)について説明する。一例として、マルチレイヤビデオコーディングは、スケーラブルビデオコーディング拡張、マルチビュービデオコーディング拡張および3Dビデオコーディング(すなわち、マルチビュービデオコーディングプラス深度)拡張、または他のマルチレイヤビデオコーディング規格のうちのいずれかを含んでいる、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格に従い得る。色域スケーラビリティに関する技法は、ビデオデータの下位レイヤに関する色域(a color gamut)がそのビデオデータの上位レイヤに関する色域と異なるとき、レイヤ間参照ピクチャを生成するためにビデオエンコーダおよび/またはビデオデコーダによって使用され得る。
[0007]たとえば、ビデオエンコーダおよび/またはビデオデコーダは、まず、下位レイヤに関する参照ピクチャの色データを上位レイヤに関する色域に変換するために、色域スケーラビリティのための3Dルックアップテーブルを使用して、色予測を実行し、次いで、変換された色データに基づいて、レイヤ間参照ピクチャ(inter-layer reference pictures)を生成することができる。本開示で説明する技法によれば、ビデオエンコーダおよび/またはビデオデコーダは、第1のクロマ成分および第2のクロマ成分に関するのとは、ルーマ成分に関して異なるサイズを有する、少なくとも1つの3Dルックアップテーブルを生成する。ビデオエンコーダおよび/またはビデオデコーダは、3Dルックアップテーブルのルーマ次元に関して異なる数のセグメントを使用して、この非対称3Dルックアップテーブル(asymmetric 3D lookup table)を生成することができる。このようにして、良好なコーディング性能を維持しながら、テーブルの総サイズは低減され得る。
[0008]一例では、本開示はマルチレイヤビデオデータを処理する方法を対象とし、本方法は、色域スケーラビリティのための少なくとも1つの3Dルックアップテーブルを生成することと、ここにおいて、少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分の各々に関するのとは、ルーマ成分に関して異なるサイズを有する、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、その少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行することと、その変換された色データに基づいて、そのビデオデータの上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成することとを備える。
[0009]別の例では、本開示はマルチレイヤビデオデータを処理するためのビデオ処理デバイスを対象とし、本デバイスは、マルチレイヤビデオデータを記憶するように構成されたメモリと、そのメモリと通信する1つまたは複数のプロセッサとを備える。この1つまたは複数のプロセッサは、色域スケーラビリティのための少なくとも1つの3Dルックアップテーブルを生成することと、ここにおいて、少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分に関するのとは、ルーマ成分に関して異なるサイズを有する、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、その少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行することと、その変換された色データに基づいて、そのビデオデータの上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成することとを行うように構成される。
[0010]さらなる例では、本開示は、マルチレイヤビデオデータを処理するためのビデオ処理デバイスを対象とし、本デバイスは、色域スケーラビリティのための少なくとも1つの3Dルックアップテーブルを生成するための手段と、ここにおいて、少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分に関するのとは、ルーマ成分に関して異なるサイズを有する、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、その少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行するための手段と、その変換された色データに基づいて、そのビデオデータの上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成するための手段とを備える。
[0011]別の例では、本開示は、実行されるとき、1つまたは複数のプロセッサに、色域スケーラビリティのための少なくとも1つの3Dルックアップテーブルを生成することと、ここにおいて、少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分に関するのとは、ルーマ成分に関して異なるサイズを有する、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、その少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行することと、その変換された色データに基づいて、そのビデオデータの上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成することとを行わせる、マルチレイヤビデオデータを処理するための命令を記憶したコンピュータ可読記憶媒体を対象とする。
[0012]1つまたは複数の例の詳細は、添付の図面および以下の説明において記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
[0013]3Dルックアップテーブルベースの色域スケーラビリティのための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
[0014]3つの異なる次元におけるスケーラビリティの一例を示す概念図。
[0015]スケーラブルビデオコーディングビットストリームのある例示的な構造を示す概念図。
[0016]ビットストリーム順序で、例示的なスケーラブルビデオコーディングアクセスユニットを示す概念図。
[0017]HEVCに対するある例示的なスケーラブルビデオコーディング拡張(SHVC:scalable video coding extension to HEVC)エンコーダを示すブロック図。
[0018]サンプルビデオシーケンスのある例示的な色域を示すグラフ。
[0019]高解像度(HD:high definition)色域BT.709から超高解像度(UHD:ultra-high definition)色域BT.2020への変換を示すブロック図。
[0020]ベースレイヤ色域とエンハンスメントレイヤ色域とが異なるときに、レイヤ間参照ピクチャを生成し得る色予測処理ユニットを含む色域スケーラブルコーダを示すブロック図。
[0021]色域スケーラビリティのためのある例示的な3Dルックアップテーブルを示す概念図。
[0022]色域スケーラビリティのための3Dルックアップテーブルを用いた3線形補間(tri-linear interpolation)を示す概念図。
[0023]マルチレイヤビデオコーディングにおいて3Dルックアップテーブルベースの色域スケーラビリティを使用するための技法を実装し得るビデオエンコーダの一例を示すブロック図。
[0024]マルチレイヤビデオコーディングにおいて3Dルックアップテーブルベースの色域スケーラビリティを使用するための技法を実装し得るビデオデコーダの一例を示すブロック図。
[0025]3Dルックアップテーブルベースの色域スケーラビリティを使用してレイヤ間参照ピクチャを生成するある例示的な動作を示すフローチャート。
詳細な説明
[0026]本開示は、マルチレイヤビデオコーディングにおける3次元(3D)ルックアップテーブルベースの色域スケーラビリティについて説明する。マルチレイヤビデオコーディングは、スケーラブルビデオコーディング拡張、マルチビュービデオコーディング拡張、3Dビデオコーディング(すなわち、マルチビュービデオコーディングプラス深度)拡張、またはHEVCに対する他のマルチレイヤビデオコーディング拡張のうちのいずれかを含んでいる、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格に従い得る。本技法は、ビデオデータの下位レイヤに関する色域がそのビデオデータの上位レイヤに関する色域と異なるとき、レイヤ間参照ピクチャを生成するためにビデオエンコーダおよび/またはビデオデコーダによって使用され得る。
[0027]色域は、たとえば、ビデオデータのピクチャ、スライス、ブロック、またはレイヤ内の画像に関して複写され(reproduced)得る色の完全範囲(a complete range)を備える。従来、マルチレイヤビデオコーディングでは、ビデオデータの下位レイヤ(たとえば、ベースレイヤ)およびビデオデータの上位レイヤ(たとえば、エンハンスメントレイヤ)は、同じ色域内、たとえば高解像度(HD)色域BT.709内の色データを含む。この場合、ビデオエンコーダおよび/またはビデオデコーダは、ビデオデータの下位レイヤに関するコロケートされた参照ピクチャ(co-located reference pictures)のアップサンプリングされた(up-sampled)バージョンとして、そのビデオデータの上位レイヤに関するレイヤ間参照ピクチャを生成することができる。
[0028]しかしながら、いくつかの例では、ビデオデータの下位レイヤは、第1の色域、たとえば、BT.709内の色データを含むことが可能であり、そのビデオデータの上位レイヤは、異なる第2の色域、たとえば、超高解像度(UHD)色域BT.2020内の色データを含むことが可能である。この例では、ビデオデータの上位レイヤに関するレイヤ間参照ピクチャを生成するために、ビデオエンコーダおよび/またはビデオデコーダは、まず、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、色予測を実行しなければならない。
[0029]ビデオエンコーダおよび/またはビデオデコーダは、色域スケーラビリティに関する3Dルックアップテーブルを使用して、色予測を実行することができる。いくつかの例では、色成分の各々、すなわち、ルーマ(Y)成分、第1のクロマ(U)成分、および第2のクロマ(V)成分に関して、別個の3Dルックアップテーブルが生成され得る。3Dルックアップテーブルの各々は、ルーマ(Y)次元と、第1のクロマ(U)次元と、第2のクロマ(V)次元とを含み、3つの独立した色成分(Y、U、V)を使用してインデックス付けされる。
[0030]従来、3Dルックアップテーブルは、3Dルックアップテーブルがルーマ成分、第1のクロマ成分、および第2のクロマ成分に関して同じサイズを有するように、常に対称的である。加えて、従来、3Dルックアップテーブルは、3Dルックアップテーブルの各次元のサイズが常に同じであるように、常に平衡を保たせられる。これは結果として、高い計算複雑性と高いシグナリングコストとを有する、大きいテーブルサイズをもたらす。たとえば、テーブルサイズは、9×9×9または17×17×17までであり得る。
[0031]本開示で説明する技法によれば、ビデオエンコーダおよび/またはビデオデコーダは、第1のクロマ成分および第2のクロマ成分の各々に関するのとは、ルーマ成分に関して異なるサイズを有する、少なくとも1つの3Dルックアップテーブルを生成する。ビデオエンコーダおよび/またはビデオデコーダは、3Dルックアップテーブルのルーマ次元に関して異なる数のセグメントを使用して、この非対称3Dルックアップテーブルを生成することができる。たとえば、ビデオエンコーダおよび/またはビデオデコーダは、第1のクロマ成分および第2のクロマ成分の各々に関するよりも、ルーマ成分に関して大きいサイズの、すなわち、より多いセグメントを有するように、3Dルックアップテーブルを生成することができる。一例では、3Dルックアップテーブルは、8×2×2までのサイズを有し得る。このようにして、第1のクロマ成分および第2のクロマ成分に関するよりもルーマ成分に関して高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの総サイズは低減され得る。
[0032]いくつかの例では、3Dルックアップテーブルの各々は、同じサイズM×N×Kを有し得、この場合、3Dルックアップテーブルのルーマ次元のサイズ(M)は、3Dルックアップテーブルの第1のクロマ次元のサイズ(N)および3Dルックアップテーブルの第2のクロマ次元のサイズ(K)の各々とは異なる。たとえば、ルーマ次元のサイズは、クロマ次元のサイズよりも大きく、M>NおよびM>Kであり得、3Dルックアップテーブルのクロマ次元のサイズは同じで、N=Kであり得る。一例では、3Dルックアップテーブルの各々は8×2×2の同じサイズを有し得る。
[0033]他の例では、ルーマ成分3Dルックアップテーブル(LUTY)は、第1のクロマ成分3Dルックアップテーブル(LUTU)の第2のサイズ、たとえば、N×N×N、および第2のクロマ成分3Dルックアップテーブル(LUTV)の第3のサイズ、たとえば、K×K×Kとは異なる第1のサイズ、たとえば、M×M×MまたはM×N×Kを有し得る。たとえば、ルーマ成分3Dルックアップテーブルのサイズは、クロマ成分3Dルックアップテーブルのサイズよりも大きくてよい。第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルは、同じサイズであってよく、または異なるサイズであってもよい。一例では、LUTYは、サイズ8×2×2を有し得、LUTUおよびLUTVの各々はサイズ2×2×2を有し得る。
[0034]さらなる例では、ルーマ成分3Dルックアップテーブルの精度は、第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルの各々の精度と異なってもよい。たとえば、ルーマ成分3Dルックアップテーブルの精度は、クロマ成分3Dルックアップテーブルの精度より高くてよい。場合によっては、複雑さをさらに低減させるために、ビデオエンコーダおよび/またはビデオデコーダは、ルーマ成分3Dルックアップテーブルを単に生成し、そのルーマ成分3Dルックアップテーブルを使用してルーマ成分予測を実行し、1次元(1D)線形マッピング、または区分線形マッピング(piecewise linear mapping)を使用して、第1のクロマ成分予測および第2のクロマ成分予測を実行することができる。
[0035]別の例では、本開示の本技法によれば、ビデオエンコーダおよび/またはビデオデコーダは、3Dルックアップテーブルに関するテーブルインデックスとして使用される色成分に関連付けられた3Dルックアップテーブルの次元に関してより多くのセグメントを使用して、不平衡3Dルックアップテーブル(an unbalanced 3D lookup table)を生成することができる。たとえば、ルーマ成分3Dルックアップテーブルは、ルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されているルーマ成分に基づいて、第1のクロマ次元および第2のクロマ次元の各々よりも大きいルーマ次元を有し得る。この例では、LUTYはサイズM×N×Nを有し得、ここで、M>Nである。第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルのサイズは同様に決定され得る。たとえば、LUTUは、テーブルインデックスにおいて使用されている第1のクロマ成分に基づいて、サイズN×M×Nを有し得、LUTVは、テーブルインデックスにおいて使用されている第2のクロマ成分に基づいて、サイズN×N×Mを有し得る。このようにして、テーブルインデックスとして使用される色成分に関して、より高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの各々の総サイズは低減され得る。
[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:Scalable Video Coding)およびマルチビュービデオコーディング(MVC:Multi-view Video Coding)拡張を含む(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 Working Draft 10(WD10)」と呼ばれるHEVCドラフト仕様書、Brossら、「High efficiency video coding(HEVC)text specification draft 10(FDIS & Last Callに関する)」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのビデオコーディングに関する共同研究部会(JCT−VC)、第12回会合:ジュネーブ、スイス、2013年1月14日〜23日、JCTVC−L1003v34は、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipから利用可能である。確定したHEVC規格は、HEVCバージョン1と呼ばれる。
[0038]不具合報告(defect report)、Wangら、「High Efficiency video coding(HEVC)Defect Report」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのビデオコーディングに関する共同研究部会(JCT−VC)、第14回会合:ウィーン、オーストリア、2013年7月25日〜8月2日、JCTVC−N1003v1は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1003−v1.zipから利用可能である。確定した規格文書は、ITU−T H.265、Series H:Audiovisual and Multimedia Systems、Infrastructure of audiovisual services−Coding of moving video、High efficiency video coding、国際電気通信連合(ITU:International Telecommunication Union)の電気通信標準化部門、2013年4月として公開されている。
[0039]HEVCに対するマルチビュー拡張(MV−HEVC:multi-view extension to HEVC)およびより高度な3Dビデオコーディングに関する別のHEVC拡張(3D−HEVC:HEVC extension for more advanced 3D video coding)がJCT−3Vによって開発されている。MV−HEVC Working Draft 5(WD5)と呼ばれる、MV−HEVCのドラフト仕様書、Techら、「MV−HEVC Draft Text 5」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11との3Dビデオコーディング拡張開発に関する共同研究部会(JCT−3V:Joint Collaborative Team on 3D Video Coding Extension Development)、第5回会合、ウィーン、オーストリア、2013年7月27日〜8月2日、JCT3V−E1004v6は、http://phenix.int−evry.fr/jct/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1004−v6.zipから入手可能である。3D−HEVC Working Draft 1(WD1)と呼ばれ、Techら、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11の3Dビデオコーディング拡張開発に関する共同研究部会(JCT−3V)、第5回会議、ウィーン、オーストリア、2013年7月27日〜8月2日、JCT3V−E1001v3に記載されている3D−HEVCのドラフト仕様書は、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V−E1001−v3.zipから利用可能である。
[0040]HEVCに対するスケーラブル拡張(SHVC)は、JCT−VCによって開発されている。SHVC Working Draft 3(WD3)と呼ばれるSHVCのドラフト仕様書は、Chenら、「SHEVC Draft 3」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11のビデオコーディングに関する共同研究部会(JCT−VC)、第14回会議:ウィーン、オーストリア、2013年7月25日〜8月2日、JCTVC−N1008v3は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1008−v3.zipから入手可能である。
[0041]図1は、3Dルックアップテーブルベースの色域スケーラビリティのための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後の時点で復号されるべき、符号化されたビデオデータを提供するソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信に対する機能を備え得る。
[0042]宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化されたビデオデータを受信することができる。コンピュータ可読媒体16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化されたビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つもしくは複数の物理伝送線路など、任意のワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースのネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
[0043]いくつかの例では、符号化されたデータは、出力インターフェース22からストレージデバイスへ出力され得る。同様に、符号化されたデータは、ストレージデバイスから入力インターフェースによってアクセスされ得る。ストレージデバイスは、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれをも含み得る。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された、符号化されたビデオを記憶することができるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶でき、符号化されたビデオデータを宛先デバイス14に送信できる、任意のタイプのサーバとすることができる。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、任意の標準データ接続を介して、符号化されたビデオデータにアクセスすることができる。これは、ファイルサーバ上に記憶された、符号化されたビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi−F接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ストレージデバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその組合せとすることができる。
[0044]本開示の技法は、ワイヤレス応用またはワイヤレス設定に必ずしも限定されない。本技法は、無線テレビジョンブロードキャスト(over-the-air television broadcasts)、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTP上の動的適応ストリーミング(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の応用など、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオ電話などの応用をサポートするために一方向もしくは両方向のビデオ送信をサポートするように構成され得る。
[0045]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、ビデオデータを並列に処理するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部のビデオソース18からビデオデータを受信することができる。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてもよい。
[0046]図1の例示されたシステム10は、一例にすぎない。ビデオデータを並列に処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法はビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、宛先デバイス14に送信するためのコード化ビデオデータを生成するコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、もしくはビデオ電話のためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
[0047]ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを包含するビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成ビデオの組合せを生成することができる。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはビデオ付き電話を形成し得る。しかしながら、上で述べたように、本開示で説明した技法は、一般にビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードの応用例に適用され得る。各場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化されたビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0048]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを宛先デバイス14に提供することができる。同様に、ディスクスタンピング設備(a disc stamping facility)など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを包含しているディスクを生成し得る。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
[0049]宛先デバイス14の入力インターフェース28は、情報をコンピュータ可読媒体16から受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、ビデオデコーダ30によっても使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ(GOP)の特性ならびに/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのうちのいずれかを備え得る。
[0050]ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法がソフトウェアに部分的に実装されるとき、デバイスは、ソフトウェアに対する命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するための1つまたは複数のプロセッサを使用してハードウェアにおいてそれらの命令を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、そのいずれかが、複合エンコーダ/デコーダ(コーデック)の一部として、それぞれのデバイス内に統合され得る、1つもしくは複数のエンコーダまたはデコーダに含まれてもよい。
[0051]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、それのスケーラブルビデオコーディング(SVC)拡張と、マルチビュービデオコーディング(MVC)拡張と、MVCベースの3次元ビデオ(3DV)拡張とを含む、ISO/IEC MPEG−4 Visualおよび(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264などのビデオ圧縮規格に従って動作する。場合によっては、MVCベースの3DVに適合する任意のビットストリームは、MVCプロファイル、たとえばステレオハイプロファイル(stereo high profile)に準拠するサブビットストリームを常に包含する。さらに、H.264/AVCへの3DVコーディング拡張、すなわち、AVCベースの3DVを生成するための取り組みが進行中である。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、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、およびITU−T H.264、ISO/IEC Visualに従って動作し得る。
[0052]図1の例では、ビデオエンコーダ20およびビデオデコーダ30は、ITU−Tビデオコーディングエキスパートグループ(VCEG)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのビデオコーディングに関する共同研究部会(JCT−VC)によって確定された高効率ビデオコーディング(HEVC)規格に従って動作し得る。上記で参照したHEVCドラフト仕様書は、HEVC Working Draft 10(WD10)と呼ばれ、HEVC規格の確定したバージョンはHEVCバージョン1と呼ばれる。MV−HEVCおよび3D−HEVCはJCT−3Vによって開発されている。MV−HEVCの最近のドラフト仕様書はMV−HEVC WD5と呼ばれ、3D−HEVCの最近のドラフト仕様書は3D−HEVC WD1と呼ばれる。SHVCはJCT−VCによって開発されている。SHVCの最近のドラフト仕様書は、SHVC WD3と呼ばれる。
[0053]HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは、一般に、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれる場合もある。ピクチャは、SL、SCbおよびSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれる場合もある。他の例では、ピクチャは、モノクローム(monochrome)であり得るし、ルーマサンプルのアレイのみを含む場合がある。
[0054]ビデオエンコーダ20は、コーディングツリーユニット(CTU:coding tree unit)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックはサンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれることもある。HEVCのCTUは、H.264/AVCなどの他のビデオコーディング規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスター走査順序で連続的に順序付けられた整数個のCTUを含み得る。
[0055]本開示は、サンプル、およびサンプルの1つもしくは複数のブロックのサンプルをコーディングするために使用されるシンタックス構造の1つもしくは複数のブロックを指すために、「ビデオユニット」または「ビデオブロック」という用語を使用することがある。例示的なタイプのビデオユニットには、HEVCにおけるCTU、CU、PU、変換ユニット(TU)、または他のビデオコーディング規格におけるマクロブロック、マクロブロックパーティションなどが含まれ得る。
[0056]コーディングされたCTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するように、CTUのコーディングツリーブロックに対して4分木区分(quad-tree partitioning)を再帰的に実行することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのN×Nのブロックである。CUは、ルーマサンプルアレイと、Cbサンプルアレイと、Crサンプルアレイとを有するピクチャの、ルーマサンプルのコーディングブロックと、クロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造と、を備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
[0057]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロックと、ピクチャのクロマサンプルの2つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、それらの予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックに関する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成し得る。
[0058]ビデオエンコーダ20は、PUに関する予測ブロックを生成するためにイントラ予測またはインター予測を使用することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。
[0059]ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。インター予測は、単方向インター予測(すなわち、単予測(uni-prediction))または双方向インター予測(すなわち、双予測(bi-prediction))であり得る。単予測または双予測を実行するために、ビデオエンコーダ20は、現在のスライスに関して、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを生成し得る。
[0060]参照ピクチャリストの各々は、1つまたは複数の参照ピクチャを含み得る。単予測を使用するとき、ビデオエンコーダ20は、参照ピクチャ中の参照ロケーションを決定するために、RefPicList0およびRefPicList1のいずれかまたは両方の中の参照ピクチャを探索することができる。さらに、単予測を使用するとき、ビデオエンコーダ20は、参照ロケーションに対応するサンプルに少なくとも部分的に基づいて、PUに関する予測サンプルブロックを生成することができる。さらに、単予測を使用するとき、ビデオエンコーダ20は、PUの予測ブロックと参照ロケーションとの間の空間変位(a spatial displacement)を示す単一の動きベクトルを生成することができる。PUの予測ブロックと参照ロケーションとの間の空間変位を示すために、動きベクトルは、PUの予測ブロックと参照ロケーションとの間の水平変位を指定する水平成分を含み得、PUの予測ブロックと参照ロケーションとの間の垂直変位を指定する垂直成分を含み得る。
[0061]PUを符号化するために双予測を使用するとき、ビデオエンコーダ20は、RefPicList0中の参照ピクチャ中の第1の参照ロケーションと、RefPicList1中の参照ピクチャ中の第2の参照ロケーションとを決定することができる。ビデオエンコーダ20は、次いで、第1の参照ロケーションおよび第2の参照ロケーションに対応するサンプルに少なくとも部分的に基づいて、PUに関する予測ブロックを生成することができる。さらに、PUを符号化するために双予測を使用するとき、ビデオエンコーダ20は、PUのサンプルブロックと第1の参照ロケーションとの間の空間変位を示す第1の動きと、PUの予測ブロックと第2の参照ロケーションとの間の空間変位を示す第2の動きとを生成することができる。
[0062]ビデオエンコーダ20がCUの1つまたは複数のPUに関する予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成した後、ビデオエンコーダ20は、CUに関するルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルと、CUの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。加えてビデオエンコーダ20は、CUに関するCb残差ブロックを生成することができる。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20は、CUに関するCr残差ブロックを生成することもできる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
[0063]さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解する(decompose)ために、4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであってもよい。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。TUに関連付けられたルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであってよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってよい。
[0064]ビデオエンコーダ20は、TUに関するルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1回または複数回の変換を適用し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であってよい。ビデオエンコーダ20は、TUに関するCb係数ブロックを生成するために、TUのCb変換ブロックに1回または複数回の変換を適用することができる。ビデオエンコーダ20は、TUに関するCr係数ブロックを生成するために、TUのCr変換ブロックに1回または複数回の変換を適用することができる。
[0065]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を提供するプロセスを指す。さらに、ビデオエンコーダ20は、ピクチャのCUのTUの変換ブロックを再構成するために、変換係数を逆量子化し、その変換係数に逆変換を適用することができる。ビデオエンコーダ20は、CUのコーディングブロックを再構成するために、CUのTUの再構成された変換ブロックと、CUのPUの予測ブロックとを使用することができる。ピクチャの各CUのコーディングブロックを再構成することによって、ビデオエンコーダ20は、ピクチャを再構成することができる。ビデオエンコーダ20は、復号ピクチャバッファ(DPB:a decoded picture buffer)に再構成されたピクチャを記憶することができる。ビデオエンコーダ20は、DPB中の再構成されたピクチャを、インター予測およびイントラ予測のために使用することができる。
[0066]ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対して、コンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行することができる。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリーム内に出力することができる。
[0067]ビデオエンコーダ20は、コード化ピクチャおよび関連するデータの表現を形成する一連のビットを含むビットストリームを出力することができる。ビットストリームは、一連のネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットを備え得る。NALユニットの各々は、NALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP:raw byte sequence payload)をカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含む場合がある。NALユニットのNALユニットヘッダによって規定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPはゼロビットを含む。
[0068]様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)に関するRBSPをカプセル化することができ、第2のタイプのNALユニットはコード化スライスに関するRBSPをカプセル化することができ、第3のタイプのNALユニットは補助拡張情報(SEI:supplemental enhancement information)に関するRBSPをカプセル化することができ、以下同様である。PPSは、0個以上のコード化ピクチャ全体に適用するシンタックス要素を含み得るシンタックス構造である。ビデオコーディングデータに関するRBSPをカプセル化するNALユニットは(パラメータセットおよびSEIメッセージに関するRBSPとは対照的に)、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれる場合がある。コード化スライスをカプセル化するNALユニットは、本明細書ではコード化スライスNALユニットと呼ばれる場合がある。コード化スライスに関するRBSPは、スライスヘッダとスライスデータとを含み得る。
[0069]ビデオデコーダ30は、ビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するために、ビットストリームをパーズ(parse)することができる。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成することができる。ビデオデータを再構成するための処理は、全般に、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、現在CUのPUに関する予測ブロックを決定するために、PUの動きベクトルを使用することができる。ビデオデコーダ30は、PUに関する予測ブロックを生成するために、PUの1つまたは複数の動きベクトルを使用することができる。
[0070]加えて、ビデオデコーダ30は、現在CUのTUに関連付けられた係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在CUのTUに関連付けられた変換ブロックを再構成するために、係数ブロックに対して逆変換を実行することができる。ビデオデコーダ30は、現在CUのPUに関する予測サンプルブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構成することができる。ピクチャの各CUに関するコーディングブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成し得る。ビデオデコーダ30は、出力のためにおよび/または他のピクチャを復号する際に使用するために、復号されたピクチャを復号ピクチャバッファ内に記憶することができる。
[0071]MV−HEVC、3D−HEVC、およびSHVCでは、ビデオエンコーダは、一連のネットワークアブストラクションレイヤ(NAL)ユニットを備えるマルチレイヤビットストリームを生成し得る。ビットストリームの様々なNALユニットが、ビットストリームの様々なレイヤに関連付けられ得る。レイヤは、同じレイヤ識別子を有するビデオコーディングレイヤ(VCL:video coding layer)NALユニットおよび関連する非VCL NALユニットのセットとして定義され得る。レイヤは、マルチビュービデオコーディングにおけるビューと等価であり得る。マルチビュービデオコーディングでは、レイヤは、異なる時間インスタンスを伴う同じレイヤのすべてのビュー成分を含み得る。各ビュー成分は、特定の時間インスタンスにおける特定のビューに属するビデオシーンのコード化ピクチャであり得る。3Dビデオコーディングでは、レイヤは、特定のビューのすべてのコード化深度ピクチャ、または特定のビューのコード化テクスチャピクチャのいずれかを含み得る。同様に、スケーラブルビデオコーディングのコンテキストにおいて、レイヤは、通常、他のレイヤ中のコード化ピクチャと異なるビデオ特性を有するコード化ピクチャに対応する。そのようなビデオ特性は、通常、空間解像度と品質レベル(信号対雑音比)とを含む。HEVCおよびそれの拡張では、時間スケーラビリティ(temporal scalability)は、特定の時間レベルを伴うピクチャのグループをサブレイヤと定義することによって、1つのレイヤ中で達成され得る。
[0072]ビットストリームのそれぞれの各レイヤについて、下位レイヤ中のデータは、上位レイヤ中のデータと無関係に復号され得る。スケーラブルビデオコーディングでは、たとえば、ベースレイヤ中のデータは、エンハンスメントレイヤ中のデータと無関係に復号され得る。NALユニットは単に、単一のレイヤのデータをカプセル化する。SHVCでは、ビデオデコーダが、あるビュー中のピクチャをいかなる他のレイヤのデータとも無関係に復号できる場合、そのビューは「ベースレイヤ」と呼ばれ得る。ベースレイヤは、HEVCベース仕様に準拠し得る。したがって、ビットストリームの残りの最高レイヤのデータをカプセル化するNALユニットは、ビットストリームの残りのレイヤ中のデータの復号可能性に影響を及ぼすことなくビットストリームから除去され得る。MV−HEVCおよび3D−HEVCでは、上位レイヤは、さらなるビュー成分を含み得る。SHVCでは、上位レイヤは、信号対雑音比(SNR)エンハンスメントデータ、空間エンハンスメントデータ、および/または時間エンハンスメントデータを含み得る。
[0073]いくつかの例では、上位レイヤのデータは、1つまたは複数の下位レイヤ中のデータを参照して復号され得る。下位レイヤは、レイヤ間予測を使用して上位レイヤを圧縮するための参照ピクチャとして使用され得る。下位レイヤのデータは、上位レイヤと同じ解像度を有するようにアップサンプリングされ得る。概して、1つまたは複数のアップサンプリングされた下位レイヤが、1つまたは複数の近隣ピクチャではなく、参照ピクチャとして使用され得ることを除いて、ビデオエンコーダ20およびビデオデコーダ30は、上記で説明したインター予測と同様の方法でレイヤ間予測を実行することができる。
[0074]図2は、3つの異なる次元におけるスケーラビリティの一例を示す概念図である。スケーラブルビデオコーディング構造では、スケーラビリティは、3つの次元において有効化される。図2の例では、スケーラビリティは、空間(S)次元100、時間(T)次元102、および信号対雑音比(SNR)次元または品質(Q)次元104において有効化される。時間次元102では、たとえば、7.5Hz(T0)、15Hz(T1)、または30Hz(T2)を有するフレームレートが時間スケーラビリティによってサポートされ得る。空間スケーラビリティがサポートされるとき、たとえば、QCIF(S0)、CIF(S1)、および4CIF(S2)など、異なる解像度が空間次元100において有効化される。特定の空間解像度およびフレームレートごとに、ピクチャ品質を改善するために、SNR次元104内にSNRレイヤ(Q1)が追加され得る。
[0075]ビデオコンテンツがそのようなスケーラブルな方法で符号化されると、たとえば、クライアントまたは送信チャネルに依存する適用要件に従って、実際の配信されたコンテンツを適応させるために、抽出器ツールが使用され得る。図2に示した例では、各立方体は、同じフレームレート(時間レベル)、空間解像度、およびSNRレイヤを有するピクチャを包含する。立方体(すなわち、ピクチャ)を次元100、102、104のいずれかに追加することによって、より良い表現が達成され得る。2つ、3つ、またはさらに多くのスケーラビリティが有効化されるとき、複合スケーラビリティがサポートされる。
[0076]H.264に対するSVC拡張、すなわちSHVCなど、スケーラブルビデオコーディング規格では、最低の空間レイヤおよびSNRレイヤを有するピクチャは、単一レイヤビデオコーデックとの互換性を有し、最低の時間レベルにあるピクチャは、より高い時間レベルにあるピクチャを用いて拡張され得る時間ベースレイヤを形成する。ベースレイヤに加えて、空間スケーラビリティおよび/または品質スケーラビリティを実現するために、いくつかの空間エンハンスメントレイヤおよび/またはSNRエンハンスメントレイヤが追加され得る。各々の空間エンハンスメントレイヤまたはSNRエンハンスメントレイヤ自体は、ベースレイヤと同じ時間スケーラビリティ構造で、時間的にスケーラブルであり得る。1つの空間エンハンスメントレイヤまたはSNRエンハンスメントレイヤについて、それが依存する下位レイヤは、その特定の空間エンハンスメントレイヤまたはSNRエンハンスメントレイヤのベースレイヤと呼ばれることがある。
[0077]図3は、スケーラブルビデオコーディングビットストリームのある例示的な構造110を示す概念図である。ビットストリーム構造110は、ピクチャまたはスライスI0、P4、およびP8を含むレイヤ0 112と、ピクチャまたはスライスB2、B6、およびB10を含むレイヤ1 114とを含む。加えて、ビットストリーム構造110は、各々がピクチャ0、2、4、6、8、および10を含むレイヤ2 116ならびにレイヤ3 117と、ピクチャ0から11を含むレイヤ4 118とを含む。
[0078]ベースレイヤは、最低の空間レイヤおよび品質レイヤを有する(すなわち、QCIF解像度を有する、レイヤ0 112およびレイヤ1 114中のピクチャ)。これらの中で、最低時間レベルのそれらのピクチャは、図3のレイヤ0 112に示すように、時間ベースレイヤを形成する。時間ベースレイヤ(レイヤ0)112は、上位時間レベル、たとえば、15Hzのフレームレートを有するレイヤ1 114、または30Hzのフレームレートを有するレイヤ4 118、のピクチャで拡張され得る。
[0079]ベースレイヤ112、114に加えて、空間スケーラビリティおよび/または品質スケーラビリティを提供するために、いくつかの空間エンハンストレイヤおよび/またはSNRエンハンスメントレイヤが追加され得る。たとえば、CIF解像度を有するレイヤ2 116は、ベースレイヤ112、114に対する空間エンハンスメントレイヤであり得る。別の例では、レイヤ3 117は、ベースレイヤ112、114、およびレイヤ2 116に対するSNRエンハンスメントレイヤであり得る。図3に示すように、各々の空間エンハンスメントレイヤまたはSNRエンハンスメントレイヤ自体は、ベースレイヤ112、114と同じ時間スケーラビリティ構造で、時間的にスケーラブルであり得る。加えて、エンハンスメントレイヤは空間解像度とフレームレートの両方を向上させることが可能である。たとえば、レイヤ4 118は、フレームレートを15Hzから30Hzにさらに増大させる、4CIF解像度エンハンスメントレイヤを提供する。
[0080]図4は、ビットストリーム順序で、例示的なスケーラブルビデオコーディングアクセスユニット120A〜120E(「アクセスユニット120」)を示す概念図である。図4に示すように、同じ時間インスタンス内のコード化ピクチャまたはスライスは、ビットストリーム順序で連続しており、H.264に対するSVC拡張、すなわち、SHVCなど、スケーラブルビデオコーディング規格のコンテキストにおいて1つのアクセスユニットを形成する。次いで、これらのアクセスユニット120は、表示順序とは異なるものとされ得て、たとえば、アクセスユニット120間の時間予測関係によって決定され得る復号順序に従う。
[0081]たとえば、アクセスユニット120Aは、レイヤ0 112からのピクチャI0と、レイヤ2 116からのピクチャ0と、レイヤ3 117からのピクチャ0と、レイヤ4 118からのピクチャ0とを含む。アクセスユニット120Bは、レイヤ0 112からのピクチャP4と、レイヤ2 116からのピクチャ4と、レイヤ3 117からのピクチャ4と、レイヤ4 118からのピクチャ4とを含む。アクセスユニット120Cは、レイヤ1 114からのピクチャB2と、レイヤ2 116からのピクチャ2と、レイヤ3 117からのピクチャ2と、レイヤ4 118からのピクチャ2とを含む。アクセスユニット120Dは、レイヤ4 118からのピクチャ1を含み、アクセスユニット120Eはレイヤ4 118からのピクチャ3を含む。
[0082]図5は、ある例示的な3レイヤSHVCエンコーダ122を示すブロック図である。図5に示すように、SHVCエンコーダ122は、ベースレイヤエンコーダ124と、第1のエンハンスメントレイヤエンコーダ125と、第2のエンハンスメントレイヤエンコーダ126とを含む。高レベルのシンタックス専用SHVCでは、HEVC単一レイヤコーディングと比較されると、新しいブロックレベルのコーディングツールは存在しない。SHVCでは、スライスおよびその上のレベルのシンタックス変更、ならびにピクチャのフィルタリングまたはアップサンプリングなどのピクチャレベルの動作のみが許可される。
[0083]レイヤ間の冗長性を低減するために、単一レイヤ中でインターフレーム予測と同じようにレイヤ間予測が達成され得るように、上位レイヤ/エンハンスメントレイヤに関して、下位レイヤ/ベースレイヤに関するアップサンプリングされたコロケートされた参照レイヤピクチャが生成され、参照バッファ内に記憶され得る。図5に示すように、リサンプリングされたレイヤ間参照(ILR:inter-layer reference)ピクチャ128がベースレイヤエンコーダ124中の参照ピクチャから生成され、第1のエンハンスメントレイヤエンコーダ125内に記憶される。同様に、リサンプリングされたILRピクチャ129が第1のエンハンスメントレイヤエンコーダ125中の参照ピクチャから生成され、第2のエンハンスメントレイヤエンコーダ126内に記憶される。SHVC WD3では、ILRピクチャはエンハンスメントレイヤに関する長期参照ピクチャとして標示される。レイヤ間参照ピクチャに関連付けられた動きベクトル差分はゼロに制約される。
[0084]超高解像度テレビジョン(UHDTV)デバイスおよびそのコンテンツの次の展開は、レガシーデバイスとは異なる色域を使用することになる。具体的には、HDはBT.709推奨、ITU−R推奨BT.709「Parameter values for the HDTV standards for production and international programme exchange」2010年12月を使用するのに対して、UHDTVは、BT.2020推奨、ITU−R推奨BT.2020「Parameter values for UHDTV systems for production and international programme exchange」2012年4月を使用することになる。色域は、たとえば、ピクチャ、スライス、ブロック、またはビデオデータのレイヤ中で画像に関して複写され得る色の完全範囲を備える。これらのシステム間の主な差は、UHDTVの色域はHDよりかなり大きい点である。UHDTVは、高解像度など、他のUHDTV特性に一致する、より真に迫った、または現実的な視聴体験を提供することになると主張されている。
[0085]図6は、サンプルビデオシーケンス130のある例示的な色域を示すグラフである。図6に示すように、SWG1サンプルビデオシーケンス130は、UHD色域BT.2020 132の輪郭線内の点の集まりとして示される。比較のために、HD色域BT.709 134の輪郭および国際照明委員会(CIE:International Commission on Illumination)−XYZ線形色空間136の輪郭はSWG1サンプルビデオシーケンス130をオーバーレイする。UHD色域BT.2020 132はHD色域BT.709 134よりもかなり大きいことが図6から容易に分かる。BT.709色域134から外れるSWG1サンプルビデオシーケンス130内のピクセルの数に留意されたい。
[0086]図7は、HD色域BT.709 134からUHD色域BT.2020 132への変換を示すブロック図である。HD色域BT.709 134とUHD色域BT.2020 132は両方とも、ルーマ成分およびクロマ成分(たとえば、YCbCrまたはYUV)中のカラーピクセルの表現を定義する。各色域は、CIE−XYZ線形色空間136の間の変換を定義する。この一般的な中間色空間は、HD色域BT.709 134内のルーマ値およびクロマ値のUHD色域BT.2020 132内の対応するルーマ値およびクロマ値への変換を定義するために使用され得る。
[0087]図6に示したサンプルシーケンスの色域および図7に示した色域変換に関するさらなる詳細は、L.Kerofsky、A.Segall、S.−H.Kim、K.Misra、「Color Gamut Scalable Video Coding:New Results」、JCTVC−L0334、ジュネーブ、スイス、2013年1月14日〜23日(以下、「JCTVC−L0334」と呼ばれる)に見出すことができる。
[0088]図8は、ベースレイヤ色域とエンハンスメントレイヤ色域とが異なるときに、レイヤ間参照ピクチャを生成し得る色予測処理ユニット144を含む色域スケーラブルコーダ140を示すブロック図である。色予測処理ユニット144は、ベースレイヤおよびエンハンスメントレイヤの色域が異なる色域スケーラブルビデオコーディングを実行するために、図1からのビデオエンコーダ20またはビデオデコーダ30などのビデオコーダによって使用され得る。
[0089]図8に示す例では、ベースレイヤコーディングループ142は、第1の色域、たとえば、BT.709内の色データを含むピクチャのビデオコーディングを実行し、エンハンスメントレイヤコーディングループ146は、第2の色域、たとえば、BT.2020内の色データを含むピクチャのビデオコーディングを実行する。色予測処理ユニット144は、第1の色域内のベースレイヤ参照ピクチャの色データを第2の色域にマッピングまたは変換するために色予測を実行し、ベースレイヤ参照ピクチャのマッピングされた色データに基づいて、エンハンスメントレイヤに関するレイヤ間参照ピクチャを生成する。
[0090]高いコーディング効率を達成するために、色予測処理ユニット144は、レイヤ間参照ピクチャを生成するとき、特定の色予測を実行するように構成される。下記でより詳細に説明するように、色予測処理ユニット144は、線形予測モデル、区分線形予測モデル、または3Dルックアップテーブルベースの色予測モデルのうちのいずれかに従って、色予測を実行するように構成され得る。
[0091]線形予測モデルは、上記で参照したJCTVC−L0334で提案されている。概して、線形予測モデルの色予測プロセスは、利得およびオフセットモデルとして説明され得る。線形予測モデルは個々の色平面上で動作する。整数計算を容易にするために、パラメータは、パラメータnumFractionBitsを使用した計算において使用される小数ビットの数(the number of fractional bits)について説明する。各チャネルに関して、gain[c]およびoffset[c]が指定される。線形予測モデルは、次のように定義される、
[0092]区分線形予測モデルは、上記で参照された、JCTVC−L0334に基づく、C.Auyeung、K.Sato、「AHG14:Color gamut scalable video coding with piecewise linear predictions and shift−offset model」、JCTVC−N0271、ウィーン、オーストリア、2013年7月で提案されている。区分線形予測モデルの色予測プロセスも、利得およびオフセットモデルとして説明され得る。区分線形予測モデルは、次のように定義される、
予測パラメータknot[c]、offset[c]、gain1[c]、およびgain2[c]はビットストリーム中で符号化され得る。
[0093]図9は、色域スケーラビリティのためのある例示的な3Dルックアップテーブル150を示す概念図である。3Dルックアップテーブルベースの色予測モデルは、P.Bordes、P.Andrivon、F.Hiron、「AHG14:Color Gamut Scalable Video Coding using 3D−LUT:New Results」、JCTVC−N0168、ウィーン、オーストリア、2013年7月(以下、「JCTVC−N0168」)で提案されている。色域スケーラビリティのための3Dルックアップテーブルの原理は図9に示される。3Dルックアップテーブル150は、第1の3D色空間、たとえば、HD色域BT.709のサブサンプリングと見なされてよく、この場合、各頂点(vertex)は、第2の3D色空間に対応するカラートリプレット(color triplet)(y、u、v)(すなわち、予測された値、たとえば、UHD色域BT.2020)に関連付けられる。
[0094]概して、第1の色域は、各色次元(すなわち、Y、U、およびV)内のオクタント(octants)または直方体(cuboids)に区分され得、オクタントの頂点は、第2の色域に対応するカラートリプレットに関連付けられ、3Dルックアップテーブル150をポピュレートするために使用される。各色次元内の頂点またはセグメントの数は、3Dルックアップテーブルのサイズを示す。図9(a)は、各色次元内のオクタントの頂点、すなわち、交差する格子点を示す。図9(b)は、頂点の各々に関連付けられた異なる色値を示す。示すように、図9(a)では、各色次元は4つの頂点を有し、図9(b)では、各色次元は4つの色値を含む。
[0095]図10は、色域スケーラビリティのための3Dルックアップテーブル150を用いた3線形補間を示す概念図である。第1の色域内の所与のベースレイヤカラーサンプルに関して、エンハンスメントレイヤに関する第2の色域内のそれの予測の計算は、次の式に従って、3線形補間を使用して行われる。
y0は、yよりも下位である、最も近いサブサンプリングされた頂点のインデックスである。
y1は、yより上位である、最も近いサブサンプリングされた頂点のインデックスである。
[0096]いくつかの例では、色成分の各々、すなわち、ルーマ(Y)成分、第1のクロマ(U)成分、および第2のクロマ(V)成分に関して、別個の3Dルックアップテーブルが生成され得る。3Dルックアップテーブルの各々は、ルーマ(Y)次元と、第1のクロマ(U)次元と、第2のクロマ(V)次元とを含み、3つの独立した色成分(Y、U、V)を使用してインデックス付けされる。
[0097]一例では、マッピング関数は、3Dルックアップテーブルに基づいて各色成分に関して定義され得る。ルーマ(Y)ピクセル値に関するある例示的なマッピング関数は次の式で提示される。
上記の式では、YEはエンハンスメントレイヤ中のルーマピクセル値を表し、レイヤ(YB,UUB,VB)はベースレイヤピクセル値を表し、LUTY,LUTU,LUTVおよびLUTCは、各色成分Y、U、V、および定数に関する3Dルックアップテーブルを表す。同様にマッピング関数は、エンハンスメントレイヤ内の第1のクロマ(U)ピクセル値および第2のクロマ(V)ピクセル値に関して定義され得る。
[0098]図9に示す3Dルックアップテーブル、および図10に示す3Dルックアップテーブルとの3線形補間のさらなる詳細は、上記で参照されたJCTVC−N0168に見出され得る。
[0099]概して、3Dルックアップテーブルベースの色域スケーラビリティは、結果として、良好なコーディング性能をもたらす。しかしながら、3Dルックアップテーブルは、概して、ハードウェア実装でキャッシュメモリ内に記憶されるため、3Dルックアップテーブルのサイズは懸念事項であり得る。大きいテーブルサイズを有する3Dルックアップテーブルは、結果として、高い計算複雑性と高いシグナリングコストとをもたらし得る。たとえば、従来、3Dルックアップテーブルは、3Dルックアップテーブルがルーマ成分、第1のクロマ成分、および第2のクロマ成分に関して同じサイズを有するように、常に対称的である。加えて、従来、3Dルックアップテーブルは、3Dルックアップテーブルの各次元のサイズが常に同じであるように、常に平衡を保たせられる。これは結果として、高い計算複雑性と高いシグナリングコストとを有する、大きいテーブルサイズをもたらす。たとえば、テーブルサイズは、9×9×9または17×17×17までであり得る。
[0100]3Dルックアップテーブルベースの色域スケーラビリティに関するシグナリングコストと計算コストの両方が低減され得るように、以下の方法が提案される。
[0101]第1の方法は、ルーマ(Y)成分ならびにクロマ(UおよびV)成分が異なるサイズを有するように、非対称3Dルックアップテーブルを生成することを含む。場合によっては、3Dルックアップテーブルは、第1のクロマ成分および第2のクロマ成分の各々に関するよりも、ルーマ成分に関して大きいサイズ、すなわち、より多いセグメントを有し得る。この場合、クロマ成分はより粗いルックアップテーブルを使用することができ、ルーマ成分はより微細化されたルックアップテーブルを使用することができる。他の場合では、3Dルックアップテーブルは、ルーマ成分に関するよりも、クロマ成分のうちの1つまたは両方に関して大きいサイズを有し得る。
[0102]概して、3Dルックアップテーブルベースの色予測は、一種の3D区分線形予測である。理論的には、3Dルックアップテーブルの各色次元(すなわち、Y、U、およびV)においてより多くのセグメントが使用されればされるほど、色予測精度はより高まる。しかしながら、多数のセグメントは、高いシグナリングコストおよび高い計算複雑性(すなわち、より大きいテーブルサイズ)をもたらし得る。実際には、クロマ信号はそれほど重要でない場合があり、予測がより容易であり得る。この場合、ルーマ(Y)成分に関して高解像度ルックアップテーブルを有し、第1のクロマ(U)成分および第2のクロマ(V)成分の各々に関して低解像度のルックアップテーブルを有することが有利であり得る。
[0103]本開示の技法によれば、ビデオエンコーダ20および/またはビデオデコーダ30などのビデオコーダは、3Dルックアップテーブルの第1のクロマ次元および第2のクロマ次元に関するのとは異なる数の、3Dルックアップテーブルのルーマ次元に関するセグメントを使用して非対称3Dルックアップテーブルを生成することができる。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、第1のクロマ成分および第2のクロマ成分の各々に関するよりも、ルーマ成分に関して大きいサイズ、すなわち、より多いセグメントを有するように、3Dルックアップテーブルを生成することができる。一例では、3Dルックアップテーブルは、8×2×2までのサイズを有し得る。このようにして、第1のクロマ成分および第2のクロマ成分に関するよりも、ルーマ成分に関して高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの総サイズは低減され得、シグナリングコストも低減され得る。3Dルックアップテーブルのテーブルサイズは、ビデオパラメータセット(VPS:a video parameter set)、シーケンスパラメータセット(SPS:sequence parameter set)、ピクチャパラメータセット(PPS:picture parameter set)、スライスヘッダ、または関連拡張においてなど、ビットストリーム内でシグナリングされ得る。
[0104]いくつかの例では、3Dルックアップテーブルの各々は、同じサイズM×N×Kを有し得、この場合、3Dルックアップテーブルのルーマ次元のサイズ(M)は、3Dルックアップテーブルの第1のクロマ次元のサイズ(N)および3Dルックアップテーブルの第2のクロマ次元のサイズ(K)とは異なる。たとえば、ルーマ次元のサイズは、クロマ次元のサイズよりも大きく、M>NおよびM>Kであり得、3Dルックアップテーブルのクロマ次元のサイズは同じで、N=Kであり得る。一例では、3Dルックアップテーブルの各々は8×2×2の同じサイズを有し得る。別の例では、3Dルックアップテーブルの各々は9×6×6の同じサイズを有し得る。
[0105]他の例では、ルーマ成分3Dルックアップテーブル(LUTY)は、第1のクロマ成分3Dルックアップテーブル(LUTU)の第2のサイズ、たとえば、N×N×N、および第2のクロマ成分3Dルックアップテーブル(LUTV)の第3のサイズ、たとえば、K×K×Kとは異なる第1のサイズ、たとえば、M×M×MまたはM×N×Kを有し得る。たとえば、LUTYのサイズは、LUTUおよびLUTVのサイズよりも大きくてよい。LUTUおよびLUTVのサイズは、同じであってよく、または互いとは異なってもよい。一例では、LUTYは、サイズ8×2×2を有し得、LUTUおよびLUTVの各々はサイズ2×2×2を有し得る。別の例では、LUTYは、サイズ9×9×9または9×6×6を有し得、LUTUおよびLUTVの各々は、サイズ9×3×3または3×3×3を有し得る。
[0106]さらなる例では、3Dルックアップテーブルの精度は、関連する色成分に依存し得る。たとえば、ルーマ成分3Dルックアップテーブルの第1の精度値は、第1のクロマ成分3Dルックアップテーブルと第2のクロマ成分3Dルックアップテーブルの両方の第2の精度値と異なってよい。たとえば、ルーマ成分3Dルックアップテーブルの第1の精度値は、クロマ成分3Dルックアップテーブルの第2の精度値より高くてよい。一例では、ルーマ成分に関する第1の精度値は8ビットであってよく、クロマ成分に関する第2の精度値は6ビットであってよい。場合によっては、3Dルックアップテーブルを生成するとき、エンハンスメントレイヤのターゲットビット深度を満たすために、追加のシフトが適用され得る。関連する色成分に基づく3Dルックアップテーブルに関するデフォルト精度値とは異なる精度値の使用は、VPS、SPS、PPS、スライスヘッダ、または関連拡張において示される場合がある。
[0107]第2の方法は、3Dルックアップテーブルに関するテーブルインデックスとしてどの色成分が使用されているかに応じて、各次元のサイズが異なるように、不平衡3Dルックアップテーブル、すなわち、テーブル[M][N][K]を生成することを含む。3Dルックアップテーブルは、テーブルインデックスとして使用される色成分に関連付けられた次元に関してより大きいサイズを有し得る。この場合、カラーマッピングはテーブルインデックスとして使用される色成分に関してより正確であり得るが、他の色成分に関して精度はより低い。
[0108]JCTVC−N0168で提案される3Dルックアップテーブルは、3Dルックアップテーブルの各次元のサイズが常に同じであるように、常に平衡を保たせられる。上記で論じたように、3Dルックアップテーブルの各色次元(すなわち、Y、U、およびV)においてより多くのセグメントが使用されればされるほど、色予測効率はより良好になる。しかしながら、多数のセグメントは、高いシグナリングコストおよび高い計算複雑性(すなわち、より大きいテーブルサイズ)をもたらし得る。第1の色域内の各色成分は、通常、第2の色域内の同じ色成分と、より高い相関を有することを考えると、関連する色成分が3Dルックアップテーブルに関するテーブルインデックスとして使用されるとき、テーブル次元に関して、より多くのセグメントを使用すること、すなわち、より大きいサイズを使用することによって、予測効率を改善することはより有用であり得る。3Dルックアップテーブルに関するテーブルインデックスとして、異なる色成分が使用されるとき、テーブル次元のサイズはより小さい場合がある。
[0109]本開示の本技法によれば、ビデオエンコーダ20および/またはビデオデコーダ30などのビデオコーダは、3Dルックアップテーブルに関するテーブルインデックスとして使用される色成分に関連付けられた3Dルックアップテーブルの次元に関してより多くのセグメントを使用して、不平衡3Dルックアップテーブルを生成することができる。たとえば、ルーマ成分3Dルックアップテーブルは、ルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されているルーマ成分に基づいて、第1のクロマ次元および第2のクロマ次元よりも大きいルーマ次元を有し得る。一例では、LUTYはサイズM×N×Nを有し得、ここで、M>Nである。第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルのサイズは同様に決定され得る。たとえば、LUTUは、テーブルインデックスにおいて使用されている第1のクロマ成分に基づいて、サイズN×M×Nを有し得、LUTVは、テーブルインデックスにおいて使用されている第2のクロマ成分に基づいて、サイズN×N×Mを有し得る。このようにして、テーブルインデックスとして使用される色成分に関して、より高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの各々の総サイズは低減され得る。
[0110]一例では、Y、U、V成分が3Dルックアップテーブルに対する入力として使用されるとき、8×2×2テーブルがY成分に関して使用され得、2×8×2テーブルがU成分に関して使用され得、2×2×8テーブルがV成分に関して使用され得る。別の例では、Y、U、V成分が3Dルックアップテーブルに対する入力として使用されるとき、9×3×3テーブルがY成分に関して使用され得、3×9×3テーブルがU成分に関して使用され得、3×3×9テーブルがV成分に関して使用され得る。
[0111]3Dルックアップテーブルのテーブルサイズは、VPS、SPS、PPS、スライスヘッダ、または関連拡張においてなど、ビットストリーム内でシグナリングされ得る。上記の例では、テーブルサイズを示すために、MおよびNの値だけがシグナリングされ得る。場合によっては、MおよびNの値をシグナリングする代わりに、テーブルサイズの何のシグナリングも必要でないように、MおよびNに関してデフォルト値が設定され得る。たとえば、デフォルト設定で、Nは3の値または2の値に設定され得る。
[0112]第3の方法は、ルーマ成分3Dルックアップテーブルだけを生成することと、クロマ成分に関して1次元(1D)線形マッピングまたは区分線形マッピングを使用するのに対して、ルーマ成分予測を実行するために、3Dルックアップテーブルだけを使用することとを含む。この例では、3Dルックアップテーブルがルーマ成分予測に関してだけ適用されるように、3Dルックアップテーブルは簡略化される。クロマ成分予測の場合、区分線形予測モデルが使用され得る。区分線形予測モデルはクロマ成分に関する3Dルックアップテーブルベースの色予測モデルと同様の性能を示すため、この簡略化は、計算複雑性およびシグナリングコストを低減しながら、予測精度を維持することができる。たとえば、ルーマ成分3Dルックアップテーブルだけを使用することは、クロマ成分に関する3線形補間を回避することによって、計算複雑性を低減することができ、クロマ成分に関する3Dルックアップテーブルをシグナリングしないことによって、シグナリングコストを低減することができる。
[0113]3Dルックアップテーブルがルーマ成分予測を実行するためにだけ使用されるとき、図9および図10に関して上記で説明した3Dマッピング関数は、クロマ成分に関して1Dマッピング関数に簡略化され得る。第1のクロマ(U)ピクセル値および第2のクロマ(V)ピクセル値に関する例示的なマッピング関数は、次の式で提示される。ルーマ(Y)ピクセル値に関する3Dマッピング関数は、上記で提示したのと同じであり得る。
上記の式では、UEはエンハンスメントレイヤ中の第1のクロマピクセル値を表し、VEは、エンハンスメントレイヤ中の第2のクロマピクセル値を表し、UBおよびVBは、ベースレイヤクロマピクセル値を表し、LUTU、LUTV、およびLUTCは、各クロマ成分U、V、およびに定数に関する1Dルックアップテーブルを表す。
[0114]上記で説明した方法のうちのいずれかの使用は、VPS、SPS、PPS、スライスヘッダ、または関連拡張において示され得る。いくつかの例では、3Dルックアップテーブルベースの色域スケーラブルを実行するための、上記で説明した方法のうちの1つまたは複数は組み合わせられてもよい。
[0115]図11は、マルチレイヤビデオコーディングにおいて3Dルックアップテーブルベースの色域スケーラビリティを使用するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行することができる。イントラコーディングは、所与のビデオフレームもしくはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームもしくはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれをも指すことができる。単一方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれをも指すことができる。
[0116]図11に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内で現在のビデオブロックを受信する。図11の例では、ビデオエンコーダ20は、モード選択ユニット40と、ビデオデータメモリ41と、復号ピクチャバッファ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測処理ユニット46と、区分ユニット48と、色予測処理ユニット66とを含む。ビデオブロックの再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクト(blockiness artifacts)を除去するためにブロック境界をフィルタリングするためのデブロッキングフィルタ(図11に図示せず)も含まれ得る。必要な場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタリングすることになる。さらなるフィルタ(インループまたはポストループ)も、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡約のために図示されないが、必要な場合、加算器50の出力を(インループフィルタとして)フィルタリングし得る。
[0117]ビデオデータメモリ41は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ41内に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ64は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ41および復号ピクチャバッファ64は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ41および復号ピクチャバッファ64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ41は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0118]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間予測を提供するために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに関連して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替で、空間予測を提供するために、コーディングされるべきブロックと同一のフレームまたはスライス中の1つもしくは複数の隣接ブロックに関連して受信されたビデオブロックのイントラ予測コーディングを実行することができる。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適当なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
[0119]さらに、区分ユニット48は、前のコーディングパス内の前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分することができる。たとえば、区分ユニット48は、最初に、フレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、LCUの各々をサブCUに区分することができる。モード選択ユニット40は、サブCUへのLCUの区分を示す4分木データ構造をさらに生成することができる。4分木の葉ノード(leaf-node)CUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
[0120]モード選択ユニット40は、たとえば、誤差の結果に基づいて、コーディングモード、イントラまたはインター、のうちの1つを選択し、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に提供し、参照フレームとして使用するための符号化されたブロックを再構成するために加算器62に提供することができる。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に提供する。
[0121]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念上の目的から別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在ピクチャ(または、他のコード化ユニット)内でコーディングされている現在ブロックに対する参照ピクチャ(または、他のコード化ユニット)内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分の観点で、コーディングされるべきブロックと密に一致することが見出されたブロックである。いくつかの例では、ビデオエンコーダ20は、復号ピクチャバッファ64内に記憶された参照ピクチャのサブ整数ピクセル位置(sub-integer pixel positions)に関する値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置(fractional pixel positions)の値を補間することができる。したがって、動き推定ユニット42は、フルピクセル位置(full pixel positions)および分数ピクセル位置に関する動き探索を実行し、分数ピクセル精度を有する動きベクトルを出力することができる。
[0122]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、その各々が、復号ピクチャバッファ64内に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0123]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチすること、またはこれを生成することを含み得る。やはり、動き推定ユニット42および動き補償ユニット44は、いくつかの例で、機能的に統合され得る。現在ビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を突き止める(locate)ことができる。加算器50は、下記で論じるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット42は、ルーマ成分に対して動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方に関して、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40は、ビデオスライスのビデオブロックを復号する際のビデオデコーダ30による使用のために、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成することもできる。
[0124]イントラ予測ユニット46は、上述のように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測することができる。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット46は、たとえば別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用すべき適当なイントラ予測モードを選択することができる。
[0125]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに関するレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの間で最良レートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを作るために符号化された、元の符号化されていないブロックとの間のひずみ(または、誤差)の量、ならびに符号化されたブロックを作るのに使用されたビットレート(すなわち、ビットの個数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックに関して最良のレートひずみ値を示すのかを決定するために、様々な符号化されたブロックに関するひずみとレートとから比率を計算することができる。
[0126]ブロックに関するイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックに関して選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび(符号語マッピングテーブルとも呼ばれる)複数の修正されたイントラ予測モードインデックステーブルと、様々なブロックに関する符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード(a most probable intra-prediction mode)、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルのインディケーションと、を含み得る構成データを、送信されるビットストリーム中に含めることができる。
[0127]ビデオエンコーダ20は、モード選択ユニット40からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する、1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似する変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTに概念的に類似する他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用され得る。どの場合においても、変換処理ユニット52は、残差ブロックに変換を適用して、残差変換係数のブロックを作る。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換することができる。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減させるために、変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減させることができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット56が、この走査を実行することができる。
[0128]量子化の後に、エントロピー符号化ユニット56は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コーディング、または別のエントロピーコーディング技法を実行することができる。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接ブロックに基づくものとされ得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後の送信もしくは取出のためにアーカイブされ得る。
[0129]逆量子化ユニット58および逆変換処理ユニット60は、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、復号ピクチャバッファ64のフレームのうちの1つの予測ブロックに残差ブロックを加算することによって参照ブロックを計算することができる。動き補償ユニット44は、動き推定での使用のためにサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用することもできる。加算器62は、復号ピクチャバッファ64内に記憶するための再構成されたビデオブロックを生成するために、再構成された残差ブロックを動き補償ユニット44によって生成された動き補償された予測ブロックに加算する。再構成されたビデオブロックは、後続ビデオフレーム中のブロックをインターコーディングするための参照ブロックとして、動き推定ユニット42と動き補償ユニット44とによって使用され得る。
[0130]本開示で説明する技法によれば、ビデオエンコーダ20は、マルチレイヤビデオデータを符号化するとき、3Dルックアップテーブルベースの色域スケーラビリティを実行するように構成される。ビデオエンコーダ20は、SHVC拡張、MV−HEVC拡張、および3D−HEVC拡張、または他のマルチレイヤビデオコーディング拡張のいずれかに従って、マルチレイヤビデオデータを予測して、符号化することができる。具体的には、ビデオエンコーダ20の色予測処理ユニット66は、ビデオデータの上位レイヤに関する色域がそのビデオデータの下位レイヤに関する色域と異なるとき、ビデオデータの上位レイヤのピクチャ中のビデオブロックを予測するために使用されるレイヤ間参照ピクチャ(inter-layer reference pictures)を生成することができる。
[0131]ビデオエンコーダ20の色予測処理ユニット66は、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、色域スケーラビリティのための3Dルックアップテーブルを使用して、色予測を実行することができる。いくつかの例では、色予測処理ユニット66は、色成分の各々、すなわち、ルーマ成分、第1のクロマ成分、および第2のクロマ成分、に関して生成され得る、別個の3Dルックアップテーブルを生成することができる。3Dルックアップテーブルの各々は、ルーマ次元と、第1のクロマ次元と、第2のクロマ次元とを含み、3つの独立した色成分を使用してインデックス付けされる。
[0132]本開示で説明する技法によれば、ビデオエンコーダ20の色予測処理ユニット66は、第1のクロマ成分および第2のクロマ成分の各々に関するのとは、ルーマ成分に関して異なるサイズを有する、少なくとも1つの3Dルックアップテーブルを生成する。色予測処理ユニット66は、3Dルックアップテーブルのルーマ次元に関して異なる数のセグメントを使用して、この非対称3Dルックアップテーブルを生成することができる。一例では、色予測処理ユニット66は、第1のクロマ成分および第2のクロマ成分の各々に関するよりも、ルーマ成分に関して大きいサイズ、すなわち、より多いセグメントを有するように、3Dルックアップテーブルを生成することができる。このようにして、第1のクロマ成分および第2のクロマ成分に関するよりも、ルーマ成分に関して高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの総サイズは低減され得る。
[0133]いくつかの例では、色予測処理ユニット66は、同じサイズを有するように、3Dルックアップテーブルの各々を生成することができ、この場合、3Dルックアップテーブルのルーマ次元のサイズは、3Dルックアップテーブルの第1のクロマ次元のサイズおよび3Dルックアップテーブルの第2のクロマ次元のサイズの各々とは異なる。他の例では、色予測処理ユニット66は、第1のクロマ成分3Dルックアップテーブルの第2のサイズおよび第2のクロマ成分3Dルックアップテーブルの第3のサイズの各々とは異なる第1のサイズを有するように、ルーマ成分3Dルックアップテーブルを生成することができる。さらなる例では、色予測処理ユニット66は、第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルの各々とは異なる精度値を有するように、ルーマ成分3Dルックアップテーブルを生成することができる。場合によっては、複雑さをさらに低減させるために、色予測処理ユニット66は、ルーマ成分3Dルックアップテーブルを単に生成し、そのルーマ成分3Dルックアップテーブルを使用して、ルーマ成分予測を実行し、1D線形マッピング、または区分線形マッピングを使用して、第1のクロマ成分予測および第2のクロマ成分予測を実行することが可能である。
[0134]別の例として、本開示の本技法によれば、色予測処理ユニット66は、3Dルックアップテーブルに関するテーブルインデックスとして使用される色成分に関連付けられた3Dルックアップテーブルの次元に関してより多くのセグメントを使用して、不平衡3Dルックアップテーブルを生成することができる。たとえば、ルーマ成分3Dルックアップテーブルは、ルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されているルーマ成分に基づいて、第1のクロマ次元および第2のクロマ次元の各々よりも大きいルーマ次元を有し得る。第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルのサイズは、テーブルインデックスにおいて使用されている第1のクロマ成分または第2のクロマ成分のうちのそれぞれの1つに基づいて同様に決定され得る。このようにして、テーブルインデックスとして使用される色成分に関して、より高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの各々の総サイズは低減され得る。
[0135]3Dルックアップテーブルを生成すると、色予測処理ユニット66は、3Dルックアップテーブルを使用して、ビデオデータの下位レイヤに関する参照ピクチャの色予測を実行し、色予測された参照ピクチャに基づいて、そのビデオデータの上位レイヤに関するレイヤ間参照ピクチャを生成する。レイヤ間参照ピクチャを生成すると、ビデオエンコーダ20の動き補償ユニット44は、3Dルックアップテーブルを使用して生成されたレイヤ間参照ピクチャに基づいて、ビデオデータの上位レイヤのピクチャ中のビデオブロックを予測するために、上記で説明したように動作することができる。ビデオエンコーダ20は、次いで、ビデオデコーダ30に送信するために、ビットストリーム内の予測されたビデオブロックの残差データを符号化することができる。いくつかの例では、ビデオエンコーダ20は、ビットストリーム内の3Dルックアップテーブルのサイズを示す、1つまたは複数のシンタックス要素を符号化することもでき、この場合、このサイズは、第1のクロマ成分および第2のクロマ成分に関するのとはルーマ成分に関して異なる。
[0136]図12は、マルチレイヤビデオコーディングにおいて3Dルックアップテーブルベースの色域スケーラビリティを使用することを決定するための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図12の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、ビデオデータメモリ71と、動き補償ユニット72と、イントラ予測処理ユニット74と、色予測処理ユニット86と、逆量子化ユニット76と、逆変換処理ユニット78と、復号ピクチャバッファ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図11)に関して説明した符号化パスとは概して逆の復号パスを実行することができる。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成することができるが、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
[0137]ビデオデータメモリ71は、ビデオデコーダ30の構成要素によって復号されるべき、符号化されたビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ71内に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスのネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって、取得され得る。ビデオデータメモリ71は、符号化されたビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB:a coded picture buffer)を形成することができる。復号ピクチャバッファ82は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ71および復号ピクチャバッファ82は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ71および復号ピクチャバッファ82は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ71は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0138]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと、関連付けられたシンタックス要素とを表す、符号化されたビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72へ転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでのシンタックス要素を受信し得る。
[0139]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測処理ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックに関する予測データを生成することができる。ビデオフレームがインターコード化(すなわち、BまたはP)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックに関する予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、復号ピクチャバッファ82内に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照ピクチャリスト、すなわち、リスト0およびリスト1を構成することができる。動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパーズすること(parsing)によって現在ビデオスライスのビデオブロックに関する予測情報を決定し、復号されている現在ビデオブロックの予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライス用の参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスの各インター符号化されたビデオブロックに関する動きベクトルと、スライスの各インターコード化ビデオブロックに関するインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報と、を決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
[0140]動き補償ユニット72は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット72は、参照ブロックのサブ整数ピクセルに関して補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用することができる。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにそれらの補間フィルタを使用することができる。
[0141]逆量子化ユニット76は、ビットストリーム中で提供され、エントロピー復号ユニット70によって復号された、量子化された変換係数を逆量子化する(inverse quantize)、すなわち、逆量子化する(de-quantize)。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックに関してビデオデコーダ30によって計算される量子化パラメータQPYの使用を含み得る。逆変換処理ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0142]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックに関する予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数の構成要素を表す。必要な場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。(コーディングループ中の、またはコーディングループ後のいずれかにおける)他のループフィルタも、ピクセルの遷移を平滑化し、または場合によっては、ビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する復号ピクチャバッファ82内に記憶される。復号ピクチャバッファ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後の表示のために、復号されたビデオを記憶する。
[0143]本開示で説明する技法によれば、ビデオデコーダ30は、マルチレイヤビデオデータを復号するとき、3Dルックアップテーブルベースの色域スケーラビリティを実行するように構成される。ビデオデコーダ30は、SHVC拡張、MV−HEVC拡張、および3D−HEVC拡張、またはHEVCに対する他のマルチレイヤビデオコーディング拡張のいずれかに従って、予測されたマルチレイヤビデオデータを復号して、再構成することができる。具体的には、ビデオデコーダ30の色予測処理ユニット86は、ビデオデータの上位レイヤに関する色域がそのビデオデータの下位レイヤに関する色域と異なるとき、ビデオデータの上位レイヤのピクチャ中のビデオブロックを予測するために使用されるレイヤ間参照ピクチャを生成することができる。
[0144]ビデオデコーダ30の色予測処理ユニット86は、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、色域スケーラビリティのための3Dルックアップテーブルを使用して、色予測を実行することができる。いくつかの例では、色予測処理ユニット86は、色成分の各々、すなわち、ルーマ成分、第1のクロマ成分、および第2のクロマ成分、に関して生成され得る、別個の3Dルックアップテーブルを生成することができる。3Dルックアップテーブルの各々は、ルーマ次元と、第1のクロマ次元と、第2のクロマ次元とを含み、3つの独立した色成分を使用してインデックス付けされる。
[0145]本開示で説明する技法によれば、ビデオデコーダ30の色予測処理ユニット86は、第1のクロマ成分および第2のクロマ成分の各々に関するのとはルーマ成分に関して異なるサイズを有する、少なくとも1つの3Dルックアップテーブルを生成する。いくつかの例では、ビデオデコーダ30は、ビットストリーム内の3Dルックアップテーブルのサイズを示す、1つまたは複数のシンタックス要素を復号することができ、この場合、このサイズは、第1のクロマ成分および第2のクロマ成分に関するのとはルーマ成分に関して異なる。色予測処理ユニット86は、3Dルックアップテーブルのルーマ次元に関して異なる数のセグメントを使用して示されたサイズに従って、この非対称3Dルックアップテーブルを生成することができる。一例では、色予測処理ユニット86は、第1のクロマ成分および第2のクロマ成分の各々に関するよりも、ルーマ成分に関して大きいサイズの、すなわち、より多いセグメントを有するように、3Dルックアップテーブルを生成することができる。このようにして、第1のクロマ成分および第2のクロマ成分に関するよりも、ルーマ成分に関して高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの総サイズは低減され得る。
[0146]いくつかの例では、色予測処理ユニット86は、同じサイズを有するように、3Dルックアップテーブルの各々を生成することができ、この場合、3Dルックアップテーブルのルーマ次元のサイズは、3Dルックアップテーブルの第1のクロマ次元のサイズおよび3Dルックアップテーブルの第2のクロマ次元のサイズの各々とは異なる。他の例では、色予測処理ユニット86は、第1のクロマ成分3Dルックアップテーブルの第2のサイズおよび第2のクロマ成分3Dルックアップテーブルの第3のサイズの各々とは異なる第1のサイズを有するように、ルーマ成分3Dルックアップテーブルを生成することができる。さらなる例では、色予測処理ユニット86は、第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルの各々とは異なる精度値を有するように、ルーマ成分3Dルックアップテーブルを生成することができる。場合によっては、複雑さをさらに低減させるために、色予測処理ユニット86は、ルーマ成分3Dルックアップテーブルを単に生成し、そのルーマ成分3Dルックアップテーブルを使用して、ルーマ成分予測を実行し、1D線形マッピング、または区分線形マッピングを使用して、第1のクロマ成分予測および第2のクロマ成分予測を実行することが可能である。
[0147]別の例として、本開示の本技法によれば、色予測処理ユニット86は、3Dルックアップテーブルに関するテーブルインデックスとして使用される色成分に関連付けられた3Dルックアップテーブルの次元に関してより多くのセグメントを使用して、不平衡3Dルックアップテーブルを生成することができる。たとえば、ルーマ成分3Dルックアップテーブルは、ルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されているルーマ成分に基づいて、第1のクロマ次元および第2のクロマ次元の各々よりも大きいルーマ次元を有し得る。第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルのサイズは、テーブルインデックスにおいて使用されている第1のクロマ成分または第2のクロマ成分のうちのそれぞれの1つに基づいて同様に決定され得る。このようにして、テーブルインデックスとして使用される色成分に関して、より高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの各々の総サイズは低減され得る。
[0148]3Dルックアップテーブルを生成すると、色予測処理ユニット86は、3Dルックアップテーブルを使用して、ビデオデータの下位レイヤに関する参照ピクチャの色予測を実行し、色予測された参照ピクチャに基づいて、ビデオデータの上位レイヤに関するレイヤ間参照ピクチャを生成する。レイヤ間参照ピクチャを生成すると、ビデオデコーダ30の動き補償ユニット72は、復号された残差データと、3Dルックアップテーブルを使用して生成されたレイヤ間参照ピクチャとに基づいて、ビデオデータの上位レイヤのピクチャ中の予測されたビデオブロックを再構成するために、上記で説明したように動作することができる。
[0149]図13は、3Dルックアップテーブルベースの色域スケーラビリティを使用してレイヤ間参照ピクチャを生成するある例示的な動作を示すフローチャートである。図13の例示的な動作は、図12のビデオデコーダ30の色予測処理ユニット86によって実行されているとして本明細書で説明される。他の例では、この動作は、図11のビデオエンコーダ20の色予測処理ユニット66または図8の色予測処理ユニット144によって実行され得る。
[0150]従来、マルチレイヤビデオコーディングでは、ビデオデータの下位レイヤ(たとえば、ベースレイヤ)およびビデオデータの上位レイヤ(たとえば、エンハンスメントレイヤ)は、同じ色域内、たとえばHD色域BT.709内の色データを含む。この場合、ビデオデコーダは、ビデオデータの下位レイヤに関するコロケートされた参照ピクチャのアップサンプリングされたバージョンとして、そのビデオデータの上位レイヤに関するレイヤ間参照ピクチャを生成することができる。本開示で説明する例では、ビデオデータの下位レイヤは、第1の色域、たとえば、BT.709内の色データを含むことが可能であり、そのビデオデータの上位レイヤは、異なる第2の色域、たとえば、UHD色域BT.2020内の色データを含むことが可能である。この例では、ビデオデータの上位レイヤに関するレイヤ間参照ピクチャを生成するために、ビデオデコーダ30は、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するための色予測を実行するために、色予測処理ユニット86を使用する。ビデオデコーダ30の色予測処理ユニット86は、色域スケーラビリティのための3Dルックアップテーブルを使用して、色予測を実行することができる。
[0151]本開示の技法によれば、色予測処理ユニット86は、第1のクロマ成分および第2のクロマ成分の各々に関するのとは、ルーマ成分に関して異なるサイズを有する、色域スケーラビリティのための少なくとも1つの3Dルックアップテーブルを生成する(180)。エントロピー復号ユニット70は、少なくとも1つの3Dルックアップテーブルのサイズを示す、1つまたは複数のシンタックス要素を復号することができ、この場合、このサイズは、第1のクロマ成分および第2のクロマ成分の各々に関するのとはルーマ成分に関して異なる。色予測処理ユニット86は、3Dルックアップテーブルの第1のクロマ成分および第2のクロマ成分に関するのとは異なる数の、3Dルックアップテーブルのルーマ次元に関するセグメントを使用することによって示されたサイズに従って、この非対称3Dルックアップテーブルを生成することができる。
[0152]たとえば、色予測処理ユニット86は、第1のクロマ成分および第2のクロマ成分の各々に関するよりも、ルーマ成分に関して大きいサイズの、すなわち、より多いセグメントを有するように、3Dルックアップテーブルを生成することができる。一例では、3Dルックアップテーブルは、8×2×2までのサイズを有し得る。このようにして、第1のクロマ成分および第2のクロマ成分に関するよりも、ルーマ成分に関して高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの総サイズは低減され得る。
[0153]色予測処理ユニット86は、色成分の各々、すなわち、ルーマ(Y)成分、第1のクロマ(U)成分、および第2のクロマ(V)成分、に関して、別個の3Dルックアップテーブルを生成することができる。3Dルックアップテーブルの各々は、ルーマ(Y)次元と、第1のクロマ(U)次元と、第2のクロマ(V)次元とを含み、3つの独立した色成分(Y、U、V)を使用してインデックス付けされる。いくつかの例では、色予測処理ユニット86は、同じサイズM×N×Kを有するように、3Dルックアップテーブルの各々を生成することができ、この場合、3Dルックアップテーブルのルーマ次元のサイズ(M)は、3Dルックアップテーブルの第1のクロマ次元のサイズ(N)および3Dルックアップテーブルの第2のクロマ次元のサイズ(K)の各々とは異なる。たとえば、ルーマ次元のサイズは、クロマ次元のサイズよりも大きく、M>NおよびM>Kであり得、クロマ次元のサイズは同じで、N=Kであり得る。一例では、3Dルックアップテーブルの各々は8×2×2の同じサイズを有し得る。
[0154]他の例では、色予測処理ユニット86は、第1のクロマ成分3Dルックアップテーブル(LUTU)の第2のサイズ、たとえば、N×N×N、および第2のクロマ成分3Dルックアップテーブル(LUTV)の第3のサイズ、たとえば、K×K×K、の各々とは異なる第1のサイズ、たとえば、M×M×MまたはM×N×Kを有するように、ルーマ成分3Dルックアップテーブル(LUTY)を生成することができる。たとえば、ルーマ成分3Dルックアップテーブルのサイズは、クロマ成分3Dルックアップテーブルのサイズよりも大きくてよい。第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルは、同じサイズであってよく、または異なるサイズであってもよい。一例では、LUTYは、サイズ8×2×2を有し得、LUTUおよびLUTVの各々はサイズ2×2×2を有し得る。
[0155]さらなる例では、色予測処理ユニット86は、第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルの各々の精度値とは異なる精度値を有するルーマ成分3Dルックアップテーブルを生成することができる。たとえば、ルーマ成分3Dルックアップテーブルの精度値は、クロマ成分3Dルックアップテーブルの精度値より高くてよい。場合によっては、複雑性をさらに低減させるために、色予測処理ユニット86は、ルーマ成分3Dルックアップテーブルを単に生成することができる。
[0156]別の例として、本開示の本技法によれば、ビデオデコーダ30の色予測処理ユニット86は、3Dルックアップテーブルに関するテーブルインデックスとして使用される色成分に関連付けられた3Dルックアップテーブルの次元に関してより多くのセグメントを使用して、不平衡3Dルックアップテーブルとして、少なくとも1つの3Dルックアップテーブルを生成することができる。たとえば、ルーマ成分3Dルックアップテーブルは、ルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されているルーマ成分に基づいて、第1のクロマ次元および第2のクロマ次元よりも大きいルーマ次元を有し得る。この例では、LUTYはサイズM×N×Nを有し得、ここで、M>Nである。第1のクロマ成分3Dルックアップテーブルおよび第2のクロマ成分3Dルックアップテーブルのサイズは同様に決定され得る。たとえば、LUTUは、テーブルインデックスにおいて使用されている第1のクロマ成分に基づいて、サイズN×M×Nを有し得、LUTVは、テーブルインデックスにおいて使用されている第2のクロマ成分に基づいて、サイズN×N×Mを有し得る。このようにして、テーブルインデックスとして使用される色成分に関して、より高い解像度を用いて良好なコーディング性能を維持しながら、テーブルの各々の総サイズは低減され得る。
[0157]少なくとも1つの3Dルックアップテーブルを生成した後、色予測処理ユニット86は、ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データをそのビデオデータの上位レイヤに関する第2の色域に変換するために、その少なくとも1つの3Dルックアップテーブルを使用して色予測を実行する(182)。色予測処理ユニット86は、次いで、変換された色データに基づいて、ビデオデータの上位レイヤに関する、少なくとも1つのレイヤ間参照ピクチャを生成する(184)。ルーマ成分3Dルックアップテーブルだけが生成される場合、色予測処理ユニット86は、ルーマ成分3Dルックアップテーブルを使用して、ルーマ成分予測を実行し、レイヤ間参照ピクチャを生成するために、1D線形マッピングまたは区分線形マッピングを使用して、第1のクロマ成分予測および第2のクロマ成分予測を実行することができる。ビデオデコーダ30は、次いで、復号された残差データと、少なくとも1つの3Dルックアップテーブルを使用して生成された少なくとも1つのレイヤ間参照ピクチャとに基づいて、ビデオデータの上位レイヤのピクチャ中の予測されたビデオブロックを再構成することができる。
[0158]本開示のいくつかの態様が、説明のためにHEVC規格の拡張に関して説明されてきた。ただし、本開示で説明した技法は、他の規格またはまだ開発されていないプロプライエタリなビデオコーディング処理を含む、他のビデオコーディング処理にとって有用であり得る。
[0159]本開示で説明したビデオコーダは、ビデオエンコーダまたはビデオデコーダを指す場合がある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指す場合がある。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指す場合がある。
[0160]例に応じて、本明細書で説明した技法のうちの任意のもののいくつかの動作または事象は、異なるシーケンスで実行され得、全体的に追加、結合、または除外され得ることが認識されるべきである(たとえば、説明した動作または事象のすべてが、本技法の実施のために必要であるとは限らない)。その上、いくつかの例では、動作または事象は、たとえば、マルチスレッドの処理、割込み処理、または多数のプロセッサを通して、連続的ではなく同時に実行され得る。
[0161]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアで実施される場合、機能は、コンピュータ可読媒体上の1つもしくは複数の命令またはコード上に記憶され、あるいはこれを介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従う、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体、に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のために命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の使用可能な媒体とされ得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0162]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0163]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の統合された、あるいは個別の論理回路など、1つもしくは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明した技法の実装に適切な任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアモジュールならびに/またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つもしくは複数の回路または論理要素で十分に実装され得る。
[0164]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示した技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上記で説明したように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上記で説明した1つもしくは複数のプロセッサを含む、適切なソフトウェアおよび/あるいはファームウェアとともに相互動作可能なハードウェアユニットの集合によって提供され得る。
[0165]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
[0165]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
マルチレイヤビデオデータを処理する方法であって、
色域スケーラビリティのための少なくとも1つの3次元(3D)ルックアップテーブルを生成することと、ここにおいて、前記少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分の各々に関するのとは、ルーマ成分に関して異なるサイズを有する、
前記ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データを前記ビデオデータの上位レイヤに関する第2の色域に変換するために、前記少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行することと、
前記変換された色データに基づいて、前記ビデオデータの前記上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成することと
を備える、方法。
[C2]
前記少なくとも1つの3Dルックアップテーブルの前記サイズは、前記第1のクロマ成分および前記第2のクロマ成分の各々に関するよりも、前記ルーマ成分に関して大きい、C1に記載の方法。
[C3]
前記少なくとも1つの3Dルックアップテーブルを生成することは、非対称3Dルックアップテーブルの第1のクロマ次元および第2のクロマ次元の各々に関するのとは異なる数の、前記非対称3Dルックアップテーブルのルーマ次元に関するセグメントを使用して、前記非対称3Dルックアップテーブルを生成することを備える、C1に記載の方法。
[C4]
前記非対称3Dルックアップテーブルは、前記非対称3Dルックアップテーブルの前記第1のクロマ次元および前記第2のクロマ次元の各々に関するよりも多い、前記非対称3Dルックアップテーブルの前記ルーマ次元に関するセグメントを有する、C3に記載の方法。
[C5]
前記少なくとも1つの3Dルックアップテーブルを生成することは、サイズM×N×Kを有するルーマ成分3Dルックアップテーブルを生成すること、ここにおいて、Mが、前記ルーマ成分3Dルックアップテーブルのルーマ次元に関するサイズを表し、Nが、前記ルーマ成分3Dルックアップテーブルの第1のクロマ次元に関するサイズを表し、Kが、前記ルーマ成分3Dルックアップテーブルの第2のクロマ次元に関するサイズを表し、ここにおいて、MがNおよびKの各々とは異なる、を備える、C1に記載の方法。
[C6]
前記少なくとも1つの3Dルックアップテーブルを生成することは、前記サイズM×N×Kを有する第1のクロマ成分3Dルックアップテーブルを生成することと、前記サイズM×N×Kを有する第2のクロマ成分3Dルックアップテーブルを生成することとをさらに備える、C5に記載の方法。
[C7]
前記少なくとも1つの3Dルックアップテーブルを生成することは、第1のサイズを有するルーマ成分3Dルックアップテーブルを生成することと、第2のサイズを有する第1のクロマ成分3Dルックアップテーブルを生成することと、第3のサイズを有する第2のクロマ成分3Dルックアップテーブルを生成することとを備え、ここにおいて、前記第1のサイズが前記第2のサイズおよび前記第3のサイズの各々とは異なる、C1に記載の方法。
[C8]
前記少なくとも1つの3Dルックアップテーブルを生成することは、第1の精度値を有するルーマ成分3Dルックアップテーブルを生成することと、第2の精度値を有する第1のクロマ成分3Dルックアップテーブルを生成することと、前記第2の精度値を有する第2のクロマ成分3Dルックアップテーブルを生成することとを備え、ここにおいて、前記第1の精度値が前記第2の精度値とは異なる、C1に記載の方法。
[C9]
前記少なくとも1つの3Dルックアップテーブルを生成することは、前記3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記ルーマ成分に基づいて、前記3Dルックアップテーブルの第1のクロマ次元および第2のクロマ次元の各々に関するよりも多くの、前記3Dルックアップテーブルのルーマ次元に関するセグメントを使用して、不平衡3Dルックアップテーブルを生成することを備える、C1に記載の方法。
[C10]
前記少なくとも1つの3Dルックアップテーブルを生成することは、
ルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記ルーマ成分に基づいて、第1のクロマ次元および第2のクロマ次元の各々よりも大きいルーマ次元を有する前記ルーマ成分3Dルックアップテーブルを生成することと、
第1のクロマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記第1のクロマ成分に基づいて、ルーマ次元および第2のクロマ次元の各々よりも大きい第1のクロマ次元を有する前記第1のクロマ成分3Dルックアップテーブルを生成することと、
第2のルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記第2のクロマ成分に基づいて、第1のクロマ次元およびルーマ次元の各々よりも大きい第2のクロマ次元を有する前記第2のクロマ成分3Dルックアップテーブルを生成することと
を備える、C1に記載の方法。
[C11]
前記少なくとも1つの3Dルックアップテーブルを生成することは、ルーマ成分3Dルックアップテーブルを単に生成することを備える、C1に記載の方法。
[C12]
色予測を実行することは、前記少なくとも1つの3Dルックアップテーブルを使用して、ルーマ成分予測を実行することを備え、前記方法は、線形マッピングまたは区分線形マッピングのうちの1つを使用して、第1のクロマ成分予測および第2のクロマ成分予測を実行することをさらに備える、C1に記載の方法。
[C13]
前記少なくとも1つの3Dルックアップテーブルを使用して生成された前記少なくとも1つのレイヤ間参照ピクチャに基づいて、前記ビデオデータの前記上位レイヤのピクチャ中のビデオブロックを予測することと、
ビットストリーム内の前記予測されたビデオブロックの残差データを符号化することと、
前記ビットストリーム内の前記少なくとも1つの3Dルックアップテーブルの前記サイズを示す、1つまたは複数のシンタックス要素を符号化することと、ここにおいて、前記サイズが、前記第1のクロマ成分および前記第2のクロマ成分の各々に関するのとは、前記ルーマ成分に関して異なる
をさらに備える、C1に記載の方法。
[C14]
前記少なくとも1つの3Dルックアップテーブルの前記サイズを示す、1つまたは複数のシンタックス要素を復号することと、ここにおいて、前記サイズが、前記第1のクロマ成分および前記第2のクロマ成分の各々に関するのとは、前記ルーマ成分に関して異なる、
予測されたビデオブロックの残差データを復号することと、
前記復号された残差データと、前記少なくとも1つの3Dルックアップテーブルを使用して生成された前記少なくとも1つのレイヤ間参照ピクチャとに基づいて、前記ビデオデータの前記上位レイヤのピクチャ中の前記予測されたビデオブロックを再構成することと
をさらに備える、C1に記載の方法。
[C15]
マルチレイヤビデオデータを処理するためのビデオ処理デバイスであって、
前記マルチレイヤビデオデータを記憶するように構成されたメモリと、
前記メモリと通信し、
色域スケーラビリティのための少なくとも1つの3次元(3D)ルックアップテーブルを生成することと、ここにおいて、前記少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分に関するのとはルーマ成分に関して異なるサイズを有する、
前記ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データを前記ビデオデータの上位レイヤに関する第2の色域に変換するために、前記少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行することと、
前記変換された色データに基づいて、前記ビデオデータの前記上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成することと
を行うように構成された、1つまたは複数のプロセッサと
を備える、ビデオ処理デバイス。
[C16]
前記少なくとも1つの3Dルックアップテーブルの前記サイズは、前記第1のクロマ成分および前記第2のクロマ成分の各々に関するよりも、前記ルーマ成分に関して大きい、C15に記載のデバイス。
[C17]
前記少なくとも1つの3Dルックアップテーブルを生成するために、前記1つまたは複数のプロセッサは、非対称3Dルックアップテーブルの第1のクロマ次元および第2のクロマ次元の各々に関するのとは異なる数の、前記非対称3Dルックアップテーブルのルーマ次元に関するセグメントを使用して、前記非対称3Dルックアップテーブルを生成するように構成される、C15に記載のデバイス。
[C18]
前記非対称3Dルックアップテーブルは、前記非対称3Dルックアップテーブルの前記第1のクロマ次元および前記第2のクロマ次元の各々に関するよりも多い、前記非対称3Dルックアップテーブルの前記ルーマ次元に関するセグメントを有する、C17に記載のデバイス。
[C19]
前記少なくとも1つの3Dルックアップテーブルを生成するために、前記1つまたは複数のプロセッサは、サイズM×N×Kを有するルーマ成分3Dルックアップテーブルを生成すること、ここにおいて、Mが、前記ルーマ成分3Dルックアップテーブルのルーマ次元に関するサイズを表し、Nが、前記ルーマ成分3Dルックアップテーブルの第1のクロマ次元に関するサイズを表し、Kが、前記ルーマ成分3Dルックアップテーブルの第2のクロマ次元に関するサイズを表し、ここにおいて、MがNおよびKの各々とは異なる、を行うように構成される、C15に記載のデバイス。
[C20]
前記1つまたは複数のプロセッサは、前記サイズM×N×Kを有する第1のクロマ成分3Dルックアップテーブルを生成することと、前記サイズM×N×Kを有する第2のクロマ成分3Dルックアップテーブルを生成することとを行うように構成される、C19に記載のデバイス。
[C21]
前記少なくとも1つの3Dルックアップテーブルを生成するために、前記1つまたは複数のプロセッサは、第1のサイズを有するルーマ成分3Dルックアップテーブルを生成することと、第2のサイズを有する第1のクロマ成分3Dルックアップテーブルを生成することと、第3のサイズを有する第2のクロマ成分3Dルックアップテーブルを生成することとを行うように構成され、ここにおいて、前記第1のサイズが前記第2のサイズおよび前記第3のサイズの各々とは異なる、C15に記載のデバイス。
[C22]
前記少なくとも1つの3Dルックアップテーブルを生成するために、前記1つまたは複数のプロセッサは、第1の精度値を有するルーマ成分3Dルックアップテーブルを生成することと、第2の精度値を有する第1のクロマ成分3Dルックアップテーブルを生成することと、前記第2の精度値を有する第2のクロマ成分3Dルックアップテーブルを生成することとを行うように構成され、ここにおいて、前記第1の精度値が前記第2の精度値とは異なる、C15に記載のデバイス。
[C23]
前記少なくとも1つの3Dルックアップテーブルを生成するために、前記1つまたは複数のプロセッサは、前記3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記ルーマ成分に基づいて、前記3Dルックアップテーブルの第1のクロマ次元および第2のクロマ次元の各々に関するよりも多くの、前記3Dルックアップテーブルのルーマ次元に関するセグメントを使用して、不平衡3Dルックアップテーブルを生成するように構成される、C15に記載のデバイス。
[C24]
前記少なくとも1つの3Dルックアップテーブルを生成するために、前記1つまたは複数のプロセッサは、
ルーマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記ルーマ成分に基づいて、第1のクロマ次元および第2のクロマ次元の各々よりも大きいルーマ次元を有する前記ルーマ成分3Dルックアップテーブルを生成することと、
第1のクロマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記第1のクロマ成分に基づいて、ルーマ次元および第2のクロマ次元の各々よりも大きい第1のクロマ次元を有する前記第1のクロマ成分3Dルックアップテーブルを生成することと、
第2のクロマ成分3Dルックアップテーブルに関するテーブルインデックスとして使用されている前記第2のクロマ成分に基づいて、第1のクロマ次元およびルーマ次元の各々よりも大きい第2のクロマ次元を有する前記第2のクロマ成分3Dルックアップテーブルを生成することと
を行うように構成される、C15に記載のデバイス。
[C25]
前記少なくとも1つの3Dルックアップテーブルを生成するために、前記1つまたは複数のプロセッサは、ルーマ成分3Dルックアップテーブルを単に生成するように構成される、C15に記載のデバイス。
[C26]
前記1つまたは複数のプロセッサは、前記少なくとも1つの3Dルックアップテーブルを使用して、ルーマ成分予測を実行することと、線形マッピングまたは区分線形マッピングのうちの1つを使用して、第1のクロマ成分予測および第2のクロマ成分予測を実行することとを行うように構成される、C15に記載のデバイス。
[C27]
前記ビデオ処理デバイスはビデオ符号化デバイスを備え、前記1つまたは複数のプロセッサは、
前記少なくとも1つの3Dルックアップテーブルを使用して生成された前記少なくとも1つのレイヤ間参照ピクチャに基づいて、前記ビデオデータの前記上位レイヤのピクチャ中のビデオブロックを予測することと、
ビットストリーム内の前記予測されたビデオブロックの残差データを符号化することと、
前記ビットストリーム内の前記少なくとも1つの3Dルックアップテーブルの前記サイズを示す、1つまたは複数のシンタックス要素を符号化することと、ここにおいて、前記サイズが、前記第1のクロマ成分および前記第2のクロマ成分の各々に関するのとは前記ルーマ成分に関して異なる、
を行うように構成される、C15に記載のデバイス。
[C28]
前記ビデオ処理デバイスはビデオ復号デバイスを備え、前記1つまたは複数のプロセッサは、
前記少なくとも1つの3Dルックアップテーブルの前記サイズを示す、1つまたは複数のシンタックス要素を復号することと、ここにおいて、前記サイズが、前記第1のクロマ成分および前記第2のクロマ成分の各々に関するのとは前記ルーマ成分に関して異なる、
予測されたビデオブロックの残差データを復号することと、
前記復号された残差データと、前記少なくとも1つの3Dルックアップテーブルを使用して生成された前記少なくとも1つのレイヤ間参照ピクチャとに基づいて、前記ビデオデータの前記上位レイヤのピクチャ中の前記予測されたビデオブロックを再構成することと
を行うように構成される、C15に記載のデバイス。
[C29]
マルチレイヤビデオデータを処理するためのビデオ処理デバイスであって、
色域スケーラビリティのための少なくとも1つの3次元(3D)ルックアップテーブルを生成するための手段と、ここにおいて、前記少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分に関するのとはルーマ成分に関して異なるサイズを有する、
前記ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データを前記ビデオデータの上位レイヤに関する第2の色域に変換するために、前記少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行するための手段と、
前記変換された色データに基づいて、前記ビデオデータの前記上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成するための手段と
を備える、ビデオ処理デバイス。
[C30]
マルチレイヤビデオデータを処理するための命令を記憶したコンピュータ可読記憶媒体であって、
実行されるとき、1つまたは複数のプロセッサに、
色域スケーラビリティのための少なくとも1つの3次元(3D)ルックアップテーブルを生成することと、ここにおいて、前記少なくとも1つの3Dルックアップテーブルが、第1のクロマ成分および第2のクロマ成分に関するのとはルーマ成分に関して異なるサイズを有する、
前記ビデオデータの下位レイヤに関する第1の色域内の参照ピクチャの色データを前記ビデオデータの上位レイヤに関する第2の色域に変換するために、前記少なくとも1つの3Dルックアップテーブルを使用して、色予測を実行することと、
前記変換された色データに基づいて、前記ビデオデータの前記上位レイヤに関する少なくとも1つのレイヤ間参照ピクチャを生成することと
を行わせる、コンピュータ可読記憶媒体。