(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-30
(54)【発明の名称】クロス成分パラメータ計算のための装置、方法、およびコンピュータプログラム
(51)【国際特許分類】
H04N 19/105 20140101AFI20240723BHJP
H04N 19/136 20140101ALI20240723BHJP
【FI】
H04N19/105
H04N19/136
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024500116
(86)(22)【出願日】2022-06-22
(85)【翻訳文提出日】2024-01-04
(86)【国際出願番号】 FI2022050452
(87)【国際公開番号】W WO2023281158
(87)【国際公開日】2023-01-12
(32)【優先日】2021-07-06
(33)【優先権主張国・地域又は機関】FI
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】515076873
【氏名又は名称】ノキア テクノロジーズ オサケユイチア
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100176418
【氏名又は名称】工藤 嘉晃
(72)【発明者】
【氏名】ライネマ ヤニ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159TA31
5C159TB08
5C159TC00
5C159TC02
5C159TC42
(57)【要約】
第1の色成分(Y)から第2の色成分(Cb/Cr)へのマッピングを定義する少なくとも2つのパラメータ(a,b)を計算することであり、少なくとも2つのパラメータ(a,b)が少なくとも勾配パラメータ(a)およびオフセットパラメータ(b)を含む、計算することと、勾配パラメータ(a)に対する更新項(u)を決定することと、更新項(u)を勾配パラメータ(a)の値に加えることによって更新項(u)を勾配パラメータ(a)に適用して、更新された勾配パラメータ(a)を生成することと、第1の色成分(Y)の参照値を決定することと、第1の色成分(Y)の参照値(yr)と、更新された勾配パラメータ(a’)とに基づいて、更新されたオフセットパラメータ(b)を計算することとを含む方法。
【選択図】
図5b
【特許請求の範囲】
【請求項1】
第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算するための手段であり、前記少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、計算するための手段と、
前記勾配パラメータに対する更新項を決定するための手段と、
前記更新項を前記勾配パラメータの値に加えることによって前記更新項を前記勾配パラメータに適用して、更新された勾配パラメータを生成するための手段と、
第1の色成分の参照値を決定するための手段と、
前記第1の色成分の前記参照値と、前記更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算するための手段と
を含む装置。
【請求項2】
前記第1の色成分および前記第2の色成分の値ペアからなる参照点を決定するための手段と、
前記更新項および前記参照点に基づいて前記勾配パラメータおよび前記オフセットパラメータを更新するための手段と
をさらに含む、請求項1に記載の装置。
【請求項3】
前記勾配パラメータおよび前記オフセットパラメータによって決定されたラインから制御点を選択するための手段
をさらに含む、請求項1または2に記載の装置。
【請求項4】
前記勾配パラメータおよび前記オフセットパラメータによって決定されたラインの外側の制御点を選択するための手段
をさらに含む、請求項1または2に記載の装置。
【請求項5】
前記第1の色成分の追加の参照値を決定するための手段と、
前記追加の参照値をさらに使用して、前記オフセットパラメータを更新するための手段と
をさらに含む、請求項1~4のいずれかに記載の装置。
【請求項6】
マッピングを定義する少なくとも2つのパラメータを計算するための前記手段が、前記第1の色成分および前記第2の色成分の複数の値ペアを使用して、前記勾配パラメータおよび前記オフセットパラメータを決定するように構成され、
追加の参照値を決定するための前記手段が、前記値ペアの前記第1の色成分の2つ以上の値の組合せを使用するように構成される、請求項5に記載の装置。
【請求項7】
事前決定された更新項のセットと、
前記更新項をビットストリームで信号通知するための手段と
をさらに含む、請求項1~6のいずれかに記載の装置。
【請求項8】
前記ビットストリームで信号通知され得る前記更新項のセットが、サンプルのブロックの特性に依存する、請求項7に記載の装置。
【請求項9】
前記第1の色成分がルマ成分であり、前記第2の色成分が1つの彩度成分であり、
さらに、
現在のブロックに対してマッピングを定義する少なくとも2つのパラメータを計算するための前記手段が、前記オフセット項b’を、b’=c
r-((a*y
r)>>k)として計算するように構成され、ここで、
aは、前記勾配パラメータであり、kは、シフトパラメータであり、
c
rは、前記現在のブロックの左の境界彩度値の平均であり、y
rは、前記現在のブロックの左の境界ルマ値の平均であり、または
c
rは、前記現在のブロックの上の境界彩度値の平均であり、y
rは、前記現在のブロックの上の境界ルマ値の平均であり、または
c
rは、前記現在ブロックの左および上の境界彩度値の平均であり、y
rは、前記現在のブロックの左および上の境界ルマ値の平均である、請求項1~8のいずれかに記載の装置。
【請求項10】
以下のこと、すなわち、
前記c
rおよびy
rパラメータを計算するための前記参照ルマおよび彩度値のセットを、前記勾配パラメータaを計算するための前記参照ルマおよび彩度値のセットよりも大きくなるように選択すること、
前記オフセットパラメータb’を決定するために前記c
rおよびy
rパラメータを計算するための前記参照ルマおよび彩度値のセットを、前記勾配パラメータaを計算するための前記参照ルマおよび彩度値のセットのスーパーセットとなるように選択すること
のうちの1つまたは複数を実行するように構成される、請求項9に記載の装置。
【請求項11】
前記更新項と、実際の更新項と前記予測された更新項との間の差とを予測するための手段
をさらに含む、請求項10に記載の装置。
【請求項12】
前記予測するための手段が、
前記現在のブロックの空間的にもしくは時間的に隣接するブロック、同じもしくは異なるピクチャ内の他のブロック、または異なる色成分もしくはチャネルのブロックの更新項または他のパラメータから前記予測された更新項を決定する
ように構成される、請求項11に記載の装置。
【請求項13】
前記更新項をビットストリームから受け取るための手段
を含む、請求項1~12のいずれかに記載の装置。
【請求項14】
ルマ値を彩度値にマッピングするための線形モデルマッピングを使用して、デコードされたルマ値に基づいて、予測された彩度値を生成するための手段
を含む、請求項1~13のいずれかに記載の装置。
【請求項15】
第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算することであり、前記少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、計算することと、
前記勾配パラメータに対する更新項を決定することと、
前記更新項を前記勾配パラメータの値に加えることによって前記更新項を前記勾配パラメータに適用して、更新された勾配パラメータを生成することと、
第1の色成分の参照値を決定することと、
前記第1の色成分の前記参照値と、前記更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算することと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオコーディングおよびデコーディングにおけるクロス成分パラメータ計算のための装置、方法、およびコンピュータプログラムに関する。
【背景技術】
【0002】
ビデオコーディングでは、ビデオおよび画像サンプルは、一般に、1つの輝度(ルマ)チャネルおよび2つのクロミナンス(彩度)チャネルからなるYUVまたはYCbCrなどの色表現を使用してエンコードされる。これらの場合、主としてシーンの照度を表す輝度チャンネルは、一般に、特定の解像度でコード化され、一方、一般に特定の色成分間の差を表すクロミナンスチャネルは、多くの場合、輝度信号の解像度よりも低い第2の解像度でコード化される。この種の差分表現の意図は、色成分を無相関化し、データをより効率的に圧縮できるようにすることである。
【0003】
多用途ビデオコーディング(VVC/H.266)規格では、クロス成分線形モデル(CCLM)が、彩度チャネル(例えば、CbおよびCr)におけるサンプルを予測するための線形モデルとして使用される。このプロセスは、ルマサンプル値を彩度サンプル値にマッピングするために使用することができる線形モデルを生成する。線形モデルのパラメータは、予測ブロックの境界の外側の利用可能な再構成されたルマおよび彩度参照サンプルを使用して構成される。パラメータが構成されると、それらのパラメータによって指定された線形モデルが、予測ブロックの内側の彩度サンプル値を予測するために使用される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
彩度サンプルを予測するためにクロス成分線形モデル予測を適用することは、ルマチャネルと彩度チャネルとの間に強い線形相関がある場合、再構成されたルマブロックのテクスチャが、時には、彩度テクスチャのための非常に良好な予測子を生成することがあるので、イントラ成分空間予測と比較して効率的であり得る。しかしながら、線形モデルパラメータを生成するために使用される再構成された参照サンプルは、ノイズが多い場合があり、または実際の予測ブロックの内側のコンテンツを十分に表さない場合がある。これらの場合には、予測は失敗し、プロセスはコンテンツに対して最適とはいえないコーディング効率をもたらす。
【0005】
そこで、上述の問題を少なくとも軽減するために、ルマチャネルと彩度チャネルとの間のより良好な相関を達成するための改良された方法が本明細書において導入される。
【課題を解決するための手段】
【0006】
いくつかの態様によれば、線形モードパラメータのうちの1つまたは複数の更新が信号通知される方法が提供される。別の態様によれば、線形モードパラメータのうちの1つまたは複数に対する信号通知された更新が受け取られ、残りのパラメータは、信号通知された更新に基づいて調節される。更新の粒度は、有利には、ブロックのサイズなどの予測ブロックの特性に適応させることができる。更新、または更新情報の存在の表示が、様々な色成分を表す多数のブロックに対して、どのように一緒にコード化またはデコードされ得るかも説明される。
【0007】
第1の態様による装置が、
第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算するための手段であり、少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、計算するための手段と、
勾配パラメータに対する更新項を決定するための手段と、
更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成するための手段と、
第1の色成分の参照値を決定するための手段と、
第1の色成分の参照値と、更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算するための手段と
を含む。
【0008】
一実施形態によれば、この装置は、
第1の色成分および第2の色成分の値ペアからなる参照点を決定するための手段と、
更新項および参照点に基づいて勾配パラメータおよびオフセットパラメータを更新するための手段と
をさらに含む。
【0009】
一実施形態によれば、この装置は、
勾配パラメータおよびオフセットパラメータによって決定されたラインから制御点を選択するための手段
をさらに含む。
【0010】
一実施形態によれば、この装置は、
勾配パラメータおよびオフセットパラメータによって決定されたラインの外側の制御点を選択するための手段
をさらに含む。
【0011】
一実施形態によれば、この装置は、第1の色成分の追加の参照値を決定するための手段と、 追加の参照値をさらに使用して、オフセットパラメータを更新するための手段とをさらに含む。
【0012】
この装置の一実施形態によれば、マッピングを定義する少なくとも2つのパラメータを計算するための前記手段が、第1の色成分および第2の色成分の複数の値ペアを使用して、勾配パラメータおよびオフセットパラメータを決定するように構成され、追加の参照値を決定するための前記手段が、値ペアの第1の色成分の2つ以上の値の組合せを使用するように構成される。
【0013】
一実施形態によれば、この装置は、事前決定された更新項のセットと、更新項をビットストリームで信号通知するための手段とをさらに含む。
【0014】
この装置の一実施形態によれば、ビットストリームで信号通知され得る更新項のセットが、サンプルのブロックの特性に依存する。
【0015】
この装置の一実施形態によれば、
第1の色成分はルマ成分であり、第2の色成分は1つの彩度成分であり、
さらに、
現在のブロックに対してマッピングを定義する少なくとも2つのパラメータを計算するための前記手段が、オフセット項b’を、b’=cr-((a*yr)>>k)として計算するように構成され、ここで、
aは、勾配パラメータであり、kは、シフトパラメータであり、
crは、現在のブロックの左の境界彩度値の平均であり、yrは、現在のブロックの左の境界ルマ値の平均であり、または
crは、現在のブロックの上の境界彩度値の平均であり、yrは、現在のブロックの上の境界ルマ値の平均であり、または
crは、現在ブロックの左および上の境界彩度値の平均であり、yrは、現在のブロックの左および上の境界ルマ値の平均である。
【0016】
一実施形態によれば、この装置は、以下のこと、すなわち、
crおよびyrパラメータを計算するための参照ルマおよび彩度値のセットを、勾配パラメータaを計算するための参照ルマおよび彩度値のセットよりも大きくなるように選択すること、
オフセットパラメータb’を決定するためにcrおよびyrパラメータを計算するための参照ルマおよび彩度値のセットを、勾配パラメータaを計算するための参照ルマおよび彩度値のセットのスーパーセットとなるように選択すること
のうちの1つまたは複数を実行するように構成される。
【0017】
一実施形態によれば、この装置は、
更新項と、実際の更新項と予測された更新項との間の差とを予測するための手段
をさらに含む。
【0018】
この装置の一実施形態によれば、予測するための前記手段が、現在のブロックの空間的にもしくは時間的に隣接するブロック、同じもしくは異なるピクチャ内の他のブロック、または異なる色成分もしくはチャネルのブロックの更新項または他のパラメータから、予測された更新項を決定するように構成される。
【0019】
一実施形態によれば、この装置は、更新項をビットストリームから受け取るための手段をさらに含む。
【0020】
一実施形態によれば、この装置は、ルマ値を彩度値にマッピングするための線形モデルマッピングを使用して、デコードされたルマ値に基づいて、予測された彩度値を生成するための手段をさらに含む。
【0021】
第2の態様による方法は、
第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算することであり、少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、計算することと、
勾配パラメータに対する更新項を決定することと、
更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成することと、
第1の色成分の参照値を決定することと、
第1の色成分の参照値と、更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算することと
を含む。
【0022】
一実施形態によれば、この方法は、
第1の色成分および第2の色成分の値ペアからなる参照点を決定することと、
更新項および参照点に基づいて勾配パラメータおよびオフセットパラメータを更新することと
をさらに含む。
【0023】
一実施形態によれば、この方法は、勾配パラメータおよびオフセットパラメータによって決定されたラインから制御点を選択することをさらに含む。
【0024】
一実施形態によれば、この方法は、勾配パラメータおよびオフセットパラメータによって決定されたラインの外側の制御点を選択することをさらに含む。
【0025】
一実施形態によれば、この方法は、
第1の色成分の追加の参照値を決定することと、
追加の参照値をさらに使用して、オフセットパラメータを更新することと
をさらに含む。
【0026】
この方法の一実施形態によれば、マッピングを定義する少なくとも2つのパラメータを前記計算することが、第1の色成分および第2の色成分の複数の値ペアを使用して、勾配パラメータおよびオフセットパラメータを決定し、追加の参照値を前記決定することが、値ペアの第1の色成分の2つ以上の値の組合せを使用する。
【0027】
一実施形態によれば、この方法は、事前決定された更新項のセットと、更新項をビットストリームで信号通知することとをさらに含む。
【0028】
この方法の一実施形態によれば、ビットストリームで信号通知され得る更新項のセットが、サンプルのブロックの特性に依存する。
【0029】
この方法の一実施形態によれば、第1の色成分はルマ成分であり、第2の色成分は1つの彩度成分であり、
さらに、
現在のブロックに対してマッピングを定義する少なくとも2つのパラメータを前記計算することが、オフセット項b’を、b’=cr-((a*yr)>>k)として計算し、ここで、
aは、勾配パラメータであり、kは、シフトパラメータであり、
crは、現在のブロックの左の境界彩度値の平均であり、yrは、現在のブロックの左の境界ルマ値の平均であり、または
crは、現在のブロックの上の境界彩度値の平均であり、yrは、現在のブロックの上の境界ルマ値の平均であり、または
crは、現在ブロックの左および上の境界彩度値の平均であり、yrは、現在のブロックの左および上の境界ルマ値の平均である。
【0030】
一実施形態によれば、この方法は、以下のこと、すなわち、
crおよびyrパラメータを計算するための参照ルマおよび彩度値のセットを、勾配パラメータaを計算するための参照ルマおよび彩度値のセットよりも大きくなるように選択すること、
オフセットパラメータb’を決定するためにcrおよびyrパラメータを計算するための参照ルマおよび彩度値のセットを、勾配パラメータaを計算するための参照ルマおよび彩度値のセットのスーパーセットとなるように選択すること
のうちの1つまたは複数をさらに実行する。
【0031】
一実施形態によれば、この方法は、更新項と、実際の更新項と予測された更新項との間の差とを予測することをさらに含む。
【0032】
この方法の一実施形態によれば、前記予測することが、現在のブロックの空間的にもしくは時間的に隣接するブロック、同じもしくは異なるピクチャ内の他のブロック、または異なる色成分もしくはチャネルのブロックの更新項または他のパラメータから予測された更新項を決定する。
【0033】
一実施形態によれば、この方法は、更新項をビットストリームから受け取ることをさらに含む。
【0034】
一実施形態によれば、この方法は、ルマ値を彩度値にマッピングするための線形モデルマッピングを使用して、デコードされたルマ値に基づいて、予測彩度値を生成することをさらに含む。
【0035】
第3の態様による装置が、少なくとも1つのプロセッサと少なくとも1つのメモリとを含み、前記少なくとも1つのメモリにはコードが格納され、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、少なくとも、
第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算することであり、少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、計算することと、
勾配パラメータに対する更新項を決定することと、
更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成することと、
第1の色成分の参照値を決定することと、
第1の色成分の参照値と、更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算することと
を実行させる。
【0036】
したがって、上述のように、コードが格納された装置およびコンピュータ可読ストレージ媒体は、上述の方法、およびそれに関連する実施形態のうちの1つまたは複数を実行するように構成される。
【0037】
本発明のよりよい理解のために、次に、添付の図面が例として参照される。
【図面の簡単な説明】
【0038】
【
図1】本発明の実施形態を利用する電子デバイスを概略的に示す図である。
【
図2】本発明の実施形態を利用するのに適するユーザ機器を概略的に示す図である。
【
図3】無線および有線ネットワークの接続を使用して接続された本発明の実施形態を利用する電子デバイスを概略的にさらに示す図である。
【
図4a】本発明の実施形態を実施するのに適するエンコーダおよびデコーダを概略的に示す図である。
【
図4b】本発明の実施形態を実施するのに適するエンコーダおよびデコーダを概略的に示す図である。
【
図5a】本開示の一実施形態による、ルマ値から彩度値への線形モデルマッピングを示す図である。
【
図5c】決定された初期マッピングラインの外側の制御点prを選択し、そのような点に関して勾配更新を実行することを示す図である。
【
図5d】決定された初期マッピングラインの外側の制御点prを使用し、勾配を変えないままでオフセットパラメータbの更新のみを実行することを示す図である。
【
図6a】本開示の一実施形態による、ブロックBの上の参照サンプルRの異なる選択を示す図である。
【
図6b】本開示の一実施形態による、ブロックBの上の参照サンプルRの異なる選択を示す図である。
【
図6c】本開示の一実施形態による、ブロックBの上の参照サンプルRの異なる選択を示す図である。
【
図7a】本発明の一実施形態による方法の流れ図である。
【
図7b】本発明の別の実施形態による方法の流れ図である。
【
図8】様々な実施形態が実施され得る例示のマルチメディア通信システムの概略図である。
【発明を実施するための形態】
【0039】
以下は、視点切替えを開始するための適切な装置および可能な機構をさらに詳細に説明する。これに関して、
図1および
図2が最初に参照され、
図1は、例示の実施形態によるビデオコーディングシステムのブロック図を、本発明の一実施形態に従ってコーデックを組み込むことができる例示的な装置または電子デバイス50の概略ブロック図として示す。
図2は、例示の実施形態による装置のレイアウトを示す。
図1および
図2の要素が、次に説明される。
【0040】
電子デバイス50は、例えば、無線通信システムの携帯端末またはユーザ機器であり得る。しかしながら、本発明の実施形態は、ビデオ画像のエンコーディングおよびデコーディング、あるいはエンコーディングまたはデコーディングを必要とし得る電子デバイスまたは装置内に実装することができることを理解されよう。
【0041】
装置50は、デバイスの組込みおよび保護のためにハウジング30を含むことができる。装置50は、さらに、液晶ディスプレイの形態のディスプレイ32を含むことができる。本発明の他の実施形態では、ディスプレイは、画像またはビデオを表示するのに適する任意の好適なディスプレイ技術とすることができる。装置50は、キーパッド34をさらに含むことができる。本発明の他の実施形態では、任意の好適なデータまたはユーザインタフェース機構を利用することができる。例えば、ユーザインタフェースは、タッチセンシティブディスプレイの一部としてバーチャルキーボードまたはデータエントリシステムとして実装することができる。
【0042】
装置は、マイクロホン36、またはデジタルもしくはアナログ信号入力部とすることができる任意の適切なオーディオ入力部を含むことができる。装置50は、本発明の実施形態では、イヤホン38、スピーカ、またはアナログオーディオもしくはデジタルオーディオ出力接続部のうちの任意の1つとすることができるオーディオ出力デバイスをさらに含むことができる。装置50は、バッテリをさらに含むことができる(または本発明の他の実施形態では、デバイスは、太陽電池、燃料電池、またはクロックワーク発電機などの任意の適切な携帯エネルギーデバイスによって電力供給されてもよい)。装置は、画像および/またはビデオを記録または捕捉することができるカメラをさらに含むことができる。装置50は、他のデバイスとの短距離見通し線通信のための赤外線ポートをさらに含むことができる。他の実施形態では、装置50は、任意の適切な短距離通信ソリューション、例えば、ブルートゥース無線接続、USB/ファイヤワイヤ有線接続などをさらに含むことができる。
【0043】
装置50は、装置50を制御するためのコントローラ56、プロセッサ、またはプロセッサ回路を含むことができる。コントローラ56は、本発明の実施形態では、画像およびオーディオデータの形態の両方のデータを格納することができる、および/またはさらにコントローラ56での実施のための命令を格納することができるメモリ58に接続することができる。コントローラ56は、さらに、オーディオおよび/またはビデオデータのコーディングおよびデコーディングを実行する、またはコントローラによって実行されるコーディングおよびデコーディングを支援するのに適するコーデック回路54に接続することができる。
【0044】
装置50は、カードリーダ48およびスマートカード46、例えば、ユーザ情報を提供し、ネットワークでのユーザの認証および認定のための認証情報を提供するのに適するUICCおよびUICCリーダをさらに含むことができる。
【0045】
装置50は、コントローラに接続され、例えば、セルラ通信ネットワーク、無線通信システム、または無線ローカルエリアネットワークとの通信のための無線通信信号を生成するのに適する無線インタフェース回路52を含むことができる。装置50は、無線インタフェース回路52で生成された無線周波数信号を他の装置に送信し、他の装置からの無線周波数信号を受信するために無線インタフェース回路52に接続されたアンテナ44をさらに含むことができる。
【0046】
装置50は、個々のフレームを記録または検出することができるカメラを含むことができ、個々のフレームは、次いで、処理のためにコーデック54またはコントローラに渡される。装置は、送信および/または格納の前に、別のデバイスからの処理のためのビデオ画像データを受信することができる。装置50は、さらに、無線でまたは有線接続によって、コーディング/デコーディングのための画像を受信することができる。上述の装置50の構造要素は、対応する機能を実行するための手段の例を示す。
【0047】
図3に関して、本発明の実施形態を利用することができるシステムの一例が示される。システム10は、1つまたは複数のネットワークを通して通信することができる多数の通信デバイスを含む。システム10は、限定はしないが無線セルラ電話ネットワーク(GSM、UMTS、CDMAネットワークなどのような)、IEEE 802.x規格のうちのいずれかによって定義されているものなどの無線ローカルエリアネットワーク(WLAN)、ブルートゥースパーソナルエリアネットワーク、イーサネットローカルエリアネットワーク、トークンリングローカルエリアネットワーク、ワイドエリアネットワーク、およびインターネットを含む有線ネットワークまたは無線ネットワークの任意の組合せを含むことができる。
【0048】
システム10は、本発明の実施形態を実施するのに適する有線および無線の通信デバイスおよび/または装置50の両方を含むことができる。
【0049】
例えば、
図3に示されるシステムは、携帯電話ネットワーク11と、インターネット28の表現とを示す。インターネット28への接続は、限定はしないが、長距離無線接続と、短距離無線接続と、限定はしないが、電話線、ケーブル線、電力線、および同様の通信経路を含む様々な有線接続とを含むことができる。
【0050】
システム10に示された例示の通信デバイスは、限定はしないが、電子デバイスまたは装置50、携帯情報端末(PDA)と携帯電話14の組合せ、PDA16、統合メッセージングデバイス(IMD)18、デスクトップコンピュータ20、ノートブックコンピュータ22を含むことができる。装置50は、固定式であってもよく、または移動している人によって携帯される携帯式であってもよい。装置50はまた、限定はしないが、自動車、トラック、タクシー、バス、列車、船、飛行機、自転車、オートバイまたは同様の適切な輸送手段を含む輸送手段に配置することができる。
【0051】
実施形態はまた、セットトップボックス、すなわち、ディスプレイまたは無線機能があることもあり/ないこともあるデジタルTVレシーバに、エンコーダ/デコーダ実装のハードウェア、ソフトウェア、または組合せを有するタブレットまたは(ラップトップ)パーソナルコンピュータ(PC)に、様々なオペレーティングシステムに、およびハードウェア/ソフトウェアベースコーディングを提供するチップセット、プロセッサ、DSP、および/または組込みシステムに実装することができる。
【0052】
いくつかのまたはさらなる装置は、通話およびメッセージを送受信し、基地局24への無線接続25を介してサービスプロバイダと通信することができる。基地局24は、携帯電話ネットワーク11とインターネット28との間の通信を可能にするネットワークサーバ26に接続され得る。システムは、追加の通信デバイスと、様々なタイプの通信デバイスとを含むことができる。
【0053】
通信デバイスは、限定はしないが、符号分割多元接続(CDMA)、移動通信用グローバルシステム(GSM)、ユニバーサル移動通信システム(UMTS)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、送信制御プロトコル-インターネットプロトコル(TCP-IP)、ショートメッセージサービス(SMS)、マルチメディアメッセージサービス(MMS)、電子メール、インスタントメッセージサービス(IMS)、ブルートゥース、IEEE802.11および同様の無線通信技術を含む様々な送信技術を使用して通信することができる。本発明の様々な実施形態の実施に関わる通信デバイスは、限定はしないが、無線、赤外線、レーザ、ケーブル接続、および任意の適切な接続を含む様々な媒体を使用して通信することができる。
【0054】
電気通信およびデータネットワークにおいて、チャネルは、物理チャネルまたは論理チャネルのいずれかを参照することができる。物理チャネルは、ワイヤなどの物理的伝送媒体を参照することができ、一方、論理チャネルは、いくつかの論理チャネルを搬送することができる多重媒体を介した論理的接続を参照することができる。チャネルは、1つまたはいくつかのセンダ(または送信器)から1つまたはいくつかの受信器に情報信号、例えば、ビットストリームを搬送するために使用することができる。
【0055】
ISO/IEC 13818-1または同等のITU-T勧告H.222.0で指定されたMPEG-2トランスポートストリーム(TS)は、オーディオ、ビデオ、および他のメディア、ならびにプログラムメタデータまたは他のメタデータを多重化ストリームで搬送するためのフォーマットである。パケット識別子(PID)が、TS内のエレメンタリストリーム(別名、パケット化エレメンタリストリーム)を識別するために使用される。したがって、MPEG-2 TS内の論理チャネルは、特定のPID値に対応すると考えることができる。
【0056】
利用可能なメディアファイルフォーマット標準は、ISOベースメディアファイルフォーマット(ISO/IEC 14496-12、ISOBMFFと省略されることがある)、およびISOBMFFから派生したNALユニット構造化ビデオのファイルフォーマット(ISO/IEC14496-15)を含む。
【0057】
ビデオコーデックは、入力ビデオをストレージ/伝送に適した圧縮表現に変換するエンコーダと、圧縮されたビデオ表現を解凍して表示可能形式に戻すデコーダとからなる。ビデオエンコーダおよび/またはビデオデコーダはまた、互いに別個であってもよく、すなわち、コーデックを形成する必要はない。一般に、エンコーダは、ビデオをよりコンパクトな形式で(すなわち、より低いビットレートで)表すために、オリジナルビデオシーケンスの一部の情報を廃棄する。
【0058】
典型的なハイブリッドビデオエンコーダ、例えば、ITU-T H.263およびH.264の多くのエンコーダ実施態様は、ビデオ情報を2つのフェーズでエンコードする。第1に、特定のピクチャ区域(または「ブロック」)のピクセル値が、例えば、動き補償手段(以前にコード化されたビデオフレームのうちの1つにおいて、コード化されているブロックに密接に対応する区域を見いだし示すこと)によって、または空間的手段(指定された方法でコード化されているブロックのまわりのピクセル値を使用すること)によって予測される。第2に、予測誤差、すなわち、ピクセルの予測されたブロックとピクセルのオリジナルのブロックとの間の差がコード化される。これは、一般に、指定された変換(例えば、離散コサイン変換(DCT)またはその変形)を使用してピクセル値の差を変換し、係数を量子化し、量子化係数をエントロピーコード化することによって行われる。量子化プロセスの忠実度を変更することによって、エンコーダは、ピクセル表現の精度(ピクチャ品質)と、結果として生じるコード化ビデオ表現のサイズ(ファイルサイズまたは送信ビットレート)との間のバランスを制御することができる。
【0059】
時間予測では、予測のソースは、以前にデコードされたピクチャ(別名、参照ピクチャ)である。イントラブロックコピー(IBC;別名、イントラブロックコピー予測)では、予測は、時間予測と同様に適用されるが、参照ピクチャは、現在のピクチャであり、以前にデコードされたサンプルのみが予測プロセスおいて参照され得る。インターレイヤまたはインタービュー予測が、時間予測と同様に適用され得るが、参照ピクチャは、それぞれ、別のスケーラブルレイヤまたは別のビューからのデコードされたピクチャである。ある場合には、インター予測は、時間予測のみを参照することができるが、他の場合には、インター予測は、時間予測と、時間予測と同じまたは同様のプロセスで実行されるという条件でイントラブロックコピー、インターレイヤ予測、およびインタービュー予測のうちのいずれかとをまとめて参照することができる。インター予測または時間予測は、時には、動き補償または動き補償予測と呼ばれることがある。
【0060】
動き補償は、フルサンプル精度またはサブサンプル精度のいずれかで実行することができる。フルサンプルの正確な動き補償の場合、動きは、水平および垂直変位に対して整数値の動きベクトルとして表すことができ、動き補償プロセスは、それらの変位を使用して、参照ピクチャからサンプルを効果的にコピーする。サブサンプルの正確な動き補償の場合、動きベクトルは、動きベクトルの水平および垂直成分に対して小数値または10進数値で表される。動きベクトルが参照ピクチャ内で非整数位置を指している場合、一般に、サブサンプル補間プロセスを呼び出して、参照サンプルと選択されたサブサンプル位置とに基づいて予測サンプル値を計算する。サブサンプル補間プロセスは、一般に、フルサンプル位置に対する水平オフセットを補償する水平フィルタリングと、それに続く、フルサンプル位置に対する垂直オフセットを補償する垂直フィルタリングとからなる。しかしながら、垂直処理は、環境によっては、水平処理の前に行うこともできる。
【0061】
時間予測、動き補償、または動き補償予測と呼ばれることもあるインター予測は、時間的冗長性を低減する。インター予測では、予測のソースは、以前にデコードされたピクチャである。イントラ予測は、同じピクチャ内の隣接するピクセルが相関している可能性が高いことを利用する。イントラ予測は空間ドメインまたは変換ドメインで実行することができる、すなわち、サンプル値または変換係数のいずれかが予測され得る。イントラ予測は、一般に、インター予測が適用されないイントラコーディングで利用される。
【0062】
コーディング手順の1つの結果は、動きベクトルおよび量子化された変換係数などのコーディングパラメータのセットである。多くのパラメータは、最初に空間的にまたは時間的に隣接するパラメータから予測される場合、より効率的にエントロピーコード化することができる。例えば、動きベクトルを空間的に隣接する動きベクトルから予測することができ、動きベクトル予測子に対する差のみをコード化することができる。コーディングパラメータの予測と、イントラ予測とは、まとめて、インピクチャ予測と呼ばれることがある。
【0063】
図4aおよび
図4bは、本発明の実施形態を使用するのに適するエンコーダおよびデコーダを示す。ビデオコーデックは、入力ビデオをストレージ/伝送に適した圧縮表現に変換するエンコーダと、圧縮されたビデオ表現を解凍して表示可能形式に戻すことができるデコーダとからなる。一般に、エンコーダは、ビデオをよりコンパクトな形式で(すなわち、より低いビットレートで)表すために、オリジナルビデオシーケンスの一部の情報を廃棄するかつ/または失う。エンコーディングプロセスの一例が
図4aに示される。
図4aは、エンコードされるべき画像(In)、画像ブロックの予測表現(P’n)、予測誤差信号(Dn)、再構成予測誤差信号(D’n)、予備再構成画像(I’n)、最終再構成画像(R’n)、変換(T)および逆変換(T-1)、量子化(Q)および逆量子化(Q-1)、エントロピーエンコーディング(E)、参照フレームメモリ(RFM)、インター予測(Pinter)、イントラ予測(Pintra)、モード選択(MS)、およびフィルタリング(F)を示す。
【0064】
デコーディングプロセスの一例が
図4bに示される。
図4bは、画像ブロックの予測表現(P’n)、再構成予測誤差信号(D’n)、予備再構成画像(I’n)、最終再構成画像(R’n)、逆変換(T-1)、逆量子化(Q-1)、エントロピーデコーディング(E-1)、参照フレームメモリ(RFM)、予測(インターまたはイントラのいずれか)(P)、およびフィルタリング(F)を示す。
【0065】
多くのハイブリッドビデオエンコーダは、ビデオ情報を2つのフェーズでエンコードする。第1に、特定のピクチャ区域(または「ブロック」)のピクセル値が、例えば、動き補償手段(以前にコード化されたビデオフレームのうちの1つにおいて、コード化されているブロックに密接に対応する区域を見いだし示す)によって、または空間的手段(指定された方法でコード化されているブロックのまわりのピクセル値を使用する)によって予測される。第2に、予測誤差、すなわち、ピクセルの予測されたブロックとピクセルのオリジナルのブロックとの間の差がコード化される。これは、一般に、指定された変換(例えば、離散コサイン変換(DCT)またはその変形)を使用してピクセル値の差を変換し、係数を量子化し、量子化係数をエントロピーコード化することによって行われる。量子化プロセスの忠実度を変更することによって、エンコーダは、ピクセル表現の正確度(ピクチャ品質)と、結果として生じるコード化ビデオ表現のサイズ(ファイルサイズまたは送信ビットレート)との間のバランスを制御することができる。ビデオコーデックはまた、エンコーダが使用することを選ぶことができる変換スキップモードを提供することができる。変換スキップモードでは、予測誤差は、例えば、特定の隣接するサンプルに対するサンプルごとの差分値を導出し、エントロピーコーダによりサンプルごとの差分値をコード化することによって、サンプルドメインにおいてコード化される。
【0066】
エントロピーコーディング/デコーディングは、多くの方法で実行することができる。例えば、コンテキストベースコーディング/デコーディングを適用することができ、エンコーダとデコーダの両方は、前にコード化/デコード化されたコーディングパラメータに基づいてコーディングパラメータのコンテキスト状態を変更する。コンテキストベースコーディングは、例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)またはコンテキストベース可変長コーディング(CAVLC)または任意の類似のエントロピーコーディングとすることができる。エントロピーコーディング/デコーディングは、代替としてまたは追加として、ハフマンコーディング/デコーディングまたは指数ゴロムコーディング/デコーディングなどの可変長コーディングスキームを使用して実行され得る。エントロピーコード化ビットストリームまたはコードワードからのコーディングパラメータのデコーディングは、構文解析と呼ばれることがある。
【0067】
ビットストリームに沿ったという(例えば、ビットストリームに沿ったことを示す)フレーズは、帯域外データがビットストリームに関連づけられる方法で帯域外送信、信号通知、またはストレージを参照するように定義することができる。ビットストリームに沿ったデコーディングなどのフレーズは、ビットストリームに関連する言及された帯域外データ(帯域外送信、信号通知、またはストレージから取得され得る)のデコーディングを参照することができる。例えば、ビットストリームに沿った表示は、ビットストリームをカプセル化するコンテナファイル内のメタデータを参照することができる。
【0068】
H.264/AVC規格は、国際電気通信連合(ITU-T)の電気通信標準化部門のビデオコーディングエキスパートグループ(VCEG)と国際標準化機構(ISO)/国際電気標準会議(IEC)のムービングピクチャエクスパーツグループ(MPEG)の合同ビデオチーム(JVT)によって開発された。H.264/AVC規格は、両方の標準化母体によって公開されており、ITU-T勧告H.264およびISO/IECの国際規格14496-10と呼ばれ、MPEG-4パート10アドバンスドビデオコーディング(AVC)としても知られている。本仕様の新しい拡張または特徴を統合したH.264/AVC規格の多数のバージョンが存在している。これらの拡張は、スケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)を含む。
【0069】
高効率ビデオコーディング(H.265/HEVC、別名、HEVC)規格のバージョン1は、VCEGおよびMPEGの合同協力チーム-ビデオコーディング(JCT-VC)によって開発された。この規格は、両方の標準化母体によって公開されており、ITU-T勧告H.265およびISO/IEC国際規格23008-2と呼ばれ、MPEG-Hパート2高効率ビデオコーディング(HEVC)としても知られている。H.265/HEVCのそれ以降のバージョンには、それぞれ、SHVC、MV-HEVC、REXT、3D-HEVC、およびSCCと略記されることがあるスケーラブル、マルチビュー、忠実度範囲、3次元、およびスクリーンコンテンツコーディングの拡張が含まれている。
【0070】
バーサタイルビデオコーディング(VVC)(MPEG-Iパート3)、別名ITU-T H.266は、ムービングピクチャエクスパーツグループ(MPEG)のジョイントビデオエキスパートチーム(JVET)(正式にはISO/IEC JTC1 SC29 WG11)と、国際電気通信連合(ITU)のビデオコーディングエキスパートグループ(VCEG)とによって開発されたビデオ圧縮標準であり、HEVC/H.265の後継である。
【0071】
H.264/AVCのいくつかの重要な定義、ビットストリームおよびコーディング構造、概念、ならびにHEVCが、この節において、実施形態を実施できるビデオエンコーダ、デコーダ、エンコーディング方法、デコーディング方法、およびビットストリーム構造の一例として説明される。H.264/AVCの重要な定義、ビットストリームおよびコーディング構造、ならびに概念の一部は、HEVCのものと同じであり、したがって、それらは、以下でまとめて説明される。本発明の態様は、H.264/AVCまたはHEVCに限定されず、むしろ、本発明を部分的にまたは完全に実現することができる1つの可能な基礎の説明が与えられる。
【0072】
多くの初期のビデオコーディング標準と同様に、ビットストリームシンタックスおよびセマンティクスならびにエラーのないビットストリームのデコーディングプロセスは、H.264/AVCおよびHEVCで指定されている。エンコーディングプロセスは、指定されていないが、エンコーダは、準拠するビットストリームを生成しなければならない。ビットストリームおよびデコーダの適合性は、仮想参照デコーダ(HRD)を用いて検証することができる。標準は、伝送エラーおよび損失に対処するのに役立つコーディングツールを含むが、エンコーディングでのツールの使用はオプションであり、デコーディングプロセスは、誤ったビットストリームについては指定されていない。
【0073】
H.264/AVCまたはHEVCエンコーダへの入力およびH.264/AVCまたはHEVCデコーダの出力の基本ユニットは、それぞれ、ピクチャである。エンコーダへの入力として与えられるピクチャは、ソースピクチャと呼ばれることもあり、デコーダによってデコードされたピクチャは、デコードされたピクチャと呼ばれることがある。
【0074】
ソースピクチャおよびデコードされたピクチャは、各々、1つまたは複数のサンプルアレイ、例えば、サンプルアレイの以下のセットのうちの1つなどで構成される。
- ルマ(Y)のみ(単色)。
- ルマおよび2つの彩度(YCbCrまたはYCgCo)。
- 緑、青、および赤(GBR、RGBとしても知られる)。
- 他の指定されていない単色または三刺激色サンプリング(例えば、YZX、XYZとしても知られる)を表すアレイ。
【0075】
H.264/AVCおよびHEVCでは、ピクチャは、フレームまたはフィールドのいずれかとすることができる。フレームは、ルマサンプルと、場合によっては対応する彩度サンプルとのマトリクスを含む。フィールドは、ソース信号がインターレースされる場合、フレームの交互のサンプル行のセットであり、エンコーダ入力として使用することができる。彩度サンプルアレイはなくてもよく、(したがって、単色のサンプリングが使用されてもよく)、または彩度サンプルアレイは、ルマサンプルアレイと比較される場合、サブサンプリングされてもよい。彩度フォーマットは、以下のように要約することができる。
- 単色サンプリングでは、1つのサンプルアレイのみが存在し、それは名目上ルマアレイと考えることができる。
- 4:2:0サンプリングでは、2つの彩度アレイの各々が、ルマアレイの半分の高さおよび半分の幅を有する。
- 4:2:2サンプリングでは、2つの彩度アレイの各々が、ルマアレイと同じの高さおよびルマアレイの半分の幅を有する。
- 4:4:4サンプリングでは、別個の色平面が使用されない場合、2つの彩度アレイの各々が、ルマアレイと同じ高さおよび幅を有する。
【0076】
H.264/AVCおよびHEVCでは、サンプルアレイを別個の色平面としてビットストリームにコード化し、別個にコード化された色平面をビットストリームからそれぞれデコードすることが可能である。別個の色平面が使用される場合、それらの各々は、単色サンプリングによるピクチャとして別々に処理される(エンコーダおよび/またはデコーダによって)。
【0077】
パーティショニングは、セットの各要素がサブセットのうちの正確に1つに存在するように、セットをサブセットに分割することとして定義することができる。
【0078】
HEVCエンコーディングおよび/またはデコーディングの動作を説明するとき、以下の用語を使用することができる。コーディングブロックは、コーディングツリーブロックのコーディングブロックへの分割がパーティショニングとなるように、ある値のNについてサンプルのN×Nブロックとして定義することができる。コーディングツリーブロック(CTB)は、成分のコーディングツリーブロックへの分割がパーティショニングとなるように、ある値のNに対するサンプルのN×Nブロックとして定義することができる。コーディングツリーユニット(CTU)は、ルマサンプルのコーディングツリーブロック、3つのサンプルアレイを有するピクチャの彩度サンプルの2つの対応するコーディングツリーブロック、または単色ピクチャ、もしくはサンプルをコード化するために使用される3つの別個の色平面およびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングツリーブロックとして定義することができる。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプルアレイを有するピクチャの彩度サンプルの2つの対応するコーディングブロック、または単色ピクチャ、もしくはサンプルをコード化するために使用される3つの別個の色平面およびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングブロックとして定義することができる。最大許容サイズのCUは、LCU(最大コーディングユニット)またはコーディングツリーユニット(CTU)と名前をつけることができ、ビデオピクチャはオーバーラップしないLCUに分割される。
【0079】
CUは、CU内のサンプルの予測プロセスを定義する1つまたは複数の予測ユニット(PU)と、前記CU内のサンプルの予測誤差コーディングプロセスを定義する1つまたは複数の変換ユニット(TU)とからなる。一般に、CUは、可能なCUサイズの事前定義されたセットから選択可能なサイズをもつサンプルの正方形ブロックからなる。各PUおよびTUは、それぞれ、予測プロセスおよび予測誤差コーディングプロセスの粒度を高めるために、より小さいPUおよびTUにさらにスプリットされ得る。各PUは、そのPU内のピクセルにどの種類の予測が適用されるべきかを定義する、各PUに関連する予測情報(例えば、インター予測PUでは動きベクトル情報、およびイントラ予測PUではイントラ予測方向情報)を有する。
【0080】
各TUは、前記TU内のサンプルに対する予測誤差デコーディングプロセスを記述する情報(例えば、DCT係数情報を含む)に関連づけることができる。CUごとに予測誤差コーディングが適用されるか否かが、一般に、CUレベルで信号通知される。CUに関連する予測誤差残差がない場合には、前記CUにはTUがないと考えることができる。画像のCUへの分割と、CUのPUおよびTUへの分割とは、一般に、ビットストリームで信号通知され、それにより、デコーダは、これらのユニットの意図された構造を再現することができる。
【0081】
HEVCにおいて、ピクチャは、タイルにパーティションすることができ、タイルは長方形であり、整数のLCUを含む。HEVCにおいて、タイルへのパーティショニングは、規則的なグリッドを形成し、タイルの高さおよび幅は、最大で1LCUだけ互いに異なる。HEVCにおいて、スライスは1つの独立スライスセグメントと、同じアクセスユニット内の次の独立スライスセグメント(もしあれば)に先行するすべての後続の従属スライスセグメント(もしあれば)とに含まれる整数のコーディングツリーユニットであると定義される。HEVCにおいて、スライスセグメントは、タイルスキャンで連続的に順序づけられ、単一のNALユニットに含まれる整数のコーディングツリーユニットであると定義される。各ピクチャのスライスセグメントへの分割は、パーティショニングである。HEVCにおいて、独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が前のスライスセグメントの値から推測されないスライスセグメントであると定義され、従属スライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値がデコーディング順序での先行する独立スライスセグメントの値から推測されるスライスセグメントであると定義される。HEVCにおいて、スライスヘッダは、現在のスライスセグメントであるか、または現在の従属スライスセグメントに先行する独立スライスセグメントである独立スライスセグメントのスライスセグメントヘッダであると定義され、スライスセグメントヘッダは、スライスセグメント内で表される最初のまたはすべてのコーディングツリーユニットに関連するデータ要素を含むコード化スライスセグメントの一部であると定義される。CUは、タイル内で、またはタイルが使用されない場合にはピクチャ内でLCUのラスタスキャン順序でスキャンされる。LCU内では、CUは、特定のスキャン順序を有する。
【0082】
デコーダは、ピクセルブロックの予測表現を形成する(エンコーダによって作り出され、圧縮表現で格納された動きまたは空間情報を使用して)するためのエンコーダと同様の予測手段と、予測誤差デコーディング(空間ピクセルドメインにおける量子化された予測誤差信号を回復する予測誤差コーディングの逆操作)とを適用することによって出力ビデオを再構築する。予測および予測誤差復号化手段を適用した後、デコーダは、予測および予測誤差信号(ピクセル値)を合計して、出力ビデオフレームを形成する。デコーダ(およびエンコーダ)は、さらに、追加のフィルタリング手段を適用して出力ビデオの品質を改善し、その後、それを表示のために送り、および/またはそれをビデオシーケンスの来たるフレームの予測参照として格納することができる。
【0083】
フィルタリングは、例えば、以下のデブロッキング、サンプル適応オフセット(SAO)、および/または適応ループフィルタリング(ALF)のうちの1つまたは複数を含むことができる。H.264/AVCはデブロッキングを含み、一方、HEVCはデブロッキングとSAOの両方を含む。
【0084】
一般的なビデオコーデックでは、動き情報は、予測ユニットなどの各動き補償済み画像ブロックに関連する動きベクトルで示される。これらの動きベクトルの各々は、コード化されるべき(エンコーダ側で)またはデコードされるべき(デコーダ側で)ピクチャの画像ブロックと以前にコード化またはデコードされたピクチャのうちの1つの予測ソースブロックとの変位を表す。動きベクトルを効率的に表すために、それらは、一般に、ブロック特有の予測動きベクトルに対して差分的にコード化される。一般的なビデオコーデックでは、予測動きベクトルは、事前定義された方法で、例えば、隣接するブロックのエンコードまたはデコードされた動きベクトルの中央値を計算することで作り出される。動きベクトル予測を作り出す別の方法は、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックから候補予測のリストの生成し、選ばれた候補を動きベクトル予測量として信号通知することである。動ベクトル値の予測に加えて、どの参照ピクチャが動き補償予測に使用されるかを予測することができ、この予測情報は、例えば、以前にコード化/デコードされたピクチャの参照インデクスで表すことができる。参照インデクスは、一般に、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックから予測される。その上、一般的な高効率ビデオコーデックは、多くの場合、マージングモード/マージモードと呼ばれる追加の動き情報コーディング/デコーディング機構を利用し、利用可能な参照ピクチャリストごとに動きベクトルおよび対応する参照ピクチャインデクスを含むすべての動きフィールド情報が予測され、いかなる変形/修正もなしに使用される。同様に、動きフィールド情報の予測は、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックの動きフィールド情報を使用して実行され、使用された動きフィールド情報は、利用可能な隣接するブロック/同じ場所に配置されたブロックの動きフィールド情報で満たされた動きフィールド候補リストのリスト間で信号通知される。
【0085】
一般的なビデオコーデックでは、動き補償の後の予測残差は、最初に、変換カーネル(DCTのような)で変換され、次いで、コード化される。この理由は、多くの場合、残差間に依然として若干の相関が存在しており、変換が、多くの場合、この相関を低減し、より効率的なコーディングを行うのに役立つことができるからである。
【0086】
ビデオコーディング標準および仕様は、エンコーダがコード化ピクチャをコード化スライスなどに分割することを可能にすることができる。インピクチャ予測は、一般に、スライス境界を越えては無効にされる。したがって、スライスは、コード化ピクチャを独立にデコード可能なピースにスプリットする方法と見なすことができる。H.264/AVCおよびHEVCでは、インピクチャ予測はスライス境界を越えては無効にされ得る。したがって、スライスは、コード化ピクチャを独立にデコード可能なピースにスプリットする方法と見なすことができ、それゆえに、スライスは、しばしば、送信の基本ユニットと見なされる。多くの場合、エンコーダは、どのタイプのインピクチャ予測がスライス境界を越えて停止されたかをビットストリーム内で示すことができ、デコーダ動作は、例えば、どの予測ソースが利用可能であるかを結論するとき、この情報を考慮する。例えば、隣接するCUが異なるスライスに存在する場合、隣接するCUからのサンプルは、イントラ予測には利用不可能であると見なすことができる。
【0087】
H.264/AVCまたはHEVCエンコーダの出力およびH.264/AVCまたはHEVCデコーダの入力の基本ユニットは、それぞれ、ネットワーク抽象化レイヤ(NAL)ユニットである。パケット指向ネットワークによる移送または構造化ファイルへの格納では、NALユニットは、パケットまたは同様の構造にカプセル化され得る。バイトストリームフォーマットが、フレーミング構造を提供しない送信またはストレージ環境のためにH.264/AVCおよびHEVCで指定されている。バイトストリームフォーマットは、各NALユニットの前に開始コードを付けることによってNALユニットを互いに分離する。NALユニット境界の誤検出を避けるために、エンコーダは、開始コードが違ったふうに発生した場合にエミュレーション防止バイトをNALユニットペイロードに追加するバイト指向開始コードエミュレーション防止アルゴリズムを実行する。パケット指向システムとストリーム指向システムと間の直接のゲートウェイ操作を可能にするために、開始コードエミュレーション防止は、バイトストリームフォーマットが使用されているか否かにかかわらず常に実行され得る。NALユニットは、後に続くデータのタイプの表示と、必要に応じてエミュレーション防止バイトを割り込ませたRBSPの形態でそのデータを含むバイトを含むシンタックス構造として定義することができる。生のバイトシーケンスペイロード(RBSP)は、NALユニットにカプセル化された整数のバイトを含むシンタックス構造として定義することができる。RBSPは、空であるか、またはシンタックス要素を含むデータビットと、それに続くRBSPストップビットと、さらにそれに続く0に等しい0個以上の後続のビットのストリングの形式を有する。
【0088】
NALユニットは、ヘッダとペイロードとからなる。H.264/AVCおよびHEVCでは、NALユニットヘッダは、NALユニットのタイプを示す。
【0089】
HEVCでは、2バイトNALユニットヘッダが、すべての指定されたNALユニットタイプに使用される。NALユニットヘッダは、1つの予約ビット、6ビットのNALユニットタイプ表示、時間レベルでの3ビットのnuh_temporal_id_plus1(1以上であることが必要とされることがある)、および6ビットのnuh_layer_idシンタックス要素を含む。temporal_id_plus1シンタックス要素は、NALユニットの時間識別子と見なすことができ、ゼロベースのTemporalId変数は、以下のように導出することができ、TemporalId=temporal_id_plus1 - 1である。略語TIDは、TemporalId変数と交換可能に使用することができる。0に等しいTemporalIdは、最も低い時間レベルに対応する。temporal_id_plus1の値は、2つのNALユニットヘッダバイトを含む開始コードエミュレーションを避けるために非ゼロであることが必要とされる。選択された値以上のTemporalIdを有するすべてのVCL NALユニットを排除し、すべての他のVCL NALユニットを含めることによって作り出されたビットストリームは、適合したままである。その結果、tid_valueに等しいTemporalIdを有するピクチャは、tid_valueよりも大きいTemporalIdを有するピクチャをインター予測参照として使用しない。サブレイヤまたは時間サブレイヤは、TemporalId変数の特定の値をもつVCL NALユニットと、関連する非VCL NALユニットとからなる時間スケーラブルビットストリームの時間スケーラブル層(または時間層、TL)であると定義することができる。nuh_layer_idは、スケーラビリティ層識別子として理解することができる。
【0090】
NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと、非VCL NALユニットとに分類することができる。VCL NALユニットは、一般に、コード化されたスライスNALユニットである。HEVCでは、VCL NALユニットは、1つまたは複数のCUを表すシンタックス要素を含む。
【0091】
非VCL NALユニットは、例えば、以下のタイプのシーケンスパラメータセット、ピクチャパラメータセット、補足エンハンスメント情報(SEI)NALユニット、アクセスユニットデリミタ、シーケンス終了NALユニット、ビットストリーム終了NALユニット、またはフィラーデータNALユニットのうちの1つとすることができる。パラメータセットが、デコードされたピクチャの再構築に必要とされることがあるが、他の非VCL NALユニットの多くは、デコードされたサンプル値の再構築に必要ではない。
【0092】
コード化ビデオシーケンスを通して変更されないままのパラメータは、シーケンスパラメータセットに含まれ得る。デコーディングプロセスによって必要とされることがあるパラメータに加えて、シーケンスパラメータセットは、オプションとして、ビデオユーザビリティ情報(VUI)を含むことができ、ビデオユーザビリティ情報(VUI)は、バッファリング、ピクチャ出力タイミング、レンダリング、およびリソース予約に重要であり得るパラメータを含む。HEVCでは、シーケンスパラメータセットRBSPは、1つまたは複数のピクチャパラメータセットRBSP、またはバッファリング期間SEIのメッセージを含む1つまたは複数のSEI NALユニットによって参照され得るパラメータを含む。ピクチャパラメータセットは、いくつかのコード化ピクチャでは変更されない可能性が高いそのようなパラメータを含む。ピクチャパラメータセットRBSPは、1つまたは複数のコード化ピクチャのコード化スライスNALユニットによって参照され得るパラメータを含むことができる。
【0093】
HEVCでは、ビデオパラメータセット(VPS)は、各スライスセグメントヘッダにおいて見いだされるシンタックス要素によって参照されるPPSにおいて見いだされるシンタックス要素によって参照されるSPSにおいて見いだされるシンタックス要素のコンテンツによって決定される0個以上のコード化ビデオシーケンス全体に適用されるシンタックス要素を含むシンタックス構造として定義することができる。
【0094】
ビデオパラメータセットRBSPは、1つまたは複数のシーケンスパラメータセットRBSPによって参照され得るパラメータを含むことができる。
【0095】
ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)の間の関係および階層は、以下のように記述することができる。VPSは、パラメータセット階層において、およびスケーラビリティおよび/または3Dビデオのコンテキストにおいて、SPSより1レベル上に存在する。VPSは、すべての(スケーラビリティまたはビュー)レイヤにわたるすべてのスライスに共通のパラメータを、コード化ビデオシーケンス全体に、含むことができる。SPSは、特定の(スケーラビリティまたはビュー)レイヤのすべてのスライスに共通のパラメータを、コード化ビデオシーケンス全体に、含み、多数の(スケーラビリティまたはビュー)レイヤによって共有され得る。PPSは、特定のレイヤ表現(1つのアクセスユニットの1つのスケーラビリティまたはビューレイヤの表現)でのすべてのスライスに共通であり、多数のレイヤ表現でのすべてのスライスによって共有される可能性があるパラメータを含む。
【0096】
VPSは、ビットストリームにおけるレイヤの依存性関係に関する情報を、ならびにコード化ビデオシーケンス全体におけるすべての(スケーラビリティまたはビュー)レイヤにわたるすべてのスライスに適用可能な多くの他の情報を提供することができる。VPSは、2つの部分、すなわち、基本VPSおよびVPS拡張を含むと考えることができ、VPS拡張は、オプションとして存在することができる。
【0097】
帯域外送信、信号通知、またはストレージは、追加としてまたは代替として、送信エラーに対する耐性以外の目的、例えば、アクセスまたはセッションネゴシエーションをしやすくすることなどに使用することができる。例えば、ISOベースメディアファイルフォーマットに準拠するファイル内のトラックのサンプルエントリは、パラメータセットを含むことができ、一方、ビットストリーム内のコード化データは、ファイルまたは別のファイルの他のところに格納される。ビットストリームに沿ったというフレーズ(例えば、ビットストリームに沿ったという表示)またはビットストリームのコード化ユニットに沿ったというフレーズ(例えば、コード化タイルに沿ったという表示)は、特許請求の範囲および記載の実施形態において、帯域外データが、それぞれ、ビットストリームまたはコード化ユニットに関連づけられるように、帯域外送信、信号通知、またはストレージを参照するために使用され得る。ビットストリームに沿ったデコーディングまたはビットストリームのコード化ユニットに沿ったデコーディングなどのフレーズは、ビットストリームまたはコード化ユニットにそれぞれ関連づけられた、言及した帯域外データ(帯域外送信、信号通知、またはストレージから取得され得る)のデコーディングを参照することができる。
【0098】
SEI NALユニットは、1つまたは複数のSEIメッセージを含むことができ、
それは、出力ピクチャのデコーディングには必要とされないが、
ピクチャ出力タイミング、レンダリング、エラー検出、エラー隠蔽、およびリソース予約などの関連プロセスを支援することができる。
【0099】
コード化ピクチャは、ピクチャのコード化表現である。
【0100】
HEVCでは、コード化ピクチャは、ピクチャのコーディングツリーユニットのすべてを含むピクチャのコード化表現として定義することができる。HEVCでは、アクセスユニット(AU)は、NALユニットのセットとして定義することができ、NALユニットのセットは、指定された分類ルールに従って互いに関連づけられ、デコーディング順序で連続しており、nuh_layer_idの特定の値をもつ多くても1つのピクチャを含む。コード化ピクチャのVCL NALユニットを含むことに加えて、アクセスユニットは、さらに、非VCL NALユニットを含むことができる。前記指定された分類ルールは、例えば、同じ出力時間またはピクチャ出力カウント値をもつピクチャを同じアクセスユニットに関連づけることができる。
【0101】
ビットストリームは、1つまたは複数のコード化ビデオシーケンスを形成するコード化ピクチャおよび関連データの表現を形成するNALユニットストリームまたはバイトストリームの形態のビットのシーケンスとして定義することができる。同じファイル内、または通信プロトコルの同じ接続内などの同じ論理チャネル内で、第1のビットストリームは、その後に、第2のビットストリームが続くことができる。エレメンタリストリーム(ビデオコーディングのコンテキストの)は、1つまたは複数のビットストリームのシーケンスとして定義することができる。第1のビットストリームの終了は、特定のNALユニットで示すことができそれは、ビットストリーム終了(EOB)NALユニットと呼ばれることがあり、ビットストリームの最後のNALユニットである。HEVCおよびその最新のドラフト拡張では、EOB NALユニットは、0に等しいnuh_layer_idを有することが必要とされる。
【0102】
H.264/AVCでは、コード化ビデオシーケンスは、IDRアクセスユニット(それ自体を含む)から、次のIDRアクセスユニットまでまたはビットストリームの終了(それ自体を含まない)までのどちらか早く現れる方まで、デコーディング順序で連続するアクセスユニットのシーケンスであると定義される。
【0103】
HEVCでは、コード化ビデオシーケンス(CVS)は、例えば、デコーディング順序で、NoRaslOutputFlagが1に等しいIRAPアクセスユニットと、その後に続く、NoRaslOutputFlagが1に等しいIRAPアクセスユニットである後続のアクセスユニットまでの(しかしそれを含まない)すべての後続のアクセスユニットを含む、NoRaslOutputFlagが1に等しいIRAPアクセスユニットではない0個以上のアクセスユニットとからなるアクセスユニットのシーケンスとして定義することができる。IRAPアクセスユニットは、ベースレイヤピクチャがIRAPピクチャであるアクセスユニットとして定義することができる。NoRaslOutputFlagの値は、デコーディング順序のビットストリームにおけるその特定のレイヤの第1のピクチャである各IDRピクチャ、各BLAピクチャ、および各IRAPピクチャに対して1に等しく、デコーディング順序においてnuh_layer_idの同じ値を有するシーケンス終了NALユニットに続く第1のIRAPピクチャに対して1に等しい。デコーダを制御することができるプレーヤまたはレシーバなどの外部エンティティからデコーダにHandleCraAsBlaFlagの値を提供するための手段があってもよい。HandleCraAsBlaFlagは、例えば、ビットストリーム内の新しい位置をシークするかまたはブロードキャストにチューニングし、デコーディングを開始し、次いで、CRAピクチャからデコーディングを開始するプレーヤによって、1に設定され得る。HandleCraAsBlaFlagがCRAのピクチャに対して1に等しい場合、CRAのピクチャは、BLAピクチャであるかのように扱われデコードされる。
【0104】
HEVCでは、コード化ビデオシーケンスは、追加としてまたは代替として(上述の仕様に対して)、シーケンス終了(EOS)NALユニットと呼ぶことができる特定のNALユニットがビットストリームに現れ、0に等しいnuh_layer_idを有するときに終了するように規定されてもよい。
【0105】
ピクチャのグループ(GOP)およびその特性は、以下のように定義することができる。GOPは、以前のピクチャがデコードされたかどうかにかかわらずデコードすることができる。オープンGOPは、デコーディングがオープンGOPの最初のイントラピクチャから始まる場合、出力順序が最初のイントラピクチャより前のピクチャを正しくデコードできないことがあるそのようなピクチャのグループである。言い換えれば、オープンGOPのピクチャは、前のGOPに属するピクチャを参照する(インター予測において)場合がある。特定のNALユニットタイプのCRA NALユニットタイプはコード化スライスに使用することができるので、HEVCデコーダはオープンGOPを開始するイントラピクチャを認識することができる。クローズドGOPは、デコーディングがクローズドGOPの最初のイントラピクチャから始まる場合、すべてのピクチャを正しくデコードすることができるそのようなピクチャのグループである。言い換えれば、クローズドGOPのピクチャは、前のGOPのピクチャを参照しない。H.264/AVCおよびHEVCでは、クローズドGOPは、IDRピクチャから開始することができる。HEVCでは、クローズドGOPは、BLA_W_RADLまたはBLA_N_LPピクチャから開始することもできる。オープンGOPコーディング構造は、潜在的に、参照ピクチャの選択のより大きい柔軟性のために、クローズドGOPコーディング構造と比較して圧縮がより効率的である。
【0106】
デコード化ピクチャバッファ(DPB)が、エンコーダおよび/またはデコーダで使用されてもよい。デコードされたピクチャをバッファするのには、インター予測での参照のため、およびデコード化ピクチャを出力順序に並べ替えるためという2つの理由がある。H.264/AVCおよびHEVCは、参照ピクチャマーキングと出力順序並べ替えの両方に多くの柔軟性を提供するので、参照ピクチャバッファリングおよび出力ピクチャバッファリングのための別個のバッファは、メモリリソースを無駄にする可能性がある。したがって、DPBは、参照ピクチャと出力順序並べ替えとのための統一されたデコード化ピクチャバッファリングプロセスを含むことができる。デコード化ピクチャがもはや参照として使用されず、出力に必要とされない場合、デコード化ピクチャはDPBから取り除くことができる。
【0107】
H.264/AVCおよびHEVCの多くのコーディングモードでは、インター予測のための参照ピクチャは、参照ピクチャリストへのインデクスで示される。インデクスは、可変長コーディングでコード化することができ、それにより、通常、インデクスが小さいほど、対応するシンタックス要素の値が短くなる。H.264/AVCおよびHEVCでは、2つの参照ピクチャリスト(参照ピクチャリスト0および参照ピクチャリスト1)が、各双予測(B)スライスに対して生成され、1つの参照ピクチャリスト(参照ピクチャリスト0)が、各インターコード化(P)スライスに対して形成される。
【0108】
H.264/AVCおよびHEVCを含む多くのコーディング標準は、参照ピクチャリストへの参照ピクチャインデクスを導出するためのデコーディングプロセスを有することができ、それを使用して、多数の参照ピクチャのうちのどれが特定のブロックに対するインター予測に使用されるかを示すことができる。参照ピクチャインデクスは、エンコーダによって、いくつかのインターコーディングモードでビットストリームにコード化されてもよく、または、例えば、いくつかの他のインターコーディングモードで隣接するブロックを使用して導出されてもよい(エンコーダおよびデコーダによって)。
【0109】
動きパラメータタイプまたは動き情報は、限定はしないが、以下のタイプのうちの1つまたは複数を含むことができる。
- 予測タイプ(例えば、イントラ予測、片予測、双予測)および/またはいくつかの参照ピクチャの表示、
- インター(別名、時間)予測、インターレイヤ予測、インタービュー予測、ビュー合成予測(VSP)、およびインター成分予測などの予測方向の表示(それらは、参照ピクチャごとにおよび/または予測タイプごとに示すことができ、実施形態によっては、インタービュー予測およびビュー合成予測は、一緒に、1つの予測方向として考えることができる)、および/または
- 短期参照ピクチャおよび/または長期参照ピクチャおよび/またはインターレイヤ参照ピクチャなどの参照ピクチャタイプの表示(それらは、例えば、参照ピクチャごとに表示することができる)、
- 参照ピクチャリストへの参照インデクスおよび/または参照ピクチャの他の識別子
(それは、例えば、参照ピクチャごとに示すことができ、そのタイプは、予測方向および/または参照ピクチャタイプに依存することができ、それは、参照インデクスが適用される参照ピクチャリストなどのような他の関連する情報が付随してもよい)、
- 水平動きベクトル成分(それは、例えば、予測ブロックごとにまたは参照インデクスごとになどで示すことができる)、
- 垂直動きベクトル成分(それは、例えば、予測ブロックごとにまたは参照インデクスごとになどで示すことができる)、
- 1つまたは複数の動きベクトル予測プロセスにおける水平動きベクトル成分および/または垂直動きベクトル成分のスケーリングのために使用することができる、動きパラメータを含むかまたは動きパラメータに関連するピクチャと、その参照ピクチャと間のピクチャ順序カウント差および/または相対的カメラ離隔などの1つまたは複数のパラメータ(前記1つまたは複数のパラメータは、例えば、各参照ピクチャごともまたは参照インデクスごとになどで示すことができる)、
- 動きパラメータおよび/または動き情報が適用されるブロックの座標、例えば、ルマサンプルユニットでのブロックの左上サンプルの座標、
- 動きパラメータおよび/または動き情報が適用されるブロックの範囲(例えば、幅および高さ)。
【0110】
以前のビデオコーディング規格と比較して、多用途ビデオコーデック(H.266/VVC)は、以下のものなどの複数の新しいコーディングツールを導入している。
・イントラ予測
- 広角度モード拡張による67個のイントラモード
- ブロックサイズおよびモード依存4タップ補間フィルタ
- 位置依存イントラ予測組合せ(PDPC)
- クロス成分線形モデルイントラ予測(CCLM)
- マルチ参照ラインイントラ予測
- イントラサブパーティション
- 行列乗算を用いた重み付きイントラ予測
・インターピクチャ予測
- 空間的、時間的、履歴ベース、およびペアワイズ平均マージ候補によるブロック動きコピー
- アフィン動きインター予測
- サブブロックベース時間的動きベクトル予測
- 適応動きベクトル解像度
- 時間的動き予測のための8×8のブロックベース動き圧縮
- ルマ成分のための8タップ補間フィルタと、彩度成分のための4タップ補間フィルタとを用いた高精度(1/16ペル)動きベクトルストレージおよび動き補償
- 三角形パーティション
- イントラ予測およびインター予測の組合せ
- MVDによるマージ(MMVD)
- 対称MVDコーディング
- 双方向オプティカルフロー
- デコーダ側動きベクトルリファインメント
- Cuレベル重みを用いた双予測
・変換、量子化、および係数コーディング
- DCT2、DST7、およびDCT8を用いた多数の一次変換選択
- 低周波数ゾーンの二次変換
- インター予測残差のサブブロック変換
- 最大QPが51から63に増加した依存量子化
- 符号データ隠蔽による変換係数コーディング
- 変換スキップ残差コーディング
・エントロピーコーディング
- 適応ダブルウィンドウ確率更新を用いた算術コーディングエンジン
・インループフィルタ
- インループリシェイピング
- 強力なより長いフィルタを有するデブロッキングフィルタ
- サンプル適応オフセット
- 適応ループフィルタ
・スクリーンコンテンツコーディング
- 参照領域制限による現ピクチャ参照
・360度ビデオコーディング
- 水平ラップアラウンド動き補償
・高レベルシンタックスおよび並列処理
- 直接参照ピクチャリスト信号通知を用いた参照ピクチャ管理
・長方形形状タイルグループを有するタイルグループ
【0111】
スケーラブルビデオコーディングは、1つのビットストリームが、例えば、様々なビットレート、解像度、またはフレームレートのコンテンツの多数の表現を含むことができるコーディング構造を指すことができる。これらの場合、レシーバは、その特性に応じて所望の表現(例えば、ディスプレイデバイスに最もよく整合する解像度)を抽出することができる。代替として、サーバまたはネットワーク要素が、例えば、ネットワーク特性またはレシーバの処理能力に応じて、レシーバに送信されるべきビットストリームの一部を抽出することができる。意味のあるデコード化表現は、スケーラブルビットストリームの特定の部分のみをデコードすることによって作成することができる。スケーラブルビットストリームは、一般に、利用可能な最も低い品質のビデオを提供する「ベースレイヤ」と、下位レイヤと一緒に受け取られデコードされたときビデオ品質を強化する1つまたは複数のエンハンスメントレイヤとからなる。エンハンスメントレイヤのコーディング効率を改善するには、そのレイヤのコード化表現は、一般に、下位レイヤに依存する。例えば、エンハンスメントレイヤの動きおよびモード情報は、下位レイヤから予測することができる。同様に、下位レイヤのピクセルデータを使用して、エンハンスメントレイヤの予測を作り出すことができる。
【0112】
いくつかのスケーラブルビデオコーディングスキームでは、ビデオ信号は、ベースレイヤおよび1つまたは複数のエンハンスメントレイヤにエンコードすることができる。エンハンスメントレイヤは、例えば、時間分解能(すなわち、フレームレート)、空間解像度、または単に別のレイヤもしくはその一部によって表されるビデオコンテンツの品質を強化することができる。各レイヤは、そのすべての従属レイヤと一緒に、例えば、特定の空間解像度、時間分解能、および品質水準でのビデオ信号の1つの表現である。本明細書では、スケーラブルレイヤをその従属レイヤのすべてと一緒に「スケーラブルレイヤ表現」と呼ぶ。スケーラブルレイヤ表現に対応するスケーラブルビットストリームの一部を抽出およびデコードして、特定の忠実度でオリジナル信号の表現を作成することができる。
【0113】
スケーラビリティモードまたはスケーラビリティ次元は、限定はしないが、以下のものを含むことができる。
- 品質スケーラビリティ: ベースレイヤピクチャは、エンハンスメントレイヤピクチャよりも低い品質でコード化され、それは、例えば、エンハンスメントレイヤよりもベースレイヤでは大きい量子化パラメータ値(すなわち、変換係数量子化に関して大きい量子化ステップサイズ)を使用して達成され得る。品質スケーラビリティは、さらに、以下で説明するように、微粒または細粒度スケーラビリティ(FGS)、中粒または中粒度スケーラビリティ(MGS)、および/または粗粒または粗粒度スケーラビリティ(CGS)に分類することができる。
- 空間スケーラビリティ: ベースレイヤピクチャは、エンハンスメントレイヤピクチャよりも低い解像度でコード化される(すなわち、より少ないサンプルを有する)。空間スケーラビリティおよび品質スケーラビリティ、特に、その粗粒スケーラビリティタイプは、時には、同じタイプのスケーラビリティと考えることができる。
- ビット深度スケーラビリティ: ベースレイヤピクチャは、エンハンスメントレイヤピクチャ(例えば、10または12ビット)よりも低いビット深度(例えば、8ビット)でコード化される。
- ダイナミックレンジスケーラビリティ: スケーラブルレイヤは、異なるトーンマッピング関数および/または異なる光学伝達関数を使用して取得された異なるダイナミックレンジおよび/または画像を表す。
- 彩度フォーマットスケーラビリティ: ベースレイヤピクチャは、彩度サンプルアレイ(例えば、4:2:0彩度フォーマットでコード化された)において、エンハンスメントレイヤピクチャ(例えば、4:4:4フォーマット)よりも低い空間解像度を提供する。
- 色域スケーラビリティ: エンハンスメントレイヤピクチャは、ベースレイヤピクチャよりも豊富な/広い色彩表現範囲を有する、例えば、エンハンスメントレイヤはUHDTV(ITU-R BT.2020)色域を有することができ、ベースレイヤはITU-R BT.709色域を有することができる。
- ビュースケーラビリティ、それは、マルチビューコーディングと呼ぶこともできる。ベースレイヤは第1のビューを表し、一方、エンハンスメントレイヤは第2のビューを表す。ビューは、1つのカメラまたは視点を表すピクチャのシーケンスとして定義することができる。立体ビデオまたは2ビュービデオでは、1つのビデオシーケンスまたはビューは左眼に提示され、一方、パラレルビューは右眼に提示されると考えることができる。
- 深度スケーラビリティ、それは、深度強化コーディングと呼ぶこともできる。
ビットストリームの1つまたは複数のレイヤは、テクスチャビューを表すことができ、一方、他の1つまたは複数のレイヤは、深度ビューを表すことができる。
- 関心領域スケーラビリティ(以下で説明する)。
- インターレース・ツー・プログレッシブスケーラビリティ(フィールド・ツー・フレーム・スケーラビリティとしても知られている): ベースレイヤのコード化インターレースソースコンテンツ材料をエンハンスメントレイヤで強化して、プログレシブソースコンテンツを表す。ベースレイヤにおけるコード化インターレースソースコンテンツは、コード化フィールド、フィールドペアを表すコード化フレーム、またはそれらの混合物を含むことができる。インターレース・ツー・プログレッシブスケーラビリティでは、ベースレイヤピクチャは、1つまたは複数のエンハンスメントレイヤピクチャの好適な参照ピクチャになるように再サンプリングすることができる。
- ハイブリッドコーデックスケーラビリティ(コーディング標準スケーラビリティとしても知られている): ハイブリッドコーデックスケーラビリティでは、ベースレイヤおよびエンハンスメントレイヤのビットストリームシンタックス、セマンティクス、およびデコーディングプロセスは、異なるビデオコーディング標準で規定される。したがって、ベースレイヤピクチャは、エンハンスメントレイヤピクチャとは異なるコーディング標準またはフォーマットに従ってコード化される。例えば、ベースレイヤはH.264/AVCでコード化することができ、エンハンスメントレイヤはHEVC多層拡張でコード化することができる。
【0114】
例えば、上記の空間フォーマット、ビット深度フォーマット、および彩度フォーマットのスケーラビリティの場合、ベースレイヤ情報を使用してエンハンスメントレイヤをコード化し、それにより、追加のビットレートオーバーヘッドを最小化することができる。
【0115】
スケーラビリティは、少なくとも2つの基本的な方法で、すなわち、スケーラブル表現の下位レイヤからピクセル値またはシンタックスの予測を実行するために新しいコーディングモードを導入することによる方法、または上位レイヤの参照ピクチャバッファ(デコード化ピクチャバッファ、DPB)に下位レイヤピクチャを配置することによる方法で可能にすることができる。第1の手法は、より柔軟であり得、それにより、ほとんどの場合により良好なコーディング効率を提供することができる。しかしながら、第2の参照フレームベースのスケーラビリティ手法は、利用可能なコーディング効率利得の大部分を依然として達成しながら、シングルレイヤコーデックへの最小の変更で非常に効率的に実施することができる。ある手法によれば、参照フレームベースのスケーラビリティコーデックは、すべてのレイヤに対して同じハードウェアまたはソフトウェア実施を利用することによって実施し、DPB管理にだけ外部手段で対処することができる。
【0116】
並列処理を利用できるようにするために、画像は、独立して、コード化可能およびデコード可能画像セグメント(スライスまたはタイル)に分割することができる。スライスは、一般に、デフォルトコーディングまたはデコーディング順序で処理される特定の数の基本コーディングユニットから構成された画像セグメントを参照し、一方、タイルは、一般に、少なくともある程度個々のフレームとして処理される長方形画像領域として定義された画像セグメントを参照する。
【0117】
一般に、ビデオは、YUVまたはYCbCr色空間でエンコードされ、その理由は、それは、人間の視覚系のいくつかの特性を反映することが分かっており、CbおよびCrチャネルが表すクロミナンス忠実度に人間の知覚がそれほど敏感でないのでCbおよびCrチャネルに対してより低い品質の表現を使用することができるからである。
【0118】
クロス成分線形モデル予測は、例えば、VVC/H.266ビデオコーデックにおいて使用される。その変形では、クロス成分線形モデル予測を使用する3つの彩度予測モードがある。それらのうちの1つは、エンコーダによって彩度予測ブロックのための予測モードとして選択され、デコーダにビットストリームで信号通知され得る。3つのモードの間の差は、線形モデルのためのパラメータを生成するために使用される参照サンプルのセットである。モードのうちの1つは、予測ブロックの上のサンプルのみを使用し、モデルのうちの1つは、予測ブロックの左のサンプルのみを使用し、モードのうちの1つは、予測ブロックの上と左の両方のサンプルを使用する。パラメータ生成の複雑さを低く保つために、パラメータは、ブロック境界で利用可能な参照サンプルのサブセットのみを使用して計算される。
【0119】
VVC/H.266のクロス成分線形モデル予測は、以下の式を適用して、ルマサンプル値lumaValの予測彩度サンプル値chromaValへの予測(またはマッピング)を実行する。
chromaVal=((lumaVal*a)>>k)+b
ここで、パラメータaおよびkは、線形モデルの勾配を決定し、bは、線形モデルのオフセット値を決定する。「>>」という表記は、2の冪乗による除算に対応する右へのビットシフト操作を表すために使用される。パラメータa、k、およびbは、利用可能な参照サンプルの決定されたセットを使用して決定される。
【0120】
線形モデルパラメータを計算するために線形回帰を使用する一例が、JVET(共同ビデオエキスパートチーム)寄稿JVET-D0110に与えられている。その実施では、ルマスペクトルの異なる範囲で動作する2つの線形モデルがあり得る。
【0121】
以下では、本開示のいくつかの例示の実施形態がより詳細に説明される。
【0122】
最初に、エンコーダのいくつかの動作が説明される。エンコーダは、エンコードされるべき画像のピクセルの輝度成分およびクロミナンス成分を受け取る。画像は、より小さいブロックに分割されており、1つの画像の輝度成分およびクロミナンス成分は、ブロックごとに処理することができる。以前にエンコードされ、その後、デコードされた画像のブロックまたはその一部の情報は、エンコーダによって参照フレームメモリ(RFM)に格納されており、例えば、後続の画像の予測で使用することができる。
【0123】
ルマ値を彩度値にマッピングするための線形モデルを使用して、デコードされたルマ値に基づいて、予測された彩度値を生成することができる。この種のモデルは、勾配パラメータ「a」およびオフセットパラメータ「b」を使用して以下のように与えることができる。
chromaVal=lumaVal*a+b
【0124】
エンコーダは、勾配パラメータ「a」およびオフセットパラメータ「b」をビットストリームにエンコードすることができ、デコーダは、それらのパラメータをビットストリームから取得することができ、またはデコーダは、それらのパラメータを最初に知ることができ、それらのパラメータへの変更のみがデコーダに信号通知されてもよい。
【0125】
図5aは、本開示の一実施形態によるマッピングを示している。各有効ルマサンプル値は、モデルを使用して彩度サンプル値にマッピングすることができる。この例では、ルマ値y0およびy1と彩度値c0およびc1とを有する2つの点または2つのルマ-彩度ペアp0およびp1が、マッピング関数の勾配パラメータaおよびオフセットパラメータbを定義する。整数演算を使用する実際の実施態様では、式は、勾配パラメータaの基準または精度を定義するスケーリングパラメータ「k」をさらに含むことができる。
chromaVal=((lumaVal*a)>>k)+b
【0126】
スケーリングパラメータkは、例えばエンコーダによって、モデルのパラメータを生成するプロセスの間に選択されてもよく、またはスケーリングパラメータkはまた、異なる方法でデコーダに示されてもよく、または固定されたkが、エンコーダが実行するすべてのマッピングに使用されてもよい。パラメータkは、ルマ-彩度値空間に到達するために、lumaValと勾配パラメータaとの間の乗算の結果を、ビット単位の右シフト演算>>を使用して、何ビットシフトダウンさせるかを決定している。言い換えれば、結果は、2kで除算される。
【0127】
一実施形態では、勾配パラメータaの更新項「u」は、エンコーダによってビットストリームにエンコードされ、デコーダによってビットストリームから受け取られ、ルマ-彩度値ペアからなる参照点が決定され、パラメータa、k、およびbが、更新項および参照点に基づいてデコーダによって更新される。
【0128】
一実施形態では、勾配パラメータaの更新項uは、エンコーダによってビットストリームにエンコードされ、デコーダによってビットストリームから受け取られ、参照ルマ値が決定され、パラメータa、k、およびbが、更新項および参照ルマ値に基づいてデコーダによって更新される。
【0129】
更新項uは、勾配パラメータaに対して決定された基底(basis)または精度kとは異なる基底または精度「s」を有することができる。例えば、更新項uは、受け取った更新項uを3ビットだけシフトダウンする(またはそれを23=8で除算する)ことに対応する3の基底を有することができる。別の例として、更新項uは、受け取った更新項uを4ビットだけシフトダウンする(またはそれを24=16で除算する)ことに対応する4の基底を有することができる。この基底は、固定されてもよく、またはビットストリームで信号通知されてもよく、または予測もしくは処理されるべきブロックのサイズの関数としてデコーダによって適応的に決定されてもよい。一例として、基底sは、予測ブロックサイズが閾値を上回る場合、より細かい精度の更新項に対応してより大きくすることができ、予測ブロックサイズが閾値を下回る場合、より小さくすることができる。
【0130】
更新項uを勾配パラメータaに加えるには、これらのパラメータの基底が等しくされなければならない。これは、kがsよりも大きい場合、uの基底がkの基底と一致するまでuをビット単位でシフトシフトアップするか、kがsよりも小さい場合、uの基底がkの基底と一致するまでaをシフトシフトアップすることによって達成することができる。
【0131】
この例では、パラメータa’、k’、およびb’を有する更新された線形モデルは、
chromaVal=((lumaVal*a’)>>k’)+b’
として書くことができる。
【0132】
更新された線形モデルパラメータは、例えば、以下の疑似コードを使用して計算することができる。
a,b,k,refLuma=estimateLinearModel(参照サンプルのセット)
u=decodeUpdateTerm(ビットストリーム)
k’=k
if(k<s)
{
//最終シフトを、少なくとも更新の精度のサイズにする
a=a<<(s-k)
k’=s
}
else if(k>s)
{
//最終シフトが更新の精度よりも大きい:更新を最終精度までスケールアップする
u=u<<(k-s)
}
a’=a+u
b’=b-((u*yr)>>k’)
【0133】
オリジナルの線形モデルパラメータa、b、およびkは、H.266/VVC仕様で決定されたプロセスに従ってestimateLinearModel関数によって、または線形回帰の使用などの代替の方法で計算することができる。オリジナルのパラメータa、b、およびkに加えて、追加の参照ルマパラメータyrが、決定され、更新オフセットパラメータb’を計算するときに参照値として使用される。yrパラメータは、様々な方法で決定することができる。例えば、線形モデルを計算するために2つのルマ-彩度ペアが使用される場合、yrは、それらのペアのルマ値の平均に設定することができる。線形モデルを計算するために4つのルマ-彩度ペアが使用される場合、yrは、例えば、それらのペアの最も大きいルマ値と最も小さいルマ値の平均に設定することができ、またはyrは、それらのペアの2番目に大きいルマ値と3番目に大きいルマ値の平均に設定することができ、またはyrは、それらの4つのペアのルマ値の平均に設定することができる。さらなる例として、yrは、参照ルマ-彩度ペアもしくはルマ参照値の決定されたセット内のルマ値の平均、それらの値の中央値、またはそれらの値の最大値および最小値の平均として、あるいは他の方法で計算することができる。yrが計算される方法はまた、ビットストリーム信号通知に基づいて決定されてもよい。例えば、決定されたルマ参照サンプルの平均がyrとして使用されているかどうか、またはyrが参照ルマ値のセットの加重平均として計算されているかどうか、およびそれらの重みが何であるかが信号通知されてもよい。ブロック境界の外側から取得された従来の参照値を使用することに加えてまたはその代わりに、yrパラメータの決定は、予測ブロックまたは予測ユニットの内側の再構成されたルマ値を含むことができる。
【0134】
図5bは、更新されたマッピングを示している。更新項uは、マッピングが回転される制御点としてルマ値y
rに対する参照点prを使用して、マッピングの勾配に適用される。更新された勾配パラメータa’および更新されたオフセットパラメータb’が、今では、新しいマッピングを定義している。スケールパラメータkおよびsは、図を簡単にするために省略されている。
【0135】
図5cは、決定された初期のマッピングラインの外側の制御点prを選択し、そのような点に関して勾配更新を実行することを示す。この場合、オフセットパラメータbは、それに応じて、更新されるべきである。例えば、prがマッピングラインの上の特定の量の彩度値である場合、b’は同じ量だけ上げられるべきである。代替として、b’は、更新された勾配パラメータa’と制御点prの座標とを使用して計算することができる。これは、例えば、制御点prのルマ値y
rおよび彩度値c
rを使用して、以下のように行うことができる。
b’=c
r-((a’*y
r)>>k’)
【0136】
図5dは、決定された初期マッピングラインの外側の制御点prを使用し、勾配を変えないままでオフセットパラメータbへの更新のみを実行することを示す。この代替では、勾配パラメータは、2つ以上のルマ-彩度値ペア、または制御点に基づいて計算される。加えて、追加の制御点prが、参照ルマ-彩度ペアの異なるまたは同じセットを使用することによって計算される。例えば、参照ルマ値のセットの平均ルマ値を制御点prのルマ値y
rとして使用することができ、参照彩度値のセットの平均彩度値を制御点prの彩度値c
rとして使用することができる。参照彩度値のセットは、一例として、ブロックのすぐ上およびブロックのすぐ左の再構成された境界彩度サンプルのすべての値を含むことができる。参照ルマ値のセットは、彩度解像度とルマ解像度とが異なる場合、例えば補間によって取得され得る対応するルマサンプル値とすることができる。境界彩度サンプルは、ブロックの真上および左のサンプルを含むことができるが、それらのアレイの拡張されたものをさらに含むことができる。例えば、幅がwであるブロックの上の境界サンプルのセットは、ブロックに隣接するw個のサンプルを含むことができ、またはブロックのすぐ上の第1のw個のサンプルの同じ行でのw個の追加のサンプルをさらに含む2*w個のサンプルを含むことができる。次いで、更新されるオフセット値b’が、以下のように、参照ルマ値y
rおよび参照彩度値c
rを使用して計算することができる。
b’=c
r-((a*y
r)>>k)
【0137】
有利には、勾配パラメータaを計算するための参照ルマおよび彩度値のセットは、オフセットパラメータb’を生成するためにcrおよびyrパラメータを計算するための参照ルマおよび彩度値のセットよりも小さくなるように選択される。この選択により、一次勾配パラメータaを計算する計算の複雑さを低く保つことができるとともに、crおよびyrの比較的単純な計算が、例えば、crを生成するために参照彩度値を平均化することおよびyrを生成するために参照ルマ値を平均化することによりcrおよびcyを決定することによって、より正確に実行され得る。
【0138】
線形モデルのバイアス項b’を計算するための参照ルマおよび彩度値のセットは、有利には、線形モデルの勾配パラメータaを計算するために使用される参照ルマおよび彩度値のスーパーセットとなるように選択することができる。これは、既に生成またはフェッチされた参照サンプルがバイアス項b’を決定する際に使用することができるので、線形モデルの決定に関連する計算の複雑さを低下させるとともに、参照サンプルのより大きいセットがそれを計算するのに利用可能にされるので、オフセットパラメータb’の正確度および安定性を改善することができる。
【0139】
図6a~
図6cは、ブロックBの上の参照サンプルRに対する様々な選択を示す。
図6aは、ブロックのすぐ上に選択された参照サンプルのセットを示す。
図6bの例は、ブロックの右上に追加のサンプルをさらに含むように参照サンプルのセットを延ばしたものを示し、
図6cは、1つのサンプルだけ左に参照サンプルアレイを延ばしたものを示す。当然、例えば2*w+1つのサンプルをセットに含める他の選択を行うこともできる。同様の選択が、ブロックBの左側で行われてもよく、さらに、ブロックの左および上からサンプルまたはサンプルアレイの組合せが使用されてもよい。
【0140】
一実施形態では、ビデオまたは画像デコーダは、
図7aの流れ図に関連して以下のステップを実行する。
【0141】
デコーダは、ある色成分から別の色成分へのマッピングを定義する少なくとも2つのパラメータを計算し、少なくとも2つのパラメータは、少なくとも勾配パラメータおよびオフセットパラメータを含む(702)。そして、デコーダは、勾配パラメータに対する更新項を決定する(704)。次いで、デコーダは、更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成し(706)、その後、デコーダは、参照ルマ値を決定する(708)。参照ルマ値および更新された勾配パラメータに基づいて、デコーダは、更新されたオフセットパラメータを計算する(710)。
【0142】
一実施形態では、ビデオまたは画像デコーダは、
図7bの流れ図に関連して以下のステップを実行する。
【0143】
デコーダは、ある色成分から別の色成分へのマッピングを定義する少なくとも2つのパラメータを計算し、少なくとも2つのパラメータは、少なくとも勾配パラメータおよびオフセットパラメータを含む(722)。そして、デコーダは、勾配パラメータに対する更新項を決定する(724)。次いで、デコーダは、更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成し(726)、マッピングにおける参照点を決定する(728)。参照点および更新された勾配パラメータに基づいて、デコーダは、更新されたオフセットパラメータを計算する(730)。
【0144】
ある色成分の値から他の色成分の値へのマッピングを定義するパラメータの計算は、様々な方法で行うことができる。例えば、線形回帰または他の統計的方法を使用して、モデルが参照サンプルのセットに対して作り出すことがある誤差を最小化することができる。参照サンプルは、予測することができるブロックの境界から、またはデータの別のセットを使用して取得することができる。さらに、多数の候補参照セットがある場合があり、エンコーダはそこから1つを選び、その選択をデコーダにビットストリームで示す。境界サンプルまたは他のサンプルセットのサブセットを使用することもできる。そのような場合、例えば、利用可能な参照サンプルから選択された4つのサンプルペアがあり得、各サンプルペアは、ルマサンプルおよび対応する彩度サンプルからなる。4つのペアのうちの最も低いルマ値をもつ2つのペアが、第1のセットを形成することができ、最も高いルマ値をもつ2つのペアが、第2のセットを形成することができる。第1のセットのルマ値を平均化して、第1の平均ルマ値を形成することができ、第1のセットの彩度値を平均化して、第1の平均彩度値を形成することができる。同様に、第2のセットのルマ値を平均化して、第2の平均ルマ値を形成することができ、第2のセットの彩度値を平均化して、第2の平均彩度値を形成することができる。今では、H.266/VVC規格におけるように、2つの平均ルマ値および2つの平均彩度値から線形モデルパラメータを計算することができる。
【0145】
勾配値に対する更新項は、様々な方法で決定することができる。例えば、ビデオエンコーダは、レート歪最適化技法を使用して、勾配値に対する適切な更新項を決定することができる。ビデオデコーダは、勾配値に対する更新項を、それをビットストリームから解析し、それを予測することによって、もしくは予測およびビットストリーム信号通知を組み合わせることによって、または他の手段によって決定することができる。
【0146】
勾配値に対する更新項は、計算された勾配値aと同じ基準にスケーリングすることができ、または計算された勾配値aは、更新項と同じ基準にスケーリングすることができ、または両方の値は、第3の基準にスケーリングすることができ、またはスケーリングは省略することができる。第3の基準は、例えば、更新項および勾配パラメータに使用される基準の許容される最大値によって決定することができる。
【0147】
更新項は、特定の範囲に限定することができる。例えば、更新項は、-3~3、または-4~4、または-N~N、またはN~Mの範囲の整数値を有するように定義することができる。ここで、NおよびMは、定数であってもよく、または様々な手段によって決定されてもよい。例えば、それらは、予測される、コード化される、またはデコードされるブロックの特性、例えばブロックのサイズなどに基づいて決定されてもよい。
【0148】
一実施形態では、ビットストリームで信号通知され、デコーダによってデコードされ得る更新項の事前決定されたセットがある。
【0149】
一実施形態ではビットストリームで信号通知され、デコーダによってデコードされ得る更新項のセットは、サンプルのブロックの特性、例えばブロックのサイズなどに依存する。
【0150】
一実施形態では、線形モードにおけるオフセット項b’は、b’=cr-((a*yr)>>k)として計算され、ここで、crは、ブロックの上の境界彩度値の平均であり、yrは、ブロックの上の境界ルマ値の平均であり、aは、勾配パラメータであり、kは、シフトパラメータである。
【0151】
一実施形態では、線形モードにおけるオフセット項b’は、b’=cr-((a*yr)>>k)として計算され、ここで、crは、ブロックの左の境界彩度値の平均であり、yrは、ブロックの左の境界ルマ値の平均であり、aは、勾配パラメータであり、kは、シフトパラメータである。
【0152】
一実施形態では、線形モードにおけるオフセット項b’は、b’=cr-((a*yr)>>k)として計算され、ここで、crは、ブロックの左および上の境界彩度値の平均であり、yrは、ブロックの左および上の境界ルマ値の平均であり、aは、勾配パラメータであり、kは、シフトパラメータである。
【0153】
一実施形態では、オフセットパラメータb’を決定するためにcrおよびyrパラメータを計算するための参照ルマおよび彩度値のセットは、勾配パラメータaを計算するための参照ルマおよび彩度値のセットよりも大きくなるように選択される。
【0154】
一実施形態では、オフセットパラメータb’を決定するためにcrおよびyrパラメータを計算するための参照ルマおよび彩度値のセットは、勾配パラメータaを計算するための参照ルマおよび彩度値のセットのスーパーセットとなるように選択される。
【0155】
更新項は、様々な手段によって予測することができ、実際の更新項と予測された更新項との間の差は、ビットストリームにエンコードしたり、またはビットストリームからデコードしたりすることができる。そのような予測手段は、空間的にもしくは時間的に隣接するブロック、同じもしくは異なるピクチャ内の他のブロック、または異なる色成分もしくはチャネルのブロックの更新項または他のパラメータからの予測された更新項の決定を含むことができる。
【0156】
異なる色成分に対する更新項は、別々にまたは一緒に示すことができる。それらはまた、例えば、彩度成分のいずれかに非ゼロ更新項があるかどうかを示す結合ビットストリームフラグを有することによって、部分的に一緒に示すことができる。この表示が彩度成分に更新項が存在することを示唆する場合、一方または両方の彩度成分が非ゼロの更新項を有するかどうか、および、一方のみが非ゼロの更新項を有する場合、非ゼロ更新項が成分のうちのどちらであるかをさらに示すことができる。代替として、彩度成分に更新項が存在することを表示が示唆する場合、第1の彩度成分が非ゼロの更新項を有するかどうかをさらに示すことができ、信号通知が第1の彩度成分について非ゼロの更新項を示唆していることを条件として、第2の彩度成分も非ゼロの更新項を有するかどうかをさらに示すことができる。この例では、第2の彩度成分に更新項が存在することの表示は、第1の彩度成分がそれに関連する非ゼロの更新項を有していない場合、省略することができる。
【0157】
参照ルマ値または参照点の決定は、様々な方法で行うことができる。例えば、参照ルマ値は、線形モデルの勾配パラメータを決定する際に使用される2つのルマ値の平均とすることができる、またはそのようなルマ値の加重平均とすることができる、または他の方法で決定することができる。
【0158】
ルマから彩度値へのマッピングを形成する多数の線形モデルが存在し得る。例えば、ルマ値が閾値を下回る場合、第1の線形モデルを使用することができ、ルマ値が閾値以上である場合、第2のモデルを使用することができる。そのような場合、線形モデルの各々は、ビットストリーム信号通知に基づいて、それらの独立した更新項を受け取ることができる。さらに、線形モデルの特定のサブセットのみが、信号通知された1つまたは複数の更新項を使用して更新されることを信号通知することができる。さらに、同じ更新項が、ビットストリーム信号通知または他の手段に基づいて多数のモデルで使用されるように決定することができる。そのような場合、信号通知された更新項を様々なモデルに適用する方法をさらに決定することができる。例えば、同じ更新項を2つのモデルに使用することができ、または更新項の負のバージョンを一方のモデルに使用することができ、更新項の正のバージョンを他方のモデルに使用することができる。
【0159】
マッピングプロセスおよびパラメータ更新処理は、ここでは、入力としてルマ値および出力として彩度値を有するとして説明されるが、入力および出力は、そのような色成分に制限されない。例えば、同じプロセスは、入力としてのCbチャネルなどの1つの彩度チャネル、および出力としてのCrチャネルなどの別の彩度チャネルを有する彩度チャネル間に適用することができる。さらなる例として、入力チャネルは、ルマチャネルとすることができ、出力チャネルは、例えば、深度、距離、視差、透明度、または他のタイプの値からなる補助情報チャネルとすることができる。
【0160】
一実施形態によれば、彩度ブロックはまた、RGB色空間の赤、緑、または青の色成分のうちのいずれかに対応することができる。
【0161】
一態様による装置は、第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算するための手段であり、少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、計算するための手段と、勾配パラメータに対する更新項を決定するための手段と、更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成するための手段と、第1の色成分の参照値を決定するための手段と、第1の色成分の参照値と、更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算するための手段とを含む。
【0162】
さらなる態様として、少なくとも1つのプロセッサと少なくとも1つのメモリとを含む装置が提供され、前記少なくとも1つのメモリにはコードが格納され、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、少なくとも、第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算することであり、少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、計算することと、勾配パラメータに対する更新項を決定することと、更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成することと、第1の色成分の参照値を決定することと、第1の色成分の参照値と、更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算することとを実行させる。
【0163】
そのような装置は、例えば、実施形態を実施するための
図1、
図2、
図4a、および
図4bのうちのいずれかに開示された機能ユニットを含むことができる。
【0164】
そのような装置は、前記少なくとも1つのメモリに格納されたコードをさらに含み、コードが前記少なくとも1つのプロセッサによって実行されると、コードにより、装置は、本明細書で開示される実施形態のうちの1つまたは複数を実行する。
【0165】
図8は、様々な実施形態を実施することができる例示のマルチメディア通信システムのグラフィカル表示である。データソース1510は、アナログ、非圧縮デジタル、または圧縮デジタルフォーマット、またはこれらのフォーマットの任意の組合せのソース信号を提供する。エンコーダ1520は、ソース信号のデータフォーマット変換および/またはフィルタリングなどの前処理を含むかまたはそれに関連することができる。エンコーダ1520は、ソース信号をコード化メディアビットストリームにエンコードする。デコードされるべきビットストリームは、事実上任意のタイプのネットワーク内に配置されたリモートデバイスから直接または間接的に受け取ることができることに留意されたい。追加として、ビットストリームは、ローカルハードウェアまたはソフトウェアから受け取ることができる。エンコーダ1520は、オーディオおよびビデオなどの2つ以上のメディアタイプをエンコードすることができる可能性があり、または2つ以上のエンコーダ1520は、異なるメディアタイプのソース信号をコード化するのに必要とされることがある。エンコーダ1520はまた、グラフィックスおよびテキストなどの合成的に作成された入力を得ることができ、合成媒体のコード化されたビットストリームを生成することができる可能性がある。以下では、1つのメディアタイプの1つのコード化メディアビットストリームの処理のみが、説明を簡単にするために考慮される。しかしながら、一般に、実時間ブロードキャストサービスは、いくつかのストリーム(一般に、少なくとも1つのオーディオ、ビデオ、およびテキストサブタイトル付きストリーム)を含むことに留意されたい。システムは多くのエンコーダを含むことができるが、図では、一般性を失うことなく説明を簡単にするために1つのエンコーダ1520のみが示されていることにも留意されたい。本明細書に含まれるテキストおよび例はエンコーディングプロセスを具体的に説明し得るが、当業者は同じ概念および原理が、対応するデコーディングプロセスにも適用され、逆の場合も同じであることを理解するであろうことをさらに理解されたい。
【0166】
コード化メディアビットストリームは、ストレージ1530に転送され得る。ストレージ1530は、コード化メディアビットストリームを格納するための任意のタイプのマスメモリを含むことができる。ストレージ1530内のコード化メディアビットストリームのフォーマットは、基本的な自己完結型ビットストリームフォーマットとすることができ、または1つまたは複数のコード化メディアビットストリームは、コンテナファイルにカプセル化することができ、またはコード化メディアビットストリームは、DASH(または同様のストリーミングシステム)に適し、セグメントのシーケンスとして格納されるセグメントフォーマットにカプセル化することができる。1つまたは複数のメディアビットストリームがコンテナファイルにカプセル化される場合、ファイル発生器(図に示されていない)を使用して、1つまたは複数のメディアビットストリームをファイルに格納し、ファイルフォーマットメタデータを作り出すことができ、ファイルフォーマットメタデータは、さらに、ファイルに格納され得る。エンコーダ1520またはストレージ1530は、ファイル発生器を含むことができ、またはファイル発生器は、エンコーダ1520またはストレージ1530のいずれかに動作可能に取り付けられる。いくつかのシステムは、「ライブで」動作し、すなわち、ストレージを省略し、エンコーダ1520からのコード化メディアビットストリームをセンダ1540に直接転送する。次いで、コード化メディアビットストリームは、必要に応じて、サーバとも呼ばれるセンダ1540に転送され得る。送信に使用されるフォーマットは、基本的な自己完結型ビットストリームフォーマット、パケットストリームフォーマット、DASH(または同様のストリーミングシステム)に適するセグメントフォーマットとすることができ、または1つまたは複数のコード化メディアビットストリームは、コンテナファイルにカプセル化され得る。エンコーダ1520、ストレージ1530、およびサーバ1540は、同じ物理デバイスに存在してもよく、または別個のデバイスに含まれてもよい。エンコーダ1520およびサーバ1540は、ライブ実時間コンテンツで動作することができ、その場合、コード化メディアビットストリームは、一般に、恒久的に格納されるのではなく、むしろ、コンテンツエンコーダ1520および/またはサーバ1540に短期間バッファされて、処理遅延、転送遅延、およびコード化メディアビットレートにおける変動を平滑化する。
【0167】
サーバ1540は、通信プロトコルスタックを使用してコード化メディアビットストリームを送る。スタックは、限定はしないが、リアルタイムトランスポートプロトコル(RTP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスファープロトコル(HTTP)、伝送制御プロトコル(TCP)、およびインターネットプロトコル(IP)のうちの1つまたは複数を含むことができる。通信プロトコルスタックがパケット指向である場合、サーバ1540は、コード化メディアビットストリームをパケットにカプセル化する。例えば、RTPが使用される場合、サーバ1540は、コード化メディアビットストリームを、RTPペイロードフォーマットに従ってRTPパケットにカプセル化する。一般に、各メディアタイプは、専用のRTPペイロードフォーマットを有する。システムは2つ以上のサーバ1540を含むことができるが、簡単さのために、以下の説明は1つのサーバ1540のみを考慮することに再度留意されたい。
【0168】
メディアコンテンツが、ストレージ1530のためにまたはデータをセンダ1540に入力するためにコンテナファイルにカプセル化される場合、センダ1540は、「送信ファイルパーサ」(図に示されていない)を含むことができ、またはそれに動作可能に取り付けられ得る。特に、コンテナファイルがそのように送信されるのではなく、含まれるコード化メディアビットストリームのうちの少なくとも1つが、通信プロトコルを介した移送のためにカプセル化される場合、送信ファイルパーサは、通信プロトコルを介して搬送されるべきコード化メディアビットストリームの適切な部分を捜し出す。送信ファイルパーサはまた、パケットヘッダおよびペイロードなどの通信プロトコルの正しいフォーマットを作り出す際に役立つことができる。マルチメディアコンテナファイルは、含まれているメディアビットストリームのうちの少なくとも1つを通信プロトコルに基づいてカプセル化するために、ISOBMFFにおけるヒントトラックなどのカプセル化命令を含むことができる。
【0169】
サーバ1540は、例えば、CDN、インターネット、および/または1つまたは複数のアクセスネットワークの組合せとすることができる通信ネットワークを通してゲートウェイ1550に接続される場合もされない場合もある。ゲートウェイは、さらにまたは代替として、ミドルボックスと呼ばれることがある。DASHでは、ゲートウェイは、エッジサーバ(CDNの)またはウェブプロキシとすることができる。システムは、一般に、任意の数のゲートウェイなどを含むことができるが、簡単のために、以下の説明は、1つのゲートウェイ1550のみを考慮することに留意されたい。ゲートウェイ1550は、ある通信プロトコルスタックによるパケットストリームの別の通信プロトコルスタックへの変換、データストリームのマージングおよびフォーキング、および現行のダウンリンクネットワーク状態に応じた転送ストリームのビットレートの制御などのダウンリンクおよび/またはレシーバ能力に応じたデータストリームの操作などの様々なタイプの機能を実行することができる。ゲートウェイ1550は、様々な実施形態のサーバエンティティとすることができる。
【0170】
システムは、一般に、送信された信号を受信し、復調し、コード化メディアビットストリームにカプセル開放することができる1つまたは複数のレシーバ1560を含む。コード化メディアビットストリームは、記録ストレージ1570に転送され得る。記録ストレージ1570は、コード化メディアビットストリームを格納するために任意のタイプのマスメモリを含むことができる。記録ストレージ1570は、代替としてまたは付加的に、ランダムアクセスメモリなどの計算メモリを含むことができる。記録ストレージ1570内のコード化メディアビットストリームのフォーマットは、基本的な自己完結型ビットストリームフォーマットとすることができ、または1つまたは複数のコード化メディアビットストリームは、コンテナファイルにカプセル化され得る。互いに関連するオーディオストリームおよびビデオストリームなどの多数のコード化メディアビットストリームがある場合、コンテナファイルが、一般に、使用され、レシーバ1560は、入力ストリームからコンテナファイルを生成するコンテナファイル発生器を含むかまたはそれに取り付けられる。いくつかのシステムは、「ライブで」動作し、すなわち、記録ストレージ1570を省略し、レシーバ1560からのコード化メディアビットストリームをデコーダ1580に直接転送する。いくつかのシステムでは、記録されたストリームのうちの最新の部分のみ、例えば、記録されたストリームの最新の10分の抜粋のみが、記録ストレージ1570に維持され、一方、前の記録データは、記録ストレージ1570から廃棄される。
【0171】
コード化メディアビットストリームは、記録ストレージ1570からデコーダ1580に転送され得る。互いに関連し、コンテナファイルにカプセル化されたオーディオストリームおよびビデオストリームなどの多くのコード化メディアビットストリームがあるか、または単一のメディアビットストリームが、例えば、より容易なアクセスのためにコンテナファイルにカプセル化される場合、ファイルパーサ(図に示されていない)を使用して、コンテナファイルからの各コード化メディアビットストリームをカプセル開放する。記録ストレージ1570またはデコーダ1580は、ファイルパーサを含むことができ、またはファイルパーサは、記録ストレージ1570またはデコーダ1580のいずれかに取り付けられる。システムは多くのデコーダを含むことができるが、ここでは、1つのデコーダ1570のみが、一般性を欠くことなく説明を簡単にするために論じられることにも留意されたい。
【0172】
コード化メディアビットストリームは、デコーダ1570によってさらに処理することができ、デコーダの出力は、1つまたは複数の非圧縮メディアストリームである。最後に、レンダラ1590は、例えば、ラウドスピーカまたはディスプレイにより非圧縮メディアストリームを再生することができる。レシーバ1560、記録ストレージ1570、デコーダ1570、およびレンダラ1590は、同じ物理デバイスに存在してもよく、または別個のデバイスに含まれてもよい。
【0173】
センダ1540および/またはゲートウェイ1550は、例えば、360度のビデオコンテンツの異なるビューポート間の切替え、ビュー切替え、ビットレート適合、および/または高速起動のために異なる表現間の切替えを実行するように構成することができ、および/またはセンダ1540および/またはゲートウェイ1550は、送信される表現を選択するように構成することができる。異なる表現間の切替えは、レシーバ1560の要求にまたはビットストリームが搬送されるネットワークのスループットなどの一般の条件に応答することなどの多くの理由で行うことができる。言い換えれば、レシーバ1560は、表現間の切替えを開始することができる。レシーバからの要求は、例えば、以前と違う表現によるセグメントまたはサブセグメントの要求、送信されたスケーラビリティレイヤおよび/またはサブレイヤの変更の要求、または以前のものと比較して異なる機能を有するレンダリングデバイスへの変更であり得る。セグメントの要求は、HTTP GET要求であり得る。サブセグメントの要求は、バイト範囲をもつHTTP GET要求であり得る。追加としてまたは代替として、ビットレート調節またはビットレート適合は、例えば、ストリーミングサービスにおいていわゆる高速起動を提供するために使用することができ、送信されるストリームのビットレートは、再生を直ちに開始するために、および時折のパケット遅延および/または再送信を許容するバッファ占有レベルを達成するために、ストリーミングの開始またはランダムアクセスの後のチャネルビットレートよりも低い。ビットレート適合は、多数の表現またはレイヤアップ切替えと表現またはレイヤダウン切替え操作とが様々な順序で行われることを含むことができる。
【0174】
デコーダ1580は、例えば、360度のビデオコンテンツの異なるビューポート間の切替え、ビュー切替え、ビットレート適合、および/または高速起動のために異なる表現間の切替えを実行するように構成することができ、および/またはデコーダ1580は、送信された表現を選択するように構成することができる。異なる表現間の切替えは、より高速のデコーディング動作を達成すること、または送信されたビットストリームを、例えばビットレートに関して、ビットストリームが搬送されるネットワークのスループットなどの一般の条件に適合させることなどの多くの理由で行うことができる。例えば、デコーダ1580を含むデバイスがマルチタスキングであり、ビデオビットストリームのデコーディング以外の目的でコンピューティングリソースを使用する場合、より速いデコーディング動作が必要とされることがある。別の例では、コンテンツが通常の再生速度よりも速いペースで、例えば、従来の実時間再生レートの2倍または3倍の速さで再生されるとき、より速いデコーディング動作が必要とされることがある。
【0175】
上述では、いくつかの実施形態は、HEVCおよび/またはVVCの用語を参照しておよび/またはそれを使用して説明された。実施形態は、同様に、任意のビデオエンコーダおよび/またはビデオデコーダを用いて実現され得ることを理解する必要がある。
【0176】
上述では、例示の実施形態がエンコーダを参照して説明された場合、結果として生じるビットストリームおよびデコーダは、対応する要素をそれら中に有することができることを理解する必要がある。同様に、例示の実施形態がデコーダを参照して説明された場合、エンコーダが、デコーダによってデコードされるべきビットストリームを生成するための構造および/またはコンピュータプログラムを有することができることを理解する必要がある。例えば、いくつかの実施形態は、エンコーディングの一部として予測ブロックを生成することに関連して説明された。実施形態は、水平オフセットおよび垂直オフセットなどのコーディングパラメータがエンコーダによって決定されたよりもビットストリームからデコードされるという差を伴って、デコーディングの一部として予測ブロックを生成することによって同様に実現することができる。
【0177】
上述の本発明の実施形態は、必要とされるプロセスの理解を助けるために別個のエンコーダ装置およびデコーダ装置の点からコーデックを説明している。しかしながら、装置、構造、および動作は、単一のエンコーダ-デコーダ装置/構造/動作として実施されてもよいことを理解されよう。さらに、コーダーおよびデコーダは、一部またはすべての共通要素を共有することができることが可能である。
【0178】
上述の例は、本発明の実施形態が電子デバイス内のコーデック内で動作することを説明しているが、特許請求の範囲に定義されるような本発明は任意のビデオコーデックの一部として実施されてもよいことを理解されよう。したがって、例えば、本発明の実施形態は、固定または有線通信経路を介してビデオコーディングを実施することができるビデオコーデックで実施され得る。
【0179】
したがって、ユーザ機器は、上述の本発明の実施形態で説明されたものなどのビデオコーデックを含むことができる。ユーザ機器という用語は、携帯電話、ポータブルデータ処理デバイス、または携帯ウェブブラウザなどの任意の適切なタイプの無線ユーザ機器を包含するように意図されることを理解されたい
【0180】
さらに、公衆陸上移動通信網(PLMN)の要素は、上述のようなビデオコーデックを含むことができる。
【0181】
一般に、本発明の様々な実施形態は、ハードウェアまたは専用回路、ソフトウェア、論理、またはそれらの任意の組合せで実施することができる。例えば、ある態様は、ハードウェアで実施することができ、一方、他の態様は、コントローラ、マイクロプロセッサ、または他のコンピューティングデバイスによって実行され得るファームウェアまたはソフトウェアで実施することができるが、本発明はそれらに限定されない。本発明の様々な態様がブロック図、流れ図、または他の図形表現の使用として図示および説明され得るが、本明細書に記載されたこれらのブロック、装置、システム、技法、または方法は、非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、専用回路もしくは論理、汎用ハードウェアもしくはコントローラもしくは他のコンピューティングデバイス、またはそれらの組合せで実施することができることをよく理解されよう。
【0182】
本発明の実施形態は、プロセッサエンティティ内などの携帯デバイスのデータプロセッサによって実行可能なコンピュータソフトウェアによって、またはハードウェアによって、またはソフトウェアとハードウェアの組合せによって実施され得る。さらに、これに関して、図におけるような論理フローの任意のブロックが、プログラムステップ、または相互接続されたロジック回路、ブロック、および機能、またはプログラムステップとロジック回路、ブロック、および機能との組合せを表すことができることに留意されたい。ソフトウェアは、メモリチップ、またはプロセッサ内に実装されたメモリブロックなどの物理媒体、ハードディスクまたはフロッピーディスクなどの磁気媒体、および例えばDVD、およびそのデータ変形のCDなどの光学媒体に格納され得る。
【0183】
メモリは、ローカル技術環境に適する任意のタイプのものとすることができ、半導体ベースメモリデバイス、磁気メモリデバイスおよびシステム、光メモリデバイスおよびシステム、固定メモリおよびリムーバブルメモリなどの任意の適切なデータストレージ技術を使用して実装されてもよい。データプロセッサは、ローカル技術環境に適する任意のタイプのものとすることができ、非限定の例として、汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、およびマルチコアプロセッサアーキテクチャに基づくプロセッサのうちの1つまたは複数を含むことができる。
【0184】
本発明の実施形態は、集積回路モジュールなどの様々な構成要素で実践することができる。集積回路の設計は、概して、高度に自動化されたプロセスである。論理レベル設計を、半導体基板にエッチングおよび形成される準備ができた半導体回路設計に変換するために利用可能な複雑で強力なソフトウェアツールが利用可能である。
【0185】
カリフォルニア州マウンテンビューのSynopsys, Inc.およびカリフォルニア州サンノゼのCadence Designによって提供されるプログラムは、よく確立された設計ルールならびに事前格納された設計モジュールのライブラリを使用して、半導体チップ上で自動的に導体をルーティングし構成要素を配置する。半導体回路の設計が完了した後、標準電子フォーマット(例えば、Opus、GDSIIなど)の結果として生じた設計は、製造のために半導体製造設備または「fab」に送られ得る。
【0186】
前述の説明は、例示的および非限定的な例として、本開示の例示的な実施形態の完全で有益な説明を提供した。しかしながら、前述の説明に鑑みて、添付の図面および添付の特許請求の範囲とともに読むとき、様々な変更および改変が当業者には明らかになるであろう。しかしながら、本開示の教示のすべてのそのようなおよび類似する変更は、依然として、本開示の範囲内にあることになる。
【国際調査報告】