(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-07
(45)【発行日】2024-11-15
(54)【発明の名称】CUレベル重みをシグナリングしない双予測
(51)【国際特許分類】
H04N 19/577 20140101AFI20241108BHJP
H04N 19/105 20140101ALI20241108BHJP
H04N 19/176 20140101ALI20241108BHJP
【FI】
H04N19/577
H04N19/105
H04N19/176
(21)【出願番号】P 2022564807
(86)(22)【出願日】2022-04-26
(86)【国際出願番号】 US2022071935
(87)【国際公開番号】W WO2022232788
(87)【国際公開日】2022-11-03
【審査請求日】2022-10-25
(32)【優先日】2021-04-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-04-21
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】チュン・アウヨン
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2019-519148(JP,A)
【文献】特表2019-531029(JP,A)
【文献】国際公開第2014/002217(WO,A1)
【文献】"Recommendation ITU-T H.266 (08/2020)",[online], ITU-T,2020年08月29日,Pages 11-13 and 169,[令和5年4月5日検索], インターネット, <URL: https://www.itu.int/rec/T-REC-H.266-202008-S/en>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
デコーダにおけるビデオ処理の方法であって、
ビットストリームから、現在のピクチャ内の符号化ブロックの情報を復号するステップであって、前記情報は
VVCベースの双予測モードを示し、前記双予測モードに関連付けられた
CUレベル重みは、前記ビットストリームではシグナリングされない、ステップと、
前記符号化ブロックの双予測のために、第1の参照ピクチャに関連付けられた第1の動きベクトルおよび第2の参照ピクチャに関連付けられた第2の動きベクトルを決定するステップと、
前記符号化ブロックの現在のテンプレートおよび前記第1の動きベクトルに基づいて前記第1の参照ピクチャ内の第1の参照テンプレートを決定するステップと、
前記符号化ブロックの現在のテンプレートおよび前記第2の動きベクトルに基づいて前記第2の参照ピクチャの第2の参照テンプレートを決定するステップと、
前記第1の参照テンプレート、前記第2の参照テンプレート、および前記現在のテンプレートに基づく
固定小数点演算を用いた最小二乗法によって、前記
CUレベル重みを計算するステップ
であって、前記CUレベル重みはnビットである、ステップと、
所定の範囲内の前記CUレベル重みをaからbの間にクリップするステップであって、a及びbは整数であるステップと、
前記
CUレベル重みを有する双予測を使用して前記符号化ブロックを再構成するステップと
を含み、
前記CUレベル重みに基づいて計算される双予測信号は、前記現在のピクチャにおける第1の予測信号及び第2の予測信号を含み、
前記第1の予測信号及び前記第2の予測信号のビット長はmであり、nとmの和が所定のビット数を満たすようにn及びmは設定され、
前記現在のテンプレートは、
前記符号化ブロックの上のサンプルの2つ以上の行、または
前記符号化ブロックの左のサンプルの2つ以上の列
のうちの少なくとも1つを含む
方法。
【請求項2】
前記現在のテンプレートは、前記符号化ブロックに隣接する1つ以上の再構成されたサンプルを含む、請求項1に記載の方法。
【請求項3】
前記現在のテンプレートは、
前記符号化ブロックのすぐ上のサンプルの行、または
前記符号化ブロックのすぐ左のサンプルの列
のうちの少なくとも1つを含む、請求項2に記載の方法。
【請求項4】
前記
CUレベル重みを計算する前記ステップは、
前記第1の参照テンプレート、前記第2の参照テンプレート、および前記現在のテンプレートに基づく所定のコスト関数を最小化する前記
CUレベル重みを決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項5】
前記所定のコスト関数は、1つ以上の重みパラメータを有する所定の双予測モデルを使用して前記第1の参照テンプレートおよび前記第2の参照テンプレートに基づいて予測される予測された現在のテンプレートに対する前記現在のテンプレートのそれぞれのサンプル差に基づく、請求項4に記載の方法。
【請求項6】
前記
CUレベル重みを計算する前記ステップは、
最小二乗法によって所定の双予測モデル内の3つの重みパラメータの値を決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項7】
前記
CUレベル重みを計算する前記ステップは、
最小二乗法によって所定の双予測モデル内の2つの重みパラメータの値を決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項8】
前記
CUレベル重みを計算する前記ステップは、
最小二乗法によって所定の双予測モデル内の1つの重みパラメータの値を決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項9】
請求項1か
ら8のいずれか一項に記載の方法を実行するように構成された装置。
【請求項10】
少なくとも1つのプロセッサに請求項1か
ら8のいずれか一項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年4月26日に出願された米国仮出願第63/179,928号「BI-PREDICTION WITH CU-LEVEL WEIGHTS WITHOUT SIGNALING」に対する優先権の利益を主張する、2022年4月21日に出願された米国特許出願第17/726,042号「BI-PREDICTION WITHOUT SIGNALING CU-LEVEL WEIGHTS」に対する優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ビデオ符号化に関する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。この背景技術の項に記載されている限りにおいて、本発明者らの研究、および出願時に先行技術として認められない可能性がある説明の態様は、本開示に対する先行技術として明示的にも黙示的にも認められない。
【0004】
非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連する彩度サンプルの空間次元を有する。一連のピクチャは、例えば、毎秒60ピクチャまたは60Hzの固定または可変の(非公式にはフレームレートとしても知られる)ピクチャレートを有することができる。非圧縮ビデオは特有のビットレート要件を有する。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶空間を必要とする。
【0005】
ビデオの符号化および復号の1つの目的は、圧縮を介して入力ビデオ信号内の冗長性を低減することであり得る。圧縮は、前述の帯域幅および/または記憶空間の要件を、場合によっては、2桁以上削減するのに役立つことができる。可逆圧縮と非可逆圧縮の両方、ならびにこれらの組み合わせを採用することができる。可逆圧縮は、元の信号の正確なコピーが圧縮された元の信号から再構成され得る技術を指す。非可逆圧縮を使用すると、再構成された信号は元の信号と同一ではない可能性があるが、元の信号と再構成された信号との間の歪みは、再構成された信号を目的の用途に役立てるのに十分小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビ配信用途のユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い容認可能/許容可能な歪みがより高い圧縮比をもたらし得ることを反映し得る。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピー符号化を含む、いくつかの広いカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラ符号化と呼ばれる技術を含むことができる。イントラ符号化では、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照することなく表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分化される。サンプルのすべてのブロックがイントラモードで符号化されるとき、そのピクチャはイントラピクチャであり得る。イントラピクチャ、および独立デコーダリフレッシュピクチャなどのそれらの派生物は、デコーダ状態をリセットするために使用することができるので、符号化されたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用することができる。イントラブロックのサンプルは、変換を受ける可能性があり、変換係数は、エントロピー符号化の前に量子化される可能性がある。イントラ予測は、変換前領域内のサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために所与の量子化ステップのサイズにおいて必要とされるビットは小さくなる。
【0008】
例えば、MPEG-2世代の符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、復号順で先行する、データブロックの符号化および/または復号中に取得された周囲のサンプルデータおよび/またはメタデータから試行する技術を含む。このような技術は、以降、「イントラ予測」技術と呼ばれる。少なくともいくつかの場合において、イントラ予測は、再構成中の現在のピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに留意されたい。
【0009】
イントラ予測には多くの異なる形態があり得る。このような技術のうちの2つ以上が所与のビデオ符号化技術において使用され得るとき、使用中の技法はイントラ予測モードで符号化することができる。特定の場合には、モードはサブモードおよび/またはパラメータを有することができ、これらは個別に符号化されるか、またはモードの符号語に含まれ得る。所与のモード、サブモード、および/またはパラメータの組み合わせにどの符号語を使用するかは、イントラ予測を介した符号化効率向上に影響を与える可能性があり、そのため、符号語をビットストリームに変換するために使用されるエントロピー符号化技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードは、H.264で導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオ符号化(VVC)、およびベンチマークセット(BMS)などのより新しい符号化技術においてさらに改良された。予測子ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成することができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリーム内で符号化され得るか、またはそれ自体が予測され得る。
【0011】
図1Aを参照すると、右下に描写されているのは、H.265の(35個のイントラモードのうちの33個の角度モードに対応する)33個の可能な予測子方向から知られる9つの予測子方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が水平から45度の角度で右上にある1つまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平から22.5度の角度でサンプル(101)の左下にある1つまたは複数のサンプルから予測されることを示す。
【0012】
引き続き
図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示されている)が示されている。正方形ブロック(104)は16個のサンプルを含み、各々に、「S」と、サンプルのY次元の位置(例えば行インデックス)と、サンプルのX次元の位置(例えば列インデックス)とでラベル付けされている。例えば、サンプルS21は、(上から)Y次元において2番目のサンプルであって、(左から)X次元において1番目のサンプルである。同様に、サンプルS44は、Y次元とX次元との両方においてブロック(104)中で4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は右下にある。同様の番号付け方式に従う参照サンプルがさらに示されている。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264およびH.265の両方において、予測サンプルは再構成中のブロックに隣接するので、負の値が使用される必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向に応じて、隣接サンプルからの参照サンプル値をコピーすることによって機能することができる。例えば、符号化されたビデオビットストリームが、このブロックに関して、矢印(102)と一致する予測方向を示すシグナリングを含む、すなわち、サンプルが水平から45度の角度で右上にある1つまたは複数の予測サンプルから予測されると仮定する。その場合、同じ参照サンプルR05からサンプルS41、S32、S23、およびS14が予測される。その後、参照サンプルR08からサンプルS44が予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れないときは、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオ符号化技術が発展するにつれて増加している。H.264(2003年)では、9つの異なる方向を表すことができた。これはH.265(2013年)で33に増え、JEM/VVC/BMSは開示時点で最大65の方向をサポートすることができる。最も可能性が高い方向を識別するために実験が行われており、エントロピー符号化の特定の技術は、それらの可能性が高い方向を少数のビットで表すために使用され、可能性が低い方向に関しては一定のペナルティを受け入れている。さらに、方向自体は、隣接するすでに復号されたブロックで使用される隣接する方向から予測され得る場合がある。
【0016】
図1Bは、経時的に増加する数の予測方向を示すために、JEMによる65個のイントラ予測方向を描写する概略図(110)を示す。
【0017】
方向を表す符号化ビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオ符号化技術ごとに異なる可能性があり、例えば、予測方向からイントラ予測モード、符号語、最も可能性の高いモードを含む複雑な適応方式、および同様の技術への単純な直接マッピングにまで及ぶ可能性がある。ただし、すべての場合において、他の特定の方向よりも統計的にビデオコンテンツで発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目標は冗長性の低減であるため、これらの可能性の低い方向は、適切に機能するビデオ符号化技術では、可能性の高い方向よりも多くのビットで表される。
【0018】
ビデオ符号化および復号は、動き補償を伴うインターピクチャ予測を使用して実行することができる。動き補償は非可逆圧縮技術とすることができ、以前に再構成されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降、MV)によって示される方向に空間的にシフトされた後、新たに再構成されたピクチャまたはピクチャの一部の予測に使用される技術に関することができる。場合によっては、参照ピクチャは現在再構成中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有することができ、3番目の次元は、使用中の参照ピクチャの表示である(後者は、間接的に時間次元であり得る)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータの特定の領域に適用可能なMVは、他のMV、例えば再構成中のエリアに空間的に隣接し、復号順でそのMVに先行するサンプルデータの別の領域に関連するMVから予測することができる。そうすることにより、MVの符号化に必要なデータ量を大幅に削減することができ、それによって冗長性が排除され、圧縮率が増加する。例えば、(ナチュラルビデオとして知られている)カメラから導出された入力ビデオ信号を符号化するとき、単一のMVが適用可能な領域よりも大きい領域が同様の方向に移動する統計的な可能性が存在するので、MV予測は効果的に機能することができ、したがって、場合によっては、隣接する領域のMVから導出された同様の動きベクトルを使用して予測することができる。その結果、所与の領域について検出されたMVは、周囲のMVから予測されたMVと同様または同じであり、エントロピー符号化後、直接MVを符号化する場合に使用されるビット数より少ないビット数で表すことができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合、MV予測自体は、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、非可逆であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本明細書に記載されるのは、以降「空間マージ」と呼ばれる技術である。
【0021】
図2を参照すると、現在のブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって見つけられたサンプルを含む。当該MVを直接符号化する代わりに、1つ以上の参照ピクチャに関連付けられたメタデータからMVを導出することができ、例えば、A0,A1およびB0,B1,B2(それぞれ202から206)で表されている周囲の5つのサンプルのいずれか1つに関連付けられたMVを用いて、最新(復号順)の参照ピクチャからMVを導出することができる。H.265では、MV予測は、隣接するブロックが使用している同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の態様は、ビデオ符号化/復号のための方法および装置を提供する。いくつかの例では、ビデオ復号のための装置は処理回路を含む。例えば、処理回路は、ビットストリームから、現在のピクチャ内の符号化ブロックの情報を復号する。この情報は、重みシグナリングなしの双予測モードを示す。双予測モードに関連付けられた重みは、ビットストリームではシグナリングされない。さらに、処理回路は、符号化ブロックの双予測のために、第1の参照ピクチャに関連付けられた第1の動きベクトルおよび第2の参照ピクチャに関連付けられた第2の動きベクトルを決定し、符号化ブロックの現在のテンプレートおよび第1の動きベクトルに基づいて第1の参照ピクチャ内の第1の参照テンプレートを、ならびに符号化ブロックの現在のテンプレートおよび第2の動きベクトルに基づいて第2の参照ピクチャ内の第2の参照テンプレートを決定する。処理回路はまた、第1の参照テンプレート、第2の参照テンプレート、および現在のテンプレートに基づいて、双予測モードで使用するための重みを計算し、計算された重みを有する双予測を使用して符号化ブロックを再構成する。
【0023】
本開示のいくつかの態様によれば、現在のテンプレートは、符号化ブロックに隣接する1つ以上の再構成されたサンプルを含む。いくつかの例では、現在のテンプレートは、符号化ブロックの上のサンプルの1つ以上の行、および符号化ブロックの左のサンプルの1つ以上の列のうちの少なくとも1つを含む。いくつかの例では、現在のテンプレートは、符号化ブロックのすぐ上のサンプルの行、および符号化ブロックのすぐ左のサンプルの列のうちの少なくとも1つを含む。
【0024】
いくつかの実施形態では、処理回路は、第1の参照テンプレート、第2の参照テンプレート、および現在のテンプレートに基づく所定のコスト関数を最小化する重みを決定する。いくつかの例では、所定のコスト関数は、1つ以上の重みパラメータを有する所定の双予測モデルを使用して第1の参照テンプレートおよび第2の参照テンプレートに基づいて予測される予測された現在のテンプレートに対する現在のテンプレートのそれぞれのサンプル差に基づく。
【0025】
いくつかの例では、所定の双予測モデルは、3つの重みパラメータを含む。処理回路は、最小二乗法によって所定の双予測モデル内の3つの重みパラメータの値を決定する。
【0026】
いくつかの例では、所定の双予測モデルは、2つの重みパラメータを含む。処理回路は、最小二乗法によって所定の双予測モデル内の2つの重みパラメータの値を決定する。
【0027】
いくつかの例では、所定の双予測モデルは、1つの重みパラメータを含む。処理回路は、最小二乗法によって所定の双予測モデル内の1つの重みパラメータの値を決定する。
【0028】
いくつかの例では、処理回路は、所定の範囲内の(1つまたは複数の)重みをクリップする。
【0029】
本開示の態様はまた、ビデオ復号のためにコンピュータによって実行されると、コンピュータにビデオ復号のための方法を実行させる命令を記憶した、非一時的なコンピュータ可読媒体を提供する。
【0030】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0031】
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図2】一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。
【
図3】一実施形態による通信システム(300)の簡略化された概略ブロック図である。
【
図4】一実施形態による通信システム(400)の簡略化された概略ブロック図である。
【
図5】一実施形態によるデコーダの簡略ブロック図の概略図である。
【
図6】一実施形態によるエンコーダの簡略ブロック図の概略図である。
【
図7】別の実施形態によるエンコーダのブロック図である。
【
図8】別の実施形態によるデコーダのブロック図である。
【
図9A】一例におけるインター符号化された符号化ブロックの単予測を示す図である。
【
図9B】別の例におけるインター符号化された符号化ブロックの単予測を示す図である。
【
図9C】さらに別の例におけるインター符号化された符号化ブロックの単予測を示す図である。
【
図10】本開示のいくつかの実施形態による、ビデオシーケンスを符号化するために双予測を使用する図である。
【
図11】本開示の一実施形態による、双予測モードにおける処理のプロセスの概要を示すフローチャートである。
【
図12】本開示のいくつかの実施形態によるプロセスの概要を示すフローチャートである。
【
図13】本開示の一実施形態による符号化プロセスの概要を示すフローチャートである。
【
図14】本開示の一実施形態による復号プロセスの概要を示すフローチャートである。
【
図15】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0032】
図3は、本開示の一実施形態による、通信システム(300)の簡略ブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して、互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。
図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するためのビデオデータ(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリーム)を符号化することができる。符号化ビデオデータは、1つ以上の符号化ビデオビットストリームの形式で送信することができる。端末デバイス(320)は、ネットワーク(350)から符号化ビデオデータを受信し、符号化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向データ送信は、メディアサービング用途などで一般的であり得る。
【0033】
別の例では、通信システム(300)は、例えばビデオ会議中に発生する可能性がある符号化ビデオデータの双方向送信を実行する端末デバイス(330)および(340)の第2のペアを含む。データの双方向送信の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するためのビデオデータ(例えば、端末デバイスによって取り込まれたビデオピクチャのストリーム)を符号化することができる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信された符号化ビデオデータを受信することができ、符号化ビデオデータを復号してビデオピクチャを復元することができ、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示することができる。
【0034】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示される場合があるが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器を用いる用途を見出す。ネットワーク(350)は、例えばワイヤライン(有線)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間で符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではないことがある。
【0035】
図4は、開示される主題の用途の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、ならびにCD、DVD、およびメモリスティックなどを含むデジタル媒体への圧縮ビデオの記憶などを含む他のビデオ対応用途に等しく適用可能とすることができる。
【0036】
ストリーミングシステムは、ビデオソース(401)、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成する、例えばデジタルカメラを含むことができる取り込みサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。符号化ビデオデータ(404)(または符号化ビデオビットストリーム)と比較したときに多いデータ量を強調するために太い線として描写されたビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理することができる。ビデオエンコーダ(403)は、以下でより詳細に記載されるように、開示された主題の態様を可能にするかまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(402)と比較したときに少ないデータ量を強調するために細い線として描写された符号化ビデオデータ(404)(または符号化ビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶することができる。
図4のクライアントサブシステム(406)および(408)などの1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化ビデオデータ(404)のコピー(407)および(409)を取得することができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化ビデオデータの入力コピー(407)を復号し、ディスプレイ(412)(例えば、ディスプレイ画面)または他のレンダリングデバイス(図示せず)上でレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。いくつかのストリーミングシステムでは、符号化ビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮規格に従って符号化することができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化規格は、多用途ビデオ符号化(VVC)として非公式に知られている。開示
される主題は、VVCに関連して使用され得る。
【0037】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
【0038】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0039】
受信機(531)は、ビデオデコーダ(510)によって復号される1つ以上の符号化ビデオシーケンス、同じかまたは別の実施形態では、一度に1つの符号化ビデオシーケンスを受信することができ、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスから独立している。符号化ビデオシーケンスは、チャネル(501)から受信されてもよく、チャネル(501)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。受信機(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリームととともに、符号化ビデオデータを受信することができる。受信機(531)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下「パーサ(520)」)との間に結合され得る。特定の用途では、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の用途では、バッファメモリは、ビデオデコーダ(510)の外部にあってもよい(図示せず)。さらに他の用途では、例えばネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在することができ、加えて、例えばプレイアウトタイミングを処理するためにビデオデコーダ(510)の内部に他のバッファメモリ(515)が存在することができる。受信機(531)が十分な帯域幅および制御性を有する記憶/転送デバイスからまたはアイソクロナスネットワークからデータを受信している場合、バッファメモリ(515)は必要ないか、または小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要とされることがあり、比較的大きくてもよく、有利には適応サイズであってもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装され得る。
【0040】
ビデオデコーダ(510)は、符号化ビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報、および潜在的に、電子デバイス(530)の不可欠な部分ではないが、
図5に示されたように、電子デバイス(530)に結合することができるレンダリングデバイス(512)(例えば、ディスプレイ画面)などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(520)は、受信された符号化ビデオシーケンスを解析/エントロピー復号することができる。符号化ビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができ、文脈依存の有無にかかわらず、可変長符号化、ハフマン符号化、算術符号化などを含む様々な原則に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスから、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのためのサブグループパラメータのセットを抽出することができる。サブグループは、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、符号化ビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出することができる。
【0041】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピー復号/構文解析動作を実行することができる。
【0042】
シンボル(521)の再構成は、符号化されたビデオピクチャまたはその一部(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)のタイプ、および他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサ(520)によって符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために描写されていない。
【0043】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下に記載されるようないくつかの機能ユニットに概念的に細分化することができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合され得る。しかしながら、開示されている主題を説明する目的のために、以下の機能ユニットへの概念的な細分化が適切である。
【0044】
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(520)からシンボル(521)として受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0045】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化されたブロックに関係することができ、つまり、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用できるブロックである。このような予測情報を、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0046】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的に動き補償されたブロックに関係し得る。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0047】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、符号化ビデオシーケンス(符号化ビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるインループフィルタ技術を含むことができるが、符号化ピクチャまたは符号化ビデオシーケンスの(復号順で)前の部分の復号中に取得されたメタ情報に応答することもでき、以前に再構成およびループフィルタリングされたサンプル値に応答することもできる。
【0048】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されるだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することができるサンプルストリームであり得る。
【0049】
特定の符号化ピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用することができる。例えば、対象のピクチャに対応する符号化ピクチャが完全に再構成され、符号化ピクチャが参照ピクチャとして(例えばパーサ(520)によって)特定されると、現在のピクチャバッファ(558)は参照ピクチャメモリ(557)の一部になることが可能であり、次の符号化ピクチャの再構成を開始する前に、新たな現在のピクチャバッファを再割り当てすることができる。
【0050】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化ビデオシーケンスがビデオ圧縮技術または規格の構文とビデオ圧縮技術において文書化されたプロファイルの両方を順守するという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定された構文に準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、そのプロファイルの下で使用するために利用可能な唯一のツールとして特定のツールを選択することができる。また、準拠するために必要なことは、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様、および符号化されたビデオシーケンスにおいてシグナリングされたHRDバッファ管理のメタデータによってさらに制限される場合がある。
【0051】
一実施形態では、受信機(531)は、符号化ビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、(1つまたは複数の)符号化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号するため、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間、空間、または信号対雑音比(SNR)の拡張層、冗長スライス、冗長ピクチャ、順方向誤り訂正コードなどの形式であり得る。
【0052】
図6は、本開示の一実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0053】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化される(1つまたは複数の)ビデオ画像を取り込み得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は電子デバイス(620)の一部である。
【0054】
ビデオソース(601)は、ビデオエンコーダ(603)によって符号化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとすることができるデジタルビデオサンプルストリームの形式で提供することができる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、順番に見たときに動きを伝える複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成することができ、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0055】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって要求される他の任意の時間制約の下で、ソースビデオシーケンスのピクチャを符号化ビデオシーケンス(643)に符号化および圧縮し得る。適切な符号化速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載される他の機能ユニットを制御し、他の機能ユニットに機能的に結合されている。明確にするために、結合は示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値、…)、ピクチャサイズ、グループオブピクチャ(GOP)のレイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0056】
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループで動作するように構成される。過度に簡略化された説明として、一例では、符号化ループは、ソースコーダ(630)(例えば、符号化されるべき入力ピクチャと参照ピクチャとに基づいて、シンボルストリームなどのシンボルを作成することに関与する)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含み得る。デコーダ(633)は、(開示された主題で考慮されるビデオ圧縮技術においてシンボルと符号化されたビデオビットストリームとの間の任意の圧縮が可逆的であるため)(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構成する。再構成されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの位置(ローカルまたはリモート)に関係なくビット・イグザクトな結果が得られるため、参照ピクチャメモリ(634)内の内容もまたローカルエンコーダとリモートエンコーダとの間でビット・イグザクトになる。言い換えると、あたかもデコーダが復号の際に予測を用いるときに「見る」のと同じサンプル値を、エンコーダの予測部分は参照ピクチャサンプルとして正確に「見る」。参照ピクチャの同期性(および、例えば、チャネルエラーのために同期性が維持できない場合に結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用される。
【0057】
「ローカル」デコーダ(633)の動作は、
図5とともに上記で詳細にすでに記載されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、また
図5を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)による符号化ビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピー復号部分、およびパーサ(520)は、ローカルデコーダ(633)に完全に実装されていない可能性がある。
【0058】
この点で行われ得る観察は、デコーダに存在する解析/エントロピー復号以外のデコーダ技術が、実質的に同一の機能形式で、対応するエンコーダにも必ず存在する必要があることである。このため、開示される主題はデコーダの動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるため、省略することができる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0059】
動作中、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する、動き補償予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの(1つまたは複数の)予測参照として選択され得る(1つまたは複数の)参照ピクチャの画素ブロックとの間の差異を符号化する。
【0060】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号し得る。符号化エンジン(632)の動作は、有利には、非可逆プロセスであってもよい。符号化ビデオデータが(
図6には示されていない)ビデオデコーダで復号され得るとき、再構成されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構成された参照ピクチャが参照ピクチャキャッシュ(634)に記憶されるようにすることができる。このようにして、ビデオエンコーダ(603)は、(送信エラーがない)遠端ビデオデコーダによって取得される再構成された参照ピクチャとして共通のコンテンツを有する、再構成された参照ピクチャのコピーをローカルに記憶することができる。
【0061】
予測器(635)は、符号化エンジン(632)の予測探索を実行することができる。すなわち、符号化されるべき新たなピクチャに関し、予測器(635)は、サンプルデータ(候補参照画素ブロックとして)または新たなピクチャに適した予測参照として役立ち得る参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータに関して参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見つけるために、画素ブロックごとに1つのサンプルブロックを用いるようにして動作することができる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0062】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)の符号化動作を管理することができる。
【0063】
上述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピー符号化を受けてもよい。エントロピーコーダ(645)は、ハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0064】
送信機(640)は、エントロピーコーダ(645)によって作成された符号化ビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信の準備をすることができ、通信チャネル(660)は、符号化ビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオコーダ(603)からの符号化ビデオデータを、送信される他のデータ、例えば、符号化オーディオデータおよび/または補助データストリーム(ソースは図示されていない)とマージすることができる。
【0065】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。符号化中に、コントローラ(650)は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼす場合がある。例えば、ピクチャは、以下のピクチャタイプのうちの1つとして割り当てられることが多い。
【0066】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに符号化および復号され得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、様々なタイプのイントラピクチャを可能にする。当業者は、このようなIピクチャの変形、ならびにその各用途および特徴を認識している。
【0067】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用して、イントラ予測またはインター予測を用いて符号化および復号され得るものであり得る。
【0068】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、符号化および復号され得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連メタデータを使用することができる。
【0069】
ソースピクチャは、一般的には、複数のサンプルブロック(例えば、4×4、8×8、4×8、または16×16のサンプルそれぞれのブロック)に空間的に細分化され、ブロックごとに符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割当てによって決定されるように、他の(すでに符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、またはこれらは、同じピクチャのすでに符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、空間予測を介して、または以前に符号化された1つの参照ピクチャを参照する時間予測を介して、予測的に符号化され得る。Bピクチャのブロックは、1つまたは2つの以前に符号化された参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的に符号化され得る。
【0070】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオ符号化技術または規格に従って符号化動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、符号化ビデオデータは、使用されているビデオ符号化技術または規格によって指定された構文に準拠することができる。
【0071】
一実施形態では、送信機(640)は、符号化ビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、符号化ビデオシーケンスの一部としてこのようなデータを含んでもよい。追加のデータは、時間/空間/SNR拡張層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0072】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)として取り込まれてもよい。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに分割される。現在のピクチャ内のブロックが、以前に符号化され、ビデオ内にまだバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0073】
いくつかの実施形態では、インターピクチャ予測で双予測技術を使用することができる。双予測技術によれば、両方とも復号順でビデオ内の現在のピクチャより前にある(しかし、表示順でそれぞれ過去および未来のものであってもよい)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによって符号化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測することができる。
【0074】
さらに、符号化効率を改善するために、インターピクチャ予測でマージモード技術を使用することができる。
【0075】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロックのユニット内で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有する。一般に、CTUは3つの符号化ツリーブロック(CTB)を含み、これらは1つのルマCTBおよび2つのクロマCTBである。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的に四分木分割することができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、または4つの32×32画素のCU、または16個の16×16画素のCUに分割することができる。一例では、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために、各CUが分析される。CUは、時間および/または空間の予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、1つのルマ予測ブロック(PB)および2つのクロマPBを含む。一実施形態では、符号化の予測動作(符号化/復号)は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、ルマ値)の行列を含む。
【0076】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化ビデオシーケンスの一部である符号化ピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用される。
【0077】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロック用のサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良に符号化されるかどうかを判定する。処理ブロックがイントラモードで符号化されるとき、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックを符号化ピクチャに符号化することができ、処理ブロックがインターモードまたは双予測モードで符号化されるとき、ビデオエンコーダ(703)は、それぞれ、インター予測技術または双予測技術を使用して、処理ブロックを符号化ピクチャに符号化することができる。特定のビデオ符号化技術では、マージモードは、予測子の外側の符号化された動きベクトル成分の恩恵を受けずに動きベクトルが1つ以上の動きベクトル予測子から導出されるピクチャ間予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためにモード決定モジュール(図示せず)などの他の構成要素を含む。
【0078】
図7の例では、ビデオエンコーダ(703)は、
図7に示されたように一緒に結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0079】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号された復号参照ピクチャである。
【0080】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じピクチャ内のすでに符号化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、同じピクチャ内のイントラ予測情報および参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0081】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのイントラモード結果を選択し、エントロピーエンコーダ(725)を制御してイントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのインター予測結果を選択し、エントロピーエンコーダ(725)を制御してインター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0082】
残差計算器(723)は、受信ブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な実施形態では、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号残差データを生成するように構成される。復号残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、復号残差データおよびインター予測情報に基づいて復号ブロックを生成することができ、イントラエンコーダ(722)は、復号残差データおよびイントラ予測情報に基づいて復号ブロックを生成することができる。復号ブロックは、復号ピクチャを生成するために適切に処理され、復号ピクチャは、メモリ回路(図示せず)にバッファリングされ、いくつかの例では参照ピクチャとして使用することができる。
【0083】
エントロピーエンコーダ(725)は、符号化されたブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、およびビットストリーム内の他の適切な情報を含むように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックを符号化するときに残差情報が存在しないことに留意されたい。
【0084】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化ビデオシーケンスの一部である符号化ピクチャを受信し、符号化ピクチャを復号して再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例のビデオデコーダ(410)の代わりに使用される。
【0085】
図8の例では、ビデオデコーダ(810)は、
図8に示すように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
【0086】
エントロピーデコーダ(871)は、符号化ピクチャから符号化ピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成することができる。このようなシンボルは、例えば、(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモードの中の後者2つなどの)ブロックが符号化されるモード、それぞれ、イントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別することができる(例えば、イントラ予測情報またはインター予測情報などの)予測情報、例えば、量子化変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードであるとき、インター予測情報はインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプであるとき、イントラ予測情報はイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0087】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0088】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0089】
残差デコーダ(873)は、逆量子化を実行して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含めるために)特定の制御情報を必要とする場合があり、その情報は、エントロピーデコーダ(871)によって提供される場合がある(これは、少量の制御情報のみである可能性があるので、データパスは描写されていない)。
【0090】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と(場合によってはインター予測モジュールまたはイントラ予測モジュールによって出力された)予測結果とを組み合わせて、再構成されたピクチャの一部であり得る再構成されたブロックを形成し、再構成されたピクチャは復元されたビデオの一部であり得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作が実行され得ることに留意されたい。
【0091】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装され得ることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つ以上の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0092】
本開示の態様は、CUレベル重みをシグナリングすることのない双予測の技術を提供する。双予測は、2つの参照ピクチャ内にそれぞれ存在する2つの参照ブロックを使用して、現在のピクチャ内のブロックの予測を実行するインター予測における技術を指す。いくつかの例では、2つの参照ピクチャの一方は、ビデオシーケンス内の現在のピクチャの前にあり、2つの参照ピクチャの他方は、ビデオシーケンス内の現在のピクチャの後にあり、双予測は双方向予測と呼ばれる。本開示のいくつかの態様によれば、双予測技術は、CUレベル重みを有する予測モデルを使用する。CUレベル重みは、例えば固定小数点演算によって、以前に復号された画素から計算することができ、CUレベル重みはビットストリームでシグナリングされない。
【0093】
いくつかの関連する例では、CUレベル重みを用いる双予測(BCW)は、(例えば、CUごとにそれぞれ)CUレベルでエンコーダ側からデコーダ側にシグナリングされる1つまたは複数の固定重みを使用することができる。
【0094】
一例では(例えば、HEVC)、双予測信号(サンプル)は、2つの異なる参照ピクチャから得られた2つの予測信号(サンプル)を平均化することによって、および/または2つの異なる動きベクトルを使用して生成される。例えば、双予測を使用して現在のピクチャ内のサンプルを予測するために、第1の参照ピクチャおよび第1の動きベクトルに基づくインター予測によって第1の予測信号が取得され、第2の参照ピクチャおよび第2の動きベクトルに基づくインター予測によって第2の予測信号が取得される。次いで、現在のピクチャ内の双予測信号は、第1の予測信号および第2の予測信号を平均化することによって取得される。平均化における重みは固定であり、第1の予測信号および第2の予測信号でそれぞれ0.5である。
【0095】
別の例では(例えば、VVC)双予測モードは、2つの予測信号の加重平均を可能にするために、単純な平均化を超えて拡張される。例えば、P0[i,j]は、現在のCU内の位置(i,j)における画素の第1の予測信号を表し、P1[i,j]は、現在のCU内の位置(i,j)における画素の第2の予測信号を表す。第1の参照ピクチャおよび第1の動きベクトルに基づくインター予測によって第1の予測信号が取得され、第2の参照ピクチャおよび第2の動きベクトルに基づくインター予測によって第2の予測信号が取得される。位置(i,j)における画素のPbi-pred[i,j]によって表される双予測信号は、式(1)に従って計算することができる。
Pbi-pred[i,j]=((8-w)×P0[i,j]+w×P1[i,j]+4)≫3 式(1)
ここで、wは第2の予測信号の重みを表す。いくつかの例では、重みは、重みインデックスを使用してエンコーダ側からデコーダ側にシグナリングされる。例えば、加重平均双予測では、5つの重みw∈{-2,3,4,5,10}が許容される。BCW重みインデックスは、CUレベルでビットストリームに符号化され、BCW重みインデックスは、双予測を使用するための5つの重みのうちの1つを示すことができる。
【0096】
いくつかの関連する例では、局所照明補償(LIC)と呼ばれる技術が使用される。一例では、LICは、インター符号化されたCUの単予測のためのインター予測技術で使用される。LICは、双予測には適用されない。LICは、現在のブロックテンプレートと参照ブロックテンプレートとの間の変動の関数として、現在のブロックとその参照ブロックとの間の局所照明変動をモデル化することができる。
【0097】
図9A~
図9Cは、いくつかの例におけるインター符号化されたCUの単予測を示す図を示す。
図9Aでは、現在のブロック(910)は、符号化のために現在のピクチャ内に位置している。現在のブロック(910)をインター予測するために、参照ピクチャ内の参照ブロック(920)が、現在のブロック(910)の時間予測として決定される。参照ピクチャ内の参照ブロック(920)の位置は、
図9Aの動きベクトル(930)によって示されるように、現在のピクチャ内の現在のブロック(910)からの空間シフトを有することができる。
【0098】
図9Bには、現在のブロック(910)および参照ブロック(920)にそれぞれ関連付けられた現在のテンプレートおよび参照テンプレートが示されている。いくつかの例では、現在のブロック(910)の現在のテンプレートは、
図9Bに示されるように、上の現在のテンプレート(911)および左の現在のテンプレート(912)を含む。上の現在のテンプレート(911)は、現在のピクチャ内の現在のブロック(910)の上に隣接する画素を含む。左の現在のテンプレート(912)は、現在のピクチャ内の現在のブロック(910)の左に隣接する画素を含む。
【0099】
同様に、参照ブロック(920)の参照テンプレートは、
図9Bに示されるように、上参照テンプレート(921)および左参照テンプレート(922)を含む。上参照テンプレート(921)は、参照ピクチャ内の参照ブロック(920)の上に隣接する画素を含む。左参照テンプレート(922)は、参照ピクチャ内の参照ブロック(920)の左に隣接する画素を含む。
【0100】
いくつかの例では、ブロックの上テンプレートは、ブロックのすぐ上の1行の画素を含み、ブロックの左テンプレートは、ブロックのすぐ左方の1列の画素を含む。
図9Bに示されるように、上の現在のテンプレート(911)は、現在のピクチャ内の現在のブロック(910)のすぐ上の1行の画素を含み、左の現在のテンプレート(912)は、現在のピクチャ内の現在のブロック(910)のすぐ左の1列の画素を含む。上参照テンプレート(921)は、参照ピクチャ内の参照ブロック(920)のすぐ上の1行の画素を含む。左参照テンプレート(922)は、参照ピクチャ内の参照ブロック(920)のすぐ左の1列の画素を含む。
【0101】
図9Cでは、参照ブロックテンプレート(上参照テンプレート(921)および左参照テンプレート(922)を含む)は、現在のブロック(910)と参照ブロック(920)との間の動きベクトル(930)によって示される現在のブロックテンプレート(上の現在のテンプレート(911)およびの現在のテンプレート(912)を含む)の時間予測と見なすことができる。
【0102】
いくつかの例では、局所照明補償(LIC)によれば、現在のブロック内のサンプルは、参照ブロック内のサンプルに対してLICモデルを適用することによって予測することができる。例えば、現在のブロックは、幅wおよび高さhを有し、参照ブロックもまた幅wおよび高さhを有する。説明を容易にするために、現在のブロックの左上の隅は座標(0,0)を有すると仮定し、参照ブロックの左上の隅は座標(0,0)を有する必要があると仮定する。さらに、y[i,j]は、0≦i<wおよび0≦j<hのときの現在のブロック内の位置(i,j)におけるサンプル値を表し、
【数1】
は、0≦i<wおよび0≦j<hのときの現在のブロック内の位置(i,j)におけるサンプル値の予測を表し、x[i,j]は、0≦i<wおよび0≦j<hのときの参照ブロック内の位置(i,j)における再構成されたサンプル値を表す。いくつかの例では、LICモデルは、式(2)を使用して表すことができる。
【数2】
ここで、αはスケールパラメータを表し、βは、現在のピクチャ内の現在のブロックと参照ピクチャ内の参照ブロックとの間の照明の変化を補償するために使用されるオフセットパラメータを表す。
【0103】
いくつかの例では、スケールパラメータαおよびオフセットパラメータβは、現在のブロックテンプレート(例えば、(911)および(912))および参照ブロックテンプレート(例えば、(921)および(922))に基づいて導出することができる。一例では、LICの使用を示すためにLICフラグがシグナリングされ、スケールパラメータαおよびオフセットパラメータβのシグナリングにはシグナリングオーバーヘッドは必要とされない。
【0104】
LICは、インター符号化されたCUの単予測のためのインター予測技術であり、双予測には適用されないことに留意されたい。
【0105】
本開示の一態様によれば、関連する例におけるBCW(例えば、VVC)は、重み精度を制限している。いくつかの例では、加重平均双予測において、最大5つの重みの値のみが許容される。加えて、ビットストリームで重みインデックスをシグナリングすることにより、ビットレートにおけるシグナリングオーバーヘッドを追加することができる。
【0106】
本開示の別の態様によれば、LICは、現在のブロックの現在のブロックテンプレートと参照ブロックの参照ブロックテンプレートとの間の照明変動の関数として、現在のブロックと現在のブロックの参照ブロックとの間の局所照明変動をモデル化することができる。LICは、スケールパラメータおよびオフセットパラメータをシグナリングするためにビットレートでのオーバーヘッドを追加しない。しかしながら、LICは双予測に適用されない。
【0107】
本開示のいくつかの態様は、ビットストリームで重みをシグナリングすることなく、より高い重み精度のCUレベル重みを用いる双予測(例えば、VVC)で使用するための技術を提供する。
【0108】
いくつかの実施形態では、双予測モードにおいて、P0[i,j]は、現在のCU内の位置(i,j)における画素の第1の予測信号を表し、P1[i,j]は、現在のCU内の位置(i,j)における画素の第2の予測信号を表す。位置(i,j)における画素についてPbi-pred[i,j]によって表される双予測信号は、式(3)などに従って、第1の予測信号および第2の予測信号の加重平均として計算することができる。
Pbi-pred[i,j]=((2n-w)×P0[i,j]+w×P1[i,j]+2n-1)≫n
=P0[i,j]+(w・(P1[i,j]-P0[i,j])+2n-1)≫n 式(3)
ここで、wは重みを表し、nは所定のシフトパラメータを表す。いくつかの例では、重みwは整数であり、0<w<2nである。一実施形態では、第1の予測信号P0および第2の予測信号P1が10ビットを使用して表されるとき、nは5に設定され、したがって式(3)における計算は、16ビット符号付き演算を用いて行うことができる。
【0109】
いくつかの実施形態によれば、重みwは、現在のCUの現在のテンプレートおよび参照CUの参照テンプレートに基づいて決定することができ、したがって、いくつかの例では、CUレベル重みシグナリングは必要とされない。
【0110】
図10は、本開示のいくつかの実施形態による、ビデオシーケンス(1000)を符号化するために双予測を使用する図を示す。
【0111】
図10の例では、ビデオシーケンス(1000)は、フレーム(1001)~(1003)などの複数のピクチャフレームを含む。フレーム(1001)は、符号化のための現在のフレームであり、フレーム(1002)および(1003)は、フレーム(1001)の前にコード化(符号化または復号)される。いくつかの例では、フレーム(1002)および(1003)の一方は、ビデオシーケンス(1000)の表示順でフレーム(1001)の前であり、フレーム(1002)および(1003)の他方は、表示順でフレーム(1001)の後である。フレーム(1002)とフレーム(1001)との間、またはフレーム(1001)とフレーム(1003)との間には、追加のフレームがあってもなくてもよいことに留意されたい。いくつかの他の例では、フレーム(1002)および(1003)の両方が表示順でフレーム(1001)の前であるか、またはフレーム(1002)および(1003)の両方が表示順でフレーム(1001)の後である。
【0112】
図10の例では、現在のブロック(1010)は、符号化のために、フレーム(1001)などの現在のピクチャ内に位置する。現在のブロック(1010)を双予測モードでインター予測するために、フレーム(1002)などの第1の参照ピクチャ内の第1の参照ブロック(1020)、およびフレーム(1003)などの第2の参照ピクチャ内の第2の参照ブロック(1030)が決定される。フレーム(1002)内の第1の参照ブロック(1020)の位置は、
図10のmv
0で表される動きベクトル(1025)によって示されるように、フレーム(1001)内の現在のブロック(1010)の位置からの第1の空間シフトを有することができる。フレーム(1003)内の第2の参照ブロック(1030)の位置は、
図10のmv
1で表される動きベクトル(1035)によって示されるように、フレーム(1001)内の現在のブロック(1010)の位置からの第2の空間シフトを有することができる。第1の参照ブロック(1020)は、現在のブロック(1010)の第1の予測と呼ぶことができ、P
0で表すことができる。第2の参照ブロック(1030)は、現在のブロック(1010)の第2の予測と呼ぶことができ、P
1で表すことができる。現在のブロック(1010)は、第1の予測P
0および第2の予測P
1の加重平均によって予測することができる。
【0113】
いくつかの実施形態では、現在のブロック(1020)の現在のテンプレート、第1の参照ブロック(1020)の参照テンプレート、および第2の参照ブロック(1030)の参照テンプレートは、双予測モードでの重みwを決定するために使用される。
【0114】
いくつかの例では、現在のブロック(1010)の現在のテンプレートは、現在のテンプレートTcと呼ばれる。現在のテンプレートTcは、現在のブロック(1010)に隣接する復号された画素を含む。いくつかの例では、現在のテンプレートTcは、現在のブロック(1010)のすぐ上の1行の画素(例えば、(1011)で示される)を含み、現在のブロック(1010)のすぐ左の一列の画素(例えば、(1012)で示される)を含む。
【0115】
第1の参照ブロック(1020)の参照テンプレートは、第1の参照テンプレートT0と呼ばれる。第1の参照テンプレートT0は、第1の参照ブロック(1020)に隣接する復号された画素を含む。いくつかの例では、第1の参照テンプレートT0は、第1の参照ブロック(1020)のすぐ上の1行の画素(例えば、(1021)で示される)を含み、第1の参照ブロック(1020)のすぐ左の一列の画素(例えば、(1022)で示される)を含む。
【0116】
第2の参照ブロック(1030)の参照テンプレートは、第2の参照テンプレートT1と呼ばれる。第2の参照テンプレートT1は、第2の参照ブロック(1030)に隣接する復号された画素を含む。いくつかの例では、第2の参照テンプレートT1は、第2の参照ブロック(1030)のすぐ上の1行の画素(例えば、(1031)で示される)を含み、第2の参照ブロック(1030)のすぐ左の一列の画素(例えば、(1032)で示される)を含む。
【0117】
いくつかの例では、現在のテンプレートTcは任意の適切な形状を有することができ、現在のテンプレートTcに対応する第1の参照テンプレートT0および第2の参照テンプレートT1は、動きベクトルmv0およびmv1に基づいて決定することができることに留意されたい。
【0118】
本開示の一態様によれば、現在のブロック(1010)をコード化(符号化または復号)するとき、現在のテンプレートTcは再構成されている。第1の参照ピクチャ(1002)および第2の参照ピクチャ(1003)は再構成されており、したがって第1の参照テンプレートT0および第2の参照テンプレートT1が再構成される。次いで、現在のテンプレートTc、第1の参照テンプレートT0、および第2の参照テンプレートT1に基づいて重みwが決定される。重みwは、エンコーダおよびデコーダで計算することができ、したがっていくつかの例では、重みwはビットストリームでシグナリングされない。
【0119】
重みwは、任意の適切な技術を使用して計算することができることに留意されたい。
【0120】
いくつかの実施形態では、重みwに応じたコストでコスト関数を形成することができる。次いで、重みwは、コスト関数のコストを最小化する引数として決定することができる。
【0121】
いくつかの例では、第1の参照テンプレートT0および第2の参照テンプレートT1は、重みwの関数として予測された現在のテンプレートTwを決定するために、式(3)に従って適用される。例えば、現在のテンプレートTc内の位置(i,j)の予測された現在のテンプレートTwは、式(4)に従って計算することができる。
Tw[i,j]=T0[i,j]+(w×(T1[i,j]-T0[i,j])+2n-1)≫n 式(4)
【0122】
一実施形態では、コスト関数を計算するために、Tw[i,j]とTc[i,j]との差を使用することができる。
【0123】
いくつかの例では、コスト関数は、式(5)に従って形成することができる。
【数3】
重みwは、コスト関数のコストを最小化する引数である。一例では、重みwは0<w<2
nの制約を受け、nは正の整数である。一実施形態では、第1の予測信号P
0および第2の予測信号P
1が10ビットを使用して表されるとき、nは5に設定され、したがって式(4)および式(5)における計算は、16ビット符号付き演算を用いて行うことができる。
【0124】
いくつかの例では、重みwは、固定小数点演算を用いた最小二乗法によってほぼ決定され、範囲[a,b]にクリップされ、ここでaおよびbは所定の整数である。
【0125】
重みwが決定された後、現在のブロック(1010)は、式(3)を使用するなどして、第1の予測P0および第2の予測P1の加重平均として双予測モードで予測することができる。
【0126】
図11は、本開示の一実施形態による、双予測モードで実行されるプロセス(1100)の概要を示すフローチャートを示す。プロセスは(S1101)から始まり、(S1110)に進む。
【0127】
(S1110)において、双予測モードでの符号化のために現在のブロック(例えば、現在のブロック(1010))が決定され、次いで第1の動きベクトルmv0、第1の参照ピクチャ、第2の動きベクトルmv1、および第2の参照ピクチャが決定される。第1の動きベクトルmv0および第1の参照ピクチャに基づいて、第1の予測P0(例えば第1の参照ブロック(1020))が決定され、第2の動きベクトルmv1および第2の参照ピクチャに基づいて、第2の予測P1(例えば、第2の参照ブロック(1030))が決定される。さらに、現在のテンプレートTc(例えば、(1011)および(1012))が決定される。
【0128】
(S1120)において、第1の参照テンプレートT0および第2の参照テンプレートT1が決定される。いくつかの例では、第1の参照テンプレートT0は、現在のテンプレートTcおよび第1の動きベクトルmv0に基づいて決定され、第2の参照テンプレートT1は、現在のテンプレートTcおよび第2の動きベクトルmv1に基づいて決定される。
【0129】
(S1130)において、コスト関数のコストを最小化するための(1つまたは複数の)重みが決定される。例えば、コスト関数は、重みwの関数としての式(4)および式(5)に基づいて形成することができる。次いで、コスト関数のコストを最小化するための重みwが決定される。
【0130】
次いで、(S1140)において、双予測は、決定された(1つまたは複数の)重みに基づいて、第1の予測P0および第2の予測P1の加重平均として計算することができる。
【0131】
本開示の一態様によれば、複数の重みパラメータを双予測モードで使用することができる。
【0132】
いくつかの例では、3つの重みパラメータが双予測モードで使用される。例えば、双予測モードでは、現在のCU(例えば、現在のブロック(1010))内の位置(i,j)における画素のPbi-pred[i,j]によって表される双予測信号は、式(6)による予測モデルなどの予測モデルに従って、第1の予測信号P0[i,j]および第2の予測信号P1[i,j]の加重平均として計算することができる。
Pbi-pred[i,j]=(w0×P0[i,j]+w1×P1[i,j]+w2)≫n 式(6)
ここで、w0、w1、w2は予測モデルの重みパラメータ(重みとも呼ばれる)であり、nは所定のシフトパラメータである。重みパラメータw0、w1、w2は、固定小数点演算によってテンプレート(例えば、現在のテンプレート、第1の参照テンプレート、および第2の参照テンプレート)から導出することができる。
【0133】
重みパラメータw0、w1、w2の値は、現在のテンプレートTcならびに第1および第2の参照テンプレートT0およびT1内の画素に基づいて決定することができる。一例では、予測された現在のテンプレートTwは、重みパラメータの関数として形成することができる。例えば、現在のテンプレートTc内の位置(i,j)における予測された現在のテンプレートTwは、式(7)に従って表すことができる。
Tw[i,j]=(w0×T0[i,j]+w1×T1[i,j]+w2)≫n 式(7)
【0134】
いくつかの例では、コスト関数は、予測されたテンプレートTwおよび現在のテンプレートTcを使用して式(5)に従って形成することができ、したがって、コスト関数は、重みパラメータの関数である。一例では、重みパラメータw0、w1、w2は、0≦Tw[i,j]<2b(現在のテンプレートTc内のすべての位置について)という制約を有するコスト関数のコストを最小化する引数として決定することができ、bは画素のビット深度である。
【0135】
一例では、重みパラメータw0、w1、w2は、クラメルの公式を使用する固定小数点演算を用いた最小二乗法によってほぼ決定される。いくつかの例では、重みパラメータの値をクリップすることができる。一例では、wiは範囲[ai,bi]にクリップされ、aiおよびbiは所定の整数i∈{0,1,2}である。
【0136】
いくつかの例では、2つの重みパラメータが双予測モードで使用される。例えば、双予測モードでは、現在のCU(例えば、現在のブロック(1010))内の位置(i,j)における画素のPbi-pred[i,j]によって表される双予測信号は、式(8)による予測モデルなどの予測モデルに従って、第1の予測信号P0[i,j]および第2の予測信号P1[i,j]の加重平均として計算することができる。
Pbi-pred[i,j]=(w0×P0[i,j]+w1×P1[i,j]+C)≫n 式(8)
ここで、ここで、w0、w1は、固定小数点演算によってテンプレート(例えば、現在のテンプレート、第1の参照テンプレート、および第2の参照テンプレート)から導出することができる予測モデルの重みパラメータ(重みとも呼ばれる)である。パラメータCは、丸めのための所定の値であり、nは所定のシフトパラメータである。
【0137】
重みパラメータw0、w1の値は、現在のテンプレートTcならびに第1および第2の参照テンプレートT0およびT1内の画素に基づいて決定することができる。一例では、予測された現在のテンプレートTwは、重みパラメータの関数として形成することができる。例えば、現在のテンプレートTcの領域内の位置(i,j)における予測された現在のテンプレートTwは、式(9)に従って表すことができる。
Tw[i,j]=(w0×T0[i,j]+w1×T1[i,j]+C)≫n 式(9)
【0138】
いくつかの例では、コスト関数は、予測されたテンプレートTwおよび現在のテンプレートTcを使用して式(5)に従って形成することができ、したがって、コスト関数は、重みパラメータの関数である。一例では、重みパラメータw0、w1は、0≦Tw[i,j]<2b(現在のテンプレートTc内のすべての位置について)という制約を有するコスト関数のコストを最小化する引数として決定することができ、bは画素のビット深度である。
【0139】
一例では、重みパラメータw0、w1は、クラメルの公式を使用する固定小数点演算を用いた最小二乗法によってほぼ決定される。いくつかの例では、重みパラメータの値をクリップすることができる。一例では、wiは範囲[ai,bi]にクリップされ、aiおよびbiは所定の整数i∈{0,1}である。
【0140】
本開示の一態様によれば、エンコーダ側では、双予測モードで使用するための(1つまたは複数の)重みパラメータは、動きベクトルmv0およびmv1の決定と一緒に決定することができる。
【0141】
図12は、本開示のいくつかの実施形態によるプロセス(1200)の概要を示すフローチャートを示す。いくつかの例では、プロセス(1200)は、双予測モードで使用するための(1つまたは複数の)重みパラメータならびに第1の動きベクトルmv
0および第2の動きベクトルmv
1を一緒に決定するために、エンコーダ側で使用される。プロセス(1200)は、所定の探索パターンに基づいて、初期の第1の動きベクトルmv
0’および初期の第2の動きベクトルmv
1’を用いて動きベクトル精緻化を実行する。プロセス(1200)は、最良の動きベクトルmv
0およびmv
1ならびに(1つまたは複数の)最良の重みを決定するために、所定の双予測モデルおよび固定小数点演算に基づく所定のコスト関数を使用することができる。最良の動きベクトルmv
0およびmv
1はデコーダ側に適切に通知することができ、(1つまたは複数の)最良の重みはデコーダ側にシグナリングされない。デコーダ側は、通知された動きベクトル(例えば、最良の動きベクトルmv
0およびmv
1)に基づいて重みを決定することができる。プロセスは(S1201)から始まり、(S1210)に進む。
【0142】
(S1210)において、初期の第1の動きベクトルmv0’、初期の第2の動きベクトルmv1’、および現在のテンプレートTcが決定され、dmv0で表されるmv0’に対する第1の精緻化が最初に0に設定され、dmv1で表されるmv1’に対する第2の精緻化が最初に0に設定される。初期の第1の動きベクトルmv0’および初期の第2の動きベクトルmv1’は、任意の適切な技術によって決定することができる。
【0143】
(S1220)において、精緻化された第1の動きベクトル
【数4】
は、初期の第1の動きベクトルmv
0’および第1の精緻化dmv
0に基づいて決定され、精緻化された第2の動きベクトル
【数5】
は、初期の第2の動きベクトルmv
1’および第2の精緻化dmv
1に基づいて決定される。
【0144】
(S1230)において、第1の参照テンプレートT
0は、現在のテンプレートT
cおよび精緻化された第1の動きベクトル
【数6】
に基づいて決定され、第2の参照テンプレートT
1は、現在のテンプレートT
cおよび精緻化された第2の動きベクトル
【数7】
に基づいて決定される。
【0145】
(S1240)において、(1つまたは複数の)重みパラメータを有する所定の双予測モデル(例えば、式(3)、式(6)、式(8))は、式(4)、式(7)、および式(9)に示されるような、第1の参照テンプレートT0および第2の参照テンプレートT1に基づいて予測されたテンプレートTwを表すために使用することができる。したがって、予測されたテンプレートTwは、(1つまたは複数の)重みパラメータの関数として表される。次いで、所定のコスト関数は、式(5)などに従って、予測されたテンプレートTwおよび現在のテンプレートTcに基づいてコストを表すために使用することができる。したがって、コストは(1つまたは複数の)重みパラメータの関数である。さらに、コスト関数のコストを最小化するための(1つまたは複数の)重みパラメータが計算される。本精緻化dmv0およびdmv1に関連付けられた最小コストは、新規計算コストと呼ばれる。計算された(1つまたは複数の)重みパラメータは、新規計算コストに関連付けられる。いくつかの例では、計算は、クラメルの公式を使用する固定小数点演算を用いた最小二乗法によって実行することができる。
【0146】
(S1250)において、新規計算コストは、最良コストを更新するために以前の最良コストと比較される。一例では、新規計算コストが以前の最良コストよりも小さいとき、新規計算コストが最良コストとして記憶され、新規計算コストに関連付けられた計算された(1つまたは複数の)重みパラメータが最良コストに関連付けられた(1つまたは複数の)最良の重みとして保持され、新規計算コストに関連付けられた現在の精緻化された動きベクトル
【数8】
および
【数9】
(初期の動きベクトルmv
0’およびmv
1’に適用された本精緻化dmv
0およびdmv
1を有する)が最良コストに関連付けられた最良の精緻化された動きベクトルとして保持される。別の例では、新規計算コストが以前の最良コスト以上であるとき、以前の最良コストが依然として最良コストとして記憶され、以前の最良コストに関連付けられた以前の(1つまたは複数の)最良の重みが最良コストに関連付けられた(1つまたは複数の)最良の重みとして依然として保持され、以前の最良コストに関連付けられた以前の最良の精緻化された動きベクトルが最良コストに関連付けられた最良の精緻化された動きベクトルとして依然として保持される。
【0147】
(S1260)において、所定の探索パターンが完全に探索されると、プロセスは(S1280)に進み、そうでなければプロセスは(S1270)に進む。
【0148】
(S1270)において、所定の探索パターンに従って第1の精緻化dmv0および第2の精緻化dmv1が更新され、プロセスは(S1220)に戻る。
【0149】
(S1280)において、最良コストに関連付けられた最良の精緻化された動きベクトルに基づいて、第1の予測P0および第2の予測P1が決定される(例えば、計算される)。
【0150】
(S1290)において、最良コストに関連付けられた第1の予測P0、第2の予測P1、および(1つまたは複数の)最良の重みに基づいて、双予測を計算することができる。
【0151】
図13は、本開示の一実施形態によるプロセス(1300)の概要を示すフローチャートを示す。プロセス(1300)は、ビデオエンコーダで使用することができる。様々な実施形態において、プロセス(1300)は、端末デバイス(310)、(320)、(330)、および(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路、ビデオエンコーダ(703)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1300)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1300)を実行する。プロセスは(S1301)から始まり、(S1310)に進む。
【0152】
(S1310)において、現在のピクチャ内の符号化ブロックを符号化するために、重みシグナリングのない双予測モードが決定される。一例では、エンコーダは、評価を実行し、評価に基づいて、符号化ブロックを符号化するために重みシグナリングの内双予測モードを使用すると決定することができる。
【0153】
(S1320)において、第1の参照ピクチャに関連付けられた第1の動きベクトルおよび第2の参照ピクチャに関連付けられた第2の動きベクトルなどの動きベクトル、ならびに符号化ブロックの双予測のための(1つまたは複数の)重みが決定される。
【0154】
いくつかの実施形態では、第1の動きベクトルおよび第2の動きベクトルが決定され、次いで(1つまたは複数の)重みが決定される。いくつかの例では、動きベクトルが決定された後、符号化ブロックの現在のテンプレートおよび動きベクトルに基づいて、参照ピクチャ内の参照テンプレートが決定される。例えば、第1の参照ピクチャ内の第1の参照テンプレートは、符号化ブロックの現在のテンプレートおよび第1の動きベクトルに基づいて決定され、第2の参照ピクチャ内の第2の参照テンプレートは、符号化ブロックの現在のテンプレートおよび第2の動きベクトルに基づいて決定される。
【0155】
本開示の一態様によれば、現在のブロックの現在のテンプレートは、符号化ブロックに隣接する1つ以上の再構成されたサンプルを含む。いくつかの例では、現在のテンプレートは、符号化ブロックの上のサンプルの1つ以上の行、および/または符号化ブロックの左のサンプルの1つ以上の列を含む。一例では、現在のテンプレートは、符号化ブロックのすぐ上のサンプルの行、および/または符号化ブロックのすぐ左のサンプルの列を含む。
【0156】
いくつかの実施形態では、双予測モードで使用するための(1つまたは複数の)重みは、第1の参照テンプレート、第2の参照テンプレート、および現在のテンプレートに基づいて決定される。
【0157】
いくつかの実施形態では、(1つまたは複数の)重みは、所定のコスト関数のコストを最小化するように決定される。所定のコスト関数は、第1の参照テンプレート、第2の参照テンプレート、および現在のテンプレートに基づいて決定される。例えば、所定のコスト関数は、式(5)のように、予測された現在のテンプレートに対する現在のテンプレートのそれぞれのサンプル差に基づく。
【0158】
予測された現在のテンプレートは、1つ以上の重みパラメータを有する所定の双予測モデルを使用して、第1の参照テンプレートおよび第2の参照テンプレートに基づいて予測される。
【0159】
いくつかの例では、所定の双予測モデルは3つの重みパラメータを含み、予測された現在のテンプレートは、例えば式(7)に従って表すことができる。一例では、所定の双予測モデル内の3つの重みパラメータの値は、クラメルの公式を使用する固定小数点演算などを用いた最小二乗法によって決定される。
【0160】
いくつかの例では、所定の双予測モデルは2つの重みパラメータを含み、予測された現在のテンプレートは、例えば式(9)に従って表すことができる。一例では、所定の双予測モデル内の2つの重みパラメータの値は、クラメルの公式を使用する固定小数点演算などを用いた最小二乗法によって決定される。
【0161】
いくつかの例では、所定の双予測モデルは1つの重みパラメータを含み、予測された現在のテンプレートは、例えば式(4)に従って表すことができる。一例では、所定の双予測モデル内の重みパラメータの値は、固定小数点演算などを用いた最小二乗法によって決定される。
【0162】
いくつかの例では、重みパラメータの(1つまたは複数の)値は、重みパラメータのそれぞれの範囲内でクリップされる。
【0163】
いくつかの実施形態では、第1の動きベクトル、第2の動きベクトル、および(1つまたは複数の)重みが一緒に決定される。第1の動きベクトル、第2の動きベクトル、および(1つまたは複数の)重みを一緒に決定するための一例は、
図12を参照して説明されている。
【0164】
(S1330)において、符号化ブロックは、(1つまたは複数の)重みを用いた双予測を使用して再構成される。いくつかの例では、所定の双予測モデルは3つの重みパラメータを含み、符号化ブロックは、例えば式(6)に従って再構成することができる。いくつかの例では、所定の双予測モデルは2つの重みパラメータを含み、符号化ブロックは、例えば式(8)に従って再構成することができる。いくつかの例では、所定の双予測モデルは1つの重みパラメータを含み、符号化ブロックは、例えば式(3)に従って再構成することができる。
【0165】
(S1340)において、符号化ブロックの情報は、重みシグナリングなしでビットストリームで符号化される。情報は、ビットストリームにおける重みシグナリングなしの双予測モードを示す。を示す。次いで、プロセスは(S1399)に進み、終了する。
【0166】
プロセス(1300)は、適切に適合させることができる。プロセス(1300)の(1つまたは複数の)ステップは、修正および/または省略することができる。(1つまたは複数の)追加のステップを追加することができる。任意の適切な実施順序を使用することができる。
【0167】
図14は、本開示の一実施形態によるプロセス(1400)の概要を示すフローチャートを示す。プロセス(1400)は、ビデオデコーダで使用することができる。様々な実施形態では、プロセス(1400)は、端末デバイス(310)、(320)、(330)、および(340)の処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1400)はソフトウェア命令で実現され、したがって、処理回路がソフトウェア命令を実行すると、処理回路がプロセス(1400)を実行する。プロセスは(S1401)から始まり、(S1410)に進む。
【0168】
(S1410)において、現在のピクチャ内の符号化ブロックの情報が、ビットストリームから復号される。この情報は、重みシグナリングなしの双予測モードを示す。
【0169】
(S1420)において、符号化ブロックの双予測のための動きベクトルが決定される。例えば、第1の参照ピクチャに関連付けられた第1の動きベクトルおよび第2の参照ピクチャに関連付けられた第2の動きベクトルなどの動きベクトルが決定される。動きベクトルは、任意の適切な技術によって決定することができる。いくつかの例では、動きベクトルは、候補リストに対するインデックスに基づいて決定され、インデックスは、ビットストリームから復号することができる。
【0170】
(S1430)において、符号化ブロックの現在のテンプレートおよび動きベクトルに基づいて、参照ピクチャ内の参照テンプレートが決定される。例えば、第1の参照ピクチャ内の第1の参照テンプレートは、符号化ブロックの現在のテンプレートおよび第1の動きベクトルに基づいて決定され、第2の参照ピクチャ内の第2の参照テンプレートは、符号化ブロックの現在のテンプレートおよび第2の動きベクトルに基づいて決定される。
【0171】
本開示の一態様によれば、現在のブロックの現在のテンプレートは、符号化ブロックに隣接する1つ以上の再構成されたサンプルを含む。いくつかの例では、現在のテンプレートは、符号化ブロックの上のサンプルの1つ以上の行、および/または符号化ブロックの左のサンプルの1つ以上の列を含む。一例では、現在のテンプレートは、符号化ブロックのすぐ上のサンプルの行、および/または符号化ブロックのすぐ左のサンプルの列を含む。
【0172】
(S1440)において、双予測モードで使用するための(1つまたは複数の)重みは、第1の参照テンプレート、第2の参照テンプレート、および現在のテンプレートに基づいて決定される。
【0173】
いくつかの実施形態では、重みは、所定のコスト関数のコストを最小化するように決定される。所定のコスト関数は、第1の参照テンプレート、第2の参照テンプレート、および現在のテンプレートに基づいて決定される。例えば、所定のコスト関数は、式(5)などを使用して、予測された現在のテンプレートに対する現在のテンプレートのそれぞれのサンプル差に基づく。
【0174】
予測された現在のテンプレートは、1つ以上の重みパラメータを有する所定の双予測モデルを使用して、第1の参照テンプレートおよび第2の参照テンプレートに基づいて予測される。
【0175】
いくつかの例では、所定の双予測モデルは3つの重みパラメータを含み、予測された現在のテンプレートは、例えば式(7)に従って表すことができる。一例では、所定の双予測モデル内の3つの重みパラメータの値は、クラメルの公式を使用する固定小数点演算などを用いた最小二乗法によって決定される。
【0176】
いくつかの例では、所定の双予測モデルは2つの重みパラメータを含み、予測された現在のテンプレートは、例えば式(9)に従って表すことができる。一例では、所定の双予測モデル内の2つの重みパラメータの値は、クラメルの公式を使用する固定小数点演算などを用いた最小二乗法によって決定される。
【0177】
いくつかの例では、所定の双予測モデルは1つの重みパラメータを含み、予測された現在のテンプレートは、例えば式(4)に従って表すことができる。一例では、所定の双予測モデル内の重みパラメータの値は、固定小数点演算などを用いた最小二乗法によって決定される。
【0178】
いくつかの例では、重みパラメータの(1つまたは複数の)値は、重みパラメータのそれぞれの範囲内でクリップされる。
【0179】
(S1450)において、符号化ブロックは、(1つまたは複数の)重みを用いた双予測を使用して再構成される。いくつかの例では、所定の双予測モデルは3つの重みパラメータを含み、符号化ブロックは、例えば式(6)に従って再構成することができる。いくつかの例では、所定の双予測モデルは2つの重みパラメータを含み、符号化ブロックは、例えば式(8)に従って再構成することができる。いくつかの例では、所定の双予測モデルは1つの重みパラメータを含み、符号化ブロックは、例えば式(3)に従って再構成することができる。
【0180】
次いで、プロセスは(S1499)に進み、終了する。
【0181】
いくつかの例では、符号化ブロックの近傍のいずれかが使用できないとき、所定の重み(例えば、デフォルトの重みなど)が使用され得ることに留意されたい。
【0182】
プロセス(1400)は、適切に適合させることができる。プロセス(1400)の(1つまたは複数の)ステップは、修正および/または省略することができる。(1つまたは複数の)追加のステップを追加することができる。任意の適切な実施順序を使用することができる。
【0183】
上記で説明された技術は、1つ以上のコンピュータ可読媒体に物理的に記憶された、コンピュータ可読命令を使用するコンピュータソフトウェアとして実現され得る。例えば、
図15は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1500)を示す。
【0184】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU:central processing unit)およびグラフィック処理装置(GPU:Graphics Processing Unit)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様のメカニズムを受け得る任意の適切な機械コードまたはコンピュータ言語を使用してコード化され得る。
【0185】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0186】
コンピュータシステム(1500)に関して
図15に示されている構成要素は、本質的に例示的であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。また、構成要素の構成は、コンピュータシステム(1500)の例示的な実施形態に示されている構成要素のいずれか1つまたはそれらの組み合わせに関する依存性または要件を有するものとして解釈されるべきではない。
【0187】
コンピュータシステム(1500)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)など、1人以上のユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
【0188】
入力ヒューマンインターフェースデバイスは、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチ画面(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイクロフォン(1506)、スキャナ(1507)、カメラ(1508)のうちの1つ以上(各々のうちの1つのみが図示されている)を含んでもよい。
【0189】
コンピュータシステム(1500)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて、1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面(1510)、データグローブ(図示せず)、またはジョイスティック(1505)による触覚フィードバックだが、入力デバイスとして機能しない触覚フィードバックデバイスも存在する場合がある)、オーディオ出力デバイス(スピーカ(1509)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1510)などであり、それぞれタッチ画面入力機能があってもなくてもよく、それぞれ触覚フィードバック機能があってもなくてもよく、ステレオグラフィック出力、仮想現実の眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して2次元の視覚的出力または3次元以上の出力を出力できるものもある)、およびプリンタ(図示せず)を含み得る。
【0190】
コンピュータシステム(1500)は、CD/DVDなどの媒体(1521)を伴うCD/DVD ROM/RW(1520)を含む光媒体、サムドライブ(1522)、リムーバブルハードドライブまたはソリッドステートドライブ(1523)、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイスおよびその関連媒体を含むこともできる。
【0191】
また、当業者は、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0192】
コンピュータシステム(1500)は、1つ以上の通信ネットワーク(1555)へのインターフェース(1554)を含むこともできる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線または無線の広域デジタルネットワーク、CANBusを含む車両および産業用などを含む。特定のネットワークは、通常、(例えば、コンピュータシステム(1500)のUSBポートなどの)特定の汎用データポートまたは周辺バス(1549)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下に記載されるシステムバスに取り付けることによってコンピュータシステム(1500)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1500)は他のエンティティと通信することができる。このような通信は、単方向受信のみ(例えば、ブロードキャストTV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明されたように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0193】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースを、コンピュータシステム(1500)のコア(1540)に取り付けることができる。
【0194】
コア(1540)は、1つまたは複数の中央処理装置(CPU)(1541)、グラフィックス処理装置(GPU)(1542)、フィールドプログラマブルゲートエリア(FPGA)(1543)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1544)、グラフィックスアダプタ(1550)などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(1547)とともに、システムバス(1548)を介して接続することができる。いくつかのコンピュータシステムでは、システムバス(1548)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能であり得る。周辺機器は、コアのシステムバス(1548)に直接、または周辺バス(1549)を介して接続することができる。一例では、画面(1510)をグラフィックスアダプタ(1550)に接続することができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0195】
CPU(1541)、GPU(1542)、FPGA(1543)、およびアクセラレータ(1544)は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行することができる。このコンピュータコードは、ROM(1545)またはRAM(1546)に記憶することができる。過渡的なデータもRAM(1546)に記憶することができるが、永続データは、例えば、内部大容量記憶装置(1547)に記憶することができる。1つ以上のCPU(1541)、GPU(1542)、大容量ストレージ(1547)、ROM(1545)、RAM(1546)などと密接に関連付けることができるキャッシュメモリの使用によって、メモリデバイスのいずれかに対する高速記憶および取得を可能にすることができる。
【0196】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはこれらは、コンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0197】
限定ではなく一例として、アーキテクチャ、特にコア(1540)を有するコンピュータシステム(1500)は、1つ以上の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能を提供することができる。このようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能な大容量記憶装置、およびコア内部大容量記憶装置(1547)またはROM(1545)などの非一時的な性質のコア(1540)の特定の記憶装置に関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶され、コア(1540)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1540)、および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(1546)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。追加または代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる回路(例えば、アクセラレータ(1544))内に配線された、またはさもなければ具現化されたロジックの結果として、機能を実現することができる。ソフトウェアへの言及はロジックを含むことができ、必要に応じてその逆も可能である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具体化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
別表A:略語
JEM 共同探索モデル
VVC 多用途ビデオ符号化
BMS ベンチマークセット
MV 動きベクトル
HEVC 高効率ビデオ符号化
SEI 補足拡張情報
VUI ビデオユーザビリティ情報
GOP グループオブピクチャ
TU 変換ユニット
PU 予測ユニット
CTU 符号化ツリーユニット
CTB 符号化ツリーブロック
PB 予測ブロック
HRD 仮想参照デコーダ
SNR 信号対雑音比
CPU 中央処理装置
GPU グラフィックス処理装置
CRT ブラウン管
LCD 液晶ディスプレイ
OLED 有機発光ダイオード
CD コンパクトディスク
DVD デジタルビデオディスク
ROM 読み取り専用メモリ
RAM ランダムアクセスメモリ
ASIC 特定用途向け集積回路
PLD プログラマブルロジックデバイス
LAN ローカルエリアネットワーク
GSM モバイル通信用グローバルシステム
LTE ロングタームエボリューション
CANBus コントローラエリアネットワークバス
USB ユニバーサルシリアルバス
PCI 周辺機器相互接続
FPGA フィールドプログラマブルゲートエリア
SSD ソリッドステートドライブ
IC 集積回路
CU 符号化ユニット
【0198】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある、多数のシステムおよび方法を考案できることが理解されるだろう。
【符号の説明】
【0199】
101、202~206 サンプル
102、103 矢印
104 ブロック
201、910、1010 現在のブロック
310、320、330、340 端末デバイス
350 ネットワーク
300、400 通信システム
401、601 ビデオソース
402 ストリーム
404 符号化ビデオデータ
405 ストリーミングサーバ
406、408 クライアントサブシステム
407、409 符号化ビデオデータのコピー
410、510、810 ビデオデコーダ
411 出力ストリーム
412 ディスプレイ
413 取り込みサブシステム
420、430、530、620 電子デバイス
501 チャネル
512 レンダリングデバイス
515 バッファメモリ
520 エントロピーデコーダ/パーサ
521 シンボル
531 受信機
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557、634 参照ピクチャメモリ
558 現在のピクチャバッファ
603、703 ビデオエンコーダ
630 ソースコーダ
633 (ローカル)デコーダ
634 参照ピクチャキャッシュ
635 予測器
640 送信機
643 符号化ビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728、873 残差デコーダ
730 インターエンコーダ
871 エントロピーデコーダ
872 イントラデコーダ
874 再構成モジュール
880 インターデコーダ
911 上の現在のテンプレート
912 左の現在のテンプレート
920 参照ブロック
921 上参照テンプレート
922 左参照テンプレート
930、1035 動きベクトル
1000 ビデオシーケンス
1001~1003 フレーム
1011、1012、1031、1032 画素
1020 第1の参照ブロック
1030 第2の参照ブロック
1200、1300、1400 プロセス