(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-26
(54)【発明の名称】ビデオ・コーディングのための方法及び装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20220419BHJP
H04N 19/50 20140101ALI20220419BHJP
【FI】
H04N19/70
H04N19/50
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021552151
(86)(22)【出願日】2020-03-18
(85)【翻訳文提出日】2021-09-02
(86)【国際出願番号】 US2020023336
(87)【国際公開番号】W WO2020191034
(87)【国際公開日】2020-09-24
(32)【優先日】2019-03-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-04-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-04-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RB09
5C159RC11
5C159SS26
5C159UA02
5C159UA05
5C159UA16
5C159UA22
(57)【要約】
ビデオ復号化用の装置は処理回路を含む。回路は、PROFをアフィン・コーディングされたブロックに適用するかどうかを決定し、PROFをアフィン・コーディングされたブロックに適用する旨の決定に応じて、PROFプロセスを実行するように構成することが可能である。例えば、PROFプロセス中に、アフィン・コーディングされたブロックのサンプル位置(i, j)における予測サンプルI(i,j)を生成することが可能である。 アフィン・コーディングされたブロックのサンプル位置(i, j)における空間勾配g_x(i,j)及びg_y(i,j)を生成することが可能である。空間勾配g_x(i,j)及びg_y(i,j)に基づいて予測リファインメントΔI(i,j)を生成することが可能である。予測リファインメントΔI(i,j)を予測サンプルI(i,j)に加えて、精密化された予測サンプルを生成することが可能である。デコーダで受信したシンタックス要素に従って、PROFはアフィン予測に対して有効にされることが可能であり、或いはデフォルトで有効にされることが可能である。
【特許請求の範囲】
【請求項1】
ビデオ・デコーダによるビデオ・コーディングの方法であって:
オプティカル・フローによる予測リファリンメント(PROF)がアフィン予測に対して無効にされるかどうかを示すシンタックス要素を受信するステップと;
前記シンタックス要素に基づいて、前記PROFをアフィン・コーディングされたブロックに適用するかどうかを決定するステップと;
前記シンタックス要素が前記PROFを前記アフィン・コーディングされたブロックに適用しないことを示していることに応じて、前記アフィン・コーディングされたブロックに対して前記PROFを無効にするステップと;
を含む方法。
【請求項2】
前記シンタックス要素が前記PROFを前記アフィン・コーディングされたブロックに適用することを示していることに応じて、
予測サンプルI(i,j)の前記アフィン・コーディングされたブロック内のサンプル位置(i, j)における空間勾配g
x(i,j)及びg
y(i,j)を生成し、
前記空間勾配g
x(i,j)及びg
y(i,j)に基づいて予測リファインメントΔI(i,j)を生成し、
前記予測リファインメントΔI(i,j)を前記予測サンプルI(i,j)に加えて、精密化された予測サンプルを生成するステップ
を更に含む請求項1に記載の方法。
【請求項3】
デフォルトで前記PROFはアフィン予測に対して有効にされている、請求項1又は2に記載の方法。
【請求項4】
前記シンタックス要素は、シーケンス・レベル、スライス・レベル、タイル・レベル、タイル・グループ・レベル、又はピクチャ・レベルでシグナリングされる、請求項1-3のうちの何れか1項に記載の方法。
【請求項5】
前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定する前記ステップは、
前記アフィン・コーディングされたブロックのアフィン・モデルのアフィン・パラメータの値に基づいて、前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定するステップ
を含む、請求項1-4のうちの何れか1項に記載の方法。
【請求項6】
前記サンプル位置(i,j)における前記空間勾配g
x(i,j)及びg
y(i,j)を生成することは、
前記予測サンプルI(i,j)を含む第1サブ・ブロックの第1予測サンプルと前記第1サブ・ブロックに隣接する第2サブ・ブロックの第2予測サンプルとに基づいて、前記サンプル位置(i,j)における前記空間勾配g
x(i,j)及びg
y(i,j)を生成することを含み、
前記第1サブ・ブロックと前記第2サブ・ブロックは前記アフィン・コーディングされたブロックからパーティション化されている、請求項2に記載の方法。
【請求項7】
前記サンプル位置(i,j)における前記空間勾配g
x(i,j)及びg
y(i,j)を生成することは、
前記アフィン・コーディングされたブロックのサブ・ブロックについてインター予測を実行し、
アフィン・コーディングされたブロック全体の予測サンプルに基づいて、サンプル位置における空間勾配を生成することを含む、請求項2に記載の方法。
【請求項8】
前記サンプル位置(i,j)における前記空間勾配g
x(i,j)及びg
y(i,j)を生成することは、
前記アフィン・コーディングされたブロックの参照ピクチャ内の参照サンプルにおいて生成された勾配フィルタを利用して、前記サンプル位置(i,j)における前記空間勾配g
x(i,j)及びg
y(i,j)を生成することを含む、請求項2に記載の方法。
【請求項9】
前記生成された勾配フィルタは、第1勾配フィルタと補間フィルタの畳み込みにより生成され、
前記アフィン・コーディングされたブロックの前記参照ピクチャ内の前記参照サンプルに前記補間フィルタを適用することは、前記アフィン・コーディングされたブロックの予測サンプルを生成し、次いで、前記アフィン・コーディングされたブロックの前記生成された予測サンプルに前記第1勾配フィルタを適用することは、前記空間勾配g
x(i,j)及びg
y(i,j)を生成する、請求項8に記載の方法。
【請求項10】
前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定する前記ステップは、
前記PROFはアフィン予測に対して無効にされるかどうかを示す受信したシンタックス要素と、ローカル照明補償(LIC)は有効にされているかどうかを示すシグナリングとに基づいて、前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定するステップ
を含む、請求項1-4のうちの何れか1項に記載の方法。
【請求項11】
前記アフィン・コーディングされたブロックはアフィン・マージ・モードでコーディングされ、前記アフィン・コーディングされたブロックのLICフラグ値は、前記アフィン・コーディングされたブロックのアフィン・モデル構成又はアフィン・モデル継承のソースとして使用される前記アフィン・コーディングされたブロックの隣接ブロックから継承される、請求項1-10のうちの何れか1項に記載の方法。
【請求項12】
請求項1-11のうちの何れか1項に記載の方法を実行するように構成された回路を含む装置。
【請求項13】
請求項1-11のうちの何れか1項に記載の方法をコンピュータに実行させるコンピュータ・プログラム。
【請求項14】
ビデオ・エンコーダによるビデオ・コーディングの方法であって:
シンタックス要素を含むビットストリームをビデオ・デコーダに送信するステップを含み、
前記シンタックス要素は、オプティカル・フローによる予測リファリンメント(PROF)がアフィン予測に対して無効にされるかどうかを示し;
前記シンタックス要素が前記PROFを前記アフィン・コーディングされたブロックに適用しないことを示していることに応じて、前記アフィン・コーディングされたブロックに対して前記PROFは無効にされる、方法。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本願は、2020年3月18日付で出願された米国特許出願第16/822,075号「ビデオ・コーディングのための方法及び装置」の優先権を主張しており、同出願は、2019年3月18日付で出願された米国仮出願第62/820,196号「アフィン・インター予測リファインメント方法」、2019年4月2日付で出願された第62/828,425号「LICシグナリング及びアフィン・リファインメント」、2019年4月25日付で出願された第62/838,798号「インター予測リファインメント方法」の優先権を主張している。先の出願の開示は、それら全体で参照により本願に組み込まれる。
【0002】
技術分野
本開示は概してビデオ・コーディングに関連する実施形態を説明している。
【背景技術】
【0003】
本願で行われる背景の説明は、本開示の状況を一般的に提示するためのものである。目下の発明者名の下になされる仕事は、その仕事がこの背景のセクションだけでなく、別の方法で出願時における先行技術としての適格性を付与されない記述の態様で説明される範囲において、本開示に対する先行技術として、明示的にも暗示的にも認められていない。
【0004】
ビデオ符号化及び復号化は、動き補償を伴うインター・ピクチャ予測を用いて実行されることが可能である。非圧縮デジタル・ビデオは一連のピクチャを含むことが可能であり、各ピクチャは、例えば1920×1080のルミナンス・サンプル及び関連するクロミナンス・サンプルの空間次元を有する。一連のピクチャは、例えば60ピクチャ/秒、即ち60Hzの固定された又は可変のピクチャ・レート(非公式に、フレーム・レートとして知られている)を有することが可能である。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレーム・レートで1920×1080のルミナンス・サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオ符号化及び復号化の目的の1つは、圧縮による入力ビデオ信号の冗長性の低減であるということができる。圧縮は、場合によっては、2桁以上の大きさで、前述の帯域幅又は記憶スペース要件を低減するのに役立つ可能性がある。ロスレス及び非ロスレス圧縮の両方、並びにそれらの組み合わせを用いることができる。ロスレス圧縮とは、元の信号の正確なコピーが、圧縮された元の信号から再構成することができる技術をいう。非ロスレス圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪は、再構成された信号が、意図される用途にとって有用である程度に十分に小さい。ビデオの場合、非ロスレス圧縮が広く用いられている。許容される歪の量は、用途に依存し、例えば特定の消費者ストリーミング・アプリケーションのユーザーは、テレビ配信アプリケーションのユーザーよりも高い歪に耐え得る可能性がある。達成可能な圧縮比は、より高い許容可能な/耐え得る歪はより高い圧縮比をもたらし得ることを反映することが可能である。
【0006】
動き補償は、非ロスレス圧縮技術である可能性があり、動きベクトル(以下、MVとする)で示される方向に空間的にシフトした後に、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプル・データのブロックが、新たに再構成されるピクチャ又はピクチャの一部分の予測に使用される技術に関連する可能性がある。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じである可能性がある。MVは、2つの次元X及びY、又は3次元を有する可能性があり、第3の次元は、使用中の参照ピクチャの指示である(後者は、間接的に、時間次元であるとすることが可能である)。
【0007】
一部のビデオ圧縮技術では、サンプル・データの特定のエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプル・データの他のエリアに関連するものであって復号化の順番でそのMVに先行するものから、予測することが可能である。このようにすると、MVをコーディングするために必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を高めることができる。例えば、カメラ(ナチュラル・ビデオとして知られる)から導出される入力ビデオ信号をコーディングする際に、単一のMVが適用可能であるエリアよりも大きなエリアが、同様な方向に移動する統計的な尤度が存在し、従って場合によっては、隣接するエリアのMVから導出される同様な動きベクトルを用いて予測することが可能であるので、MV予測は効果的に機能する可能性がある。これは、与えられたエリアに対して、周囲のMVから予測されるMVに類似する又は同一であると見出されるMVをもたらし、それは、エントロピー・コーディングの後に、MVを直接的にコーディングする場合に使用されるものよりも、より少ないビット数で表現されることが可能である。場合によっては、MV予測は、元の信号(即ち、サンプル・ストリーム)から導出される信号(即ち、MV)のロスレス圧縮の例である可能性がある。他の場合に、MV予測それ自体は、例えば幾つかの周囲のMVから予測子を計算する際に、丸め誤差に起因して非ロスレスである可能性がある。
【0008】
様々なMV予測メカニズムは、H.265/HEVC(ITU-T Rec.H.265,“High Efficiency Video Coding”,December 2016)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本願で説明されるものは、今後「空間マージ」と呼ばれる技術である。
【0009】
図1を参照すると、現在のブロック(101)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって発見されているサンプルを含む。そのMVを直接的にコーディングする代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えばA0、A1、及びB0、B1、B2と示される5つの隣接するブロック(それぞれ102ないし106)の何れかに関連付けられたMVを使用して、(復号化の順序で)最新の参照ピクチャから、導出されることが可能である。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0010】
開示の態様はビデオ符号化/復号化のための方法及び装置を提供する。幾つかの例において、ビデオ復号化用の装置は処理回路を含む。回路は、PROFをアフィン・コーディングされたブロックに適用するかどうかを決定し、PROFをアフィン・コーディングされたブロックに適用する旨の決定に応じて、PROFプロセスを実行するように構成することが可能である。
【0011】
例えば、PROFプロセス中に、アフィン・コーディングされたブロックのサンプル位置(i, j)における予測サンプルI(i,j)を生成することが可能である。アフィン・コーディングされたブロックのサンプル位置(i, j)における空間勾配g_x(i,j)及びg_y(i,j)を生成することが可能である。空間勾配g_x(i,j)及びg_y(i,j)に基づいて予測リファインメントΔI(i,j)を生成することが可能である。予測リファインメントΔI(i,j)を予測サンプルI(i,j)に加えて、精密化された予測サンプルを生成することが可能である。
【0012】
一例では、PROFはアフィン予測に対して有効にされるかどうかを示すシンタックス要素は、デコーダで受信される。一例では、PROFは、デフォルトでアフィン予測に対して有効にされている。
【0013】
一例では、シンタックス要素は、シーケンス・レベル、スライス・レベル、タイル・レベル、タイル・グループ・レベル、又はピクチャ・レベルでシグナリングされる。一例では、PROFをアフィン・コーディングされたブロックに適用するかどうかは、アフィン・コーディングされたブロックのアフィン・モデルのアフィン・パラメータの値に基づいて決定することが可能である。一例では、サンプル位置(i,j)における空間勾配g_x(i,j)及びg_y(i,j)は、予測サンプルI(i,j)を含む第1サブ・ブロックの第1予測サンプルと第1サブ・ブロックに隣接する第2サブ・ブロックの第2予測サンプルとに基づいて生成される。第1サブ・ブロックと第2サブ・ブロックはアフィン・コーディングされたブロックからパーティション化されることが可能である。一例では、アフィン・コーディングされたブロックのサブ・ブロックについてインター予測が実行され、サンプル位置における空間勾配はアフィン・コーディングされたブロック全体の予測サンプルに基づいて生成される。
【0014】
一例では、サンプル位置(i,j)における空間勾配g_x(i,j)及びg_y(i,j)は、アフィン・コーディングされたブロックの参照ピクチャ内の参照サンプルにおいて生成された勾配フィルタを利用して生成される。例えば、生成された勾配フィルタは、第1勾配フィルタと補間フィルタの畳み込みにより生成することが可能である。アフィン・コーディングされたブロックの参照ピクチャ内の参照サンプルに補間フィルタを適用することは、アフィン・コーディングされたブロックの予測サンプルを生成し、次いで、アフィン・コーディングされたブロックの生成された予測サンプルに第1勾配フィルタを適用することは、空間勾配g_x(i,j)及びg_y(i,j)を生成する。
【0015】
一例では、PROFをアフィン・コーディングされたブロックに適用するかどうかは、PROFはアフィン予測に対して有効にされているかどうかを示す受信したシンタックス要素と、ローカル照明補償(LIC)は有効にされているかどうかを示すシグナリングとに基づいて決定される。一例では、アフィン・コーディングされたブロックはアフィン・マージ・モードでコーディングされ、アフィン・コーディングされたブロックのLICフラグ値は、アフィン・コーディングされたブロックのアフィン・モデル構成又はアフィン・モデル継承のソースとして使用されるアフィン・コーディングされたブロックの隣接ブロックから継承される。
【0016】
幾つかの例において、ビデオ復号化用の別の装置は処理回路を含むことが可能であり、処理回路は、現在のブロックの補間フィルタによりサポートされる低い精度と比較して高い精度を有する現在のブロックの中間動きベクトルMVbolckを決定するステップと、中間動きベクトルMVbolckを丸めて、現在のブロックの補間フィルタによりサポートされる低い精度を有する現在のブロックの丸められた動きベクトルMVroundを生成するステップと、丸められた動きベクトルMVroundと補間フィルタに基づいて、現在のブロックの予測ブロックを生成するステップとを行うように構成されている。予測リファインメント・オフセットΔI(i,j)は、
ΔI(i,j)= g_x(i,j)*Δv_x + g_y(i,j)*Δv_y
に従って決定することが可能であり、g_x(i,j)及びg_y(i,j)はそれぞれ、位置(i,j)における予測ブロックの予測サンプルの、x及びy方向に沿う勾配であり、Δv_x及びΔv_yはそれぞれ、中間動きベクトルMVblockと丸められた動きベクトルMVroundとの間のx及びy方向に沿う動きベクトル差分である。予測リファインメント・オフセットΔI(i,j)を予測ブロックの予測サンプルに加えて、精密化された予測サンプルを生成することが可能である。
【0017】
一例では、現在のブロックは、時間的動きベクトル予測モード(TMVP)、サブ・ブロック・ベースのTMVPモード(SbTMVP)、動きベクトル差分によるマージ・モード(MMVD)、アフィン・アドバンス動きベクトル予測(AMVP)、又は空間的動きベクトル予測モード、によりコーディングされたブロック又はサブ・ブロックであり、中間動きベクトルMVblockは動きベクトル・スケーリング・オペレーションで生成されるか、又は現在のブロックは、高い精度を有する動きベクトル予測子を利用してコーディングされる。
【0018】
一例では、シーケンス・パラメータ・セット(SPS)、ピクチャ・パラメータ・セット(PPS)、スライス・ヘッダ、タイル・グループ・ヘッダにおいて、高い精度を示すシンタックス要素を受信することが可能である。一例では、高い精度を有する中間動きベクトルMVblockをメモリに記憶することが可能である。空間動きベクトル予測のための中間動きベクトルMVblockを使用して、現在のブロックを含む現在のピクチャ内の他のブロックをコーディングすることが可能である。
【0019】
本開示の態様はまた、ビデオ復号化のためにコンピュータによって実行された場合に、ビデオ復号化のための方法をコンピュータに実行させる命令を記憶する非一時的なコンピュータ読み取り可能な媒体を提供する。
【図面の簡単な説明】
【0020】
開示される対象事項の更なる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付の図面から更に明らかになるであろう。
【0021】
【
図1】一例における現在のブロック及びその周囲の空間マージ候補の概略図である。
【0022】
【
図2】実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【0023】
【
図3】実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【0024】
【
図4】実施形態によるデコーダの簡略化されたブロック図の概略図である。
【0025】
【
図5】実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【0026】
【
図6】他の実施形態によるエンコーダのブロック図を示す。
【0027】
【
図7】他の実施形態によるデコーダのブロック図を示す。
【0028】
【
図8】実施形態に従って拡張マージ候補リストを構成するために一組の空間マージ候補を選択することが可能な候補位置を示す。
【0029】
【
図9】実施形態による冗長検査プロセスのための拡張マージ・リストにおける候補ペアを示す。
【0030】
【
図10】実施形態による現在のピクチャにおける拡張マージ・リストの時間マージ候補を導出する例を示す。
【0031】
【
図11】実施形態に従って拡張マージ・リストにおける時間マージ候補を選択することが可能な候補位置を示す。
【0032】
【
図12】実施形態に従って動きベクトル差分によるマージ・モード(MMVD)において予測を選択することが可能な予測位置を示す。
【0033】
【
図13A】2パラメータ・アフィン・モデルを表現するための2つの制御ポイント動きベクトル(CPMV)を示す
【0034】
【
図13B】3パラメータ・アフィン・モデルを表現するための2つのCPMVを示す。
【0035】
【
図14】アフィン予測モードでコーディングされた現在のブロックからパーティション化されたサブ・ブロックに対して導出された動きベクトルを示す。
【0036】
【
図15】継承されたアフィン・マージ候補を導出するための現在のブロックの隣接ブロックを示す。
【0037】
【
図16】構築されたアフィン・マージ候補を導出するための候補ブロック位置を示す。
【0038】
【
図17A】実施形態に従って空間的隣接ブロックの動き情報に基づいて、サブ・ブロック・ベースの時間的動きベクトル予測(SbTMVP)法を使用して、現在のブロックに対する動き情報を決定するために使用することが可能な空間的隣接ブロックの概略図である。
【0039】
【
図17B】一実施形態によるSbTMVP法のための選択された空間的隣接ブロックの概略図である。
【0040】
【
図18】実施形態によるオプティカル・フロー(PROF)法による予測リファインメントの一例の概略図である。
【0041】
【
図19】現在のブロック1900の隣接サンプル1901と、ローカル照明補償(LIC)パラメータを導出するために使用される対応する参照ブロック1910の隣接サンプルの例を示す。
【0042】
【
図20】ローカル照明補償(LIC)が双方向予測で使用される場合の例を示す。
【0043】
【
図21】LICが多重仮説イントラ・インターで使用される場合の例を示す。
【0044】
【
図22】参照サンプルを取り出すための第1方法の例を示す。
【0045】
【
図23】参照サンプルを取り出すための第2方法の例を示す。
【0046】
【
図24】参照サンプルがサブ・ブロック・ベースで取り出される第3方法の例を示す。
【0047】
【
図25】双方向オプティカル・フロー(BDOF)で使用されるCU(2510)に対応する拡張コーディング・ユニット(CU)領域の例を示す。
【0048】
【
図26】Sobel、Scharr、Prewitt及びRobertsフィルタのカーネルの例を示す。
【0049】
【
図27】本開示の実施形態によるプロセス(2700)を要約したフローチャートを示す。
【0050】
【
図28】本開示の実施形態によるプロセス(2800)を要約した別のフローチャートを示す。
【0051】
【
図29】実施形態によるコンピュータ・システムの概略図である。
【発明を実施するための形態】
【0052】
I.ビデオ・コーディング・エンコーダ及びデコーダ
【0053】
図2は、本開示の実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1ペアの端末デバイス(210)及び(220)を含む。
図2の例では、第1ペアの端末デバイス(210)及び(220)は、データの一方向送信を行う。例えば、端末デバイス(210)は、ネットワーク(250)を介する他の端末デバイス(220)への伝送のために、ビデオ・データ(例えば、端末デバイス(210)によって捕捉されたビデオ・ピクチャのストリーム)をコーディングすることができる。符号化されたビデオ・データは、1つ以上のコーディングされたビデオ・ビットストリームの形態で送信することができる。端末デバイス(220)は、コーディングされたビデオ・データをネットワーク(250)から受信し、コーディングされたビデオ・データを復号化して、ビデオ・ピクチャを復元し、復元されたビデオ・データに従ってビデオ・ピクチャを表示することができる。一方向性データ伝送は、メディア・サービング・アプリケーション等において一般的なものであってもよい。
【0054】
別の例では、通信システム(200)は、例えば、ビデオ・カンファレンス中に発生する可能性があるコーディングされたビデオ・データの双方向伝送を行う第2ペアの端末デバイス(230)及び(240)を含む。データの双方向伝送に関し、例えば、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)及び(240)のうちの他方の端末デバイスへ伝送するために、ビデオ・データ(例えば、端末デバイスによって捕捉されるビデオ・ピクチャのストリーム)をコーディングすることができる。端末デバイス(230)及び(240)の各端末デバイスもまた、端末デバイス(230)及び(240)の他方の端末デバイスによって送信されたコーディングされたビデオ・データを受信することが可能であり、コーディングされたビデオ・データを復号化してビデオ・ピクチャを復元することが可能であり、復元されたビデオ・データに従って、アクセス可能なディスプレイ・デバイスでビデオ・ピクチャを表示することが可能である。
【0055】
図2の例では、端末デバイス(210)、(220)、(230)、及び(240)は、サーバー、パーソナル・コンピュータ、スマートフォンとして示されているが、本開示の原理はそのように限定されない。本開示の実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤ、及び/又は専用のビデオ・カンファレンス装置のアプリケーションを見出している。ネットワーク(250)は、例えば有線(配線されたもの)及び/又は無線通信ネットワークを含む、コーディングされたビデオ・データを端末デバイス(210)、(220)、(230)、及び(240)の間で運ぶ任意数のネットワークを表現する。通信ネットワーク(250)は、回線交換及び/又はパケット交換型のチャネルでデータを交換することができる。代表的なネットワークは、テレコミュニケーション・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、及び/又はインターネットを含む。本開示の目的に関し、ネットワーク(250)のアーキテクチャ及びトポロジーは、以下において説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0056】
図3は、開示される対象事項の適用例として、ストリーミング環境におけるビデオ・エンコーダ及びビデオ・デコーダの配置を示す。開示される対象事項は、例えば、ビデオ・カンファレンス、デジタルTV、圧縮されたビデオのデジタル・メディア(CD、DVD、メモリ・スティック等を含む)への記憶などを含む、他のビデオの利用が可能なアプリケーションにも等しく適用することが可能である。
【0057】
ストリーミング・システムは、ビデオ・ソース(301)、例えばデジタル・カメラを含むことが可能であり、例えば非圧縮のビデオ・ピクチャ(302)のストリームを生成することが可能なキャプチャ・サブシステム(313)を含んでもよい。一例では、ビデオ・ピクチャのストリーム(302)は、デジタル・カメラによって撮影されるサンプルを含む。符号化されたビデオ・データ(304)(又はコーディングされたビデオ・ビットストリーム)と比較した場合に、より多くのデータ量を強調するために太い線として描かれているビデオ・ピクチャのストリーム(302)は、ビデオ・ソース(301)に結合されたビデオ・エンコーダ(303)を含む電子デバイス(320)によって処理されることが可能である。ビデオ・エンコーダ(303)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下で詳細に説明されるような開示される対象事項の態様を動作可能にする又は実現することが可能である。ビデオ・ピクチャ(302)のストリームと比較した場合に、より少ないデータ量を強調するために細い線として描かれている符号化されたビデオ・データ(304)(又は符号化されたビデオ・ビットストリーム(304))は、将来の使用のためにストリーミング・サーバー(305)に記憶されることが可能である。
図3のクライアント・サブシステム(306)及び(308)のような1つ以上のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(305)にアクセスして、符号化されたビデオ・データ(304)のコピー(307)及び(309)を取り出すことができる。クライアント・サブシステム(306)は、例えば電子デバイス(330)内にビデオ・デコーダ(310)を含むことができる。ビデオ・デコーダ(310)は、符号化されたビデオ・データの到来するコピー(307)を復号化し、ディスプレイ(312)(例えばディスプレイ・スクリーン)又は他のレンダリング・デバイス(不図示)でレンダリングすることができるビデオ・ピクチャの出力ストリーム(311)を生成する。幾つかのストリーミング・システムでは、符号化されたビデオ・データ(304)、(307)、及び(309)(例えば、ビデオ・ビットストリーム)は、特定のビデオ・コーディング/圧縮規格に従って符号化することができる。これらの規格の例は、ITU-T勧告H.265を含む。一例において、開発中のビデオ・コーディング規格は、多用途ビデオ・コーディング(VVC)として非公式に知られている。開示される対象事項はVVCの状況で使用されてもよい。
【0058】
電子デバイス(320)及び(330)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオ・デコーダ(不図示)を含むことが可能であり、電子デバイス(330)は、ビデオ・エンコーダ(不図示)を含むことも可能である。
【0059】
図4は本開示の一実施形態によるビデオ・デコーダ(410)のブロック図を示す。ビデオ・デコーダ(410)は、電子デバイス(430)に含まれることが可能である。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことが可能である。ビデオ・デコーダ(410)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用することが可能である。
【0060】
受信機(431)は、ビデオ・デコーダ(410)によって復号化されるべき1つ以上のコーディングされたビデオ・シーケンスを受信することが可能であり;同じ又は別の実施形態において、各々のコーディングされたビデオ・シーケンスの復号化が、他のコーディングされたビデオ・シーケンスから独立している場合には、一度に1つのコーディングされたビデオ・シーケンスを受信することが可能である。コーディングされたビデオ・シーケンスは、チャネル(401)から受信することが可能であり、このチャネルは、符号化されたビデオ・データを記憶するストレージ・デバイスへのハードウェア/ソフトウェア・リンクであってもよい。受信機(431)は、符号化されたビデオ・データを、他のデータ、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリームとともに受信することが可能であり、これらのデータは、それぞれのエンティティ(不図示)を使用して転送されることが可能である。受信機(431)は、コーディングされたビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタに対処するために、バッファ・メモリ(415)は、受信機(431)とエントロピー・デコーダ/パーサー(420)(以後「パーサー(420)」と言及する)との間に結合されてもよい。特定のアプリケーションでは、バッファ・メモリ(415)はビデオ・デコーダ(410)の一部である。他の場合において、それはビデオ・デコーダ(410)の外側にある可能性がある(不図示)。更に別の例では、例えばネットワーク・ジッタに対処するために、ビデオ・デコーダ(410)の外側にバッファ・メモリ(不図示)が、更には、例えば再生タイミングを取り扱うためにビデオ・デコーダ(410)の内側に別のバッファ・メモリ(415)が、存在することが可能である。受信機(431)が、十分な帯域幅及び制御可能性を有するストア/フォワード・デバイスから、又は同期ネットワークから、データを受信している場合、バッファ・メモリ(415)は必要とされない可能性があり、又は小さくすることが可能である。インターネットのようなベスト・エフォート・パケット・ネットワークでの使用のために、バッファ・メモリ(415)が必要とされるかもしれず、それは比較的大きい可能性があり、有利なことに適応的なサイズであるとすることが可能であり、ビデオ・デコーダ(410)の外側のオペレーティング・システム又は類似の要素(不図示)において少なくとも部分的に実装されてもよい。
【0061】
ビデオ・デコーダ(410)は、コーディングされたビデオ・シーケンスからシンボル(421)を再構成するためにパーサー(420)を含むことができる。これらのシンボルのカテゴリは、ビデオ・デコーダ(410)の動作を管理するために使用される情報、及び潜在的には、
図4に示されているように、電子デバイス(430)の不可欠な部分ではないが電子デバイス(430)に結合されることが可能なレンダリング・デバイス(412)(例えば、ディスプレイ・スクリーン)のようなレンダリング・デバイスを制御するための情報を含む。レンダリング・デバイスの制御情報は、サプルメンタル・エンハンスメント情報(SEIメッセージ)又はビデオ・ユーザビリティ情報(VUI)パラメータ・セット・フラグメント(不図示)の形態におけるものであってもよい。パーサー(420)は、受信したコーディングされたビデオ・シーケンスを解析/エントロピー復号化することができる。コーディングされるビデオ・シーケンスのコーディングは、ビデオ・コーディング技術又は規格に従うことが可能であり、可変長コーディング、ハフマン・コーディング、コンテキストの影響を伴う又は伴わない算術コーディング等を含む種々の原理に従うことが可能である。パーサー(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオ・デコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループ・パラメータのセットを、コーディングされたビデオ・シーケンスから抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディング・ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことが可能である。パーサー(420)はまた、変換係数、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオ・シーケンス情報から抽出することも可能である。
【0062】
パーサー(420)は、シンボル(421)を生成するために、バッファ・メモリ(415)から受信したビデオ・シーケンスに対してエントロピー復号化/解析処理を実行することが可能である。
【0063】
シンボル(421)の再構成は、コーディングされたビデオ・ピクチャ又はその部分のタイプ(例えば:インター及びイントラ・ピクチャ、インター及びイントラ・ブロック)及び他の要因に応じて、複数の異なるユニットを含むことが可能である。どのユニットがどのように包含されるかは、コーディングされたビデオ・シーケンスからパーサー(420)によって解析されたサブグループ制御情報によって制御されることが可能である。パーサー(420)と以降の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確性のために描かれていない。
【0064】
ビデオ・デコーダ(410)は、既に述べた機能ブロックを超えて更に、以下に説明するような複数の機能ユニットに概念的に細分されることが可能である。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることが可能である。しかしながら、開示される対象事項を説明する目的に関し、以下の機能ユニットへの概念的な細分は適切なことである。
【0065】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数だけでなく制御情報(使用する変換、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む)も、パーサー(420)からシンボル(421)として受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されることが可能なサンプル値を含むブロックを出力することが可能である。
【0066】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ・コーディングされたブロック:即ち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することは可能であるブロックに関連する可能性がある。このような予測情報は、イントラ・ピクチャ予測ユニット(452)によって提供することが可能である。場合によっては、イントラ・ピクチャ予測ユニット(452)は、現在のピクチャのバッファ(458)から取り出された既に再構成された周囲の情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。現在のピクチャ・バッファ(458)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供されるような出力サンプル情報に加える。
【0067】
それ以外の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インター・コーディングされた動き補償される可能性のあるブロックに関連する可能性がある。このような場合において、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために、参照ピクチャ・メモリ(457)にアクセスすることが可能である。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力に加えられ(この場合、残差サンプル又は残差信号と呼ばれる)、出力サンプル情報を生成する。動き補償予測ユニット(453)が予測サンプルを取り出す元である参照ピクチャ・メモリ(457)内のアドレスは、例えばX、Y、及び参照ピクチャ成分を有することが可能であるシンボル(421)の形態で、動き補償予測ユニット(453)にとって利用可能な動きベクトルによって制御されることが可能である。また、動き補償は、サブ・サンプルの正確な動きベクトルが使用される場合に、参照ピクチャ・メモリ(457)から取り出されるようなサンプル値の補間、動きベクトル予測メカニズム等を含むことが可能である。
【0068】
アグリゲータ(455)の出力サンプルは、ループ・フィルタ・ユニット(456)内の様々なループ・フィルタリング技術の影響を受けることが可能である。ビデオ圧縮技術は、コーディングされたビデオ・シーケンス(コーディングされたビデオ・ビットストリームとも呼ばれる)に含まれ、且つパーサー(420)からのシンボル(421)としてループ・フィルタ・ユニット(456)にとって利用可能にされるパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオ・シーケンスの(復号化の順番で)以前の部分の復号化の間に取得されたメタ情報に応答することが可能であるとともに、以前に再構成されたループ・フィルタリングされたサンプル値にも応答することが可能である、ループ内フィルタ技術を含むことが可能である。
【0069】
ループ・フィルタ・ユニット(456)の出力は、レンダリング・デバイス(412)に出力できるだけでなく、将来のインター・ピクチャ予測に使用するために参照ピクチャ・メモリ(457)に格納することも可能なサンプル・ストリームであるとすることが可能である。
【0070】
所定のコーディングされたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用することが可能である。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサー(420)によって)参照ピクチャとして識別されると、現在のピクチャのバッファ(458)は参照ピクチャ・メモリ(457)の一部となることが可能であり、新しい現在のピクチャのバッファは、以後のコーディングされたピクチャの再構成を開始する前に、再割り当てされることが可能である。
【0071】
ビデオ・デコーダ(410)は、ITU-T Rec.H.265のような規格における所定のビデオ圧縮技術に従って復号化動作を実行することが可能である。コーディングされたビデオ・シーケンスは、コーディングされたビデオ・シーケンスが、ビデオ圧縮技術又は規格のシンタックス、及びビデオ圧縮技術又は規格で文書化されているようなプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術又は規格によって指定されたシンタックスに準拠することが可能である。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は規格で使用可能なすべてのツールから選択することが可能である。また、コンプライアンスのために必要なことは、コーディングされたビデオ・シーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内に収まることである。場合によっては、そのレベルは、最大ピクチャ・サイズ、最大フレーム・レート、最大再構成サンプル・レート(例えば、毎秒当たりのメガサンプルで測定される)、最大参照ピクチャ・サイズ等を制限する。レベルによって設定される限界は、場合によっては、コーディングされたビデオ・シーケンスでシグナリングされるHRDバッファ管理のための仮想リファレンス・デコーダ(HRD)仕様及びメタデータによって更に制限される可能性がある。
【0072】
実施形態では、受信機(431)は、符号化されたビデオとともに追加的(冗長的)なデータを受信する可能性がある。追加的なデータは、コーディングされたビデオ・シーケンスの一部として含まれる可能性がある。追加的なデータは、データを適切に復号化するため、及び/又は元のビデオ・データをより正確に再構成するために、ビデオ・デコーダ(410)によって使用されてもよい。追加的なデータは、例えば、時間、空間、又は信号雑音比(SNR)エンハンスメント・レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形態におけるものとすることが可能である。
【0073】
図5は、本開示の実施形態によるビデオ・エンコーダ(503)のブロック図を示す。ビデオ・エンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。ビデオ・エンコーダ(503)は、
図3の例におけるビデオ・エンコーダ(303)の代わりに使用することが可能である。
【0074】
ビデオ・エンコーダ(503)は、ビデオ・エンコーダ(503)によってコーディングされるべきビデオ画像を捕捉することが可能なビデオ・ソース(501)(
図5の例では電子デバイス(520)の一部ではない)から、ビデオ・サンプルを受信することが可能である。別の例では、ビデオ・ソース(501)は、電子デバイス(520)の一部である。
【0075】
ビデオ・ソース(501)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であるとすることが可能なデジタル・ビデオ・サンプル・ストリームの形態で、ビデオ・エンコーダ(503)によってコーディングされるべきソース・ビデオ・シーケンスを提供することが可能である。メディア・サービング・システムにおいて、ビデオ・ソース(501)は、事前に準備されたビデオを記憶するストレージ・デバイスであってもよい。ビデオ・カンファレンス・システムでは、ビデオ・ソース(501)は、ローカルな画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見た場合に動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間アレイとして組織されることが可能であり、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことが可能である。当業者は、ピクセルとサンプルとの間の関係を容易に理解することが可能である。以下の説明は、サンプルに焦点を当てている。
【0076】
実施形態によれば、ビデオ・エンコーダ(503)は、リアルタイムに、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース・ビデオ・シーケンスのピクチャを、コーディングされたビデオ・シーケンス(543)にコーディングして圧縮することが可能である。適切なコーディング速度を強制することは、コントローラ(550)の1つの機能である。幾つかの実施形態において、コントローラ(550)は、以下で説明されるように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。その結合は明確性のために描かれていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャ・スキップ、量子化器、レート歪最適化技術のラムダ値、...)、ピクチャ・サイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことが可能である。コントローラ(550)は、特定のシステム設計のために最適化されたビデオ・エンコーダ(503)に関連する他の適切な機能を有するように構成することが可能である。
【0077】
幾つかの実施形態では、ビデオ・エンコーダ(503)は、コーディング・ループで動作するように構成される。極端に単純化された説明として、一例において、コーディング・ループは、ソース・コーダ(530)(例えば、コーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボル・ストリームのようなシンボルを生成する責任がある)と、ビデオ・エンコーダ(503)に組み込まれた(ローカル)デコーダ(533)とを含むことが可能である。デコーダ(533)は、(リモート)デコーダが生成するのと同様な方法で、サンプル・データを生成するためにシンボルを再構成する(シンボルとコーディングされたビデオ・ビットストリームとの間の任意の圧縮は、開示される対象事項で考慮されるビデオ圧縮技術ではロスレスであるからである)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャ・メモリ(534)に入力される。シンボル・ストリームの復号化は、デコーダの位置(ローカル又はリモート)に依存しないビット・イグザクト(bit-exact)な結果をもたらすので、参照ピクチャ・メモリ(534)中の内容もまた、ローカル・エンコーダとリモート・エンコーダとの間でビット・イグザクトである。言い換えると、エンコーダの予測部は、デコーダが復号化中に予測を使用する場合に「見る(see)」ものと厳密に同じサンプル値を、参照ピクチャ・サンプルとして「見る」。参照ピクチャ同期のこの基本原理(及び、例えばチャネル・エラーに起因して同期性が維持できない場合には、結果としてドリフトが生じる)は、幾つかの関連技術においても同様に使用される。
【0078】
「ローカル」デコーダ(533)の動作は、
図4に関連して上記で詳細に既に説明されているビデオ・デコーダ(410)のような「リモート」デコーダのものと同じであるとすることが可能である。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、且つエントロピー・コーダ(545)及びパーサー(420)によるシンボルのコーディングされたビデオ・シーケンスへの符号化/復号化はロスレスであるとすることが可能であるので、バッファ・メモリ(415)及びパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号化部は、ローカル・デコーダ(533)では完全には実現されない可能性がある。
【0079】
この時点で行うことが可能な観察は、デコーダに存在する解析/エントロピー復号化以外の任意のデコーダ技術は、必然的に、実質的に同一の機能形態で、対応するエンコーダにも存在する必要があるということである。この理由のために、開示される対象事項はデコーダの動作に焦点を当てている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるので、省略することが可能である。特定のエリアにおいてのみ、より詳細な説明が必要とされ、以下で与えられる
【0080】
動作中に、ソース・コーダ(530)は、幾つかの例において、「参照ピクチャ」として指定されたビデオ・シーケンスからの1つ以上の以前にコーディングされたピクチャを参照して、入力ピクチャを予測符号化する、動き補償された予測コーディングを実行することが可能である。このようにして、コーディング・エンジン(532)は、入力ピクチャのピクセル・ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセル・ブロックとの間の差分をコーディングする。
【0081】
ローカル・ビデオ・デコーダ(533)は、ソース・コーダ(530)によって生成されたシンボルに基づいて、参照ピクチャとして指定されることが可能なピクチャのコーディングされたビデオ・データを復号化することが可能である。コーディング・エンジン(532)の動作は、有利なことに、非ロスレス・プロセスであってもよい。コーディングされたビデオ・データがビデオ・デコーダ(
図5には示されていない)で復号化されることが可能である場合、再構成されたビデオ・シーケンスは、典型的には、幾らかのエラーを伴うソース・ビデオ・シーケンスのレプリカである可能性がある。ローカル・ビデオ・デコーダ(533)は、リファレンス・ピクチャにおいてビデオ・デコーダによって実行されることが可能な復号化プロセスを繰り返し、再構成された参照ピクチャが、参照ピクチャ・キャッシュ(534)に記憶されることを引き起こすことが可能である。このように、ビデオ・エンコーダ(503)は、遠方端のビデオ・デコーダによって得られる再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーを、局所的に記憶することが可能である(伝送エラーはないものとする)
【0082】
予測器(535)は、コーディング・エンジン(532)のために予測探索を行うことが可能である。即ち、コーディングされるべき新しいピクチャについて、予測器(535)は、サンプル・データ(候補の参照ピクセル・ブロックとして)又は所定のメタデータ(参照ピクチャ動きベクトル、ブロック形状など)について、参照ピクチャ・メモリ(534)を探索することができ、これらは、新しいピクチャについての適切な予測参照として役立つ可能性がある。予測器(535)は、適切な予測参照を見出すために、サンプル・ブロック-ピクセル・ブロック・ベースで動作することが可能である。場合によっては、予測器(535)によって得られた探索結果によって決定されるように、入力ピクチャは、参照ピクチャ・メモリ(534)に記憶された複数の参照ピクチャから引き出される予測参照を有する可能性がある。
【0083】
コントローラ(550)は、例えば、ビデオ・データを符号化するために使用されるパラメータ及びサブグループ・パラメータの設定を含む、ソース・コーダ(530)のコーディング動作を管理することが可能である。
【0084】
前述の機能ユニットのすべての出力は、エントロピー・コーダ(545)においてエントロピー符号化を受けることが可能である。エントロピー・コーダ(545)は、ハフマン・コーディング、可変長コーディング、算術コーディング等の技術に従って、シンボルをロスレス圧縮することによって、種々の機能ユニットによって生成されたシンボルを、コーディングされたビデオ・シーケンスに変換する。
【0085】
送信機(540)は、エントロピー・コーダ(545)によって作成されるようなコーディングされたビデオ・シーケンスをバッファリングして、通信チャネル(560)を介する送信の準備を行うことが可能であり、通信チャネル(560)は、符号化されたビデオ・データを記憶する記憶デバイスへのハードウェア/ソフトウェア・リンクであってもよい。送信機(540)は、ビデオ・コーダ(503)からのコーディングされたビデオ・データを、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリーム(ソースは不図示)のような送信されるべき他のデータとマージすることが可能である.
【0086】
コントローラ(550)は、ビデオ・エンコーダ(503)の動作を管理することができる。コーディングの間に、コントローラ(550)は、コーディングされたピクチャの各々に、特定のコーディングされたピクチャ・タイプを割り当てることが可能であり、これは、各ピクチャに適用されることが可能なコーディング技術に影響を及ぼす可能性がある。例えば、ピクチャは、しばしば、次のピクチャ・タイプの1つとして割り当てられてもよい。
【0087】
イントラ・ピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用せずに、符号化及び復号化されることが可能なものである。幾つかのビデオ・コーデックは、例えば、独立デコーダ・リフレッシュ(“IDR”)ピクチャを含む異なるタイプのイントラ・ピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれら各自の用途及び特徴を認識している。
【0088】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、高々1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。
【0089】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、高々2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。同様に、複数の予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連するメタデータを使用することが可能である。
【0090】
ソース・ピクチャは、通常、複数のサンプル・ブロック(例えば、4×4、8×8、4×8、又は16×16サンプルのブロック)に空間的に細分され、ブロック毎にコーディングされることが可能である。ブロックは、ブロックそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測符号化されることが可能である。例えば、Iピクチャのブロックは、非予測符号化されてもよいし、又は、それらは同じピクチャの既にコーディングされたブロックを参照して予測符号化されてもよい(空間予測又はイントラ予測)。Pピクチャのピクセル・ブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的な予測又は時間的な予測により予測符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間的な予測又は時間的な予測により予測符号化されてもよい。
【0091】
ビデオ・エンコーダ(503)は、ITU-T Rec.H.265のような所定のビデオ・コーディング技術又は規格に従ってコーディング動作を行うことが可能である。この動作において、ビデオ・エンコーダ(503)は、入力ビデオ・シーケンスにおける時間的及び空間的な冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行することが可能である。コーディングされたビデオ・データは、従って、使用されているビデオ・コーディング技術又は規格によって指定されたシンタックスに準拠することが可能である。
【0092】
実施形態では、送信機(540)は、符号化されたビデオとともに追加データを送信することが可能である。ソース・コーダ(530)は、そのようなデータを、コーディングされたビデオ・シーケンスの一部として含むことが可能である。追加データは、時間的/空間的/SNRエンハンスメント・レイヤ、他の形式の冗長データ(冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータ・セット・フラグメント等)を含む可能性がある。
【0093】
ビデオは、時間シーケンスにおける複数のソース・ピクチャ(ビデオ・ピクチャ)として捕捉することが可能である。イントラ・ピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用しており、インター・ピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在のピクチャと呼ばれる符号化/復号化の下にある特定のピクチャは、ブロックにパーティション化される。現在のピクチャ内のブロックが、ビデオにおいて以前にコーディングされ且つ依然としてバッファリングされている参照ピクチャの中の参照ブロックに類似している場合、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることが可能である。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することが可能である。
【0094】
幾つかの実施形態では、インター・ピクチャ予測に双-予測技術を用いることが可能である。双-予測技術によれば、ビデオ内で現在のピクチャに対して復号化順序で両方とも先行している(ただし、表示順序ではそれぞれ過去及び将来におけるものである可能性がある)第1参照ピクチャ及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによってコーディングされることが可能である。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることが可能である。
【0095】
更に、コーディング効率を改善するために、インター・ピクチャ予測にマージ・モード技術を用いることが可能である。
【0096】
本開示の幾つかの実施形態によれば、インター・ピクチャ予測及びイントラ・ピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC規格によれば、ビデオ・ピクチャのシーケンス中のピクチャは、圧縮のためにコーディング・ツリー・ユニット(CTU)にパーティション化され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのような同じサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つのコーディング・ツリー・ブロック(CTB)を含む。各CTUは、1つ又は複数のコーディング・ユニット(CU)に再帰的に4分木分割されることが可能である。例えば、64×64ピクセルのCTUは、64×64ピクセルの1個のCU、32×32ピクセルの4個のCU、又は16×16ピクセルの16個のCUに分割されることが可能である。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのような、CUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的な予測可能性に依存して1つ以上の予測ユニット(PU)に分割される。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBを含む。実施形態では、コーディング(符号化/復号化)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のような、ピクセルに対する値(例えば、ルマ値)のマトリクスを含む。
【0097】
図6は本開示の別の実施形態によるビデオ・エンコーダ(603)の図を示す。ビデオ・エンコーダ(603)は、ビデオ・ピクチャのシーケンス内の現在のビデオ・ピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャに符号化するように構成される。一例では、ビデオ・エンコーダ(603)は、
図3の例のビデオ・エンコーダ(303)の代わりに使用される。
【0098】
HEVCの例では、ビデオ・エンコーダ(603)は、8×8サンプルの予測ブロック等のような処理ブロックのサンプル値のマトリクスを受信する。ビデオ・エンコーダ(603)は、イントラ・モード、インター・モード、又は双-予測モードを使用して、例えばレート歪最適化を使用して、処理ブロックが最良にコーディングされるかどうかを決定する。処理ブロックがイントラ・モードでコーディングされるべき場合、ビデオ・エンコーダ(603)は、処理ブロックを、コーディングされたピクチャに符号化するためにイントラ予測技術を使用することが可能であり;処理ブロックがインター・モード又は双-予測モードで符号化されるべき場合、ビデオ・エンコーダ(603)は、処理ブロックを、コーディングされたピクチャに符号化するために、それぞれインター予測技術又は双-予測技術を使用することが可能である。特定のビデオ・コーディング技術では、マージ・モードがインター予測ピクチャ・サブモードである可能性があり、その場合、動きベクトルは、予測器外部のコーディングされた動きベクトル成分の恩恵なしに、1つ以上の動きベクトル予測子から導出される。特定の他のビデオ・コーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在する可能性がある。一例では、ビデオ・エンコーダ(603)は、処理ブロックのモードを決定するためにモード決定モジュール(不図示)のような他のコンポーネントを含む。
【0099】
図6の例では、ビデオ・エンコーダ(603)は、インター・エンコーダ(630)、イントラ・エンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、及びエントロピー・エンコーダ(625)を、
図6に示されるように共に結合して含んでいる。
【0100】
インター・エンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャのブロック及び以後のピクチャ内のブロック)と比較し、インター予測情報(例えば、符号化技術による冗長情報の記述、動きベクトル、マージ・モード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づいて、インター予測結果(例えば、予測ブロック)を計算するように構成される。幾つかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号化された復号化済み参照ピクチャである。
【0101】
イントラ・エンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によってはブロックを、同じピクチャ内で既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するように構成される。一例では、イントラ・エンコーダ(622)はまた、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0102】
ジェネラル・コントローラ(621)は、一般的な制御データを決定し、一般的な制御データに基づいてビデオ・エンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、ジェネラル・コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラ・モードである場合、ジェネラル・コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにイントラ・モード結果を選択し、且つエントロピー・エンコーダ(625)を制御して、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含め;モードがインター・モードである場合、ジェネラル・コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにインター予測結果を選択し、且つエントロピー・エンコーダ(625)を制御して、インター予測情報を選択し、インター予測情報をビットストリームに含める。
【0103】
残差計算器(623)は、受信ブロックと、イントラ・エンコーダ(622)又はインター・エンコーダ(630)から選択された予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインへ変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化された変換係数を得るために量子化処理を施される。様々な実施形態では、ビデオ・エンコーダ(603)はまた、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、復号化された残差データを生成するように構成される。復号化された残差データは、イントラ・エンコーダ(622)及びインター・エンコーダ(630)によって適切に使用することが可能である。例えば、インター・エンコーダ(630)は、復号化された残差データ及びインター予測情報に基づいて、復号化されたブロックを生成することが可能であり、イントラ・エンコーダ(622)は、復号化された残差データ及びイントラ予測情報に基づいて、復号化されたブロックを生成することが可能である。復号化されたブロックは、復号化されたピクチャを生成するために適切に処理され、復号化されたピクチャは、メモリ回路(不図示)内でバッファリングされ、幾つかの例では参照ピクチャとして使用することが可能である。
【0104】
エントロピー・エンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピー・エンコーダ(625)は、HEVC規格のような適切な規格に従って種々の情報を含むように構成される。一例では、エントロピー・エンコーダ(625)は、一般的な制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びその他の適切な情報をビットストリームに含めるように構成される。開示される対象事項に従って、インター・モード又は双-予測モードの何れかのマージ・サブモードにおけるブロックをコーディングする場合に、残差情報は存在しないことに留意されたい。
【0105】
図7は、本開示の別の実施形態によるビデオ・デコーダ(710)の図を示す。ビデオ・デコーダ(710)は、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャを復号化して、再構成されたピクチャを生成するように構成される。一例では、ビデオ・デコーダ(710)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用される。
【0106】
図7の例では、ビデオ・デコーダ(710)は、エントロピー・デコーダ(771)、インター・デコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、及びイントラ・デコーダ(772)を、
図7に示されるように共に結合して含んでいる。
【0107】
エントロピー・デコーダ(771)は、コーディングされたピクチャを作り上げるシンタックス要素を表す特定のシンボルを、コーディングされたピクチャから再構成するように構成されることが可能である。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラ・モード、インター・モード、双-予測モード、マージ・サブモード又は別のサブモードにおける後者の2つ)、イントラ・デコーダ(772)又はインター・デコーダ(780)それぞれによって予測のために使用される特定のサンプル又はメタデータを識別することが可能な予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報(例えば、量子化された変換係数の形式におけるもの)等を含むことが可能である。一例において、予測モードがインター又は双-予測モードである場合には、インター予測情報がインター・デコーダ(780)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(772)に提供される。残差情報は、逆量子化を施されることが可能であり、残差デコーダ(773)に提供される。
【0108】
インター・デコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0109】
イントラ・デコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0110】
残差デコーダ(773)は、逆量子化を実行して非-量子化された変換係数を抽出し、非-量子化された変換係数を処理して残差を周波数ドメインから空間ドメインへ変換するように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化パラメータ(QP)を含む)を必要とする可能性があり、その情報は、エントロピー・デコーダ(771)によって提供されてもよい(これは、僅かな量の制御情報でしかない可能性があるので、データ経路は描かれていない)。
【0111】
再構成モジュール(774)は、空間ドメインにおいて、残差デコーダ(773)による出力としての残差と、予測結果(場合によっては、インター又はイントラ予測モジュールによって出力されるもの)とを組み合わせて、再構成されたブロックを形成するように構成されており、再構成されたブロックは再構成されたピクチャの一部であり、再構成されたピクチャは再構成されたビデオの一部である可能性がある。デブロッキング処理などのような他の適切な処理が、視覚的な品質を改善するために実行される可能性があることに留意されたい。
【0112】
なお、ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、任意の適切な技術を用いて実現することが可能である。実施形態では、ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、1つ以上の集積回路を使用して実現することが可能である。別の実施形態では、ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することが可能である。
【0113】
II.インター予測技術
【0114】
種々の実施形態では、インター予測されるCUに対して、動きベクトル、参照ピクチャ・インデックス、参照ピクチャ・リスト使用インデックス、及び可能性のある他の追加情報を含む動きパラメータが、インター予測サンプル生成に使用されることが可能である。動きパラメータは、明示的又は暗黙的な方法でシグナリングされることが可能である。CUがスキップ・モードでコーディングされる場合、CUは1つのPUに関連付けられ、有意の残差係数、コーディングされた動きベクトル・デルタ、又はCUに関連付けられる参照ピクチャ・インデックスを有しない。
【0115】
マージ・モードが使用される場合、現在のCUの動きパラメータは、空間的及び時間的マージ候補、並びに可能性のある他のマージ・候補を含む隣接するCUから取得することが可能である。マージ・モードは、インター予測されるCUに適用されることが可能であり、スキップ・モードに対して使用されてもよい。マージ・モードに代わるものは、動きパラメータの明示的な伝送である。例えば、動きベクトル、各参照ピクチャ・リストのための各参照ピクチャ・インデックス、参照ピクチャ・リスト使用フラグ、及び他の必要な情報は、各CUごとに明示的にシグナリングされることが可能である。
【0116】
幾つかの実施形態では、以下のインター予測コーディング・ツールが使用される:
- 拡張マージ予測
- 動きベクトル差分によるマージ・モード(MMVD)
- 対象動きベクトル差分(MVD)シグナリングによるアドバンスト動きベクトル予測(AMVP)モード
- アフィン補償予測
- サブ・ブロック・ベースの時間的動きベクトル予測(SbTMVP)
- 適応動きベクトル分解能(AMVR)
- 重み付け平均による双-予測(BWA)
- 双方向オプティカル・フロー(BDOF)
- デコーダ側の動きベクトル・リファインメント(DMVR)
- 三角パーティション予測
- インター&イントラ合成予測(CIIP)
【0117】
1.拡張マージ予測
【0118】
幾つかの実施形態において、マージ候補リストは以下の5つのタイプの候補をその順番で含めることによって構成される:
1)空間的隣接CUからの空間的動きベクトル予測子(SMVP)
2)同等位置のCUからの時間的動きベクトル予測子(TMVP)
3)先入れ先出し(FIFO)テーブルからの履歴ベースの動きベクトル予測子(HMVP)
4)ペアワイズ平均動きベクトル予測子(MVP)
5)ゼロMV
【0119】
幾つかの実施形態において、マージ・リストのサイズはスライス・ヘッダでシグナリングされ、マージ・リストの最大許容サイズは6である。マージ・モードでコーディングされる各CUに対して、最良のマージ候補のインデックスは、トランケーテッド・ユーナリ(TU)二値化を用いて符号化される。マージ・インデックスの第1ビンはコンテキストでコーディングされ、バイパス・コーディングが他のビンに使用される。
【0120】
以下、マージ候補の各カテゴリの生成プロセス例を説明する。
【0121】
1.1 空間候補導出
【0122】
空間的マージ候補を導出するプロセスにおいて、
図8の現在のブロック(810)に隣接する位置A1,B1,B0,A0,及びB2に位置する候補の中から、最大4つのマージ候補が選択される。導出の順序はA1,B1,B0,A0,B2である。位置B2は、位置A1,B1,B0,A0の何れのCUも利用可能でない場合(例えば、それが別のスライス又はタイルに属することに起因して)、又はイントラ・コーディングされる場合に考慮される。位置A1の候補が追加された後、残りの候補の追加は、同じ動き情報を有する候補がリストから排除されることを確実にする冗長性チェックの対象となる。その結果、コーディング効率は改善される。計算の複雑性を低減するために、前述の冗長性検査では、可能な候補ペアのすべてが考慮されているわけではない。そうではなく、
図9において矢印で結ばれるペアが考慮される。候補は、冗長検査に使用される対応する候補が同じ動き情報を有しない場合に、リストに追加される。
【0123】
1.2 時間候補導出
【0124】
実施形態では、1つの時間的候補がリストに追加される。特に、現在のピクチャ(1001)における現在のブロック(1011)に対するこの時間的マージ候補の導出において、スケーリングされた動きベクトル(1031)が、
図10に示されるように配置された参照ピクチャ(1002)に属する同等位置のCU(1012)に基づいて導出される。同等位置のCUの導出に使用されるべき参照ピクチャ・リストは、スライス・ヘッダで明示的にシグナリングされる。時間的マージ候補に対するスケーリングされた動きベクトル(1031)は、ピクチャ・オーダー・カウント(POC)距離、Tb及びTdを用いて、同等位置にあるCU(1012)の動きベクトル(1032)からスケーリングされる。Tbは、現在のピクチャ(1001)の現在の参照ピクチャ(1003)と現在のピクチャ(1001)との間のPOC差分であるように定義される。Tdは、同等位置ピクチャ(1002)の同等位置参照ピクチャ(1004)と同等位置ピクチャ(1002)との間のPOC差分であるように定義される。時間的マージ候補の参照ピクチャ・インデックスはゼロに等しく設定される。
【0125】
時間的候補の位置は、
図11に示す候補C0及びC1の中から選択される。位置C0におけるCUが利用可能ではないか、イントラ・コーディングされているか、又はCTUの現在の行の外にある場合、位置C1が使用される。それ以外の場合、位置C0が時間的マージ候補の導出に使用される。
【0126】
1.3 ペアワイズ平均マージ候補導出
【0127】
幾つかの実施形態では、既存のマージ候補リスト内の候補の所定のペアを平均化することによって、ペアワイズ平均候補が生成される。例えば、所定のペアは{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)}として定義され、数字はマージ候補リストに対するマージ・インデックスを示す。平均化された動きベクトルは、各参照リストに対して別々に計算される。両方の動きベクトルが1つのリストで利用可能な場合、これらの2つの動きベクトルは、たとえそれらが異なる参照ピクチャを指している場合でさえ、平均化され;唯1つの動きベクトルが利用可能である場合には、1つを直接的に使用し;動きベクトルが利用可能でない場合には、このリストを無効に保つ。
【0128】
実施形態において、ペアワイズ平均マージ候補が追加された後に、マージ・リストが満杯ではない場合、最大マージ候補数に遭遇するまで、ゼロのMVPが最後に挿入される。
【0129】
2.動きベクトル差分によるマージ・モード(MMVP)
【0130】
マージ・モードに加えて、暗黙的に導出される動き情報が、現在のCUの予測サンプル生成に直接的に使用される場合、幾つかの実施形態ではMMVDが使用される。MMVDフラグは、MMVDモードがCUに使用されるかどうかを指定するためにスキップ・フラグとマージ・フラグを送信した直後に、シグナリングされる。
【0131】
MMVDモードでは、マージ候補が選択された後、マージ候補は、シグナリングされた動きベクトル差分(MVD)情報によって更に精密化され、精密化された動き情報が得られる。MVD情報は、マージ候補フラグ、動きの大きさを指定するための距離インデックス、及び動き方向の指定のためのインデックスを含む。
【0132】
マージ・リスト内の最初の2つの候補の内の1つは、MVベース(開始MV)としてしようされるように選択される。何れが使用されるかを指定するために、マージ候補フラグがシグナリングされる。
図12に示されるように、MVベースは、参照ピクチャ・リストL0又はL1それぞれにおいて参照ピクチャ(1202)又は(1203)における開始点(1211)又は(1221)を決定する。
【0133】
距離インデックスは、動き大きさ情報を指定し、開始点(1211)又は(1221)からの所定のオフセットを示す。
図12に示すように、位置(1211)又は(1221)を指す開始MV(MVベース)の水平成分又は垂直成分の何れかに、オフセットが加えられる。距離インデックスと所定のオフセットとのマッピング関係は、表1に示されている。
表1
【表1】
【0134】
方向インデックスは、開始点(1211)又は(1221)に対するMVDの方向を表す。方向インデックスは、表2に示すように、4つの方向のうちの1つを表すことが可能である。
表2
【表2】
【0135】
MVDの符号の意味は、開始MVの情報に従って変化し得ることに留意を要する。開始MVが片-予測MV又は双-予測MVであり、両方とも現在のピクチャの同じ側を指している場合(即ち、2つの参照のPOCが両方とも現在のピクチャのPOCより大きいか、又は両方とも現在のピクチャのPOCより小さい場合)、表2における符号は、開始MVに追加されるMVオフセットの符号を示す。開始MVが、現在のピクチャの異なる側を指す2つのMVを伴う双-予測MVである場合(即ち、1つの参照のPOCが現在のピクチャのPOCより大きく、他の参照のPOCが現在のピクチャのPOCより小さい場合)、表2における符号は、開始MVのL0 MV成分に加えられるMVオフセットの符号を指定し、L1 MVの符号は反対の値を有する。
【0136】
ベースMV、オフセット、及びMVD符号に基づいて、現在のCUに対して最終MVを決定することが可能である。
【0137】
3.アフィン動き補償予測
【0138】
幾つかの例では、並進運動モデルが動き補償予測(MCP)に適用される。しかしながら、並進運動モデルは、他のタイプの運動、例えばズームイン/アウト、回転、パースペクティブな運動、及び他の不規則な運動をモデル化するのには適していないかもしれない。幾つかの実施形態では、ブロック・ベースのアフィン変換動き補償予測が適用される。
図13Aでは、ブロックのアフィン・モーション・フィールドは、4パラメータ・アフィン・モデルが使用される場合に、2つの制御ポイント(CP)(CP0及びCP1)の2つの制御ポイント動きベクトル(CPMV)(CPMV0及びCPMV1)によって記述される。
図13Bでは、ブロックのアフィン・モーション・フィールドは、6パラメータ・アフィン・モデルが使用される場合に、CP(CP0、CP1、及びCP2)の3つのCPMV(CPMV0、CPMV1、及びCPMV3)によって記述される。
【0139】
4パラメータ・アフィン運動モデルの場合、ブロック内のサンプル位置(x,y)における動きベクトルは次のように導出される:
【数1】
【0140】
6パラメータ・アフィン運動モデルの場合、ブロック内のサンプル位置(x,y)における動きベクトルは次のように導出される:
【数2】
【0141】
式(2.1)及び(2.2)において、(mv0x,mv0y)は左上隅の制御ポイントの動きベクトルであり、(mv1x,mv1y)は右上隅の制御ポイントの動きベクトルであり、(mv2x,mv2y)は左下隅の制御ポイントの動きベクトルである。また、座標(x,y)はそれぞれのブロックの左上隅に対するものであり、W及びHはそれぞれのブロックの幅と高さを表す。
【0142】
動き補償予測を簡略化するために、一部の実施形態では、サブ・ブロック・ベースのアフィン変換予測が適用される。例えば、
図14では、4パラメータ・アフィン運動モデルが使用され、2つのCPMV(
→v
o及び
→v
1)が決定される。現在のブロック(1410)からパーティション化された各々の4×4(サンプル)ルマ・サブ・ブロック(1402)の動きベクトルを導出するために、各サブ・ブロック(1402)の中心サンプル(1401)の動きベクトル(1401)は、上記の数式(2.1)に従って計算され、1/16分数精度に丸められる。次に、動き補償補間フィルタを適用して、導出された動きベクトル(1401)を用いて各サブ・ブロック(1402)の予測を生成する。クロマ成分のサブ・ブロック・サイズは4×4であるように設定される。4×4のクロマのサブ・ブロックのMVは、4つの対応する4×4ルマ・サブ・ブロックのMVの平均として計算される。
【0143】
並進運動インター予測と同様に、幾つかの実施形態では、2つのアフィン運動インター予測モード、アフィン・マージ・モード及びアフィンAMVPモードが採用される。
【0144】
3.1 アフィン・マージ予測
【0145】
幾つかの実施形態では、幅及び高さの両方が8以上であるCUに対して、アフィン・マージ・モードを適用することが可能である。現在のCUのアフィン・マージ候補は、空間的に隣接するCUの動き情報に基づいて生成される。高々5つのアフィン・マージ候補が存在し、現在のCUに使用されるものを指定するために、インデックスがシグナリングされる。例えば、以下の3種類のアフィン・マージ候補が、アフィン・マージ候補リストを形成するために使用される:
(i)継承されたアフィン・マージ候補:隣接するCUのCPMVから補間される;
(ii)構築されたアフィン・マージ候補:隣接するCUの並進MVを使用して導出される;及び
(iii)ゼロMV
【0146】
幾つかの実施形態では、隣接するブロックのアフィン運動モデルから導出される高々2つの継承されたアフィン候補が存在することが可能であり、1つは左隣接CUから、1つは上隣接CUからである。候補ブロックは、例えば、
図8に示す位置に配置することが可能である。左側の予測子については、スキャン順序はA0→A1であり、上側の予測子については、スキャン順序はB0→B1→B2である。各々の側から最初の継承された候補のみが選択される。2つの継承された候補の間ではプルーニング検査は実行されない。
【0147】
隣接するアフィンCUが識別されると、識別された隣接アフィンCUのCPMVを使用して、現在のCUのアフィン・マージリスト内のCPMV候補を導出する。
図15に示すように、現在のCU (1510)の隣接する左下ブロックAは、アフィン・モードでコーディングされる。ブロックAを含むCU(1520)の左上隅、右上隅、及び左下隅の動きベクトル
→v
2,
→v
3,及び
→v
4が獲得される。ブロックAが4パラメータ・アフィン・モデルでコーディングされる場合、現在のCU(1510)の2つのCPMV
→v
0及び
→v
1が、
→v
2及び
→v
3に従って計算される。ブロックAが6パラメータ・アフィン・モデルでコーディングされる場合、現在のCUの3つのCPMV(図示せず)が、
→v
2,
→v
3及び
→v
4に以下に従って計算される。
【0148】
構築されたアフィン候補は、各制御ポイントの隣接する並進動き情報を結合することによって構築される。制御ポイントの動き情報は、
図16に示される特定の空間的な近隣及び時間的な近隣から導出される。CPMVk(k=1,2,3,4)は、k番目の制御ポイントを表す。CPMV1の場合、B2→B3→A2ブロックの順に検査され、最初の利用可能なブロックのMVが使用される。CPMV2の場合、B1→B0ブロックが検査され、A1→A0ブロックが検査される。可能であれば、ブロックTにおけるTMVPがCPMV4として使用される。
【0149】
4つの制御ポイントのMVが獲得された後、その動き情報に基づいてアフィン・マージ候補が構築される。制御ポイントMVの以下の組み合わせがその順番で構築に使用される:{CPMV1,CPMV2,CPMV3},{CPMV1,CPMV2,CPMV4},{CPMV1,CPMV3,CPMV4},{CPMV2,CPMV3,CPMV4},{CPMV1,CPMV2},{CPMV1,CPMV3}。
【0150】
3つのCPMVの組み合わせは、6パラメータのアフィン・マージ候補を構築し、2つのCPMVの組み合わせは、4パラメータのアフィン・マージ候補を構築する。動きスケーリング・プロセスを避けるために、制御ポイントの参照インデックスが異なる場合には、制御ポイントMVの関連する組み合わせは破棄される。
【0151】
継承されたアフィン・マージ候補と構築されたアフィン・マージ候補が検査された後、リストがまだ満杯でない場合、マージ候補リストの最後にゼロMVが挿入される。
【0152】
3.2 アフィンMVP予測
【0153】
幾つかの実施形態では、幅及び高さの両方が16以上であるCUに対して、アフィンAMVPモードを適用することが可能である。アフィンAMVPモードが使用されるかどうかを指定するために、CUレベルでのアフィン・フラグがビットストリームでシグナリングされ、次いで、4パラメータ・アフィン又は6パラメータ・アフィンが使用されるかどうかを指定するために、別のフラグがシグナリングされる。現在のCUのCPMVとそれらの予測子との差分はビットストリームでシグナリングされる。アフィンAMVP候補リスト・サイズは2であり、以下の4種類のCPMV候補を順に使用することにより生成することができる:
(i)継承されたアフィンAMVP候補:隣接するCUのCPMVから補間される;
(ii)構築されたアフィンAMVP候補:隣接するCUの並進MVを使用して導出される;
(iii)隣接するCUからの並進MV;及び
(iv)ゼロMV
【0154】
継承されたアフィンAMVP候補のチェック順序は、一例では、継承されたアフィン・マージ候補のチェック順序と同様である。相違点は、AMVP候補の場合には、現在のブロックにおいて同じ参照ピクチャを有するアフィンCUが考慮される点である。継承されるアフィン動き予測子を候補リストに挿入する場合、プルーニング・プロセスは適用されない。
【0155】
構成されたAMVP候補は、
図16に示される特定の空間的な近隣から導出される。アフィン・マージ候補の構築で行われたのと同じ検査順序が使用される。更に、隣接ブロックの参照ピクチャ・インデックスも検査される。現在のCUと同じ参照ピクチャを有し、インター・コーディングされた検査順序で最初のブロックが使用される。現在のCUが4パラメータ・アフィン・モデルでコーディングされ、CPMV0とCPMV1が両方とも利用可能である場合、利用可能なCPMVは、1つの候補としてアフィンAMVPリストに追加される。現在のCUが6パラメータ・アフィン・モードでコーディングされ、3つ全てのCPMV(CPMV0,CPMV1,及びCPMV2)が利用可能である場合、利用可能なCPMVは、1つの候補としてアフィンAMVPリストに追加される。それ以外の場合、構築されたAMVP候補は利用不能として設定される。
【0156】
継承されたアフィンAMVP候補と構築されたAMVP候補が検査された後に、アフィンAMVP候補リストが依然として2つより少ない場合、現在のCUの全ての制御ポイントMVを予測するために、制御ポイントに隣接する並進動きベクトルが利用可能であるならば追加されるであろう。最終的に、アフィンAMVPリストが依然として満杯でない場合、アフィンAMVPリストを満たすためにゼロMVが使用される。
【0157】
4.サブ・ブロック・ベースの時間的動きベクトル予測(SbTMVP)
【0158】
図17Aは、実施形態によるサブ・ブロック・ベースの時間的MV予測(SbTMVP)法を用いて、現在のブロック(1711)の動き情報の予測を決定するために使用することができる空間的隣接ブロックの概略図である。
図17Aは、現在のブロック(1711)と、A0,A1,B0,及びB1(それぞれ、1712,1713,1714,及び1715)として示されるその空間的隣接ブロックを示す。幾つかの例では、空間的隣接ブロックA0,A1,B0,及びB1及び現在のブロック(1711)は、同じピクチャに属する。
【0159】
図17Bは、実施形態による、この非限定的な例におけるブロックA1のような選択された空間的隣接ブロックに基づいて、SbTMVP法を使用して、現在のブロック(1711)のサブ・ブロックの動き情報を決定する概要である。この例では、現在のブロック(1711)は、現在のピクチャ(1710)内にあり、参照ブロック(1761)は、参照ピクチャ(1760)内にあり、現在のブロック(1711)と、動きベクトル(1722)によって示される参照ブロック(1761)との間の動きシフト(又は変位)に基づいて識別されることが可能である。
【0160】
幾つかの実施形態では、HEVCにおける時間的な動きベクトル予測(TMVP)と同様に、SbTMVPは、現在のピクチャ内の現在のブロックの参照ピクチャ内の様々な参照サブ・ブロックの動き情報を使用する。幾つかの実施態様において、TMVPによって使用される同一の参照ピクチャは、SbTMVPに対して使用することが可能である。幾つかの実施形態では、TMVPはCUレベルで動き情報を予測するが、SbTMVPはサブCUレベルで動き情報を予測する。幾つかの実施態様において、TMVPは、現在のブロックの右下隅又は中央に隣接する対応する位置を有する、参照ピクチャ内の同等位置のブロックからの時間的動きベクトルを使用し、SbTMVPは、現在のブロックの空間的隣接ブロックの1つからの動きベクトルに基づく動きシフトを実行することによって識別することが可能な、参照ブロックからの時間的動きベクトルを使用する。
【0161】
例えば、
図17Aに示すように、隣接するブロックA1,B1,B0,A0は、SbTMVPプロセスにおいて順に検査されることが可能である。参照ピクチャ(1760)をその参照ピクチャとして使用する動きベクトルを有する第1の空間的隣接ブロック、例えば参照ピクチャ(1760)内の参照ブロックAR1を指す動きベクトル(1722)を有するブロックA1が識別されると直ちに、この動きベクトル(1722)は、動きシフトを実行するために使用されることが可能である。空間的隣接ブロックA1,B1,B0,A0からそのような動きベクトルが利用可能でない場合、動きシフトは(0,0)に設定される。
【0162】
動きシフトを決定した後、現在のブロック(1711)の位置及び決定された動きシフトに基づいて、参照ブロック(1761)を識別することが可能である。
図17Bでは、参照ブロック(1761)は、参照動き情報MRaないしMRpを用いて16個のサブ・ブロックに更に分割されることが可能である。幾つかの例では、参照ブロック(1761)内の各サブ・ブロックに対する参照動き情報は、そのようなサブ・ブロックの中心サンプルをカバーする最小の動きグリッドに基づいて決定されることが可能である。動き情報は、動きベクトル及び対応する参照インデックスを含むことが可能である。現在のブロック(1711)は、更に16個のサブ・ブロックに分割することが可能であり、現在のブロック(1711)内のサブ・ブロックに対する動き情報MVaないしMVpは、幾つかの例では時間スケーリングを用いてTMVPプロセスと同様に、参照動き情報MRaないしMRpから導出することが可能である。
【0163】
SbTMVプロセスで使用されるサブ・ブロック・サイズは、固定されること(又は別の方法で予め定められること)又はシグナリングされることが可能である。幾つかの例において、SbTMVPプロセスで使用されるサブ・ブロック・サイズは、8×8サンプルであるとすることが可能である。幾つかの例において、SbTMVPプロセスは、固定された又はシグナリングされたサイズ、例えば8ピクセルに等しいか又はそれより大きな幅及び高さを有するブロックにのみ適用可能である。
【0164】
一例では、サブ・ブロック・ベースのマージ・モードのシグナリングのために、SbTVMP候補とアフィン・マージ候補を含む合成されたサブ・ブロック・ベースのマージ・リストが使用される。SbTVMPモードは、シーケンス・パラメータ・セット(SPS)フラグによって有効又は無効にすることが可能である。幾つかの例では、SbTMVPモードが有効にされているならば、SbTMVP候補は、サブ・ブロック・ベースのマージ候補のリストの最初のエントリとして追加され、アフィン・マージ候補が後に続く。幾つかの実施態様において、サブ・ブロック・ベースのマージ・リストの最大許容サイズは、5に設定される。しかしながら、他の実施形態では、他のサイズを利用することが可能である。
【0165】
幾つかの実施態様において、追加のSbTMVPマージ候補の符号化ロジックは、他のマージ候補に対するものと同じである。即ち、P又はBスライス内の各ブロックに対して、追加のレート歪検査を実行して、SbTMVP候補を使用するかどうかを決定することが可能である。
【0166】
5.オプティカル・フローによる予測リファインメント(PROF)
【0167】
アフィン運動モデル・パラメータは、CU内の各ピクセルの動きベクトルを導出するために使用することが可能である。しかしながら、ピクセル・ベースのアフィン予測を実行するための高い複雑性及びメモリ・アクセス帯域幅要件に起因して、幾つかの実施形態では、サブ・ブロック・ベースのアフィン動き補償方法が実施される。幾つかの実施形態では、現在のブロック(例えば、CU)は、各々が4×4のサイズを有するサブ・ブロックに分割することが可能であり、現在のブロックのCPMVから導出されるサブ・ブロックMVを用いて割り当てることが可能である。サブ・ブロック・ベースのアフィン動き補償は、コーディング効率、複雑性、及びメモリ・アクセス帯域幅を改善すること、予測精度の劣化との間のトレード・オフである。
【0168】
幾つかの実施形態では、サブ・ブロック・ベースのアフィン動き補償を改善し、より繊細な粒度の動き補償を行うために、オプティカル・フローによる予測リファインメント(PROF)法を実施することが可能である。PROF法によれば、サブ・ブロック・ベースのアフィン動き補償が実行された後に、予測されたサンプル(例えば、ルマ又はクロマ)は、オプティカル・フロー方程式に基づいて導出される一組の調整値を加えることによって精密化することが可能である。
【0169】
図18は、実施形態によるPROF法の一例の概略図である。
図18に示される例において、現在のブロック(1810)は、4つのサブ・ブロック(1812,1814,1816,及び1818)に分割される。サブ・ブロック(1812,1814,1816,及び1818)の各々は、4×4ピクセルのサイズを有する。サブ・ブロック(1812)の中心位置におけるサブ・ブロック(1812)に対するサブ・ブロックMV (1820)は、現在のブロック1810のCPMVに従って導出され(アフィン・モデルを表す)、参照サブ・ブロック(1832)を指し示すことが可能である。初期のサブ・ブロック予測サンプルは、参照サブ・ブロック(1832)に従って決定することが可能である。
【0170】
初期サブ・ブロック予測サンプルに適用されるリファインメント値は、あたかも各々の予測サンプルがピクセルMV (例えば、ピクセルMV (1840))により示される位置(例えば、サンプル(1812a)に対する位置(1832a))にあるかのように、計算されることが可能である。例えば、ピクセルMV(1840)は、CPMVによって表現されるアフィン・モデルに従って計算することが可能である。従って、ピクセルMV(1840)とサブ・ブロックMV(1820)との間の差分(調整ベクトルと称される)ΔV(1842)を決定することが可能である。続いて、オプティカル・フロー・アプローチを使用して、ピクセル(1812a)に対応するリファインメント値が、調整ベクトルΔV(1842)に基づいて決定することが可能である。
【0171】
一例では、PROF法は、I(i,j)により表現されるサンプルを含む初期サブ・ブロック予測(初期予測サブブロックとも呼ばれる)(例えば、ブロック(1832))を生成するために、サブ・ブロック・ベースのアフィン動き補償を実行することから始めることが可能であり、ここで、i及びjは、現在のサブ・ブロック内の位置(i,j)における特定のサンプルに対応する座標である。次に、各サンプル位置(i,j)における初期サブ・ブロック予測の空間勾配g
x(j,j)及びg
y(j,j)は、例えば以下のような3タップ・フィルタ[-1,0,1]を用いて計算することが可能である:
【数3】
サブ・ブロック予測は、勾配計算のために各々の側で1ピクセルずつ拡張することが可能である。幾つかの実施形態では、メモリ帯域幅及び複雑性を低減するために、拡張された境界におけるピクセルは、参照ピクチャ(例えば、ブロック(1832)を含む参照ピクチャ)内の最も近い整数ピクセル位置からコピーすることが可能である。従って、パディング領域に対する追加的な補間は回避される。
【0172】
その後、予測の精密化は、以下のオプティカル・フロー方程式により計算することが可能である:
【数4】
ここで、Δv(i,j)(例えば、ΔV(1842))は、サンプル位置(i,j)についてのピクセルMV(例えば、ピクセルMC (1840))と、ピクセル位置(i,j)が属するサブ・ブロックのサブ・ブロックMV(例えば、サブ・ブロックMV (1820))との間の差分である。サブ・ブロック中心に対するアフィン・モデル・パラメータ及びピクセル位置はサブ・ブロックからサブ・ブロックでは変更されないので、Δv(i,j)は、最初のサブ・ブロックについて計算され、同じCU内の他のサブ・ブロックについて再利用されることが可能である。幾つかの例では、x及びyを、サブ・ブロックの中心に対するΔv(i,j)の水平及び垂直位置であるとすると、Δv(i,j)は以下の方程式によって導出することが可能である:
【数5】
ここで、Δv
x(x,y)はΔv(i,j)のx成分であり、Δv
y(x,y)はΔv(i,j)のy成分である。
【0173】
4パラメータ・アフィン・モデルについては、
【数6】
であり、6パラメータ・アフィン・モデルについては、
【数7】
であり、ここで、(v
0x,v
0y),(v
1x,v
1y),及び(v
2x,v
2y)は、左上、右上、及び左下制御ポイント動きベクトルであり、w及びhは現在のサブ・ブロックを含む現在のブロックの幅及び高さである。
【0174】
最終的に、予測リファインメントΔI(i,j)を、初期サブ・ブロック予測サンプルI(i,j)に加えることが可能である。PROF法による最終的な精密化された予測サンプルI’は、以下の方程式を用いて生成することが可能である:
【数8】
【0175】
6.ローカル照明補償(LIC)に基づく予測リファインメント
【0176】
6.1 ローカル照明補償
【0177】
ローカル照明補償(LIC)は、幾つかの実施形態で使用されるブロックレベル・コーディング・モードである。LICは、幾つかの例において、コーディング・ユニット(CU)レベルでオン及びオフに切り替えられてもよい。
【0178】
LICは、スケーリング係数aとオフセットbを用いる照明変化に対する線形モデルに基づいている。従来のインター予測に基づくLICによる予測は、以下のようにして生成することが可能であり、
【数9】
ここで、Pred
LICはLICによる予測を表し、Predは動きベクトルにより示される従来のインター予測を示し、a及びbはそれぞれスケーリング係数及びオフセットである。
【0179】
LICモードRec
LICの最終的な再構成は、以下のように導出することが可能であり、
【数10】
ここで、Resは現在のブロックの残差(逆量子化及び逆変換後のもの)である。
【0180】
LICモードがCUに適用される場合、以下のように最小二乗誤差法を用いて、パラメータaとbを、現在のCUの隣接するサンプルとそれらの対応する参照サンプルを使用することによって導出する:
【数11】
ここで、Rec
x,yは現在のブロックの隣接する再構成されたサンプルを示し、Ref
x’,y’は現在のブロックの動きベクトルによって指し示される参照ピクチャ内のRec
x,yの対応するサンプルである。
【0181】
図19は、現在のブロック(1900)の隣接するサンプル(1901)及びLICパラメータa及びbを導出するために使用される対応する参照ブロック(1910)の隣接するサンプルの例を示す。図示されるように、CU(1900)のサブサンプリングされた(2:1サブサンプリングの)隣接するサンプル(1901)及び参照ピクチャ中の対応するサンプル(1911)(現在のCU(1900)(又はサブCU)の動き情報によって識別される)が使用される。LICパラメータは、一例では各々の予測方向に対して別々に導出され、適用されることが可能である。
【0182】
CUがマージ・モードでコーディングされている場合、LICフラグはマージ・モードにおける動き情報コピーと同様な方法で、隣接ブロックの1つからコピーすることが可能である。そうではない場合、LICフラグは、LICが適用されるか否かを示すために、CUに対してシグナリングされることが可能である。
【0183】
ピクチャに対してLICモードが有効にされる場合、追加のCUレベル・レート歪(RD)検査が実行され、LICモードはCUに対して適用されるかどうかを決定することが可能である。一例では、LICがCUに対して有効にされる場合、整数ペル動き探索及び分数ペル動き探索のために、差分絶対値の平均除去和(MR-SAD)及び絶対アダマール変換差分の平均除去和(MR-SATD)が、SAD及びSATDの代わりに、それぞれ使用される。
【0184】
6.2 片-方向照明補償
【0185】
幾つかの実施形態では、片-方向照明補償と呼ばれるLICの修正方法が採用される。例えば、片-方向照明補償では、線形モデル・パラメータ導出は変わらず保たれる。修正されたLICはCUベースで適用される。修正されたLICは、サブ・ブロック・ベースのインター予測(アドバンス時間動きベクトル予測(ATMVP)又はアフィンのようなもの)、三角パーティション、多重仮説イントラ・インター及び双方向予測には適用されない。
【0186】
図20は、LICが双-予測とともに使用される例を示す。方向L0及びL1における片-予測ブロック(2001)-(2002)それぞれを先ず取得することが可能である。次に、再構成された隣接サンプルを用いてLICを実施することによって、精密化されたブロック(2003)-(2004)を取得することが可能である。最終的に、双-予測ブロック(2006)を生成するために、精密化されたブロック(2003)-(2004)に基づいて重み付け平均を実行することが可能である。
【0187】
図20とは対照的に、修正された方法では、一部の例においてLICが双-方向予測に適用されず、なぜなら現在のブロックの再構成された隣接サンプル(2005)は、パイプライン間でインター予測を実行するために必要とされず、従って、別の方法ならばLICについて必要とされていた各々の片-方向インター予測に対して利用可能ではないからである。加えて、LICを双方向予測に適用することは、重み付け演算の前に、LICプロセスを実行するための追加的な段階を導入する。
【0188】
図21は、LICが多重仮説イントラ・インターにより使用される場合の例を示す。先ずインター予測ブロック(2101)及び内部予測ブロック(2102)を生成することが可能である。LICは、インター予測されたブロック(2101)に基づいて、精密化されたブロック(2103)を得るために実行されることが可能である。最終的に、インター・イントラ混合ブロック(2104)は、イントラ・コーディングされたブロック(2102)及び精密化されたブロック(2103)に対する重み付け平均を実行することによって生成することができる。
【0189】
図21とは対照的に、幾つかの例において、LIC処理は多重仮説イントラ・インターには適用されず、なぜならインター予測の後であって重み付け平均化の前に処理されるからであり、それはイントラ及びインター予測ブロック間で重み付けを遅らせる。
【0190】
マージ・モードにおける参照インデックス及びMVに加えて、動き情報の一部としてLICフラグを含めることが可能である。例えば、マージ候補リストが構築される場合に、LICフラグは、マージ候補に対する隣接ブロックから継承されることが可能である。幾つかの例において、LICフラグは、単純化の目的で動きベクトルのプルーニングには使用されない。一例では、LICフラグは参照ピクチャの動きベクトル・バッファに記憶されず、従って、LICフラグはTMVPモードに対して偽(false)に等しく設定することが可能である。一例では、LICフラグは、双-方向マージ候補(ペアワイズ平均候補及びゼロ動き候補など)に対してfalseに等しく設定される。LICツールが適用されていない場合、一例ではLICフラグはシグナリングされない。
【0191】
6.3 アフィン予測に対するLIC処理の適用
【0192】
幾つか実施形態では、アフィン・コーディングされたCUに対してLICを拡張することが可能である。例えば、線形モデル・パラメータの導出は変更されずに保たれ、幾つかの方法がアフィン・コーディングされたCUの参照サンプルを取り出すために使用することが可能である。
【0193】
図22は、参照サンプルを取り出すための第1方法の例を示す。現在のピクチャ(2210)内の現在のCU (2201)は、アフィン・コーディングされたブロックであるとすることが可能である。現在のCU(2201)の同等位置のCU(2202)及び参照CU (2203)は、参照ピクチャ(2220)内に示されている。アフィン・コーディングされたCU(2201)の左上サブ・ブロック動きベクトル(MV)(2231)は、CU(2201)全体の参照サンプルを取得するために使用することが可能である。
【0194】
図23は、参照サンプルを取り出すための第2方法の例を示す。現在のピクチャ(2310)内の現在のCU(2301)は、アフィン・コーディングされたブロックであるとすることが可能である。現在のCU(2301)の同等位置のCU(2302)及び参照CU (2303)は、参照ピクチャ(2320)内に示されている。アフィン・コーディングされたCU(2301)の中央サブ・ブロック動きベクトル(MV)(2331)は、CU(2301)全体の参照サンプルを取得するために使用することが可能である。
【0195】
図24は第3方法の例を示し、サブ・ブロックに基づいて参照サンプルが取り出される。現在のピクチャ(2410)内の現在のCU(2401)は、アフィン・コーディングされたブロックであるとすることが可能である。現在のCU(2401)の同等位置のCU(2402)は、参照ピクチャ(2420)内に示されている。図示のように、現在のCU (2401)の左の列及び上の行のサブ・ブロックMV(MVaないしMVg)は、参照ピクチャ(2420)の内の対応する参照ブロックA RefないしG Refを決定するために使用することが可能である。これらの参照ブロックに隣接する参照サンプルは、線形モデル・パラメータを導出するために使用することができる。
【0196】
7.双-方向オプティカル・フロー(BDOF)に基づく予測リファインメント
【0197】
幾つかの実施形態では、双-方向オプティカル・フロー(BDOF)ツールが使用される。JEMで採用される別の方法(BIOと呼ばれる)と比較して、BDOFは、特に乗算の回数及び乗算器のサイズに関して、非常に少ない計算しか必要としないシンプルなバージョンである。
【0198】
BDOFは、以下の条件を充足する場合にCUに適用され、その条件は:(1)CUの高さが4ではなく、CUが4×8のサイズにおけるものはないこと;(2)CUがアフィン・モード又はATMVPマージ・モードを使用してコーディングされないこと;(3)CUが「真(true)」の双-予測モードを使用してコーディングされること、即ち、2つの参照ピクチャの一方が表示順で現在のピクチャより前にあり、他方が表示順で現在のピクチャより後にあることである。一例では、BDOFはルマ成分に適用されるだけである。
【0199】
BDOFモードは、物体の動きがスムーズであることを仮定するオプティカル・フローの概念に基づいている。各4×4サブ・ブロックに関し、L0及びL1予測サンプル間の差分を最小化することにより、動きのリファインメント(vx,vy)が計算される。次いで、動きのリファインメントを使用して、4×4サブ・ブロック内の双予測サンプル値を調整します。以下のステップは、例示的なBDOFプロセスに適用される。
【0200】
先ず、2つの予測信号の水平及び垂直勾配
【数12】
が、2つの隣接サンプル間の差分を直接的に計算することにより算出され、即ち
【数13】
であり、ここで、I
(k)(i,j)はリストk(k=0,1)内の予測信号の座標(i,j)におけるサンプル値であり、shift1は、ルマ・ビット深度(bitDepth)に基づいて、
shift1=max(2,14-bitDepth)として計算される。
【0201】
次いで、勾配の自己及び相互相関S
1,S
2,S
3,S
4,S
5,S
6が次のように計算される:
【数14】
であり、Ωは4×4サブ・ブロックを囲む6×6ウィンドウであり、n
a及びn
bの値はそれぞれmin(5,bitDepth-7)及びmin(8,bitDepth-4)に設定される。
【0202】
次いで、動きリファインメント(v
x,v
y)は以下による自己及び相互相関を用いて導出され、
【数15】
ここで、S
2,m=S
2>>n
S2,S
2,S=S
2&(2
nS2-1),th’
BIO=2
13-BDであり、
【数16】
は床関数であり、n
S2=12である。
【0203】
動きリファインメント及び勾配に基づいて、4×4サブ・ブロック内の各サンプルについて以下の調整が計算される:
【数17】
【0204】
最終的に、CUのBDOFサンプルは、次のように双-予測サンプルを調整することによって計算される:
【数18】
【0205】
これらの値は、一例として、BDOFプロセスにおける乗数が15ビットを超えないように、また、BDOFプロセスにおける中間パラメータの最大ビット幅が32ビット以内に保たれるように選択される。
【0206】
幾つかの例では、勾配値を導出するために、現在のCU境界外のリストk(k=0,1)における何らかの予測サンプルI
(k)(i,j)を生成することを必要とする。
図25は、BDOFで使用されるCU(2510)に対応する拡張されたCU領域の例を示す。図示されるように、BDOFは、CU(2510)の境界の周りに1つの拡張された行/列を使用する。境界外の予測サンプルを生成する計算の複雑さを抑制するために、拡張されたエリア(網掛けされていない位置)の予測サンプルは、補間によらず(座標に対してfloor()演算を用いて)近傍の整数位置での参照サンプルを直接的に採用することによって生成され、通常の8タップ動き補償補間フィルタが、CU(2510)(網掛け位置)内で予測サンプルを生成するために使用される。これらの拡張されたサンプル値は、勾配計算でのみ使用される。BDOFプロセスの残りのステップに関し、CU境界外の何らかのサンプル値及び勾配値が必要とされる場合、それらは、それらに最も近い近隣からパディングされる(即ち、繰り返される)。
【0207】
III.アフィン予測に対するPROF
【0208】
1.アフィン予測に対するPROFの条件付き適用
【0209】
幾つかの実施形態では、アフィン予測のためのPROFは常に有効にされることが可能であり、これはエンコーダ又はデコーダの複雑さを増大させる可能性がある。これに対して、幾つかの他の実施形態では、アフィンに関するPROFは、パフォーマンスを改善し、エンコーダ又はデコーダの複雑性を低減するために、条件付きで有効又は無効されることが可能である。例えば、PROFは、アフィン・パラメータ値に基づいてアフィン・コーディングされたブロックに条件付きで適用することが可能である。
【0210】
前述したように、アフィン・パラメータはCPMVを用いて以下のように計算することが可能である。x及びyを、現在のCUにおけるサブ・ブロックのピクセル位置から中心までの水平及び垂直オフセットとすると、調整MV Δv(x,y)は以下の方程式によって導出することが可能である:
【数19】
4パラメータ・アフィン・モデルについては、
【数20】
であり、6パラメータ・アフィン・モデルについては、
【数21】
であり、(v
0x,v
0y),(v
1x,v
1y),及び(v
2x,v
2y)は、現在のCUの左上、右上、及び左下制御ポイント動きベクトルであり、w及びhは現在のCUの幅及び高さである。
【0211】
一実施形態では、アフィン・コーディングされたブロックに関し、アフィン・パラメータa,b,c,又はdのうちの最大絶対値(max_parameter = max{|a|,|b|,|c|,|d|}として示される)が、所定の閾値以上である場合には、アフィン用のPROFは、アフィン・コーディングされたブロックには適用されない。そうではない場合、max_parameterが閾値より低い場合に、PROFをアフィン・コーディングされたブロックに適用することが可能である。
【0212】
別の実施形態では、アフィン・コーディングされたブロックに関し、アフィン・パラメータa,b,c,又はdのうちの最小絶対値(min_parameter = min{|a|,|b|,|c|,|d|}として示される)が、所定の閾値以下である場合には、アフィン用のPROFは、アフィン・コーディングされたブロックには適用されない。そうではない場合、min_parameterが閾値より高い場合に、PROFをアフィン・コーディングされたブロックに適用することが可能である。
【0213】
別の実施形態では、アフィン・コーディングされたブロックに関し、アフィン・パラメータa,b,c,又はdの絶対値が、所定の値の範囲内にある場合に、アフィン用のPROFをアフィン・コーディングされたブロックに適用することが可能である。そうではない場合、アフィン・パラメータの何らかの絶対値が所定の範囲にない場合には、PROFはアフィン・コーディングされたブロックに適用されない。値の範囲は[M,N]として示すことが可能であり、ここで、M及びNは正の数である。一例では、M及びNは、予め設定されるか、又は例えばシーケンス・パラメータ・セット(SPS)、ピクチャ・パラメータ・セット(PPS)、タイル・グループ・ヘッダ、タイル・ヘッダ、スライス・ヘッダなどにおいて、予め定義されているか、又はビットストリームでシグナリングされる。
【0214】
別の実施形態では、アフィン・コーディングされたブロックに関し、PROFの使用(有効又は無効)は、例えばprof_flagにより示されるフラグによって決定されてもよい。フラグはブロック・レベルでシグナリングすることが可能である。従って、フラグの値が真(true)である場合、PROFを有効にすることができる。
【0215】
別の実施形態では、アフィン予測用のPROFが有効か無効かを判別するために、シンタックス要素が使用されてもよい。シンタックス要素は、一例ではハイ・レベルのシンタックス要素であるとすることが可能である。例えば、シンタックス要素は、シーケンス・レベル、スライス・レベル、タイル・レベル、タイル・グループ・レベル、ピクチャ・レベルなどでシグナリングされてもよい。
【0216】
2.PROFに関する勾配計算
【0217】
幾つかの実施形態では、PROFプロセスにおいて、勾配計算はサブ・ブロックに基づいて実行されることが可能である。例えば、各アフィン・サブ・ブロック(例えば、アフィン予測のための各々の4×4サブ・ブロック)に対して、インター予測(インター予測中の補間オペレーションを含む)を実行することが可能である。次いで、アフィン・サブ・ブロックの予測出力に基づいて、3タップ・フィルタ[1 0 -1]を用いて勾配を計算することが可能である。その後、サブ・ブロックにもリファインメントが適用される。各アフィン・サブ・ブロックに対する勾配を計算するために、アフィン・サブ・ブロックは、例えば、両側で1ピクセル延びるように、より大きなサイズにパディングされることが可能である。
【0218】
2.1 ブロック全体に対する勾配計算
【0219】
一実施形態では、全てのアフィン・サブ・ブロックに対するインター予測(補間)が完了した場合に、PROFにおける勾配計算を、コーディング・ブロック全体に対して実行することが可能である。このようにして、勾配計算のために各々のサブ・ブロックを拡張することを回避することが可能である。むしろ、コーディング・ブロック全体が、例えば勾配計算のために、各々の側で1ピクセルだけ拡張(パディング)することが可能であり、これは、各サブ・ブロックを拡張するよりも複雑ではない。ブロック全体に基づく計算から得られるそれぞれのサブ・ブロックの勾配に基づいて、各サブ・ブロックに対してリファインメントを行うことが可能である。
【0220】
ブロック全体のパディングについては、様々な実施形態において以下の方法を使用することが可能である:(1)拡張された境界上のピクセルは、対応するサブ・ブロックの動きベクトルを用いる補間によって生成される。(2)拡張された境界上のピクセルは、参照ピクチャ内で最も近い整数ピクセル位置からコピーされる。(3)拡張された境界上のピクセルは、現在のブロックのインター予測出力のうちの最も近いサンプルからコピーされる。
【0221】
2.2 補間フィルタからの勾配フィルタの生成
【0222】
幾つかの実施形態では、アフィン予測のための補間フィルタとPROF勾配計算のための勾配フィルタとを組み合わせて、組み合わせ勾配フィルタを生成することが可能である。組み合わせられた勾配フィルタは、現在のコーディング・ブロックの参照ピクチャ内のサンプル上で直接的で使用されて、それぞれのPROF勾配を生成することが可能である。このようにして、勾配計算プロセスは、対応する補間プロセスと並列に実行されて、PROF処理を加速することが可能である。
【0223】
一実施形態では、10タップの勾配フィルタは、3タップのPROF勾配フィルタ(例えば、[1 0 -1]のタップを有するもの)と、インター予測に使用される8タップの補間フィルタとの畳み込みによって生成されてもよい。従って、勾配計算は、この生成された10タップ勾配フィルタを用いて、参照サンプルに対して直接的に実行されることが可能である。
【0224】
別の実施形態では、10タップ勾配フィルタは、3タップPROF勾配フィルタと、インター予測に使用される8タップ補間フィルタとの畳み込みによって生成され、次いで、各々の側から1つの係数を除去することによって、8タップ・フィルタに打ち切られることが可能である。従って、勾配計算は、この生成された8タップ勾配フィルタを用いて、参照サンプルに対して直接的に実行されることが可能である。
【0225】
別の実施形態では、8タップ勾配フィルタは、3タップPROF勾配フィルタと、インター予測に使用される6タップ補間フィルタとの畳み込みによって生成されてもよい。従って、勾配計算は、この生成された8タップ勾配フィルタを用いて、参照サンプルに対して直接的に実行されることが可能である。
【0226】
別の実施形態では、N-タップ勾配フィルタは、M-タップPROF勾配フィルタと、インター予測のためのL-タップ補間フィルタとの畳み込みによって生成され、次いで、Nタップ・フィルタに打ち切られてもよく、ここで、NはM+L以下である。従って、この生成されたN-タップ勾配フィルタを参照サンプルに直接的に使用して、勾配計算を実行することが可能である。
【0227】
IV.PROF及びLICの相互関係
【0228】
1.LICフラグに基づくアフィン予測用のPROFの条件付き適用
【0229】
アフィン・コーディングされたCUにPROFとLICの両方が適用される場合、アフィン・コーディングされたCUのリファインメント・パフォーマンスは、PROF又はLICの何れかを適用した場合と比較して、それ以上改善されないか、又は悪化することさえあり得る。従って、幾つかの実施形態では、アフィン予測用のPROFが有効にされている場合に、PROFが適用可能かであるかどうかは、LICが有効であるか又は無効であるかを考慮して決定することができる。アフィン予測用のPROFは、デフォルトによって又はハイ・レベルのシンタックスで有効にされることが可能であり、例えば、シーケンス・レベル(例えば、SPS)、ピクチャ・レベル(例えば、PPS)、スライス・レベル、タイル・レベル、タイル・グループ・レベル、CTUレベルなどでシグナリングされることが可能である。
【0230】
一実施形態では、シーケンス・レベル(例えば、SPS)、ピクチャ・レベル(例えば、PPS)、スライス・レベル、タイル/タイル・グループ・レベル等のような所与のハイ・レベルで、、LICが無効にされるようにシグナリングされる場合、PROFは、アフィン・コーディングされたブロックに対して有効にされることが可能である。
【0231】
他の実施形態では、LICが適用されるか否かにかかわらず、アフィン・こーディングされたブロックに対してPROFが有効にされてもよい。一例では、LICのサンプル調整はPROFの前に適用される。別の例では、LICのサンプル調整はPROFの後に適用される。
【0232】
別の実施形態では、LICツールがデフォルトで有効にされるか、又は例えばシーケンス・レベル(例えば、SPS)、ピクチャ・レベル(例えば、PPS)、スライス・レベル、タイル/タイル・グループ・レベルなどのハイ・レベルで有効にされてるようにシグナリングされる場合、幾つかのブロックは、LICがそれぞれのブロックに適用されるかどうかを示すように、LICフラグでシグナリングされる。このようなシナリオでは、例えば、アフィン・インター予測を伴うブロックに対してブロック・レベルで有効にされるように、LICがシグナリングされる場合、そのブロックに対してPROFは無効にされていると推定される。そうではない場合、アフィン・コーディングされたブロックに対してLICが無効にされている場合、そのブロックに対してPROFは有効にされていると推定される。
【0233】
2.アフィン・マージにおけるLICフラグ継承
【0234】
現在のブロックがアフィン・マージ・モードでコーディングされる場合、現在のブロックに対応するLICフラグ値は、様々な方法で決定することが可能である。
【0235】
一実施形態では、継承されたアフィン・マージが現在のブロックに対して使用される。従って、現在のブロックのLICフラグは、アフィン・モデル継承のソースとして使用されるブロックのLICフラグから継承することが可能である。
【0236】
別の実施形態では、構築されるアフィン・マージが、現在のブロックに使用される。LICフラグは、現在のブロックのアフィン制御ポイント動きベクトルCPMV
k(k=1,2,3,4)を構築するために使用される隣接ブロックの最初の利用可能なソース候補から継承することが可能である。一例では、現在のブロックが、
図16の例に示されているような3つの制御ポイント動きベクトルと共に構築されたアフィン・モデルを使用し、CPMVの組み合わせが{CPMV1,CPMV2,CPMV3}である場合、CPMV1を構築するために使用される隣接ブロックは、LICフラグ継承のソースとして使用されてもよい。別の例において、現在のブロックが、
図16に示されているような2つの制御ポイント動きベクトルと共に構築されたアフィン・モデルを使用し、CPMVの組み合わせが{CPMV1,CPMV3}である場合、CPMV1を構築するために使用される隣接ブロックは、LICフラグ継承のソースとして使用されてもよい。
【0237】
別の実施形態では、構築されたアフィン・マージが現在のブロックに使用される。構築されたアフィンCPMVに使用される少なくとも2つのソース候補が同じLICフラグ値を有する場合、このLICフラグ値は現在のブロックに適用されてもよい。そうではない場合、構築されたアフィン・マージに対して2つの制御ポイントのみが使用され、それらのLICフラグが異なる場合、LICは現在のブロックに対して無効にされるように設定することが可能である。
【0238】
別の実施形態では、アフィン・マージ・モードに関し、現在のブロックのLICフラグは、無効にされていると推定することが可能である(例えば、0の値を有する)。
【0239】
別の実施形態では、現在のブロックのLICフラグは、継承されたアフィン・マージが使用される場合に、隣接するブロックのLICフラグから継承されることが可能である。そうではない場合、選択されたマージ候補が、継承されたアフィン・マージ候補ではない場合、現在のブロックのLICフラグは無効にされていると推定することが可能である。
【0240】
V.高精度中間動きベクトルを有するブロックに対するPROFアフィン・リファインメント
【0241】
TMVPモード又はサブ・ブロック・ベースのTMVP(SbTMVP)モードでは、時間的に予測されたMVに対してスケーリング・オペレーションを実行して、中間MVを生成することが可能である。中間MVは、予測ブロックの生成に使用される補間フィルタによってサポートされる精度(例えば、1/16サンプル)よりも高い精度を有することが可能である。中間MVは、サポートされる精度を有する最終的なMV予測子を生成するために、クリップされるか又は丸められることが可能である。従って、最終的なMV予測子は、中間MVと比較して、丸めオペレーションに起因して精度を失っている可能性がある。
【0242】
幾つかの実施形態では、補間オペレーションによるより多くのフェーズや、高精度MVを記憶するための可能性として追加的なメモリ要求を犠牲として、コーディング効率を改善するために、中間の高精度MVがTMVP又はSbTMVPの最終MV予測子として使用される。
【0243】
問題を解決するために、幾つかの実施形態では、PROFと同様なリファインメントは、既存の補間フィルタによってサポートされる精度と比較して高い精度を有する中間MV(MVblockにより示される)を有するブロックに、使用することが可能である。PROFと同様なリファインメントを適用することができるコーディング・モードの例は、TMVP、SbTMVP、空間MV予測、MMVD、AMVPなどを含むことが可能である。これらのコーディング・モードでは、スケーリング・オペレーションがMV予測子の生成のために実行されてもよいし、又はより高い精度を有する候補MVがMV予測子として使用されてもよい。これらのコーディング・モードにおける高い精度の中間MVは、補間フィルタのサポートされた精度に丸められ、続いて、予測ブロックを生成するために動き補償で使用される。補間に関してサポートされる精度のMVと高精度の中間MVとの間の差分は、動き補償から生じる予測ブロックを精密化するために活用することが可能である。
【0244】
一例では、PROFPと同様のリファインメント・プロセスは、以下のステップを含むことが可能である。
ステップ1:MV
roundを用いて予測ブロックPredを形成する。これは既存の補間フィルタによってサポートされる最高精度に丸められたMVを表す。
ステップ2:現在のブロックに対するサンプル位置ごとに、PROFと同様の予測リファインメント・オフセットΔI(i,j)を計算する。ΔI(i,j)の一例は以下の式を用いて導出される:
【数22】
ここで、g
x(i,j)及びg
y(i,j)はそれぞれ位置(i,j)における予測Predのx及びy方向に沿う勾配であり、Δv
x及びΔv
yはMV
block及びMV
roundの間のMV差分である。
ステップ3:インター予測にPredを追加し、一部の例では必要に応じて、得られたピクセルをターゲット範囲内にクリップする。
【0245】
実施形態では、現在のブロックが、ブロック全体に対して同じMVを有する場合(例えば、サブ・ブロックが同じMVを有する)、上記のPROCと同様のリファインメント・プロセスが、ブロック全体に適用される。現在のブロックが、SbTMVPでコーディングされたブロックのように、サブ・ブロック・レベルで異なる動きベクトルを有する場合、上記のPROCと同様なリファインメント・プロセスが、個々のサブ・ブロックに対して適用される。
【0246】
実施形態では、MVblockの精度は、予め定義されてもよいし、或いはシーケンス・パラメータ・セット(例えば、SPS)、ピクチャ・パラメータ・セット(例えば、PPS)、スライス・ヘッダ、タイル・グループ・ヘッダなどのように、ビットストリームでシグナリングされてもよい。代替的に、BDOFが使用される場合には、BDOFに使用されるものと同じ精度を使用することが可能である。例えば、1/32サンプル、1/24サンプル、又は1/64サンプルは、MVblockのために予め定義されていてもよい。
【0247】
幾つかの実施形態において、予測Predの勾配は、3タップ・フィルタ[-1,0,1]を用いて以下のように計算することが可能である:
【数23】
ここで、I(i,j)は位置(i,j)におけるブロック予測Predを示す。
【0248】
勾配を計算するために、一実施形態では、メモリ帯域幅及び複雑性を低減するために、拡張された境界上のピクセルは、参照ピクチャ内で最も近い整数ピクセル位置からコピーされてもよい。従って、パディング領域に対する追加の補間は回避される。別の実施形態では、拡張された予測サンプルは、対応する参照サンプルから追加的な補間によって生成されてもよい。一実施形態では、勾配の精度は、ソース・ビデオのビット深度に基づいている。別の実施形態では、Sobelフィルタが、x及びy方向の勾配を計算するために使用されてもよい。別の実施形態では、Scharrフィルタが、x及びy方向の勾配を計算するために使用されてもよい。別の実施形態では、Prewittフィルタが、x及びy方向の勾配を計算するために使用されてもよい。別の実施形態では、Robertsフィルタが、x及びy方向の勾配を計算するために使用されてもよい。
図26は、Sobel、Scharr、Prewitt及びRobertsフィルタのカーネルの例を示す。
【0249】
実施形態では、現在のピクチャに対するMVを記憶する場合、高精度の(補間フィルタによってサポートされる最高精度より高い)MVが、記憶されることが可能であり、空間MV予測に使用されることが可能である。実施形態では、現在のピクチャのMVをフレーム・バッファに記憶する場合(他のピクチャに対するTMVPとして使用される)、より高い精度を有するMVは、MV圧縮の前に、補間フィルタによってサポートされる最高精度に丸められてもよい。
【0250】
幾つかの実施形態では、PROFと同様のリファインメント・プロセスは、BDOF、DMVR、三角マージ、イントラ・インター・モードなどの幾つかのコーディング・モードと一緒に使用することはできない。
【0251】
VI.PROF又はPROFと同様なリファインメント・プロセスの例
【0252】
1.PROFプロセス例
【0253】
図27は、本開示の実施形態によるプロセス(2700)を要約したフローチャートを示す。プロセス(2700)は、(例えば、アフィン・マージ・モード、アフィンAMVPなどの)アフィン予測モードでコーディングされたブロックの再構成に使用さることが可能であり、その結果、再構成中のブロックに対する予測ブロックを生成する。様々な実施形態において、プロセス(2700)は、端末デバイス(210),(220),(230)及び(240)における処理回路、ビデオ・デコーダ(310)の機能を実行する処理回路、ビデオ・デコーダ(410)の機能を実行する処理回路のような処理回路によって実行される。幾つかの実施形態では、プロセス(2700)は、ソフトウェア命令で実装され、従って、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2700)を実行する。プロセスは(S2701)から始まり、(S2710)に進む。
【0254】
S2710において、シンタックス要素は、アフィン予測用のPROFが有効にされるかどうかを示す。一例では、シンタックス要素は、シーケンス・レベル、スライス・レベル、タイル・レベル、タイル・グループ・レベル、ピクチャ・レベル等でシグナリングされる。別の例では、アフィン予測用のPROFは、シンタックス要素のシグナリングによらず、デフォルトで有効にされることが可能である。
【0255】
S2720において、アフィン・コーディングされたブロックにPROFを適用するかどうかが決定される。一例では、アフィン・コーディングされたブロックにPROFを適用するかどうかは、アフィン・コーディングされたブロックのアフィン・モデルのアフィン・パラメータの値に基づいて決定される。一例では、アフィン・コーディングされたブロックにPROFを適用するかどうかは、受信したシンタックス要素に基づいて決定され、シンタックス要素はアフィン予測用のPROFが有効にされるかどうかを示し、シグナリングは、LICが有効にされているかを示す。
【0256】
S2730において、アフィン・コーディングされたブロックにPROFを適用することを決定した場合に、PROFプロセスは実行される。一例では、PROFプロセスは、アフィン・コーディングされたブロック内のサンプル位置(i,j)における予測サンプルI(i,j)を生成するステップと、アフィン・コーディングされたブロック内のサンプル位置(i,j)における空間勾配gx(i,j)及びgy(i,j)を生成するステップと、空間勾配gx(i,j)及びgy(i,j)に基づいて予測リファインメントΔI(i,j)を生成するステップと、精密化された予測サンプルを生成するために予測サンプルI(i,j)に予測リファインメントΔI(i,j)を加えるステップとを含むことが可能である。
【0257】
一例では、サンプル位置(i,j)における空間勾配gx(i,j)及びgy(i,j)は、予測サンプルI(i,j)を含む第1サブ・ブロックの第1予測サンプルと第1サブ・ブロックに隣接する第2サブ・ブロックの第2予測サンプルとに基づいて生成される。第1サブ・ブロックと第2サブ・ブロックはアフィン・コーディングされたブロックからパーティション化されたサブ・ブロックであるとすることが可能である。
【0258】
一例では、サンプル位置(i,j)における空間勾配gx(i,j)及びgy(i,j)は、アフィン・コーディングされたブロックの参照ピクチャ内の参照サンプルにおいて生成された勾配フィルタを利用して生成される。例えば、生成された勾配フィルタは、第1勾配フィルタと補間フィルタの畳み込みにより生成されることが可能である。例えば、生成された勾配フィルタが使用されないと仮定すると、補間フィルタが、アフィン・コーディングされたブロックの参照ピクチャ内の参照サンプルに適用されて、アフィン・コーディングされたブロックの予測サンプルを生成する。その後、第1勾配フィルタが、アフィン・コーディングされたブロックの生成された予測サンプルに適用されて、空間勾配gx(i,j)及びgy(i,j)を生成することができる。生成された勾配フィルタの採用は、アフィン・コーディングされたブロックの補間(又は予測)と空間勾配gx(i,j)及びgy(i,j)の生成との並列処理を可能にする。
【0259】
一例では、アフィン・コーディングされたブロックはアフィン・マージ・モードでコーディングされ、アフィン・コーディングされたブロックのLICフラグ値は、アフィン・コーディングされたブロックのアフィン・モデル構成又はアフィン・モデル継承のソースとして使用されるアフィン・コーディングされたブロックの隣接ブロックから継承することが可能である。プロセス2700はS2799に進み、S2799で終了することが可能である。
【0260】
2.PROFと同様なリファインメント・プロセスの例
【0261】
図28は、本開示の実施形態によるプロセス(2800)を要約したフローチャートを示す。プロセス(2800)は、ブロックの予測を生成するための動き補償に使用される補間フィルタによってサポートされる精度よりも高い精度の中間MVを有するブロックの再構成に使用することが可能である。様々な実施形態において、プロセス(2800)は、端末デバイス(210),(220),(230)及び(240)における処理回路、ビデオ・デコーダ(310)の機能を実行する処理回路、ビデオ・デコーダ(410)の機能を実行する処理回路のような処理回路によって実行される。幾つかの実施形態では、プロセス(2800)は、ソフトウェア命令で実装され、従って、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2800)を実行する。プロセスは(S2801)から始まり、(S2810)に進む。
【0262】
S2810において、現在のブロックの中間動きベクトルMVbolckを決定することが可能である。間動きベクトルMVbolckは、現在のブロックの補間フィルタによりサポートされる低い精度と比較して高い精度を有することが可能である。現在のブロックは、TMVP、SbTMVP、MMVD、アフィンAMVP、空間動きベクトル予測モードなどによりコーディング化されたブロック又はサブ・ブロックであるとすることが可能である。従って、中間動きベクトルMVbolckは、動きベクトル・スケーリング・オペレーションにおいて生成される。代替的に、現在のブロックは、高い精度を有する動きベクトル予測子を用いてコーディングされることが可能である。
【0263】
一例では、高い精度を示すシンタックス要素は、シーケンス・パラメータ・セット(SPS)、ピクチャ・パラメータ・セット(PPS)、スライス・ヘッダ、タイル・グループ・ヘッダなどにおいて受信することが可能である。中間動きベクトルMVblockは、元々生成された際に、シグナリングされた高い精度よりも高い精度を有しており、シグナリングされた高い精度に丸められる可能性がある。
【0264】
S2820において、中間動きベクトルMVbolckを丸めて、現在のブロックの補間フィルタによりサポートされる低い精度を有する現在のブロックの丸められた動きベクトルMVbolckを生成する。
【0265】
S2830において、丸められた動きベクトルMVroundと補間フィルタに基づいて、現在のブロックの予測ブロックを生成することが可能である。
【0266】
S2840において、予測リファインメント・オフセットΔI(i,j)は、
【数24】
に従って決定され、g
x(i,j)及びg
y(i,j)はそれぞれ、位置(i,j)における予測ブロックの予測サンプルのx及びy方向に沿う勾配であり、Δv
x及びΔv
yはそれぞれ、中間動きベクトルMV
blockと丸められた動きベクトルMV
roundとの間のx及びy方向に沿う動きベクトル差分である。
【0267】
S2850において、予測リファインメント・オフセットΔI(i,j)は予測ブロックの予測サンプルに加えられ、精密化された予測サンプルを生成する。一例では、高い精度を有する中間動きベクトルMVblockはメモリに記憶される。現在のブロックを含む現在のピクチャ内の別のブロックは、空間動きベクトル予測のために中間動きベクトルMVblockを用いてコーディングされることが可能である。プロセス2800は、S2899に進み、S2899で終了することが可能である。
【0268】
VII.コンピュータ・システム
【0269】
上述した技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することが可能であり、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶することが可能である。例えば、
図29は、開示される対象事項の特定の実施形態を実現するのに適したコンピュータ・システム(2900)を示す。
【0270】
コンピュータ・ソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に実行されることが可能な命令、又は解釈やマイクロコード実行などを経由する命令、を含むコードを作成することが可能である。
【0271】
命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム・デバイス、モノのインターネット・デバイス等を含む、種々のタイプのコンピュータ又はそのコンポーネント上で実行されることが可能である。
【0272】
コンピュータ・システム(2900)について
図29に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの使用範囲又は機能性に関する如何なる制限も示唆するようには意図されていない。また、コンポーネントの構成は、コンピュータ・システム(2900)の例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性や要件を有するものとして解釈されてはならない。
【0273】
コンピュータ・システム(2900)は、特定のヒューマン・インターフェース入力デバイスを含むことが可能である。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、聴覚的な入力(例えば、声、拍手)、視覚的な入力(例えば、ジェスチャ)、嗅覚的な入力(図示されていない)を介して、1人以上の人間ユーザーによる入力に応答することが可能である。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体ピクチャを含む3次元ビデオ)のような、人間による意識的な入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することが可能である。
【0274】
入力ヒューマン・インターフェース・デバイスは、キーボード(2901)、マウス(2902)、トラックパッド(2903)、タッチ・スクリーン(2910)、データ・グローブ(不図示)、ジョイスティック(2905)、マイクロホン(2906)、スキャナ(2907)、カメラ(2908)のうちの(描かれているものはそれぞれ唯1つであるが)1つ以上を含む可能性がある。
【0275】
コンピュータ・システム(2900)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザーの感覚を刺激することが可能である。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(2910)、データ・グローブ(不図示)、ジョイスティック(2905)による触覚フィードバックであるが、入力デバイスとして役立たない触覚フィードバック・デバイスが存在する可能性もある)、聴覚的な出力デバイス(例えば、スピーカー(2909)、ヘッドフォン(不図示せず))、視覚的な出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(2910)であり、各々はタッチ・スクリーン入力機能を備えるか又は備えておらず、各々は触覚フィードバック機能を備えるか又は備えておらず、それらのうちの幾つかは、二次元的な視覚的な出力、立体出力のような手段による三次元以上の出力を出力することが可能であってもよい;仮想現実メガネ(図示せず)、ホログラフィック・ディスプレイ、及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことが可能である。
【0276】
コンピュータ・システム(2900)はまた、CD/DVD等の媒体(2921)を使うCD/DVD ROM/RW(2920)を含む光媒体、サム・ドライブ(2922)、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ(2923)、テープ及びフロッピー・ディスク(図示せず)等のレガシー磁気媒体(不図示)、セキュリティ・ドングル(不図示)等の特殊化されたROM/ASIC/PLDベースのデバイスのような、人間がアクセス可能な記憶デバイス及びそれらに関連する媒体を含むことも可能である。
【0277】
当業者はまた、ここで開示される対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の過渡的な信号を包含しないことも理解するはずである。
【0278】
コンピュータ・システム(2900)はまた、1つ以上の通信ネットワーク(2955)へのインターフェースを含むことも可能である。ネットワークは、例えば、無線、有線、光であるとすることが可能である。ネットワークは、更に、ローカル、ワイド・エリア、メトロポリタン、車両産業、リアルタイム、遅延耐性などに関するものであるとすることが可能である。ネットワークの例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTE等を含む)、TVの有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、CANBusを含む車両産業などを含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(2949)に取り付けられる外部ネットワーク・インターフェース・アダプタを必要とする(例えば、コンピュータ・システム(2900)のUSBポート);その他は、一般に、以下に説明するようなシステム・バスに取り付けることによって、コンピュータ・システム(2900)のコアに統合される(例えば、イーサーネット・インターフェースはPCコンピュータ・システム内に、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システム内に統合される)。これらのうちの任意のネットワークを使用して、コンピュータ・システム(2900)は、他のエンティティと通信することが可能である。このような通信は、片-方向受信専用(例えば、放送テレビ)、片-方向送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は双-方向、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0279】
前述のヒューマン・インターフェース・デバイス、ヒューマン・アクセシブル・ストレージ・デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(2900)のコア(2940)に取り付けられることが可能である。
【0280】
コア(2940)は、1つ以上の中央処理ユニット(CPU)(2941)、グラフィックス処理ユニット(GPU)(2942)、フィールド・プログラマブル・ゲート・エリア(FPGA)(2943)の形式における特殊プログラマブル処理デバイス、特定タスク用のハードウェア・アクセラレータ(2944)等を含むことが可能である。これらのデバイスは、リード・オンリ・メモリ(ROM)(2945)、ランダム・アクセス・メモリ(2946)、内部大容量ストレージ・デバイス(例えば、内的な非ユーザー・アクセシブル・ハード・ドライブ、SSD等)(2947)と共に、システム・バス(2948)を介して接続されることが可能である。幾つかのコンピュータ・システムでは、システム・バス(2948)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である可能性がある。周辺デバイスは、コアのシステム・バス(2948)に直接取り付けられるか、又は周辺バス(2949)を介して取り付けられることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0281】
CPU(2941)、GPU(2942)、FPGA(2943)、及びアクセラレータ(2944)は、組み合わされて、前述のコンピュータ・コードを構成することが可能な特定の命令を実行することが可能である。コンピュータ・コードは、ROM(2945)又はRAM(2946)に記憶されることが可能である。一時的なデータはRAM(2946)に格納されることが可能である一方、永続的なデータは例えば内部の大容量ストレージ(2947)に格納されることが可能である。任意のメモリ・デバイスに対する高速な記憶及び検索は、キャッシュ・メモリを利用することで可能になる可能性があり、キャッシュ・メモリは、1つ以上のCPU(2941)、GPU(2942)、大容量ストレージ(2947)、ROM(2945)、RAM(2946)等と密接に関連付けることが可能である。
【0282】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装済み動作を実行するためのコンピュータ・コードをその上に有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、又はそれらは、コンピュータ・ソフトウェアの分野における当業者にとって周知であり且つ入手可能な種類のものであるとすることが可能である。
【0283】
例示として、限定ではなく、アーキテクチャ(2900)、具体的にはコア(2940)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行する機能を提供することが可能である。そのようなコンピュータ読み取り可能な媒体は、コア内部の大容量ストレージ(2947)又はROM(2945)のような非一時的な性質のコア(2940)の特定のストレージと同様に、上述したようなユーザー・アクセシブル大容量ストレージに関連するメディアであるとすることが可能である。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2940)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、RAM(2946)に記憶されたデータ構造を定めること、及びソフトウェアによって定められたプロセスに従ってそのようなデータ構造を修正することを含む、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を、コア(2940)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(2944))内に配線された又は他の方法で組み込まれたロジックの結果として機能を提供することが可能であり、その回路は、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を実行することを、ソフトウェアの代わりに又はそれと共に実行することが可能である。ソフトウェアに対する言及はロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能な媒体に対する言及は、実行のためのソフトウェアを記憶する(集積回路(IC)のような)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を包含することが可能である。本開示はハードウェア及びソフトウェアの適切な任意の組み合わせを包含する。
【0284】
本開示は、幾つかの例示的な実施形態を説明してきたが、本開示の範囲内に該当する、変更、置換、及び種々の代替的な均等物が存在する。従って、当業者は、本願で明示的には図示も説明もされていないが、本開示の原理を具体化し、従ってその精神及び範囲内にある多くのシステム及び方法を案出することが可能であることは理解されるであろう。
【0285】
付録A:頭字語
AMT: Adaptive Multiple Transform(適応複数変換)
AMVP: Advanced Motion Vector Prediction(アドバンスト動きベクトル予測)
ASIC: Application-Specific Integrated Circuit(特定用途向け集積回路)
ATMVP: Alternative/Advanced Temporal Motion Vector Prediction(代替的/アドバンスト時間的動きベクトル予測)
BDOF: Bi-directional Optical Flow(双方向オプティカル・フロー)
BDPCM (or RDPCM): Residual Difference Pulse Coded Modulation(残差パルス符号変調)
BIO: Bi-directional Optical Flow(双方向オプティカル・フロー)
BMS: Benchmark Set(ベンチマーク・セット)
BT: Binary Tree(二分木)
BV: Block Vector(ブロック・ベクトル)
CANBus: Controller Area Network Bus(コントローラ・エリア・ネットワーク・バス)
CB: Coding Block(コーディング・ブロック)
CBF: Coded Block Flag(コーディングされたブロック・フラグ)
CCLM: Cross-Component Linear Mode/Model(クロス・コンポーネント線形モード/モデル)
CD: Compact Disc(コンパクト・ディスク)
CPR: Current Picture Referencing(現在のピクチャの参照)
CPU: Central Processing Unit(中央処理ユニット)
CRT: Cathode Ray Tube(陰極線管)
CTB: Coding Tree Block(コーディング・ツリー・ブロック)
CTU: Coding Tree Unit(コーディング・ツリー・ユニット)
CU: Coding Unit(コーディング・ユニット)
DM: Derived Mode(導出されたモード)
DPB: Decoder Picture Buffer(デコーダ・ピクチャ・バッファ)
DVD: Digital Video Disc(デジタル・ビデオ・ディスク)
EMT: Enhanced Multiple Transform(エンハンスト複数変換)
FPGA: Field Programmable Gate Areas(フィールド・プログラマブル・ゲート・エリア)
GOP: Group of Picture(ピクチャのグループ)
GPU: Graphics Processing Unit(グラフィックス処理ユニット)
GSM: Global System for Mobile communications(移動通信用グローバル・システム)
HDR: High Dynamic Range(ハイ・ダイナミック・レンジ)
HEVC: High Efficiency Video Coding(高効率ビデオ・コーディング)
HRD: Hypothetical Reference Decoder(仮説参照デコーダ)
IBC: Intra Block Copy(イントラ・ブロック・コピー)
IC: Integrated Circuit(集積回路)
IDT: Identify Transform(恒等変換)
ISP: Intra Sub-Partitions(イントラ・サブ・パーティション)
JEM: Joint Exploration Model(共同探索モデル)
JVET: Joint Video Exploration Team(共同ビデオ探索チーム)
LAN: Local Area Network(ローカル・エリア・ネットワーク)
LCD: Liquid-Crystal Display(液晶ディスプレイ)
LFNST: Low Frequency Non-Separable Transform, or Low Frequency Non-Separable Secondary Transform(低周波非セパラブル変換、又は低周波非セパラブル・セカンダリ変換)
LTE: Long-Term Evolution(ロング・ターム・エボリューション)
L_CCLM: Left-Cross-Component Linear Mode/Model(左クロス・コンポーネント線形モード/モデル)
LT_CCLM: Left and Top Cross-Component Linear Mode/Model(左・上クロス・コンポーネント線形モード/モデル)
MIP: Matrix based Intra Prediction(マトリクス・ベースのイントラ予測)
MPM: Most Probable Mode(最確モード)
MRLP (or MRL): Multiple Reference Line Prediction(複数参照ライン予測)
MTS: Multiple Transform Selection(複数変換選択)
MV: Motion Vector(動きベクトル)
NSST: Non-Separable Secondary Transform(非セパラブル・セカンダリ変換)
OLED: Organic Light-Emitting Diode(有機発光ダイオード)
PBs: Prediction Blocks(予測ブロック)
PCI: Peripheral Component Interconnect(周辺コンポーネント相互接続)
PDPC: Position Dependent Prediction Combination(位置依存性予測コンビネーション)
PLD: Programmable Logic Device(プログラマブル論理デバイス)
PPR: Parallel-Processable Region(並列処理可能領域)
PPS: Picture Parameter Set(ピクチャ・パラメータ・セット)
PU: Prediction Unit(予測ユニット)
QT: Quad-Tree(四分木)
RAM: Random Access Memory(ランダム・アクセス・メモリ)
ROM: Read-Only Memory(リード・オンリ・メモリ)
RST: Reduced-Size Transform(縮小サイズ変換)
SBT: Sub-block Transform(サブ・ブロック変換)
SCC: Screen Content Coding(スクリーン・コンテンツ・コーディング)
SCIPU: Small Chroma Intra Prediction Unit(スモール・クロマ・イントラ予測ユニット)
SDR: Standard Dynamic Range(標準ダイナミック・レンジ)
SEI: Supplementary Enhancement Information(補足エンハンスメント情報)
SNR: Signal Noise Ratio(信号雑音非)
SPS: Sequence Parameter Set(シーケンス・パラメータ・セット)
SSD: Solid-state Drive(ソリッド・ステート・ドライブ)
SVT: Spatially Varying Transform(空間変動変換)
TSM: Transform Skip Mode(変換スキップ・モード)
TT: Ternary Tree(三分木)
TU: Transform Unit(変換ユニット)
T_CCLM: Top Cross-Component Linear Mode/Model(トップ・クロス・コンポーネント線形モード/モデル)
USB: Universal Serial Bus(ユニバーサル・シリアル・バス)
VPDU: Visual Process Data Unit(視覚プロセス・データ・ユニット)
VPS: Video Parameter Set(ビデオ・パラメータ・セット)
VUI: Video Usability Information(ビデオ・ユーザビリティ情報)
VVC: Versatile Video Coding(汎用ビデオ・コーディング)
WAIP: Wide-Angle Intra Prediction(広角イントラ予測)
【0286】
付記
(付記1)
ビデオ・デコーダによるビデオ・コーディングの方法であって:
オプティカル・フローによる予測リファリンメント(PROF)を、アフィン・コーディングされたブロックに適用するかどうかを決定するステップと;
前記PROFを前記アフィン・コーディングされたブロックに適用する旨の決定に応じて、
前記アフィン・コーディングされたブロックのサンプル位置(i, j)における予測サンプルI(i,j)を生成し、
前記アフィン・コーディングされたブロックの前記サンプル位置(i, j)における空間勾配gx(i,j)及びgy(i,j)を生成し、
前記空間勾配gx(i,j)及びgy(i,j)に基づいて予測リファインメントΔI(i,j)を生成し、
前記予測リファインメントΔI(i,j)を前記予測サンプルI(i,j)に加えて、精密化された予測サンプルを生成するステップと;
を含む方法。
(付記2)
前記PROFはアフィン予測に対して有効にされるかどうかを示すシンタックス要素を受信するステップ
を更に含む付記1に記載の方法。
(付記3)
デフォルトで前記PROFはアフィン予測に対して有効にされている、付記1に記載の方法。
(付記4)
前記シンタックス要素は、シーケンス・レベル、スライス・レベル、タイル・レベル、タイル・グループ・レベル、又はピクチャ・レベルでシグナリングされる、付記1に記載の方法。
(付記5)
前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定する前記ステップは、
前記アフィン・コーディングされたブロックのアフィン・モデルのアフィン・パラメータの値に基づいて、前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定するステップ
を含む、付記1に記載の方法。
(付記6)
前記サンプル位置(i,j)における前記空間勾配gx(i,j)及びgy(i,j)を生成することは、
前記予測サンプルI(i,j)を含む第1サブ・ブロックの第1予測サンプルと前記第1サブ・ブロックに隣接する第2サブ・ブロックの第2予測サンプルとに基づいて、前記サンプル位置(i,j)における前記空間勾配gx(i,j)及びgy(i,j)を生成することを含み、
前記第1サブ・ブロックと前記第2サブ・ブロックは前記アフィン・コーディングされたブロックからパーティション化されている、付記1に記載の方法。
(付記7)
前記サンプル位置(i,j)における前記空間勾配gx(i,j)及びgy(i,j)を生成することは、
前記アフィン・コーディングされたブロックのサブ・ブロックについてインター予測を実行し、
アフィン・コーディングされたブロック全体の予測サンプルに基づいて、サンプル位置における空間勾配を生成することを含む、付記1に記載の方法。
(付記8)
前記サンプル位置(i,j)における前記空間勾配gx(i,j)及びgy(i,j)を生成することは、
前記アフィン・コーディングされたブロックの参照ピクチャ内の参照サンプルにおいて生成された勾配フィルタを利用して、前記サンプル位置(i,j)における前記空間勾配gx(i,j)及びgy(i,j)を生成することを含む、付記1に記載の方法。
(付記9)
前記生成された勾配フィルタは、第1勾配フィルタと補間フィルタの畳み込みにより生成され、
前記アフィン・コーディングされたブロックの前記参照ピクチャ内の前記参照サンプルに前記補間フィルタを適用することは、前記アフィン・コーディングされたブロックの予測サンプルを生成し、次いで、前記アフィン・コーディングされたブロックの前記生成された予測サンプルに前記第1勾配フィルタを適用することは、前記空間勾配gx(i,j)及びgy(i,j)を生成する、付記8に記載の方法。
(付記10)
前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定する前記ステップは、
前記PROFはアフィン予測に対して有効にされるかどうかを示す受信したシンタックス要素と、ローカル照明補償(LIC)は有効にされているかどうかを示すシグナリングとに基づいて、前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定するステップ
を含む、付記1に記載の方法。
(付記11)
前記アフィン・コーディングされたブロックはアフィン・マージ・モードでコーディングされ、前記アフィン・コーディングされたブロックのLICフラグ値は、前記アフィン・コーディングされたブロックのアフィン・モデル構成又はアフィン・モデル継承のソースとして使用される前記アフィン・コーディングされたブロックの隣接ブロックから継承される、付記1に記載の方法。
(付記12)
ビデオ・デコーダによるビデオ復号化の方法であって:
現在のブロックの補間フィルタによりサポートされる低い精度と比較して高い精度を有する前記現在のブロックの中間動きベクトルMVbolckを決定するステップと;
前記中間動きベクトルMVbolckを丸めて、前記現在のブロックの前記補間フィルタによりサポートされる前記低い精度を有する前記現在のブロックの丸められた動きベクトルMVroundを生成するステップと;
前記丸められた動きベクトルMVbolckと前記補間フィルタに基づいて、前記現在のブロックの予測ブロックを生成するステップと;
予測リファインメント・オフセットΔI(i,j)を、
ΔI(i,j)= gx(i,j)*Δvx + gy(i,j)*Δvy
に従って決定するステップであって、gx(i,j)及びgy(i,j)はそれぞれ、位置(i,j)における前記予測ブロックの予測サンプルのx及びy方向に沿う勾配であり、Δvx及びΔvyはそれぞれ、前記中間動きベクトルMVblockと前記丸められた動きベクトルMVroundとの間のx及びy方向に沿う動きベクトル差分である、ステップと;
前記予測リファインメント・オフセットΔI(i,j)を前記予測ブロックの前記予測サンプルに加えて、精密化された予測サンプルを生成するステップと;
を含む方法。
(付記13)
前記現在のブロックは、時間的動きベクトル予測モード(TMVP)、サブ・ブロック・ベースのTMVPモード(SbTMVP)、動きベクトル差分によるマージ・モード(MMVD)、アフィン・アドバンス動きベクトル予測(AMVP)、又は空間的動きベクトル予測モード、によりコーディングされたブロック又はサブ・ブロックであり、前記中間動きベクトルMVblockは動きベクトル・スケーリング・オペレーションで生成されるか、又は
前記現在のブロックは、前記高い精度を有する動きベクトル予測子を利用してコーディングされる、付記12に記載の方法。
(付記14)
シーケンス・パラメータ・セット(SPS)、ピクチャ・パラメータ・セット(PPS)、スライス・ヘッダ、タイル・グループ・ヘッダにおいて、前記高い精度を示すシンタックス要素を受信するステップ
を更に含む付記12に記載の方法。
(付記15)
高い精度を有する前記中間動きベクトルMVblockをメモリに記憶するステップと;
空間動きベクトル予測のための前記中間動きベクトルMVblockを使用して、前記現在のブロックを含む現在のピクチャ内の他のブロックをコーディングするステップと;
を更に含む付記12に記載の方法。
(付記16)
回路を含む装置であって、前記回路は:
オプティカル・フローによる予測リファリンメント(PROF)を、アフィン・コーディングされたブロックに適用するかどうかを決定し;
前記PROFを前記アフィン・コーディングされたブロックに適用する旨の決定に応じて、
前記アフィン・コーディングされたブロックのサンプル位置(i, j)における予測サンプルI(i,j)を生成し、
前記アフィン・コーディングされたブロックの前記サンプル位置(i, j)における空間勾配gx(i,j)及びgy(i,j)を生成し、
前記空間勾配gx(i,j)及びgy(i,j)に基づいて予測リファインメントΔI(i,j)を生成し、
前記予測リファインメントΔI(i,j)を前記予測サンプルI(i,j)に加えて、精密化された予測サンプルを生成する;
ように構成されている、装置。
(付記17)
前記回路は、前記PROFはアフィン予測に対して有効にされるかどうかを示すシンタックス要素を受信するように更に構成されている、付記16に記載の装置。
(付記18)
デフォルトで前記PROFはアフィン予測に対して有効にされている、付記16に記載の装置。
(付記19)
前記シンタックス要素は、シーケンス・レベル、スライス・レベル、タイル・レベル、タイル・グループ・レベル、又はピクチャ・レベルでシグナリングされる、付記16に記載の装置。
(付記20)
前記回路は、前記アフィン・コーディングされたブロックのアフィン・モデルのアフィン・パラメータの値に基づいて、前記PROFを前記アフィン・コーディングされたブロックに適用するかどうかを決定するように更に構成されている、付記16に記載の装置。
【国際調査報告】