(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-06
(45)【発行日】2023-02-14
(54)【発明の名称】小サブブロックを用いたアフィンインター予測のための方法および装置並びにコンピュータプログラム
(51)【国際特許分類】
H04N 19/109 20140101AFI20230207BHJP
H04N 19/139 20140101ALI20230207BHJP
H04N 19/176 20140101ALI20230207BHJP
H04N 19/70 20140101ALI20230207BHJP
【FI】
H04N19/109
H04N19/139
H04N19/176
H04N19/70
(21)【出願番号】P 2021533462
(86)(22)【出願日】2020-03-13
(86)【国際出願番号】 US2020022686
(87)【国際公開番号】W WO2020186184
(87)【国際公開日】2020-09-17
【審査請求日】2021-06-11
(32)【優先日】2019-03-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】清山 昂平
(56)【参考文献】
【文献】国際公開第2017/195608(WO,A1)
【文献】Benjamin Bross, et al.,Versatile Video Coding (Draft 4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M1001-v6,2019年03月09日,pp.43-46, 184-185
【文献】Teruhiko Suzuki, et al.,Description of SDR and HDR video coding technology proposal by Sony,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0028,2018年04月12日,pp.7-8
【文献】Kai Zhang et al.,Non-CE2: Interweaved Prediction for Affine Motion Compensation,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0268-v3,13th Meeting: Marrakech, MA,2019年01月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
(57)【特許請求の範囲】
【請求項1】
符号化されたビデオビットストリームから現在ピクチャにおけるブロックの予測情報をデコードするステップであって、前記予測情報は、インター予測モードにおけるアフィンモデルを示すものである、ステップと、
前記アフィンモデルに基づいて、前記ブロックの制御点の動きベクトルを決定するステップと、
決定した前記制御点の前記動きベクトルに基づき前記ブロックのサブブロックの動きベクトルを決定するステップであって、前記サブブロックの幅および高さの1つは4未満であ
り、前記サブブロックの幅は前記サブブロックの高さと異なる、ステップと、
決定した前記動きベクトルに基づいて、少なくとも前記サブブロックのサンプルを再構築するステップと、
を含むデコーダにおけるビデオデコード方法。
【請求項2】
決定した前記ブロックの前記制御点の前記動きベクトルから前記ブロック内の4×4ブロックの動きベクトルを決定するステップであって、前記4×4ブロックは前記サブブロックを含むものである、ステップをさらに含む、請求項1に記載の方法。
【請求項3】
決定した前記4×4ブロックの前記動きベクトルをメモリに記憶するステップをさらに含む、請求項1又は2に記載の方法。
【請求項4】
前記サブブロックが前記ブロック内の4×4ブロックの左上領域にある場合、決定した前記サブブロックの前記動きベクトルをメモリに記憶するステップをさらに含む、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記サブブロックが前記ブロック内の4×4ブロックの右下領域にある場合、決定した前記サブブロックの前記動きベクトルをメモリに記憶するステップをさらに含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記サブブロックが前記ブロック内の4×4ブロックの中央サンプルを含む場合、決定した前記サブブロックの前記動きベクトルをメモリに記憶するステップをさらに含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記サブブロックがクロマブロックである場合、前記クロマブロックは、対応するルマブロックのサイズに関係なく、一定のサイズを有する、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記インター予測モードは、片予測である、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記サブブロックの前記動きベクトルを決定する前記ステップは、
前記インター予測モードが片予測であり、且つ前記サブブロックを含む8×8ブロックの動き補償のメモリ帯域幅が閾値以下である場合、前記制御点の前記動きベクトルから前記ブロックの前記サブブロックの前記動きベクトルを決定するステップを含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
小サブブロックアフィンモードが前記現在ピクチャまたは前記現在ピクチャにおけるタイルグループに使用されるか否かを示すインジケータを受信するステップと、
受信した前記インジケータが前記小サブブロックアフィンモードが使用されることを示す場合、前記デコード、前記制御点の前記動きベクトルの前記決定、前記サブブロックの前記動きベクトルの前記決定、および前記再構築を実行するステップと、をさらに含む請求項1~9のいずれか一項に記載の方法。
【請求項11】
受信した前記インジケータが前記小サブブロックアフィンモードが使用されることを示す場合、前記小サブブロックアフィンモードが使用される前記サブブロックのサイズを示すシグナリングを受信するステップ、をさらに含む請求項10に記載の方法。
【請求項12】
受信した前記インジケータが前記小サブブロックアフィンモードが使用されることを示す場合、前記サブブロックの幅および高さの1つは4未満である、請求項10に記載の方法。
【請求項13】
前記ブロックのサブブロックの動きベクトルを決定するステップは、前記ブロック内の前記サブブロックの位置にさらに基づく、請求項1~12のいずれか一項に記載の方法。
【請求項14】
処理回路とメモリとを含む装置であって、前記処理回路が前記メモリに記憶されたプログラムをロードし実行することにより、請求項1~13のいずれか一項に記載の方法を実現する装置。
【請求項15】
コンピュータに請求項1~13のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本出願は、2019年3月13日に出願された米国仮出願第62/818,068号の「小サブブロックを用いたアフィンインター予測」の優先権を主張した、2020年3月12日に出願された米国出願第16/816,562号の「小サブブロックを用いたアフィンインター予測のための方法および装置」の優先権を主張し、その内容を全て参照により本明細書に組み込むものとする。
【0002】
本開示は、一般にビデオ符号化に関する実施形態を説明する。
【背景技術】
【0003】
本明細書中に提供される「背景技術」の記述は、開示の文脈を一般的に提供するのを目的としている。出願時に先行技術としての資格を有しない記述の態様は勿論のこと、現在指名されている発明者の成果は、本背景技術セクションにおいて記述されている程度において、本開示に対する先行技術として明示的にも黙示的にも認められてはいない。
【0004】
ビデオ符号化および復号は、動き補償を伴うインターピクチャ予測を用いて実行されることができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080輝度サンプルと関連する彩度サンプルの空間寸法を持っている。該一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変ピクチャレート(非公式には「フレームレート」とも呼ぶ)を持つことができる。非圧縮ビデオには、顕著なビットレート要件がある。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅が必要となる。このようなビデオは、1時間で600GBytesを超えた記憶空間を必要とする。
【0005】
ビデオ符号化および復号の1つの目的は、圧縮によって入力ビデオ信号の冗長性を低減することであり得る。圧縮は、上記の帯域幅または記憶空間の要件を、場合によっては2桁以上削減するのに役立つ。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを用いることができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる手法を指す。非可逆圧縮が使用される場合、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号の間の歪みは、再構築された信号を意図されたアプリケーションに役立てる程度に小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なる。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。
【0006】
動き補償は、非可逆圧縮手法であり得、予め再構築されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックを、動きベクトル(以降、「MV」と呼ぶ)によって示される方向に空間的にシフトした後、新しく再構築されたピクチャまたはピクチャ部分の予測に用いる技術に関することができる。場合によっては、参照ピクチャは現在再構築中のピクチャと同じになることがある。MVは、XとYの2次元、または、第3次元が、使用中の参照ピクチャを示す3次元を持つことができる(後者は間接的に時間の次元であり得る)。
【0007】
一部のビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVは、他のMVから、例えば再構築中の領域に空間的に隣接し、デコード順でそのMVよりも前であるサンプルデータの別の領域に関連するMVから予測されることができる。そうすることで、MVの符号化に必要なデータの量を大幅に減らすことができ、これにより冗長性を取り除き、圧縮を強化する。例えば、カメラから取得された入力ビデオ信号(「ナチュラルビデオ」と呼ぶ)を符号化する際に、単一のMVが適用される領域より大きい領域が同様の方向に移動する統計的可能性があるため、MV予測は有効に働くことができる。したがって、場合によっては、隣接領域のMVから導出された類似の動きベクトルを用いて予測することができる。その結果、所定の領域に対して発見されたMVは、周囲のMVから予測されたMVと類似または同一であり、逆に、エントロピー符号化後、MVを直接符号化する場合よりも少ないビット数で表されることができる。場合によっては、MV予測は、元の信号(即ち、「サンプルストリーム」)に由来する信号(即ち、「MV」)の可逆圧縮の一例であり得る。他の場合では、例えばいくつかの周囲のMVから予測子を計算するときの丸め誤差のために、MV予測自体は非可逆になる可能性がある。
【0008】
H.265/HEVC(ITU-T Rec.H.265、「高効率ビデオ符号化」、2016年12月)には、様々なMV予測メカニズムが記載されている。H.265が提供する多くのMV予測メカニズムのうち、ここで説明するのは、以降、「空間的マージ」と呼ぶ技術である。
【0009】
図1を参照すると、現在ブロック(101)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるとエンコーダによって動き検出プロセスにおいて発見されたサンプルを含む。そのMVを直接符号化する代わりに、A0、A1、およびB0、B1、B2(それぞれ102から106)で示される5つの周囲のサンプルのいずれか1つに関連付けられるMVを用いて、1つ以上の参照ピクチャに関連付けられるメタデータから、例えば最新の(デコード順で)参照ピクチャから、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0010】
本開示の態様は、ビデオエンコード/デコードのための方法および装置を提供する。一部の例では、ビデオデコードのための装置は、処理回路を含む。一実施形態では、符号化されたビデオビットストリームから現在ピクチャにおけるブロックの予測情報がデコードされる。前記予測情報は、インター予測モードにおけるアフィンモデルを示すものである。前記アフィンモデルに基づいて、前記ブロックの制御点の動きベクトルが決定される。決定した前記制御点の前記動きベクトルから前記ブロックのサブブロックの動きベクトルが決定される。前記サブブロックの幅および高さの1つは4未満である。さらに、決定した前記動きベクトルに基づいて、少なくとも前記サブブロックのサンプルが再構築される。
【0011】
一実施形態では、決定した前記ブロックの前記制御点の前記動きベクトルから前記ブロック内の4×4ブロックの動きベクトルが決定され、前記4×4ブロックは前記サブブロックを含むものである。
【0012】
一実施形態では、決定した前記4×4ブロックの前記動きベクトルがメモリに記憶される。
【0013】
一実施形態では、前記サブブロックが前記ブロック内の4×4ブロックの左上領域にある場合、決定した前記サブブロックの前記動きベクトルがメモリに記憶される。
【0014】
一実施形態では、前記サブブロックが前記ブロック内の4×4ブロックの右下領域にある場合、決定した前記サブブロックの前記動きベクトルがメモリに記憶される。
【0015】
一実施形態では、前記サブブロックが前記ブロック内の4×4ブロックの中央サンプルを含む場合、決定した前記サブブロックの前記動きベクトルがメモリに記憶される。
【0016】
一実施形態では、前記サブブロックがクロマブロックである場合、前記クロマブロックは、対応するルマブロックのサイズに関係なく、一定のサイズを有する。
【0017】
一実施形態では、前記インター予測モードは、片予測である。
【0018】
一実施形態では、前記インター予測モードが片予測であり、且つ前記サブブロックを含む8×8ブロックの動き補償のメモリ帯域幅が閾値以下である場合、前記制御点の前記動きベクトルから前記ブロックの前記サブブロックの前記動きベクトルが決定される。
【0019】
一実施形態では、小サブブロックアフィンモードが前記現在ピクチャまたは前記現在ピクチャにおけるタイルグループに使用されるか否かを示すインジケータが受信される。さらに、受信した前記インジケータが前記小サブブロックアフィンモードが使用されることを示す場合、前記デコード、前記制御点の前記動きベクトルの前記決定、前記サブブロックの前記動きベクトルの前記決定、および前記再構築が実行される。
【0020】
また、本開示の一態様は、ビデオデコードのためにコンピュータによって実行されると、前記コンピュータに、前記ビデオデコードのための方法のいずれか1つまたは組み合わせを実行させる命令を記憶する、非一時的コンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0021】
本開示の主題のさらなる特徴、性質および様々な利点は、以下の詳細の説明および添付の図面からより明らかになる。
【0022】
【
図1】一例における現在ブロックおよびその周囲の空間的マージ候補の概略図である。
【0023】
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【0024】
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【0025】
【
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【0026】
【
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【0027】
【
図6】別の一実施形態によるエンコーダのブロック図を示す。
【0028】
【
図7】別の一実施形態によるデコーダのブロック図を示す。
【0029】
【
図8】一実施形態による空間的マージ候補の位置の概略図である。
【0030】
【
図9】一実施形態による、冗長性検査プロセスのための拡張マージリスト内の候補ペアを示す。
【0031】
【
図10】一実施形態による、現在ピクチャにおける拡張マージリスト内の時間的マージ候補を導出する例を示す。
【0032】
【
図11】一実施形態による、拡張マージリスト内の時間的マージ候補を選択できる候補位置を示す。
【0033】
【
図12】一実施形態による、動きベクトル差分(MMVD)を有するマージモードで予測を選択できる予測位置を示す。
【0034】
【
図13】2パラメータアフィンモデルを表すための2つの制御点動きベクトル(CPMV)を示す。
【0035】
【
図14】3パラメータアフィンモデルを表すための3つのCPMVを示す。
【0036】
【
図15】アフィン予測モードで符号化された現在ブロックから分割されたサブブロックに対して導出された動きベクトルを示す。
【0037】
【
図16】継承されたアフィンマージ候補を導出するための現在ブロックの隣接ブロックを示す。
【0038】
【
図17】構築されたアフィンマージ候補を導出するための候補ブロック位置を示す。
【0039】
【
図18】一実施形態による、サブブロックベースの時間的動きベクトル予測(SbTMVP)方法を用いて、現在ブロックの動き情報の予測を決定するために使用できる空間的隣接ブロックの概略図である。
【0040】
【
図19】一実施形態による、SbTMVP方法のために選択された空間的隣接ブロックの概略図である。
【0041】
【
図20】一実施形態による、符号化ユニットを2つの三角予測ユニットに分割する例を示す。
【0042】
【
図21】一実施形態による、三角予測モードの片予測候補リストを構築するための空間的隣接ブロックおよび時間的隣接ブロックを示す。
【0043】
【
図22】一実施形態による、三角分割インデックスに基づいてスプリット方向および分割動き情報を導出するためのルックアップテーブルを示す。
【0044】
【
図23】一実施形態による、適応的ブレンディングプロセスにおける符号化ユニットに適用される重み係数を示す。
【0045】
【
図24】一実施形態による、織り込みアフィン予測プロセスを示す。
【0046】
【
図25】一実施形態による、織り込みアフィン予測プロセスにおける加重平均演算の重みのパターンを示す。
【0047】
【
図26】一実施形態による小サブブロックアフィンインター予測の例を示す。
【0048】
【
図27】一実施形態による例示的デコードプロセスの図である。
【0049】
【
図28】本開示の一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0050】
I.ビデオ符号化エンコーダおよびデコーダ
【0051】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示している。通信システム(200)は、例えばネットワーク(250)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1の対の端末装置(210)および(220)を含む。
図2の例では、第1の対の端末装置(210)および(220)は、データの単方向送信を実行する。例えば、端末装置(210)は、ネットワーク(250)を介して他方の端末装置(220)へ送信するためにビデオデータ(例えば、端末装置(210)によってキャプチャされたビデオピクチャのストリーム)を符号化し得る。エンコードされたビデオデータは、1つ以上の符号化されたビデオビットストリームの形態で送信されることができる。端末装置(220)は、ネットワーク(250)から符号化ビデオデータを受信し、符号化ビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向のデータ送信は、メディア供給アプリケーションなどで一般的である。
【0052】
他の例では、通信システム(200)は、例えばビデオ会議中に発生し得る符号化ビデオデータの双方向送信を実行する第2の対の端末装置(230)および(240)を含む。データの双方向送信の場合、一例では、端末装置(230)および(240)のそれぞれは、ネットワーク(250)を介して端末装置(230)および(240)のうちの他方の端末装置へ送信するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)を符号化し得る。端末装置(230)および(240)の一方は、端末装置(230)および(240)の他方から送信された符号化ビデオデータを受信し、符号化ビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャをアクセス可能な表示装置に表示することができる。
【0053】
図2の例では、端末装置(210)、(220)、(230)および(240)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、本開示の原理はこれに制限されることはない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、および/または専用のビデオ会議機器に適用可能である。ネットワーク(250)は、例えば有線および/または無線通信ネットワークを含む、端末装置(210)、(220)、(230)および(240)間で符号化ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要でないかもしれない。
【0054】
図3は、開示された主題の適用の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、および、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応アプリケーションに等しく適用可能である。
【0055】
ストリーミングシステムは、例えば非圧縮のビデオピクチャ(302)のストリームを作成するデジタルカメラのようなビデオソース(301)を含むことができるキャプチャサブシステム(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のコンテキストに使用され得る。
【0056】
なお、電子デバイス(320)および(330)は、他のコンポーネント(図示せず)を含むことができる。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)を含むこともできる。
【0057】
図4は、本開示の実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例におけるビデオデコーダ(310)の代わりに使用されることができる。
【0058】
受信機(431)は、ビデオデコーダ(410)によってデコードされる1つ以上の符号化ビデオシーケンスを受信することができ、同一または別の一実施形態では、一度に1つの符号化ビデオシーケンスを受信してもよく、各符号化ビデオシーケンスのデコードは、他の符号化ビデオシーケンスから独立している。符号化ビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(401)から受信されることができる。受信機(431)は、それぞれの使用エンティティ(描画せず)に転送され得る他のデータ、例えば、符号化オーディオデータおよび/または補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信機(431)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(415)は、受信機(431)とエントロピーデコーダ/パーサ(420)(以降、「パーサ(420)」)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他の場合、ビデオデコーダ(410)(示されていない)の外部に存在し得る。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ(410)の外部にバッファメモリ(描画せず)が存在し、さらに、例えば、再生タイミングを取り扱うためにビデオデコーダ(410)の内部に別のバッファメモリ(415)が存在し得る。受信機(431)が十分な帯域幅および可制御性を有する記憶/転送装置から、または等同期ネットワークからデータを受信する際に、バッファメモリ(415)は必要とされないことがあり、または小さくされることがある。インターネットのようなベストエフォートパケットネットワークで用いるために、バッファメモリ(415)が必要になる場合があり、比較的大きいことがあり、有利には適応サイズであることができ、オペレーティングシステムまたはビデオデコーダ(410)の外部の類似の要素(描画せず)に少なくとも部分的に実現され得る。
【0059】
ビデオデコーダ(410)は、符号化ビデオシーケンスからシンボル(421)を再構築するパーサ(420)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(410)の操作を管理するための情報、および、電子デバイス(430)の不可欠な部分ではないが、
図4に示すように電子デバイス(430)に結合され得るレンダリングデバイス(412)(例えば、表示画面)のようなレンダリングデバイスを制御する潜在的情報を含む。レンダリングデバイスのための制御情報は、補助強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(描画せず)の形態であってよい。パーサ(420)は、受信される符号化ビデオシーケンスを構文解析/エントロピーデコードすることができる。符号化ビデオシーケンスの符号化は、ビデオ符号化技術または規格に合わせることができ、可変長符号化、ハフマン符号化、文脈感受性を有するもしくは有さない算術符号化などを含む様々な原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャ群(GOPs)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TUs)、予測ユニット(PUs)などを含むことができる。パーサ(420)は、符号化ビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報をも抽出することができる。
【0060】
パーサ(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析操作を実行することができる。
【0061】
シンボル(421)の再構築は、符号化ビデオピクチャまたはその一部のタイプ(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)、および他の要因に応じて、複数の異なるユニットが関与することができる。どのユニットが、どのように関与するかは、パーサ(420)によって符号化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数のユニットとの間のサブグループ制御情報の流れは、明確にするために示されていない。
【0062】
すでに述べた機能ブロックに加え、ビデオデコーダ(410)は、以下で説明されるように複数の機能ユニットに概念的に細分されることができる。商業的な制約の下で実際の実施にあたっては、これらのユニットの多くは互いに密接に相互作用し、少なくとも一部は互いに統合することができる。しかしながら、開示された主題の説明の目的で、以下の機能ユニットへの概念的な細分は、適切に行われる。
【0063】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、用いる変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(421)としてパーサ(420)から受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力可能なサンプル値を含むブロックを出力することができる。
【0064】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化ブロック、すなわち、予め再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの予め再構築された部分からの予測情報を使用できるブロックに関係することがある。このような予測情報は、イントラピクチャ予測ユニット(452)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(452)は、現在ピクチャバッファ(458)から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックの同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(458)は、例えば、一部再構築された現在ピクチャおよび/または完全に再構築された現在ピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に追加する。
【0065】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化された、潜在的に動き補償されたブロックに関係することがある。このような場合、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(421)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)の出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ぶ)。動き補償予測ユニット(453)が予測サンプルを取り出す参照ピクチャメモリ(457)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル(421)の形態で動き補償予測ユニット(453)に利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプル正確動きベクトルが使用中であるときに参照ピクチャメモリ(457)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0066】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において様々なループフィルタリング手法を受けられる。ビデオ圧縮技術は、符号化ビデオシーケンス(符号化されたビデオビットストリームとも呼ぶ)に含まれる、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能とされたパラメータによって制御されることができ、それに、符号化ピクチャまたは符号化ビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構築されループフィルタリングされたサンプル値に応じることもできるループ内フィルタ技術を含むことができる。
【0067】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)へ出力されることができるとともに、将来のインターピクチャ予測で用いるために参照ピクチャメモリ(457)に記憶されることができるサンプルストリームであり得る。
【0068】
特定の符号化ピクチャは、完全に再構築されると、将来の予測のために参照ピクチャとして使用されることができる。例えば、現在ピクチャに対応する符号化ピクチャが完全に再構築され、符号化ピクチャが(例えば、パーサ(420)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(458)は、参照ピクチャメモリ(457)の一部になることができ、次の符号化ピクチャの再構築を開始する前に新しい現在ピクチャバッファが再割当てされることができる。
【0069】
ビデオデコーダ(410)は、ITU-T Rec.H.265のような規格での所定のビデオ圧縮技術に従ってデコード操作を実行することができる。符号化ビデオシーケンスが、ビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールから、特定のツールをそのプロファイルで使用できる唯一のツールとして選択することができる。符号化ビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様および符号化ビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0070】
一実施形態では、受信機(431)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、符号化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、および/または、元のビデオデータをより正確に再構築するためにビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態にされることができる。
【0071】
図5は、本開示の実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。
図3の例におけるビデオエンコーダ(303)の代わりにビデオエンコーダ(503)を用いることができる。
【0072】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によって符号化されるビデオ画像をキャプチャし得るビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信することができる。他の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0073】
ビデオソース(501)は、ビデオエンコーダ(503)によって符号化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース(501)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャそのものは、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
【0074】
一実施形態によれば、ビデオエンコーダ(503)は、リアルタイムでまたはアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャを符号化し、符号化ビデオシーケンス(543)に圧縮することができる。適切な符号化速度を実行することは、コントローラ(550)の機能の1つである。一部の実施形態では、コントローラ(550)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、カップリングは示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化手法のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(550)は、特定のシステム設計に対して最適化されたビデオエンコーダ(503)に関する他の適切な機能を有するように構成されることができる。
【0075】
一部の実施形態では、ビデオエンコーダ(503)は、符号化ループで動作するように構成される。過度に簡略化した説明として、一例では、符号化ループは、ソースコーダ(530)(例えば、符号化対象となる入力ピクチャおよび参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、およびビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)を含むことができる。デコーダ(533)は、シンボルを再構築して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する(シンボルと符号化されたビデオビットストリーム間の如何なる圧縮は、開示された主題で考慮されるビデオ圧縮技術では可逆であるためである)。再構築されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(534)に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(534)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性の該基本原理(および例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連分野にも使用されている。
【0076】
「ローカル」デコーダ(533)の動作は、前文で
図4に関連して既に詳細に説明された、ビデオデコーダ(410)のような「リモート」デコーダの動作と同様であり得る。しかしながら、
図4も簡単に参照し、シンボルが使用可能であり、エントロピーコーダ(545)およびパーサ(420)による符号化ビデオシーケンスへのシンボルのエンコード/デコードが可逆であり得るので、バッファメモリ(415)、およびパーサ(420)を含むビデオデコーダ(410)のエントロピーデコード部分は、ローカルデコーダ(533)では完全に実現されない場合がある。
【0077】
これで分かるように、デコーダに存在する構文解析/エントロピーデコード以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示された主題は、デコーダの動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0078】
動作中、一部の例では、ソースコーダ(530)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の予め符号化されたピクチャを参照して入力ピクチャを予測的に符号化する動き補償予測符号化を実行してもよい。このようにして、符号化エンジン(532)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差異を符号化する。
【0079】
ローカルビデオデコーダ(533)は、ソースコーダ(530)で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化ビデオデータをデコードすることができる。符号化エンジン(532)の動作は、有利には非可逆プロセスであり得る。符号化ビデオデータがビデオデコーダ(
図5に示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(533)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構築された参照ピクチャを参照ピクチャキャッシュ(534)に記憶させることができる。このようにして、ビデオエンコーダ(503)は、遠端ビデオデコーダによって取得される再構築された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構築された参照ピクチャのコピーをローカルに記憶し得る。
【0080】
予測器(535)は、符号化エンジン(532)の予測検索を実行することができる。つまり、符号化対象となる新しいピクチャについて、予測器(535)は、(候補の参照画素ブロックとしての)サンプルデータ、または、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(534)で検索することができる。予測器(535)は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに動作することができる。場合によっては、予測器(535)で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
【0081】
コントローラ(550)は、例えば、ビデオデータをエンコードするためのパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)の符号化動作を管理することができる。
【0082】
前述のすべての機能ユニットの出力は、エントロピーコーダ(545)においてエントロピー符号化を受けられる。エントロピーコーダ(545)は、例えば、ハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0083】
送信機(540)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(560)を介した送信の準備のために、エントロピーコーダ(545)によって作成された符号化ビデオシーケンスをバッファリングすることができる。送信機(540)は、ビデオコーダ(503)からの符号化ビデオデータを、送信されるべき他のデータ、例えば、符号化オーディオデータおよび/または補助データストリーム(ソースは示されていない)とマージすることができる。
【0084】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。符号化中、コントローラ(550)は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得る符号化手法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。
【0085】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずに符号化および復号され得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形、並びに、それらのそれぞれの用途および特徴を知っている。
【0086】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測により符号化および復号され得るものであり得る。
【0087】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測により符号化および復号され得るものであり得る。同様に、多重予測ピクチャは、単一のブロックの再構築のために2つを超えた参照ピクチャおよび関連メタデータを用いることができる。
【0088】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロック単位で符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定された他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同一のピクチャの既に符号化されたブロック(空間的予測またはイントラ予測)を参照して予測的に符号化されてもよい。Pピクチャの画素ブロックは、1つの予め符号化された参照ピクチャを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化され得る。Bピクチャのブロックは、1つまたは2つの予め符号化された参照ピクチャを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化され得る。
【0089】
ビデオエンコーダ(503)は、ITU-T Rec.H.265などの予め設定されたビデオ符号化技術または規格に従って、符号化動作を実行することができる。動作中、ビデオエンコーダ(503)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測符号化操作を含む、様々な圧縮操作を実行することができる。したがって、符号化ビデオデータは、使用されているビデオ符号化技術または規格によって指定されたシンタックスに準拠することができる。
【0090】
一実施形態では、送信機(540)は、エンコードされたビデオとともに追加のデータを送信することができる。ソースコーダ(530)は、このようなデータを符号化ビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形態での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0091】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在ピクチャと呼ぶエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在ピクチャにおけるブロックが、ビデオにおける予め符号化され、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在ピクチャにおけるブロックは、動きベクトルと呼ぶベクトルによって符号化されることができる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
【0092】
一部の実施形態では、インターピクチャ予測において双予測法を用いることができる。双予測法によれば、ビデオにおける現在ピクチャよりもデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去および未来にあり得る)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャを用いる。現在ピクチャにおけるブロックは、第1の参照ピクチャにおける第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャにおける第2の参照ブロックを指す第2の動きベクトルによって符号化されることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0093】
さらに、マージモード技術をインターピクチャ予測に適用して、符号化効率を向上させることができる。
【0094】
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャ中のピクチャは、圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャにおけるCTUsは、64×64画素、32×32画素、または16×16画素など、同一のサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロマCTBsである3つの符号化ツリーブロック(CTBs)を含む。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的に四分木分割されることができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16つの16×16画素のCUにスプリットされることができる。一例では、各CUを解析して、インター予測タイプまたはイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的および/または空間的予測可能性に応じて、1つ以上の予測ユニット(PUs)にスプリットされる。通常、各PUは、1つのルマ予測ブロック(PB)と2つのクロマPBsを含む。一実施形態では、符号化(エンコード/デコード)における予測操作は、予測ブロックの単位で実行される。ルマ予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、ルマ値)の行列を含む。
【0095】
図6は、本開示の他の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、一連のビデオピクチャ内の現在ビデオピクチャにおけるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化ビデオシーケンスの一部である符号化ピクチャにエンコードするように構成される。一例では、
図3の例におけるビデオエンコーダ(303)の代わりにビデオエンコーダ(603)を用いる。
【0096】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(603)は、例えばレート歪み最適化を用いて、処理ブロックがイントラモード、インターモード、または双予測モードにより最も良く符号化されるか否かを決定する。処理ブロックがイントラモードで符号化されようとする場合、ビデオエンコーダ(603)は、イントラ予測法を用いて処理ブロックを符号化ピクチャにエンコードすることができる。また、処理ブロックがインターモードまたは双予測モードで符号化されようとする場合、ビデオエンコーダ(603)は、それぞれインター予測または双予測法を用いて、処理ブロックを符号化ピクチャにエンコードすることができる。特定のビデオ符号化技術では、マージモードは、予測子外の符号化動きベクトル成分の利便を介することなく、1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
【0097】
図6の例では、ビデオエンコーダ(603)は、
図6に示すように互いに結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差算出部(623)、スイッチ(626)、残差エンコーダ(624)、統括制御部(621)およびエントロピーエンコーダ(625)を含む。
【0098】
インターエンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャにおける1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャにおけるブロック)と比較し、インター予測情報(例えば、インターエンコード手法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な手法を用いてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされるデコード参照ピクチャである。
【0099】
イントラエンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既に符号化されたブロックと比較し、量子化された変換後係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラエンコード法によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ(622)は、イントラ予測情報および同一のピクチャにおける参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も算出する。
【0100】
統括制御部(621)は、統括制御データを決定し、統括制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、統括制御部(621)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(626)に提供する。例えば、モードがイントラモードである場合、統括制御部(621)は、残差算出部(623)用のイントラモード結果を選択するようにスイッチ(626)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ(625)を制御する。また、モードがインターモードである場合、統括制御部(621)は、残差算出部(623)用のインター予測結果を選択するようにスイッチ(626)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ(625)を制御する。
【0101】
残差算出部(623)は、受信されたブロックとイントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域へと変換し、変換係数を生成するように構成される。その後、変換係数は量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(603)は、残差デコーダ(628)をも含む。残差デコーダ(628)は、逆変換を実行し、デコード残差データを生成するように構成される。デコード残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)によって適切に使用されることができる。例えば、インターエンコーダ(630)は、デコード残差データおよびインター予測情報に基づいて、デコードブロックを生成することができ、イントラエンコーダ(622)は、デコード残差データおよびイントラ予測情報に基づいて、デコードブロックを生成することができる。一部の例では、デコードブロックは、デコードピクチャを生成するように適切に処理され、デコードピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。
【0102】
エントロピーエンコーダ(625)は、エンコードブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC規格などの適切な規格に従って様々な情報をビットストリームに含ませるように構成される。一例では、エントロピーエンコーダ(625)は、統括制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含ませるように構成される。開示された主題によれば、インターモードまたは双予測モードのマージサブモードでブロックを符号化する場合、残差情報はないことに留意されたい。
【0103】
図7は、本開示の他の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、符号化ビデオシーケンスの一部である符号化ピクチャを受信し、符号化ピクチャをデコードして、再構築ピクチャを生成するように構成される。一例では、
図3の例におけるビデオデコーダ(310)の代わりにビデオデコーダ(710)を用いる。
【0104】
図7の例では、ビデオデコーダ(710)は、
図7に示されるように互いに結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構築モジュール(774)、およびイントラデコーダ(772)を含む。
【0105】
エントロピーデコーダ(771)は、符号化ピクチャから、符号化ピクチャを構成するシンタックス要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、後の2つのマージサブモードまたは他のサブモード)、それぞれイントラデコーダ(772)またはインターデコーダ(780)による予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形態での残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードであれば、インター予測情報は、インターデコーダ(780)に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ(772)に提供される。残差情報は、逆量子化を施されることができ、残差デコーダ(773)に提供される。
【0106】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0107】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0108】
残差デコーダ(773)は、逆量子化を実行することで、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)は、(量子化器パラメータ(QP)を含めるように)特定の制御情報をも必要とする場合があり、この情報は、エントロピーデコーダ(771)によって提供されてもよい(データパスは、低ボリューム制御情報のみであり得るため、示されていない)。
【0109】
再構築モジュール(774)は、空間領域において、残差デコーダ(773)によって出力される残差と、(場合によってはインターまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構築ビデオの一部となり得る再構築ピクチャの一部であり得る再構築ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができる。
【0110】
なお、ビデオエンコーダ(303)、(503)および(603)とビデオデコーダ(310)、(410)および(710)は、任意の適切な技術を用いて実現されることができる。一実施形態では、ビデオエンコーダ(303)、(503)および(603)とビデオデコーダ(310)、(410)および(710)は、1つ以上の集積回路を用いて実現されることができる。他の実施形態では、ビデオエンコーダ(303)、(503)および(503)とビデオデコーダ(310)、(410)および(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実現されることができる。
【0111】
II.インター予測手法
【0112】
各インター予測されたCUについて、動きベクトル、参照ピクチャインデックス、参照ピクチャリスト使用インデック、およびVVCの新たな符号化特徴に必要な付加情報を含む動きパラメータは、インター予測されたサンプル生成のために用いられる。動きパラメータは、明示的または暗黙的な方法でシグナリングされることができる。CUがスキップモードで符号化される場合、CUは、1つのPUに関連付けられ、顕著な残差係数、符号化された動きベクトルデルタ、又は参照ピクチャインデックスを有さない。CUがマージモードで符号化される場合、現在のCUのための動きパラメータは、空間的および時間的候補、およびVVCで導入された追加のスケジュールを含む隣接するCUから取得される。マージモードは、スキップモードで符号化されたCUを含む任意のインター予測されたCUに適用することができる。マージモードの代替手段は、動きパラメータの明示的な送信であり、ここでは、動きベクトル、各参照ピクチャリストの対応する参照ピクチャインデックス、参照ピクチャリストの使用フラグ、およびその他の必要な情報は、各CUに対して明示的にシグナリングされる。
【0113】
HEVCのインター符号化特徴に加えて、VTM3は、以下に列挙された複数の絞り込まれたインター予測符号化ツールを含む。
1)拡張マージ予測。
2)MVDを伴うマージモード(MMVD)。
3)アフィン動き補償予測。
4)サブブロックベースの時間的動きベクトル予測(SbTMVP)。
5)三角分割予測。
6)組み合わせられたインターとイントラ予測(CIIP)。
【0114】
本開示の以下の説明は、VVCで指定された各インター予測符号化ツールを説明する。
【0115】
1.拡張マージ予測モード
【0116】
一部の実施形態では、上述したマージ候補リストは拡張でき、拡張マージ候補リストはマージモードに使用できる。例えば、拡張マージ候補リストは、リスト上のマージ候補の最大許容サイズを条件として、次の5つのタイプのマージ候補を順番に含めることで構築できる。
1)空間的隣接符号化ユニット(CU)からの空間的動きベクトル予測子(MVP)。
2)コロケートCUからの時間的MVP。
3)履歴バッファからの履歴ベースのMVP。
4)ペアワイズ平均MVP。
5)ZeroMV。
【0117】
符号化ユニット(CU)という用語は、予測ブロック、またはピクチャから分割された符号化ブロックを指す場合がある。
【0118】
種々の実施形態では、拡張マージリストのサイズは、スライスヘッダ、タイルグループヘッダなどでシグナリングすることができる。一例では、拡張マージリストの最大許容サイズは6である。一部の実施形態では、マージモードで符号化されたCUについて、ベストマージ候補のインデックスは、切り捨てられた単項二値化(TU)を用いてエンコードされ得る。マージインデックスの第1のビンはコンテキスト符号化でき、他のビンはバイパス符号化で符号化できる。
【0119】
拡張マージ候補リスト上の異なるタイプのマージ候補の生成プロセスの実施形態について、以下に説明する。
【0120】
1.1 空間的候補導出
【0121】
一実施形態では、拡張マージリスト内の空間的マージ候補の導出は、HEVC内の空間的マージ候補の導出と同様である。
図8は、一実施形態による現在ブロック(810)の空間的マージ候補位置を示す。
図8に示される候補位置から、最大4つのマージ候補を選択して導出することができる。一例では、導出の順序は、A1、B1、B0、A0、B2であってよい。一例では、位置B2は、位置A1、B1、B0およびA0のいずれかのCUが利用可能でないかまたはイントラ符号化される場合にのみ考慮される。一例では、CUが別のスライスまたはタイルに属するため、位置のCUは利用可能でない場合がある。
【0122】
拡張候補リストに位置A1の候補が追加された後、他の候補の追加は、冗長性検査を受けられる。この冗長性検査により、同じ動き情報を有するマージ候補を拡張マージリストから除外することで、符号化効率を向上させることができる。計算複雑さを削減するために、一例では、冗長性検査では、全ての可能な候補ペアが考慮されるわけではない。代わりに、
図9の矢印でリンクされたペアのみが考慮される。一部の例では、
図9に示される対応物がマージリストにあり、且つ追加されるべき候補と同じまたは類似の動き情報を有する場合、候補はマージリストに追加されない。
【0123】
1.2 時間的候補導出
【0124】
一実施形態では、1つの時間的候補のみが拡張マージリストに追加される。
図10は、一実施形態による、現在ピクチャ(1001)における現在ブロック(1011)の時間的マージ候補(1031)を導出する例を示す。時間的マージ候補(1031)は、ピクチャ(1002)(コロケートピクチャと呼ぶ)内の現在ブロック(1011)のコロケートブロック(1012)の動きベクトル(1032)をスケーリングすることによって導出される。一例では、コロケートピクチャの参照ピクチャインデックスは、例えばスライスヘッダで明示的にシグナリングされる。一例では、時間的マージ候補(1031)の参照ピクチャインデックスが0に設定される。一実施形態では、スケーリング操作は、ピクチャオーダーカウント(POC)、Tb(1041)およびTd(1042)の距離に基づいて実行される。例えば、Tb(1041)は、現在ブロック(1011)の参照ピクチャ(1003)と現在ピクチャ(1001)との間のPOC距離として定義されるが、Td(1042)は、コロケートブロック(1012)の参照ピクチャ(1004)とコロケートピクチャ(1002)との間のPOC距離として定義される。
【0125】
図11は、一実施形態による、現在ブロック(1110)の時間的マージ候補を選択できる候補位置C1およびC0を示す。一実施形態では、まず、時間的マージ候補を導出するために、位置C0をチェックする。位置C0でのマージ候補が利用できない場合、イントラ符号化される場合またはCTUsの現在行の外にある場合、位置C1が用いられる。
【0126】
1.3 履歴ベースのマージ候補の導出
【0127】
一部の実施形態では、履歴ベースの動きベクトル予測(HMVP)マージ候補は、空間的および時間的候補MVPの後に、現在のCUの拡張マージリストに追加される。HMVPでは、予め符号化されたブロックの動き情報は、テーブル(または履歴バッファ)に記憶され、現在のCUのMVP候補として使用されることができる。このような動き情報は、HMVP候補と呼ぶ。複数のHMVP候補を有するテーブルは、エンコードまたはデコードプロセス中に維持できる。一例では、新しいCTU行になるとき、テーブルがリセット(空)され得る。一実施形態では、非サブブロックのインター符号化されたCUが存在するときはいつでも、関連する動き情報は、新しいHMVP候補としてテーブルの最後のエントリに追加されることができる。
【0128】
一実施形態では、Sで示されるHMVPテーブルのサイズは6に設定される。したがって、最大6つのHMVP候補は、テーブルに追加され得る。一実施形態では、テーブルに新しい動き候補が挿入される場合、制約付き先入れ先出し(FIFO)ルールが利用されることができる。さらに、新しいHMVP候補を追加するときに冗長性検査を適用して、テーブルに同じHMVPがあるか否かを確認することができる。テーブル内で同じHMVPが見つかった場合、同じHMVP候補をテーブルから削除し得、且つ削除されたHMVP候補に続く全てのHMVP候補を前方に移動する。その後、新しいHMVP候補をテーブルの最後に追加できる。
【0129】
一実施形態では、HMVP候補は、拡張マージ候補リスト構築プロセスにおいて使用される。一実施形態では、テーブルに新たに追加されたいくつかのHMVP候補を順番にチェックし、TMVP候補の後の位置で拡張候補リストに挿入することができる。HMVP候補が拡張マージリストに予め追加された空間的または時間的マージ候補と類似するかまたは同一であるかを判断するために、冗長性検査を適用し得る。
【0130】
一実施形態では、冗長性検査操作の数を減らすために、以下の簡略化が導入される。
(i)拡張マージリストの生成のために用いられるHMPV候補の数は、(N<=4)?M:(8-N)として設定され、ここで、Nは拡張マージリスト内の既存の候補の数を示し、Mは履歴テーブル内の利用可能なHMVP候補の数を示す。
(ii)拡張マージリスト内の利用可能なマージ候補の総数が、最大許容マージ候補の数から1を引いた数に達すると、HMVPからのマージ候補リスト構築プロセスが終了する。
【0131】
1.4 ペアワイズ平均マージ候補の導出
【0132】
一部の実施形態では、ペアワイズ平均候補は、現在マージ候補リスト内の事前定義された候補のペアを平均することによって生成することができる。例えば、一実施形態では、事前定義されたペアは、{(0、1)、(0、2)、(1、2)、(0、3)、(1、3)、(2、3)}として定義され、ここで、数字は、マージ候補リストへのマージインデックスを示す。例えば、平均化された動きベクトルは、参照ピクチャリストごとに個別に計算される。平均化されるべき両方の動きベクトルが1つのリストで利用可能である場合、これら2つの動きベクトルは、異なる参照ピクチャを指す場合でも平均化され得る。利用可能な動きベクトルが1つしかない場合、利用可能な動きベクトルを直接使用できる。利用可能な動きベクトルがない場合、それぞれのペアはスキップされ得る。
【0133】
1.5 ゼロ動きベクトル予測子
【0134】
一部の実施形態では、ペアワイズ平均マージ候補が追加された後に拡張マージリストが満杯でない場合、最大許容マージ候補数に達するまで、ゼロMVPsを拡張マージリストの最後に挿入する。
【0135】
2.動きベクトル差分を伴うマージモード(MMVD)
【0136】
一部の実施形態では、暗黙的に導出された動き情報が現在のCUの予測サンプル生成のために直接用いられるマージモードに加えて、動きベクトル差分を伴うマージモード(MMVD)が使用される。MMVDフラグをスキップフラグとマージフラグとを送信した直後にシグナリングして、MMVDモードがCUのために用いられるか否かを指定する。
【0137】
MMVDモードでは、マージ候補が選択された後、マージ候補がシグナリングされた動きベクトル差分(MVD)情報によってさらに絞り込まれ、絞り込まれた動き情報が取得される。MVD情報は、マージ候補フラグ、動き量を指定する距離インデックス、および動きの方向を示すインデックスを含む。
【0138】
マージリスト内の最初の2つの候補のうちの1つが選択され、MV基準(開始MV)として用いられる。マージ候補フラグは、どちらを用いるかを指定するようにシグナリングされる。
図12に示されるように、MV基準は、参照ピクチャリストL0またはL1内の参照ピクチャ(1202)または(1203)での開始点(1211)または(1221)をそれぞれ決定する。
【0139】
距離インデックスは、動き量情報を指定し、開始点(1211)または(1221)からの事前定義されたオフセットを示す。
図12に示されるように、オフセットは、位置(1211)または(1221)を指す開始MV(MV基準)の水平成分または垂直成分のいずれかに追加される。距離インデックスと事前定義されたオフセットのマッピング関係を表1に示す。
表1
【表1】
【0140】
方向インデックスは、開始点(1211)または(1221)に対するMVDの方向を表す。方向インデックスは、表2に示す4つの方向のうちの1つを表すことができる。
表2
【表2】
【0141】
なお、MVD符号の意味は、開始MVの情報に応じて変化することができる。開始MVが両方とも現在ピクチャの同じ側を指す片予測MVまたは双予測MVである場合(つまり、2つの参照のPOCsについて、両方とも現在ピクチャのPOCより大きいかまたは両方とも現在ピクチャのPOCよりも小さい)、表2の符号は、開始MVに追加されたMVオフセットの符号を指定する。開始MVは2つのMVが現在ピクチャの異なる側を指す双予測MVである場合(つまり、一方の参照のPOCは現在ピクチャのPOCよりも大きく、他方の参照のPOCは現在ピクチャのPOCよりも小さい)、表2の符号は、開始MVのL0MV成分に追加されたMVオフセットの符号を指定し、L1MVのための符号は、反対の値を有する。
【0142】
基準MV、オフセットおよびMVD符号に基づいて、現在のCUについて最終的なMVを決定できる。
【0143】
3.アフィン動き補償予測
【0144】
HEVCでは、動き補償予測(MCP)に適用できるのは並進動きモデルのみである。現実の世界では、ズームイン/アウト、回転、遠近法の動きおよびその他の不規則な動きを含むさまざまな種類の動きがある。VTM3では、ブロックベースのアフィン変換動き補償予測が適用される。
図13および
図14に示されるように、ブロックのアフィン動きフィールドは、2つの制御点動きベクトル(つまり、4パラメータ)または3つの制御点動きベクトル(つまり、6パラメータ)によって記述されることができる。
【0145】
一部の例では、現在ブロックがサブブロックに分割される。サブブロックでは、位置が選択され、選択された位置の動きベクトルは、サブブロックの動きベクトルフィールド(MVF)と呼ぶ。一例では、サブブロックはアフィン補償の最小単位である。サブブロックのMVFは、現在ブロックの制御点での動きベクトルに基づいて決定できる。
【0146】
図13は、本開示の一部の実施形態による、現在ブロックと、現在ブロックの2つの制御点CP0およびCP1との図を示す。
図13に示されるように、CP0は、現在ブロックの左上隅に位置する制御点であり、動きベクトルMV0=(mv
0x,mv
0y)を有し、CP1は、現在ブロックの右上隅に位置する制御点であり、動きベクトルMV1=(mv
1x,mv
1y)を有する。サブブロックについて選択された位置が(x,y)の場合((x,y)は現在ブロックの左上隅に対する相対的な位置である)、サブブロックのMVFは、MV=(mv
x,mv
y)であり、次の式を用いて計算できる。
【数1】
ただし、Wは、現在ブロックの幅と高さを示す(例えば、現在ブロックは正方形状を有する)。
【0147】
図14は、本開示の一部の実施形態による、現在ブロックと、現在ブロックの3つの制御点CP0、CP1およびCP2の図を示す。
図14に示されるように、CP0は、現在ブロックの左上隅に位置する制御点であり、動きベクトルMV0=(mv
0x,mv
0y)を有し、CP1は、現在ブロックの右上隅に位置する制御点であり、動きベクトルMV1=(mv
1x,mv
1y)を有し、CP2は、現在ブロックの右下隅に位置する制御点であり、動きベクトルMV2=(mv
2x,mv
2y)を有する。サブブロックについて選択された位置が(x,y)の場合((x,y)は現在ブロックの左上隅に対する相対的な位置である)、サブブロックのMVFは、MV=(mv
x,mv
y)であり、(式2)を用いて計算できる。
【数2】
ただし、Wは現在ブロックの幅を示し、Hと高さは現在ブロックの高さを示す。
【0148】
動き補償予測を簡略化するために、ブロックベースのアフィン変換予測を適用できる。各4×4ルマサブブロックの動きベクトルを導出するために、
図15に示されるように、各サブブロックの中央サンプルの動きベクトルは、上記の式に従って計算され、1/16の分数精度に丸められる。次に、動き補償補間フィルタを適用して、導出された動きベクトルを有する各サブブロックの予測を生成することができる。クロマ成分のサブブロックのサイズも4×4に設定できる。4×4クロマサブブロックのMVは、4つの対応する4×4ルマサブブロックのMVの平均として計算できる。
【0149】
本開示の一態様によれば、複数の隣接するアフィン符号化ブロックからのモデルベースのアフィン予測、または、複数の隣接するMVからの複数の制御点ベースのアフィン予測のいずれかを用いて、現在ブロックに対するアフィン予測子を生成するために、様々な手法を用いることができる。
【0150】
3.1 アフィンマージ予測
【0151】
一部の実施形態によれば、AF_MERGEモードは、幅および高さの両方が8以上であるCUに適用され得る。このモードでは、現在のCUの制御点動きベクトル(CPMV)は、空間的に隣接するCUの動き情報に基づいて生成され得る。最大5つの制御点動きベクトル予測子(CPMVP)候補が存在する可能性があり、現在のCUに使用されるべきCPMVPを示すように、インデックスがシグナリングされ得る。
【0152】
一部の実施形態では、以下の3つのタイプのCPMV候補は、アフィンマージ候補リストを形成するために用いられる。
(i)隣接CUのCPMVから外挿される、継承されたアフィンマージ候補、
(ii)隣接CUの並進MVを用いて導出される、構築されたアフィンマージ候補CPMVPs、および
(iii)ゼロMV。
【0153】
一部の実施形態によれば、VTM3には最大で2つの継承されたアフィン候補があり得、これらは、隣接ブロックのアフィン動きモデルから導出され得る。これらの2つの継承された候補は、左側の隣接するCUからの1つと、上記隣接するCUからの1つを含み得る。一例として、候補ブロックは、
図8に示される候補ブロックであり得る。左側の予測子について、スキャン順序は、A0→A1であり得、上記予測子について、スキャン順序はB0→B1→B2であり得る。一部の実施形態では、各側から最初に継承された候補のみが選択され、2つの継承された候補の間で刈り取り検査が実行されない。隣接するアフィンCUが識別されると、このCUの制御点動きベクトルを用いて、現在のCUのアフィンマージリストでCPMVP候補を導出することができる。
図16は、現在ブロック1600を示し、隣接する左下のブロックAがアフィンモードで符号化される場合、ブロックAを含むCU1602の左上隅、右上隅および左下隅の動きベクトルv
2、v
3およびv
4が達成される。ブロックAが4パラメータアフィンモデルで符号化される場合、現在のCUの2つのCPMVは、v
2およびv
3に従って計算できる。ブロックAが6パラメータアフィンモデルで符号化される場合、現在のCUの3つのCPMVは、v
2、v
3およびv
4に従って計算できる。
【0154】
一部の実施形態によれば、構築されたアフィン候補は、各制御点の隣接する並進動き情報を組み合わせることによって構築され得る。
図17に示されるように、制御点の動き情報は、現在ブロック1700の指定された空間的隣接要素および時間的隣接要素(つまり、「T」)から導出され得る。CPMV
k(k=1、2、3、4)は、k番目の制御点を表し得る。CPMV
1について、B2→B3→A2ブロックをチェックし得、最初に利用可能なブロックのMVを使用し得る。CPMV
2について、B1→B0ブロックを検査し得、CPMV
3について、A1→A0ブロックをチェックし得る。TMVPが利用可能な場合、TMVPはCPMV
4として使用し得る。
【0155】
一部の実施形態では、4つの制御点のMVが達成された後、これらの制御点の動き情報に基づいてアフィンマージ候補が構築され得る。制御点MVの次の組み合わせ例は、ブロックを構築するために使用され得る。{CPMV1、CPMV2、CPMV3}、{CPMV1、CPMV2、CPMV4}、{CPMV1、CPMV3、CPMV4}、{CPMV2、CPMV3、CPMV4}、{CPMV1、CPMV2}および{CPMV1、CPMV3}
【0156】
3つのCPMVの組み合わせは、6パラメータアフィンマージ候補を構築し、2つのCPMVの組み合わせは、4パラメータアフィンマージ候補を構築する。一部の実施形態では、動きスケーリングプロセスを回避するために、制御点の参照インデックスが異なる場合、制御点MVの関連する組み合わせは破棄される。
【0157】
継承されたアフィンマージ候補と構築されたアフィンマージ候補とがチェックされた後、リストがまだ満杯でない場合は、ゼロMVがリストの最後に挿入され得る。
【0158】
3.2 アフィンAMVP予測
【0159】
一部の実施形態では、アフィンAMVPモードは、幅および高さの両方が16以上であるCUに適用できる。CUレベルでのアフィンフラグをビットストリームでシグナリングしてアフィンAMVPモードが使用されるか否かを示し、次に、別のフラグをシグナリングして4パラメータアフィンまたは6パラメータアフィンが使用されるか否かを示す。現在のCUのCPMVとそれらの予測子の差は、ビットストリームでシグナリングされる。アフィンAVMP候補リストのサイズは2であり得、次の4つのタイプのCPVM候補を順番に用いて生成され得る。
(i)隣接CUのCPMVから外挿される、継承されたアフィンAVMP候補、
(ii)隣接CUの並進MVを用いて導出される、構築されたアフィンAVMP候補、
(iii)隣接するCUからの並進MV、および
(iv)ゼロMV。
【0160】
一例では、継承されたアフィンAMVP候補のチェック順序は、継承されたアフィンマージ候補のチェック順序と同様である。差は、AVMP候補の場合、現在ブロックと同じ参照ピクチャを有するアフィンCUが考慮されることである。一部の実施形態では、継承されたアフィン動き予測子を候補リストに挿入するときに、刈り取りプロセスが適用されない。
【0161】
構築されたAMVP候補は、
図17に示される指定された空間的隣接要素から導出される。アフィンマージ候補の構築と同じチェック順序が利用される。さらに、隣接ブロックの参照ピクチャインデックスもチェックされる。インター符号化され、且つ現在のCUと同じ参照ピクチャを有するチェック順序での第1のブロックが使用される。現在のCUが4パラメータアフィンモデルで符号化され、且つCPMV0とCPMV1の両方が利用可能である場合、利用可能なCPMVが1つの候補としてアフィンAMVPリストに追加される。現在のCUが6パラメータアフィンモードで符号化され、且つ3つのCPMV(CPMV0、CPMV1およびCPMV2)が全て利用可能な場合、利用可能なCPMVが1つの候補としてアフィンAMVPリストに追加される。それ以外の場合、構築されたAMVP候補は利用不可として設定される。
【0162】
継承されたアフィンAMVP候補と構築されたAMVP候補がチェックされた後、アフィンAMVPリスト候補がまだ2未満の場合、利用可能なときに、制御点に隣接する並進動きベクトルが追加されて現在のCUの全ての制御点MVが予測される。最後に、ゼロMVは、アフィンAMVPリストがまだ満杯でない場合、アフィンAMVPリストを埋めるために用いられる。
【0163】
4.サブブロックベースの時間的動きベクトル予測子(SbTMVP)
【0164】
一部の実施形態によれば、HEVCの時間的動きベクトル予測(TMVP)と同様に、VTMによってサポートされているサブブロックベースの時間的動きベクトル予測(SbTMVP)方法は、コロケートピクチャでの動きフィールドを用いて、現在ピクチャでのCUのための動きベクトル予測とマージモードを改善することができる。TMVPで使用されるのと同じコロケートピクチャがSbTVMPに使用され得る。SbTMVPは、以下の2つの主な点でTMVPとは異なる。(1)TMVPはCUレベルで動きを予測するが、SbTMVPはサブCUレベルで動きを予測する。(2)TMVPは、コロケートピクチャにおけるコロケートブロックから時間的動きベクトルをフェッチし(コロケートブロックは、現在のCUに対して右下または中央のブロックである)、SbTMVPは、コロケートピクチャから時間的動き情報をフェッチする前に動きシフトを適用し、動きシフトは、現在のCUの空間的隣接ブロックの1つからの動きベクトルから取得される。
【0165】
SbTVMPプロセスは、
図18および
図19に示される。一部の実施形態では、SbTMVPは、2つのステップで現在のCU内のサブCUの動きベクトルを予測する。第1のステップでは、
図18に示されるように、現在ブロック(1800)の空間的隣接要素は、Al、B1、B0およびA0の順序で調べられる。コロケートピクチャを参照ピクチャとして用いる動きベクトルを有する第1の利用可能な空間的隣接ブロックが識別されると、この動きベクトルが、適用されるべき動きシフトとして選択される。そのような動きベクトルが空間的隣接要素から識別されない場合、動きシフトは(0、0)に設定される。
【0166】
第2のステップでは、
図19に示されるように、第1のステップで識別された動きシフトは、コロケートピクチャからサブCUレベルの動き情報(例えば、動きベクトルおよび参照インデックス)を取得するために適用される(つまり、現在ブロックの座標に追加される)。
図19の例は、動きシフト(1949)が空間的隣接ブロックAl(1943)の動きベクトルに設定されると仮定する。次に、現在ピクチャ(1941)の現在ブロック(1942)内の現在のサブCU(例えば、サブCU(1944))について、コロケートピクチャ(1951)のコロケートブロック(1952)内の対応するコロケートサブCU(例えば、コロケートサブCU(1954))の動き情報は、現在のサブCUの動き情報を導出するために用いられる。対応するコロケートサブCU(例えば、コロケートサブCU(1954))の動き情報は、HEVCのTMVPプロセスと同様の方法で、現在のサブCU(例えば、サブCU(1944))の動きベクトルと参照インデックスに変換され、時間的モーションスケーリングは、時間的動きベクトルの参照ピクチャを現在のCUの参照ピクチャに整合するために適用される。
【0167】
一部の実施形態によれば、SbTVMP候補とアフィンマージ候補の両方を含む組み合わせられたサブブロックベースのマージリストは、サブブロックベースのマージモードで用いることができる。SbTVMPモードは、シーケンスパラメータセット(SPS)フラグによって有効/無効化される。SbTMVPモードが有効になる場合、SbTMVP予測子は、サブブロックベースのマージリストの第1のエントリとして追加され、その後にアフィンマージ候補が続く。一部の応用では、サブブロックベースのマージリストの最大許容サイズは5である。SbTMVPで使用されるサブCUのサイズは、例えば、8×8に固定される。アフィンマージモードの場合と同様に、SbTMVPモードは、幅と高さの両方が8以上の場合にのみCUに適用できる。
【0168】
追加のSbTMVPマージ候補のエンコードロジックは、他のマージ候補のエンコードロジックと同じである。つまり、PまたはBスライス内の各CUについて、追加のレート歪み(RD)チェックは、SbTMVP候補を用いるか否かを決定するために実行される。
【0169】
5.三角予測
【0170】
一部の実施形態では、三角予測モード(TPM)をインター予測に用いることができる。一実施形態では、TPMは、サイズが8×8サンプル以上であり、かつスキップまたはマージモードで符号化されるCUに適用される。一実施形態では、これらの条件を満たす(サイズが8×8サンプル以上であり、かつスキップまたはマージモードで符号化される)CUの場合、TPMが適用されるか否かを示すようにCUレベルのフラグがシグナリングされる。
【0171】
図20に示されるように、TPMが使用される場合、一部の実施形態では、CUは、対角分割または反対角分割のいずれかを用いて、2つの三角形状のパーティションに均等にスプリットされる。
図20では、第1のCU(2010)は、左上隅から右下隅にスプリットされて、2つの三角予測ユニットPU1とPU2が得られる。第2のCU(2020)は、右上隅から左下隅にスプリットされて、2つの三角予測ユニットPU1とPU2が得られる。CU(2010)または(2020)の各三角予測ユニットPU1またはPU2は、独自の動き情報を用いてインター予測される。一部の実施形態では、各三角予測ユニットに対して片予測のみが許容される。したがって、各三角予測ユニットは、1つの動きベクトルおよび1つの参照ピクチャインデックスを有する。片予測動き制約を適用して、従来の双予測方法と同様に、各CUに対して2つ以下の動き補正予測が実行されることを確保することができる。これにより、処理の複雑さを削減することができる。各三角予測ユニットの片予測動き情報は、片予測マージ候補リストから導出できる。一部の他の実施形態では、各三角予測ユニットに対して双予測が許容される。したがって、各三角予測ユニットの双予測動き情報は、双予測マージ候補リストから導出できる。
【0172】
一部の実施形態では、CUレベルフラグが、現在のCUがTPMを用いて符号化されることを示す場合、三角分割インデックスと呼ぶインデックスがさらにシグナリングされる。例えば、三角分割インデックスは、[0、39]の範囲内の値を有する。この三角分割インデックスを用いて、三角分割の方向(対角または反対角)、および各分割の動き情報(例えば、それぞれの片予測候補リストへのマージインデックス(またはTPMインデックスと呼ぶ))は、デコーダ側のルックアップテーブルから取得されることができる。得られた動き情報に基づいて三角予測ユニットのそれぞれを予測した後、一実施形態では、現在のCUの対角または反対角エッジに沿ったサンプル値は、適応重みを用いてブレンディングプロセスを実行することによって調整される。ブレンディングプロセスの結果として、CU全体の予測信号を取得できる。その後、変換および量子化プロセスは、他の予測モードと同様の方法でCU全体に適用できる。最後に、三角分割モードを用いて予測されたCUの動きフィールドは、例えば、CUから分割された4×4ユニットのセットに動き情報を記憶することによって作成されることができる。動きフィールドは、例えば、後続の動きベクトル予測プロセスで用いられ、マージ候補リストを構築することができる。
【0173】
5.1 片予測候補リストの構築
【0174】
一部の実施形態では、TPMで処理された符号化ブロックの2つの三角予測ユニットを予測するためのマージ候補リストは、符号化ブロックの空間的および時間的隣接ブロックのセットに基づいて構築されることができる。このようなマージ候補リストは、TPM候補がここにリストされているTPM候補リストと呼ぶことがある。一実施形態では、マージ候補リストは、片予測候補リストである。一実施形態では、片予測候補リストは、5つの片予測動きベクトル候補を含む。例えば、5つの片予測動きベクトル候補は、5つの空間的隣接ブロック(
図21において1~5の番号でラベル付けされている)および2つの時間的コロケートブロック(
図21において6~7の番号でラベル付けされている)を含む7つの隣接ブロックから導出される。
【0175】
一例では、7つの隣接ブロックの動きベクトルを収集し、且つ次の順序に従って片予測候補リストに入れる。まず、片予測された隣接ブロックの動きベクトル。次に、双予測された隣接ブロックについて、L0動きベクトル(つまり、双予測MVのL0動きベクトル部分)、L1動きベクトル(つまり、双予測MVのL1動きベクトル部分)、および双予測MVのL0とL1動きベクトルの平均動きベクトル。一例では、候補の数が5未満の場合、ゼロ動きベクトルがリストの最後に追加される。一部の他の実施形態では、マージ候補リストは、
図14に示されるものと同じまたは異なる候補位置から選択される5つ未満または5つを超える片予測または双予測マージ候補を含み得る。
【0176】
5.2 ルックアップテーブルおよびテーブルインデックス
【0177】
一実施形態では、CUは、5つのTPM候補を含むTPM(またはマージ)候補リストを有する三角分割モードで符号化される。したがって、各三角PUのために5つのマージ候補が使用される場合、CUを予測するための40個の可能な方法がある。つまり、スプリット方向とマージ(またはTPM)インデックスとの40個の異なる組み合わがある。2(可能なスプリット方向)×(5(第1の三角予測ユニットの可能なマージインデックス)×5(第2の三角予測ユニットの可能なマージインデックス)-5(第1と第2の予測ユニットのペアが同じマージインデックスを共有する場合の多くの可能性))。例えば、2つの三角予測ユニットに対して同じマージインデックスが決定される場合、CUを、三角予測モードの代わりに通常のマージモードを用いて処理することができる。
【0178】
したがって、一実施形態では、[0、39]の範囲の三角パーティションインデックスを用いて、ルックアップテーブルに基づいて40個の組み合わせのうちのどれが使用されるかを表すことができる。
図22は、スプリット方向とマージインデックスを三角パーティションインデックスに基づいて導出するために用いられるルックアップテーブル(2200)の一例を示す。ルックアップテーブル(2200)に示されるように、第1の行(2201)は、0~39の範囲内の三角パーティションインデックスを含む。第2の行(2202)は、0または1で表される可能なスプリット方向を含む。第3の行(2203)は、第1の三角予測ユニットに対応する、0~4の範囲内の可能な第1のマージインデックスを含む。第4の行2204は、第2の三角予測ユニットに対応する、0~4の範囲内の可能な第2のマージインデックスを含む。
【0179】
例えば、値が1の三角パーティションインデックスがデコーダで受信される場合、ルックアップテーブル(2200)の列(2220)に基づいて、スプリット方向は値1によって表されるパーティション方向であり、第1および第2のマージインデックスはそれぞれ0および1であると決定することができる。三角パーティションインデックスがルックアップテーブルに関連付けられるため、この開示では、三角パーティションインデックスはテーブルインデックスとも呼ぶ。
【0180】
5.3 三角パーティションエッジに沿ったブレンディング
【0181】
一実施形態では、それぞれの動き情報を用いて各三角予測ユニットを予測した後、ブレンディングプロセスを2つの三角予測ユニットの2つの予測信号に適用して、対角または反対角エッジの周りのサンプルを導出する。ブレンディングプロセスは、2つの三角予測ユニット間の動きベクトル差分に応じて、2つのグループの重み係数の間に適応的に選択する。一実施形態では、2つの重み係数グループは以下の通りである。
(1)第1の重み係数グループとして、ルマ成分のサンプルについての{7/8、6/8、4/8、2/8、1/8}とクロマ成分のサンプルについての{7/8、4/8、1/8}。
(2)第2の重み係数グループとして、ルマ成分のサンプルについての{7/8、6/8、5/8、4/8、3/8、2/8、1/8}とクロマ成分のサンプルについての{6/8、4/8、2/8}。
第2の重み係数グループは、より多くのルマ重み係数を有し、より多くのルマサンプルを、パーティションエッジに沿ってブレンディングする。
【0182】
一実施形態では、以下の条件を用いて、2つの重み係数グループのうちの1つを選択する。2つの三角パーティションの参照ピクチャが互いに異なる場合、または2つの三角パーティション間の動きベクトル差分が閾値(例えば、16個のルマサンプル)よりも大きい場合、第2の重み係数グループが選択される。そうでない場合、第1の重み係数グループが選択される。
【0183】
図23は、第1の重み係数グループを適用するCUの例を示す。示されるように、第1の符号化ブロック(2301)は、ルマサンプルを含み、第2の符号化ブロック(2302)は、クロマサンプルを含む。符号化ブロック(2301)または(2302)における対角エッジに沿った画素のセットは、重み係数7/8、6/8、4/8、2/8および1/8にそれぞれ対応する番号1、2、4、6および7でラベル付けされる。例えば、番号2がラベル付けされた画素について、レンディング操作後の画素のサンプル値は、ブレンディングされたサンプル値=2/8×P1+6/8×P2に従って取得されることができる。
ただし、P1、P2は、それぞれの画素でのサンプル値を示すが、それぞれ第1の三角予測ユニットおよび第2の三角予測ユニットの予測に属する。
【0184】
6.組み合わせられたインターとイントラ予測(CIIP)
【0185】
VTM3では、マージモードでCUが符号化される場合、且つCUが少なくとも64個のルマサンプル(つまり、CUの高さとCUの幅の積は64以上である)を含む場合、組み合わせられたインター/イントラ予測(CIIP)モードが現在のCUに適用されるか否かを示すように追加のフラグがシグナリングされる。
【0186】
CIIP予測を形成するために、まず、2つの追加のシンタックス要素からイントラ予測モードを導出する。最大4つの可能なイントラ予測モード(DC、平面、水平または垂直)を使用できる。次に、インター予測およびイントラ予測信号を、通常のイントラおよびインターデコードプロセスを用いて導出することができる。最後に、インターとイントラ予測信号の加重平均を実行してCIIP予測を取得することができる。
【0187】
6.1 イントラ予測モード導出
【0188】
一実施形態では、DC、平面、水平および垂直モードを含む最大4つのイントラ予測モードを用いて、CIIPモードでのルマ成分を予測することができる。CU形状が非常に広い場合(つまり、幅が高さの2倍を超える場合)、水平モードが許容されない。CU形状が非常に狭い場合(つまり、高さが幅の2倍を超える場合)、垂直モードが許容されない。これらの場合、3つのイントラ予測モードのみが許容される。
【0189】
CIIPモードは、イントラ予測に3つの最も可能性の高いモード(MPM)を用いる。CIIP MPM候補リストは次のように形成される。
(i)左側と上部の隣接ブロックは、それぞれAとBとして設定される。
(ii)それぞれintraModeAとintraModeBとして示されるブロックAとブロックBのイントラ予測モードは、次のように導出される。
a.XをAまたはBとし、
b.1)ブロックXが利用可能でない場合、または2)ブロックXがCIIPモードまたはイントラモードを用いて予測されない場合、または3)ブロックXが現在のCTUの外にある場合、intraModeXはDCに設定され、
c.それ以外の場合、intraModeXは、1)ブロックXのイントラ予測モードがdcまたは平面の場合にdcまたは平面に設定され、または2)ブロックXのイントラ予測モードが「垂直のような」角度モード(例えば、34より大きい)の場合に垂直に設定され、または3)ブロックXのイントラ予測モードが「水平のような」角度モード(例えば、34以下)の場合、水平に設定される。
(iii)intraModeAとintraModeBが同じである場合、
a.intraModeAが平面またはdcの場合、3つのMPMはこの順序で{平面、dc、垂直}に設定され、
b.それ以外の場合、3つのMPMはこの順序で{intraModeA、平面、dc}に設定される。
(iv)それ以外の場合(つまり、intraModeAとintraModeBが異なる)、
a.最初の2つのMPMは、この順序で{intraModeA、intraModeB}に設定され、
b.平面、dc、及び垂直の一意性は、最初の2つのMPM候補モードに対してこの順序でチェックされ、一意のモードが見つかるとすぐに、第3のMPMとして追加される。
【0190】
上記のようにCU形状が非常に広いかまたは非常に狭い場合、MPMフラグはシグナリングなしで1であると推測される。それ以外の場合は、MPMフラグは、CIIPイントラ予測モードがCIIP MPM候補モードの1つであるか否かを示すようにシグナリングされる。
【0191】
MPMフラグが1の場合、MPMインデックスはさらに、MPM候補モードのどれがCIIPイントラ予測で使用されるかを示すようにシグナリングされる。それ以外の場合、MPMフラグが0の場合、イントラ予測モードは、MPM候補リストにおいて「欠落」モードに設定される。例えば、平面モードがMPM候補リストにない場合、平面は欠落モードであり、イントラ予測モードは平面に設定される。CIIPでは4つの可能なイントラ予測モードが許容され、且つMPM候補リストが3つのイントラ予測モードのみを含むため、4つの可能なモードの1つが欠落モードであり得る。
【0192】
クロマ成分について、DMモードは追加のシグナリングなしで適用される。例えば、クロマはルマと同じ予測モードを用いる。
【0193】
CIIP符号化されたCUのイントラ予測モードが保存され、将来の隣接CUのイントラモード符号化で使用される。
【0194】
6.2 インターとイントラ予測信号の組み合わせ
【0195】
CIIPモードPinterでのインター予測信号は、通常のマージモードに適用されるのと同じインター予測プロセスを用いて導出され得る。イントラ予測信号Pintraは、通常のイントラ予測プロセスに続くCIIPイントラ予測モードを用いて導出され得る。次に、イントラとインター予測信号は、加重平均を用いて組み合わせてよく、重み値は、イントラ予測モードに依存し、サンプルは、符号化ブロック内にある。
【0196】
例えば、イントラ予測モードがDCまたは平面モードの場合、またはブロックの幅または高さが4より小さい場合、等しい重みがイントラ予測とインター予測信号に適用される。
【0197】
それ以外の場合、重みは、イントラ予測モード(この場合は水平モードまたは垂直モード)とブロックにおけるサンプル位置に基づいて決定される。水平予測モード(垂直モードの重みが同様に導出されるが、直交方向に導出される)では、Wはブロックの幅、Hはブロックの高さである。符号化ブロックは、最初に、それぞれの寸法が(W/4)×Hの4つの等面積部分にスプリットされる。イントラ予測参照サンプルに最も近い部分から開始し、イントラ予測参照サンプルから最も遠い部分で終わり、4つの領域のそれぞれの重みwtは、それぞれ6、5、3および2に設定される。最終的なCIIP予測信号は、次の式を用いて導出されることができる。
【数3】
【0198】
7.織り込みアフィン予測
【0199】
一部の実施形態では、織り込みアフィン予測が使用される。例えば、
図24に示されるように、16×16サンプルのサイズを有する現在ブロック(2410)は、パターン0(2420)とパターン1(2430)の2つの異なる分割パターンを有するサブブロックに分割される。パターン0(2420)に関して、現在ブロック(2410)は、4×4の等しいサイズを有するサブブロック(2421)に分割される。対照的に、パターン1(2430)は、現在ブロック(2410)の右下隅に向かって、パターン0(2420)に対して2×2のオフセットだけシフトされる。パターン1(2430)に関して、現在ブロック(2410)は、それぞれが4×4のサイズを有する全体のサブブロック(2431)と、それぞれが4×4のサイズよりも小さいサイズを有する部分的なサブブロック(2432)とに分割される。
図24において、部分的なサブブロック(2432)は、全体のサブブロック(2431)によって形成された影付きでない領域を囲む影付き領域を形成する。
【0200】
続いて、2つの分割パターン(2420)と(2430)に対応する2つの補助予測P0(2440)とP1(2450)は、アフィン動き補償(AMC)によって生成される。例えば、サブブロックベースのマージ候補リスト上のアフィンマージ候補からアフィンモデルを決定することができる。パターン0(2420)および(2430)から分割された各サブブロックのMVは、アフィンモデルに基づいて導出できる。例えば、各MVは、それぞれのサブブロックの中央位置から開始できる。
【0201】
その後、最終的な予測(2470)は、2つの予測P0(2440)およびP1(2450)を組み合わせることによって計算される。例えば、加重平均演算(2461)を実行して、次の式に従って、2つの予測P0(2440)およびP1(2450)での2つの対応するサンプル(P
0およびP
1で示される)の加重平均を画素ごとに計算できる。
【数4】
ただし、ω
0とω
1は、それぞれ2つの予測P0(2240)とP1(2250)でのコロケートサンプルのペアに対応する重みである。
【0202】
一実施形態では、加重平均演算(2461)での各サンプルの重みは、
図25に示されるパターン(2500)に従って決定できる。パターン(2500)は、サブブロック2510(例えば、全体のサブブロック(2421)または(2431))に含まれる16個のサンプルを含む。サブブロック(2510)の中央に位置する予測サンプルは、重み値3に関連付けられるが、サブブロック(2510)の境界に位置する予測サンプルは、重み値1に関連付けられる。サブブロック(2421)または(2431)内のサンプルの位置に応じて、サンプルに対応する重みは、パターン(2500)に基づいて決定できる。
【0203】
一実施形態では、小さなブロック動き補償を回避するために、織り込み予測は、
図24に示されるように、2つの分割パターンの両方についてサブブロックのサイズが4×4である領域にのみ適用される。例えば、パターン1(2430)の影付き領域では、織り込み予測が適用されず、パターン1(2430)の影付きでない領域では、織り込み予測が適用される。
【0204】
一実施形態では、織り込み予測は、クロマ成分およびルマ成分に適用され得る。さらに、全てのサブブロックのAMCに使用される参照ピクチャの領域が全体として一緒にフェッチされるため、メモリアクセス帯域幅は織り込み予測によって増加されない。したがって、追加の読み取り操作は必要でない。
【0205】
さらに、柔軟性のために、フラグをスライスヘッダでシグナリングして織り込み予測が使用されるか否かを示す。一例では、フラグは常に1にシグナリングされる。様々な実施形態では、織り込みアフィン予測を、片予測されたアフィンブロック、または片予測および双予測の両方がなされたアフィンブロックに適用できる。
【0206】
8.VVCでのインター予測関連のシグナリング
【0207】
8.1 インター予測関連のシンタックス要素
【0208】
表4は、VVCのCUレベルでのインター予測関連のシンタックス要素の一例を示す。アレイインデックスx0およびy0は、ピクチャの左上のルマサンプルに対する現在の符号化ブロックの左上のルマサンプルの位置(x0,y0)を指定する。
【0209】
表4では、cbWidthとcbHeightは、それぞれ現在の符号化ブロックのルマサンプルの幅と高さを示す。
表4 インター予測関連のシンタックス要素
【表3】
【0210】
8.2 CUレベルでのインター予測関連のセマンティクス
【0211】
表5は、CUレベルでのインター予測関連のセマンティクスを示す。具体的には、inter_pred_idc[x0][y0]は、表5に従って、list0、list1またはbi-predictionが現在の符号化ユニットに使用されるか否かを指定する。表4でのアレイインデックスx0およびy0は、ピクチャの左上のルマサンプルに対する現在の符号化ブロックの左上のルマサンプルの位置(x0,y0)を指定する。
表5 インター予測関連のセマンティクス
【表4】
inter_pred_idc[x0][y0]が存在しない場合、PRED_L0と等しいと推測される。
【0212】
シンタックス要素inter_pred_idcの二値化は、以下の表6に指定される。
表6 inter pred idcの二値化
【表5】
【0213】
表4では、ref_idx_10[x0][y0]は、現在の符号化ユニットのリスト0の参照ピクチャインデックスを指定する。アレイインデックスx0およびy0は、ピクチャの左上のルマサンプルに対する現在の符号化ブロックの左上のルマサンプルの位置(x0,y0)を指定する。ref_idx_10[x0][y0]が存在しない場合、0に等しいと推測される。一実施形態では、ビットストリーム適合性は、現在のデコードされたピクチャが現在の符号化ブロックの参照ピクチャである場合、inter_pred_idc[x0][y0]が0に等しいことを必要とし得る。
【0214】
9.小サブブロックのサイズを有するアフィン予測
【0215】
上述したように、各4×4サブブロックにアフィンインター予測を適用することができ、各サブブロックは、CPMVに由来する自身のMVを有する。アフィンインター予測を用いてブロックが予測される場合、通常のインター予測は、CPMVから導出されたサブブロックのMVを用いてサブブロックに適用され得る。縮小されたサブブロックのサイズを用いることにより、符号化効率はさらに向上し得る。本開示は、ビデオコーデックのアフィンインター予測プロセスのサブブロックのサイズを変更することを説明する。
【0216】
一実施形態では、アフィンインター予測におけるサブブロックのサイズは、4×4サンプルとして設定される。しかしながら、動き補償のためのサブブロックのサイズは、より小さな矩形に設定され得、サブブロックの幅は、
図26に示されるように、サブブロックの高さよりも大きく、例えば4×2である。
図26では、現在ブロック(2600)は、左上のサブブロック(2610)を含む16個の4×4サブブロックに分割される。アフィンインター予測は、各4×4サブブロックに適用できる。一実施形態では、サブブロックのサイズを4×2サンプルに減らすことができる。例えば、現在ブロック(2620)を、左上のサブブロック(2630)を含む32個の4×2サブブロックに分割できる。アフィンインター予測を、現在ブロック(2620)の各4×2サブブロックに適用できる。
【0217】
小/縮小サブブロックのサイズは4×2サンプルに限定されず、2×4、4×1、1×4、2×1または1×2などの他のサイズをも設定し、且つ動き補償に用いることができる。
【0218】
一実施形態では、4×2サンプルなどの小サブブロックのサイズが使用される場合、補間に使用されるサブブロックの動きベクトルは、本開示のセクション3に開示されたのと同様の方法でCPMVから導出され得る。例えば、補間に使用される小サブブロック(2630)の動きベクトルは、式1または式2を用いて現在ブロック(2620)のCPMVから導出され得る。具体的には、現在ブロック(2620)内の各小サブブロックの中央サンプルの動きベクトルは、式1または式2を用いて導出されてもよく、且つ1/16の分数精度に丸められてもよい。動き補償補間フィルタを適用して、導出された動きベクトルを用いて各小サブブロックの予測を生成することができる。
【0219】
一実施形態では、現在ブロック内の各4×4サブブロックのサブブロック動きベクトルを記憶するために、現在ブロック内の各4×4サブブロックの動きベクトルを導出し、各4×4サブブロックのサブブロック動きベクトルとして記憶することができる。記憶された4×4ブロックの動きベクトルは、隣接ブロックのマージモードに使用され得る。エンコーダとデコーダは、動き補償を実行しながら、各小サブブロックの動きベクトルを導出することができる。
【0220】
一実施形態では、現在ブロック内の各4×4サブブロックのサブブロック動きベクトルを記憶するために、各4×4ブロック内の左上の小サブブロックの動きベクトルを記憶し、各4×4ブロックの動きベクトルとして用いる。左上の小サブブロックは、左上のサンプルを含む小サブブロックを指し得る。記憶された4×4ブロックの動きベクトルは、隣接ブロックのマージモードに使用され得る。エンコーダとデコーダは、動き補償を実行しながら、各小サブブロックの動きベクトルを導出することができる。
【0221】
一実施形態では、現在ブロック内の各4×4サブブロックのサブブロック動きベクトルを記憶するために、各4×4ブロック内の右下の小サブブロックの動きベクトルを記憶し、各4×4ブロックの動きベクトルとして用いる。右下の小サブブロックは、右下のサンプルを含む小サブブロックを指し得る。記憶された4×4ブロックの動きベクトルは、隣接ブロックのマージモードに使用され得る。エンコーダとデコーダは、動き補償を実行しながら、各小サブブロックの動きベクトルを導出することができる。
【0222】
一実施形態では、現在ブロック内の各4×4サブブロックのサブブロック動きベクトルを記憶するために、各4×4ブロックの中央での小サブブロックの動きベクトルを記憶し、各4×4ブロックの動きベクトルとして用いる。一例では、各4×4ブロックの中央での小サブブロックは、4×4ブロック内の(2,2)位置でのサンプルを含む。他の例では、小サブブロックは、4×4ブロックの(2,2)位置の近傍のサンプルを含み得る。記憶された4×4ブロックの動きベクトルは、隣接ブロックのマージモードに使用され得る。エンコーダとデコーダは、動き補償を実行しながら、各小サブブロックの動きベクトルを導出することができる。
【0223】
アフィンモードに小サブブロックを用いる場合、クロマMVは、コロケートルマブロックに基づいて導出され得る。一実施形態では、クロマサブブロックは、コロケートルマブロックサイズに関係なく、一定のサブブロックサイズを有する。一定のサブブロックサイズは、4:2:2クロマフォーマットが使用される場合、2×2ククロマサンプル、または4×4クロマサンプル、または2×4クロマサンプルであり得る。各クロマサブブロックは、1つ以上のコロケートルマサブブロックを有し得る。クロマサブブロックが複数のコロケートルマサブブロックを有する場合、一部の例では、クロマサブブロックのMVは、複数のコロケートルマサブブロックの平均MVに基づいて導出され得る。一部の例では、クロマサブブロックのMVは、左上のルマサブブロック、中央のルマサブブロックまたは右下のルマサブブロックなど、1つのコロケートルマサブブロックのMVから導出され得る。一部の例では、クロマサブブロックのMVは、複数のコロケートルマサブブロックのサブセットの加重平均から導出され得る。
【0224】
一実施形態では、小サブブロックアフィンインター予測は、片予測にのみ使用され得る。小サブブロックアフィンインター予測が片予測にのみ使用される場合、メモリ帯域幅が減少され得る。一実施形態では、小サブブロックアフィンインター予測は、片予測および双予測の両方に用いられることができる。
【0225】
一実施形態では、片予測が使用され、且つ8×8ブロックの小サブブロック動き補償のメモリ帯域幅が閾値以下である場合、小サブブロックアフィンが有効になる。それ以外の場合、通常の4×4サブブロックアフィンインター予測が使用される。一例では、8×8アフィンブロックのメモリ帯域幅の閾値は、15×15サンプルのメモリ帯域幅に設定され得る。
【0226】
一例では、小サブロックアフィンインター予測が使用される場合、通常の8タップの補間フィルタが水平方向に使用され、より短いタップフィルタが垂直方向に使用され得る。一例では、6タップのフィルタが垂直方向に使用され得る。別の例では、4タップのフィルタが垂直方向に使用され得る。
【0227】
本開示の一実施形態では、フラグ(例えば、small_subblock_affine_flag)は、小サブブロックアフィンインター予測が使用されるか否かを示すように、高レベル(例えば、スライス、タイル、タイルグループ、ピクチャ、シーケンス)でシグナリングされ得る。
【0228】
一実施形態では、SPSフラグ(例えば、sps_small_subblock_affine_flag)がシグナリングされ得る。このフラグが真の場合、ピクチャレベルまたはタイルグループレベルフラグ(例えば、picture_small_subblock_affine_flag)は、アフィンインター予測のための小サブブロックサイズが現在のデコードされたピクチャまたはタイルグループに使用され得るか否かを示すようにシグナリングされ得る。
【0229】
一実施形態では、アフィンインター予測フラグ(例えば、small_subblock_affine_flag)の小サブブロックサイズは、ピクチャレベル、タイルグループレベル、タイルレベル、ブロックレベルなどの、シーケンスレベルよりも低いレベルでシグナリングされ得る。このような場合、アフィンインター予測フラグの小サブブロックサイズは、シーケンスレベルでシグナリングされるアフィン予測有効化フラグが真である場合にのみシグナリングされ得る。そうでなければ、アフィン予測有効化フラグがシーケンスレベルで偽としてシグナリングされる場合、アフィンインター予測フラグの小サブブロックサイズは偽として推測される。
【0230】
他の実施形態では、アフィン予測のための小サブブロックサイズは、事前定義されたデフォルト設定などの他の方法によって有効化され得、シグナリングされ得ない。
【0231】
図27は、本開示の一部の実施形態による、小サブブロックアフィン予測プロセス(2700)を概説するフローチャートを示す。様々な実施形態では、プロセス(2700)は、端末装置(210)、(220)、(230)および(240)における処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路などの処理回路によって実行されることができる。一部の実施形態では、プロセス(2700)がソフトウェア命令によって実現されるため、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2700)を実行する。プロセスは(S2701)から開始し、(S2710)に進む。
【0232】
(S2710)では、符号化されたビデオビットストリームから現在ピクチャにおけるブロックの予測情報をデコードする。予測情報は、インター予測モードにおけるアフィンモデルを示すものである。
【0233】
(S2720)では、アフィンモデルに基づいて、ブロックの制御点の動きベクトルを決定する。アフィンモデルは、2つの制御点の動きベクトルによって記述された4パラメータモデルと、3つの制御点の動きベクトルによって記述された6パラメータモデルとを含む。制御点の動きベクトルは、アフィンマージモードまたはアフィンAMVPモードを用いて決定され得る。
【0234】
(S2730)では、決定した動きベクトルからブロックのサブブロックの動きベクトルを決定する。例えば、サブブロックは、ブロックの複数のサブブロックのうちの1つであり、複数のサブブロックのそれぞれについて動きベクトルが決定される。サブブロックの幅および高さの1つは4未満である(例えば、4つのルマサンプル)。一実施形態では、ブロックから分割された各サブブロックの動きベクトルを導出するために、各サブブロックの中央サンプルの動きベクトルは式1および式2に従って計算されてもよく、1/16の分数精度に丸められてもよい。サブブロックのサイズは、4×4サンプルよりも小さくてもよい。つまり、サブブロックの幅および高さの1つが4未満である。例えば、サブブロックのサイズは、4×2サンプルであり得る。
【0235】
(S2740)では、決定した動きベクトルに基づいて、少なくともサブブロックのサンプルを再構築する。処理(2700)は、(S2799)に進み、且つ終了する。
【0236】
以上で説明された技術は、コンピュータ読取可能な命令を用いるコンピュータソフトウェアとして実現され、1つ以上のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、
図28は、開示された主題の特定の実施形態を実施することに適したコンピュータシステム(2800)を示す。
【0237】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行されることができる命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いて符号化されることができる。
【0238】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0239】
コンピュータシステム(2800)について、
図28に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム(2800)の例示的な実施形態で示されるコンポーネントのうちのいずれか1つまたは組み合わせに関する任意の依存性または必要性を有するとして解釈されるべきではない。
【0240】
コンピュータシステム(2800)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(描画せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用できる。
【0241】
入力ヒューマンインターフェースデバイスは、キーボード(2801)、マウス(2802)、トラックパッド(2803)、タッチスクリーン(2810)、データグローブ(図示せず)、ジョイスティック(2805)、マイクロフォン(2806)、スキャナ(2807)、カメラ(2808)(それぞれ1つのみ示されている)のうちの1つ以上を含み得る。
【0242】
コンピュータシステム(2800)は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2810)、データグローブ(図示せず)、またはジョイスティック(2805)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(2809)、ヘッドホン(示されていない)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2810)(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(示されていない)、ホログラフィックディスプレイおよびスモークタンク(示されていない)など)、およびプリンタ(示されていない)を含み得る。
【0243】
コンピュータシステム(2800)は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体(2821)付きのCD/DVD ROM/RW(2820)を含む光学媒体、サムドライブ(2822)、リムーバブルハードドライブまたはソリッドステートドライブ(2823)、テープやフロッピーディスクなどの従来の磁気媒体(示されていない)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(示されていない)などをも含むことができる。
【0244】
ここで開示された主題に関連して使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことをも当業者が理解するべきである。
【0245】
コンピュータシステム(2800)は、1つ以上の通信ネットワークへのインターフェースをさらに含むことができる。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2849)(例えば、コンピューターシステム(2800)のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピュータシステム(2800)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム(2800)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで用いることができる。
【0246】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(2800)のコア(2840)に接続されることができる。
【0247】
コア(2840)は、1つ以上の中央処理装置(CPU)(2841)、グラフィックスプロセッシングユニット(GPU)(2842)、フィールドプログラマブルゲートエリア(FPGA)(2843)の形態での専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(2844)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2845)、ランダムアクセスメモリ(2846)、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量記憶装置(2847)とともに、システムバス(2848)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(2848)は、1つ以上の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(2848)に直接、または周辺バス(2849)を介して接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0248】
CPU(2841)、GPU(2842)、FPGA(2843)、およびアクセラレータ(2844)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2845)またはRAM(2846)に記憶されることができる。推移データはRAM(2846)にも記憶できるが、永続データは、例えば、内部大容量ストレージ(2847)に記憶されることができる。1つ以上のCPU(2841)、GPU(2842)、大容量ストレージ(2847)、ROM(2845)、RAM(2846)などと密接に関連付けることができるキャッシュメモリを用いることにより、任意のメモリデバイスへの高速保存および検索が可能になる。
【0249】
コンピュータ読取可能な媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。
【0250】
限定ではなく、一例として、アーキテクチャを有するコンピュータシステム(2800)、特にコア(2840)は、1つ以上の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能性を提供することができる。このようなコンピュータ読取可能な媒体は、以上で説明したようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ(2847)またはROM(2845)などの非一時的な性質を持つコア(2840)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア(2840)によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2840)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2846)に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更する言を含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(2844))に有線接続されたまたは組み込まれたロジックの結果としての機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
付録A:頭字語
AMVP:Advanced MVP(高度のMVP)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
BMS:benchmark set(ベンチマークセット)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
CD:Compact Disc(コンパクトディスク)
CPU:Central Processing Unit(中央処理装置)
CRT:Cathode Ray Tube(陰極線管)
CTB:Coding Tree Block(符号化ツリーブロック)
CTU:Coding Tree Unit(符号化ツリーユニット)
CU:Coding Unit(符号化ユニット)
DVD:Digital Video Disc(デジタルビデオディスク)
FPGA:Field Programmable Gate Area(フィールドプログラマブルゲートエリア)
GOP:Groups of Pictures(ピクチャ群)
GPU:Graphics Processing Unit(グラフィックスプロセッシングユニット)
GSM:Global System for Mobile Communication(グローバルモバイル通信システム)
HEVC:High Efficiency Video Coding(高効率ビデオ符号化)
HMVP:History-based MVP(履歴ベースのMVP)
HRD:Hypothetical Reference Decoder(仮想参照デコーダ)
IC:Integrated Circuit(集積回路)
JEM:Joint Exploration Model(共同探索モデル)
LAN:Local Area Network(ローカルエリアネットワーク)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
LTE:Long-Term Evolution(長期的な進化)
MMVD:Merge with MVD(MVDを有するマージ)
MV:Motion Vector(動きベクトル)
MVD:Motion vector difference(動きベクトル差分)
MVP:Motion vector predictor(動きベクトル予測子)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
PB:Prediction Block(予測ブロック)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
PU:Prediction Unit(予測ユニット)
RAM:Random Access Memory(ランダムアクセスメモリ)
ROM:Read-Only Memory(読み出し専用メモリ)
SEI:Supplementary Enhancement Information(補助強化情報)
SNR:Signal Noise Ratio(信号対雑音比)
SSD:Solid-State drive(ソリッドステートドライブ)
SbTMVP:Sub-block-based TMVP(サブブロックベースのTMVP)
TU:Transform Unit(変換ユニット)
TMVP:Temporal MVP(時間的MVP)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
VTM:Versatile test model(多用途テストモデル)
VUI:Video Usability Information(ビデオユーザビリティ情報)
VVC:Versatile Video Coding(多用途ビデオ符号化)
【0251】
本開示は一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれる様々なシステムおよび方法を考案できることが理解されよう。