(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-12
(54)【発明の名称】クロス成分パラメータ決定のための装置、方法、およびコンピュータプログラム
(51)【国際特許分類】
H04N 19/50 20140101AFI20250204BHJP
H04N 19/70 20140101ALI20250204BHJP
【FI】
H04N19/50
H04N19/70
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024541989
(86)(22)【出願日】2022-11-15
(85)【翻訳文提出日】2024-09-11
(86)【国際出願番号】 EP2022081973
(87)【国際公開番号】W WO2023134903
(87)【国際公開日】2023-07-20
(32)【優先日】2022-01-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】515076873
【氏名又は名称】ノキア テクノロジーズ オサケユイチア
(74)【代理人】
【識別番号】110001173
【氏名又は名称】弁理士法人川口國際特許事務所
(72)【発明者】
【氏名】ライネマ,ヤニ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA01
(57)【要約】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと、初期更新項の大きさをデコードすることと、更新項の符号を決定する際に使用されるべきシンタックス要素をデコードすることと、参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定することと、参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定することとを含む方法。
【特許請求の範囲】
【請求項1】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し、
初期更新項の大きさをデコードし、
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードし、
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定し、
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定する
ための手段を備える装置。
【請求項2】
符号を決定するための前記手段が、
参照値を閾値と比較し、
参照値が閾値よりも大きく、シンタックス要素が第1の表示値を有するか、もしくは参照値が閾値以下であり、シンタックス要素が第1の表示値と異なる第2の表示値を有する場合、更新項の符号を正であると決定し、またはそうでなければ更新項の符号を負であると決定する
ための手段を備える、請求項1に記載の装置。
【請求項3】
第1の表示値が0であり、第2の表示値が1であるか、または第1の表示値が1であり、第2の表示値が0である、請求項2に記載の装置。
【請求項4】
閾値が0である、請求項1、2、または3に記載の装置。
【請求項5】
符号を決定するための前記手段が、
更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が0である場合にはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が1である場合にはゼロから遠ざかるように参照値を精緻化するように、符号を決定する
ための手段を備える、請求項1から4のいずれか一項に記載の装置。
【請求項6】
符号を決定するための前記手段が、
更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が1である場合にはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が0である場合にはゼロから遠ざかるように参照値を精緻化するように、符号を決定する
ための手段を備える、請求項1から4のいずれか一項に記載の装置。
【請求項7】
参照パラメータの値がゼロよりも大きいかまたはゼロに等しい場合、初期更新項の符号を反転させることによって更新項の値を決定する
ための手段を備える、請求項1から6のいずれか一項に記載の装置。
【請求項8】
参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しい場合、初期更新項を変更しないままにすることによって更新項の値を決定する
ための手段を備える、請求項1から6のいずれか一項に記載の装置。
【請求項9】
第1の色成分がルマ成分であり、第2の色成分が1つのクロマ成分である、請求項1から8のいずれか一項に記載の装置。
【請求項10】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと、
初期更新項の大きさをデコードすることと、
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードすることと、
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定することと、
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定することと
を含む方法。
【請求項11】
少なくとも1つのプロセッサと少なくとも1つのメモリとを備える装置であって、前記少なくとも1つのメモリにはコードが記憶され、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、少なくとも、
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと、
初期更新項の大きさをデコードすることと、
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードすることと、
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定することと、
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定することと
を行わせる、装置。
【請求項12】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し、
参照値の初期更新項の値を決定し、
参照値が閾値よりも大きい場合、表示される値の符号が更新項の決定された値の符号と反対であるように更新項の表示される値を決定し、
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードする
ための手段を備える装置。
【請求項13】
参照パラメータの値がゼロよりも大きいかまたはゼロに等しい場合、更新項の符号を反転させる
ための手段を備える、請求項12に記載の装置。
【請求項14】
参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しい場合、更新項を変更しないままにすることによって更新項の表示される値を決定する
ための手段を備える、請求項12または13に記載の装置。
【請求項15】
レート歪み決定を行って、更新項の値を決定し、
更新項の値に基づいて、表示される更新項を決定する
ための手段を備える、請求項12、13、または14に記載の装置。
【請求項16】
レート歪み決定を行って、表示される更新項の値を決定し、
表示される更新項の値に基づいて、更新項を決定する
ための手段を備える、請求項12、13、または14に記載の装置。
【請求項17】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと、
参照値の初期更新項の値を決定することと、
参照値が閾値よりも大きい場合、表示される値の符号が更新項の決定された値の符号と反対であるように更新項の表示される値を決定することと、
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードすることと
を含む方法。
【請求項18】
少なくとも1つのプロセッサと少なくとも1つのメモリとを備える装置であって、前記少なくとも1つのメモリにはコードが記憶され、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、少なくとも、
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと、
参照値の初期更新項の値を決定することと、
参照値が閾値よりも大きい場合、表示される値の符号が更新項の決定された値の符号と反対であるように更新項の表示される値を決定することと、
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードすることと
を行わせる、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオエンコーディングおよびデコーディングにおけるクロス成分パラメータ決定のための装置、方法、およびコンピュータプログラムに関する。
【背景技術】
【0002】
ビデオコーディングでは、ビデオおよび画像サンプルは、一般に、1つの輝度(ルマ)チャンネルおよび2つのクロミナンス(クロマ)チャンネルからなるYUVまたはYCbCrなどの色表現を使用してエンコードされる。これらの場合、主としてシーンの照度を表す輝度チャンネルは、一般に、特定の解像度でコード化され、一方、一般に特定の色成分間の差を表すクロミナンスチャンネルは、多くの場合、輝度信号の解像度よりも低い第2の解像度でコード化される。この種の差分表現の意図は、色成分を無相関化し、データをより効率的に圧縮できるようにすることである。
【0003】
多用途ビデオコーディング(Versatile Video Coding)(VVC/H.266)規格では、クロス成分線形モデル(CCLM)が、クロマチャンネル(例えば、CbおよびCr)におけるサンプルを予測するための線形モデルとして使用される。このプロセスは、ルマサンプル値をクロマサンプル値にマッピングするために使用することができる線形モデルを生成する。線形モデルのパラメータは、予測ブロックの境界の外側の利用可能な再構成されたルマおよびクロマ参照サンプルを使用して構成される。パラメータが構成されると、それらのパラメータによって指定された線形モデルが、予測ブロックの内側のクロマサンプル値を予測するために使用される。
【0004】
クロマサンプルを予測するためにクロス成分線形モデル予測を適用することは、ルマチャンネルとクロマチャンネルとの間に強い線形相関がある場合、再構成されたルマブロックのテクスチャが、時には、クロマテクスチャのための非常に良好な予測子(predictor)を生成することができるので、イントラ成分空間予測と比較して効率的であり得る。しかしながら、線形モデルパラメータを生成するために使用される再構成された参照サンプルは、ノイズが多い場合があり、または実際の予測ブロックの内側のコンテンツを十分に表さない場合がある。これらの場合には、予測は失敗し、プロセスはコンテンツに対して最適とはいえないコーディング効率をもたらす。
【発明の概要】
【課題を解決するための手段】
【0005】
次に、上述の問題を少なくとも軽減するために、ルマチャンネルとクロマチャンネルとの間のより良好な相関を達成するための強化された方法が本明細書に導入される。
【0006】
いくつかの態様によれば、ルマからクロマへのマッピングモデルで使用されるパラメータの参照値が生成され、参照値を精緻化するために適用される更新項が決定される方法が提供される。更新項の値の決定は、生成された参照値の符号または大きさに応じて更新項の表示される値の符号を反転させることを含むことができる。
【0007】
態様のいくつかは、第1の色成分から第2の色成分へのマッピングモデルに適用され得、例えば、第1の色成分はルマ成分とすることができ、第2の色成分はクロマ成分とすることができ、または第1の色成分はクロマ成分とすることができ、第2の色成分はルマ成分とすることができることに留意されたい。態様のいくつかはまた、異なるタイプのデータ間で動作するマッピングモデルに適用され得る。例えば、いくつかの態様は、画像サンプル値を、特定の点または平面からのサンプルの距離を示す深度マップの値に変換するマッピングに適用され得る。
【0008】
第1の態様による装置は、
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し;
初期更新項の大きさをデコードし;
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードし;
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定し;
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定する
ための手段を備える。
【0009】
一実施形態によれば、この装置は、
参照値を閾値と比較し;
参照値が閾値よりも大きく、シンタックス要素が第1の表示値を有するか、もしくは参照値が閾値以下であり、シンタックス要素が第1の表示値と異なる第2の表示値を有する場合、更新項の符号を正であると決定し、またはそうでなければ更新項の符号を負であると決定する
ための手段をさらに備える。
【0010】
一実施形態によれば、第1の表示値が0であり、第2の表示値が1であるか、または第1の表示値が1であり、第2の表示値は第2の表示値が0である。
【0011】
一実施形態によれば、閾値は0である。
【0012】
装置の一実施形態によれば、符号を決定するための前記手段は、更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が0である場合にはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が1である場合にはゼロから遠ざかるように参照値を精緻化するように、符号を決定するための手段を備える。
【0013】
装置の一実施形態によれば、符号を決定するための前記手段は、更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が1である場合にはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が0である場合にはゼロから遠ざかるように参照値を精緻化するように、符号を決定するための手段を備える。
【0014】
一実施形態によれば、この装置は、参照パラメータの値がゼロよりも大きいかまたはゼロに等しい場合、初期更新項の符号を反転させることによって更新項の値を決定するための手段を備える。
【0015】
一実施形態によれば、この装置は、参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しい場合、初期更新項を変更しないままにすることによって更新項の値を決定するための手段を備える。
【0016】
装置の一実施形態によれば、第1の色成分はルマ成分であり、第2の色成分は1つのクロマ成分である。
【0017】
第2の態様による方法は、
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと;
初期更新項の大きさをデコードすることと;
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードすることと;
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定することと;
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定することと
を含む。
【0018】
第3の態様による装置は、少なくとも1つのプロセッサと少なくとも1つのメモリとを備え、前記少なくとも1つのメモリにはコードが記憶され、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、少なくとも:
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと;
初期更新項の大きさをデコードすることと;
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードすることと;
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定することと;
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定することと
を行わせる。
【0019】
第4の態様による装置は、
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し;
参照値の初期更新項の値を決定することと、
参照値が閾値よりも大きい場合、表示される値の符号が更新項の決定された値の符号と反対であるように更新項の表示される値を決定することと、
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードすることとを行うための手段を備える。
【0020】
一実施形態によれば、この装置は、参照パラメータの値がゼロよりも大きいかまたはゼロに等しい場合、更新項の符号を反転させるための手段を備える。
【0021】
一実施形態によれば、この装置は、参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しい場合、更新項を変更しないままにすることによって更新項の表示される値を決定するための手段を備える。
【0022】
一実施形態によれば、この装置は、
レート歪み決定を行って、更新項の値を決定し、
更新項の値に基づいて、表示される更新項を決定するための手段を備える。
【0023】
一実施形態によれば、この装置は、
レート歪み決定を行って、表示される更新項の値を決定し、
表示される更新項の値に基づいて、更新項を決定するための手段を備える。
【0024】
第5の態様による方法は、
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと;
参照値の初期更新項の値を決定することと;
参照値が閾値よりも大きい場合、表示される値の符号が更新項の決定された値の符号と反対であるように更新項の表示される値を決定することと;
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードすることと
を含む。
【0025】
第6の態様による装置は、少なくとも1つのプロセッサと少なくとも1つのメモリとを備え、前記少なくとも1つのメモリにはコードが記憶され、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、少なくとも:
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと;
参照値の初期更新項の値を決定することと;
参照値が閾値よりも大きい場合、表示される値の符号が更新項の決定された値の符号と反対であるように更新項の表示される値を決定することと;
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードすることと
を行わせる。
【0026】
したがって、装置と、コードが記憶されたコンピュータ可読ストレージ媒体とは、上述のように、上述の方法、およびそれに関連する実施形態のうちの1つ以上を実行するように構成される。
【0027】
本発明のよりよい理解のために、次に、添付の図面が例として参照される。
【図面の簡単な説明】
【0028】
【
図1】本発明の実施形態を利用する電子デバイスを概略的に示す図である。
【
図2】本発明の実施形態を利用するのに適するユーザ機器を概略的に示す図である。
【
図3】無線および有線ネットワーク接続を使用して接続された、本発明の実施形態を利用する電子デバイスを概略的にさらに示す図である。
【
図4a】本発明の実施形態を実施するのに適するエンコーダを概略的に示す図である。
【
図4b】本発明の実施形態を実施するのに適するデコーダを概略的に示す図である。
【
図5a】本開示の一実施形態による、ルマ値からクロマ値への線形モデルマッピングを示す図である。
【
図5c】決定された初期マッピングラインの外側の制御点prを選択し、そのような点に関して勾配更新を行うことを示す図である。
【
図5d】決定された初期マッピングラインの外側の制御点prを使用し、勾配を変更しないままオフセットパラメータbの更新のみを行うことを示す図である。
【
図6a】本開示の一実施形態による、ブロックBの上の参照サンプルRの選択を示す図である。
【
図6b】本開示の一実施形態による、ブロックBの上の参照サンプルRの選択を示す図である。
【
図6c】本開示の一実施形態による、ブロックBの上の参照サンプルRの選択を示す図である。
【
図8】様々な実施形態が実装され得る例示のマルチメディア通信システムの概略図である。
【発明を実施するための形態】
【0029】
以下は、視点切替えを開始するための適切な装置および可能な機構をさらに詳細に説明する。これに関して、
図1および
図2が最初に参照され、
図1は、例示の実施形態によるビデオコーディングシステムのブロック図を、本発明の一実施形態に従ってコーデックを組み込むことができる例示的な装置または電子デバイス50の概略ブロック図として示す。
図2は、例示の実施形態による装置のレイアウトを示す。
図1および
図2の要素が、次に説明される。
【0030】
電子デバイス50は、例えば、無線通信システムの携帯端末またはユーザ機器であり得る。しかしながら、本発明の実施形態は、ビデオ画像のエンコーディングおよびデコーディングあるいはエンコーディングまたはデコーディングを必要とし得る電子デバイスまたは装置内に実装され得ることが理解されよう。
【0031】
装置50は、デバイスの組込みおよび保護のためにハウジング30を備えることができる。装置50は、さらに、液晶ディスプレイの形態のディスプレイ32を備えることができる。本発明の他の実施形態では、ディスプレイは、画像またはビデオを表示するのに適する任意の適切なディスプレイ技術とすることができる。装置50は、キーパッド34をさらに備えることができる。本発明の他の実施形態では、任意の適切なデータまたはユーザインタフェース機構が利用され得る。例えば、ユーザインタフェースは、タッチセンシティブディスプレイの一部としてのバーチャルキーボードまたはデータエントリシステムとして実装され得る。
【0032】
装置は、マイクロホン36、またはデジタルもしくはアナログ信号入力部とすることができる任意の適切なオーディオ入力部を備えることができる。装置50は、本発明の実施形態では、イヤホン38、スピーカ、またはアナログオーディオもしくはデジタルオーディオ出力接続のうちの任意の1つとすることができるオーディオ出力デバイスをさらに備えることができる。装置50は、バッテリをさらに備えることができる(または本発明の他の実施形態では、デバイスは、太陽電池、燃料電池、もしくはクロックワーク発電機などの任意の適切な携帯エネルギーデバイスによって電力供給されてもよい)。装置は、画像および/またはビデオを記録または捕捉することができるカメラをさらに備えることができる。装置50は、他のデバイスとの短距離見通し線通信(short range line of sight communication)のための赤外線ポートをさらに備えることができる。他の実施形態では、装置50は、任意の適切な短距離通信ソリューション、例えば、ブルートゥース無線接続、またはUSB/ファイヤワイヤ有線接続などをさらに備えることができる。
【0033】
装置50は、装置50を制御するためのコントローラ56、プロセッサ、またはプロセッサ回路を備えることができる。コントローラ56は、本発明の実施形態では、画像およびオーディオデータの形態の両方のデータを記憶することができる、および/またはさらにコントローラ56での実施のための命令を記憶することができるメモリ58に接続され得る。コントローラ56は、さらに、オーディオおよび/またはビデオデータのコーディングおよびデコーディングを実行するのに適する、またはコントローラによって実行されるコーディングおよびデコーディングを支援するのに適するコーデック回路54に接続され得る。
【0034】
装置50は、カードリーダ48およびスマートカード46、例えば、ユーザ情報を提供し、ネットワークでのユーザの認証および承認のための認証情報を提供するのに適するUICCおよびUICCリーダをさらに備えることができる。
【0035】
装置50は、コントローラに接続され、例えば、セルラ通信ネットワーク、無線通信システム、または無線ローカルエリアネットワークとの通信のための無線通信信号を生成するのに適する無線インタフェース回路52を備えることができる。装置50は、無線インタフェース回路52で生成された無線周波数信号を他の装置に送信し、他の装置からの無線周波数信号を受信するために無線インタフェース回路52に接続されたアンテナ44をさらに含むことができる。
【0036】
装置50は、個々のフレームを記録または検出することができるカメラを備えることができ、個々のフレームは、次いで、処理のためにコーデック54またはコントローラに渡される。装置は、送信および/または記憶の前に、別のデバイスから処理のためのビデオ画像データを受信することができる。装置50は、さらに、無線でまたは有線接続によって、コーディング/デコーディングのための画像を受信することができる。上述の装置50の構造要素は、対応する機能を行うための手段の例を示す。
【0037】
図3に関して、本発明の実施形態が利用され得るシステムの一例が示される。システム10は、1つ以上のネットワークを通して通信することができる多数の通信デバイスを含む。システム10は、限定はしないが、無線セルラ電話ネットワーク(GSM、UMTS、CDMAネットワークなどのような)、IEEE802.x規格のうちのいずれかによって定義されているものなどの無線ローカルエリアネットワーク(WLAN)、ブルートゥースパーソナルエリアネットワーク、イーサネットローカルエリアネットワーク、トークンリングローカルエリアネットワーク、ワイドエリアネットワーク、およびインターネットを含む有線ネットワークまたは無線ネットワークの任意の組合せを含むことができる。
【0038】
システム10は、本発明の実施形態を実施するのに適する有線および無線の通信デバイスおよび/または装置50の両方を含むことができる。
【0039】
例えば、
図3に示されるシステムは、携帯電話ネットワーク11と、インターネット28の表現とを示す。インターネット28への接続性は、限定はしないが、長距離無線接続と、短距離無線接続と、限定はしないが、電話回線、ケーブル回線、電力線、および同様の通信経路を含む様々な有線接続とを含むことができる。
【0040】
システム10に示された例示の通信デバイスは、限定はしないが、電子デバイスまたは装置50、携帯情報端末(PDA)と携帯電話14の組合せ、PDA16、統合メッセージングデバイス(integrated messaging device)(IMD)18、デスクトップコンピュータ20、ノートブックコンピュータ22を含むことができる。装置50は、固定式であってもよく、または移動している個人が所持する場合は携帯式であってもよい。装置50はまた、限定はしないが、自動車、トラック、タクシー、バス、列車、船、飛行機、自転車、オートバイ、または同様の適切な輸送手段を備える輸送手段に位置してもよい。
【0041】
実施形態はまた、セットトップボックス;ディスプレイまたは無線機能があることもあり/ないこともあるデジタルTVレシーバに、エンコーダ/デコーダ実装のハードウェア、ソフトウェア、または組合せを有するタブレットまたは(ラップトップ)パーソナルコンピュータ(PC)に、様々なオペレーティングシステムに、およびハードウェア/ソフトウェアベースコーディングを提供するチップセット、プロセッサ、DSP、および/または組込みシステムに実装され得る。
【0042】
いくつかのまたはさらなる装置は、通話およびメッセージを送受信し、基地局24への無線接続25を通してサービスプロバイダと通信することができる。基地局24は、携帯電話ネットワーク11とインターネット28との間の通信を可能にするネットワークサーバ26に接続され得る。システムは、追加の通信デバイスと、様々なタイプの通信デバイスとを含むことができる。
【0043】
通信デバイスは、限定はしないが、符号分割多元接続(CDMA)、移動通信用グローバルシステム(global systems for mobile communications)(GSM)、ユニバーサル移動通信システム(universal mobile telecommunications system)(UMTS)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、伝送制御プロトコル-インターネットプロトコル(transmission control protocol-internet protocol)(TCP-IP)、ショートメッセージサービス(SMS)、マルチメディアメッセージサービス(MMS)、電子メール、インスタントメッセージサービス(IMS)、ブルートゥース、IEEE802.11、および任意の同様の無線通信技術を含む様々な伝送技術を使用して通信することができる。本発明の様々な実施形態の実施に関わる通信デバイスは、限定はしないが、無線、赤外線、レーザ、ケーブル接続、および任意の適切な接続を含む様々な媒体を使用して通信することができる。
【0044】
電気通信およびデータネットワークにおいて、チャンネルは、物理チャンネルまたは論理チャンネルのいずれかを参照し得る。物理チャンネルは、ワイヤなどの物理的伝送媒体を参照することができ、一方、論理チャンネルは、いくつかの論理チャンネルを搬送することができる多重媒体上の論理的接続を参照することができる。チャンネルは、1つまたはいくつかのセンダ(sender)(または送信器)から1つまたはいくつかのレシーバに情報信号、例えば、ビットストリームを搬送するために使用され得る。
【0045】
ISO/IEC13818-1において、または同等にITU-T勧告H.222.0において指定されたMPEG-2トランスポートストリーム(TS)は、オーディオ、ビデオ、および他のメディア、ならびにプログラムメタデータまたは他のメタデータを多重化ストリームで搬送するためのフォーマットである。パケット識別子(PID)が、TS内のエレメンタリストリーム(別名、パケット化エレメンタリストリーム)を識別するために使用される。したがって、MPEG-2 TS内の論理チャンネルは、特定のPID値に対応すると考えることができる。
【0046】
利用可能なメディアファイルフォーマット標準は、ISOベースメディアファイルフォーマット(ISO/IEC14496-12、ISOBMFFと省略されることがある)、およびISOBMFFから派生したNALユニット構造化ビデオ(NAL unit structured video)のためのファイルフォーマット(ISO/IEC14496-15)を含む。
【0047】
ビデオコーデックは、入力ビデオをストレージ/伝送に適した圧縮された表現に変換するエンコーダと、圧縮されたビデオ表現を復元して表示可能形態に戻すデコーダとからなる。ビデオエンコーダおよび/またはビデオデコーダはまた、互いに別個であってもよい、すなわち、コーデックを形成する必要はない。一般に、エンコーダは、ビデオをよりコンパクトな形態で(すなわち、より低いビットレートで)表すために、オリジナルビデオシーケンスの一部の情報を廃棄する。
【0048】
典型的なハイブリッドビデオエンコーダ、例えば、ITU-T H.263およびH.264の多くのエンコーダ実装は、ビデオ情報を2つのフェーズでエンコードする。第1に、特定のピクチャエリア(または「ブロック」)のピクセル値が、例えば、動き補償手段(以前にコード化されたビデオフレームのうちの1つにおいて、コード化されるブロックに密接に対応するエリアを見いだし示すこと)によって、または空間的手段(指定された方法でコード化されるべきブロックのまわりのピクセル値を使用すること)によって予測される。第2に、予測誤差、すなわち、ピクセルの予測されたブロックとピクセルのオリジナルのブロックとの間の差がコード化される。これは、一般に、指定された変換(例えば、離散コサイン変換(DCT)またはその変形)を使用してピクセル値の差を変換し、係数を量子化し、量子化された係数をエントロピーコード化することによって行われる。量子化プロセスの忠実度を変更することによって、エンコーダは、ピクセル表現の精度(ピクチャ品質)と、結果として生じるコード化ビデオ表現のサイズ(ファイルサイズまたは伝送ビットレート)との間のバランスを制御することができる。
【0049】
時間予測では、予測のソースは、以前にデコードされたピクチャ(別名、参照ピクチャ)である。イントラブロックコピー(intra block copy)(IBC;別名、イントラブロックコピー予測)では、予測は、時間予測と同様に適用されるが、参照ピクチャは、現在のピクチャであり、以前にデコードされたサンプルのみが予測プロセスにおいて参照され得る。インターレイヤまたはインタービュー予測が、時間予測と同様に適用され得るが、参照ピクチャは、それぞれ、別のスケーラブルレイヤまたは別のビューからのデコードされたピクチャである。ある場合には、インター予測は、時間予測のみを参照することができるが、他の場合には、インター予測は、時間予測と、イントラブロックコピー、インターレイヤ予測、およびインタービュー予測のうちのいずれかとをまとめて参照することができるが、ただし、それらが時間予測と同じまたは同様のプロセスで行われるという条件付きである。インター予測または時間予測は、時には、動き補償または動き補償予測と呼ばれることがある。
【0050】
動き補償は、フルサンプル精度またはサブサンプル精度のいずれかで実行することができる。フルサンプル精度動き補償の場合、動きは、水平および垂直変位に対しての整数値を有する動きベクトルとして表され得、動き補償プロセスは、それらの変位を使用して、参照ピクチャからサンプルを効果的にコピーする。サブサンプル精度動き補償の場合、動きベクトルは、動きベクトルの水平および垂直成分に対して小数値または10進数値で表される。動きベクトルが参照ピクチャ内で非整数位置を指している場合、一般に、サブサンプル補間プロセスを呼び出して、参照サンプルと選択されたサブサンプル位置とに基づいて予測サンプル値を計算する。サブサンプル補間プロセスは、一般に、フルサンプル位置に対する垂直オフセットを補償する垂直フィルタリングが後に続くフルサンプル位置に対する水平オフセットを補償する水平フィルタリングからなる。しかしながら、垂直処理はまた、環境によっては、水平処理の前に行われ得る。
【0051】
時間予測、動き補償、または動き補償予測と呼ばれることもあるインター予測は、時間的冗長性を低減する。インター予測では、予測のソースは、以前にデコードされたピクチャである。イントラ予測は、同じピクチャ内の隣接するピクセルが相関している可能性が高いことを利用する。イントラ予測は空間ドメインまたは変換ドメインで行うことができる、すなわち、サンプル値または変換係数のいずれかが予測され得る。イントラ予測は、一般に、イントラコーディングで利用され、そこではインター予測は適用されない。
【0052】
コーディング手順の1つの結果は、動きベクトルおよび量子化された変換係数などのコーディングパラメータのセットである。多くのパラメータは、それらが最初に空間的にまたは時間的に隣接するパラメータから予測される場合、より効率的にエントロピーコード化され得る。例えば、動きベクトルは、空間的に隣接する動きベクトルから予測され得、動きベクトル予測子に対する差のみがコード化され得る。コーディングパラメータの予測とイントラ予測とは、総称して、インピクチャ予測と呼ばれることがある。
【0053】
図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)を示す。
【0054】
デコーディングプロセスの一例が
図4bに示される。
図4bは、画像ブロックの予測表現(P’n);再構成予測誤差信号(D’n);予備再構成画像(I’n);最終再構成画像(R’n);逆変換(T-1);逆量子化(Q-1);エントロピーデコーディング(E-1);参照フレームメモリ(RFM);予測(インターまたはイントラのいずれか)(P);およびフィルタリング(F)を示す。
【0055】
多くのハイブリッドビデオエンコーダは、ビデオ情報を2つのフェーズでエンコードする。第1に、特定のピクチャエリア(または「ブロック」)のピクセル値が、例えば、動き補償手段(以前にコード化されたビデオフレームのうちの1つにおいて、コード化されるブロックに密接に対応するエリアを見いだし示すこと)によって、または空間的手段(指定された方法でコード化されるべきブロックのまわりのピクセル値を使用すること)によって予測される。第2に、予測誤差、すなわち、ピクセルの予測されたブロックとピクセルのオリジナルのブロックとの間の差がコード化される。これは、一般に、指定された変換(例えば、離散コサイン変換(DCT)またはその変形)を使用してピクセル値の差を変換し、係数を量子化し、量子化された係数をエントロピーコード化することによって行われる。量子化プロセスの忠実度を変更することによって、エンコーダは、ピクセル表現の精度(ピクチャ品質)と、結果として生じるコード化ビデオ表現のサイズ(ファイルサイズまたは伝送ビットレート)との間のバランスを制御することができる。ビデオコーデックはまた、エンコーダが使用することを選ぶことができる変換スキップモードを提供することができる。変換スキップモードでは、予測誤差は、例えば、特定の隣接するサンプルに対するサンプルごとの差分値を導出し、エントロピーコーダによりサンプルごとの差分値をコード化することによって、サンプルドメインにおいてコード化される。
【0056】
エントロピーコーディング/デコーディングは、多くの方法で行われ得る。例えば、コンテキストベースコーディング/デコーディングが適用され得、エンコーダとデコーダの両方は、以前にコード化/デコードされたコーディングパラメータに基づいてコーディングパラメータのコンテキスト状態を変更する。コンテキストベースコーディングは、例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)またはコンテキストベース可変長コーディング(CAVLC)または任意の類似のエントロピーコーディングとすることができる。エントロピーコーディング/デコーディングは、代替としてまたは追加として、ハフマンコーディング/デコーディングまたは指数ゴロムコーディング/デコーディングなどの可変長コーディングスキームを使用して実行され得る。エントロピーコード化ビットストリームまたはコードワードからのコーディングパラメータのデコーディングは、パーシングと呼ばれることがある。
【0057】
ビットストリームに沿ったという(例えば、ビットストリームに沿ったことを示す)フレーズは、帯域外データがビットストリームに関連づけられる方法で帯域外伝送、シグナリング、またはストレージを参照するように定義され得る。ビットストリームに沿ったデコーディングなどのフレーズは、ビットストリームに関連する参照された帯域外データ(帯域外伝送、シグナリング、またはストレージから得られ得る)のデコーディングを参照することができる。例えば、ビットストリームに沿ったインディケーションは、ビットストリームをカプセル化するコンテナファイル内のメタデータを参照することができる。
【0058】
以下において、いくつかの実施形態が、1つのビデオコーディング構成のコンテキストで説明されることになる。しかしながら、本実施形態は必ずしもこの特定の構成に限定されないことに留意されたい。実施形態は、ピクチャのクリーンエリアとダーティエリアとの間のCTU位置合わせ境界(CTU-aligned boundary)をもつ細粒度漸進的デコーディングリフレッシュ(fine-grained gradual decoding refresh)に関連する。
【0059】
アドバンスドビデオコーディング規格(Advanced Video Coding standard)(AVCまたは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)を含む。
【0060】
高効率ビデオコーディング規格(HEVCまたはH.265/HEVCと省略されることがある)は、VCEGおよびMPEGの合同協力チーム-ビデオコーディング(JCT-VC)によって開発された。この規格は、両方の標準化母体によって公開されており、ITU-T勧告H.265およびISO/IEC国際規格23008-2と呼ばれ、MPEG-Hパート2高効率ビデオコーディング(HEVC)としても知られている。H.265/HEVCへの拡張は、スケーラブル、マルチビュー、3次元、および忠実度範囲拡張を含み、それらは、それぞれ、SHVC、MV-HEVC、3D-HEVC、およびREXTと呼ばれることがある。本明細書におけるH.265/HEVC、SHVC、MV-HEVC、3D-HEVC、およびREXTへの言及は、これらの標準仕様の定義、構造、または概念を理解する目的で行われたものであり、特に指示がない限り、本出願の日付の前に利用可能であったこれらの標準の最新バージョンへの言及であると理解されたい。
【0061】
多用途ビデオコーディング(VVC、H.266、またはH.266/VVCと省略されることがある)は、HEVCの後継として開発されたビデオ圧縮規格である。VVCは、ITU-T勧告H.266において規定されており、同等に、MPEG-Iパート3とも呼ばれるISO/IEC23090-3とにおいて規定されている。
【0062】
AV1ビットストリームフォーマットおよびデコーディングプロセスの仕様は、オープンメディアのアライアンス(Alliance of Open Media)(AOM)によって開発された。AV1仕様は、2018年に公開された。AOMは、伝えられるところによれば、AV2仕様に取り組んでいる。
【0063】
H.264/AVC、HEVC、VVC、および/またはAV1、およびそれらの拡張の一部のいくつかの重要な定義、ビットストリーム、およびコーディング構造、および概念が、このセクションにおいて、実施形態が実施され得るビデオエンコーダ、デコーダ、エンコーディング方法、デコーディング方法、およびビットストリーム構造の一例として説明される。様々な実施形態の態様は、H.264/AVC、HEVC、VVC、および/またはAV1、またはそれらの拡張に限定されず、むしろ、説明は、本実施形態が部分的にまたは完全に実現され得る1つの可能な基礎について与えられる。
【0064】
ビデオコーデックは、入力ビデオをストレージ/伝送に適した圧縮された表現に変換するエンコーダと、圧縮されたビデオ表現を復元して表示可能形態に戻すデコーダとを含むことができる。圧縮された表現は、ビットストリームまたはビデオビットストリームと呼ばれることがある。ビデオエンコーダおよび/またはビデオデコーダはまた、互いに別個であってもよく、すなわち、コーデックを形成する必要はない。エンコーダは、ビデオをよりコンパクトな形態で(すなわち、より低いビットレートで)表すために、オリジナルビデオシーケンスの一部の情報を廃棄することがある。「(デ)コーダ」という表記は、エンコーダおよび/またはデコーダを意味する。
【0065】
ハイブリッドビデオコーデック、例えば、ITU-T H.264は、ビデオ情報を2つのフェーズでエンコードすることができる。最初に、特定のピクチャエリア(または「ブロック」)のピクセル値が、例えば、動き補償手段(以前にコード化されたビデオフレームのうちの1つにおいて、コード化されるブロックに密接に対応するエリアを見いだし示すこと)によって、または空間的手段(指定された方法でコード化されるべきブロックのまわりのピクセル値を使用すること)によって予測される。次いで、予測誤差、すなわち、ピクセルの予測されたブロックとピクセルのオリジナルのブロックとの間の差がコード化される。これは、指定された変換(例えば、離散コサイン変換(DCT)またはその変形)を使用してピクセル値の差を変換し、係数を量子化し、量子化された係数をエントロピーコード化することによって行われ得る。量子化プロセスの忠実度を変更することによって、エンコーダは、ピクセル表現の精度(ピクチャ品質)と、結果として生じるコード化ビデオ表現のサイズ(ファイルサイズまたは伝送ビットレート)との間のバランスを制御することができる。
【0066】
時間予測では、予測のソースは、以前にデコードされたピクチャ(別名、参照ピクチャ)である。イントラブロックコピー(IBC;別名、イントラブロックコピー予測または現在のピクチャ参照)では、予測は、時間予測と同様に適用されるが、参照ピクチャは、現在のピクチャであり、以前にデコードされたサンプルのみが予測プロセスおいて参照され得る。インターレイヤまたはインタービュー予測が、時間予測と同様に適用され得るが、参照ピクチャは、それぞれ、別のスケーラブルレイヤまたは別のビューからのデコードされたピクチャである。ある場合には、インター予測は、時間予測のみを参照することができるが、他の場合には、インター予測は、時間予測と、イントラブロックコピー、インターレイヤ予測、およびインタービュー予測のうちのいずれかとをまとめて参照することができるが、ただし、それらが時間予測と同じまたは同様のプロセスで行われるという条件付きである。インター予測または時間予測は、時には、動き補償または動き補償予測と呼ばれることがある。
【0067】
イントラ予測は、同じピクチャ内の隣接するピクセルが相関している可能性が高いことを利用する。イントラ予測は空間ドメインまたは変換ドメインで行うことができる、すなわち、サンプル値または変換係数のいずれかが予測され得る。イントラ予測は、イントラコーディングで利用され得、そこではインター予測は適用されない。
【0068】
コーディング手順の1つの結果は、動きベクトルおよび量子化された変換係数などのコーディングパラメータのセットである。多くのパラメータは、それらが最初に空間的にまたは時間的に隣り合うパラメータから予測される場合、より効率的にエントロピーコード化され得る。例えば、動きベクトルは、空間的に隣接する動きベクトルから予測され得、動きベクトル予測子に対する差のみがコード化され得る。コーディングパラメータの予測とイントラ予測とは、総称して、インピクチャ予測と呼ばれることがある。
【0069】
エントロピーコーディング/デコーディングは、多くの方法で行われ得る。例えば、コンテキストベースコーディング/デコーディングが適用され得、エンコーダとデコーダの両方は、以前にコード化/デコードされたコーディングパラメータに基づいてコーディングパラメータのコンテキスト状態を変更する。コンテキストベースコーディングは、例えば、コンテキスト適応型バイナリ算術コーディング(context adaptive binary arithmetic coding)(CABAC)またはコンテキストベース可変長コーディング(context-based variable length coding)(CAVLC)または任意の類似のエントロピーコーディングとすることができる。エントロピーコーディング/デコーディングは、代替としてまたは追加として、ハフマンコーディング/デコーディングまたは指数ゴロムコーディング/デコーディングなどの可変長コーディングスキームを使用して行われ得る。エントロピーコード化ビットストリームまたはコードワードからのコーディングパラメータのデコーディングは、パーシングと呼ばれることがある。
【0070】
ビデオコーディング規格は、ビットストリームシンタックスおよびセマンティクス、ならびにエラーのないビットストリームのためのデコーディングプロセスを規定することができ、一方、エンコーディングプロセスは規定されないことがあるが、エンコーダは適合するビットストリームを生成するために単に必要とされ得る。ビットストリームおよびデコーダコンフォーマンス(decoder conformance)は、仮想参照デコーダ(Hypothetical Reference Decoder)(HRD)で検証され得る。規格は、伝送エラーおよび損失に対処するのに役立つコーディングツールを含むことができるが、エンコーディングにツールを使用するのはオプションとすることができ、誤ったビットストリームに対するデコーディングプロセスは規定されていないことがある。
【0071】
エンコーダへの入力およびデコーダの出力のための基本ユニットは、それぞれ、ほとんどの場合、ピクチャである。エンコーダへの入力として与えられたピクチャは、ソースピクチャと呼ばれることもあり、デコーダによってデコードされたピクチャは、デコードされたピクチャまたは再構築されたピクチャと呼ばれることがある。
【0072】
ソースピクチャおよびデコードされたピクチャは、各々、1つ以上のサンプルアレイ、例えば、サンプルアレイの以下のセットのうちの1つなどで構成される:
- ルマ(Y)のみ(単色)
- ルマおよび2つのクロマ(YCbCrまたはYCgCo)。
- 緑、青、および赤(GBR、RGBとしても知られている)。
- 他の指定されていない単色または三刺激色サンプリングを表すアレイ(例えば、YZX、XYZとしても知られている)。
【0073】
以下では、これらのアレイは、使用中の実際の色表現方法にかかわらず、ルマ(またはLまたはY)およびクロマと呼ばれることがあり、2つのクロマアレイは、CbおよびCrと呼ばれることがある。使用中の実際の色表現方法は、例えば、HEVCなどのビデオユーザビリティ情報(VUI)シンタックスを使用して、例えば、コード化ビットストリームで示され得る。成分は、3つのサンプルアレイ(ルマおよび2つのクロマ)のうちの1つからのアレイまたは単一のサンプル、あるいは単色フォーマットのピクチャを構成するアレイまたはアレイの単一のサンプルとして定義され得る。
【0074】
ピクチャは、フレームまたはフィールドのいずれかとなるように定義され得る。フレームは、ルマサンプルと、場合によっては対応するクロマサンプルとのマトリクスを含む。フィールドは、ソース信号がインターレースされるとき、フレームの交互のサンプル行のセットであり、エンコーダ入力として使用され得る。クロマサンプルアレイはなくてもよく(したがって、単色のサンプリングが使用されてもよく)、またはクロマサンプルアレイは、ルマサンプルアレイと比較されるときにサブサンプリングされてもよい。
【0075】
クロマフォーマットは、以下のように要約され得る:
- 単色サンプリングでは、1つのサンプルアレイのみが存在し、それは名目上ルマアレイと考えることができる。
- 4:2:0サンプリングでは、2つのクロマアレイの各々が、ルマアレイの半分の高さおよび半分の幅を有する。
- 4:2:2サンプリングでは、2つのクロマアレイの各々が、ルマアレイと同じの高さおよびルマアレイの半分の幅を有する。
- 4:4:4サンプリングでは、別個の色平面が使用されていないとき、2つのクロマアレイの各々が、ルマアレイと同じ高さおよび幅を有する。
【0076】
コーディングフォーマットまたは規格は、サンプルアレイを別個の色平面としてビットストリームにコード化し、別個にコード化された色平面をビットストリームからそれぞれデコードすることを可能にすることができる。別個の色平面が使用されているとき、それらの各々の色平面は、単色サンプリングによるピクチャとして別個に処理される(エンコーダおよび/またはデコーダによって)。
【0077】
クロマサブサンプリング(例えば、4:2:0または4:2:2クロマサンプリング)が使用されているとき、ルマサンプルに対するクロマサンプルの場所は、エンコーダ側において決定され得る(例えば、前処理ステップとして、またはエンコーディングの一部として)。ルマサンプル位置に対するクロマサンプル位置は、例えば、H.264/AVCまたはHEVCなどのコーディング規格で事前定義されてもよく、あるいは例えばH.264/AVCまたはHEVCのVUIの一部としてビットストリームで示されてもよい。
【0078】
一般に、エンコーディングのための入力として提供されるソースビデオシーケンスは、インターレース式ソースコンテンツまたはプログレシブ式ソースコンテンツのいずれかを表すことができる。インターレース式ソースコンテンツでは、反対のパリティのフィールドが異なる時間にキャプチャされている。プログレシブ式ソースコンテンツは、キャプチャされたフレームを含む。エンコーダは、インターレース式ソースコンテンツのフィールドを2つの方法でエンコードすることができる:インターレースされたフィールドのペアが、コード化フレーム中にコード化され得、またはフィールドが、コード化フィールドとしてコード化され得る。同様に、エンコーダは、プログレシブ式ソースコンテンツのフレームを2つの方法でエンコードすることができる:プログレシブ式ソースコンテンツのフレームは、コード化フレーム、またはコード化フィールドのペアにコード化され得る。フィールドペアまたは相補的フィールドペアは、デコーディング順および/または出力順で互いに隣り合う2つのフィールドとして定義され得、反対のパリティ(すなわち、1つがトップフィールドであり、もう1つがボトムフィールドである)を有し、どちらも他の相補的フィールドペアに属さない。いくつかのビデオコーディング規格またはスキームは、同じコード化ビデオシーケンス内でのコード化フレームとコード化フィールドのミキシングを可能にする。その上、コード化フィールドをコード化フレーム内のフィールドから予測すること、および/または相補的フィールドペア(フィールドとしてコード化された)に対してコード化フレームを予測することは、エンコーディングおよび/またはデコーディングにおいて可能にされ得る。
【0079】
パーティショニングは、セットの各要素が正確にサブセットのうちの1つの中にあるような、セットのサブセットへの分割として定義され得る。
【0080】
H.264/AVCでは、マクロブロックは、ルマサンプルの16×16ブロックおよび対応するクロマサンプルのブロックである。例えば、4:2:0サンプリングパターンでは、マクロブロックは、各クロマ成分ごとにクロマサンプルの8×8ブロックを1つ含む。H.264/AVCでは、ピクチャは、1つ以上のスライスグループにパーティションされ、スライスグループは、1つ以上のスライスを含む。H.264/AVCでは、スライスは、特定のスライスグループ内にラスタスキャンで連続的に順序づけられた整数個のマクロブロックからなる。
【0081】
HEVCエンコーディングおよび/またはデコーディングの動作を説明するとき、以下の用語が使用され得る。コーディングブロックは、コーディングツリーブロックのコーディングブロックへの分割がパーティショニングとなるように、ある値のNに対するサンプルのN×Nブロックとして定義され得る。コーディングツリーブロック(CTB)は、成分のコーディングツリーブロックへの分割がパーティショニングとなるように、ある値のNに対するサンプルのN×Nブロックとして定義され得る。コーディングツリーユニット(CTU)は、ルマサンプルのコーディングツリーブロック、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するコーディングツリーブロック、または単色ピクチャ、もしくはサンプルをコード化するために使用される3つの別個の色平面およびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングツリーブロックとして定義され得る。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するコーディングブロック、または単色ピクチャ、もしくはサンプルをコード化するために使用される3つの別個の色平面およびシンタックス構造を使用してコード化されたピクチャのサンプルのコーディングブロックとして定義され得る。最大許容サイズのCUは、LCU(最大コーディングユニット)またはコーディングツリーユニット(CTU)と命名され得、ビデオピクチャはオーバーラップしないLCUに分割される。
【0082】
高効率ビデオコーディング(HEVC)コーデックなどのいくつかのビデオコーデックでは、ビデオピクチャは、ピクチャのエリアをカバーするコーティングユニット(CU)に分割され得る。CUは、CU内のサンプルの予測プロセスを定義する1つ以上の予測ユニット(PU)と、前記CU内のサンプルの予測誤差コーディングプロセスを定義する1つ以上の変換ユニット(TU)とからなる。CUは、可能なCUサイズの事前定義されたセットから選択可能なサイズをもつサンプルの正方形ブロックからなり得る。最大許容サイズのCUは、LCU(最大コーディングユニット)またはコーディングツリーユニット(CTU)と命名され得、ビデオピクチャはオーバーラップしないLCUに分割される。LCUは、例えば、LCUおよび結果として生じたCUを再帰的にスプリットすることによって、より小さいCUの組合せにさらにスプリットされ得る。結果として生じる各CUは、少なくとも1つのPUと、それに関連する少なくとも1つのTUとを有することができる。各PUおよびTUは、それぞれ、予測および予測誤差コーディングプロセスの粒度を増加させるために、より小さいPUおよびTUにさらにスプリットされ得る。各PUは、それに関連しており、いかなる種類の予測がそのPU内のピクセルに適用されるべきかを定義する予測情報(例えば、インター予測PUでは動きベクトル情報、およびイントラ予測PUではイントラ予測方向性情報(intra prediction directionality information))を有する。
【0083】
各TUは、前記TU内のサンプルに対する予測誤差デコーディングプロセスを記述する情報(例えば、DCT係数情報を含む)に関連づけられ得る。各CUに予測誤差コーディングが適用されるか否かが、一般に、CUレベルでシグナリングされる。CUに関連する予測誤差残差がない場合には、前記CUにはTUがないと考えることができる。画像のCUへの分割と、CUのPUおよびTUへの分割とは、一般に、ビットストリームでシグナリングされ、それにより、デコーダは、これらのユニットの意図された構造を再生することができる。
【0084】
HEVCにおいて、ピクチャは、タイルにパーティションされ得、タイルは、矩形であり、整数個のLCUを含む。HEVCにおいて、タイルへのパーティショニングは、規則的なグリッドを形成し、タイルの高さおよび幅は、最大で1LCUだけ互いに異なる。HEVCにおいて、スライスは、1つの独立スライスセグメント(independent slice segment)と、同じアクセスユニット内の次の独立スライスセグメント(もしあれば)に先行するすべての後続の従属スライスセグメント(dependent slice segment)(もしあれば)とに含まれる整数個のコーディングツリーユニットであると定義される。HEVCにおいて、スライスセグメントは、タイルスキャンにおいて連続的に順序づけられ、単一のNALユニットに含まれる整数個のコーディングツリーユニットであると定義される。各ピクチャのスライスセグメントへの分割は、パーティショニングである。HEVCにおいて、独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が、先行するスライスセグメントの値から推測されないスライスセグメントであると定義され、従属スライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値がデコーディング順において先行する独立スライスセグメントの値から推測されるスライスセグメントであると定義される。HEVCにおいて、スライスヘッダは、現在のスライスセグメントである独立スライスセグメントのスライスセグメントヘッダ、または現在の従属スライスセグメントに先行する独立スライスセグメントのスライスセグメントヘッダであると定義され、スライスセグメントヘッダは、スライスセグメント内で表される最初のまたはすべてのコーディングツリーユニットに関連するデータ要素を含むコード化スライスセグメントの一部であると定義される。CUは、タイル内で、またはタイルが使用されていない場合にはピクチャ内でLCUのラスタスキャン順にスキャンされる。LCU内では、CUは、特定のスキャン順を有する。
【0085】
デコーダは、ピクセルブロックの予測表現を形成する(エンコーダによって創り出され、圧縮された表現で記憶された動きまたは空間情報を使用して)ためのエンコーダと同様の予測手段と、予測誤差デコーディング(空間ピクセルドメインにおける量子化された予測誤差信号を回復する予測誤差コーディングの逆演算)とを適用することによって出力ビデオを再構築する。予測および予測誤差デコーディング手段を適用した後、デコーダは、予測および予測誤差信号(ピクセル値)を合計して、出力ビデオフレームを形成する。デコーダ(およびエンコーダ)は、さらに、追加のフィルタリング手段を適用して、出力ビデオの品質を改善し、その後、それを表示するために送り、および/またはそれをビデオシーケンスの来たるフレームのための予測参照として記憶することができる。
【0086】
フィルタリングは、例えば、以下のもの:デブロッキング、サンプル適応オフセット(sample adaptive offset)(SAO)、および/または適応ループフィルタリング(adaptive loop filtering)(ALF)のうちの1つ以上を含むことができる。H.264/AVCはデブロッキングを含み、一方、HEVCはデブロッキングとSAOの両方を含む。
【0087】
動き情報は、予測ユニットなどの動き補償された各画像ブロックに関連する動きベクトルで示され得る。これらの動きベクトルの各々は、コード化されるべき(エンコーダ側で)またはデコードされるべき(デコーダ側で)ピクチャの画像ブロックと、以前にコード化またはデコードされたピクチャのうちの1つの予測ソースブロックとの変位を表す。動きベクトルを効率的に表すために、それらは、一般に、ブロック特有の予測動きベクトルに対して差分的にコード化される。一般的なビデオコーデックでは、予測動きベクトルは、事前定義された方法で、例えば、隣接するブロックのエンコードまたはデコードされた動きベクトルの中央値を計算することで創り出される。動きベクトル予測を創り出す別の方法は、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックから候補予測のリストを生成し、選ばれた候補を動きベクトル予測子としてシグナリングすることである。動きベクトル値の予測に加えて、どの参照ピクチャが動き補償予測に使用されるかが予測され得、この予測情報は、例えば、以前にコード化/デコードされたピクチャの参照インデクスによって表され得る。参照インデクスは、一般に、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックから予測される。その上、一般的な高効率ビデオコーデックは、しばしばマージング/マージモードと呼ばれる追加の動き情報コーディング/デコーディング機構を利用し、利用可能な参照ピクチャリストごとに動きベクトルおよび対応する参照ピクチャインデクスを含むすべての動きフィールド情報が予測され、いかなる修正/補正もなしに使用される。同様に、動きフィールド情報の予測は、時間参照ピクチャ内の隣接するブロックおよび/または同じ場所に配置されたブロックの動きフィールド情報を使用して実行され、使用された動きフィールド情報は、利用可能な隣接するブロック/同じ場所に配置されたブロックの動きフィールド情報で埋められた動きフィールド候補リストのリストの中でシグナリングされる。
【0088】
一般的なビデオコーデックでは、動き補償の後の予測残差は、最初に、変換カーネル(DCTのような)で変換され、次いで、コード化される。この理由は、しばしば残差間に依然として若干の相関が存在しており、変換が、多くの場合、この相関を低減し、より効率的なコーディングを提供するのに役立つことができるからである。
【0089】
ビデオコーディング規格および仕様は、エンコーダがコード化ピクチャをコード化スライスなどに分割することを可能にすることができる。インピクチャ予測は、スライス境界を越えるとディセーブルされ得る。したがって、スライスは、コード化ピクチャを独立してデコード可能なピースにスプリットする方法と見なすことができる。H.264/AVCおよびHEVCでは、スライス境界を越えるインピクチャ予測は無効にされ得る。したがって、スライスは、コード化ピクチャを独立してデコード可能なピースにスプリットする方法と見なされ得、それゆえに、スライスは、しばしば、伝送の基本ユニットと見なされ得る。多くの場合、エンコーダは、どのタイプのインピクチャ予測がスライス境界を越えて停止されたかをビットストリームで示すことができ、デコーダ動作は、例えば、どの予測ソースが利用可能であるかを結論するときにこの情報を考慮に入れる。例えば、隣り合うCUが異なるスライスに存在する場合、隣り合うCUからのサンプルは、イントラ予測には利用できないと見なされ得る。
【0090】
H.264/AVCまたはHEVCエンコーダの出力およびH.264/AVCまたはHEVCデコーダの入力の基本ユニットは、それぞれ、ネットワーク抽象化レイヤ(Network Abstraction Layer)(NAL)ユニットである。パケット指向ネットワークによるトランスポートまたは構造化ファイルへのストレージでは、NALユニットは、パケットまたは同様の構造にカプセル化され得る。バイトストリームフォーマットが、フレーミング構造を提供しない伝送またはストレージ環境のために、H.264/AVCおよびHEVCにおいて指定されている。バイトストリームフォーマットは、各NALユニットの前に開始コードを付けることによってNALユニットを互いに分離する。NALユニット境界の誤検出を避けるために、エンコーダは、バイト指向開始コードエミュレーション防止(byte-oriented start code emulation prevention)アルゴリズムを実行し、そのアルゴリズムは、開始コードが違ったふうに発生した場合にエミュレーション防止バイトをNALユニットペイロードに追加する。パケット指向システムとストリーム指向システムと間の直接のゲートウェイ動作を可能にするために、開始コードエミュレーション防止は、バイトストリームフォーマットが使用されているか否かにかかわらず常に行われ得る。NALユニットは、後に続くデータのタイプの表示と、必要に応じてエミュレーション防止バイトを割り込ませたRBSPの形態でそのデータを含むバイトとを含むシンタックス構造として定義され得る。ローバイトシーケンスペイロード(raw byte sequence payload)(RBSP)は、NALユニットにカプセル化された整数個のバイトを含むシンタックス構造として定義され得る。RBSPは、空であるか、またはシンタックス要素を含むデータビットと、それに続くRBSPストップビットと、さらにそれに続く0に等しい0個以上の後続のビットのストリングの形態を有する。
【0091】
NALユニットは、ヘッダとペイロードとからなる。H.264/AVCおよびHEVCでは、NALユニットヘッダは、NALユニットのタイプを示す。
【0092】
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は、スケーラビリティレイヤ識別子として理解され得る。
【0093】
NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと、非VCL NALユニットとに分類され得る。VCL NALユニットは、一般に、コード化されたスライスNALユニットである。HEVCでは、VCL NALユニットは、1つ以上のCUを表すシンタックス要素を含む。
【0094】
非VCL NALユニットは、例えば、以下のタイプ:シーケンスパラメータセット、ピクチャパラメータセット、補足エンハンスメント情報(supplemental enhancement information)(SEI)NALユニット、アクセスユニットデリミタ、シーケンス終了NALユニット(end of sequence NAL unit)、ビットストリーム終了NALユニット(end of bitstream NAL unit)、またはフィラーデータNALユニットのうちの1つとすることができる。パラメータセットが、デコードされたピクチャの再構築に必要とされることがあるが、他の非VCL NALユニットの多くは、デコードされたサンプル値の再構築に必要ではない。
【0095】
コード化ビデオシーケンスを通して不変のままであるパラメータは、シーケンスパラメータセットに含まれ得る。デコーディングプロセスによって必要とされ得るパラメータに加えて、シーケンスパラメータセットは、オプションとして、ビデオユーザビリティ情報(VUI)を含むことができ、ビデオユーザビリティ情報(VUI)は、バッファリング、ピクチャ出力タイミング、レンダリング、およびリソース予約にとって重要であり得るパラメータを含む。HEVCでは、シーケンスパラメータセットRBSPは、1つ以上のピクチャパラメータセットRBSPまたはバッファリング期間SEIメッセージを含む1つ以上のSEI NALユニットによって参照され得るパラメータを含む。ピクチャパラメータセットは、いくつかのコード化ピクチャで不変である可能性が高いパラメータを含む。ピクチャパラメータセットRBSPは、1つ以上のコード化ピクチャのコード化スライスNALユニットによって参照され得るパラメータを含むことができる。
【0096】
HEVCでは、ビデオパラメータセット(VPS)は、SPSにおいて見いだされるシンタックス要素のコンテンツによって決定される0個以上のコード化ビデオシーケンス全体に適用されるシンタックス要素を含むシンタックス構造として定義され得、当該SPSは、各スライスセグメントヘッダにおいて見いだされるシンタックス要素によって参照されるPPSにおいて見いだされるシンタックス要素によって参照される。
【0097】
ビデオパラメータセットRBSPは、1つ以上のシーケンスパラメータセットRBSPによって参照され得るパラメータを含むことができる。
【0098】
ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)の間の関係および階層は、以下のように記述され得る。VPSは、パラメータセット階層において、およびスケーラビリティおよび/または3Dビデオのコンテキストにおいて、SPSより1つ上のレベルに存在する。VPSは、コード化ビデオシーケンス全体におけるすべての(スケーラビリティまたはビュー)レイヤにわたるすべてのスライスに共通するパラメータを含むことができる。SPSは、コード化ビデオシーケンス全体における特定の(スケーラビリティまたはビュー)レイヤのすべてのスライスに共通するパラメータを含み、多数の(スケーラビリティまたはビュー)レイヤによって共有され得る。PPSは、特定のレイヤ表現(1つのアクセスユニットにおける1つのスケーラビリティまたはビューレイヤの表現)のすべてのスライスに共通であり、多数のレイヤ表現のすべてのスライスによって共有される可能性が高いパラメータを含む。
【0099】
VPSは、ビットストリームにおけるレイヤの依存性関係に関する情報、ならびにコード化ビデオシーケンス全体におけるすべての(スケーラビリティまたはビュー)レイヤにわたるすべてのスライスに適用可能である多くの他の情報を提供することができる。VPSは、2つの部分、すなわち、基本VPS(base VPS)およびVPS拡張(VPS extension)を含むと考えることができ、VPS拡張は、オプションとして存在することができる。
【0100】
帯域外伝送、シグナリング、またはストレージは、追加としてまたは代替として、アクセスまたはセッションネゴシエーションをしやすくすることなど、伝送エラーに対する耐性以外の目的のために使用され得る。例えば、ISOベースメディアファイルフォーマットに準拠するファイル内のトラックのサンプルエントリは、パラメータセットを含むことができ、一方、ビットストリームのコード化データは、ファイル内の他の場所または別のファイルに記憶される。ビットストリームに沿ったというフレーズ(例えば、ビットストリームに沿ったと示す)またはビットストリームのコード化ユニットに沿ったというフレーズ(例えば、コード化タイルに沿ったという表示)は、特許請求の範囲および記載の実施形態において、帯域外データが、それぞれ、ビットストリームまたはコード化ユニットに関連づけられるように、帯域外伝送、シグナリング、またはストレージを参照するために使用され得る。ビットストリームに沿ったデコーディングまたはビットストリームのコード化ユニットに沿ったデコーディングなどのフレーズは、ビットストリームまたはコード化ユニットにそれぞれ関連づけられる参照された帯域外データ(帯域外伝送、シグナリング、またはストレージから得られ得る)のデコーディングを参照することができる。
【0101】
SEI NALユニットは、1つ以上のSEIメッセージを含むことができ、それは、出力ピクチャのデコーディングには必要とされないが、ピクチャ出力タイミング、レンダリング、エラー検出、エラー隠蔽、およびリソース予約などの関連プロセスを支援することができる。
【0102】
コード化ピクチャは、ピクチャのコード化表現である。
【0103】
HEVCでは、コード化ピクチャは、ピクチャのコーディングツリーユニットのすべてを含むピクチャのコード化表現として定義され得る。HEVCでは、アクセスユニット(AU)は、NALユニットのセットとして定義され得、それらは、指定された分類ルールに従って互いに関連づけられ、デコーディング順において連続しており、nuh_layer_idの特定の値をもつ多くても1つのピクチャを含む。コード化ピクチャのVCL NALユニットを含むことに加えて、アクセスユニットは、さらに、非VCL NALユニットを含むことができる。前記指定された分類ルールは、例えば、同じ出力時間またはピクチャ出力カウント値をもつピクチャを同じアクセスユニットに関連づけることができる。
【0104】
ビットストリームは、1つ以上のコード化ビデオシーケンスを形成するコード化ピクチャおよび関連データの表現を形成するNALユニットストリームまたはバイトストリームの形態のビットのシーケンスとして定義され得る。第1のビットストリームは、その後に、同じファイル内または通信プロトコルの同じ接続内などの同じ論理チャンネル内で第2のビットストリームが続くことができる。エレメンタリストリーム(ビデオコーディングのコンテキストにおける)は、1つ以上のビットストリームのシーケンスとして定義され得る。第1のビットストリームの終了は、特定のNALユニットで示され得、それは、ビットストリーム終了(EOB)NALユニットと呼ばれることがあり、ビットストリームの最後のNALユニットである。HEVCおよびその現在のドラフト拡張では、EOB NALユニットは、0に等しいnuh_layer_idを有することが必要とされる。
【0105】
H.264/AVCでは、コード化ビデオシーケンスは、IDRアクセスユニット(それ自体を含む)から、次のIDRアクセスユニット(それ自体を含まない)まで、または、ビットストリームの終了までの、どちらか早く現れる方まで、デコーディング順における連続するアクセスユニットのシーケンスであると定義される。
【0106】
コード化ビデオシーケンス(CVS)は、例えば、独立してデコード可能であり、その後に、別のコード化ビデオシーケンスまたはビットストリームの終了が続くデコーディング順のコード化ピクチャのシーケンスとして定義され得る。
【0107】
HEVCでは、コード化ビデオシーケンスは、追加としてまたは代替として(上述の仕様に対して)、シーケンス終了(EOS)NALユニットと呼ばれることがある特定のNALユニットがビットストリームに現れ、0に等しいnuh_layer_idを有するときに終了するように規定されてもよい。
【0108】
ピクチャグループ(GOP)およびその特性は、以下のように定義され得る。GOPは、以前のピクチャがデコードされたかどうかにかかわらずデコードされ得る。オープンGOPは、デコーディングがオープンGOPの最初のイントラピクチャから開始する場合、出力順で最初のイントラピクチャより前のピクチャが正しくデコードできない可能性があるピクチャのグループである。言い換えれば、オープンGOPのピクチャは、以前のGOPに属するピクチャを参照し得る(インター予測において)。HEVCデコーダは、特定のNALユニットタイプ、CRA NALユニットタイプがコード化スライスに使用され得るので、オープンGOPを開始するイントラピクチャを認識することができる。クローズドGOPは、デコーディングがクローズドGOPの最初のイントラピクチャから開始するとき、すべてのピクチャが正しくデコードされ得るピクチャのグループである。言い換えれば、クローズドGOPのピクチャは、以前のGOPのピクチャを参照しない。H.264/AVCおよびHEVCでは、クローズドGOPは、IDRピクチャから開始することができる。HEVCでは、クローズドGOPは、BLA_W_RADLまたはBLA_N_LPピクチャから開始することもできる。オープンGOPコーディング構造は、潜在的に、参照ピクチャの選択におけるより大きい柔軟性のために、クローズドGOPコーディング構造と比較して圧縮がより効率的である。
【0109】
デコード化ピクチャバッファ(Decoded Picture Buffer)(DPB)が、エンコーダおよび/またはデコーダで使用され得る。デコードされたピクチャをバッファするのには、インター予測での参照のため、およびデコード化ピクチャを出力順に並べ替えるためという2つの理由がある。H.264/AVCおよびHEVCは、参照ピクチャマーキングと出力並べ替えの両方に多くの柔軟性を提供するので、参照ピクチャバッファリングおよび出力ピクチャバッファリングのための別個のバッファは、メモリリソースを浪費する可能性がある。したがって、DPBは、参照ピクチャと出力並べ替えとのための統一されたデコード化ピクチャバッファリングプロセスを含むことができる。デコード化ピクチャは、それがもはや参照として使用されず、出力に必要とされないとき、DPBから取り除かれてもよい。
【0110】
H.264/AVCおよびHEVCの多くのコーディングモードでは、インター予測のための参照ピクチャは、参照ピクチャリストへのインデクスで示される。インデクスは、可変長コーディングでコード化され得、それにより、通常、インデクスが小さいほど、対応するシンタックス要素の値が短くなる。H.264/AVCおよびHEVCでは、2つの参照ピクチャリスト(参照ピクチャリスト0および参照ピクチャリスト1)が、各双予測(bi-predictive)(B)スライスに対して生成され、1つの参照ピクチャリスト(参照ピクチャリスト0)が、各インターコード化(P)スライスに対して形成される。
【0111】
H.264/AVCおよびHEVCを含む多くのコーディング規格は、多数の参照ピクチャのうちのどれが特定のブロックのインター予測に使用されるかを示すために使用され得る参照ピクチャリストへの参照ピクチャインデクスを導出するためのデコーディングプロセスを有することができる。参照ピクチャインデクスは、いくつかのインターコーディングモードではエンコーダによってビットストリームにコード化されてもよく、または、例えば、いくつかの他のインターコーディングモードでは隣り合うブロックを使用して導出されてもよい(エンコーダおよびデコーダによって)。
【0112】
動きパラメータタイプまたは動き情報は、限定はしないが、以下のタイプのうちの1つ以上を含むことができる:
- 予測タイプ(例えば、イントラ予測、片予測(uni-prediction)、双予測)および/またはいくつかの参照ピクチャのインディケーション、
- インター(別名、時間)予測、インターレイヤ予測、インタービュー予測、ビュー合成予測(VSP)、およびインター成分予測などの予測方向のインディケーション(それらは、参照ピクチャごとにおよび/または予測タイプごとに示され得、実施形態によっては、インタービュー予測およびビュー合成予測が、一緒に、1つの予測方向として考えられ得る)、および/または
- 短期参照ピクチャおよび/または長期参照ピクチャおよび/またはインターレイヤ参照ピクチャなどの参照ピクチャタイプのインディケーション(例えば、参照ピクチャごとに表示され得る)、
- 参照ピクチャリストへの参照インデクスおよび/または参照ピクチャの他の識別子(例えば、参照ピクチャごとに示され得、そのタイプは、予測方向および/または参照ピクチャタイプに依存することができ、それは、参照インデクスが適用される参照ピクチャリストなどのような他の関連する情報が付随してもよい);
- 水平動きベクトル成分(例えば、予測ブロックごとにまたは参照インデクスごとになどで示され得る);
- 垂直動きベクトル成分(例えば、予測ブロックごとにまたは参照インデクスごとになどで示され得る);
- 1つ以上の動きベクトル予測プロセスにおける水平動きベクトル成分および/または垂直動きベクトル成分のスケーリングのために使用され得る、動きパラメータを含むかまたは動きパラメータに関連するピクチャとその参照ピクチャとの間のピクチャ順カウント差および/または相対的カメラ離隔などの1つ以上のパラメータ(ここで、前記1つ以上のパラメータは、例えば、各参照ピクチャごとにまたは参照インデクスごとになどで示され得る);
- 動きパラメータおよび/または動き情報が適用されるブロックの座標、例えば、ルマサンプルユニットでのブロックの左上サンプルの座標;
- 動きパラメータおよび/または動き情報が適用されるブロックの範囲(例えば、幅および高さ)。
【0113】
以前のビデオコーディング規格と比較して、多用途ビデオコーデック(Versatile Video Codec)(H.266/VVC)は、以下のものなどの複数の新しいコーディングツールを導入している:
・イントラ予測
- 広角度モード拡張を伴う67個のイントラモード
- ブロックサイズおよびモード依存4タップ補間フィルタ
- 位置依存イントラ予測組合せ(PDPC)
- クロス成分線形モデルイントラ予測(CCLM)
- マルチ参照ラインイントラ予測
- イントラサブパーティション
- 行列乗算を用いた重み付きイントラ予測
・インターピクチャ予測
- 空間的、時間的、履歴ベース、およびペアワイズ平均マージ候補を伴うブロック動きコピー
- アフィン動きインター予測
- サブブロックベース時間的動きベクトル予測
- 適応動きベクトル解像度
- 時間的動き予測のための8×8ブロックベースの動き圧縮
- ルマ成分のための8タップ補間フィルタと、クロマ成分のための4タップ補間フィルタとを用いた高精度(1/16ペル)動きベクトルストレージおよび動き補償
- 三角形パーティション
- イントラ予測およびインター予測の組合せ
- MVDによるマージ(Merge with MVD)(MMVD)
- 対称MVDコーディング
- 双方向オプティカルフロー
- デコーダ側動きベクトルリファインメント
- CUレベル重みを伴う双予測
・変換、量子化、および係数コーディング
- DCT2、DST7、およびDCT8を伴う多数の一次変換選択
- 低周波数ゾーンの二次変換
- インター予測残差のサブブロック変換
- 最大QPが51から63に増加した依存量子化(Dependent quantization)
- 符号データ隠蔽による変換係数コーディング
- 変換スキップ残差コーディング
・エントロピーコーディング
- 適応ダブルウィンドウ確率更新を伴う算術コーディングエンジン
・インループフィルタ
- インループリシェイピング
- 強力なより長いフィルタを伴うデブロッキングフィルタ
- サンプル適応オフセット
- 適応ループフィルタ
・スクリーンコンテンツコーディング:
- 参照領域制限による現在のピクチャの参照
・360度ビデオコーディング
- 水平ラップアラウンド動き補償
・高レベルシンタックスおよび並列処理
- 直接参照ピクチャリストシグナリングを用いた参照ピクチャ管理
- 矩形タイルグループを伴うタイルグループ
【0114】
スケーラブルビデオコーディングは、1つのビットストリームが、例えば、異なるビットレート、解像度、またはフレームレートで、コンテンツの多数の表現を含むことができるコーディング構造を指すことができる。これらの場合、レシーバは、その特性(例えば、ディスプレイデバイスに最もよく整合する解像度)に応じて所望の表現を抽出することができる。代替として、サーバまたはネットワーク要素が、例えば、ネットワーク特性またはレシーバの処理能力に応じて、レシーバに伝送されるべきビットストリームの一部を抽出することができる。意味のあるデコード化表現は、スケーラブルビットストリームの特定の部分のみをデコードすることによって作り出され得る。スケーラブルビットストリームは、一般に、利用可能な最も低い品質のビデオを提供する「ベースレイヤ」と、下位レイヤと一緒に受信およびデコードされたときビデオ品質を強化する1つ以上のエンハンスメントレイヤとからなる。エンハンスメントレイヤのコーディング効率を改善するために、そのレイヤのコード化表現は、一般に、下位レイヤに依存する。例えば、エンハンスメントレイヤの動きおよびモード情報は、下位レイヤから予測され得る。同様に、下位レイヤのピクセルデータは、エンハンスメントレイヤの予測を創り出すために使用され得る。
【0115】
いくつかのスケーラブルビデオコーディングスキームでは、ビデオ信号は、ベースレイヤおよび1つ以上のエンハンスメントレイヤにエンコードされ得る。エンハンスメントレイヤは、例えば、時間分解能(すなわち、フレームレート)、空間解像度、または単に別のレイヤもしくはその一部によって表されるビデオコンテンツの品質を強化することができる。各レイヤは、そのすべての従属レイヤと一緒に、例えば、特定の空間解像度、時間分解能、および品質レベルでのビデオ信号の1つの表現である。本文書では、スケーラブルレイヤを、その従属レイヤのすべてと一緒に、「スケーラブルレイヤ表現」と呼ぶ。スケーラブルレイヤ表現に対応するスケーラブルビットストリームの部分が、特定の忠実度でオリジナル信号の表現を作り出すために抽出およびデコードされ得る。
【0116】
スケーラビリティモードまたはスケーラビリティディメンション(scalability dimension)は、限定はしないが、以下のものを含むことができる:
- 品質スケーラビリティ:ベースレイヤピクチャは、エンハンスメントレイヤピクチャよりも低い品質でコード化され、それは、例えば、エンハンスメントレイヤよりもベースレイヤでは大きい量子化パラメータ値(すなわち、変換係数量子化に関してより大きい量子化ステップサイズ)を使用して達成され得る。品質スケーラビリティは、さらに、以下で説明するように、細粒または細粒度スケーラビリティ(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マルチレイヤ拡張を用いてコード化され得る。
【0117】
例えば、上記の空間フォーマット、ビット深度フォーマット、およびクロマフォーマットのスケーラビリティの場合、ベースレイヤ情報は、エンハンスメントレイヤをコード化して追加のビットレートオーバーヘッドを最小化するために使用され得る。
【0118】
スケーラビリティは、少なくとも2つの基本的な方法:スケーラブル表現の下位レイヤからのピクセル値またはシンタックスの予測を行うために新しいコーディングモードを導入することによって、または下位レイヤピクチャを上位レイヤの参照ピクチャバッファ(デコード化ピクチャバッファ、DPB)に配置することによって可能にされ得る。第1の手法は、より柔軟であり得、それにより、ほとんどの場合、より良好なコーディング効率を提供することができる。しかしながら、第2の参照フレームベースのスケーラビリティ手法は、利用可能なコーディング効率利得の大部分を依然として達成しながら、シングルレイヤコーデックへの最小の変更で非常に効率的に実施され得る。ある手法によれば、参照フレームベースのスケーラビリティコーデックは、すべてのレイヤで同じハードウェアまたはソフトウェア実施態様を利用することによって実施され、DPB管理にだけ外部手段で対処することができる。
【0119】
並列処理を利用できるようにするために、画像は、独立して、コード化可能およびデコード可能画像セグメント(スライスまたはタイル)にスプリットされ得る。スライスは、一般に、デフォルトのコーディングまたはデコーディング順に処理される特定の数の基本コーディングユニットから構成された画像セグメントを参照し、一方、タイルは、一般に、少なくともある程度個々のフレームとして処理される矩形画像領域として定義された画像セグメントを参照する。
【0120】
ビデオは、YUVまたはYCbCr色空間でエンコードされ得、その理由は、それが、人間の視覚系のいくつかの特性を反映することが分かっており、CbおよびCrチャンネルが表すクロミナンス忠実度に人間の知覚がそれほど敏感でないのでCbおよびCrチャンネルに対してより低い品質の表現の使用を可能にするからである。
【0121】
クロス成分線形モデル予測は、例えば、VVC/H.266ビデオコーデックで使用される。その変形では、クロス成分線形モデル予測を使用する3つのクロマ予測モードがある。それらのうちの1つは、クロマ予測ブロックのための予測モードとしてエンコーダによって選択され、ビットストリームでデコーダにシグナリングされ得る。3つのモードの間の差は、線形モデルのパラメータを生成するために使用される参照サンプルのセットである。モードのうちの1つは、予測ブロックの上のサンプルのみを使用し;モデルのうちの1つは、予測ブロックの左のサンプルのみを使用し;モードのうちの1つは、予測ブロックの上と左の両方のサンプルを使用する。パラメータ生成の複雑さを低く保つために、パラメータは、ブロック境界で利用可能な参照サンプルのサブセットのみを使用して計算される。
【0122】
VVC/H.266のクロス成分線形モデル予測は、以下の式を適用して、ルマサンプル値lumaValの予測の、予測されたクロマサンプル値chromaValへの予測(またはマッピング)を行う:
chromaVal=((lumaVal*a)>>k)+b
ここで、パラメータaおよびkは、線形モデルの勾配を決定し、bは、線形モデルのオフセット値を決定する。「>>」という表記は、2の冪乗による除算に対応する右へのビットシフト演算を表すために使用される。パラメータa、k、およびbは、利用可能な参照サンプルの決定されたセットを使用して決定される。
【0123】
線形モデルパラメータを計算するために線形回帰を使用する一例が、JVET(共同ビデオエキスパートチーム)寄稿JVET-D0110において与えられている。その実施態様では、ルマスペクトルの異なる範囲で動作する2つの線形モデルがあり得る。
【0124】
以下では、本開示のいくつかの例示の実施形態がより詳細に説明される。
【0125】
最初に、エンコーダのいくつかの動作が説明される。エンコーダは、エンコードされるべき画像のピクセルの輝度成分およびクロミナンス成分を受信する。画像は、より小さいブロックに分割されており、1つの画像の輝度成分およびクロミナンス成分は、ブロックベースで処理され得る。画像の、以前にエンコードされ、その後、デコードされたブロックまたはそれらの一部の情報は、エンコーダによって参照フレームメモリ(RFM)に記憶されており、例えば、後続の画像の予測で使用され得る。
【0126】
ルマ値をクロマ値にマッピングするための線形モデルが、デコードされたルマ値に基づいて予測クロマ値を生成するために使用され得る。この種のモデルは、勾配パラメータ「a」およびオフセットパラメータ「b」を使用して以下のように与えられ得る:
chromaVal=lumaVal*a+b
【0127】
エンコーダは、勾配パラメータ「a」およびオフセットパラメータ「b」をビットストリームにおいてエンコードすることができ、デコーダは、それらのパラメータをビットストリームから得ることができ、またはそれらのパラメータは、デコーダによって初期に知られていてもよく、それらのパラメータへの変更のみがデコーダにシグナリングされてもよい。
【0128】
図5aは、本開示の一実施形態によるマッピングを示している。各有効ルマサンプル値は、モデルを使用してクロマサンプル値にマッピングされ得る。この例では、ルマ値y0およびy1とクロマ値c0およびc1とを有する2つの点または2つのルマ-クロマペアp0およびp1が、マッピング関数の勾配パラメータaおよびオフセットパラメータbを定義する。整数演算を使用する実際の実施態様では、式は、勾配パラメータaのベーシス(basis)または精度を定義するスケーリングパラメータ「k」をさらに含むことができる:
chromaVal=((lumaVal*a)>>k)+b
【0129】
スケーリングパラメータkは、例えばエンコーダによって、モデルのパラメータを生成するプロセスの間に選択されてもよく、またはスケーリングパラメータkはまた、異なる方法でデコーダに示されてもよく、または固定されたkが、エンコーダが行うすべてのマッピングに使用されてもよい。パラメータkは、ルマ-クロマ値空間に到達するために、lumaValと勾配パラメータaとの間の乗算の結果を、ビット単位の右シフト演算>>を使用して、何ビットシフトダウンさせるかを決定している。言い換えれば、結果は、2kで除算される。
【0130】
一実施形態では、勾配パラメータaの更新項「u」は、エンコーダによって定義される。
【0131】
更新項uは、勾配パラメータaに対して決定されたベーシスまたは精度kとは異なるベーシスまたは精度「s」を有することができる。例えば、更新項uは、受信した更新項uを3ビットだけシフティングダウンする(すなわちそれを23=8で除算する)ことに対応する3のベーシスを有することができる。別の例として、更新項uは、受信した更新項uを4ビットだけシフティングダウンする(すなわちそれを24=16で除算する)ことに対応する4のベーシスを有することができる。このベーシスは、固定されてもよく、またはビットストリームでシグナリングされてもよく、または例えば予測もしくは処理されるべきブロックのサイズに応じてデコーダによって適応的に決定されてもよい。一例として、ベーシスsは、予測ブロックサイズが閾値を上回る場合、より細かい精度の更新項に対応してより大きくなり得、予測ブロックサイズが閾値を下回る場合、より小さくなり得る。
【0132】
更新項uを勾配パラメータaに加えるには、これらのパラメータの基底(base)が等しくされなければならない。これは、kがsよりも大きい場合、uの基底がkの基底と一致するまでuをビット単位でシフティングアップするか、kがsよりも小さい場合、uの基底がkの基底と一致するまでaをシフティングアップすることによって達成され得る。
【0133】
この例では、パラメータa’、k’、およびb’を有する更新された線形モデルは:
chromaVal=((lumaVal*a’)>>k’)+b’
として書かれ得る。
【0134】
更新された線形モデルパラメータは、例えば、以下の擬似コードを使用して計算され得る:
a,b,k,refLuma=estimateModel(参照サンプルのセット)
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’)
【0135】
オリジナルの線形モデルパラメータa、b、およびkは、例えば、H.266/VVC仕様で決定されたプロセスに従ってestimateModel関数によって、または線形回帰の使用などの代替の方法で計算され得る。オリジナルのパラメータa、b、およびkに加えて、追加の参照ルマパラメータyrが、決定され、更新オフセットパラメータb’を計算するときに参照値として使用される。yrパラメータは、様々な方法で決定され得る。例えば、2つのルマ-クロマペアが線形モデルを計算するために使用される場合、yrは、それらのペアのルマ値の平均に設定され得る。4つのルマ-クロマペアが線形モデルを計算するために使用される場合、yrは、例えば、それらのペアの最も大きいルマ値と最も小さいルマ値の平均に設定され得;またはyrは、それらのペアの2番目に大きいルマ値と3番目に大きいルマ値の平均に設定され得;またはyrは、それらの4つのペアのルマ値の平均に設定され得る。さらなる例として、yrは、参照ルマ-クロマペアもしくはルマ参照値の決定されたセット内のルマ値の平均、それらの値の中央値、またはそれらの値の最大値と最小値の平均として、あるいは他の方法で計算され得る。
【0136】
yrが計算される方法はまた、ビットストリームシグナリングに基づいて決定されてもよい。例えば、決定されたルマ参照サンプルの平均がyrとして使用されるかどうか、またはyrが参照ルマ値のセットの加重平均として計算されるかどうか、そしてそれらの重みが何であるかがシグナリングされてもよい。ブロック境界の外側から得られた従来の参照値を使用することに加えてまたはその代わりに、yrパラメータの決定は、予測ブロックまたは予測ユニットの内側の再構成されたルマ値を含むことができる。
【0137】
図5bは、更新されたマッピングを示している。更新項uは、マッピングが回転される制御点としてルマ値y
rの参照点p
rを使用して、マッピングの勾配に適用される。更新された勾配パラメータa’および更新されたオフセットパラメータb’が、ここでは、新しいマッピングを定義している。スケールパラメータkおよびsは、図を簡単にするために省略されている。
【0138】
更新項uは、2つの別個の成分:大きさおよび符号としてシグナリングされ得る。大きさは、更新項uの絶対値u、すなわち、|u|を示し、符号は、実際の値が正、すなわち、絶対値|u|に等しいか、または負、すなわち、-1*|u|に等しいかを示す。大きさは、バイナリ化され、算術コーディングを用いてコード化されるか、または可変長もしくは固定長コード語としてシグナリングされ得る。符号は、算術的にコード化されたバイナリコード語としてコード化され、ここで、シンボル0またはシンボル1のいずれかは、更新項がオリジナルまたは参照値「a」をゼロに向かって精緻化していることを示すために選択され;他方のシンボルは、参照値がゼロから離れるように精緻化されることを示すために選択される。2つの代替の選択が、以下のテーブル1およびテーブル2に要約されている。
【0139】
「ゼロに向かって」という表現は、参照値の実際の変化が、更新項が参照値に加えられたときに参照値の大きさ(絶対値)が減少するようなものであることを意味する。対応して、「ゼロから離れるように」という表現は、参照値の実際の変化が、更新項が参照値に加えられたときに参照値の大きさ(絶対値)が増加するようなものであるように、更新項が使用され得ることを意味する。
【0140】
テーブル1において、更新項uの符号は、シンタックス要素0が参照値をゼロに向かって精緻化する符号を表し、シンタックス要素1が参照値をゼロから離れるように精緻化する符号を表すとき、符号および参照値aを表すシンタックス要素に応じて示される。
【0141】
【0142】
例えば、参照値aが+4であり、更新項が-2であるとエンコーダが決定した場合、エンコーダは、符号を表すシンタックス要素を0に設定し、更新項の大きさ2とシンタックス要素0とをエンコードして、更新項が負であることをデコーダに示すことができる。別の例として、例えば、参照値aが-3であり、更新項が-2であるとエンコーダが決定した場合、エンコーダは、符号を表すシンタックス要素を1に設定し、更新項の大きさ2とシンタックス要素1とをエンコードして、更新項が負であることをデコーダに示すことができる。
【0143】
テーブル2において、更新項uの符号は、シンタックス要素1が参照値をゼロに向かって精緻化する符号を表し、シンタックス要素0が参照値をゼロから離れるように精緻化する符号を表すときに、符号および参照値aを表すシンタックス要素に応じて示される。
【0144】
【0145】
例えば、参照値aが+4であり、更新項が-2であるとエンコーダが決定した場合、エンコーダは、符号を表すシンタックス要素を1に設定することができる。別の例として、例えば、参照値aが-3であり、更新項が-2であるとエンコーダが決定した場合、エンコーダは、符号を表すシンタックス要素を0に設定することができる。
【0146】
ゼロが閾値の一例として使用されているが、同じ原理が、さらに、ゼロ以外の閾値で実施されてもよいことに留意されたい。一例として、閾値は2とすることができ、シンタックス要素は、参照値が、2に向かって変更されるべきか、または2から離れるように変更されるべきかを示すことになる。したがって、左端の列では、ゼロは、非ゼロの閾値、例えば、この例では2と置き換えられることになる。依然として、参照値と一緒に符号を表すシンタックス要素(更新項を加える前の)は、更新項の符号が正であるか負であるかを明らかにすることになる。
【0147】
シンタックス要素の値0は、第1の表示値と呼ばれることもあり、シンタックス要素の値1は、第2の表示値と呼ばれることもある。それぞれ、第1の表示値は0である必要はなく、第1の表示値は1である必要がなく、代わりに、他の値が、さらに、使用されてもよいことにも留意されたい。
【0148】
さらに、更新項uの大きさは、独立して、または参照値と組み合わせて、異なるゾーンを決定することができ、更新項の符号をコード化するための異なる方法が、そのようなゾーンのために選択されてもよい。例えば、更新項の大きさが閾値を下回る場合、符号は、固定長コーディングで示され得、そうでなければ、符号反転手法で示され得る。
【0149】
シンタックス要素がデコードされる時点に、デコーダが、参照値aを把握していないことがある。この場合、更新項uの初期値は、更新項の初期符号を表すデコード化シンタックス要素が1である場合には初期値を負に設定し、デコード化シンタックス要素が0である場合には初期値を正に設定することによって、または逆に、すなわち、更新項の初期符号を表すデコード化シンタックス要素が0である場合には初期値を負に設定し、デコード化シンタックス要素が1である場合には初期値を正に設定することによって、更新項uに対してデコードされ得る。次いで、更新項uの最終値は、参照値aが決定されると割り当てられ得る。この場合、更新項uの最終値は、参照値aの正の値に対してはデコードされた更新項の符号を反転させ、または参照値aの負の値およびゼロ値に対してはデコードされた更新項の符号を維持する以下の擬似コードを使用して、決定され得る:
uDec=decodeUpdateTerm(ビットストリーム)
a,b,k,refLuma=estimateModel(参照サンプルのセット)
u=a>0?-uDec:uDec
【0150】
これは、以下の擬似コードでも表され得る:
uDec=decodeUpdateTerm(ビットストリーム)
a,b,k,refLuma=estimateModel(参照サンプルのセット)
if a>0:
u=-uDec
else:
u=uDec
【0151】
言い換えれば、ビットストリームで受信されたエンコードされた更新項は、uDec(uの大きさ)を得るためにデコードされる。値a、b、k、およびrefLumaは、参照サンプルのセットに基づいて得られる。次いで、参照値aがゼロよりも大きい場合、更新項は、デコードされた更新項の反転値に設定される。参照値aが、ゼロよりも大きくない(すなわち、ゼロ以下である)場合、更新項は、それを反転させずに、デコードされた更新項の値に設定される。
【0152】
一実施形態では、勾配パラメータaの更新項「u」が、エンコーダによって定義され、エンコーダによってビットストリームにエンコードされ、デコーダによってビットストリームから受信され、ルマ-クロマ値ペアからなる参照点が決定され、パラメータa、k、およびbが、更新項および参照点に基づいてデコーダによって更新される。
【0153】
一実施形態では、勾配パラメータaの更新項uが、エンコーダによってビットストリームにエンコードされ、デコーダによってビットストリームから受信され、参照ルマ値が決定され、パラメータa、k、およびbが、更新項および参照ルマ値に基づいてデコーダによって更新される。
【0154】
一実施形態では、ビデオまたは画像のデコーダは、以下のステップを行う。
【0155】
初期更新項の符号および大きさがデコードされる。初期更新項の値は、初期更新項のデコードされた符号および大きさに基づいて決定される。ルマからクロマへのマッピング関数のパラメータの参照値が決定される。更新項の値は、参照パラメータの値がゼロよりも大きい場合、初期更新項の符号を反転させることによって決定され、またはそうでなければ符号は反転されない。ルマからクロマへのマッピング関数のパラメータの値は、参照値および更新項の値を使用して決定される。
【0156】
一実施形態では、更新項の値は、参照パラメータの値がゼロよりも大きいかまたはゼロに等しい場合、初期更新項の符号を反転させることによって決定される。
【0157】
一実施形態では、更新項の値は、参照パラメータの値がゼロよりも小さいかまたはゼロに等しい場合、初期更新項を変更しないままにすることによって決定される。
【0158】
一実施形態では、更新項の値は、参照パラメータの値がゼロよりも小さい場合、初期更新項を変更しないままにすることによって決定される。
【0159】
代替実施形態では、ビデオまたは画像のデコーダは、以下のステップを行う。
【0160】
ルマからクロマへのマッピング関数のパラメータの参照値が計算される。ルマからクロマへのマッピング関数のパラメータの更新項の大きさが決定される。更新項の符号を決定する際に使用されるべきバイナリシンタックス要素も決定される。更新項の符号は、参照値に基づいてバイナリシンタックス要素を解釈することによって決定される。ルマからクロマへのマッピング関数のパラメータの値は、参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して決定される。
【0161】
一実施形態では、更新項の符号は、参照値がゼロよりも大きく、符号を表すデコード化シンタックス要素が1である場合;または参照値がゼロ以下であり、符号を表すデコード化シンタックス要素が0である場合、正であると決定される。同様に、更新項の符号は、参照値がゼロよりも大きく、符号を表すデコード化シンタックス要素が0である場合;または参照値がゼロ以下であり、符号を表すデコード化シンタックス要素が1である場合、負であると決定される。
【0162】
一実施形態では、更新項の符号は、参照値がゼロよりも大きく、符号を表すデコード化シンタックス要素が1である場合;または参照値がゼロ以下であり、符号を表すデコード化シンタックス要素が0である場合、負であると決定される。同様に、更新項の符号は、参照値がゼロよりも大きく、符号を表すデコード化シンタックス要素が0である場合;または参照値がゼロ以下であり、符号を表すデコード化シンタックス要素が1である場合、正であると決定される。
【0163】
一実施形態では、符号は、更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が0である場合にはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が1である場合にはゼロから遠ざかるように参照値を精緻化するように、決定される。
【0164】
一実施形態では、符号は、更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が1である場合にはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が0である場合にはゼロから遠ざかるように参照値を精緻化するように、決定される。
【0165】
一実施形態では、ビデオまたは画像のエンコーダは、以下のステップを行う:
【0166】
ルマからクロマへのマッピング関数のパラメータの参照値が決定される。参照値の更新項の値が決定される。更新項の表示される値は、参照値がゼロよりも大きい場合、表示される値の符号が更新項の決定された値の符号と反対であるように決定される。更新項の表示される値の符号および大きさは、ビデオビットストリーム内にエンコードされる。
【0167】
一実施形態では、更新項の表示される値は、参照パラメータの値がゼロよりも大きいかまたはゼロに等しい場合、更新項の符号を反転させることによって決定される。
【0168】
一実施形態では、更新項の表示される値は、参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しい場合、更新項を変更しないままにすることによって決定される。
【0169】
一実施形態では、更新項の表示される値は、参照パラメータの値が、ゼロよりも小さい場合、更新項を変更しないままにすることによって決定される。
【0170】
一実施形態では、レート-歪み決定が、更新項の値を決定するために行われ、表示される更新項が、更新項の値に基づいて決定される。
【0171】
一実施形態では、レート-歪み決定が、表示される更新項の値を決定するために行われ、更新項が、表示される更新項の値に基づいて決定される。
【0172】
図5cは、決定された初期のマッピングラインの外側の制御点p
rを選択し、そのような点に関して勾配更新を行うことを示す。この場合、オフセットパラメータbは、それに応じて、更新されるべきである。例えば、p
rがマッピングラインの上の特定の量のクロマ値である場合、b’も同じ量だけ上げられるべきである。代替として、b’は、更新された勾配パラメータa’と制御点p
rの座標とを使用して計算され得る。これは、例えば、制御点p
rのルマ値y
rおよびクロマ値c
rを使用して、以下のように行われ得る:
b’=c
r-((a’*y
r)>>k’)
【0173】
図5dは、決定された初期マッピングラインの外側の制御点p
rを使用し、勾配を変更しないままオフセットパラメータbへの更新のみを実行することを示す。この代替では、勾配パラメータは、2つ以上のルマ-クロマ値ペア、または制御点に基づいて計算される。加えて、追加の制御点p
rが、参照ルマ-クロマペアの異なるまたは同じセットを使用することによって計算される。例えば、参照ルマ値のセットの平均ルマ値が、制御点p
rのルマ値y
rとして使用され得;参照クロマ値のセットの平均クロマ値が、制御点p
rのクロマ値c
rとして使用され得る。参照クロマ値のセットは、一例として、ブロックのすぐ上およびブロックのすぐ左の再構成された境界クロマサンプルのすべての値を含むことができる。参照ルマ値のセットは、クロマ解像度とルマ解像度とが異なる場合、例えば補間によって得られ得る対応するルマサンプル値とすることができる。境界クロマサンプルは、ブロックの真上および左のサンプルを含むことができるが、それらのアレイの拡張をさらに含むことができる。例えば、幅がwであるブロックの上の境界サンプルのセットは、ブロックに隣り合うw個のサンプルを含むことができ、またはブロックのすぐ上の第1のw個のサンプルの同じ行のw個の追加のサンプルをさらに含む2*w個のサンプルを含むことができる。次いで、更新されたオフセット値b’が、参照ルマ値y
rおよび参照クロマ値crを使用して以下のように計算され得る:
b’=cr-((a*y
r)>>k)
【0174】
有利には、勾配パラメータaを計算するための参照ルマおよびクロマ値のセットは、オフセットパラメータb’を生成するためのcrおよびyrパラメータを計算するための参照ルマおよびクロマ値のセットよりも小さくなるように選択される。この選択により、一次勾配パラメータaを計算する計算の複雑さが低く保たれ得るとともに、crおよびyrの比較的単純な計算が、例えば、crを作り出すために参照クロマ値を平均化することおよびyrを作り出すために参照ルマ値を平均化することによりcrおよびcyを決定することによって、より正確に実行され得る。
【0175】
線形モデルのバイアス項b’を計算するための参照ルマおよびクロマ値のセットは、有利には、線形モデルの勾配パラメータaを計算するために使用される参照ルマおよびクロマ値のスーパーセットとなるように選択され得る。これは、既に生成またはフェッチされた参照サンプルがバイアス項b’を決定する際に使用され得るので、線形モデルの決定に関連する計算の複雑さを低下させ、一方、参照サンプルのより大きいセットがそれを計算するために利用可能にされるので、オフセットパラメータb’の精度および安定性を改善することができる。
【0176】
図6aから
図6cは、ブロックBの上の参照サンプルRに関する様々な選択を示す。
図6aは、ブロックのすぐ上に選択された参照サンプルのセットを示す。
図6bの例は、ブロックの右上に追加のサンプルをさらに含むように参照サンプルのセットを延ばしたものを示し、
図6cは、1つのサンプルだけ左に参照サンプルアレイを延ばしたものを示す。当然、さらに、例えば2*w+1個のサンプルをセットに含む他の選択が行われてもよい。同様の選択が、ブロックBの左側で行われてもよく、さらに、ブロックの左および上からのサンプルまたはサンプルアレイの組合せが使用されてもよい。
【0177】
一実施形態では、ビデオまたは画像デコーダは、
図7aの流れ図に関連して以下のステップを行う:
【0178】
デコーダは、初期更新項の符号および大きさをデコードする(702)。デコーダは、初期更新項のデコードされた符号および大きさに基づいて初期更新項の値を決定する(704)。デコーダは、ルマからクロマへのマッピング関数のパラメータの参照値を決定し(706)、デコーダは、参照パラメータの値がゼロよりも大きい場合、初期更新項の符号を反転させることによって更新項の値を決定する(708)。デコーダは、さらに、参照値と更新項の値とを使用して、ルマからクロマへのマッピング関数のパラメータの値を決定する(710)。
【0179】
一実施形態では、ビデオまたは画像デコーダは、
図7bの流れ図に関連して以下のステップを行う:
【0180】
デコーダは、ルマからクロマへのマッピング関数のパラメータの少なくとも参照値を計算する(722)。次いで、デコーダは、ルマからクロマへのマッピング関数のパラメータの更新項uの大きさをデコードする(724)。デコーダはまた、更新項の符号を決定する際に使用されるべきバイナリシンタックス要素をデコードする(726)。デコーダは、参照値に基づいてバイナリシンタックス要素を解釈することによって更新項の符号を決定する(728)。デコーダはまた、参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、ルマからクロマへのマッピング関数のパラメータの値を決定する(730)。
【0181】
ある色成分の値から他の色成分の値へのマッピングを定義するパラメータの計算は、様々な方法で行われ得る。例えば、モデルが参照サンプルのセットに対して創り出す可能性がある誤差を最小化するために、線形回帰または他の統計的方法が使用され得る。参照サンプルは、予測されるブロックの境界から、またはデータの別のセットを使用して得られ得る。多数の候補参照セットがある場合もあり、エンコーダはそこから1つを選び、その選択をデコーダにビットストリームで示す。境界サンプルのサブセットまたは他のサンプルセットが、さらに、使用されてもよい。そのような場合、例えば、利用可能な参照サンプルから選択された4つのサンプルペアがあり得、各サンプルペアは、ルマサンプルおよび対応するクロマサンプルからなる。4つのペアのうちの最も低いルマ値をもつ2つのペアが、第1のセットを形成することができ、最も高いルマ値をもつ2つのペアが、第2のセットを形成することができる。第1のセットのルマ値が、第1の平均ルマ値を形成するために平均化され得、第1のセットのクロマ値が、第1の平均クロマ値を形成するために平均化され得る。同様に、第2のセットのルマ値が、第2の平均ルマ値を形成するために平均化され得、第2のセットのクロマ値が、第2の平均クロマ値を形成するために平均化され得る。線形モデルパラメータは、H.266/VVC規格におけるように、2つの平均ルマ値および2つの平均クロマ値から計算され得る。
【0182】
勾配値に対する更新項は、様々な方法で決定することができる。例えば、ビデオエンコーダは、勾配値に対する適切な更新項を決定するためにレート歪最適化技法を使用することができる。ビデオデコーダは、勾配値に対する更新項を、それをビットストリームからパーシングし、それを予測することによって、または予測およびビットストリームシグナリングを組み合わせることによって、または他の手段によって決定することができる。
【0183】
勾配値に対する更新項は、計算された勾配値aと同じベーシスにスケーリングされることが可能であり、または計算された勾配値aは、更新項と同じベーシスにスケーリングされることが可能であり、または両方の値は、第3のベーシスにスケーリングされることが可能であり、またはスケーリングは省略されることが可能である。第3のベーシスは、例えば、更新項および勾配パラメータに使用されるベーシスの許容最大値によって決定され得る。
【0184】
更新項は、特定の範囲に限定され得る。例えば、更新項は、-3から3、または-4から4、または-NからN、またはNからMの範囲の整数値を有するように定義され得る。ここで、NおよびMは、定数とすることができ、または様々な手段によって決定され得る。例えば、それらは、予測、コード化、またはデコードされるブロックの特性、例えばブロックのサイズなどに基づいて決定され得る。
【0185】
一実施形態では、ビットストリームでシグナリングされ、デコーダによってデコードされ得る更新項の所定のセットが存在する。
【0186】
一実施形態では、ビットストリームでシグナリングされ、デコーダによってデコードされ得る更新項のセットは、サンプルのブロックの特性、例えばブロックのサイズなどに依存する。
【0187】
一実施形態では、線形モードにおけるオフセット項b’は:b’=cr-((a*yr)>>k)として計算され、ここで、crは、ブロックの上の境界クロマ値の平均であり、yrは、ブロックの上の境界ルマ値の平均であり、aは、勾配パラメータであり、kは、シフティングパラメータである。
【0188】
一実施形態では、線形モードにおけるオフセット項b’は:b’=cr-((a*yr)>>k)として計算され、ここで、crは、ブロックの左の境界クロマ値の平均であり、yrは、ブロックの左の境界ルマ値の平均であり、aは、勾配パラメータであり、kは、シフティングパラメータである。
【0189】
一実施形態では、線形モードにおけるオフセット項b’は:b’=cr-((a*yr)>>k)として計算され、ここで、crは、ブロックの左および上の境界クロマ値の平均であり、yrは、ブロックの左および上の境界ルマ値の平均であり、aは、勾配パラメータであり、kは、シフティングパラメータである。
【0190】
一実施形態では、オフセットパラメータb’を決定するためにcrおよびyrパラメータを計算するための参照ルマおよびクロマ値のセットは、勾配パラメータaを計算するための参照ルマおよびクロマ値のセットよりも大きくなるように選択される。
【0191】
一実施形態では、オフセットパラメータb’を決定するためにcrおよびyrパラメータを計算するための参照ルマおよびクロマ値のセットは、勾配パラメータaを計算するための参照ルマおよびクロマ値のセットのスーパーセットとなるように選択される。
【0192】
参照ルマ値または参照点の決定は、様々な方法で行われ得る。例えば、参照ルマ値は、線形モデルの勾配パラメータを決定する際に使用される2つのルマ値の平均とすることができ;またはそのようなルマ値の加重平均とすることができ;または他の方法で決定され得る。
【0193】
ルマ値からクロマ値へのマッピングを形成する多数の線形モデルが存在し得る。例えば、ルマ値が閾値を下回る場合、第1の線形モデルが使用され得、ルマ値が閾値以上である場合、第2のモデルが使用され得る。そのような場合、線形モデルの各々は、ビットストリームシグナリングに基づいて、それらの独立した更新項を受信することができる。さらに、線形モデルの特定のサブセットのみが、シグナリングされた1つ以上の更新項を使用して更新されることがシグナリングされ得る。さらに、同じ更新項が、ビットストリームシグナリングまたは他の手段に基づいて多数のモデルで使用されるように決定され得る。そのような場合、シグナリングされた更新項を様々なモデルに適用する方法がさらに決定され得る。例えば、同じ更新項が2つのモデルに使用され得、または更新項の負のバージョンが一方のモデルに使用され得、更新項の正のバージョンが他方のモデルに使用され得る。
【0194】
マッピングプロセスおよびパラメータ更新プロセスは、ここでは、入力としてルマ値を有し、出力としてクロマ値を有するとして説明されているが、入力および出力は、そのような色成分に制限されない。例えば、同じプロセスが、入力としてのCbチャンネルなどの1つのクロマチャンネルと、出力としてのCrチャンネルなどの別のクロマチャンネルとを有するクロマチャンネル間に適用され得る。さらなる例として、入力チャンネルは、ルマチャンネルとすることができ、出力チャンネルは、例えば、深度、距離、視差、透明度、または他のタイプの値からなる補助情報チャンネルとすることができる。
【0195】
一実施形態によれば、クロマブロックはまた、RGB色空間の赤、緑、または青の色成分のうちのいずれかに対応することができる。
【0196】
一態様による装置は、第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算するための手段であり、少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、手段と;勾配パラメータの更新項を決定するための手段と;更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成する手段と;第1の色成分の参照値を決定するための手段と;第1の色成分の参照値と、更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算するための手段とを備える。
【0197】
さらなる態様として、装置であって:少なくとも1つのプロセッサと少なくとも1つのメモリとを備える装置が提供され、前記少なくとも1つのメモリにはコードが記憶され、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、少なくとも:第1の色成分から第2の色成分へのマッピングを定義する少なくとも2つのパラメータを計算することであり、少なくとも2つのパラメータが少なくとも勾配パラメータおよびオフセットパラメータを含む、ことと;勾配パラメータの更新項を決定することと;更新項を勾配パラメータの値に加えることによって更新項を勾配パラメータに適用して、更新された勾配パラメータを生成することと;第1の色成分の参照値を決定することと;第1の色成分の参照値と、更新された勾配パラメータとに基づいて、更新されたオフセットパラメータを計算することとを行わせる。
【0198】
そのような装置は、例えば、実施形態を実施するための
図1、
図2、
図4a、および
図4bのうちのいずれかに開示された機能ユニットを備えることができる。
【0199】
そのような装置は、前記少なくとも1つのメモリに記憶されたコードをさらに含み、コードは、前記少なくとも1つのプロセッサによって実行されると、装置に、本明細書で開示される実施形態のうちの1つ以上を行わせる。
【0200】
図8は、様々な実施形態が実施され得る例示のマルチメディア通信システムのグラフィカル表現である。データソース1510は、アナログフォーマット、非圧縮(uncompressed)デジタルフォーマット、もしくは圧縮デジタルフォーマット、またはこれらのフォーマットの任意の組合せでソース信号を提供する。エンコーダ1520は、ソース信号のデータフォーマット変換および/またはフィルタリングなどの前処理を含むことができ、またはそれと接続され得る。エンコーダ1520は、ソース信号をコード化メディアビットストリームにエンコードする。デコードされるべきビットストリームは、事実上任意のタイプのネットワーク内に位置するリモートデバイスから直接または間接的に受信され得ることに留意されたい。追加として、ビットストリームは、ローカルハードウェアまたはソフトウェアから受信され得る。エンコーダ1520は、オーディオおよびビデオなどの2つ以上のメディアタイプをエンコードすることができる可能性があり、または2つ以上のエンコーダ1520が、異なるメディアタイプのソース信号をコード化するために必要とされ得る。エンコーダ1520はまた、グラフィックスおよびテキストなどの合成的に作り出された入力を得ることができ、または合成媒体のコード化ビットストリームを作り出すことができる可能性がある。以下では、1つのメディアタイプの1つのコード化メディアビットストリームの処理のみが、説明を簡単にするために考慮される。しかしながら、一般に、リアルタイムブロードキャストサービスは、いくつかのストリーム(一般に、少なくとも1つのオーディオ、ビデオ、およびテキストサブタイトルストリーム)を含むことに留意されたい。システムは多くのエンコーダを含むことができるが、図では、一般性を欠くことなく説明を簡単にするために、1つのエンコーダ1520のみが示されていることにも留意されたい。本明細書に含まれるテキストおよび例はエンコーディングプロセスを具体的に説明し得るが、当業者は同じ概念および原理が、対応するデコーディングプロセスにも適用され、逆の場合も同じであることを理解するはずであることをさらに理解されたい。
【0201】
コード化メディアビットストリームは、ストレージ1530に転送され得る。ストレージ1530は、コード化メディアビットストリームを記憶するための任意のタイプの大容量メモリを含むことができる。ストレージ1530内のコード化メディアビットストリームのフォーマットは、基本的な自己完結型ビットストリームフォーマット(self-contained bitstream format)とすることができ、または1つ以上のコード化メディアビットストリームは、コンテナファイルにカプセル化され得、またはコード化メディアビットストリームは、DASH(もしくは同様のストリーミングシステム)に適したセグメントフォーマットにカプセル化され、セグメントのシーケンスとして記憶され得る。1つ以上のメディアビットストリームがコンテナファイルにカプセル化される場合、ファイル発生器(図示せず)を使用して、1つ以上のメディアビットストリームをファイルに記憶し、ファイルフォーマットメタデータを創り出すことができ、ファイルフォーマットメタデータも、ファイルに記憶され得る。エンコーダ1520またはストレージ1530は、ファイル発生器を備えることができ、あるいはファイル発生器は、エンコーダ1520またはストレージ1530のいずれかに動作可能に取り付けられる。いくつかのシステムは、「ライブで」動作し、すなわち、ストレージを省略し、コード化メディアビットストリームをエンコーダ1520からセンダ1540に直接転送する。次いで、コード化メディアビットストリームは、必要に応じて、サーバとも呼ばれるセンダ1540に転送され得る。伝送に使用されるフォーマットは、基本的な自己完結型ビットストリームフォーマット、パケットストリームフォーマット、DASH(もしくは同様のストリーミングシステム)に適するセグメントフォーマットとすることができ、または1つ以上のコード化メディアビットストリームは、コンテナファイルにカプセル化され得る。エンコーダ1520、ストレージ1530、およびサーバ1540は、同じ物理デバイスに存在してもよく、または別個のデバイスに含まれてもよい。エンコーダ1520およびサーバ1540は、ライブリアルタイムコンテンツで動作することができ、その場合、コード化メディアビットストリームは、一般に、恒久的に記憶されるのではなく、むしろ、コンテンツエンコーダ1520および/またはサーバ1540に短期間バッファされて、処理遅延、転送遅延、およびコード化メディアビットレートにおける変動を平滑化する。
【0202】
サーバ1540は、通信プロトコルスタックを使用してコード化メディアビットストリームを送る。スタックは、限定はしないが、リアルタイムトランスポートプロトコル(RTP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスファープロトコル(HTTP)、伝送制御プロトコル(TCP)、およびインターネットプロトコル(IP)のうちの1つ以上を含むことができる。通信プロトコルスタックがパケット指向である場合、サーバ1540は、コード化メディアビットストリームをパケットにカプセル化する。例えば、RTPが使用されるとき、サーバ1540は、コード化メディアビットストリームを、RTPペイロードフォーマットに従ってRTPパケット内にカプセル化する。一般に、各メディアタイプは、専用のRTPペイロードフォーマットを有する。システムは2つ以上のサーバ1540を含むことができるが、簡単にするために、以下の説明は1つのサーバ1540のみを考慮することに再度留意されたい。
【0203】
メディアコンテンツが、ストレージ1530のためにまたはデータをセンダ1540に入力するためにコンテナファイルにカプセル化される場合、センダ1540は、「センディング(sending)ファイルパーサ」(図示せず)を含むことができ、またはそれに動作可能にアタッチされ得る。特に、コンテナファイルがそのように伝送されるのではなく、含まれるコード化メディアビットストリームのうちの少なくとも1つが、通信プロトコル上でのトランスポートのためにカプセル化される場合、センディングファイルパーサは、通信プロトコルを介して搬送されるべきコード化メディアビットストリームの適切な部分の位置を特定する。センディングファイルパーサはまた、パケットヘッダおよびペイロードなどの通信プロトコルの正しいフォーマットを創り出すのに役立つことができる。マルチメディアコンテナファイルは、含まれるメディアビットストリームのうちの少なくとも1つを通信プロトコルに基づいてカプセル化するために、ISOBMFFにおけるヒントトラックなどのカプセル化命令を含むことができる。
【0204】
サーバ1540は、例えば、CDN、インターネット、および/または1つ以上のアクセスネットワークの組合せとすることができる通信ネットワークを通してゲートウェイ1550に接続される場合もされない場合もある。ゲートウェイは、さらにまたは代替として、ミドルボックスと呼ばれることがある。DASHでは、ゲートウェイは、エッジサーバ(CDNの)またはウェブプロキシとすることができる。システムは、一般に、任意の数のゲートウェイなどを含むことができるが、簡単にするために、以下の説明は、1つのゲートウェイ1550のみを考慮することに留意されたい。ゲートウェイ1550は、ある通信プロトコルスタックにしたがったパケットストリームの別の通信プロトコルスタックへの変換、データストリームのマージングおよびフォーキング、ならびに支配的なダウンリンクネットワーク状態にしたがった転送ストリームのビットレートの制御などのダウンリンクおよび/またはレシーバ能力に応じたデータストリームの操作などの様々なタイプの機能を行うことができる。ゲートウェイ1550は、様々な実施形態においてサーバエンティティとすることができる。
【0205】
システムは、一般に、伝送された信号を受信し、復調し、コード化メディアビットストリーム内にデカプセル化することができる1つ以上のレシーバ1560を含む。コード化メディアビットストリームは、記録ストレージ1570に転送され得る。記録ストレージ1570は、コード化メディアビットストリームを記憶するために任意のタイプの大容量メモリを含むことができる。記録ストレージ1570は、代替としてまたは付加的に、ランダムアクセスメモリなどの計算メモリ(computation memory)を含むことができる。記録ストレージ1570内のコード化メディアビットストリームのフォーマットは、基本的な自己完結型ビットストリームフォーマットとすることができ、または1つ以上のコード化メディアビットストリームは、コンテナファイル内にカプセル化され得る。互いに関連するオーディオストリームおよびビデオストリームなどの多数のコード化メディアビットストリームが存在する場合、コンテナファイルが、一般に、使用され、レシーバ1560は、入力ストリームからコンテナファイルを作り出すコンテナファイル発生器を備えるかまたはそれに取り付けられる。いくつかのシステムは、「ライブで」動作し、すなわち、記録ストレージ1570を省略し、コード化メディアビットストリームをレシーバ1560からデコーダ1580に直接転送する。いくつかのシステムでは、記録されたストリームのうちの最新の部分のみ、例えば、記録されたストリームの最新の10分の抜粋のみが、記録ストレージ1570に維持され、一方、それより前の記録データは、記録ストレージ1570から廃棄される。
【0206】
コード化メディアビットストリームは、記録ストレージ1570からデコーダ1580に転送され得る。互いに関連し、コンテナファイル内にカプセル化されたオーディオストリームおよびビデオストリームなどの多くのコード化メディアビットストリームが存在するか、または単一のメディアビットストリームが、例えば、より容易なアクセスのためにコンテナファイルにカプセル化される場合、ファイルパーサ(図示せず)が、コンテナファイルから各コード化メディアビットストリームをデカプセル化するために使用される。記録ストレージ1570またはデコーダ1580は、ファイルパーサを含むことができ、またはファイルパーサは、記録ストレージ1570またはデコーダ1580のいずれかに取り付けられる。システムは多くのデコーダを含むことができるが、ここでは、一般性を欠くことなく説明を簡単にするために1つのデコーダ1570のみが論じられていることにも留意されたい。
【0207】
コード化メディアビットストリームは、デコーダ1570によってさらに処理され得、デコーダの出力は、1つ以上の非圧縮メディアストリームである。最後に、レンダラ1590は、例えば、ラウドスピーカまたはディスプレイを用いて非圧縮メディアストリームを再生することができる。レシーバ1560、記録ストレージ1570、デコーダ1570、およびレンダラ1590は、同じ物理デバイスに存在してもよく、または別個のデバイスに含まれてもよい。
【0208】
センダ1540および/またはゲートウェイ1550は、例えば、360度のビデオコンテンツの異なるビューポート間の切替え、ビュー切替え、ビットレート適合、および/または高速起動のために、異なる表現間の切替えを行うように構成され得、および/またはセンダ1540および/またはゲートウェイ1550は、伝送される表現を選択するように構成され得る。異なる表現間の切替えは、レシーバ1560の要求に、またはビットストリームが搬送されるネットワークのスループットなどの支配的な条件に応答することなどの多くの理由で生じ得る。言い換えれば、レシーバ1560は、表現間の切替えを開始することができる。レシーバからの要求は、例えば、以前と異なる表現によるセグメントまたはサブセグメントの要求、伝送されるスケーラビリティレイヤおよび/またはサブレイヤの変更の要求、または以前のものと比較して異なる能力を有するレンダリングデバイスの変更であり得る。セグメントの要求は、HTTP GET要求であり得る。サブセグメントの要求は、バイト範囲を含むHTTP GET要求であり得る。追加としてまたは代替として、ビットレート調節またはビットレート適合は、例えば、ストリーミングサービスにおいていわゆる高速起動を提供するために使用され得、その場合、伝送されるストリームのビットレートは、プレイバックを直ちに開始するために、および時折のパケット遅延および/または再伝送を許容するバッファ占有レベルを達成するために、ストリーミングを開始した、またはランダムアクセスした後のチャンネルビットレートよりも低い。ビットレート適合は、様々な順序で生じる多数の表現またはレイヤアップ切替えおよび表現またはレイヤダウン切替え動作を含むことができる。
【0209】
デコーダ1580は、例えば、360度ビデオコンテンツの異なるビューポート間の切替え、ビュー切替え、ビットレート適合、および/または高速起動のために、異なる表現間の切替えを行うように構成され得、および/またはデコーダ1580は、伝送された表現を選択するように構成され得る。異なる表現間の切替えは、より高速のデコーディング動作を達成すること、または伝送されたビットストリームを、例えばビットレートに関して、ビットストリームが搬送されるネットワークのスループットなどの支配的な条件に適合させることなどの多くの理由で生じ得る。例えば、デコーダ1580を含むデバイスがマルチタスキングであり、ビデオビットストリームのデコーディング以外の目的でコンピューティングリソースを使用する場合、より速いデコーディング動作が必要とされ得る。別の例では、コンテンツが通常の再生速度よりも速いペースで、例えば、従来のリアルタイムプレイバックレートよりも2倍または3倍速くプレイバックされるとき、より速いデコーディング動作が必要とされ得る。
【0210】
上述において、いくつかの実施形態が、HEVCおよび/またはVVCの用語を参照しておよび/またはそれを使用して説明された。実施形態は、同様に、任意のビデオエンコーダおよび/またはビデオデコーダを用いて同様に実現され得ることが理解される必要がある。
【0211】
上述において、例示の実施形態がエンコーダを参照して説明されている場合、結果として生じるビットストリームおよびデコーダは、対応する要素をそれらの中に有することができることが理解される必要がある。同様に、例示の実施形態がデコーダを参照して説明されている場合、エンコーダは、デコーダによってデコードされるべきビットストリームを生成するための構造および/またはコンピュータプログラムを有することができることが理解される必要がある。例えば、いくつかの実施形態は、エンコーディングの一部として予測ブロックを生成することに関連して説明されている。実施形態は、デコーディングの一部として予測ブロックを生成することによって同様に実現され得るが、水平オフセットおよび垂直オフセットなどのコーディングパラメータが、エンコーダによって決定されるよりもビットストリームからデコードされるという違いを伴う。
【0212】
上述の本発明の実施形態は、関連するプロセスの理解を助けるために、別個のエンコーダ装置およびデコーダ装置の点からコーデックを説明している。しかしながら、装置、構造、および動作は、単一のエンコーダ-デコーダ装置/構造/動作として実装されてもよいことが理解されよう。さらに、コーダおよびデコーダは、一部またはすべての共通要素を共有し得ることが可能である。
【0213】
上述の例は、電子デバイス内のコーデック内で動作する本発明の実施形態を説明しているが、特許請求の範囲において定義される本発明は、任意のビデオコーデックの一部として実装され得ることが理解されよう。したがって、例えば、本発明の実施形態は、固定または有線通信経路を通してビデオコーディングを実装することができるビデオコーデックで実装され得る。
【0214】
したがって、ユーザ機器は、上述の本発明の実施形態で説明されたものなどのビデオコーデックを含むことができる。ユーザ機器という用語は、携帯電話、ポータブルデータ処理デバイス、または携帯ウェブブラウザなどの任意の適切なタイプの無線ユーザ機器を包含するように意図されることが理解されよう。
【0215】
さらに、公衆陸上移動通信網(PLMN)の要素は、上述のビデオコーデックをさらに含むことができる。
【0216】
一般に、本発明の様々な実施形態は、ハードウェアまたは専用回路、ソフトウェア、論理、あるいはそれらの任意の組合せで実装され得る。例えば、ある態様は、ハードウェアで実施され得、一方、他の態様は、コントローラ、マイクロプロセッサ、または他のコンピューティングデバイスによって実行され得るファームウェアまたはソフトウェアで実施され得るが、本発明はそれらに限定されない。本発明の様々な態様は、ブロック図、流れ図として、または他の図的表現を使用して図示および説明され得るが、本明細書に記載されたこれらのブロック、装置、システム、技法、または方法は、非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、専用回路もしくは論理、汎用ハードウェアもしくはコントローラ、または他のコンピューティングデバイス、あるいはそれらの組合せで実施され得ることが十分に理解されよう。
【0217】
本発明の実施形態は、プロセッサエンティティ内などの、携帯デバイスのデータプロセッサによって実行可能なコンピュータソフトウェアによって、またはハードウェアによって、またはソフトウェアとハードウェアの組合せによって実装され得る。さらに、これに関して、図におけるような論理フローの任意のブロックは、プログラムステップ、または相互接続された論理回路、ブロック、および機能、またはプログラムステップと論理回路、ブロックと機能の組合せを表すことができることに留意されたい。ソフトウェアは、メモリチップ、またはプロセッサ内に実装されたメモリブロックなどの物理媒体、ハードディスクまたはフロッピーディスクなどの磁気媒体、ならびに例えばDVDおよびそのデータ変形のCDなどの光学媒体に記憶され得る。
【0218】
メモリは、ローカル技術環境に適する任意のタイプのものとすることができ、半導体ベースのメモリデバイス、磁気メモリデバイスとシステム、光メモリデバイスとシステム、固定メモリとリムーバブルメモリなどの任意の適切なデータストレージ技術を使用して実装されてもよい。データプロセッサは、ローカル技術環境に適する任意のタイプのものとすることができ、非限定の例として、汎用コンピュータ、専用コンピュータ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、およびマルチコアプロセッサアーキテクチャに基づくプロセッサのうちの1つ以上を含むことができる。
【0219】
本発明の実施形態は、集積回路モジュールなどの様々な構成要素で実践され得る。集積回路の設計は、概して、高度に自動化されたプロセスである。論理レベル設計を、半導体基板にエッチングおよび形成される準備ができている半導体回路設計に変換するために、複雑で強力なソフトウェアツールが利用可能である。
【0220】
カリフォルニア州マウンテンビューのSynopsys, Inc.およびカリフォルニア州サンノゼのCadence Designによって提供されるものなどのプログラムは、よく確立された設計ルールならびに事前に記憶された設計モジュールのライブラリを使用して、導体を自動的にルーティングし、半導体チップ上に構成要素を配置する。半導体回路の設計が完了すると、標準的な電子フォーマット(例えば、Opus、GDSII、など)における、結果として生じた設計は、製造のために半導体製造設備または「ファブ」に送信され得る。
【0221】
前述の説明は、例示的および非限定的な例として、本開示の例示的な実施形態の完全で有益な説明を提供している。しかしながら、添付の図面および添付の特許請求の範囲とともに読むと、前述の説明を考慮して、様々な変更および改変が当業者には明らかになるであろう。しかしながら、本開示の教示のすべてのそのようなおよび類似の変更は、依然として、本開示の範囲内に入ることになる。
【手続補正書】
【提出日】2024-09-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し、
更新項の初期大きさをデコードし、
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードし、
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定し、
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定する
ための手段を備える装置。
【請求項2】
符号を決定するための前記手段が、
参照値を閾値と比較し、
参照値が閾値よりも大きく、シンタックス要素が第1の表示値を含むか、もしくは参照値が閾値以下であり、シンタックス要素が第1の表示値と異なる第2の表示値を含むとき、更新項の符号を正であると決定する、または更新項の符号を負であると決定する
ための手段を備える、請求項1に記載の装置。
【請求項3】
第1の表示値が0であり、第2の表示値が1であるか、または第1の表示値が1であり、第2の表示値が0である、請求項2に記載の装置。
【請求項4】
閾値が0である、請求項1、2、または3に記載の装置。
【請求項5】
符号を決定するための前記手段が、
更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が0であるときにはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が1であるときにはゼロから遠ざかるように参照値を精緻化するように、符号を決定する
ための手段を備える、請求項1から4のいずれか一項に記載の装置。
【請求項6】
符号を決定するための前記手段が、
更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が1であるときにはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が0であるときにはゼロから遠ざかるように参照値を精緻化するように、符号を決定する
ための手段を備える、請求項1から4のいずれか一項に記載の装置。
【請求項7】
参照パラメータの値がゼロよりも大きいかまたはゼロに等しいとき、更新項の初期値の符号を反転させることによって更新項の値を決定する
ための手段をさらに備える、請求項1から6のいずれか一項に記載の装置。
【請求項8】
参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しいとき、更新項の初期値を変更しないままにすることによって更新項の値を決定する
ための手段をさらに備える、請求項1から6のいずれか一項に記載の装置。
【請求項9】
第1の色成分がルマ成分であり、第2の色成分が1つのクロマ成分である、請求項1から8のいずれか一項に記載の装置。
【請求項10】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと、
更新項の初期大きさをデコードすることと、
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードすることと、
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定することと、
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定することと
を含む方法。
【請求項11】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し、
参照値の更新項の初期値を決定し、
参照値が閾値よりも大きい場合、更新項の表示される値の符号が更新項の決定された初期値の符号と反対であるように更新項の表示される値を決定し、
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードする
ための手段を備える装置。
【請求項12】
参照パラメータの値がゼロよりも大きいかまたはゼロに等しいとき、更新項の符号を反転させる
ための手段をさらに備える、請求項11に記載の装置。
【請求項13】
参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しいとき、更新項を変更しないままにすることによって更新項の表示される値を決定する
ための手段をさらに備える、請求項11または12に記載の装置。
【請求項14】
レート歪み決定を行って、更新項の値を決定し、
更新項の値に基づいて、表示される更新項を決定する
ための手段をさらに備える、請求項11、12、または13に記載の装置。
【請求項15】
レート歪み決定を行って、表示される更新項の値を決定し、
表示される更新項の値に基づいて、更新項を決定する
ための手段をさらに備える、請求項11、12、または13に記載の装置。
【手続補正書】
【提出日】2024-11-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し、
更新項の初期大きさをデコードし、
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードし、
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定し、
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定する
ための手段を備える装置。
【請求項2】
符号を決定するための前記手段が、
参照値を閾値と比較し、
参照値が閾値よりも大きく、シンタックス要素が第1の表示値を含むか、もしくは参照値が閾値以下であり、シンタックス要素が第1の表示値と異なる第2の表示値を含むとき、更新項の符号を正であると決定する、または更新項の符号を負であると決定する
ための手段を備える、請求項1に記載の装置。
【請求項3】
第1の表示値が0であり、第2の表示値が1であるか、または第1の表示値が1であり、第2の表示値が0である、請求項2に記載の装置。
【請求項4】
閾値が0である、請求項
2または3に記載の装置。
【請求項5】
符号を決定するための前記手段が、
更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が0であるときにはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が1であるときにはゼロから遠ざかるように参照値を精緻化するように、符号を決定する
ための手段を備える、請求項1から
3のいずれか一項に記載の装置。
【請求項6】
符号を決定するための前記手段が、
更新項が、更新項の符号を表すデコード化バイナリシンタックス要素が1であるときにはゼロに向かって参照値を精緻化し、更新項の符号を表すデコード化バイナリシンタックス要素が0であるときにはゼロから遠ざかるように参照値を精緻化するように、符号を決定する
ための手段を備える、請求項1から
3のいずれか一項に記載の装置。
【請求項7】
参照パラメータの値がゼロよりも大きいかまたはゼロに等しいとき、更新項の初期値の符号を反転させることによって更新項の値を決定する
ための手段をさらに備える、請求項1から
3のいずれか一項に記載の装置。
【請求項8】
参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しいとき、更新項の初期値を変更しないままにすることによって更新項の値を決定する
ための手段をさらに備える、請求項1から
3のいずれか一項に記載の装置。
【請求項9】
第1の色成分がルマ成分であり、第2の色成分が1つのクロマ成分である、請求項1から
3のいずれか一項に記載の装置。
【請求項10】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定することと、
更新項の初期大きさをデコードすることと、
更新項の符号を決定する際に使用されるべきシンタックス要素をデコードすることと、
参照値に基づいてデコード化シンタックス要素を解釈することによって更新項の符号を決定することと、
参照値、更新項のデコードされた大きさ、および更新項の決定された符号を使用して、マッピング関数のパラメータの値を決定することと
を含む方法。
【請求項11】
第1の色成分から第2の色成分へのマッピング関数のパラメータの参照値を決定し、
参照値の更新項の初期値を決定し、
参照値が閾値よりも大きい場合、更新項の表示される値の符号が更新項の決定された初期値の符号と反対であるように更新項の表示される値を決定し、
更新項の表示される値の符号および大きさをビデオビットストリーム内にエンコードする
ための手段を備える装置。
【請求項12】
参照パラメータの値がゼロよりも大きいかまたはゼロに等しいとき、更新項の符号を反転させる
ための手段をさらに備える、請求項11に記載の装置。
【請求項13】
参照パラメータの値が、ゼロよりも小さいかまたはゼロに等しいとき、更新項を変更しないままにすることによって更新項の表示される値を決定する
ための手段をさらに備える、請求項11または12に記載の装置。
【請求項14】
レート歪み決定を行って、更新項の値を決定し、
更新項の値に基づいて、表示される更新項を決定する
ための手段をさらに備える、請求項
11または12に記載の装置。
【請求項15】
レート歪み決定を行って、表示される更新項の値を決定し、
表示される更新項の値に基づいて、更新項を決定する
ための手段をさらに備える、請求項
11または12に記載の装置。
【国際調査報告】