概して、本開示は、ビデオデータを符号化する様々な技術を説明する。具体的には、本開示は、符号化ビデオに対するタイルセットパラメータをシグナリングするための技術を説明する。本明細書に記載される技術によるタイルセットパラメータのシグナリングは、送信帯域幅を低減させること並びに/又は、ビデオエンコーダ及び/又はデコーダの並列化を容易にすることによって、ビデオ配信システム性能を改善するのに特に有用であり得る。本開示の技術は、ITU-T H.264、ITU-T H.265、JVET-J1001及びJVET-K1001に関して記載されているが、本開示の技術は、ビデオ符号化に一般的に適用可能であることに留意されたい。例えば、本明細書で説明する符号化技術は、ITU-T H.265に含まれるもの以外のブロック構造、イントラ予測技術、インター予測技術、変換技術、フィルタリング技術、及び/又はエントロピ符号化技術を含むビデオ符号化システム(将来のビデオ符号化規格に基づくビデオ符号化システムを含む)に組み込むことができる。したがって、ITU-T H.264、ITU-T H.265、JVET-J1001及びJVET-K1001の参照は、説明のためのものであり、本明細書で説明する技術の範囲を限定するように解釈すべきではない。更に、本明細書での文書の参照による組み込みは、本明細書で使用される用語に関して限定する又は曖昧さを生むように解釈されるべきではないことに留意されたい。例えば、組み込まれた参照が、別の組み込まれた参照のものとは異なる用語の定義を与える場合、かつ/又はその用語が本明細書で使用されるような場合には、その用語は、それぞれの対応する定義を幅広く含むように、及び/又は代わりに特定の定義のそれぞれを含むように解釈されるべきである。
一実施例では、デバイスは、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をシグナリングし、かつタイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をシグナリングするように構成された、1つ以上のプロセッサを含む。
一実施例では、非一時的コンピュータ可読記憶媒体は、そこに記録命令を含み、この命令が実行されると、デバイスの1つ以上のプロセッサに、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をシグナリングさせ、かつタイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をシグナリングさせる。
一実施例では、装置は、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をシグナリングするための手段と、タイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をシグナリングするための手段と、を含む。
一実施例では、デバイスは、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をパースし、タイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をパースし、1つ以上のタイルセットパラメータに対するパース値に基づいてビデオデータを生成する、ように構成されている1つ以上のプロセッサを含む。
一実施例では、非一時的コンピュータ可読記憶媒体は、そこに記録された命令を含み、この命令が実行されると、デバイスの1つ以上のプロセッサに、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をパースさせ、タイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をパースさせ、1つ以上のタイルセットパラメータに対するパース値に基づいてビデオデータを生成させる、命令を含む。
一実施例では、装置は、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をパースするための手段と、タイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をパースするための手段と、1つ以上のタイルセットパラメータに対するパース値に基づいてビデオデータを生成するための手段と、を含む。
1つ以上の実施例の詳細は、添付の図面及び以下の明細書に記述されている。他の特徴、目的、及び利点は、明細書及び図面から、並びに特許請求の範囲から明白であろう。
ビデオコンテンツは、典型的には、一連のフレームからなるビデオシーケンスを含む。一連のフレームはまた、ピクチャ群(group of pictures、GOP)と呼ばれることがある。各ビデオフレーム又はピクチャは、1つ以上のスライスを含むことができ、スライスは複数のビデオブロックを含む。ビデオブロックは、予測的に符号化することができる画素値(サンプルと呼ばれることもある)のアレイを含む。ビデオブロックは、走査パターン(例えば、ラスター走査)に従って順序付けすることができる。ビデオエンコーダは、ビデオブロック及びその再分割に対して予測符号化を実行する。ITU-T H.264は、16×16のルマサンプルを含むマクロブロックを規定している。ITU-T H.265は、類似の符号化ツリーユニット(Coding Tree Unit、CTU)構造(最大符号化ユニット(Largest Coding Unit、LCU)と呼んでもよい)を規定するが、ピクチャは、等しいサイズのCTUに分割することができ、各CTUは、16×16、32×32、又は64×64のルマサンプルを有する符号化ツリーブロック(Coding Tree Block、CTB)を含むことができる。本明細書で使用されるとき、ビデオブロックという用語は、一般に、ピクチャの領域を指すことがあり、又はより具体的には、予測的に符号化できる画素値の最大アレイ、その再分割、及び/又は対応する構造を指すことがある。更に、ITU-T H.265によれば、各ビデオフレーム又はピクチャは、1つ以上のタイルを含むように区画化してもよく、タイルは、ピクチャの矩形領域に対応する符号化ツリーユニットのシーケンスである。
ITU-T H.265では、CTUは、ビデオデータの各成分(例えば、ルマ(Y)及びクロマ(Cb及びCr))についてのそれぞれのCTBから構成される。更に、ITU-T H.265では、CTUを四分ツリー(QT)分割構造に従って分割することができ、その結果、CTUのCTBが、符号化ブロック(CB:Coding Block)に分割される。すなわち、ITU-T H.265では、CTUを四分ツリーリーフノードに分割することができる。ITU-T H.265によれば、1つのルマCBは、2つの対応するクロマCB及び関連するシンタックス要素と共に、符号化ユニット(CU)と呼ばれる。ITU-T H.265では、CBの最小許容サイズをシグナリングすることができる。ITU-T H.265では、ルマCBの最も小さい最小許容サイズは、8×8のルマサンプルである。ITU-T H.265では、イントラ予測又はインター予測を用いてピクチャ領域を符号化する決定は、CUレベルで行われる。
ITU-T H.265では、CUは、CUにおけるルートを有する予測ユニット(PU)構造に関連付けられている。ITU-T H.265では、PU構造は、対応する参照サンプルを生成する目的で、ルマCB及びクロマCBを分割することを可能にする。すなわち、ITU-T H.265では、ルマCB及びクロマCBを、それぞれのルマ及びクロマ予測ブロック(PB)に分割することができ、ここでPBは、同じ予測が適用されるサンプル値のブロックを含む。ITU-T H.265では、CBを1、2、又は4個のPBに分割することができる。ITU-T H.265は、64×64のサンプルから4×4のサンプルまでのPBサイズをサポートする。ITU-T H.265では、正方形のPBがイントラ予測のためにサポートされ、ここでCBはPBを形成することができるか、又はCBを4つの正方形のPBに分けることができる(すなわち、イントラ予測PBサイズタイプは、M×M又はM/2×M/2を含み、ここでMは正方形のCBの高さ及び幅である)。ITU-T H.265では、正方形のPBに加えて、矩形のPBがインター予測のためにサポートされ、ここでCBを垂直又は水平に二等分してPBを形成することができる(すなわち、インター予測PBタイプはM×M、M/2×M/2、M/2×M、又はM×M/2を含む)。更に、ITU-T H.265では、インター予測のために、4つの非対称PB分割がサポートされ、ここでCBは、CBの高さ(の上部又は下部で)又は幅(の左部又は右部)の4分の1で2つのPBに分割される(すなわち、非対称区分としては、M/4×M左部、M/4×M右部、M×M/4上部、及びM×M/4下部を含む)ことに留意されたい。PBに対応するイントラ予測データ(例えば、イントラ予測モードシンタックス要素)又はインター予測データ(例えば、動きデータシンタックス要素)を使用して、PBに関する参照サンプル値及び/又は予測サンプル値が生成される。
JEMは、256×256のルマサンプルの最大サイズを有するCTUを規定している。JEMは、四分ツリー+二分ツリー(QTBT)ブロック構造を規定している。JEMでは、QTBT構造は、四分ツリーリーフノードを二分ツリー構造(BT)によって更に分割することを可能にする。すなわち、JEMでは、二分ツリー構造は、四分ツリーリーフノードを垂直又は水平に再帰的に分割することを可能にする。したがって、JEMでの二分ツリー構造は、正方形のリーフノード及び矩形のリーフノードを可能にし、それぞれのリーフノードは、1つのCBを含む。図2に示すように、GOPに含まれるピクチャは複数のスライスを含むことができ、各スライスはCTUのシーケンスを含み、各CTUはQTBT構造に従って分割することができる。JEMでは、CBは、追加の分割を一切行わない予測で使用される。すなわち、JEMでは、CBは、同じ予測が適用されるサンプル値のブロックであってよい。したがって、JEM QTBTリーフノードは、ITU-T H.265におけるPBに類似するものであってよい。
イントラ予測データ(例えば、イントラ予測モードシンタックス要素)又はインター予測データ(例えば、動きデータシンタックス要素)は、PUを対応する参照サンプルに関連させることができる。残差データは、ビデオデータの各成分(例えば、ルマ(Y)及びクロマ(Cb及びCr))に対応する差分値のそれぞれのアレイを含むことができる。残差データは、画素領域内とすることができる。離散コサイン変換(discrete cosine transform、DCT)、離散サイン変換(discrete sine transform、DST)、整数変換、ウェーブレット変換、又は概念的に類似の変換などの変換を、画素差分値に適用して、変換係数を生成することができる。ITU-T H.265では、CUは、更に変換ユニット(TTransform Unit、TU)に再分割できることに留意されたい。すなわち、画素差分値のアレイは、変換係数を生成するために再分割することができ(例えば、4つの8×8変換を、16×16のルマCBに対応する残差値の16×16のアレイに適用することができる)、そのような再分割は、変換ブロック(Transform Block、TB)と呼ばれることがある。変換係数は、量子化パラメータ(quantization parameter、QP)に従って量子化され得る。量子化された変換係数(これはレベル値と呼ばれることがある)は、エントロピ符号化技術(例えば、コンテンツ適応可変長符号化(content adaptive variable length coding、CAVLC)、コンテキスト適応2値算術符号化(context adaptive binary arithmetic coding、CABAC)、確率区間分割エントロピ符号化(probability interval partitioning entropy coding、PIPE)など)に従ってエントロピ符号化することができる。更に、シンタックス要素、例えば、予測モードを示すシンタックス要素なども、エントロピ符号化することができる。エントロピ符号化され量子化された変換係数及び対応するエントロピ符号化されたシンタックス要素は、ビデオデータを再生成するために使用することができる準拠ビットストリームを形成することができる。二値化プロセスを、エントロピ符号化プロセスの一部としてシンタックス要素に対して実行することができる。二値化は、シンタックス値を一連の1つ以上のビットに変換するプロセスを指す。これらのビットは、「ビン」と呼ばれることがある。
上述したように、イントラ予測データ又はインター予測データは、サンプル値のブロックに対する参照サンプル値を生成するために使用される。現在のPB又は別の種類のピクチャ領域構造に含まれるサンプル値と、関連する参照サンプル(例えば、予測を用いて生成された参照サンプル)との差は、残差データと呼ばれることがある。上述したように、イントラ予測データ又はインター予測データは、ピクチャ(例えば、PB又はCB)の領域を、対応する参照サンプルと関連付けることができる。イントラ予測符号化のために、イントラ予測モードは、ピクチャ内の参照サンプルの位置を指定することができる。ITU-T H.265では、定義された可能なイントラ予測モードは、プレーナ(すなわち、表面適合)予測モード(predMode:0)、DC(すなわち、フラット全体平均化)予測モード(predMode:1)、及び33角度予測モード(predMode:2-34)を含む。JEMでは、定義された可能なイントラ予測モードは、プレーナ予測モード(predMode:0)、DC予測モード(predMode:1)、及び65角度予測モード(predMode:2-66)を含む。平面及びDC予測モードは、非方向性予測モードと呼ばれることがあり、角度予測モードは、方向性予測モードと呼ばれることがあることに留意されたい。本明細書で説明する技術は、定義された可能な予測モードの数にかかわらず、一般的に適用可能であり得ることに留意されたい。
インター予測符号化のために、動きベクトル(MV)は、符号化されるべきビデオブロックのピクチャ以外のピクチャ内の参照サンプルを識別し、それによってビデオの時間的冗長性を利用する。例えば、現在のビデオブロックは、以前に符号化されたフレーム(単数又は複数)内に位置する参照ブロック(単数又は複数)から予測することができ、動きベクトルは、参照ブロックの位置を示すために使用することができる。動きベクトル及び関連するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに対する解像度(例えば、四分の一画素の精度、二分の一画素の精度、一画素の精度、二画素の精度、四画素の精度)、予測方向、及び/又は参照ピクチャのインデックス値を記述することができる。更に、例えば、ITU-T H.265などの符号化規格は、動きベクトル予測をサポートすることができる。動きベクトル予測は、隣接するブロックの動きベクトルを用いて動きベクトルを指定することを可能にする。動きベクトル予測の例としては、高度動きベクトル予測(advanced motion vector prediction)(AMVP)、時間動きベクトル予測(temporal motion vector prediction)(TMVP)、いわゆる「結合」モード、並びに「スキップ」及び「ダイレクト」動き推測が挙げられる。更に、JEMは、高度時間動きベクトル予測(advanced temporal motion vector prediction)(ATMVP)、時空間動きベクトル予測(spatial-temporal motion vector prediction)(STMVP)、フレームレートアップコンバージョン(FRUC)技術に基づく特別なマージモードであるパターンマッチ動きベクトル導出(PMMVD)モード、及びアフィン変換動き補償予測をサポートする。
残差データは、ビデオデータのそれぞれの成分に対応する差分値のそれぞれのアレイを含むことができる。残差データは、画素領域内とすることができる。離散コサイン変換(discrete cosine transform)(DCT)、離散サイン変換(discrete sine transform)(DST)、整数変換、ウェーブレット変換、又は概念的に類似の変換などの変換を、差分値のアレイに適用して、変換係数を生成することができる。ITU-T H.265では、CUは、CUレベルにおけるルートを有する変換ユニット(TU)構造に関連付けられている。すなわち、ITU-T H.265では、上述のように、変換係数を生成する目的で、差分値のアレイを再分割することができる(例えば、4つの8×8変換を残差値の16×16のアレイに適用することができる)。ITU-T H.265では、必ずしもTBをPBに整列する必要はないことに留意されたい。
JEMでは、CBに対応する残差値を使用して、更なる分割を行うことなく変換係数が生成されることに留意されたい。すなわち、JEMでは、QTBTリーフノードは、ITU-T H.265におけるPB及びTBの両方に類似のものとすることができる。JEMでは、コア変換及び後続の二次変換を(ビデオエンコーダで)適用して変換係数を生成することができる。ビデオデコーダに対しては、変換の順序は逆転される。更に、JEMでは、二次変換を適用して変換係数を生成するか否かは、予測モードに依存し得る。
量子化プロセスを、変換係数に対して実行することができる。量子化は、特定の値のセットに制限された振幅によって変換係数を近似する。量子化は、変換係数の群を表すために必要なデータの量を変化させるために使用されてもよい。量子化は、倍率による変換係数の除算及び任意の関連する丸め関数(例えば、最も近い整数への丸め)によって実現され得る。量子化された変換係数は、係数レベル値と呼ばれることがある。逆量子化(Inverse quantization)(又は「脱量子化(dequantization)」)は、倍率による係数レベル値の乗算を含むことができる。本明細書で使用されるとき、量子化プロセスという用語は、いくつかの場合では、レベル値を生成する倍率による除算、又は、いくつかの場合では、変換係数を回復する倍率による乗算を指す場合があることに留意されたい。すなわち、量子化プロセスは、いくつかの場合では、量子化、及び、いくつかの場合では、逆量子化を指すことがある。
本明細書で使用される式に関して、以下の算術演算子が使用され得る。
更に、以下の数学関数を使用することができる。
Log2(x)、底を2とするxの対数;
Ceil(x)、x以上の最小整数。
本明細書で使用されるシンタックスの例に関して、論理演算子の以下の定義が適用され得る。
x&&y xとyとのブール論理「積」
x||y xとyとのブール論理「和」
!ブール論理「否」
x?y:z xが真であるか又は0に等しくない場合はyの値を評価し、そうでない場合はzの値を評価する。
更に、以下の関係演算子が適用されてもよい:
更に、本明細書で使用されるシンタックス記述子において、以下の記述子が適用されてもよいことに留意されたい。
-b(8):任意のパターンのビットストリングを有するバイト(8ビット)。この記述子のパースプロセスは、関数read_bit(8)の戻り値によって指定される。
-f(n):左ビットが最初に(左から右に)書き込まれたnビットを使用した固定パターンビットストリング。この記述子のパースプロセスは、関数read_bit(n)の戻り値によって指定される。
-u(n):nビットを用いた符号なし整数。
-ue(v):左ビットが最初である、符号なし整数0次Exp-Golomb符号化シンタックス要素。
上述のように、ITU-T H.265によれば、各ビデオフレーム又はピクチャは、1つ以上のスライスを含むように区画化してもよく、1つ以上のタイルを含むように更に区画化してもよい。図2は、スライスを含むピクチャのグループの例を示す概念図である。図2に示す例では、Pic4は、2つのスライス(すなわち、Slice1及びSlice2)を含むものとして示されており、各スライスは(例えばラスタ走査順に)CTUのシーケンスを含む。スライスは、独立したスライスセグメントから始まり、かつ(もしあれば)後続の全ての従属スライスセグメントを含む1つ以上のスライスセグメントのシーケンスであり、ここで、後続の全ての従属スライスセグメントの後には、(もしあれば)同じアクセスユニット内において次の独立したスライスセグメントが続くことに留意されたい。スライスのようなスライスセグメントは、符号化ツリーユニットのシーケンスである。本明細書に記載される実施例では、いくつかの場合において、スライス及びスライスセグメントという用語は、符号化ツリーユニットのシーケンスを示すために互換的に使用され得る。ITU-T H.265では、タイルは、2つ以上のスライスに包含される符号化ツリーユニットからなっていてもよく、スライスは、2つ以上のタイルに包含される符号化ツリーユニットからなっていてもよいことに留意されたい。しかしながら、ITU-T H.265は、以下の条件のうちの1つ又は両方が満たされなければならないと規定している。(1)あるスライス中の全ての符号化ツリーユニットは同じタイルに属する、及び(2)あるタイル内の全ての符号化ツリーユニットは同じスライスに属する。タイルセットは、依存性(例えば、イントラ予測依存性、エントロピ符号化依存性など)を符号化するための境界を定義するために使用することができ、これにより、符号化における並列処理を可能にすることができる。
ITU-T H.265では、符号化ビデオシーケンス(CVS)は、アクセスユニットのシーケンスとしてカプセル化(又は構造化)されてもよく、各アクセスユニットは、ネットワーク抽象化層(NAL)ユニットとして構造化されたビデオデータを含む。ITU-T H.265では、ビットストリームは、1つ以上のCVSを形成するNALユニットのシーケンスを含むものとして説明されている。ITU-T H.265は、フォーマット範囲拡張(RExt)、スケーラビリティ(SHVC)、マルチビュー(MV-HEVC)及び3-D(3D-HEVC)を含むマルチレイヤ拡張をサポートすることに留意されたい。マルチレイヤ拡張は、ビデオ表示がベースレイヤ及び1つ以上の追加のエンハンスメントレイヤを含むことを可能にする。例えば、ベースレイヤは、基本レベルの品質(例えば、高解像度レンダリング)を有するビデオ表示の提供を可能とし得、エンハンスメントレイヤは、強化された品質レベル(例えば、超高解像度レンダリング)を有するビデオ表示の提供を可能とし得る。ITU-T H.265では、ベースレイヤを参照することによってエンハンスメントレイヤを符号化することができる。すなわち、例えば、エンハンスメントレイヤ内のピクチャは、ベースレイヤ内の1つ以上のピクチャ(その拡大/縮小したバージョンを含む)を参照することによって、(例えば、インター予測技術を使用して)符号化されてもよい。ITU-T H.265では、各NALユニットは、NALユニットが関連付けられているビデオデータのレイヤを示す識別子を含んでもよい。サブビットストリーム抽出とは、受信ビットストリーム内のデータを破棄及び/又は修正することによって、準拠ビットストリームを受信しているデバイスが、新たな準拠ビットストリームを形成するプロセスを指し得ることに留意されたい。例えば、サブビットストリーム抽出を使用して、ビデオ(例えば、高品質表現)の特定の表現に対応する新しい準拠したビットストリームを形成することができる。
図2に示す例を参照すると、Pic4に含まれるビデオデータの各スライス(すなわち、Slice1及びSlice2)は、NALユニットにカプセル化されているものとして示されている。ITU-T H.265では、ビデオシーケンス、GOP、ピクチャ、スライス、及びCTUのそれぞれは、ビデオ符号化特性を記述するメタデータに関連付けられてもよい。ITU-T H.265は、ビデオデータ特性及び/又はビデオ符号化特性を記述するために使用され得るパラメータセットを定義する。ITU-T H.265では、パラメータセットは、特殊な種別のNALユニットとしてカプセル化されてもよく、又はメッセージとしてシグナリングされてもよい。符号化ビデオデータ(例えばスライス)を含むNALユニットは、VCL(ビデオ符号化レイヤ)NALユニットと呼ばれることがあり、メタデータ(例えばパラメータセット)を含むNALユニットは、非VCL NALユニットと呼ばれることがある。更に、ITU-T H.265は、補足エンハンスメント情報(SEI)メッセージがシグナリングされることを可能にする。ITU-T H.265では、SEIメッセージは、復号、表示、又は他の目的に関連するプロセスを支援するが、SEIメッセージは、復号プロセスによってルマ又はクロマサンプルを作成するために必要とされない場合がある。ITU-T H.265では、SEIメッセージが、非VCL NALユニットを使用してビットストリームでシグナリングされてもよい。更に、SEIメッセージは、ビットストリーム内に存在することによる以外の何らかの手段(すなわち、帯域外でシグナリングされる)によって伝達されてもよい。
図3は、複数のCVSを含むビットストリームの一例を示しており、CVSは、それぞれのアクセスユニットに含まれるNALユニットによって表される。図3に例示する実施例では、非VCL NALユニットは、それぞれのパラメータセットユニット(すなわち、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、及びピクチャパラメータセット(PPS)ユニット)、及びアクセスユニットデリミタNALユニットを含む。ITU-T H.265は、NALユニットに含まれる生バイトシーケンスペイロード(RBSP)データ構造の種別を明示するNALユニットヘッダセマンティクスを定義する。
表1は、ITU-T H.265に提供され、JVET-K1001で更に使用される一般的なNALユニットのシンタックスを示す。
ITU-T H.265は、以下の一般的なNALユニットの意味論を提供する。
NumBytesInNalUnitは、NALユニットのサイズをバイト単位で規定する。この値は、NALユニットの復号に必要である。NumBytesInNalUnitの推論を可能にするために、NALユニット境界の境界設定のいくつかの形態が必要である。このような境界設定方法の1つは、バイトストリーム形式に対して[ITU-T H.265のAnnex B]に指定される。境界設定の他の方法は、本明細書外で指定されてもよい。
注1 - ビデオ符号化層(VCL)は、ビデオデータのコンテンツを効率的に表すように指定されている。NALは、そのデータをフォーマットし、様々な通信チャネル又は記憶媒体上での搬送に適切な様式でヘッダ情報を提供するように指定される。全てのデータは、NALユニットに含まれ、これらのそれぞれは、整数のバイト数を含む。NALユニットは、パケット指向及びビットストリームシステムの両方で使用するための一般的なフォーマットを規定する。パケット指向トランスポート及びバイトストリームの両方に関するNALユニットのフォーマットは、各NALユニットが、[ITU-T H.265のAnnex B]で指定されたバイトストリーム形式においてスタートコードプレフィックス及び追加のパディングバイトによって先行され得ることを除き、同一である。
rbsp_byte[i]は、RBSPのi番目のバイトである。RBSPは、以下のように、バイトの順序付けられたシーケンスとして指定される。
RBSPは、以下のようにデータビットのストリング(SODB)を含む。
-SODBが空である場合(すなわち、ゼロビット長)、RBSPも空である。
-そうでなければ、RBSPは、以下のようにSODBを含有する。
1)RBSPの最初のバイトは、SODBの(最上位の、最も左の)8ビットのSODBを含み、RBSPの次のバイトは、SODBの次の8ビットを含む、というように、SODBの8ビット未満が残るまで続く。
2)rbsp_trailing_bits()は、SODBの後に以下のように存在する。
i)最終的なRBSPバイトの最初の(最上位の、最も左の)ビットは、SODBの残りのビット(もしあれば)を含む。
ii)次のビットは、1に等しい単一のrbsp_stop_one_bitからなる。
iii)rbsp_stop_one_bitがバイト整列されたバイトの最後のビットではない場合、1つ以上のrbsp_alignment_zero_bitが存在して、バイト整列をもたらす。
3)0x0000に等しい1つ以上のcabac_zero_word16ビットのシンタックス要素は、RBSPの最後の、rbsp_trailig_bits()の後のいくつかのRBSPに存在してもよい。
これらのRSP特性を有するシンタックス構造は、「_rbsp」サフィックスを使用してシンタックス表に示される。これらの構造は、NALユニット内で、rbsp_byte[i]データバイトのコンテンツとして搬送される。RBSPシンタックス構造とNALユニットとの関連付けは、[本明細書の表3]に記載されているとおりである。
注2 - RBSPの境界が分かっている場合、デコーダは、RBSPのバイトのビットを連結し、1に等しい最後の(最下位の、最も右の)ビットであるrbsp_stop_one_bitを破棄し、0に等しい、それに続くビットである、あらゆる後続の(より下位の、更に右の)ビットを破棄することによって、RBSPからSODBを抽出することができる。復号プロセスに必要なデータは、RBSPのSODB部分に含まれる。
emulation_prevention_three_byteは、0×03に等しいバイトである。NALユニットにemulation_prevention_three_byteが存在する場合には、復号処理によって廃棄するものとする。
NALユニットの最後のバイトは0×00に等しくないものとする。
NALユニット内では、次の3バイトシーケンスは、いずれのバイト整列位置でも生じない。
-0x000000
-0x000001
-0x000002
NALユニット内では、以下のシーケンス以外の、0×000003から始まる任意の4バイトシーケンスは、いずれのバイト整列位置でも発生しない。
-0x00000300
-0x00000301
-0x00000302
-0x00000303
表2は、ITU-T H.265に規定されているNALユニットヘッダシンタックスを示す。
ITU-T H.265は、表2に示すそれぞれのシンタックス要素に対して以下の定義を規定する。
forbidden_zero_bitは、0に等しいものとする。
nuh_layer_idは、VCL NALユニットが属するレイヤの識別子、又は非VCL NALユニットが適用されるレイヤの識別子を規定する。
nuh_temporal_id_plus1-1は、NALユニットに対する時間識別子を規定する。nuh_temporal_id_plus1の値は、0に等しくてはいけない。
nal_unit_type,nal_unit_typeは、NALユニットに含まれるRBSPデータ構造のタイプを規定する。表3は、ITU-T H.265に規定されているNALユニットタイプを示す。
簡潔にするために、ITU-T H.265におけるNALユニットタイプのそれぞれの完全な説明は、本明細書では提供されない。しかしながら、ITU-T H.265の関連するセクションを参照する。
上述のように、JVET-K1001は、ビデオ符号化仕様のドラフトテキストである。表4は、JVET-K1001におけるNALユニットヘッダのシンタックスを示す。
JVET−K1001は、表4に示すそれぞれのシンタックス要素に対して以下の定義を規定する。
forbidden_zero_bitは、0に等しいものとする。
nal_unit_typeに関して、JVET-K1001は、NALユニットタイプがまだ定義されるべき場所を提供する。
JVET-K1001は、基本的なシーケンスパラメータセットシンタックスを更に提供する。表5は、JVET-K1001に提供されるシーケンスパラメータセットのシンタックスを示す。
表5に示されるそれぞれのシンタックス要素の基本的な定義は、以下のとおりである。
sps_seq_parameter_set_idは、他のシンタックス要素による参照のためのSPSの識別子を提供する。sps_seq_parameter_set_idの値は、両端値を含む、0〜15の範囲にあるものとする。
Chroma_format_idcは、ルマサンプリングに対するクロマサンプリングを規定する。Chroma_format_idcの値は、両端値を含む、0〜3の範囲にあるものとする。
1に等しいseparate_colour_plane_flagは、4:4:4クロマフォーマットの3つの色成分が別々に符号化されていることを規定し、0に等しいseparate_colour_plane_flagは、色成分が別々に符号化されていないことを規定する。separate_colour_plane_flagが存在しない場合、これは0に等しいと推測される。separate_colour_plane_flagが1に等しいとき、符号化されたピクチャは、3つの色成分からなり、それぞれが1つの色プレーン(Y、Cb、又はCr)の符号化されたサンプルからなり、モノクロ符号化シンタックスを使用している。この場合、各色プレーンは、特定のcolour_plane_id値と関連付けられる。
pic_width_in_luma_samplesは、ルマサンプルの単位で各復号されたピクチャの幅を規定する。
pic_height_in_luma_samplesは、ルマサンプルの単位で各復号されたピクチャの高さを規定する。
bit_depth_luma_minus8は、ルマアレイのサンプルのビット深度及びルマ量子化パラメータ範囲オフセットの値を規定する。
bit_depth_chroma_minus8は、クロマアレイのサンプルのビット深度及びクロマ量子化パラメータ範囲オフセットの値を規定する。
1に等しいqtbtt_dual_tree_intra_flagは、Iスライスに関して、各CTUは、暗黙的なクワツリー分割を使用して64x64のルマサンプルを有する符号化ユニットに分割され、これらの符号化ユニットは、ルマ及びクロマのための2つの別個の符号化である四分ツリーシンタックス構造のルートであることを規定する。
log2_ctu_size_minus2+2は、各CTUのルマ符号化ツリーブロックサイズを規定する。
log2_min_qt_size_in_slices_minus2+2は、2(I)に等しいslice_typeによるスライス内のCTUの四分ツリー分割から生じるリーフブロックの最小ルマサイズを規定する。
log2_min_qt_size_inter_slices_minus2+2は、0(B)又は1(P)に等しいslice_typeによるスライス内のCTUの四分ツリー分割から生じるリーフブロックの最小ルマサイズを規定する。
max_mtt_hierarchy_depth_inter_slicesは、0(B)又は1(P)に等しいslice_typeによるスライス内の四分ツリーリーフのマルチタイプツリー分割から生じる符号化ユニットの最大階層深さを規定する。
max_mtt_hierarchy_depth_intra_slicesは、2(I)に等しいslice_typeによるスライス内の四分ツリーリーフのマルチタイプツリー分割から生じる符号化ユニットの最大階層深さを規定する。
0に等しいsps_cclm_enabled_flagは、ルマ成分からクロマ成分へのクロスコンポーネント線形モデルイントラ予測が無効化されていることを規定する。1に等しいsps_cclm_enabled_flagは、ルマ成分からクロマ成分へのクロスコンポーネント線形モデルイントラ予測が有効化されていることを規定する。
1に等しいsps_temporal_mvp_enabled_flagは、slice_temporal_mvp_enabled_flagが、CVSにおいてIに等しくないslice_typeを有するスライスのスライスヘッダ内に存在することを規定する。0に等しいsps_temporal_mvp_enabled_flagは、slice_temporal_mvp_enabled_flagが、スライスヘッダ内に存在せず、時間動きベクトル予測因子がCVSで使用されないことを規定する。
1に等しいsps_sbtmvp_enabled_flagは、サブブロックベースの時間動きベクトル予測因子が、CVSにおいてIに等しくないslice_typeタイプを有する全てのスライスによるピクチャの復号で使用され得ることを規定する。0に等しいsps_sbtmvp_enabled_flagは、サブブロックベースの時間的動きベクトル予測因子がCVSにおいて使用されないことを規定する。sps_sbtmvp_enabled_flagが存在しない場合、これは0に等しいと推測される。
log2_sbtmvp_default_size_minus2は、slice_sbtmvp_size_override_flagが0に等しい場合、CVSにおいてIに等しくないslice_typeを有するスライスのスライスヘッダにおけるシンタックス要素log2_sbtmvp_active_size_minus2の推定値を規定する。
1に等しいsps_amvr_enabled_flagは、適応動きベクトル差分解像度が動きベクトル符号化内で使用されることを規定する。0に等しいamvr_enabled_flagは、適応動きベクトル差分解能が動きベクトル符号化において使用されないことを規定する。
sps_affine_enabled_flagは、アフィンモデルに基づく動き補償をインター予測のために使用することができるかどうかを規定する。sps_affine_enabled_flagが0に等しい場合、シンタックスは、CVSにおいてアフィンモデルベースの動き補償が使用されず、CVSの符号化ユニットシンタックスには、merge_affine_flag、inter_affine_flag及びcu_affine_type_flagが存在しないように制約されるものとする。そうでなければ(sps_affine_enabled_flagは1)、アフィンモデルベースの動き補償をCVSで使用することができる。
sps_affine_type_flagは、6パラメータアフィンモデルベースの動き補償をインター予測のために使用することができるかどうかを規定する。sps_affine_type_flagが0に等しい場合、シンタックスは、CVSにおいて6パラメータアフィンモデルベースの動き補償が使用されず、CVSにおける符号化ユニットシンタックスには、cu_affine_type_flagが存在しないように制約されるものとする。そうでなければ(sps_affine_type_flagは1に等しい)、6パラメータアフィンモデルベースの動き補償をCVSで使用することができる。存在しない場合、sps_affine_type_flagの値は0に等しいと推測される。
1に等しいsps_mts_intra_enabled_flagは、eu_mts_flagがイントラ符号化ユニットのための残りの符号化シンタックス内に存在し得ることを規定する。0に等しいsps_mts_intra_enabled_flagは、cu_mts_flagが、イントラ符号化ユニットのための残りの符号化シンタックス内に存在しないことを規定する。
sps_mts_inter_enabled_flagは、cu_mts_flagが、インター符号化ユニットのための残りの符号化シンタックス内に存在し得ることを既定する。0に等しいsps_mts_inter_enabled_flagが、インター符号化ユニットのための残りの符号化シンタックス内に存在しないことを既定する。
JVET-K1001は、基本ピクチャラメータセットシンタックスを更に提供する。表6は、JVET-K1001のピクチャパラメータセットのシンタックスを示す。
JVET-K1001は、表6に示すそれぞれのシンタックス要素に対して以下の定義を規定する。
pps_pic_parameter_set_idは、他のシンタックス要素による参照のためのPPSを識別する。pps_pic_parameter_set_idの値は、両端値を含む、0〜63の範囲にあるものとする。
pps_seq_parameter_set_idは、SPSのsps_seq_parameter_set_idの値を規定する。pps_seq_parameter_set_idの値は、両端値を含む、0~15の範囲にあるものとする。
1に等しいtransform_skip_enabled_flagは、transform_skip_flagが、残りの符号化シンタックス内に存在し得ることを規定する。0に等しいtransform_skip_flagは、transform_skip_flagが、残りの符号化シンタックス内に存在しないことを規定する。
JVET-K1001は、アクセスユニットデリミタシンタックスを更に提供する。表7は、JVET-K1001におけるアクセスユニットデリミタのシンタックスを示す。
JVET-K1001は、表7に示すそれぞれのシンタックス要素に対して以下の定義を規定する。
pic_typeは、アクセスユニットデリミタNALユニットを含むアクセスユニット内の符号化ピクチャの全てのスライスに対するslice_typeの値が、pic_typeの所定の値について表8に列挙されるセットのメンバーであることを示す。pic_typeの値は、本明細書のこのバージョンに適合するビットストリームにおいて、0、1又は2に等しいものとする。pic_typeの他の値は、将来の使用のために確保される。本明細書のこのバージョンに適合するデコーダは、pic_typeの予備の値を無視するものとする。
Bスライスは、双予測インター予測、ユニ予測インター予測、及び予測内予測が許可されるスライスを指し、Pスライスは、ユニ予測インター予測及びイントラ予測が許可されるスライスを指し、Iスライスは、イントラ予測のみが許可されるスライスを指すことに留意されたい。いくつかの場合において、Bスライス及びPスライスは、総じてインタースライスと呼ばれることに留意されたい。
JVET-K1001は、シーケンスの終了シンタックス、ビットストリームの終了シンタックス、及びフィラーデータシンタックスを更に提供する。表9は、JVET-K1001において提供されるシーケンスシンタックスの終了を示し、表10は、JVET-K1001において提供されるビットストリームシンタックスの終了を示し、表11は、JVET-K1001において提供されるビットストリームシンタックスの終了を示す。
JVET-K1001は、表11に示すそれぞれのシンタックス要素に対して以下の定義を規定する。
ff_byteは、0xFFに等しいバイトである。
JVET-K1001は、スライスヘッダを含むスライス層のシンタックスを更に提供する。表12は、JVET-JK001において提供されるスライス層のシンタックスを示し、表13は、JVET-K1001において提供されるスライスヘッダを示す。
JVET-K1001は、表13に示すそれぞれのシンタックス要素に対して以下の定義を規定する。
slice_pic_parameter_set_idは、使用中のPPSに対するpps_pic_parameter_set_idの値を既定する。slice_pic_parameter_set_idの値は、両端値を含む、0〜63の範囲にあるものとする。
slice_addressは、ピクチャのCTBラスタスキャンにおいて、スライス内の第1のCTBのアドレスを既定する。
slice_typeは、表14によるスライスの符号化タイプを既定する。
nal_unit_typeが[決定すべき]範囲の両端値を含む値を有する場合、すなわち、ピクチャはIRAPピクチャである場合、slice_typeは2に等しいものとする。
log2_diff_ctu_max_bt_sizeは、バイナリ分割を使用して分割され得る符号化ブロックのルマCTBサイズと最大ルマサイズ(幅又は高さ)との間の差を既定する。
1に等しいsbtmvp_size_override_flagは、シンタックス要素log2_sbtmvp_active_size_minus2が現在のスライスに対して存在することを既定する。0に等しいsbtmvp_size_override_flagは、シンタックス要素log2_atmvp_active_size_minus2が存在せず、log2_sbtmvp_size_active_minus2がlog2_sbtmvp_default_size_minus2に等しいと推測されることを既定する。
log2_sbtmvp_active_size_minus2+2は、現在のスライスのサブブロックベースのTMVPの動きパラメータを導出するために使用されるサブブロックサイズの値を既定する。log2_sbtmvp_size_active_minus2が存在しない場合、それはlog2_sbtmvp_default_size_minus2に等しいと推測される。変数は、以下のように導出される。
slice_temporal_mvp_enabled_flagは、時間動きベクトル予測因子がインター予測のために使用され得るかどうかを既定する。slice_temporal_mvp_enabled_flagが0に等しい場合、現在のピクチャのシンタックス要素は、現在のピクチャの復号に時間動きベクトル予測因子が使用されないように制約されるものとする。そうでなければ(slice_temporal_mvp_enabled_flagが1に等しい)、時間動きベクトル予測因子は、現在のピクチャの復号に使用することができる。存在しない場合、slice_temporal_mvp_enabled_flagの値は0に等しいと推測される。
1に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)シンタックス構造がパースされず、MvdL1[x0][y0][compIdx]がcompIdx=0〜1に対して、0に等しく設定されていることを示す。0に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)シンタックス構造がパースされることを示す。
1に等しいcollocated_from_10_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト0から導出されることを既定する。0に等しいcollocated_from_10_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト1から導出されることを既定する。collocated_from_10_flagが存在しない場合、これは1に等しいと推測される。
six_minus_max_num_merge_candは、6から減算されるスライス内でサポートされるマージ動きベクトル予測(MVP)候補の最大数を既定する。マージMVP候補の最大数、MaxNumMergeCandは、以下のように導出される。
MaxNumMergeCandの値は、両端値を含む、1〜6の範囲にあるものとする。
0に等しいdep_quant_enabled_flagは、依存量子化が無効化されていることを既定する。1に等しいdep_quant_enabled_flagは、依存量子化が有効化されていることを既定する。
0に等しいsign_data_hiding_enabled_flagは、サインビット非表示が無効化されていることを既定する。1に等しいsign_data_hiding_enabled_flagは、サインビット非表示が有効化されていることを既定する。sign_data_hiding_enabled_flagが存在しない場合、これは0に等しいと推測される。
JVET-K1001は、RBSP末尾ビットシンタックス及びバイト整列シンタックスを更に提供する。表15は、JVET-K1001において提供されるRBSP末尾ビットシンタックスを示し、表16は、JVET-K1001において提供されるバイト整列シンタックスを示す。
上述のように、ITU-T H.265によれば、各ビデオフレーム又はピクチャは、1つ以上のタイルを含むように区画化してもよい。ITU-T H.265では、ピクチャのタイル構造は、ピクチャパラメータセットを使用してシグナリングされる。表17は、タイル構造をシグナリングするための関連するシンタックス要素を含むITU-T H.265に指定されたPPSのシンタックスの一部である。
ITU-T H.265は、表17に示すそれぞれのシンタックス要素に対して以下の定義を規定する。
1に等しいtiles_enabled_flagは、PPSを参照する各ピクチャ内に1つ以上のタイルが存在することを既定する。0に等しいtiles_enabled_flagは、PPSを参照する各ピクチャ内にタイルが1つだけ存在することを既定する。tiles_enabled_flagの値がCVS内でアクティブ化される全てのPPSについて同じであることが、ビットストリームの適合性の要件である。
num_tile_columns_minus1+1は、ピクチャを区画するタイルカラムの数を既定する。num_tile_columns_minus1は、両端を含んで、0〜PicWidthlnCtbsY-1の範囲とする。存在しない場合、num_tile_columns_minus1の値は0に等しいと推測される。
num_tile_rows_minus1+1は、ピクチャを区画するタイルの行の数を既定する。num_tile_rows_minus1は、両端を含んで、0〜PicHeightlnCtbsY-1の範囲であるものとする。存在しない場合、num_tile_rows_minus1の値は0に等しいと推測される。tiles_enabled_flagが1に等しい場合、num_tile_columns_minus1及びnum_tile_rows_minus1は、両方とも0に等しいものとする。
1に等しいuniform_spacing_flagは、タイル列境界及び同様にタイル行境界がピクチャ全体にわたって均一に分布されることを既定する。0に等しいuniform_spacing_flagは、タイル列境界及び同様にタイル行境界がピクチャ全体に均一に分布していないが、シンタックス要素column_width_minus1[i]及びrow_height_minus1[i]を使用して明示的にシグナリングされることを既定する。存在しない場合、uniform_spacing_flagの値は1に等しいと推測される。
column_width_minus1[i]+1は、符号化ツリーブロックの単位でi番目のタイル列の幅を既定する。
row_height_minus1[i]+1は、符号化ツリーブロックの単位でi番目のタイル行の高さを既定する。
上述のように、JVET-K1001は、タイル構造をシグナリングするための機構を提供しない。本開示は、ピクチャヘッダ及びタイルセットパラメータを含む全体的なビットストリーム構造をシグナリングするための技術を記載する。
図1は、本開示の1つ以上の技術による、動画像データを符号化する(符号化及び/又は復号する)ように構成することができる、システムの例を示すブロック図である。システム100は、本開示の1つ以上の技術に従って、ビデオデータをカプセル化することができるシステムの例を表す。図1に示すように、システム100は、ソースデバイス102と、通信媒体110と、目的デバイス120と、を含む。図1に示す例では、ソースデバイス102は、ビデオデータを符号化し、符号化ビデオデータを通信媒体110に送信するように構成された、任意のデバイスを含むことができる。目的デバイス120は、通信媒体110を介して符号化したビデオデータを受信し、符号化したビデオデータを復号するように構成された、任意のデバイスを含むことができる。ソースデバイス102及び/又は目的デバイス120は、有線及び/又は無線通信用に装備された演算デバイスを含むことができ、かつ、例えば、セットトップボックス、デジタルビデオレコーダ、テレビ、デスクトップ、ラップトップ、又はタブレットコンピュータ、ゲーム機、医療用撮像デバイス、及び、例えば、スマートフォン、セルラー電話、パーソナルゲームデバイスを含むモバイルデバイス、を含むことができる。
通信媒体110は、無線及び有線の通信媒体並びに/又は記憶デバイスの任意の組み合わせを含むことができる。通信媒体110としては、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、無線送信機及び受信機、ルータ、スイッチ、リピータ、基地局、又は様々なデバイスとサイトとの間の通信を容易にするために有用であり得る任意の他の機器を挙げることができる。通信媒体110は、1つ以上のネットワークを含むことができる。例えば、通信媒体110は、ワールドワイドウェブ、例えば、インターネットへのアクセスを可能にするように構成されたネットワークを含むことができる。ネットワークは、1つ以上の電気通信プロトコルの組み合わせに従って動作することができる。電気通信プロトコルは、専用の態様を含むことができ、及び/又は規格化された電気通信プロトコルを含むことができる。標準化された電気通信プロトコルの例としては、Digital Video Broadcasting(DVB)規格、Advanced Television Systems Committee(ATSC)規格、Integrated Services Digital Broadcasting(ISDB)規格、Data Over Cable Service Interface Specification(DOCSIS)規格、Global System Mobile Communications(GSM)規格、符号分割多重アクセス(code division multiple access、CDMA)規格、第三世代パートナーシッププロジェクト(3rd Generation Partnership Project、3GPP)規格、欧州電気通信標準化機構(European Telecommunications Standards Institute、ETSI)規格、インターネットプロトコル(Internet Protocol、IP)規格、ワイヤレスアプリケーションプロトコル(Wireless Application Protocol、WAP)規格、及びInstitute of Electrical and Electronics Engineers(IEEE)規格が挙げられる。
記憶デバイスは、データを記憶することができる任意の種類のデバイス又は記憶媒体を含むことができる。記憶媒体は、有形又は非一時的コンピュータ可読媒体を含むことができる。コンピュータ可読媒体としては、光学ディスク、フラッシュメモリ、磁気メモリ、又は任意の他の好適なデジタル記憶媒体を挙げることができる。いくつかの例では、メモリデバイス又はその一部分は不揮発性メモリとして説明されることがあり、他の例では、メモリデバイスの一部分は揮発性メモリとして説明されることがある。揮発性メモリの例としては、ランダムアクセスメモリ(random access memory、RAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)、及びスタティックランダムアクセスメモリ(static random access memory、SRAM)を挙げることができる。不揮発性メモリの例としては、磁気ハードディスク、光学ディスク、フロッピーディスク、フラッシュメモリ、又は電気的プログラム可能メモリ(electrically programmable memory、EPROM)若しくは電気的消去可能及びプログラム可能メモリ(electrically erasable and programmable、EEPROM)の形態を挙げることができる。記憶デバイス(単数又は複数)としては、メモリカード(例えば、セキュアデジタル(Secure Digital、SD)メモリカード)、内蔵/外付けハードディスクドライブ、及び/又は内蔵/外付けソリッドステートドライブを挙げることができる。データは、定義されたファイルフォーマットに従って記憶デバイス上に記憶することができる。
図4は、システム100の一実装形態に含まれ得る構成要素の一例を示す概念的描画である。図4に示す例示的な実装形態では、システム100は、1つ以上の演算デバイス402A〜402N、テレビサービスネットワーク404、テレビサービスプロバイダサイト406、ワイドエリアネットワーク408、ローカルエリアネットワーク410、及び1つ以上のコンテンツプロバイダサイト412A〜412Nを含む。図4に示す実装形態は、例えば、映画、ライブスポーツイベントなどのデジタルメディアコンテンツ、並びにデータ及びアプリケーション及びそれらに関連付けられたメディアプレゼンテーションが、演算デバイス402A〜402Nなどの複数の演算デバイスに配布され、かつ、それらによってアクセスされることが可能となるように構成され得るシステムの一例を表す。図4に示す例では、演算デバイス402A〜402Nは、テレビサービスネットワーク404、ワイドエリアネットワーク408、及び/又はローカルエリアネットワーク410のうちの1つ以上からデータを受信するように構成されている任意のデバイスを含むことができる。例えば、演算デバイス402A〜402Nは、有線及び/又は無線通信用に装備してもよく、1つ以上のデータチャネルを通じてサービスを受信するように構成してもよく、いわゆるスマートテレビ、セットトップボックス、及びデジタルビデオレコーダを含むテレビを含んでもよい。更に、演算デバイス402A〜402Nは、デスクトップ、ラップトップ又はタブレットコンピュータ、ゲーム機、例えば「スマート」フォン、セルラー電話、及びパーソナルゲーミングデバイスを含むモバイルデバイスを含んでもよい。
テレビサービスネットワーク404は、テレビサービスを含み得る、デジタルメディアコンテンツの配信を可能にするように構成されているネットワークの一例である。例えば、テレビサービスネットワーク404は、公共地上波テレビネットワーク、公共又は加入ベースの衛星テレビサービスプロバイダネットワーク、並びに公共又は加入ベースのケーブルテレビプロバイダネットワーク及び/又は頭越し型(over the top)サービスプロバイダ若しくはインターネットサービスプロバイダを含んでもよい。いくつかの実施例では、テレビサービスネットワーク404は、テレビサービスの提供を可能にするために主に使用され得るが、テレビサービスネットワーク404はまた、本明細書に記載された電気通信プロトコルの任意の組み合わせに基づく他の種類のデータ及びサービスの提供も可能とすることに留意されたい。更に、いくつかの実施例では、テレビサービスネットワーク404は、テレビサービスプロバイダサイト406と、演算デバイス402A〜402Nのうちの1つ以上との間の双方向通信を可能にすることができることに留意されたい。テレビサービスネットワーク404は、無線通信メディア及び/又は有線通信メディアの任意の組み合わせを含むことができる。テレビサービスネットワーク404は、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、無線送信機及び受信機、ルータ、スイッチ、リピータ、基地局、又は様々なデバイスとサイトとの間の通信を容易にするために有用であり得る任意の他の機器を含むことができる。テレビサービスネットワーク404は、1つ以上の電気通信プロトコルの組み合わせに従って動作することができる。電気通信プロトコルは、専用の態様を含むことができ、及び/又は規格化された電気通信プロトコルを含むことができる。規格化された電気通信プロトコルの例としては、DVB規格、ATSC規格、ISDB規格、DTMB規格、DMB規格、ケーブルによるデータサービスインターフェース標準(Data Over Cable Service Interface Specification、DOCSIS)規格、HbbTV規格、W3C規格、及びUPnP規格が挙げられる。
図4を再び参照すると、テレビサービスプロバイダサイト406は、テレビサービスネットワーク404を介してテレビサービスを配信するように構成することができる。例えば、テレビサービスプロバイダサイト406は、1つ以上の放送局、ケーブルテレビプロバイダ、又は衛星テレビプロバイダ、又はインターネットベースのテレビプロバイダを含み得る。例えば、テレビサービスプロバイダサイト406は、衛星アップリンク/ダウンリンクを介したテレビプログラムを含む送信を、受信するように構成することができる。更に、図4に示すように、テレビサービスプロバイダサイト406は、ワイドエリアネットワーク408と通信することができ、コンテンツプロバイダサイト412A〜412Nからデータを受信するように構成することができる。いくつかの実施例では、テレビサービスプロバイダサイト406は、テレビスタジオを含むことができ、コンテンツはそこから発信できることに留意されたい。
ワイドエリアネットワーク408は、パケットベースのネットワークを含み、1つ以上の電気通信プロトコルの組み合わせに従って動作することができる。電気通信プロトコルは、専用の態様を含むことができ、及び/又は規格化された電気通信プロトコルを含むことができる。規格化された電気通信プロトコルの例としては、汎欧州デジタル移動電話方式(Global System Mobile Communications、GSM)規格、符号分割多元接続(code division multiple access、CDMA)規格、3rd Generation Partnership Project(3GPP)規格、欧州電気通信標準化機構(European Telecommunications Standards Institute、ETSI)規格、欧州規格(EN)、IP規格、ワイヤレスアプリケーションプロトコル(Wireless Application Protocol、WAP)規格、及び例えば、IEEE802規格のうちの1つ以上(例えば、Wi-Fi)などの電気電子技術者協会(Institute of Electrical and Electronics Engineers、IEEE)規格が挙げられる。ワイドエリアネットワーク408は、無線通信メディア及び/又は有線通信メディアの任意の組み合わせを含むことができる。ワイドエリアネットワーク408は、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、イーサネットケーブル、無線送信部及び受信部、ルータ、スイッチ、リピータ、基地局、又は様々なデバイス及びサイト間の通信を容易にするために有用であり得る任意の他の機器を含むことができる。一実施例では、ワイドエリアネットワーク408はインターネットを含んでもよい。ローカルエリアネットワーク410は、パケットベースのネットワークを含み、1つ以上の電気通信プロトコルの組み合わせに従って動作することができる。ローカルエリアネットワーク410は、アクセス及び/又は物理インフラストラクチャのレベルに基づいてワイドエリアネットワーク408と区別することができる。例えば、ローカルエリアネットワーク410は、セキュアホームネットワークを含んでもよい。
図4を再び参照すると、コンテンツプロバイダサイト412A〜412Nは、マルチメディアコンテンツをテレビサービスプロバイダサイト406及び/又は演算デバイス402A〜402Nに提供することができるサイトの例を表す。例えば、コンテンツプロバイダサイトは、マルチメディアファイル及び/又はストリームをテレビサービスプロバイダサイト406に提供するように構成されている、1つ以上のスタジオコンテンツサーバを有するスタジオを含むことができる。一実施例では、コンテンツプロバイダのサイト412A〜412Nは、IPスイートを使用してマルチメディアコンテンツを提供するように構成してもよい。例えば、コンテンツプロバイダサイトは、リアルタイムストリーミングプロトコル(RTSP)、HTTPなどに従って、マルチメディアコンテンツを受信デバイスに提供するように構成されてもよい。更に、コンテンツプロバイダサイト412A〜412Nは、ハイパーテキストベースのコンテンツなどを含むデータを、ワイドエリアネットワーク408を通じて、受信デバイス、演算デバイス402A〜402N、及び/又はテレビサービスプロバイダサイト406のうちの1つ以上に提供するように構成してもよい。コンテンツプロバイダサイト412A〜412Nは、1つ以上のウェブサーバを含んでもよい。データプロバイダサイト412A〜412Nによって提供されるデータは、データフォーマットに従って定義することができる。
図1を再び参照すると、ソースデバイス102は、ビデオソース104と、ビデオエンコーダ106と、データカプセル化装置107と、インターフェース108とを含む。ビデオソース104は、ビデオデータをキャプチャ及び/又は記憶するように構成された任意のデバイスを含むことができる。例えば、ビデオソース104は、ビデオカメラ及びそれに動作可能に結合された記憶デバイスを含むことができる。ビデオエンコーダ106は、ビデオデータを受信し、ビデオデータを表す準拠ビットストリームを生成するように構成された、任意のデバイスを含むことができる。準拠ビットストリームは、ビデオデコーダが受信し、それからビデオデータを再生成することができるビットストリームを指すことがある。
準拠ビットストリームの態様は、ビデオ符号化標準に従って定義することができる。準拠ビットストリームを生成するとき、ビデオエンコーダ106は、ビデオデータを圧縮することができる。圧縮は、非可逆的(視聴者に認識可能若しくは認識不可能)又は可逆的とすることができる。図5は、本明細書で説明するビデオデータを符号化するための技術を実施することができる、ビデオエンコーダ500の例を示すブロック図である。例のビデオエンコーダ500は、別個の機能ブロックを有するように示されているが、そのような例示は、説明のためのものであり、ビデオエンコーダ500及び/又はそのサブコンポーネントを特定のハードウェア又はソフトウェアアーキテクチャに限定するものではないことに留意されたい。ビデオエンコーダ500の機能は、ハードウェア、ファームウェア、及び/又はソフトウェアの実装形態の任意の組み合わせを用いて実現することができる。
ビデオエンコーダ500は、ピクチャ領域のイントラ予測符号化及びインター予測符号化を実行する場合があり、そのためにハイブリッドビデオエンコーダと称される場合がある。図5に示す例では、ビデオエンコーダ500は、ソースビデオブロックを受信する。いくつかの例では、ソースビデオブロックは、符号化構造に従って分割されているピクチャの部分を含むことができる。例えば、ソースビデオデータは、マクロブロック、CTU、CB、その再分割、及び/又は別の同等の符号化ユニットを含むことができる。いくつかの例では、ビデオエンコーダ500は、ソースビデオブロックの追加の再分割を実行するように構成することができる。本明細書で説明する技術は、符号化の前及び/又は符号化中にソースビデオデータがどのように分割されるかにかかわらず、ビデオ符号化に一般的に適用可能であることに留意されたい。図5に示す例では、ビデオエンコーダ500は、加算器502と、変換係数発生装置504と、係数量子化部506と、逆量子化及び変換係数処理部508と、加算器510と、イントラ予測処理部512と、インター予測処理部514と、フィルタ部516と、エントロピ符号化部518と、を含む。図5に示すように、ビデオエンコーダ500は、ソースビデオブロックを受信し、ビットストリームを出力する。
図5に示す例では、ビデオエンコーダ500は、ソースビデオブロックから予測ビデオブロックを減算することにより、残差データを生成することができる。予測ビデオブロックの選択を、以下に詳細に記載する。加算器502は、この減算演算を実行するように構成された構成要素を表す。一例では、ビデオブロックの減算は、画素領域で行われる。変換係数発生装置504は、離散コサイン変換(DCT)、離散サイン変換(DST)、又は概念的に類似の変換などの変換を残差ブロック又はその再分割に適用し(例えば、4つの8×8の変換を残差値の16×16のアレイに適用することができる)、残差変換係数のセットを生成する。変換係数発生装置504は、離散三角変換の近似物を含め離散三角変換のファミリーに含まれる変換の任意の及び全ての組み合わせを実行するように構成することができる。変換係数発生装置504は、変換係数を係数量子化部506に出力することができる。係数量子化部506は、変換係数の量子化を実行するように構成することができる。量子化プロセスは、係数の一部又は全てに関連付けられたビット深度を低減することができる。量子化の程度により、符号化ビデオデータのレートディストーション(すなわち、ビデオのビットレート対品質)が変更され得る。量子化の程度は、量子化パラメータ(QP)を調節することにより、修正することができる。量子化パラメータは、スライスレベル値及び/又はCUレベル値(例えば、CUデルタQP値)に基づいて判定することができる。QPデータは、特定の変換係数のセットを量子化するQPを判定するために使用される任意のデータを含み得る。図5に示すように、量子化された変換係数(レベル値と呼んでもよい)は、逆量子化及び変換係数処理部508に出力される。逆量子化及び変換係数処理部508は、逆量子化及び逆変換を適用して、復元された残差データを生成するように構成することができる。図5に示すように、加算器510において、復元された残差データを、予測ビデオブロックに加算することができる。このようにして、符号化ビデオブロックを復元することができ、結果として得られる復元されたビデオブロックを使用して、所与の予測、変換、及び/又は量子化についての符号化品質を評価することができる。ビデオエンコーダ500は、複数の符号化パスを実行する(例えば、予測、変換パラメータ及び量子化パラメータの1つ以上を変更しながら符号化を実行する)ように構成することができる。ビットストリームのレートディストーション又は他のシステムパラメータは、復元されたビデオブロックの評価に基づいて最適化することができる。更に、復元されたビデオブロックは、その後のブロックを予測するための参照として記憶して使用することができる。
図5を再び参照すると、イントラ予測処理部512は、符号化されるビデオブロックに対してイントラ予測モードを選択するように構成することができる。イントラ予測処理部512は、現在のブロックを符号化するために、フレームを評価し、使用するイントラ予測モードを判定するように構成することができる。上述したように、可能なイントラ予測モードは、平面予測モード、DC予測モード、及び角度予測モードを含んでもよい。更に、いくつかの例では、クロマ成分に対する予測モードは、ルマ予測モードに対する予測モードから推測できることに留意されたい。イントラ予測処理部512は、1つ以上の符号化パスを実行した後にイントラ予測モードを選択してもよい。更に、一実施例では、イントラ予測処理部512は、レートディストーションパースに基づいて予測モードを選択してもよい。図5に示すように、イントラ予測処理部512は、イントラ予測データ(例えば、シンタックス要素)をエントロピ符号化部518及び変換係数発生装置504に出力する。上述のように、残差データに対して実行される変換は、モード依存性であってもよい(例えば、二次変換行列は、予測モードに基づいて判定することができる)。
図5を再び参照すると、インター予測処理部514は、現在のビデオブロックに対してインター予測符号化を実行するように構成することができる。インター予測処理部514は、ソースビデオブロックを受信し、ビデオブロックのPUに対する動きベクトルを計算するように構成することができる。動きベクトルは、参照フレーム内の予測ブロックに対する、現在のビデオフレーム内のビデオブロックのPUの変位を示すことができる。インター予測符号化は、1つ以上の参照ピクチャを使用することができる。更に、動き予測は、単一予測(1つの動きベクトルを用いる)又は双予測(2つの動きベクトルを用いる)とすることができる。インター予測処理部514は、例えば、絶対差分和(sum of absolute difference)(SAD)、差分二乗和(sum of square difference)(SSD)、又は他の差分測定法によって判定された画素差を算出することにより、予測ブロックを選択するように構成することができる。上述したように、動きベクトルは、動きベクトル予測に従って判定及び判定することができる。インター予測処理部514は、上述したように、動きベクトル予測を実行するように構成することができる。インター予測処理部514は、動き予測データを用いて予測ブロックを生成するように構成することができる。例えば、インター予測処理部514は、フレームバッファ(図5に示さない)内に予測ビデオブロックを配置することができる。インター予測処理部514は、復元された残差ブロックに1つ以上の補間フィルタを適用して、動き予測に使用するための整数未満の画素値を算出するように更に構成することができることに留意されたい。インター予測処理部514は、計算された動きベクトルに対する動き予測データをエントロピ符号化部518に出力することができる。
図5を再び参照すると、フィルタ部516は、復元されたビデオブロック及び符号化パラメータを受信し、変更した復元されたビデオデータを出力する。フィルタ部516は、デブロッキング及び/又はサンプル適応オフセット(Sample Adaptive Offset)(SAO)フィルタリングを実行するように構成することができる。SAOフィルタリングは、復元されたビデオデータにオフセットを加えることにより復元を向上するために使用することができる、非線形振幅マッピングである。図5に示すように、イントラ予測処理部512及びインター予測処理部514は、フィルタ部216を介して、変更した復元されたビデオブロックを受信することができることに留意されたい。エントロピ符号化部518は、量子化された変換係数及び予測シンタックスデータ(すなわち、イントラ予測データ、動き予測データ)を受信する。いくつかの例では、係数量子化部506は、係数がエントロピ符号化部518に出力される前に、量子化された変換係数を含む行列の走査を実行することができることに留意されたい。他の例では、エントロピ符号化部518は、走査を実行することができる。エントロピ符号化部518は、本明細書で説明する技術の1つ以上に従ってエントロピ符号化を実行するように構成することができる。このように、ビデオエンコーダ500は、本開示の1つ以上の技術に従って符号化ビデオデータを生成するように構成されているデバイスの一例を表す。
図1を再び参照すると、データカプセル化部107は、符号化ビデオデータを受信し、定義されたデータ構造に従って準拠ビットストリーム、例えば、一連のNALユニットなどの準拠ビットストリームを生成することができる。準拠ビットストリームを受信するデバイスは、そこからビデオデータを再生成することができる。更に、上述のように、サブビットストリーム抽出とは、受信ビットストリーム内のデータを破棄及び/又は修正することによって、ITU-T H.265準拠ビットストリームを受信しているデバイスが、新たなITU-T H.265準拠ビットストリームを形成するプロセスを指し得る。適合ビットストリームという用語は、準拠ビットストリームという用語の代わりに使用され得ることに留意されたい。
一実施例では、データカプセル化装置107は、本明細書に記載される1つ以上の技術に従ってシンタックスを生成するように構成することができる。データカプセル化装置107は、ビデオエンコーダ106と同じ物理デバイス内に配置される必要はないことに留意されたい。例えば、ビデオエンコーダ106及びデータカプセル化装置107によって実行されるものとして説明される機能は、図4に示すデバイス間で配布してもよい。
一実施例では、ピクチャは、タイルセット及びタイルに分割されてもよく、タイルセットはタイルのシーケンスであり、タイルは符号化ツリーユニットのシーケンスである。タイルセットは、ピクチャの矩形領域を覆うことができる。図7は、6つのタイルセットに分割されたピクチャの例を示す。図7に示される例では、各タイルセットは矩形である。各タイルセットは、異なる数のタイルの列及び行の列に配置された異なる数のタイルを有してもよい。別の実施例であるが、各タイルセットは同じ数のタイルを有してもよい。加えて、各タイルセットにおけるタイル列の数及びタイル行の数は、各ピクチャにおいて変更されてもよい。各タイルセット内のタイル列の数及びタイル行の数が、符号化ビデオシーケンスにおいて固定されていることを示すために、フラグをシグナリングすることができる。「タイルセット」は、代わりに「スライス」と呼ばれ得ることに留意されたい。したがって、用語「タイルセット(tile set)」又は「タイルセット(tileset)」及び「スライス」は、同じ意味で使用され得る。
上記のように、表4は、JVET-K1001において提供される一般的なNALユニットシンタックスを示す。更に上述したように、JVET-K1001は、NALユニットタイプがまだ定義されるべき場所を提供する。しかしながら、本明細書に参照によって取り込まれており、JVET-K0325として参照している、「On High Level Syntax Starting Point」,11th Meeting of ISOTEC JTC1/SC29/WG11 10T8 July 2018,Ljubljana,SIの文献JVET-K0325は、JVET-K1001に追加されるNALユニットタイプを提供することに留意されたい。一実施例では、本明細書に記載の技術に従って、データカプセル化装置107は、表18に含まれるNALユニットタイプのうちの1つ以上をシグナリングするように構成され得る。
表18に関して、以下を定義することができる。
イントラランダムアクセスポイント(IRAP)ピクチャ:各VCL NALユニットがIRAP_NUTに等しいnal_unit_typeを有する符号化されたピクチャ。
非IRAPピクチャ:各VCL NALユニットがNON_IRAP_NUTに等しいnal_unit_typeを有する符号化されたピクチャ。
ピクチャヘッダをNALユニットとしてシグナリングすることを表18に示す。ピクチャヘッダ内のシンタックスパラメータをシグナリングし、タイルセットヘッダ内にそれらをオーバーライドすることは、ビットの節約を可能にし、依然として柔軟性をサポートすることができる。いくつかの実施例では、本明細書の技術によれば、同じピクチャヘッダが複数のピクチャに適用されてもよい。これは、追加のビット節約を提供することができる。ピクチャヘッダを独自のNALユニットとして有することにより、複数のピクチャが同じピクチャヘッダを参照するのが容易になる。
タイルパラメータ関連ヘッダは、以下の態様を有し得る。1.それは、2つ以上のタイルに、例えば、タイルセット又はタイルの集合に、適用することができ、従ってそれはタイルセットヘッダとすることができ、及び/又は、2.それは、必要に応じて、ピクチャヘッダからのパラメータの一部を選択的にオーバーライドすることができる。これは、タイルセットヘッダ内の1組の存在フラグによって制御され得る。
代替的な実施例では、PICH_NUTは、各ピクチャ/タイルセット用にアクティブ化される非VCL NALユニットであってもよいことに留意されたい。例えば、この場合のNALユニットテーブルは、表18Aに示すとおりとすることができる。
一実施例では、タイル、タイル列、タイル行、及びタイルセットの以下の定義を使用することができる。単語「タイルセット(tileset)」及び「タイルセット(tile set))」は互換的に使用され、同じものを意味し得ることに留意されたい。
タイル:ピクチャ内の特定のタイル列と特定のタイル行内の符号化されたツリーブロック(CTB)の矩形領域。
タイル列:ピクチャの高さに等しい高さと、ピクチャパラメータセット内のシンタックス要素によって指定される幅とを有する、CTBの矩形領域。
タイル行:ピクチャパラメータセット内のシンタックス要素によって指定される高さと、ピクチャの幅に等しい幅とを有する、CTBの矩形領域。
タイルセット:1つ以上のタイルの集合体。一実施例では、タイルセットは矩形の形状であるものとする。タイルセットは、整数の個数の連続するタイルのみを含んでもよい。タイルセットの一実施例では、各タイルは、カラム又は行寸法に沿って他のタイルと連続していなければならず、又は、タイルセットは、1つのタイルのみを有しなければならない。
一実施例では、NONIRAP_NTは、符号化非IRAPタイルセットtileset_layer_rbsp()であってもよく、IRAP_NUTは、符号化IRAPタイルセットtileset_layer_rbsp()であってもよい。IRAPタイルセットのためのデータのみを抽出するサブビットストリーム抽出プロセスによって得られるビットストリームは、独立して復号することができる。タイルセットに対応するこの抽出されたビットストリームの第1のピクチャ又はサブピクチャは、IRAPピクチャ又はサブピクチャである。
表19は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、tileset_layer_rbsp()シンタックスの例を示す。
表20は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、tileset_header()シンタックスの例を示す。
表20に関して、それぞれのシンタックス要素は、以下の定義に基づいてもよい。
ts_pic_header_idは、このタイルセットに適用されるピクチャヘッダのpic_header_idの値を既定する。ts_pic_header_idの値は、両端値を含む、0〜232-1の範囲でなければならない。
tile_set_idは、このタイルセットのタイルセット識別子を既定する。
first_tile_idは、タイルセット内の第1のタイルのTileId(タイル識別子)を、このtileset_header()に続くtileset_data()内に存在する識別子tile_set_idによって既定する。
num_tiles_in_setdataは、タイルセット内のタイルの数を、このtileset_header()に続くtileset_data()内に存在する識別子tile_set_idによって既定する。
表21は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、tileset_header()シンタックスの例を示す。
表21に関して、それぞれのシンタックス要素は、以下の定義に基づいてもよい。
ts_pic_header_idは、このタイルセットに適用されるピクチャヘッダのpic_header_idの値を既定する。ts_pic_header_idの値は、両端値を含む、0〜232-1の範囲でなければならない。
first_tile_set_idは、tileset_header()に続くtileset_data()の第1タイルセットのタイルセット識別子を規定する。
num_tile_set_ids_minus1+1は、このtileset_header()に続くtileset_data()内に存在するタイルセットの数を既定する。
first_tile_id_in_first_tilesetは、このtileset_header()に続くtileset_data()内に存在する第1のタイルセット内の第1のタイルのTileId(タイル識別子)を既定する。
num_tiles_in_setdata_in_last_tilesetは、このtileset_header()に続くtileset_data()内に存在する最後のタイルセット内のタイルの数を既定する。
表22は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、tileset_header()シンタックスの例を示す。
表22に関して、それぞれのシンタックス要素は、以下の定義に基づいてもよい。
first_tile_set_idは、このtileset_header()に続くtileset_data()の第1のタイルセットのタイルセット識別子を既定する。
num_tile_set_ids_minus1+1は、このtileset_header()に続くtileset_data()内に存在するタイルセットの数を既定する。
first_tile_id_in_first_tilesetは、このtileset_header()に続くtileset_data()内に存在する第1のタイルセット内の第1のタイルのTileId(タイル識別子)を既定する。
num_tiles_in_setdata_in_first_tilesetは、このtileset_header()に続くtileset_data()内に存在する第1のタイルセットのタイルの数を既定する。
num_tiles_in_setdata_in_last_tilesetは、このtileset_header()に続くtileset_data()内に存在する最後のタイルセット内のタイルの数を既定する。
表22Aは、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、tileset_header()シンタックスの例を示す。この例では、タイルセットの完全な整数の数のみが、tileset_data()に含まれる。これは、tileset_header()において必要とされるファイバーシンタックス要素がより少ない。
表22Aに関して、それぞれのシンタックス要素は、以下の定義に基づいてもよい。
first_tile_set_idは、tileset_header()に続くtileset_data()の第1タイルセットのタイルセット識別子を規定する。
num_tile_set_ids_minus1+1は、このtileset_header()に続くtileset_data()内に存在するタイルセットの数を既定する。
表23は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、tileset_coding_parameters()シンタックスの例を示す。
表23に関して、それぞれのシンタックス要素は、以下の定義に基づいてもよい。
1に等しいtileset_log2_diff_ctu_max_bt_size_present_flagは、tileset_log2_diff_ctu_max_bt_sizeが存在することを既定する。0に等しいtileset_log2_diff_ctu_max_bt_size_present_flagは、tileset_log2_diff_ctu_max_bt_sizeが存在しないことを既定する。存在しない場合、tileset_log2_diff_ctu_max_bt_sizeは、このタイルセットのためにアクティブなこのtileset_header()のts_pic_header_idに対応するpic_header()構造からのlog2_diff_ctu_max_bt_sizeに等しいと推測される。
tileset_log2_diff_ctu_max_bt_sizeは、このタイルセットのバイナリ分割を使用して分割され得る符号化ブロックのルマCTBサイズと最大ルマサイズ(幅又は高さ)との差を既定する。log2_diff_ctu_max_bt_sizeの意味論は、タイルセット以外に適用される。
1に等しいtileset_sbtmvp_size_override_flag_present_flagは、tileset_sbtmvp_size_override_flagが、またtileset_sbtmvp_size_override_flagが1に等しい場合は、log2_tileset_sbtmvp_active_size_minus2が、存在することを既定する。0に等しいtileset_sbtmvp_size_override_flag_present_flagは、tileset_sbtmvp_size_override_flag及びlog2_tileset_sbtmvp_active_size_minus2が存在しないことを規定する。存在しない場合、tileset_sbtmvp_size_override_flag_present_flag及びlog2_tileset_sbtmvp_active_size_minus2は、それぞれ、このタイルセットのためにアクティブなこのtileset_header()のts_pic_header_idに対応するpic_header()構造からのsbtmvp_size_override_flag及びlog2_sbtmvp_active_size_minus2に等しいと推測される。
1に等しいtileset_sbtmvp_size_override_flagは、シンタックス要素log2_tileset_sbtmvp_active_size_minus2が現在のタイルセットのために存在することを規定する。0に等しいsbtmvp_size_override_flagは、シンタックス要素log2_tileset_sbtmvp_active_size_minus2が存在しないことを規定し、log2_tileset_sbtmvp_size_active_minus2がlog2_sbtmvp_size_active_minus2に等しいと推測されることを既定する。
log2_tileset_sbtmvp_active_size_minus2+2は、現在のタイルセットのサブブロックベースのTMVPの動きパラメータを導出するために使用されるサブブロックサイズの値を既定する。log2_tileset_sbtmvp_size_active_minus2が存在しない場合、それはlog2_sbtmvp_size_active_minus2に等しいと推測される。変数は、以下のように導出される。
Log2SbtmvpSize=log2_tileset_sbtmvp_size_active_minus2+2
1に等しいtileset_tmvp_info_present_flagは、tileset_temporal_mvp_enabled_flag、tileset_mvd_l1_zero_flag、及びtileset_collocated_from_10_flagが存在し得ることを既定する。0に等しいtileset_tmvp_info_present_flagは、tileset_temporal_mvp_enabed_flag、tileset_mvd_l1_zero_flag、及びtileset_collocated_from_10_flagが存在しないことを既定する。存在しない場合、tileset_temporal_mvp_enabled_flag、tileset_mvd_l1_zero_flag、及びtileset_collocated_from_10_flagは、それぞれ、このタイルセットのためにアクティブなこのtileset_header()のts_pic_header_idに対応するpic_header()構造からのpic_temporal_mvp_enabed_flag、mvd_l1_zero_flag、及びcollocated_from_10_flagに等しいと推測される。
tileset_temporal_mvp_enabled_flagは、時間動きベクトル予測因子が現在のタイルセットのインター予測に使用できるかどうかを既定する。tileset_temporal_mvp_enabled_flagが0に等しい場合、現在のタイルセットのシンタックス要素は、現在のタイルセットの復号に時間動きベクトル予測因子が使用されないように制約されるものとする。そうでなければ(tileset_temporal_mvp_enabled_flagが1に等しい)、時間動きベクトル予測因子は、現在のタイルセットの復号に使用することができる。存在しない場合、tileset_temporal_mvp_enabled_flagの値は、このタイルセットのためにアクティブな、このタイルセットのためのtileset_header()のts_pic_header_idに対応するpic_header()構造からのpic_temporal_mvp_enabled_flagに等しいと推測される。
1に等しいtileset_mvd_l1_zero_flagは、mvd_coding(x0,y0,1)シンタックス構造がパースされず、MvdL1[x0][y0][compIdx]がcompIdx=0〜1に対して、0に等しく設定されていることを示す。0に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)シンタックス構造が現在のタイルセットのためにパースされることを示す。
1に等しいtileset_collocated_from_10_flagは、現在のタイルセットに対して、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト0から導出されることを既定する。0に等しいcollocated_from_10_flagは、現在のタイルセットに対して、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト1から導出されることを既定する。tileset_collocated_from_10_flagが存在しない場合、それは、このタイルセットのためにアクティブなこのtileset_header()のts_pic_header_idに対応するpic_header()構造からのcollocated_from_10_flagに等しいと推測される。
1に等しいtileset_six_minus_max_num_merge_present_flagは、tileset_six_minus_max_num_merge_candが存在することを既定する。0に等しいtileset_six_minus_max_num_merge_present_flagは、tileset_six_minus_max_num_merge_candが存在しないことを既定する。存在しない場合、tileset_six_minus_max_num_merge_candは、このタイルセットのためにアクティブなこのtileset_header()のts_pic_header_idに対応するpic_header()構造からのsix_minus_max_num_merge_candに等しいと推測される。
tileset_six_minus_max_num_merge_candは、6から減算される現在のタイルセット内でサポートされるマージ動きベクトル予測(MVP)候補の最大数を規定する。マージMVP候補の最大数、MaxNumMergeCandは、以下のように導出される。
MaxNumMergeCandの値は、両端値を含む、1〜6の範囲にあるものとする。
1に等しいtileset_dep_quant_info_present_flagは、tileset_dep_quant_enabled_flagが存在することを既定する。0に等しいtileset_dep_quant_info_present_flagは、tileset_dep_quant_enabled_flagが存在しないことを既定する。存在しない場合、tileset_dep_quant_enabled_flagは、このタイルセットのためにアクティブなこのtileset_header()のts_pic_header_idに対応するpic_header()構造からのdep_quant_enabled_flagに等しいと推測される。
0に等しいtileset_dep_quant_enabled_flagは、依存量子化が現在のタイルセットに対して無効化されていることを既定する。1に等しいtileset_dep_quant_enabled_flagは、依存量子化が現在のタイルセットに対して有効化されていることを既定する。
0に等しいtileset_sign_data_hiding_enabled_flagは、サインビット非表示が現在のタイルセットに対して無効化されていることを既定する。1に等しいtile_sign_data_hiding_enabled_flagは、サインビット非表示が現在のタイルセットに対して有効化されていることを既定する。tile_sign_data_hiding_enabled_flagが存在しない場合、それは、このタイルセットのためにアクティブなこのtileset_header()のts_pic_header_idに対応するpic_header()構造からのsign_data_hiding_enabled_flagに等しいと推測される。
表24は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、tileset_data()シンタックスの例を示す。
表24に関して、それぞれのシンタックス要素は、以下の定義に基づいてもよい。
0に等しいend_of_tileset_flagは、別のCTUがタイルセット内に続いていることを既定する。1に等しいend_of_tileset_flagは、タイルセットスライスの終了を既定し、すなわちタイルセット内に更なるCTUが続いていないことを既定する。
表25は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、rbsp_tileset_trailing_bits()シンタックスの例を示す。
表26は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、pic_header_rbsp()シンタックスの例を示す。
表27は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、pic_header()シンタックスの例を示す。
表24に関して、それぞれのシンタックス要素は、以下の定義に基づいてもよい。
pps_pic_parameter_set_idは、他のシンタックス要素による参照のためのPPSを識別する。pps_pic_parameter_set_idの値は、両端値を含む、0〜63の範囲にあるものとする。
pic_header_idは、他のシンタックス要素による参照のためのピクチャヘッダを識別する。pps_pic_parameter_set_idの値は、両端値を含む、0〜232-1の範囲にあるものとする。
picture_typeは、表28に従ったピクチャの符号化タイプを示す。pic_typeの値は、本明細書のこのバージョンに適合するビットストリームにおいて、0,1又は2に等しいものとする。pic_typeの他の値は、将来の使用のために確保される。本明細書のこのバージョンに適合するデコーダは、pic_typeの予備の値を無視するものとする。
log2_diff_ctu_max_bt_sizeは、バイナリ分割を使用して分割され得る符号化ブロックのルマCTBサイズと最大ルマサイズ(幅又は高さ)との間の差を既定する。
1に等しいsbtmvp_size_override_flagは、シンタックス要素log2_sbtmvp_active_size_minus2が現在のスライスに対して存在することを既定し、0に等しいsbtmvp_size_override_flagは、シンタックス要素log2_atmvp_active_size_minus2が存在せず、log2_sbtmvp_size_active_minus2がlog2_sbtmvp_default_size_minus2に等しいと推測されることを既定する。
log2_sbtmvp_active_size_minus2+2は、現在のスライスのサブブロックベースのTMVPの動きパラメータを導出するために使用されるサブブロックサイズの値を既定する。log2_sbtmvp_size_active_minus2が存在しない場合、それはlog2_sbtmvp_default_size_minus2に等しいと推測される。変数は、以下のように導出される。
Log2SbtmvpSize=log2_sbtmvp_size_active_minus2+2
pic_temporal_mvp_enabled_flagは、時間動きベクトル予測因子が現在のピクチャのインター予測に使用できるかどうかを既定する。pic_temporal_mvp_enabled_flagが0に等しい場合、現在のピクチャのシンタックス要素は、現在のピクチャの復号に時間動きベクトル予測因子が使用されないように制約されるものとする。そうでなければ(pic_temporal_mvp_enabled_flagが1に等しい)、時間動きベクトル予測因子は、現在のピクチャの復号に使用することができる。存在しない場合、pic_temporal_mvp_enabled_flagの値は0に等しいと推測される。
1に等しいmvd_l1_0_flagは、mvd_coding(x0,y0,1)シンタックス構造がシンタックスパースされず、MvdL1[x0][y0][compIdx]がcompIdx=0〜1に対して、0に等しく設定されていることを示す。0に等しいmvd_l1_zero_flagは、mvd_coding(x0,y0,1)シンタックス構造がシンタックスパースされることを示す。
1に等しいcollocated_from_10_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト0から導出されることを既定する。0に等しいcollocated_from_10_flagは、時間動きベクトル予測に使用されるコロケートされたピクチャが参照ピクチャリスト1から導出されることを既定する。collocated_from_10_flagが存在しない場合、これは1に等しいと推測される。
six_minus_max_num_merge_candは、6から減算されるスライス内でサポートされるマージ動きベクトル予測(MVP)候補の最大数を既定する。マージMVP候補の最大数、MaxNumMergeCandは、以下のように導出される。
MaxNumMergeCand=6-six_minus_max_num_merge_cand
MaxNumMergeCandの値は、両端値を含む、1〜6の範囲にあるものとする。
0に等しいdep_quant_enabled_flagは、依存量子化が無効化されていることを既定する。1に等しいdep_quant_enabled_flagは、依存量子化が有効化されていることを既定する。
0に等しいsign_data_hiding_enabled_flagは、サインビット非表示が無効化されていることを既定する。1に等しいsign_data_hiding_enabled_flagは、サインビット非表示が有効化されていることを既定する。sign_data_hiding_enabled_flagが存在しない場合、これは0に等しいと推測される。
一実施例では、pic_header()内の1つ以上のシンタックス要素は、PICH_NUTの代わりにPPS_NUTでシグナリングされてもよいことに留意されたい。
表29は、本明細書の技術によるデータカプセル化装置107によってシグナリングされ得る、rbsp_pic_header_trailing_bits()シンタックスの例を示す。
いくつかの実施例では、ピクチャヘッダは、1つ以上のピクチャに適用することができることに留意されたい。更に、いくつかの実施例では、ピクチャヘッダー内のパラメータは、タイルセットパラメータに従ってタイルセットに対して上書きされ得る。いくつかの例示のケースでは、タイルセットのためのピクチャヘッダ内のパラメータを上書きするために、特定の制限が適用されてもよい。
上述のように、ITU-T H.265では、タイル構造の一部又は全て、すなわち、ピクチャに関する1つ以上のタイル及び/又はタイルセット関連パラメータは、ピクチャパラメータセットを使用してシグナリングされる。一実施例では、本明細書の技術によれば、タイル構造は、ピクチャパラメータセット内でシグナリングされてもよく、上記で提供されるように、ピクチャパラメータセットは、picture_header()において識別される。別の実施例では、タイル構造の一部又は全て、すなわち、1つ以上のタイル及び/又はタイルセット関連パラメータは、シーケンスパラメータセット(SPS)内でシグナリングされてもよい。
このようにして、ソースデバイス102は、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をシグナリングし、かつタイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をシグナリングするように構成されたデバイスの一例を表す。
図1を再び参照すると、インターフェース108は、データカプセル化部107によって生成されたデータを受信し、そのデータを通信媒体に送信及び/又は記憶するように構成された任意のデバイスを含んでもよい。インターフェース108は、イーサネットカードなどのネットワークインターフェースカードを含むことができ、光送受信機、無線周波数送受信機、又は情報を送信及び/若しくは受信することができる任意の他の種類のデバイスを含むことができる。更に、インターフェース108は、ファイルを記憶デバイス上に記憶することを可能にすることができるコンピュータシステムインターフェースを含むことができる。例えば、インターフェース108は、Peripheral Component Interconnect(PCI)及びPeripheral Component Interconnect Express(PCIe)バスプロトコル、独自のバスプロトコル、ユニバーサルシリアルバス(Universal Serial Bus、USB)プロトコル、I2C、又はピアデバイスを相互接続するために使用することができる任意の他の論理構造及び物理構造をサポートする、チップセットを含むことができる。
図1を再び参照すると、目的デバイス120は、インターフェース122と、データ脱カプセル化装置123と、ビデオデコーダ124と、ディスプレイ126とを含む。インターフェース122は、通信媒体からデータ受信するように構成されている任意のデバイスを含むことができる。インターフェース122は、イーサネットカードなどのネットワークインターフェースカードを含むことができ、光送受信機、無線周波数送受信機、又は情報を受信及び/若しくは送信することができる任意の他の種類のデバイスを含むことができる。更に、インターフェース122は、準拠ビデオビットストリームを記憶デバイスから取得することを可能にするコンピュータシステム用インターフェースを含むことができる。例えば、インターフェース122は、PCI及びPCIeバスプロトコル、独自のバスプロトコル、USBプロトコル、I2C、又はピアデバイスを相互接続するために使用することができる任意の他の論理構造及び物理構造をサポートする、チップセットを含むことができる。データ脱カプセル化装置123は、本明細書に記載される例示的なシンタックス構造のうちのいずれかを受信及びパースするように構成されてもよい。
ビデオデコーダ124は、ビットストリーム(例えば、MCTSサブビットストリーム抽出)及び/又はその許容可能な変形を受信し、そこからビデオデータを再生成するように構成されている任意のデバイスを含むことができる。ディスプレイ126は、ビデオデータを表示するように構成された任意のデバイスを含むことができる。ディスプレイ126は、液晶ディスプレイ(liquid crystal display、LCD)、プラズマディスプレイ、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、又は別の種類のディスプレイなどの、様々なディスプレイデバイスのうちの1つを含むことができる。ディスプレイ126は、高解像度ディスプレイ又は超高解像度ディスプレイを含むことができる。図1に示す例では、ビデオデコーダ124は、データをディスプレイ126に出力するように説明されているが、ビデオデコーダ124は、ビデオデータを様々な種類のデバイス及び/又はそのサブコンポーネントに出力するように構成することができることに留意されたい。例えば、ビデオデコーダ124は、本明細書で説明するような任意の通信媒体にビデオデータを出力するように構成することができる。
図6は、本開示の1つ以上の技術による、ビデオデータを復号するように構成することができるビデオデコーダの一例を示すブロック図である。一実施例では、ビデオデコーダ600は、変換データを復号し、復号された変換データに基づいて変換係数から残差データを復元するように構成することができる。ビデオデコーダ600は、イントラ予測復号及びインター予測復号を実行するように構成される場合があり、そのために、ハイブリッドデコーダと称される場合がある。ビデオデコーダ600は、上記の表1〜27に記載されたシンタックス要素の任意の組み合わせをパースするように構成することができる。ビデオデコーダ600は、パースされたシンタックス要素の値に基づいてビデオ復号を実行することができる。例えば、ピクチャが特定のタイプであるかどうかに基づいて、異なるビデオ復号技術を実行することができる。
図6に示す例では、ビデオデコーダ600は、エントロピ復号部602、逆量子化部及び変換係数処理部604、イントラ予測処理部606、インター予測処理部608、加算部610、ポストフィルタ部612、並びに参照バッファ614を含む。ビデオデコーダ600は、ビデオ符号化システムと合致するようにしてビデオデータを復号するように構成することができる。例のビデオデコーダ600が別個の機能ブロックを有するように示されているが、そのような例示は、説明のためのものであり、ビデオデコーダ600及び/又はその下位構成要素を特定のハードウェア又はソフトウェアアーキテクチャに限定するものではないことに留意されたい。ビデオデコーダ600の機能は、ハードウェア、ファームウェア、及び/又はソフトウェアの実装形態の任意の組み合わせを用いて実現することができる。
図6に示すように、エントロピ復号部602は、エントロピ符号化されたビットストリームを受信する。エントロピ復号部602は、エントロピ符号化プロセスとは逆の(reciprocal)プロセスに従って、ビットストリームからシンタックス要素及び量子化された係数を復号するように構成することができる。エントロピ復号部602は、上述したエントロピ符号化技術のいずれかに従ってエントロピ復号を実行するように構成することができる。エントロピ復号部602は、ビデオ符号化規格と合致するようにして、符号化されたビットストリーム中のシンタックス要素の値を判定することができる。図6に示すように、エントロピ復号部602は、ビットストリームから量子化パラメータ、量子化された係数の値、変換データ、及び予測データを判定することができる。図6に示す実施例では、逆量子化部及び変換係数処理部604は、量子化パラメータ、量子化された係数の値、変換データ、及び予測データをエントロピ復号部602から受信し、復元された残差データを出力する。
図6を再び参照すると、復元された残差データが加算部610に提供されてもよく、加算部610は、復元された残差データを予測ビデオブロックに追加し、復元されたビデオデータを生成することができる。予測ビデオブロックは、予測ビデオ技術(すなわち、イントラ予測及びフレーム間予測)に従って判定することができる。イントラ予測処理部606は、イントラ予測シンタックス要素を受信し、参照バッファ614から予測ビデオブロックを取得するように構成することができる。参照バッファ614は、ビデオデータの1つ以上のフレームを記憶するように構成されたメモリデバイスを含むことができる。イントラ予測シンタックス要素は、上述したイントラ予測モードなどのイントラ予測モードを識別することができる。インター予測処理部608は、インター予測シンタックス要素を受信し、動きベクトルを生成して、参照バッファ616に記憶された1つ以上の参照フレーム内の予測ブロックを識別することができる。インター予測処理部608は、場合によっては補間フィルタに基づく補間を実行して、動き補償されたブロックを生成することができる。シンタックス要素には、画素未満の精度を有する動き予測に使用されることになる補間フィルタの識別子を含めることができる。インター予測処理部608は、補間フィルタを使用して、参照ブロックのサブ整数の画素に対する補間された値を算出することができる。ポストフィルタ部614は、復元されたビデオデータに対してフィルタリングを実行するように構成することができる。例えば、ポストフィルタ部614は、例えば、ビットストリームで規定されたパラメータに基づいて、デブロッキング及び/又はサンプル適応オフセット(SAO)フィルタリングを実行するように構成することができる。更に、いくつかの例では、ポストフィルタ部614は、独自の任意フィルタリング(例えば、モスキートノイズリダクションなどの視覚強調)を実行するように構成することができることに留意されたい。図6に示すように、復元されたビデオブロックは、ビデオデコーダ600によって出力することができる。このようにして、ビデオデコーダ600は、タイルセット層シンタックス構造がネットワーク抽象化層ユニットに含まれていることを示す、ネットワーク抽象化層ユニット内のシンタックス要素に対する値をパースし、タイルセット層シンタックス構造に含まれている1つ以上のタイルセットパラメータに対する値をパースし、1つ以上のタイルセットパラメータに対するパース値に基づいてビデオデータを生成する、ように構成されているデバイスの例を表す。
1つ以上の例では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実装することができる。ソフトウェアで実装される場合に、この機能は、コンピュータ可読媒体上の1つ以上の命令又はコードとして記憶するか又は伝送され、ハードウェアベースの処理部によって実行することができる。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、データ記憶媒体又は通信媒体などの有形の媒体に対応する、コンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的な有形のコンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示中に記載された技術の実現のための命令、コード、及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
一例として、非限定的に、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、又は他の光学ディスク記憶装置、磁気ディスク記憶装置、他の磁気記憶装置、フラッシュメモリ、又は任意の他の媒体、すなわち命令若しくはデータ構造の形式で所望のプログラムコードを記憶するために使用可能であり、かつコンピュータによりアクセス可能な任意の他の媒体を含むことができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。例えば、命令がウェブサイト、サーバ、又は他のリモートソースから、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(digital subscriber line、DSL)、あるいは赤外線、無線及びマイクロ波などの無線技術を使用して伝送される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、あるいは赤外線、無線及びマイクロ波などの無線技術は、媒体の定義に含まれる。しかし、コンピュータ可読媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一過性媒体を含まないが、代わりに非一時的な有形記憶媒体を対象としていることを理解されたい。本発明で使用する場合、ディスク(disk)及びディスク(disc)は、コンパクトディスク(Compact Disc、CD)、レーザーディスク(laser disc)、光学ディスク(optical disc)、デジタル多用途ディスク(Digital Versatile Disc、DVD)、フロッピーディスク(floppy disk)及びブルーレイ(登録商標)ディスク(Blu-ray(登録商標)disc)を含み、ディスク(disk)は通常データを磁気的に再生し、ディスク(disc)はレーザを用いてデータを光学的に再生する。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれなければならない。
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の集積又はディスクリートロジック回路などの1つ以上のプロセッサによって実行することができる。したがって、本明細書で使用されるとき、用語「プロセッサ」は、前記の構造、又は本明細書で説明する技術の実装に好適な任意の他の構造のいずれかを指すことができる。加えて、いくつかの態様において、本明細書に記載の機能は、符号化及び復号化するように構成された、又は複合コーデックに組み込まれた専用のハードウェアモジュール及び/又はソフトウェアモジュール内に設けられ得る。また、この技術は、1つ以上の回路又は論理素子中に完全に実装することができる。
本開示の技術は、無線ハンドセット、集積回路(integrated circuit、IC)、又はICのセット(例えば、チップセット)を含む多種多様なデバイス又は装置に実装することができる。様々なコンポーネント、モジュール、又はユニットを本開示中に示し、開示された技術を実行するように構成されたデバイスの機能的な態様を強調しているが、異なるハードウェアユニットによって実現することは必ずしも必要ではない。むしろ、前述したように、様々なユニットは、コーデックハードウェアユニットに組み合わせてもよく、又は好適なソフトウェア及び/又はファームウェアと共に、前述の1つ以上のプロセッサを含む、相互動作ハードウェアユニットの集合によって提供することができる。
更に、上述の各実装形態で用いた基地局装置や端末装置の各機能ブロックや各種の機能は、一般的には集積回路又は複数の集積回路である電気回路によって実現又は実行することができる。本明細書に記載の機能を実行するように設計された回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け又は汎用アプリケーション集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブルロジックデバイス、ディスクリートゲート若しくはトランジスタロジック、若しくは個々のハードウェアコンポーネント、又はそれらの組み合わせを備えていてもよい。汎用プロセッサは、マイクロプロセッサでもよく、あるいは、プロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンでもよい。上述した汎用プロセッサ又は各回路は、デジタル回路で構成されても、又はアナログ回路で構成されてもよい。更に、半導体技術の進歩により現時点での集積回路に置き換わる集積回路化技術が現れれば、この技術による集積回路もまた使用可能となる。
様々な実施例について説明した。これら及び他の実施例は、以下の特許請求の範囲内である。
<相互参照>
本特許出願は、合衆国法典第35巻米国特許法第119条の下で、2018年9月20日の仮出願第62/734,232号の優先権を主張するものであり、その内容の全体は、参照により本明細書に組み込まれる。