(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-08
(45)【発行日】2025-01-17
(54)【発明の名称】ピクチャエンコードおよびデコードのための方法およびデバイス
(51)【国際特許分類】
H04N 19/103 20140101AFI20250109BHJP
H04N 19/157 20140101ALI20250109BHJP
H04N 19/176 20140101ALI20250109BHJP
【FI】
H04N19/103
H04N19/157
H04N19/176
(21)【出願番号】P 2021529051
(86)(22)【出願日】2019-11-15
(86)【国際出願番号】 US2019061658
(87)【国際公開番号】W WO2020106564
(87)【国際公開日】2020-05-28
【審査請求日】2022-11-15
(32)【優先日】2018-11-21
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2018-12-20
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-02-14
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】318017914
【氏名又は名称】インターデイジタル ヴィーシー ホールディングス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】フィリップ ボルデ
(72)【発明者】
【氏名】タンギ ポワリエ
(72)【発明者】
【氏名】ヤー チェン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/098644(WO,A1)
【文献】TOMA, Tadamasa, et al.,Description of SDR video coding technology proposal by Panasonic,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US,JVET-J0020-v1,ITU-T,2018年04月,pp.49-51
【文献】ABE, Kiyofumi, et al.,CE4-related: Low pipeline latency LIC,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN,JVET-L0120-v2,ITU-T,2018年10月,pp.1-5
【文献】Chen-Yen Lai, et al.,CE9-related: BIO simplification,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0099,12th Meeting: Macao, CN,2018年10月,pp.1-6
【文献】Tomonori Hashimoto, et al.,Non-CE4: Weighted prediction with BDOF and bi-prediction with CU weights harmonization,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0067-v1,13th Meeting: Marrakech, MA,2019年01月,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
カレントブロックに対して少なくとも1つの第1のブロックレベルパラメーターをデコードするステップと
、
前記少なくとも1つのデコードされた第1のブロックレベルパラメーターが、一般化された双方向予測重みがデフォルト重みに等しくないことを示している
条件で、前記カレントブロックに対して、オプティカルフローに基づいてブロックのサンプルの動きをリファインすることを可能とする双方向性オプティカルフローモードを無効にするステップと、
前記カレントブロックをデコードするステップと
を備えることを特徴とするデコードの方法。
【請求項2】
前記ブロックのサイズが予め定められた値を下回る条件で、一般化された双方向予測を無効にするステップ、または、一般化された双方向予測重みをデフォルト重みに設定するステップをさらに備
えることを特徴とする請求項1に記載の方法。
【請求項3】
カレントブロックに対して少なくとも1つの第1のブロックレベルパラメーターを取得するステップと、
前記少なくとも1つのデコードされた第1のブロックレベルパラメーターが、一般化された双方向予測重みがデフォルト重みに等しくないことを示している
条件で、前記カレントブロックに対して、オプティカルフローに基づいてブロックのサンプルの動きをリファインすることを可能とする双方向性オプティカルフローモードを無効にするステップと、
前記カレントブロックをエンコードするステップと
を備えることを特徴とするエンコードの方法。
【請求項4】
カレントブロックに対して少なくとも1つの第1のブロックレベルパラメーターをデコードすることと
、
前記少なくとも1つのデコードされた第1のブロックレベルパラメーターが、一般化された双方向予測重みがデフォルト重みに等しくないことを示している
条件で、前記カレントブロックに対して、オプティカルフローに基づいてブロックのサンプルの動きをリファインすることを可能とする双方向性オプティカルフローモードを無効にすることと、
前記カレントブロックをデコードすることと
を行うように構成された1つまたは複数のプロセッサーを備えたことを特徴とするデコード装置。
【請求項5】
カレントブロックに対して少なくとも1つの第1のブロックレベルパラメーターを取得することと、
前記少なくとも1つのデコードされた第1のブロックレベルパラメーターが、一般化された双方向予測重みがデフォルト重みに等しくない
条件で、前記カレントブロックに対して、オプティカルフローに基づいてブロックのサンプルの動きをリファインすることを可能とする双方向性オプティカルフローモードを無効にすることと、
前記カレントブロックをエンコードすることと
を行うように構成された1つまたは複数のプロセッサーを備えたことを特徴とするエンコード装置。
【請求項6】
請求項1に記載の方法を実装するためのプログラムコード命令をストアした非一時的情報記憶媒体。
【請求項7】
請求項
3に記載の方法を実装するためのプログラムコード命令をストアした非一時的情報記憶媒体。
【請求項8】
前記ブロックのサイズが予め定められた値を下回る条件で、一般化された双方向予測を無効にするステップ、または、一般化された双方向予測重みをデフォルト重みに設定するステップをさらに備
えることを特徴とする請求項
3に記載の方法。
【請求項9】
前記1つまたは複数のプロセッサーは、
前記ブロックのサイズが予め定められた値を下回る条件で、一般化された双方向予測を無効にすること、または、一般化された双方向予測重みをデフォルト重みに設定するこ
と
を行うようにさらに構成されたことを特徴とする請求項
4に記載のデコード装置。
【請求項10】
前記1つまたは複数のプロセッサーは、
前記ブロックのサイズが予め定められた値を下回る条件で、一般化された双方向予測を無効にすること、または、一般化された双方向予測重みをデフォルト重みに設定するこ
と
を行うようにさらに構成されたことを特徴とする請求項
5に記載のエンコード装置。
【発明の詳細な説明】
【技術分野】
【0001】
本態様のうちの少なくとも1つは、一般に、ピクチャエンコードおよびデコードのための方法およびデバイスに関し、より詳細には、種々の符号化ツール、たとえば、動き補償(Motion Compensation)、局所照明補償(Local Illumination Compensation)、一般化双方向予測(Generalized Bi-prediction)、ポストリコンストラクション(post-reconstruction)フィルターなどを使用するピクチャエンコードおよびデコードのための方法およびデバイスに関する。
【背景技術】
【0002】
高い圧縮効率を達成するために、通例、画像およびビデオ符号化スキームは、予測および変換を用いてビデオコンテンツにおける空間的なおよび時間的な冗長性をレバレッジ(leverage)する。一般に、イントラまたはインター予測は、イントラまたはインターフレーム相関を利用するのに使用され、多くの場合、予測誤差、予測残差、または予測子として示される、元の画像ブロックと予測画像ブロックとの差分は、変換され、量子化され、エントロピー符号化される。エンコード中に、通例、元の画像ブロックは、おそらく四分木分割を使用して、サブブロックに分割される/分けられる。ビデオを再構成するために、圧縮されているデータは、予測、変換、量子化、およびエントロピー符号化に対応する逆処理によってデコードされる。
【発明の概要】
【0003】
少なくとも1つの態様の一般的な様相に従って、ビデオデータをデコードするための方法が与えられ、次を含む。
-カレントブロックに対してパラメーターをデコードすることと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、およびデコードされているパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをデコードすること。
【0004】
少なくとも1つの態様の一般的な様相に従って、ビデオデータをエンコードするための方法が与えられ、次を含む。
-カレントブロックに対してパラメーターを取得することと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、および取得されたパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをエンコードすること。
【0005】
少なくとも1つの態様の一般的な様相に従って、デコード装置が与えられ、次を行うように構成された1つまたは複数のプロセッサー含む。
-カレントブロックに対してパラメーターをデコードすることと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、およびデコードされているパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをデコードすること。
【0006】
少なくとも1つの態様の一般的な様相に従って、ビデオデータをエンコードするための方法が与えられ、次を含む。
-カレントブロックに対してパラメーターを取得することと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、および取得されたパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをエンコードすること。
【0007】
少なくとも1つの態様の一般的な様相に従って、エンコード装置が与えられ、次を行うように構成された1つまたは複数のプロセッサー含む。
-カレントブロックに対してパラメーターを取得することと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、および取得されたパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをエンコードすること。
【0008】
少なくとも1つの態様の別の一般的な様相に従って、ビットストリームは、上に説明されたエンコード方法に従って生成された信号を含むようにフォーマットされる。
【0009】
さらに、本態様のうちの1つまたは複数は、上に説明された方法のうちのいずれかの少なくとも一部に従ってビデオデータをエンコードするまたはデコードするための命令を格納しているコンピューター読み取り可能な記録媒体も提供する。
【0010】
さらに、1つまたは複数の態様は、上に説明されたエンコード方法に従って生成されたビットストリームを格納しているコンピューター読み取り可能な記録媒体も提供する。さらに、1つまたは複数の態様は、上に説明されたエンコード方法に従って生成されたビットストリームを送信するまたは受信するための方法および装置も提供する。さらに、1つまたは複数の態様は、上に説明された方法のうちのいずれかの少なくとも一部を行うための命令を含むコンピュータープログラム製品も提供する。
【図面の簡単な説明】
【0011】
【
図1b】他の全般的なデコードのパイプラインを描く。
【
図1c】他の全般的なデコードのパイプラインを描く。
【
図1d】一態様に係る全般的なデコードのパイプラインを描く。
【
図2】局所照明補償(Local Illumination Compensation)のパラメーター導出の原理を例示する。
【
図3】オーバーラップブロック動き補償の原理を例示する。
【
図4】インターおよびイントラモードの組み合わせの場合における多重仮説の予測の原理を例示ずる。
【
図5】ブロックの非矩形の分割および関連するOBMC対角重み付けを例示する。
【
図6】一態様に係るデコード方法のフローチャートを描く。
【
図7】一態様に係るエンコード方法のフローチャートを描く。
【
図8】種々の態様に係るデコード処理のフローチャートを描く。
【
図9】多重仮説の予測処理のフローチャートを描く。
【
図10】一態様に係る多重仮説の予測処理のフローチャートを描く。
【
図11】局所的な照明補償(local illumination compensation)を有する動き補償の予測処理のフローチャートを描く。
【
図12】一態様に係る局所的な照明補償を有する動き補償の予測処理のフローチャートを描く。
【
図13】一態様に係るデコーダーサイドモーションベクトルリファインメント(Decoder Side Motion Vector Refinement)の前に計算された局所的な照明補償を有する全般的なデコードのパイプラインを描く。
【
図15】態様に係るビデオエンコーダーのブロック図を例示する。
【
図16】態様に係るビデオデコーダーのブロック図を例示する。
【
図17】種々の様相および態様が実装されるシステムの例についてのブロック図を例示する。
【発明を実施するための形態】
【0012】
HEVC符号化において、ピクチャは、正方形型のCTUへ、構成可能なサイズ通常64x64により分割される。サイズは、他のビデオ符号化規格において、128x128または256x256であり得る。CTUは、等しいサイズの4つの正方形の符号化ユニット(CU)への四分木分割の根、すなわち、幅においておよび高さにおいて親のブロックサイズの半分である。四分木は、親ノードが、4つの子ノードに分けられることが可能であり、各々が、別の4つの子ノードに分けられるための親ノードになることがある木である。HEVCにおいて、符号化ブロック(CB)は、1つのCUに対応する1つの色コンポーネントのサンプルを含む。それは、1つまたは複数の予測ブロック(PB)に分割され、変換ブロック(TB)への四分木分割の根を形成する。符号化ブロック、予測ブロック、および変換ブロックに対応して、符号化ユニット(CU)は、予測ユニット(PU)と、変換ユニット(TU)のツリー構造のセットとを含み、PUは、すべての色成分対して予測情報を含み、TUは、各色成分に対して残差符号化構文構造(residual coding syntax structure)を含む。輝度コンポーネントのCB、PB、およびTBのサイズは、対応するCU、PU、およびTUに適用される。
【0013】
より最近のエンコードシステムにおいて、CTUは、符号化ユニット(CU)への符号化ツリー分割の根である。符号化ツリーは、(通例、ブロックに対応する)親ノードが、子ノード(たとえば2、3、または4つの子ノード)に分けられることが可能であり、各々が、別の子ノードに分けられるための親ノードになることがある木である。四分木のスプリットモード(split mode)に加えて、さらに、可能性のあるスプリットモードの総数を増やす新しいスプリットモード(二分木の対称なスプリットモード、二分木の非対称なスプリットモード、および三分木のスプリットモード)が定義される。符号化ツリーは、ただ1つの根ノード、たとえばCTUを有する。符号化ツリーの葉は、木の終端ノードである。符号化ツリーの各ノードは、サブブロックとも呼ばれるより小さなブロックにさらに分割され得るブロックを表す。CTUのCUへの分割が決定されれば、符号化ツリーの葉に対応するCUがエンコードされる。CTUのCUへの分割と、(符号化ツリーの葉に対応する)各CUをエンコードするのに使用される符号化パラメーターとは、レート歪み最適化手順によってエンコーダーにおいて決定されることがある。
【0014】
本出願にて、用語「ブロック」または「ピクチャブロック」は、CTU、CU、PU、TU、CB、PB、およびTBのうちのいずれか1つを引用するのに使用されることが可能である。加えて、用語「ブロック」または「ピクチャブロック」は、H.264/AVCにおいてまたは他のビデオ符号化規格において規定されているマクロブロック、分割、およびサブブロックを引用するのに、より一般的に、非常に多いサイズのサンプルの配列を引用するのに使用されることが可能である。
【0015】
本出願にて、用語「再構成されている」および「デコードされている」は、交換可能に使用されることがあり、用語「ピクセル」および「サンプル」は、交換可能に使用されることがあり、用語「画像」、「ピクチャ」、および「フレーム」は、交換可能に使用され得る。通常、必ずしもそうではないが、用語「再構成されている」は、エンコーダー側において使用される一方、「デコードされている」は、デコーダー側で使用される。
【0016】
本出願にて、用語「有効にされる」および「使用される」は、それらがブロックレベルにおいて符号化ツールに適用される場合に交換可能に使用され得る。同じように、「無効にされる」および「使用されない」は、それらがブロックレベルにおいて符号化ツールに適用される場合に交換可能に使用され得る。
【0017】
本出願にて、用語「符号化ツール」および「符号化処理」は、交換可能に使用され得る。
【0018】
最近のエンコードシステムにおいて、たとえば、バーサタイルビデオ符号化(VVC:Versatile Video Coding)の(VTMとして知られる)リファレンスソフトウェアにおいて、デコードのパイプラインは、いくつかのカスケードされたツールを含む。VVCに対するデコードのパイプラインは、
図1aにおいて描かれる。デコード処理は、符号化ユニット(CU)のレベルにおいてなされる。CUは、C個の正方形または長方形のブロック(たとえば、YUVまたはRGBクロマフォーマットに対してC=3)を含む。4:2:0フォーマットにて、2つの彩度ブロック(chroma block)は、水平および垂直の両方向において2つの比率によって、輝度ブロック(luma block)に関してダウンスケールされる。
【0019】
「エントロピーデコード」処理は、ビットストリームを構文解析し、例えば、符号化モード(たとえば、インター/イントラ符号化モード)、および関連するパラメーター(たとえば、イントラ方向、インター動きベクトルMV、および参照インデックス)などのシンタックスエレメントをデコードする。
【0020】
動き補償(MC)は、カレントブロックの位置との相関において、参照ピクチャにおけるMV(mvX,mvY)に等しい変位により、参照ピクチャにおける1つまたは2つ(双方向予測(bi-prediction)の場合)の長方形のブロック(複数可)(カレントCUと同じサイズ)のサンプルを、MCフィルターを使用して補間する。
【0021】
局所照明補償(LIC)は、予測されているブロックと、動き補償(MC)される時間予測において使用される参照ブロックとの間に起こり得る照明変化を補償することをめざす。通常、今述べたことは、線形ICモデル(a,b)を使用してなされる。
SIC=a*Sref+b (式1)
ただし、Srefは、動き補償される参照サンプル値であり、SICは、予測されるサンプル値である。LICパラメーター(a,b)は、LICが有効にされている各ブロックに対して計算される。
【0022】
LICパラメーター(a,b)を計算するいくつかの方法がある。1つの方法にて、デコーダーは、いくつかの再構成されているピクチャサンプルに基づいて、たとえば、カレントブロックの左および/または上にローカライズされた再構成されているサンプル「y」と、動き補償されるブロックの左および/または上に局所的な参照ピクチャサンプル「x」とに基づいて、LICパラメーターを計算する(
図2a)。別の方法にて、LICパラメーターは、カレントブロックの左および/または上にローカライズされた再構成されているサンプル「y」と、「y」を再構成するのに使用された対応する予測サンプル「x」とに基づいて計算される(
図2b)。今述べた2つの方法に対して、LICパラメーターは、各ブロックの再構成後に、計算され、格納されることが可能である。ICパラメーター(a,b)は、サンプル「y」と「a.x+b」との差分を最小にする(たとえば、最小二乗法)。
【0023】
【0024】
今述べた2つの方法は、本明細書にて以後、「従来のLIC」と呼ばれる。LICは、近接のCUの再構成されているサンプルを使用するので、近接のCUとの従属を差し込む。結果として、カレントCUは、カレントブロックに対するLICパラメーターが計算されることが可能であり、ゆえにカレントブロックが再構築されることが可能である前に、近接のブロックが完全に再構成されるのを待たなければならない(
図1aにおける「feedback rec. sample」参照)。
【0025】
双方向予測の場合、LICのバリアント(「bi-dir-IC」と呼ばれる)は、ICパラメーター(a0,b0)および(a1,b1)を、双方向予測において使用される2つの動き補償されるブロック(ブロック-0およびブロック-1)から直に導出する。それは、2つの参照ピクチャの間の照明変化を推定して、カレントブロックに対してICパラメーター(a0,b0)および(a1,b1)を導出することを含む。例えば、1つは、動き補償されたブロック-1と動き補償されたブロック-0との間のLICに対してICパラメーター(a,b)を計算する。次の1つは、(a0,b0)および(a1,b1)を、値(a,b)と、カレントピクチャの、参照ピクチャ0の、および参照ピクチャ1のPOC(picture order count:ピクチャの表示順)とから導出する。値a0,a1,b0,b1は、カレントフレームと参照ピクチャとの間の時間的な距離の1次関数であることが仮定される。今述べたバリアントの利点は、近接のCUとのどんな従属も差し込まないことである。
【0026】
双方向予測の場合、BIO(Bi-directional Optical flow:双方向性オプティカルフロー)は、オプティカルフローのエルミート補間を使用して、2つの参照ピクチャの間の線形変位を仮定する各サンプルに対して、動きをリファインすることをめざす。ゆえに、新しい項が、従来の双方向予測
【0027】
【0028】
に加えられる。
【0029】
【0030】
ただし、
【0031】
【0032】
は、動き補償される予測(ブロック-0およびブロック-1)であり、
【0033】
【0034】
および
【0035】
【0036】
は、i番目の参照に対して、水平および垂直勾配であり(k={0,1})、(vx,vy)は、ブロック-1とブロック-0との間の動きベクトルであり、σは、時間の差分(POC1-POC0)である。
【0037】
双方向予測の場合、DMVR(Decoder Side Motion Vector Refinement:デコーダーサイドモーションベクトルリファインメント)は、デコードされているMV値(MVinitial)の周りのいくつかの変位をテストすることによって動きをリファインすることをめざす。候補のいくつかのMVペアのセット(MVtested(L0),MVtested(L1))がテストされる。BIOにおけるように、テストされたMV値は、初期MV値の周りで対称、すなわち(MVtested(L0)-MVinitial(L0)=MVtested(L1)-MVinitial(L1))であり、ただし、MVtested(L0)は、リストL0に対してテストされた動きベクトルであり、MVtested(L1)は、リストL1に対してテストされた動きベクトルである。選択されたMVのペアは、例えば、差分MC(ref0,MVtested(L0))-MC(ref1,MVtested(L1))を、MRSAD(Mean-Removed Sum of Absolute Difference:ミーンリムーブド差分絶対値和)を使用して最小にするペアである。
【0038】
双方向予測の場合、2つの予測ブロックが、計算され、互いに平均される(別名、双方向予測平均(bi-prediction averaging))。一般化双方向予測(GBI)の場合、それらは、次のように重みつき合計と組み合わされる。
PGBI=(((1<<gs)-gw1).P0+gw1.P1)>>gs (式4)
ただし、P0、P1は、動き補償される予測(ブロック-0およびブロック-1)である。
【0039】
VTMにて、使用する重みは、表1にあげられた値を取ることが可能である「gbi-index」によりCU毎に符号化される。
【0040】
【0041】
本明細書にて以後、重みのペア{1/2;-1/2}は、デフォルト重み(default weight)と呼ばれるだろう。
【0042】
図1aにて、LIC処理は、各単方向の動き補償されている予測における双方向予測平均の前に適用される。異形にて、LIC処理(720)は、
図1bにて描かれている双方向予測平均(710)の後に適用される。
【0043】
オーバーラップブロック動き補償(OBMC)ツール(ここでは以後、「OBMC処理」と呼ばれる)に従って、近接のブロックの動きは、近接のブロックP
N(N=AまたはL)の予測を拡張するのに、カレントブロック予測P
Cにより徐々に重み付けを行うのに使用される(
図3)。例えば、P
A(x,y)が、上述のブロックについての上述の予測サンプル(x={0,・・・W-1},y={0,・・・H
A-1})を示すとしよう。今述べたサンプルは、下部に追加のB行により拡張され、P
Aのその他の予測サンプルと同じ処理(MC)および同じ動き情報により計算されるP
A(x,y)(x={0,・・・W-1},y=(H
A,・・・H
A+B-1}である。P
C(x,y)が、カレント予測P
OBMCサンプル(x={0,・・・W-1},y={0,・・・H
C-1})を示すとしよう、次に、カレントブロックのサンプルの上B行に対する予測が、最終的に次のように計算される。
P
OBMC(x,y)=w
N(y).P
A(x,y+B)+w
C(y).P
A(x,y) (式5)
同一の処理は、左ブロックデータからビルドされたP
L(x,y)サンプルに基づいて左B列の予測サンプルに対して適用される。
【0044】
近接のブロックNがその予測に対してLICおよび/またはBIOを使用する場合に、さらに、追加のPNサンプル(本明細書にて以後、「OBMC処理」と呼ばれる)は、LICおよびBIOを適用することによって取得されることもある。
【0045】
例えば、枠線からカレントブロックの中心に向かう典型的な段階的な重みは、PNおよびPCに対して、それぞれwC(y)={1/4,1/8,1/16,1/32}およびwN(y)={3/4,7/8,15/16,31/32}である。
【0046】
一般的な多重仮説(Multi-Hypothesis)のコンセプトは、
図4に描かれている、イントラ予測モードとの、または別のインターモード(たとえば、単一予測のAMVP、スキップ、およびマージ)との、マージモードにおいて行われるインター予測の組み合わせを含む。マージモードにおいて、マージ候補(参照インデックス、動き値)のリストがビルドされ、1つの候補を特定するマージインデックスがシグナリングされる。次に、マージモードにおいてブロックの動き情報は、マージインデックスによって特定される候補から導出され、動き補償される予測のために使用される。最終的な予測は、マージインデックスされる予測とイントラ予測モードによって生成された予測との重みつき平均であり、ただし、異なった重みが、組み合わせに従って適用される。イントラ予測モードは、ビットストリームにてシグナリングされる。特定の態様にて、イントラ予測モードは、すべての古典的な予測モードのサブセット(たとえば、4と等しいサブセットサイズ)において選択される。カレントブロックは、4つの等面積の領域に分けられる。重みは、領域がイントラ参照サンプルから離れるにつれて徐々に減少する。(w_intrai,w_interi)、ただし、iは1から4までであり、(w_intra1,w_inter1)=(6,2)、(w_intra2,w_inter2)=(5,3)、(w_intra3,w_inter3)=(3,5)、および(w_intra4,w_inter4)=(2,6)、として示される各重みセットは、イントラ垂直方向予測に対して、
図4および14の例にて描かれている、対応する領域に適用されるだろう。DCまたは平面モードが選択される、またはCUの幅または高さが4より小さいとき、まったく同じ重みが全CUに適用される。
【0047】
幾何学的な(たとえば、三角)モードは、符号化前に、ピクチャをブロックに分割することに対して、より高い柔軟性を可能にする。上記の分割することの例は、
図5の上部に描かれる。追加の符号化性能は、
図5の下部に例示されている境界(frontier)(
図5の灰色の領域)上の2つの予測子の重み付けを行うことによって取得されることが可能である。今述べた重み付け処理は、例えば、GBIまたはLICなどの他の重み付けによりカスケードし、実装の複雑さを大きくすることがある。
【0048】
「ポストリコンストラクション(post-reconstruction)」フィルター(730)は、CUループ再構成におけるカレントCUの再構成されているサンプルをフィルタリングすることを可能にして、フィルタリングされているサンプルは、同一のサンプル(または同一のスライスまたは同一のタイル)における後続のCUに対して、イントラ予測のためにまたはLICパラメーター導出のために使用されることがある。ところが「他のポストフィルター(other post-filter)」(740)(たとえば、デブロッキングフィルター、SAOフィルター、またはALFフィルター)は、全ピクチャ(またはスライスまたはタイル)が再構成された後、再構成されているサンプルをフィルタリングする。「ポストリコンストラクション」フィルターの例は、双方フィルター(bilateral filter)(J.Strom et al.、「CE14: Reduced latency, LUT-free bilateral filter」、文書JVET-L0172、第12回会議、マカオ、CN、2018年10月3~12日)、アダマールフィルター(S.Ikonen et al.、「Non-CE: Hadamard transform domain filter」、文書JVET-M0468、第13回会議、マラケシュ、MA、2019年1月9~18日)、または拡散フィルター(J.Rash et al.、「CE10: Uniform Directional Diffusion Filters For Video Coding」、文書JVET-M0042、第13回会議、マラケシュ、MA、2019年1月9~18日)である。
【0049】
異形にて、「ポストリコンストラクション」フィルターは、
図1cにて描かれている、インターモードにおいて符号化されたCUに適用されるだけであり、イントラにおいて符号化された、またはイントラとインター予測とを組み合わせたCUに対して適用されない。別の異形にて、「ポストリコンストラクション」フィルターは、イントラにおいて符号化されるCUに適用されるだけであり、インターモードにおいて適用されない。「ポストリコンストラクション」フィルターの適用は、例えば、カレントCUサイズ、QP値、またはコンポーネントタイプなどの他のパラメーターにて条件付けられることがある(たとえば、「ポストリコンストラクション」フィルターは、730にてダッシュの彩度ボックスにより描かれている彩度コンポーネントに適用されない)。
【0050】
新しいビデオコーデックは、符号化効率を改善するためにカスケードされ得る、数が増加している符号化ツールを実装する。いくつかの場合に、同一の性質のカスケードツールは、逆効果を生じる、すなわち、符号化効率を減らすことがあり、さらに今述べたことは、デコード処理のパイプラインに重い負担をかけることがある。
【0051】
少なくとも1つの態様は、異なった符号化ツール間の相互作用を調和させ、理にかなったパイプラインの複雑さを保証することによって種々のプラットフォーム上にビデオコーデックの実装を助けるつもりである。少なくとも1つの態様は、全般的なコーデックの性能を下げることなく、いくつかのルールおよび限定を適用するつもりである。
少なくとも1つの態様は、 パイプラインサイズ(処理ステージの数)と、差し込まれるパイプライン従属(pipeline dependency)との両方を、「インター」符号化におけるいくつかのツールによって、たとえば、相互のコアクティベーション(co-activation)において制限を加えることによって減らす。
【0052】
パイプライン従属を減らすために、「インター」デコードパイプラインが修正される。
【0053】
図6は、一態様に係るデコード方法のフローチャートを描く。
【0054】
パラメーターは、カレントブロックに対してデコードされる(S100)。カレントブロックに対する符号化ツール(たとえば、LIC)は、次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される(たとえば、GBIがデフォルト重みではない重みにより使用される)、およびデコードされているパラメーターに与えられた条件(ブロックサイズが値未満である)が検証される、のうちの1つまたは複数が検証される場合に、無効にされる(S110)。符号化ツールは、もしそうでなければ前述のカレントブロックに対して有効にされる。カレントブロックは、符号化ツールが有効にされているかどうかを考慮に入れて、デコードされる(S120)。符号化ツールが有効にされているならば、カレントブロックは、符号化ツールを使用してデコードされる。もしそうでなければ、カレントブロックは、符号化ツールを使用せずにデコードされる。
【0055】
図7は、一態様に係るエンコード方法のフローチャートを描く。パラメーターは、カレントブロックに対して取得される(S200)。カレントブロックに対する符号化ツール(たとえば、LIC)は、次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される(たとえば、GBIがデフォルト重みではない重みにより使用される)、およびデコードされているパラメーターに与えられた条件(ブロックサイズが値未満である)が検証される、のうちの1つまたは複数が検証される場合に、無効にされる(S110)。符号化ツールは、もしそうでなければ前述のカレントブロックに対して有効にされる。カレントブロックは、符号化ツールが有効にされているかどうかを考慮に入れて、エンコードされる(S220)。符号化ツールが有効にされているならば、カレントブロックは、符号化ツールを使用してエンコードされる。もしそうでなければ、カレントブロックは、符号化ツールを使用せずにエンコードされる。
【0056】
符号化ツールの無効化は、カレントの符号化ユニット(CU)のいくつかの特性に、および/または
図8A~8Cによって例示されている別の符号化ツール「X」が使用されるかどうか(406、408)に条件付けられる。
【0057】
図8Aにて、CUパラメーターがデコードされる(400)。CUパラメーターについての条件が検証される(410)場合に、たとえば、CUサイズが値未満である場合に、符号化ツール/処理「Y」は、無効にされる(420)。
【0058】
図8Bにて、CUパラメーターがデコードされる(400)。第1の符号化ツール「X」がカレントCUに対して使用される(406)場合に、次に、第1の符号化ツールが適用される(408)。CUパラメーターについての条件がさらに検証される(410)場合に、たとえば、CUサイズが値未満である場合に、第2の符号化ツール/処理は、無効にされる。もしそうでなければ第2の符号化ツールが使用される(420)。
【0059】
異形にて、第1の符号化ツール「X」がカレントCUに対して使用される(406)場合に、次に、第1の符号化ツールが適用され(408)、第2の符号化ツール「Y」が無効にされる。今述べた異形にて、CUについての条件は、チェックされない。
【0060】
図8Cにて、CUパラメーターがデコードされる(400)。第1の符号化ツール「X」がカレントCUに対して使用される(406)、およびCUパラメーターについての条件が検証される(410)の両方の場合に、次に、第2の符号化ツール「Y」が無効にされる。もしそうでなければ第2の符号化ツールが使用される(420)。点線は、符号化ツール「X」の適用が406によって条件付けられることを意味する。
【0061】
バリアントは、「条件(CU)」の表現と、ツール「X」および「Y」の処理順とからビルドされる(
図8-BまたはC)。「条件(CU)」は、前にデコードされているデータ(400)から導出され、次のルールの組み合わせであることが可能である。
-小ブロック(CUサイズが値未満である)に対してツール「X」を無効にする、
-彩度(CUコンポーネントが彩度である)に対してツール「X」を無効にする、
-カレントスライスが、値より上であるTiD(Temporal Identifier)を有するならばツール「X」を無効にする、
-別のCTUの中にまたはカレントVPDU(Virtual Pipeline Data Unit:仮想パイプラインデータユニット)の外側に位置された別の再構成されているブロックから情報(たとえば、再構成されているサンプル)を要するならばツール「X」を無効にする。
【0062】
多重仮説モードのパイプライン従属の削減
図9は、入力ビット深度または内部ビット深度が10ビットに等しい場合に、およびさらに双方向予測、BIO、およびGBIも使用される場合に、MHに対してVVCソフトウェアのインター予測パイプライン処理を描く。最初に、動き補償が、2つの参照ブロックの予測(500)をビルドするのに適用される。結果は、N>10のNビットに格納(510)されて、さらなる処理(たとえば、N=14ビット)、すなわちBIO(520)およびGBI重み付け(530)において、より精度を保つ。次に、サンプル値は、格納(たとえば、右シフト)(540)され、内部ビット深度(たとえば、10ビット)においてクリップ(550)されて、後続のMHプロセス(560)が内部ビット深度(たとえば、10ビット)により行われる。
【0063】
「多重仮説」(MH)は、
図9にて示されている、追加の「イントラ」または「インター」予測計算を使用し、それを別の予測と組み合わせるので、インターパイプラインにおいて処理ステップの数を増加させる。1つは、次の限定のうちの1つまたは複数によってパイプラインを軽減することがある。
【0064】
一態様にて、LICは、MHが使用される場合に、1つまたはすべてのインターモードに対して無効にされる。今述べたことは、カレントのインターモードが「マージ」であり、LICは、MHが使用されるので無効にされるならば、ICフラグ(IC-flag)は、マージされないが、零であると推論されることを意味する。ICフラグは、ブロックに対して、LICを使用するかどうかを示すパラメーターである。
【0065】
一態様にて、インター双方向予測は、
図10に示されているMHが使用される場合に無効にされる。さらに、BIOも、双方向予測に適用されるだけなので(設計によって)無効にされる。
【0066】
一態様にて、三角形モード(triangle mode)は、MHが使用される場合に無効にされる。確かに、すでに
図5に描かれている2つの三角形予測(triangle prediction)に対して重み付け処理がある。
【0067】
さらにその上、1つは、増加しているビット深度の精度によるイントラ予測をインター予測に加えるとき、およびクリッピング演算の前に、MH組み合わせステージを改良することが可能である。
図10にて、MH処理は、Nビットにおいて実行される。
【0068】
LICに対するパイプライン従属の削減:
図11は、入力ビット深度または内部ビット深度が10ビットに等しい場合に、および双方向予測が使用される場合に、LICに対してVVCソフトウェアのインター予測パイプライン処理を描く。最初に、動き補償が、2つの参照ブロックの予測(600)をビルドするのに適用される。結果は、内部ビット深度の精度(たとえば、10ビット)において格納(610)される。次に、LICパラメーターは、前に格納されたデータから推定されまたは検索され、照明補償が適用(670)される。それは、重み付けを、オフセットを加えることをプラスして含む。次に、内部ビット深度(10ビット)への右シフト(640)およびクリッピング(650)が適用される。次に、サンプルは、GBI重みを適用(630)する前に、Nビットの精度に変換(680)される。
P
LIC=(a.P+b)>>shift
LIC (式6)
ただし、(a;b)は、LICパラメーターであり、
Pは、動き補償されているブロックサンプルであり、
shift
LCは、P
LICが10ビットであるための右シフトであり、
P
LICは、LICによる予測サンプルである。
【0069】
次に、サンプル値は、格納(たとえば、右シフト)(640)され、内部ビット深度(たとえば、10ビット)においてクリップ(650)される。
【0070】
基本的に、LICは、
図11にて示されている、他の近接の再構成されているブロックによるパイプライン従属を差し込み、照明を変化させる動き補償の後のステップを加える。今述べた従属は、次の制約/制限のうちの1つまたは複数を使用することによって減らされることが可能である。
【0071】
一態様にて、LICは、彩度コンポーネントおよび/または小ブロック(CUサイズが値未満である)に対して無効にされる。
【0072】
一態様にて、彩度コンポーネントおよび/または小ブロック(CUサイズが値未満である)に対して、GBIが無効にされる(GBI重みがデフォルト重みに設定される)。
【0073】
LICの原理は、動き補償によって取得された予測サンプルに重みを付けることであるので、重みがデフォルト重みと等しくないとき、GBIといくつかの類似がある。
【0074】
一態様にて、LICは、GBI重みがデフォルト重みではない場合に、双方向予測において無効にされる。それゆえ、ICフラグは、GBIインデックス(GBI-index)がデフォルトと異なるならば符号化されない。マージモードにおいて、GBIインデックスが受け継がれるならば、ICフラグは、GBI重みがデフォルトでない場合には偽と推論される。異形にて、ICフラグが受け継がれ、値が真であるならば、GBI重みは、デフォルト重みであると推論される。異形にて、GBI重みがデフォルトではないならば、1つは、従来のLICの代わりにbi-dir-ICを使用する。
【0075】
一態様にて、ICフラグが符号化され、ICフラグが真である場合に、次に、GBIインデックスは、符号化されず、GBI重みは、デフォルト重みと推論される。異形にて、マージモードにおいてICフラグが受け継がれ値が真である場合に、次に、GBI重みは、デフォルト重みと推論される。
【0076】
シンタックスの例が表2に提供される。
【0077】
【0078】
一態様にて、GBI重みがデフォルト重みではない場合に、ICフラグは、仮にカレントCUが「マージ」モードにおいて符号化されても符号化される。
【0079】
一態様にて、LICは、再構成されているサンプル「recN」が、非デフォルトGBI重みにより符号化された1つの近接のCU(Nと呼ばれる)に属する場合に無効にされる。
【0080】
仮想パイプラインデータユニット(VPDU)は、ピクチャにおいて重なり合わないMxM輝度(L)/NxN彩度(C)ユニットとして定義される。ハードウェアデコーダーにおいて、連続するVPDUは、複数のパイプラインステージによって同時に処理される。異なったステージは、異なったVPDUを同時に処理する。通常、VPDUは、64x64輝度/32x32彩度ブロックである。3つの次の条件が検証される必要がある。
-1つまたは複数のCUを含む各VPDUに対して、CUは、VPDUに完全に含まれる。
-1つまたは複数のVPDUを含む各CUに対して、VPDUは、CUに完全に含まれる。
-CUの処理する順は、VPDUをあとに残さず、後にそれに戻らないだろう。
【0081】
LICにより差し込まれたブロック再構成従属は、エレメンタリーCUをデコードするためのハードウェアおよび/または実装メモリーキャッシュ制約/限定に関係のある、ハードウェアがオールインワンを処理することが可能である最大サンプルの領域サイズにさらに関係のある、通常1つのCTUまたは1つのVPDUに対応するキャッシュメモリーにおいてデータに対して許容し得ることがある。
【0082】
一態様にて、LICは、LICパラメーターを導出するのに使用される近接のブロックNの再構成されているサンプル「recN」が、CTUまたはVPDUの外側にある場合に無効にされる。異形にて、LICは、使用されるが、カレントのCTUまたはVPDUの内側に再構成されているサンプルのみを使用することがある。
【0083】
一態様にて、カレントブロックの符号化モードが「マージ」である場合に、マージインデックスは近接のNがマージするために使用されることを示す場合に、今述べたブロックが真に等しいICフラグを有する(ICパラメーターが示されているICNである)場合に、および「recN」サンプルがCTUまたはVPDUの外側にある場合に、次に、ICフラグは、カレントブロックに対して真であり、1つは、カレントのLICパラメーターを導出する「recN」サンプルを使用する代わりにカレントブロックの予測をビルドするためにICN(近接のブロックNによって使用されるLICパラメーター)を再利用する。
【0084】
一態様にて、LICは、
図12にて描かれている、増加している精度により計算(670)される、すなわち、shift
LIC(式6)が設定されて、サンプル精度がLIC処理の後にNビットであり、サンプルが予測処理の最後にだけクリップされる。
【0085】
「ポストリコンストラクション」フィルターに対するパイプライン従属の削減:
一態様にて、相互に、LIC処理および「ポストリコンストラクション」フィルタリング処理は、各コンポーネントに対して排他的である(すなわち、LICが1つのコンポーネントに対して有効にされているならば「ポストリコンストラクション」フィルターは、今述べたコンポーネントに対して無効にされる)、またはすべてのコンポーネントに対して排他的である(LICがすべてのコンポーネントに対して有効にされているならば「ポストリコンストラクション」フィルターは、すべてのコンポーネントに対して無効にされる)。
【0086】
「ポストリコンストラクション」が1つのコンポーネント(たとえば、彩度)に適用されないならば、次に、LICがカレントCUに対して無効である(たとえば、LICフラグが偽である)、「ポストリコンストラクション」は、その他のコンポーネント(たとえば、輝度)だけに対して適用されることがある。
【0087】
例えば、LICが有効にされている、および/またはカレントCUに適用される(たとえば、LICフラグが真、推論される、または符号化される)ならば、ポストリコンストラクションフィルタリングは、
図1dにて描かれているすべてのコンポーネントに対して無効にされる。
【0088】
別の例にて、LIC処理がコンポーネント(たとえば、輝度に対して推論されるまたは符号化される1つのLICフラグ、および彩度に対して推論されるまたは符号化される別のLICフラグ)毎に有効にされることが可能であるならば、「ポストリコンストラクション」フィルタリング処理は、LICフラグが今述べたコンポーネントに対して有効にされている場合には、1つのコンポーネントに対して無効にされる。
【0089】
OBMCに対するパイプラインの削減:
OBMCは、サンプル毎の処理の平均量が、ピクチャにおいて小ブロックの数が多いときに著しく増加される間、小ブロックに対してより小さい符号化効率を有し得る。1つは、次の限定のうちの1つまたは複数によってパイプラインを軽減することがある。
一態様にて、OBMCは、小ブロック(たとえば、4x4)に対して無効にされている(すなわち、使用されない)。一態様にて、OBMCは、彩度ブロックに行われない。一態様にて、OBMCは、カレントブロックがLICを使用する場合に無効にされる(すなわち、使用されない)。一態様にて、LICは、OBMC処理にて使用されない。一態様にて、BIOは、OBMC処理にて使用されない。
【0090】
BIOに対するパイプラインの削減:
一態様にて、BIOは、GBI重みがデフォルトではないならば無効にされる。
BIOおよびDMVRは、MVをリファインすることである同一の目的を有する2つの技法である。それゆえ、BIOは、DMVRがカレントブロックに対して使用される場合に無効にされ、反対の場合も同じである(相互排他)。
【0091】
DMVRに対するパイプラインの削減:
最新の状況にて、LICは、DMVRにより無効にされている。確かに、テストされる各MVに対してLICパラメーターの計算を含むLICを有効にすることは、計算量を著しく増加させる。LICなしにDMVRを行い、
図1にて描かれている、DMVRステージの後にLIC処理を可能にすることが提案されている。しかしながら、DMVRがLICを含まないので、MVリファインメントの精度は、著しく減らされる。今述べた限定に対処するために、1つは、(DMVRによるMVリファインメントの前に)MV
initialを使用して、DMVR処理においてLICパラメーターをリファインすることなく、LICパラメーター計算を行う、すなわち、LICパラメーターは、
図13に描かれている、DMVR処理においてまたは後に計算されない。
【0092】
デブロッキングフィルターに対するパイプラインの削減:
一態様にて、DBFの強さは、1つのエッジにおいて、OBMCが今述べたエッジに適用されるならば、および/または有効にされたLICまたはBIOを有する1つのブロックに今述べたエッジが属する場合に、減らされる。
【0093】
本出願は、ツール、特徴、態様、モデル、アプローチなどを含むいろいろな様相を説明する。今述べた様相の多くは、特殊性を有して説明され、少なくとも個々の特性を示すために、多くの場合、限定するような印象を与え得るやり方において説明される。しかしながら、今述べたことは、説明における明確さの目的のためであり、今述べた様相の適用または範囲を限定しない。確かに、異なった様相のすべては、組み合わされ、入れ替えられて、さらなる様相を提供することが可能である。さらにその上、態様は、同様に、より早い出願にて説明された様相と組み合わされ、入れ替えられることが可能である。
【0094】
本出願において説明されるおよび想定される様相は、多くの異なったかたちにおいて実装されることが可能である。以下に、
図15、16、および17は、いくつかの態様を提供するが、他の態様が想定され、
図15、16、および17は、実装の広さを限定しない。一般に、様相のうちの少なくとも1つは、ビデオエンコーディングおよびデコーディングに関し、一般に、少なくとも1つの他の態様は、生成されたまたはエンコードされたビットストリームを送信することに関する。今述べた様相および他の様相は、説明された方法のいずれかに従ってビデオデータをエンコードまたはデコードするために、方法、装置、命令を格納したコンピューター読み取り可能な記録媒体、および/または説明された方法のいずれかに従って生成されたビットストリームを格納したコンピューター読み取り可能な記録媒体として実装されることが可能である。
【0095】
種々の方法が本明細書にて説明され、方法の各々は、説明されている方法を達成するために1つまたは複数のステップまたは動作を含む。ステップまたは動作の特定の順が方法の固有の操作に対して必要とされない限り、特定のステップおよび/または動作の順および/または使用は、修正される、または組み合わされることがある。
【0096】
本出願にて説明された種々の方法および他の様相は、例えば、
図15および16に示されている、動き補償モジュール(170、275)、動きリファインメントモジュール(190、290)、LICモジュール(195、295)、ビデオエンコーダー100およびデコーダー200の多重予測組み合わせ(multiple predictions combination)モジュール(105、270)を修正するのに使用されることが可能である。さらにその上、本様相は、VVCまたはHEVCに限定されず、例えば、以前から存在しようが将来開発されようが、他の規格および勧告に、ならびにどれかの上記の規格および勧告(VVCおよびHEVCを含む)の拡張に適用されることが可能である。特に示されない限り、または特に技術的に妨げられない限り、本出願にて説明された様相は、個々にまたは組み合わせにおいて使用されることが可能である。
【0097】
種々の数値が本出願にて使用される。特定の値は、例示的な目的のためであり、説明された様相は、今述べた特定の値に限定されない。
【0098】
図15は、エンコーダー100を例示する。エンコーダー100の変形が想定されるが、エンコーダー100は、すべての予期される変形を説明することなく、明確さの目的のために以下に説明される。
【0099】
エンコードされる前に、ビデオシーケンスは、プレエンコーディング(pre-encoding)処理(101)を、例えば、色変換を入力カラーピクチャに適用すること(たとえば、RGB4:4:4からYCbCr4:2:0へのコンバージョン)、または信号分布を圧縮に対してより回復力のある状態にするために入力ピクチャコンポーネントの再マッピングを行うこと(たとえば、色コンポーネントのうちの1つのヒストグラムイコライゼーションを使用すること)を通り抜けることがある。メタデータは、前処理に関連付けられ、ビットストリームに結び付けられることが可能である。
【0100】
エンコーダー100において、ピクチャは、以下に説明されているエンコーダーエレメントによってエンコードされる。エンコードされるピクチャは、分割(102)され、例えば、CUのユニットにて処理される。各ユニットは、例えば、イントラかインターモードかのいずれかを使用してエンコードされる。ユニットがイントラモードにてエンコードされるとき、イントラ予測(160)を行う。インターモードにて、動き推定(175)、おそらく動きリファインメント(190)、動き補償(170)、およびおそらく照明補償(195)が行われる。動きリファインメントは、DMVRまたはBIOを使用することがある。エンコーダーは、ユニットをエンコードするために使用するイントラモードまたはインターモードのうちのいずれか1つを決定(105)し、例えば、予測モードフラグによってイントラ/インター決定を示す。さらに、エンコーダーは、たとえば、MHモードまたは双方向予測モードにていくつかの予測を組み合わせる(105)こともある。予測残差は、例えば、予測されているブロックを元の画像ブロックから減じる(110)ことによって計算される。
【0101】
次に、予測残差は、変換(125)され、量子化(130)される。量子化されている変換係数は、動きベクトルおよび他のシンタックスエレメントも同様に、ビットストリームを出力するのにエントロピー符号化(145)される。エンコーダーは、変換をスキップし、変換されていない残差信号に直に量子化を適用することが可能である。エンコーダーは、変換も量子化も両方バイパスすることが可能であり、すなわち、残差は、変換処理も量子化処理も適用なしに直に符号化される。
【0102】
エンコーダーは、エンコードされているブロックをデコードして、さらなる予測のために参照を提供する。量子化されている変換係数は、予測残差をデコードするために、逆量子化(140)され逆変換(150)される。デコードされている予測残差と予測されているブロックとを組み合わせ(155)て、画像ブロックが再構成される。インループフィルター(165)は、再構成されているピクチャに適用されて、例えば、エンコードのアーチファクトを減らすデブロッキング/SAO(Sample Adaptive Offset)フィルタリングを行う。フィルタリングされている画像は、参照ピクチャバッファ(180)に格納される。
【0103】
図16は、ビデオデコーダー200のブロック図を例示する。デコーダー200において、ビットストリームは、以下に説明されているデコーダーエレメントによってデコードされる。一般に、ビデオデコーダー200は、
図15にて説明されているエンコーディングパスと逆のデコーディングパスを行う。さらに、一般に、エンコーダー100も、ビデオデータをエンコードする一部としてビデオデコーディングを行う。
【0104】
特に、デコーダーの入力は、ビデオエンコーダー100によって生成されることが可能であるビデオビットストリームを含む。最初に、ビットストリームは、変換係数、動きベクトル、および他の符号化情報を取得するために、エントロピーデコード(230)される。ピクチャ分割情報は、ピクチャがどのように分割されるかを示す。それゆえ、デコーダーは、デコードされているピクチャ分割情報に従ってピクチャを区分(235)することがある。変換係数は、予測残差をデコードするために、逆量子化(240)され逆変換(250)される。デコードされている予測残差と予測されているブロックとを組み合わせ(255)て、画像ブロックが再構成される。予測されているブロックは、イントラ予測(260)、動き補償されている予測(すなわち、インター予測)(275)から、またはいくつかの予測(たとえば、MHモードにて、または双方向モードにて)の組み合わせ(270)から取得されることが可能である。さらに、動き補償されている予測は、照明にて補償(295)されることがある。エンコーダーのように、さらに、デコーダーも、デコードされている動きベクトルを(たとえば、DMVRまたはBIOを使用して)リファイン(290)するように構成されたモジュールを含む。インループフィルター(265)は、再構成されている画像に適用される。フィルタリングされている画像は、参照ピクチャバッファ(280)に格納される。
【0105】
さらに、デコードされているピクチャは、ポストデコーディング(post-decoding)処理(285)を、例えば、逆色変換(たとえば、YCbCr4:2:0からRGB4:4:4へのコンバージョン)、またはプレエンコーディング処理(101)にて行われた再マッピング処理の逆を行う逆再マッピングを通り抜けることが可能である。ポストデコーディング処理は、プレエンコーディング処理にて導出された、ビットストリームにてシグナリングされたメタデータを使用することが可能である。
【0106】
図17は、種々の様相および態様が実装されるシステムの例についてのブロック図を例示する。システム1000は、以下に説明される種々のコンポーネントを含むデバイスとして具体化されることが可能であり、本文書にて説明される1つまたは複数の様相を行うように構成される。上記のデバイスの例は、限定されないが、例えば、パーソナルコンピューター、ラップトップコンピューター、スマートフォン、タブレットコンピューター、デジタルマルチメディアセットトップボックス、デジタルテレビ放送受信機、パーソナルビデオレコーディングシステム、連結される家庭用電気機器、およびサーバーなどの種々の電子デバイスを含む。システム1000のエレメントは、単独にまたは組み合わせにて、単一の集積回路(IC)、複数のIC、および/または個別のコンポーネントに具体化されることが可能である。例えば、少なくとも1つの態様にて、システム1000の処理およびエンコーダー/デコーダーエレメントは、複数のICおよび/または個別のコンポーネントにわたって分散される。種々の態様にて、システム1000は、例えば、通信バスを介して、または専用の入力および/もしくは出力ポートを介して、1つもしくは複数の他のシステム、または他の電子デバイスに通信接続される。種々の態様にて、システム1000は、本文書に説明される1つまたは複数の様相を実装するように構成される。
【0107】
システム1000は、例えば、本文書に説明される種々の様相を実装するためにロードされる命令を実行するように構成された少なくとも1つのプロセッサー1010を含む。プロセッサー1010は、埋め込まれたメモリー、入出力インターフェイス、および当技術分野にて知られている種々の他の回路を含むことが可能である。システム1000は、少なくとも1つのメモリー1020(たとえば、揮発性メモリーデバイス、および/または不揮発性メモリーデバイス)を含む。システム1000は、限定ではないが、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、PROM(Programmable Read-Only Memory)、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、フラッシュ、磁気ディスクドライブ、および/または光ディスクドライブを含む不揮発性メモリーおよび/または揮発性メモリーを含むことが可能であるストレージデバイス1040を含む。ストレージデバイス1040は、非限定の例として、内部ストレージデバイス、付属のストレージデバイス(分離できるストレージデバイス、および分離できないストレージデバイスを含む)、および/またはネットワークアクセス可能なストレージデバイスを含むことが可能である。
【0108】
システム1000は、例えば、エンコードされたビデオまたはデコードされたビデオを提供するデータを処理するように構成されたエンコーダー/デコーダーモジュール1030を含み、エンコーダー/デコーダーモジュール1030は、独自のプロセッサーおよびメモリーを含むことが可能である。エンコーダー/デコーダーモジュール1030は、エンコード機能および/またはデコード機能を行うデバイスに含まれることが可能であるモジュール(複数可)を表す。既知であるように、デバイスは、エンコードモジュールおよびデコードモジュールのうちの1つまたは両方を含むことが可能である。加えて、エンコーダー/デコーダーモジュール1030は、システム1000の別個のエレメントとして実装されることが可能である、または当業者に知られているようにハードウェアおよびソフトウェアの組み合わせとしてプロセッサー1010内に組み入れられることが可能である。
【0109】
本文書に説明される種々の様相を行うプロセッサー1010またはエンコーダー/デコーダー1030上にロードされるプログラムコードは、ストレージデバイス1040に格納され、続いてプロセッサー1010による実行のためにメモリー1020上にロードされることが可能である。種々の態様にしたがって、1つまたは複数のプロセッサー1010、メモリー1020、ストレージデバイス1040、およびエンコーダー/デコーダーモジュール1030は、本文書に説明されるプロセスの実行中に1つまたは複数の種々のアイテムを格納することが可能である。上記の格納されるアイテムは、限定しないが、入力ビデオ、デコードされたビデオ、またはデコードされたビデオの一部、ビットストリーム、行列、変数、ならびに等式、公式、演算、および操作ロジックの処理からの中間または最終の結果を含むことが可能である。
いくつかの態様にて、プロセッサー1010および/またはエンコーダー/デコーダーモジュール1030の内部のメモリーは、命令を記憶し、エンコードするまたはデコードする間に必要とされる処理にワーキングメモリーを提供するのに使用される。しかしながら、他の態様にて、処理デバイス(例えば、処理デバイスは、プロセッサー1010またはエンコーダー/デコーダーモジュール1030のいずれかであることが可能である)の外部のメモリーは、1つまたは複数の今述べた機能ために使用される。外部メモリーは、メモリー1020および/またはストレージデバイス1040、例えば、ダイナミック型揮発性メモリーおよび/または不揮発性フラッシュメモリーであることが可能である。いくつかの態様にて、外部不揮発性フラッシュメモリーを使用して、例えば、テレビのオペレーティングシステムを格納する。少なくとも1つの態様にて、例えばRAMのような高速外部ダイナミック型揮発性メモリーは、ビデオ符号化およびデコード操作に対して、例えば、MPEG-2(MPEGは、Moving Picture Experts Groupを引用し、さらにMPEG-2は、ISO/IEC13818と呼ばれ、さらに13818-1は、H.222として知られ、さらに13818-2は、H.262として知られる)、HEVC(HEVCは、さらにH.265およびMPEG-H Part2としても知られるHigh Efficiency Video Codingを引用する)、またはVVC(Versatile Video Coding、JVET、the Joint Video Experts Teamによって開発されている規格)などに対してワーキングメモリーとして使用される。
【0110】
システム1000のエレメントへの入力は、ブロック1130に示されるように、種々の入力デバイスを介して提供されることが可能である。上記の入力デバイスは、限定ではないが、(i)例えば、放送局によって電波を介して送信されるRF(radio frequency)信号を受信するRF部、(ii)COMP(Component)入力端子(またはCOMP入力端子のセット)、(iii)USB(Universal Serial Bus)入力端子、および/または(iv)HDMI(High Definition Multimedia Interface)入力端子を含む。
図10にて示されない他の例は、コンポジット映像を含む。
【0111】
種々の態様にて、ブロック1130の入力デバイスは、当技術分野にて知られているそれぞれの入力処理エレメントを関連付けている。例えば、RF部分は、(i)望まれる周波数を選択すること(信号を選択すること、または信号を周波数の帯域に帯域制限することとも言われる)と、(ii)選択された信号をダウンコンバートすることと、(iii)(例えば、)ある態様にてチャネルと言われることが可能である単一の周波数帯域を選択する周波数のより狭い帯域に再び帯域制限することと、(iv)ダウンコンバートされ帯域制限された信号を復調することと、(v)誤り訂正を行うことと、(vi)逆多重してデータパケットについて望まれるストリームを選択することと、に適しているエレメントに関連付けられることが可能である。種々の態様のRF部分は、今述べた機能を行う1つまたは複数のエレメント、例えば、周波数セレクター、信号セレクター、バンドリミッター、チャネルセレクター、フィルター、ダウンコンバーター、デモジュレーター、エラーコレクター、およびデマルチプレクサーを含む。RF部分は、例えば、受信信号を、より低い周波数(例えば、中間周波数もしくはベースバンドに近い周波数)に、またはベースバンドにダウンコンバートすることを含む、種々の機能を行うチューナーを含むことが可能である。1つのセットトップボックスの態様にて、RF部分および関連する入力処理エレメントは、ワイヤード媒体(例えば、ケーブル)を介して送信されるRF信号を受信し、フィルタリングし、ダウンコンバートし、および望まれる周波数帯域に再びフィルタリングすることによって周波数選択を行う。種々の態様は、上述した(および他の)要素の順序を再配置し、今述べた要素のいくつかを取り除き、および/または同様のまたは異なる機能を行う他の要素を加える。要素を加えることは、例えば、増幅器、およびアナログデジタル変換器を挿入することなど、既存の要素の間に要素を挿入することを含むことが可能である。種々の態様にて、RF部分は、アンテナを含む。
【0112】
追加として、USBおよび/またはHDMI端末は、システム1000を他の電子デバイスにUSBおよび/またはHDMIをわたって連結するために、それぞれのインターフェイスプロセッサーを含むことが可能である。入力処理の種々の様相、例えば、リードソロモン誤り訂正が、例えば、別個の入力処理IC内に、または必要に応じてプロセッサー1010内に実装されることが可能であることは、理解されることである。同様に、USBまたはHDMIインターフェイス処理の様相は、別個の入力処理IC内に、または必要に応じてプロセッサー1010内に実装されることが可能である。復調された、誤り訂正された、および逆多重されたストリームは、例えば、プロセッサー1010と、メモリーおよびストレージエレメントと協働して動作して必要に応じて出力デバイスにおける提出のためにデータストリームを処理するエンコーダー/デコーダー1030とを含む種々の処理エレメントに提供される。
【0113】
システム1000の種々のエレメントは、統合エンドされているハウジング内に提供されることが可能であり、統合されているハウジング内において、種々のエレメントは、相互接続され、適切な連結配列、例えば、I2C(Inter-IC)バス、配線、およびプリント回路基板を含む当技術分野にて知られている内部バスを使用して、そこの間においてデータを送信することが可能である。
【0114】
システム1000は、通信チャネル1060を介して他のデバイスとの通信を可能にする通信インターフェイス1050を含む。通信インターフェイス1050は、限定ではないが、通信チャネル1060を介してデータを送信するようにおよび受信するように構成されたトランシーバーを含むことが可能である。通信インターフェイス1050は、限定ではないが、モデムまたはネットワークカードを含むことが可能であり、通信チャネル1060は、例えば、ワイヤードおよび/またはワイヤレス媒体内に実装されることが可能である。
【0115】
データは、種々の態様にて、例えば、Wi-Fiネットワーク、例えば、IEEE802.11(IEEEは、Institute of Electrical and Electronics Engineersを引用する)などのワイヤレスネットワークを使用して、システム1000にストリーミングされるまたは他の方法により提供される。今述べた態様のWi-Fi信号は、Wi-Fi通信に合わせて変えられる通信チャネル1060および通信インターフェイス1050を介して受信される。通常、今述べた態様の通信チャネル1060は、ストリーミングアプリケーションおよび他のオーバーザトップ通信を可能にするために、インターネットを含む外部のネットワークへのアクセスを提供するアクセスポイントまたはルーターに連結される。他の態様は、ストリーミングされたデータをシステム1000に、入力ブロック1130のHDMI接続を介してデータを配信するセットトップボックスを使用して提供する。依然として、他の態様は、ストリーミングされたデータをシステム1000に、入力ブロック1130のRF接続を使用して提供する。上に示したように、種々の態様は、ストリーミングではないやり方においてデータを提供する。追加として、種々の態様は、Wi-Fi以外のワイヤレスネットワーク、例えば、セルラーネットワークまたはBluetoothネットワークを使用する。
【0116】
システム1000は、出力信号を、ディスプレイ1100、スピーカー1110、および他の周辺デバイス1120を含む種々の出力デバイスに提供することが可能である。種々の態様のディスプレイ1100は、例えば、タッチスクリーンディスプレイ、有機発光ダイオード(OLED)ディスプレイ、曲面ディスプレイ、および/または折り畳めるディスプレイのうちの1つまたは複数を含む。ディスプレイ1100は、テレビ、タブレット、ラップトップ、セルラーフォン(モバイルフォン)、または他のデバイス用であることが可能である。さらに、ディスプレイ1100は、(例えば、スマートフォンにおけるような)他のコンポーネントと統合される、または(例えば、ラップトップ用の外部モニターと)分離することも可能である。態様の種々の例にて、その他の周辺デバイス1120は、スタンドアロンのデジタルビデオディスク(またはデジタルバーサタイルディスク)(両方の用語に対して、DVR)、ディスクプレーヤー、ステレオシステム、および/または照明システムのうちの1つまたは複数を含む。種々の態様は、システム1000の出力に基づいて機能を提供する1つまたは複数の周辺デバイス1120を使用する。例えば、ディスクプレーヤーは、システム1000の出力をプレイする役割を行う。
【0117】
種々の態様にて、制御信号は、システム1000と、ディスプレイ1100、スピーカー1110、または他の周辺デバイス1120との間において、例えば、AV.Link、CEC(Consumer Electronics Control)、またはユーザーの介入の有無にかかわらずデバイスツーデバイス制御を可能にする他の通信プロトコルのようなシグナリングを使用して通信される。出力デバイスは、それぞれのインターフェイス1070、1080、および1090を通じて専用のコネクションを介してシステム1000に通信接続されることが可能である。代替として、出力デバイスは、システム1000に、通信チャネル1060を使用して通信インターフェイス1050を介して連結されることが可能である。ディスプレイ1100およびスピーカー1110は、システム1000のその他のコンポーネントにより単一のユニットにおいて、例えば、テレビのような電子デバイスにおいて統合されることが可能である。種々の態様にて、ディスプレイインターフェイス1070は、例えば、タイミングコントローラ(T Con)チップのようなディスプレイドライバーを含む。
【0118】
代替として、ディスプレイ1100およびスピーカー1110は、例えば、入力1130のRF部分が別個のセットトップボックスの一部であるならば、1つまたは複数のその他のコンポーネントから分離されることが可能である。ディスプレイ1100およびスピーカー1110が外部コンポーネントである種々の態様にて、出力信号は、例えば、HDMIポート、USBポート、またはCOMP出力を含む専用の出力コネクションを介して提出されることが可能である。
【0119】
態様は、プロセッサー1010によって実装されるコンピュータソフトウェアによって、またはハードウェアによって、またはハードウェアおよびソフトウェアの組み合わせによって実行されることが可能である。非限定の例として、態様は、1つまたは複数の集積回路によって実装されることが可能である。メモリー1020は、技術的環境に適したどんなタイプのでもあることが可能であり、例えば、非限定の例として、光メモリーデバイス、磁気メモリーデバイス、半導体ベースのメモリーデバイス、固定メモリー、および取り外し可能なメモリーなどのどんな適したデータストレージ技術でも使用して実装されることが可能である。プロセッサー1010は、技術環境に適したどんなタイプのでもあることが可能であり、非限定の例として、マイクロプロセッサー、汎用コンピューター、専用コンピューター、およびマルチコアアーキテクチャに基づくプロセッサーのうちの1つまたは複数を含み込むことが可能である。
【0120】
種々の実装は、デコードすることを含む。本出願にて使用されている「デコードすること」は、例えば、ディスプレイに適している最終的な出力を生成するために、受信しているエンコードしているシーケンスに行われる処理のすべてまたは一部を含み込むことが可能である。種々の態様にて、上記の処理は、デコーダーによって通常行われる処理、例えば、エントロピーデコーディング、逆量子化、逆変換、および差分デコーディングのうちの1つまたは複数を含む。種々の態様にて、さらにまたは代替えとして、上記の処理は、本出願にて説明された種々の実装のデコーダーによって行われる処理、例えば、動きおよび照明補償、動きリファインメント、ならびに多重予測組み合わせ(multiple predictions combination)を含む。
【0121】
さらなる例として、一態様にて「デコードすること」は、「エントロピーデコーディング」のみを引用し、別の態様にて「デコードすること」は、差分デコーディングのみを引用し、別の態様にて「デコードすること」は、エントロピーデコーディングおよび差分デコーディングの組み合わせを引用する。語句「デコード処理」が具体的に演算のサブセットを引用することが意図されようと一般的により広く引用することが意図されようと、デコード処理は、特定の説明の文脈に基づいて明らかになるだろう、および当業者によって十分に理解されると信じられる。
【0122】
種々の実装は、エンコードすることを含む。「デコードすること」についての上の議論に類似したやり方において、本出願にて使用されている「エンコードすること」は、例えば、エンコードされているビットストリームを生成するために、入力ビデオシーケンスに行われる処理のすべてまたは一部を含み込むことが可能である。種々の態様にて、上記の処理は、エンコーダーによって通常行われる処理、例えば、分割、差分エンコーディング、変換、量子化、およびエントロピーエンコーディングのうちの1つまたは複数を含む。種々の態様にて、さらにまたは代替えとして、上記の処理は、本出願にて説明された種々の実装のエンコーダーによって行われる処理、例えば、動きおよび照明補償、動きリファインメント、ならびに多重予測組み合わせ(multiple predictions combination)を含む。
【0123】
さらなる例として、一態様にて「エンコードすること」は、「エントロピーデコーディング」のみを引用し、別の態様にて「エンコードすること」は、差分デエンコードのみを引用し、別の態様にて「エンコードすること」は、差分エンコーディングおよびエントロピーエンコーディングの組み合わせを引用する。語句「エンコード処理」が具体的に演算のサブセットを引用することが意図されようと一般的により広く引用することが意図されようと、エンコード処理は、特定の説明の文脈に基づいて明らかになるだろう、および当業者によって十分に理解されると信じられる。
本明細書にて使用されているシンタックスエレメント、例えば、ICフラグは、記述的な用語であることに注意する。上記のような、それらは、他のシンタックスエレメント名の使用を排除しない。
【0124】
図がフロー図として与えられるとき、さらにそれは対応する装置のブロック図も提供することが理解されるべきである。同様に、図がブロック図として与えられるとき、さらにそれは対応する方法/処理のフロー図も提供することが理解されるべきである。
【0125】
種々の態様は、レート歪み最適化を引用する。特に、エンコード処理の間、レートと歪みとの間のバランスまたはトレードオフが、通例、考慮され、多くの場合、計算に関する複雑の制約が与えられる。通例、レート歪み最適化は、レート歪み関数を最小化することとして定式化され、レートのおよび歪みの重みつき合計である。レート歪み最適化問題を解くための異なったアプローチがある。例えば、アプローチは、符号化およびデコードの後に再構成されている信号の符号化コストおよび関係している歪みについての完全な評価とともに、すべての考慮されるモードまたは符号化パラメーター値を含むすべてのエンコードオプションの広範囲なテストに基づくことがある。さらに、より高速なアプローチは、エンコードの複雑さを除くために、特に、再構成されている1つではなく予測または予測残差信号に基づいた近似されている歪みの計算とともに使用されることもある。今述べた2つのアプローチの混合は、例えば、可能性のあるエンコードオプションのいくつかだけに対して近似されている歪みと、他のエンコードオプションに対して完全な歪みと、を使用することによってなど、使用されることも可能である。他のアプローチは、可能性のあるエンコードオプションのサブセットを評価するだけである。より一般に、多くのアプローチは、最適化を行ういろいろな技法のいずれかを用いるが、最適化は、必ずしも符号化コストと関係している歪みとの両方の完全な評価であるとは限らない。
【0126】
本明細書に説明された実装および様相は、例えば、方法もしくは処理、装置、ソフトウェアプログラム、データストリーム、または信号において実装されることが可能である。実装の単一のかたちの文脈においてのみ述べられる(例えば、方法としてのみ述べられる)場合でさえ、さらに、述べられた特徴の実装は、他のかたち(例えば、装置またはプログラム)において実装されることも可能である。装置は、例えば、適切なハードウェア、ソフトウェア、およびファームウェアにおいて実装されることが可能である。方法は、例えば、コンピューター、マイクロプロセッサー、集積回路、またはプログラマブルロジックデバイスを含む、一般に処理デバイスを引用する、例えば、プロセッサーにおいて実装されることが可能である。さらに、プロセッサーは、例えば、コンピューター、携帯電話、ポータブル/パーソナルデジタルアシスタント(「PDA」)、およびエンドユーザー間において情報の通信を容易にする他のデバイスなど、通信デバイスも含む。
【0127】
「一態様」または「態様」または「一実装」または「実装」への言及は、他の変形も同様に、態様に関連して説明された特定の特徴、構造、特性などが、少なくとも1つの態様に含まれることを意味する。ゆえに、本出願の至る所に種々の場所に現れている語句「一態様にて」または「態様にて」または「一実装にて」または「実装にて」の出現は、どんな他の変形でも同様に、必ずしも同一の態様をすべて引用しているとは限らない。
【0128】
追加として、本出願は、情報の種々の部分を「決定すること」を引用することがある。情報を決定することは、例えば、情報を推定すること、情報を計算すること、情報を予測すること、または情報をメモリーから検索することのうちの1つまたは複数を含むことが可能である。
【0129】
さらに、本出願は、情報の種々の部分に「アクセスすること」を引用することがある。情報にアクセスすることは、例えば、情報を受信すること、情報を(例えば、メモリーから)検索すること、情報を格納すること、情報を移動すること、情報をコピーすること、情報を計算すること、情報を決定すること、情報を予測すること、または情報を推定することのうちの1つまたは複数を含むことが可能である。
【0130】
追加として、本出願は、情報の種々の部分を「受信すること」を引用することがある。受信することは、「アクセスすること」に関してのように、広い用語であることが意図される。情報を受信することは、例えば、情報にアクセスすること、または情報を(例えば、メモリーから)検索することのうちの1つまたは複数を含むことが可能である。さらに、通常、「受信すること」は、何らかの仕方または別の仕方において、例えば、情報を格納すること、情報を処理すること、情報を送信すること、情報を移動すること、情報をコピーすること、情報を消去すること、情報を計算すること、情報を決定すること、情報を予測すること、または情報を推定することなどの動作の間に含まれる。
【0131】
次の「/」、「および/または」、および「のうちの少なくとも1つ」のいずれかの使用は、例えば、「A/B」、「Aおよび/またはB」、および「AおよびBのうちの少なくとも1つ」の場合、第1の列挙されている選択肢(A)のみの選択、または第2の列挙されている選択肢(B)のみの選択、または両方の選択肢(AおよびB)の選択を含み込むことが意図されることは、理解されるべきである。さらなる例として、「A、B、および/またはC」および「A、B、およびCの少なくとも1つ」の場合、上記語句は、第1の列挙されている選択肢(A)のみの選択、または第2の列挙されている選択肢(B)のみの選択、または第3の列挙されている選択肢(C)のみの選択、または第1および第2の列挙されている選択肢(AおよびB)のみの選択、または第1のおよび第3の列挙されている選択肢(AおよびC)のみの選択、または第2および第3の列挙されている選択肢(BおよびC)、またはすべての3つの選択肢(AおよびBおよびC)の選択を含み込むことが意図される。今述べたことは、当業者および関連業者に明らかであるように、列挙されているだけの事項に対して拡張され得る。
【0132】
さらに、本明細書にて使用されている、単語「シグナリング」は、とりわけ、対応するデコーダーへ何かを示すことを引用する。例えば、ある態様にて、エンコーダーは、符号化モードのうちの特定の1つをシグナリングする。このようにして、態様にて、同一のパラメーターは、エンコーダー側およびデコーダー側の両方に使用される。ゆえに、例えば、エンコーダーは、特定のパラメーターをデコーダーに送信(明示的なシグナリング)することが可能であって、デコーダーは、同一の特定のパラメーターを使用することが可能である。反対に、デコーダーが特定のパラメーターを他も同様にすでに有しているならば、シグナリングは、デコーダーに特定のパラメーターを知り選択することを単に可能にするのに、送信することなく使用されること(暗黙的なシグナリング)が可能である。どの現実の関数でも送信を回避することによって、ビットの節約が種々の態様にて実現される。シグナリングがいろいろなやり方において遂行されることが可能であることは、理解されることである。例えば、1つまたは複数のシンタックスエレメント、フラグなどは、種々の態様にて、対応するデコーダーに情報をシグナリングするのに使用される。これまでのことは、単語「シグナリング」の動詞形に関するが、さらに、単語「シグナリング」は、本明細書にて名詞として使用されることも可能である。
【0133】
当業者には明らかであろうように、実装は、例えば、格納されるまたは送信されることが可能である情報を運ぶようにフォーマットされたいろいろな信号を生成することが可能である。例えば、情報は、方法を行うための命令、または説明されている実装のうちの1つによって生成されるデータを含むことが可能である。例えば、信号は、説明されている態様のビットストリームを運ぶようにフォーマットされることが可能である。例えば、上記の信号は、電磁波として(例えば、スペクトルの無線周波部分を使用して)またはベースバンド信号としてフォーマットされることが可能である。例えば、フォーマッティングは、データストリームをエンコードすることと、エンコードされたデータストリームにより搬送波を変調することとを含むことが可能である。例えば、信号が運ぶ情報は、アナログまたはデジタル情報であることが可能である。信号は、知られているように、いろいろな別々のワイヤードまたはワイヤレスリンクを介して送信されることが可能である。信号は、プロセッサー読み取り可能な媒体において格納されることが可能である。
【0134】
我々は、多くの態様を説明する。今述べた態様の特徴は、単独にてまたはどんな組み合わせにおいても提供されることが可能である。さらに、態様は、次の特徴、デバイス、または様相のうちの1つまたは複数を、単独にてまたはどんな組み合わせにおいても、種々のクレームのカテゴリおよびタイプにわたって含むことが可能である。
・説明された態様のいずれかに従って、動きおよび照明補償、動きリファインメント、ならびに多重予測組み合わせの適合を行うテレビ、セットトップボックス、携帯電話、タブレット、または他の電子デバイス。
・説明された態様のいずれかに従って、動きおよび照明補償、動きリファインメント、ならびに多重予測組み合わせの適合を行い、結果の画像を(たとえば、モニター、スクリーン、または他の種類のディスプレイを使用して)表示するテレビ、セットトップボックス、携帯電話、タブレット、または他の電子デバイス。
・チャネルを(たとえば、チューナーを使用して)合わせて、エンコードされている画像を含む信号を受信し、説明された態様のいずれかに従って、動きおよび照明補償、動きリファインメント、ならびに多重予測組み合わせの適合を行うテレビ、セットトップボックス、携帯電話、タブレット、または他の電子デバイス。
・エンコードされている画像を含む電波を介して信号を(たとえば、アンテナを使用して)受信し、説明された態様のいずれかに従って、動きおよび照明補償、動きリファインメント、ならびに多重予測組み合わせの適合を行うテレビ、セットトップボックス、携帯電話、タブレット、または他の電子デバイス。
【0135】
少なくとも1つの態様の一般的な様相に従って、次を含むデコード方法が開示される。
-カレントブロックに対してパラメーターをデコードすることと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、およびデコードされているパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをデコードすること。
【0136】
少なくとも1つの態様の一般的な様相に従って、次を含むエンコード方法が開示される。
-カレントブロックに対してパラメーターを取得することと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、およびデコードされているパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをエンコードすること。
【0137】
少なくとも1つの態様の一般的な様相に従って、次を行うように構成された1つまたは複数のプロセッサー含むデコード装置が開示される。
-カレントブロックに対してパラメーターをデコードすることと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、およびデコードされているパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをデコードすること。
【0138】
少なくとも1つの態様の一般的な様相に従って、次を行うように構成された1つまたは複数のプロセッサー含むエンコード装置が開示される。
-カレントブロックに対してパラメーターを取得することと、
-次の条件、第1の符号化ツールが前述のカレントブロックに対して使用される、およびデコードされているパラメーターに与えられた条件が検証される、のうちの1つまたは複数が検証される場合に、前述のカレントブロックに対して符号化ツールを無効にすること、
-もしそうでなければ前述の符号化ツールを前述のカレントブロックに対して有効にすること、ならびに
-符号化ツールに応答する前述のカレントブロックをエンコードすること。
【0139】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、多重仮説符号化モードがカレントブロックに対して使用される場合にインター双方向予測を無効にすることを含む。
【0140】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、多重仮説符号化モードがカレントブロックに対して使用される場合に局所的な照明補償(local illumination compensation)を無効にすることを含む。
【0141】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、多重仮説符号化モードがカレントブロックに対して使用される場合に三角形分割することを無効にすることを含む。
【0142】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、小ブロックおよび彩度コンポーネントのうちの1つまたは複数に対して局所的な照明補償またはOBMCを無効にすることを含む。
【0143】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、一般化された双方向予測(generalized bi-prediction)の重みがデフォルト重みに等しくない場合に局所的な照明補償を無効にすることを含む。
【0144】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、局所的な照明補償が前述のカレントブロックに対して有効にされる場合に、一般化された双方向予測を無効にすること(または一般化された双方向予測の重みをデフォルト重みに設定すること)と、一般化された双方向予測インデックス(generalized bi-prediction index)を符号化しないこととを含む。
【0145】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、局所的な照明補償によって使用された前述のカレントブロックの近接のサンプルが、デフォルト重みに等しくない一般化された双方向予測の重みを使用するブロックに、属する場合に、局所的な照明補償を無効にすることを含む。
【0146】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、局所的な照明補償が使用される場合にオーバーラップブロック動き補償を無効にすることを含む。
【0147】
一態様にて、次の条件のうちの1つまたは複数が検証される場合に前述のカレントブロックに対して符号化ツールを無効にすることは、オーバーラップブロック動き補償が使用される場合に重みがオーバーラップブロック動き補償処理においてデフォルト重みに等しくない場合に局所的な照明補償および/または一般化された双方向予測を無効にすることを含む。