(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-08
(45)【発行日】2023-12-18
(54)【発明の名称】動きベクトル差シグナリングを用いたジオメトリ分割モードおよびマージモード
(51)【国際特許分類】
H04N 19/119 20140101AFI20231211BHJP
H04N 19/139 20140101ALI20231211BHJP
H04N 19/176 20140101ALI20231211BHJP
H04N 19/52 20140101ALI20231211BHJP
H04N 19/70 20140101ALI20231211BHJP
【FI】
H04N19/119
H04N19/139
H04N19/176
H04N19/52
H04N19/70
(21)【出願番号】P 2022566250
(86)(22)【出願日】2022-04-25
(86)【国際出願番号】 US2022071892
(87)【国際公開番号】W WO2022232761
(87)【国際公開日】2022-11-03
【審査請求日】2022-10-28
(32)【優先日】2021-04-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-04-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】グイチュン・リ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】久保 光宏
(56)【参考文献】
【文献】Krit Panusoponem et al.,"GEO with MMVD",Document: JVET-R0282-r3, [online],JVET-R0282 (version 6),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年04月15日,Pages 1-3,[令和5年10月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=9926> and <URL: https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0282-v6.zip>.,(See document file "JVET-R0282-r3.docx" in the zip file "JVET-R0282-v6.zip".)
【文献】Zhipin Deng, et al.,"AHG12: Geometric prediction mode with motion vector differences",Document: JVET-V0103-v3, [online],JVET-V0103 (version 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29,2021年04月23日,Pages 1-3,[令和5年10月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=10751> and <URL: https://jvet-experts.org/doc_end_user/documents/22_Teleconference/wg11/JVET-V0103-v3.zip>.,(See document file "JVET-V0103_r2.docx" in the zip file "JVET-V0103-v3.zip".)
【文献】Xiaoyu Xiu, et al.,"AHG12: Evaluation of GPM with MMVD for coding efficiency improvement over VVC",Document: JVET-V0125_r1, [online],JVET-V0125 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29,2021年04月22日,Pages 1-4,[令和5年10月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=10774> and <URL: https://jvet-experts.org/doc_end_user/documents/22_Teleconference/wg11/JVET-V0125-v2.zip>.,(See document file "JVET-V0125_r1.docx" in the zip file "JVET-V0125-v2.zip".)
【文献】Kai Zhang, et al.,"Geometric prediction mode with motion vector differences",Document: JVET-R0357, [online],JVET-R0357 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年04月09日,Pages 1-2,[令和5年10月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=10001> and <URL: https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0357-v1.zip>.,(See document file "JVET-R0357.docx" in the zip file "JVET-R0357-v1.zip".)
【文献】Semih Esenlik, et al.,"Non-CE4: Geometrical partitioning for inter blocks",Document: JVET-O0489-v4, [online],JVET-O0489 (version 4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年07月07日,Pages 1-9,[令和5年10月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7096> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0489-v4.zip>.,(See document file "JVET-O0489_v4.docx" in the zip file "JVET-O0489-v4.zip".)
【文献】Han Gao, et al.,"CE4: CE4-1.1, CE4-1.2 and CE4-1.14: Geometric Merge Mode (GEO)",Document: JVET-P0068-v2, [online],JVET-P0068 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年09月25日,Pages 1-7,[令和5年10月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7857> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0068-v2.zip>.,(See document file "JVET-P0068_v2.docx" in the zip file "JVET-P0068-v2.zip".)
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 8)",Document: JVET-Q2001-vE, [online],JVET-R0357 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2020年04月09日,Pages 78,79,166-169,246-248,294-300,[令和5年10月27日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=10001> and <URL: https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0357-v1.zip>.,(See document file "JVET-R0357-WD.docx" in the zip file "JVET-R0357-v1.zip".)
【文献】Krit Panusopone, et al.,"Geometric Partitioning Merge Mode with Motion Vector Refinement",Proceedings of 2020 IEEE 22nd International Workshop on Multimedia Signal Processing (MMSP),IEEE,2020年09月21日,全6頁,ISBN: 978-1-7281-9320-5, <DOI: 10.1109/MMSP48831.2020.9287109>.
【文献】海野 恭平,「特集 VVC (Versatile Video Coding) 第4章 インター予測」,映像情報メディア学会誌,日本,一般社団法人 映像情報メディア学会,2021年01月01日,Vol.75, No.1,第21~28頁,ISSN: 1342-6907.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
デコーダにおいて実行されるデコーディングの方法であって、
コーディングされたビデオビットストリームから、ブロックのコーディングされた情報を受信するステップであって、前記コーディングされた情報は、前記ブロックがジオメトリ分割モード(GPM)に基づいて第1の部分と第2の部分に分割され、動きベクトル差によるマージモード(MMVD)に基づいてインター予測されていることを示し、前記GPMは複数の角度インデックスおよび複数のエッジインデックスを含み、前記複数の角度インデックスは角度を示し、前記複数のエッジインデックスは前記ブロックの中心に対するエッジ位置を示し、前記MMVDは複数の距離インデックスおよび複数の方向インデックスを含み、前記複数の距離インデックスは距離を示し、前記複数の方向インデックスは開始動きベクトルに対する方向を示す、ステップと、
GPMによって分割された前記ブロックの前記第1の部分についての動きベクトルが、GPMによって分割された前記ブロックの前記第2の部分についての動きベクトルと同一ではないと判定するステップと、
前記ブロックの前記第1の部分についての前記動きベクトルおよび前記ブロックの前記第2の部分についての前記動きベクトルに基づいて前記ブロックを再構成するステップと、
を含む方法。
【請求項2】
(i)前記第1の部分についての前記MMVDのオフセット値および前記GPMの動きベクトル予測、ならびに(ii)前記ブロックの前記第2の部分についての前記MMVDのオフセット値および前記GPMの動きベクトル予測を決定するステップと、
前記ブロックの前記第1の部分についての前記MMVDの前記オフセット値および前記GPMの前記動きベクトル予測に基づいて、前記ブロックの前記第1の部分についての前記動きベクトルを決定するステップと、
(i)前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値および前記GPMの前記動きベクトル予測、ならびに(ii)前記ブロックの前記第1の部分についての前記動きベクトルに基づいて、前記ブロックの前記第2の部分についての前記動きベクトルを決定するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1の部分についての前記MMVDの前記オフセット値および前記第2の部分についての前記MMVDの前記オフセット値を決定することは、
第1の距離値と第1の方向値の積に基づいて、前記ブロックの前記第1の部分についての前記MMVDの前記オフセット値を決定するステップと、
第2の距離値と第2の方向値の積に基づいて、前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値を決定するステップと、をさらに含み、
前記第1の距離値は第1の距離インデックス情報に基づいて取得され、
前記第1の方向値は第1の方向インデックス情報に基づいて取得され、
前記第2の距離値は第2の距離インデックス情報および前記ブロックの前記第1の部分の前記動きベクトルに基づいて取得され、
前記第2の方向値は第2の方向インデックス情報に基づいて取得される、請求項2に記載の方法。
【請求項4】
前記ブロックの前記第2の部分についての前記動きベクトルを決定する前記ステップは、
前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値と前記ブロックの前記第2の部分についての前記GPMの前記動きベクトル予測との和が前記ブロックの前記第1の部分についての前記動きベクトルと等しくないことに応答して、前記ブロックの前記第2の部分についての前記動きベクトルを、前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値と前記ブロックの前記第2の部分についての前記GPMの前記動きベクトル予測との前記和と等しくなるように決定するステップ
をさらに含む、請求項3に記載の方法。
【請求項5】
前記ブロックの前記第2の部分についての前記動きベクトルを決定する前記ステップは、
前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値と前記ブロックの前記第2の部分についての前記GPMの前記動きベクトル予測との和が前記ブロックの前記第1の部分についての前記動きベクトルに等しいことに応答して、
前記ブロックの前記第2の部分についての修正された第2の距離値と前記第2の方向値の積に基づいて前記MMVDの修正されたオフセット値を決定するステップであって、前記修正された第2の距離値は、前記第2の距離インデックス情報に1を加えたものに基づいて取得される、ステップと、
前記ブロックの前記第2の部分についての前記動きベクトルを、前記ブロックの前記第2の部分についての前記MMVDの前記修正されたオフセット値と前記ブロックの前記第2の部分についての前記GPMの前記動きベクトル予測との和に等しくなるように決定するステップと、
をさらに含む、請求項3に記載の方法。
【請求項6】
ビデオデコーダにおいて実行されるビデオデコーディングの方法であって、
コーディングされたビデオビットストリームからブロックに関連付けられた単一のシンタックス要素を受信するステップであって、前記単一のシンタックス要素は、(1)前記ブロックがジオメトリ分割モード(GPM)に基づいて第1の部分と第2の部分に分割されているかどうか、ならびに(2)前記第1の部分および前記第2の部分の各々が動きベクトル差によるマージモード(MMVD)に基づいてインター予測されているかどうか、の両方を示し、前記GPMは複数の角度インデックスおよび複数のエッジインデックスを含み、前記複数の角度インデックスは角度を示し、前記複数のエッジインデックスは前記ブロックの中心に対するエッジ位置を示し、前記MMVDは複数の距離インデックスおよび複数の方向インデックスを含み、前記複数の距離インデックスは距離を示し、前記複数の方向インデックスは開始動きベクトルに対する方向を示す、ステップと、
前記単一のシンタックス要素が第1の値であることに応答して、前記ブロックの前記第1の部分および前記第2の部分の両方についての前記MMVDのオフセット値を決定するステップと、
前記ブロックの前記第1の部分についての前記MMVDの前記オフセット値および前記GPMの動きベクトル予測に基づいて、前記ブロックの前記第1の部分についての動きベクトルを決定するステップと、
前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値および前記GPMの動きベクトル予測に基づいて、前記ブロックの前記第2の部分についての動きベクトルを決定するステップと、
前記ブロックの前記第1の部分についての前記決定された動きベクトルおよび前記ブロックの前記第2の部分についての前記決定された動きベクトルに基づいて前記ブロックを再構成するステップと、
を含む方法。
【請求項7】
前記単一のシンタックス要素が前記第1の値であることに応答して、前記ブロックの前記第1の部分および前記第2の部分の両方についての前記MMVDの前記オフセット値を決定する前記ステップは、
前記MMVDに関連付けられた距離インデックス情報および方向インデックス情報を受信するステップと、
前記距離インデックス情報に基づく距離値、および前記方向インデックス情報に基づく方向値を決定するステップと、
前記距離値と前記方向値の積に基づいて、前記ブロックの前記第1の部分についての前記MMVDの前記オフセット値および前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値を決定するステップと、
をさらに含む、請求項6に記載の方法。
【請求項8】
前記単一のシンタックス要素が前記第1の値であることに応答して、前記ブロックの前記第1の部分および前記第2の部分の両方についての前記MMVDの前記オフセット値を決定する前記ステップは、
前記MMVDに関連付けられた距離インデックス情報および方向インデックス情報を受信するステップと、
前記距離インデックス情報に基づく距離値、および前記方向インデックス情報に基づく方向値を決定するステップと、
前記距離値と前記方向値の積に基づいて、前記ブロックの前記第1の部分についての前記MMVDの前記オフセット値を決定するステップと、
前記距離値と修正された方向値の積に基づいて、前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値を決定するステップであって、前記修正された方向値は前記方向値とは反対である、ステップと、
をさらに含む、請求項6に記載の方法。
【請求項9】
前記単一のシンタックス要素が前記第1の値であることに応答して、前記ブロックの前記第1の部分および前記第2の部分の両方についての前記MMVDの前記オフセット値を決定する前記ステップは、
前記コーディングされたビデオビットストリームから前記MMVDに関連付けられた位置インデックス情報を受信するステップであって、前記位置インデックス情報は、前記ブロックの前記第1の部分および前記第2の部分についての前記MMVDに関連付けられた距離情報と方向情報の組み合わせを示す、ステップと、
前記距離情報および前記方向情報に基づいて、前記ブロックの前記第1の部分についての前記MMVDの前記オフセット値および前記ブロックの前記第2の部分についての前記MMVDの前記オフセット値を決定するステップと、
をさらに含む、請求項6に記載の方法。
【請求項10】
前記位置インデックス情報は、可変長コーディングに基づいてコーディングされる、請求項9に記載の方法。
【請求項11】
請求項1から5のいずれか一項に記載の方法を実行するように構成された装置。
【請求項12】
請求項6から10のいずれか一項に記載の方法を実行するように構成された装置。
【請求項13】
少なくとも1つのプロセッサに請求項1から5のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項14】
少なくとも1つのプロセッサに請求項6から10のいずれか一項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年4月18日に出願された米国特許出願第17/723,302号「GEOMETRY PARTITION MODE AND MERGE MODE WITH MOTION VECTOR DIFFERENCE SIGNALING」の利益を主張し、これは、2021年4月26日に出願された米国仮出願第63/179,912号「GPM MMVD Signaling」に対する優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ビデオコーディングに関係する実施形態を記載する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈を大まかに提示することを目的としている。ここに記名された発明者の仕事は、その仕事がこの背景技術セクションに記載されている程度まで、ならびにさもなければ出願時に従来技術として適格ではない可能性がある説明の態様は、本開示に対する従来技術として明示的にも黙示的にも認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を用いたインターピクチャ予測を使用して実行することができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連付けられた彩度サンプルの空間次元を有する。一連のピクチャは、例えば毎秒60枚のピクチャまたは60Hzの所定のまたは可変のピクチャレート(非公式にはフレームレートとしても知られている)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル分解能)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶空間を必要とする。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減となり得る。圧縮は、前述の帯域幅または記憶空間要件を、場合によっては2桁以上低減するのに役立ち得る。可逆圧縮および非可逆圧縮の両方、ならびにこれらの組み合わせが用いられ得る。可逆圧縮は、元の信号の正確なコピーが圧縮された元の信号から再構成され得る技術を指す。非可逆圧縮を使用すると、復元された信号は元の信号と同一ではない可能性があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的の用途に有用なものにするほど十分小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビ配信用途のユーザよりも高い歪みを許容することができる。達成可能な圧縮比は、より高い容認可能/許容可能な歪みがより高い圧縮比をもたらし得ることを反映することができる。
【0006】
動き補償は、非可逆圧縮技術となり得ると共に、既に再構成されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックが動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後に新たに再構成されたピクチャまたはピクチャ部分の予測のために使用される技術に関連することができる。場合によっては、参照ピクチャは現在復元中のピクチャと同じであり得る。MVは、2つの次元XおよびYまたは3つの次元を有することができ、第3の次元は使用中の参照ピクチャの表示である(後者は、間接的に、時間次元となり得る)。
【0007】
いくつかのビデオ圧縮技術において、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば再構成中の領域に空間的に隣り合ってデコーディング順でそのMVに先行するサンプルデータの他の領域に関連するMVから予測され得る。そうすることにより、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性が排除され、圧縮率が増加する。例えば、(ナチュラルビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能な領域よりも大きい領域が同様の方向に移動する統計的な可能性が存在するので、MV予測は効果的に機能することができ、したがって、場合によっては、隣接する領域のMVから導出された同様の動きベクトルを使用して予測することができる。これにより、所与のエリアについて見つかったMVは、周囲のMVから予測されたMVと類似または同じになり、エントロピーコーディング後に、MVを直接符号化する場合に使用されるよりも少ないビット数で表すことができる。場合によっては、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合では、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差に起因して、MV予測自体が非可逆となり得る。
【0008】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本明細書に記載されるのは、以降「空間マージ」と呼ばれる技法である。
【0009】
図1を参照すると、現在のブロック(101)は、空間的にシフトされた同じサイズの前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって見つけられたサンプルを含む。そのMVを直接にコーディングする代わりに、A0、A1、およびB0、B1、B2(それぞれ102~106)で示される5つの周辺サンプルのいずれか1つと関連付けられたMVを使用して、1つまたは複数の参照ピクチャと関連付けられたメタデータから、例えば(デコーディング順序で)最新の参照ピクチャから、MVを導き出すことができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0010】
本開示の態様は、ビデオエンコーディング/デコーディングのための方法および装置を提供する。いくつかの例では、ビデオデコーディングのための装置は受信回路および処理回路を含む。
【0011】
本開示の一態様によれば、デコーダにおいて実行されるデコーディングの方法が提供される。本方法では、コーディングされたビデオビットストリームからブロックのコーディングされた情報が受信され得る。コーディングされた情報は、ブロックがジオメトリ分割モード(GPM)に基づいて第1の部分と第2の部分に分割され、動きベクトル差によるマージモード(MMVD)に基づいてインター予測されていることを示すことができる。GPMは、複数の角度インデックスおよび複数のエッジインデックスを含むことができる。複数の角度インデックスは角度を示すことができ、複数のエッジインデックスはブロックの中心に対するエッジ位置を示すことができる。MMVDは、複数の距離インデックスおよび複数の方向インデックスを含むことができる。複数の距離インデックスは距離を示すことができ、複数の方向インデックスは開始動きベクトルに対する方向を示すことができる。GPMによって分割されたブロックの第1の部分についての動きベクトルが、GPMによって分割されたブロックの第2の部分についての動きベクトルと同一でないことが判定され得る。ブロックは、ブロックの第1の部分についての動きベクトルおよびブロックの第2の部分についての動きベクトルに基づいて再構成され得る。
【0012】
本方法では、(i)第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測、ならびに(ii)ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測が決定され得る。ブロックの第1の部分についての動きベクトルは、ブロックの第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測に基づいて決定され得る。ブロックの第2の部分についての動きベクトルは、(i)ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測、ならびに(ii)ブロックの第1の部分についての動きベクトルに基づいて決定され得る。
【0013】
本方法では、第1の部分についてのMMVDのオフセット値および第2の部分についてのMMVDのオフセット値を決定するために、ブロックの第1の部分についてのMMVDのオフセット値は、第1の距離値と第1の方向値の積に基づいて決定され得る。ブロックの第2の部分についてのMMVDのオフセット値は、第2の距離値と第2の方向値の積に基づいて決定され得る。第1の距離値は、第1の距離インデックス情報に基づいて取得され得る。第1の方向値は、第1の方向インデックス情報に基づいて取得され得る。第2の距離値は、第2の距離インデックス情報およびブロックの第1の部分の動きベクトルに基づいて取得され得る。第2の方向値は、第2の方向インデックス情報に基づいて取得され得る。
【0014】
いくつかの実施形態では、ブロックの第2の部分についてのMMVDのオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和がブロックの第1の部分についての動きベクトルと等しくないことに応答して、ブロックの第2の部分についての動きベクトルは、ブロックの第2の部分についてのMMVDのオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和と等しくなるように決定され得る。
【0015】
いくつかの実施形態では、ブロックの第2の部分についての動きベクトルを決定するために、ブロックの第2の部分についてのMMVDのオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和がブロックの第1の部分についての動きベクトルに等しいことに応答して、MMVDの修正されたオフセット値は、ブロックの第2の部分についての修正された第2の距離値と第2の方向値の積に基づいて決定され得、修正された第2の距離値は、第2の距離インデックス情報に1を加えたものに基づいて取得され得る。ブロックの第2の部分についての動きベクトルは、ブロックの第2の部分についてのMMVDの修正されたオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和に等しくなるように、その後に決定され得る。
【0016】
いくつかの実施形態では、適合性要件にしたがって、GPMによって分割されたブロックの第1の部分についての動きベクトルは、GPMによって分割されたブロックの第2の部分についての動きベクトルと同一でなくてもよい。
【0017】
本開示の別の態様によれば、ビデオデコーダにおいて実行されるビデオデコーディングの方法が提供される。本方法では、コーディングされたビデオビットストリームから、ブロックに関連する単一のシンタックス要素が受信され得る。単一のシンタックス要素は、(1)ブロックがジオメトリ分割モード(GPM)に基づいて第1の部分と第2の部分に分割されているかどうか、ならびに(2)第1の部分および第2の部分の各々が動きベクトル差によるマージモード(MMVD)に基づいてインター予測されているかどうか、の両方を示すことができる。GPMは、複数の角度インデックスおよび複数のエッジインデックスを含むことができる。複数の角度インデックスは角度を示すことができ、複数のエッジインデックスはブロックの中心に対するエッジ位置を示すことができる。MMVDは、複数の距離インデックスおよび複数の方向インデックスを含むことができる。複数の距離インデックスは距離を示すことができ、複数の方向インデックスは開始動きベクトルに対する方向を示すことができる。単一のシンタックス要素が第1の値であることに応答して、ブロックの第1の部分および第2の部分の両方についてMMVDのオフセット値を決定するための決定を行うことができる。ブロックの第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測に基づいて、ブロックの第1の部分についての動きベクトルが決定され得る。ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測に基づいて、ブロックの第2の部分についての動きベクトルが決定され得る。ブロックの第1の部分についての決定された動きベクトルおよびブロックの第2の部分についての決定された動きベクトルに基づいて、ブロックが再構成され得る。
【0018】
いくつかの実施形態では、単一のシンタックス要素が第1の値であることに応答して、ブロックの第1の部分および第2の部分の両方のMMVDのオフセット値を決定するために、MMVDに関連する距離インデックス情報および方向インデックス情報が受信され得る。距離値は距離インデックス情報に基づいて決定され得、方向値は方向インデックス情報に基づいて決定され得る。ブロックの第1の部分についてのMMVDのオフセット値およびブロックの第2の部分についてのMMVDのオフセット値は、距離値と方向値の積に等しいと決定され得る。
【0019】
いくつかの実施形態では、単一のシンタックス要素が第1の値であることに応答して、ブロックの第1の部分および第2の部分の両方のMMVDのオフセット値を決定するために、MMVDに関連する距離インデックス情報および方向インデックス情報が受信され得る。距離値は距離インデックス情報に基づいて決定され得、方向値は方向インデックス情報に基づいて決定され得る。ブロックの第1の部分についてのMMVDのオフセット値は、距離値と方向値の積に基づいて決定され得る。ブロックの第2の部分についてのMMVDのオフセット値は、距離値と修正された方向値の積に基づいて決定され得、修正された方向値は方向値と反対であり得る。
【0020】
いくつかの実施形態では、単一のシンタックス要素が第1の値であることに応答して、ブロックの第1の部分および第2の部分の両方のMMVDのオフセット値を決定するために、MMVDに関連する位置インデックス情報をコーディングされたビデオビットストリームから受信することができる。位置インデックス情報は、ブロックの第1の部分および第2の部分についてMMVDに関連付けられた距離情報と方向情報の組み合わせを示すことができる。ブロックの第1の部分についてのMMVDのオフセット値およびブロックの第2の部分についてのMMVDのオフセット値は、距離情報および方向情報に基づいて決定され得る。
【0021】
いくつかの実施形態では、位置インデックス情報は、可変長コーディングに基づいてコーディングされ得る。
【0022】
本開示の別の態様によれば、装置が提供される。装置は処理回路を有する。処理回路は、ビデオコーディングのための開示された方法を実行するように構成される。
【0023】
本開示の態様はまた、ビデオデコーディングのためにコンピュータによって実行されると、ビデオデコーディングのための方法をコンピュータに実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0024】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の発明を実施するための形態および添付の図面からより明らかになろう。
【図面の簡単な説明】
【0025】
【
図1】一例における現在のブロックおよびその周辺空間マージ候補の概略図である。
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図6】他の実施形態によるエンコーダのブロック図である。
【
図7】他の実施形態によるデコーダのブロック図である。
【
図8】一実施形態による動きベクトル差によるマージモード(MMVD)の探索プロセスを示す図である。
【
図9A】一実施形態によるMMVDの探索点を示す図である。
【
図9B】一実施形態によるMMVDの探索点を示す図である。
【
図10】一実施形態によるジオメトリ適応ブロック分割(GEO)の分割境界を示す図である。
【
図11】本開示のいくつかの実施形態によるデコーディングプロセス例の概要を示す第1のフローチャートである。
【
図12】本開示のいくつかの実施形態によるデコーディングプロセス例の概要を示す第2のフローチャートである。
【
図13】本開示のいくつかの実施形態によるエンコーディングプロセス例の概要を示す第1のフローチャートである。
【
図14】本開示のいくつかの実施形態によるエンコーディングプロセス例の概要を示す第2のフローチャートである。
【
図15】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0026】
図2は、本開示の一実施形態による通信システム(200)の簡略ブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末デバイス(210)および(220)の第1のペアを含む。
図2の例において、端末デバイス(210)および(220)の第1のペアは、データの単方向送信を実行する。例えば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に送信するためにビデオデータ(例えば、端末デバイス(210)によってキャプチャされるビデオピクチャのストリーム)をコーディングすることができる。エンコードされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形式で送信され得る。端末デバイス(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータにしたがってビデオピクチャを表示することができる。単方向データ送信は、メディアサービング用途などで一般的であり得る。
【0027】
他の例において、通信システム(200)は、例えばビデオ会議中に行われ得るコーディングされたビデオデータの双方向送信を実行する端末デバイス(230)および(240)の第2のペアを含む。データの双方向送信のために、一例では、端末デバイス(230)および(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)および(240)の他方の端末デバイスに送信するためにビデオデータ(例えば、端末デバイスによってキャプチャされるビデオピクチャのストリーム)をコーディングすることができる。また、端末デバイス(230)および(240)の各端末デバイスは、端末デバイス(230)および(240)の他方の端末デバイスによって送信されるコーディングされたビデオデータも受信することができ、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元することができると共に、復元されたビデオデータにしたがってアクセス可能な表示デバイスにビデオピクチャを表示することができる。
【0028】
図2の例において、端末デバイス(210)、(220)、(230)および(240)は、サーバ、パーソナルコンピュータ、および、スマートフォンとして示され得るが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または、専用ビデオ会議機器を用いた用途を見出す。ネットワーク(250)は、例えば有線(ワイヤード)および/または無線通信ネットワークを含む、端末デバイス(210)、(220)、(230)および(240)間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回路交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または、インターネットを含む。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではあり得ない。
【0029】
図3は、開示された主題の用途の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、および、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶といったものを含む、他のビデオ対応用途に等しく適用可能であり得る。
【0030】
ストリーミングシステムは、ビデオソース(301)、例えば、圧縮されないビデオピクチャのストリーム(302)を作成する、例えば、デジタルカメラを含むことができるキャプチャサブシステム(313)を含むことができる。一例において、ビデオピクチャのストリーム(302)は、デジタルカメラによって撮影されるサンプルを含む。エンコードされたビデオデータ(304)(またはコーディングされたビデオビットストリーム)と比較して高いデータボリュームを強調するために太線として示されるビデオピクチャのストリーム(302)は、ビデオソース(301)に結合されるビデオエンコーダ(303)を含む電子デバイス(320)によって処理され得る。ビデオエンコーダ(303)は、以下でより詳細に説明するように、開示される主題の態様を可能にするまたは実施するためにハードウェア、ソフトウェア、または、これらの組み合わせを含むことができる。エンコードされたビデオデータ(304)(またはエンコードされたビデオビットストリーム(304))は、ビデオピクチャのストリーム(302)と比較してより低いデータボリュームを強調するために細い線として示されており、将来の使用のためにストリーミングサーバ(305)に記憶され得る。
図3のクライアントサブシステム(306)および(308)などの1つまたは複数のストリーミングクライアントサブシステムは、エンコードされたビデオデータ(304)のコピー(307)および(309)を探索するためにストリーミングサーバ(305)にアクセスすることができる。クライアントサブシステム(306)は、例えば電子デバイス(330)内にビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、エンコードされたビデオデータの入力コピー(307)をデコーディングし、ディスプレイ(312)(例えば、表示スクリーン)または他の描画デバイス(図示せず)上に描画され得るビデオピクチャの出力ストリーム(311)を作成する。一部のストリーミングシステムにおいて、エンコードされたビデオデータ(304)、(307)および(309)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮標準規格にしたがってエンコーディングされ得る。それらの標準規格の例は、ITU-T勧告H.265を含む。一例では、開発中の
ビデオコーディング標準規格は、非公式に多用途ビデオコーディング(VVC)として知られている。開示される主題は、VVCに関連して使用され得る。
【0031】
電子デバイス(320)および(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)はビデオデコーダ(図示せず)を含むことができ、また、電子デバイス(330)はビデオエンコーダ(図示せず)も含むことができる。
【0032】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれ得る。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例のビデオデコーダ(310)の代わりに使用され得る。
【0033】
受信機(431)は、ビデオデコーダ(410)によってデコードされるべき1つまたは複数のコーディングされたビデオシーケンスを受信してもよく、同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信してもよく、その場合、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信され得、チャネル(401)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信機(431)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えばコーディングされたオーディオデータストリームおよび/または補助データストリームと共に、エンコードされたビデオデータを受信することができる。受信機(431)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信機(431)とエントロピーデコーダ/パーサ(420)(以下「パーサ(420)」)との間に結合され得る。特定の用途では、バッファメモリ(415)がビデオデコーダ(410)の一部である。他の用途では、バッファメモリがビデオデコーダ(410)の外部にあり得る(図示せず)。さらに他の用途では、例えばネットワークジッタに対抗するためにビデオデコーダ(410)の外部にバッファメモリ(図示せず)が存在し、加えて、例えばプレイアウトタイミングを処理するためにビデオデコーダ(410)の内部に他のバッファメモリ(415)が存在し得る。受信機(431)が十分な帯域幅および制御性を有する記憶/転送デバイスからまたはアイソシンクロナスネットワークからデータを受信している場合、バッファメモリ(415)は必要ない場合があるまたは小さくされ得る。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(415)は、必要とされる場合があり、比較的大きくされ得る、好適には適応サイズにされ得ると共に、ビデオデコーダ(410)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0034】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含むことができる。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報と、場合によっては、
図4に示されているように、電子デバイス(430)の不可欠な部分ではないが電子デバイス(430)に結合され得る描画デバイス(412)などの描画デバイス(例えば、表示スクリーン)を制御するための情報とを含む。描画デバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(420)は、受信されるコーディングされたビデオシーケンスを解析/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または標準規格に準拠することができると共に、可変長コーディング、ハフマンコーディング、および、文脈依存性を有するまたは有さない算術コーディングなどを含む様々な原理にしたがうことができる。パーサ(420)は、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに関するサブグループパラメータのセットを、そのグループに対応する少なくとも1つのパラメータに基づいて抽出することができる。サブグループは、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(420)は、変換係数、量子化パラメータ値、動きベクトルなどのコーディングされたビデオシーケンス情報から抽出することもできる。
【0035】
パーサ(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受信されるビデオシーケンスに対してエントロピーデコーディング/解析動作を実行することができる。
【0036】
シンボル(421)の再構成は、コーディングされたビデオピクチャまたはその一部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)ならびに他の要因に応じて複数の異なるユニットを関与させることができる。どのユニットをどのように関与させるかは、パーサ(420)によってコーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。パーサ(420)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明確にするために示されていない。
【0037】
既に言及された機能ブロックのほかに、ビデオデコーダ(410)は、以下で説明するように概念的にいくつかの機能ユニットに細分され得る。商業的な制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合され得る。しかしながら、開示する主題を説明する目的のためには、以下の機能ユニットに概念的に分割するのが適切である。
【0038】
最初のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(420)からシンボル(421)として受け取る。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力され得るサンプル値を含むブロックを出力することができる。
【0039】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラコーディングされたブロック、すなわち、既に再構成されたピクチャからの予測情報を使用していないが現在のピクチャの既に再構成された部分からの予測情報を使用し得るブロックに関連することができる。そのような予測情報は、イントラピクチャ予測ユニット(452)によって与えられ得る。場合によっては、イントラピクチャ予測ユニット(452)は、現在のピクチャバッファ(458)からフェッチされた周辺の既に再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(458)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に追加する。
【0040】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされた、場合によっては動き補償されたブロックに関連することができる。そのような場合、動き補償予測ユニット(453)は、予測のために使用されるサンプルをフェッチするために参照ピクチャメモリ(457)にアクセスすることができる。ブロックに関連するシンボル(421)にしたがってフェッチされたサンプルを動き補償した後に、これらのサンプルをスケーラ/逆変換ユニット(451)の出力(この例では残差サンプルまたは残差信号と称される)にアグリゲータ(455)によって加えて出力サンプル情報を生成することができる。動き補償予測ユニット(453)が予測サンプルをフェッチしてくる参照ピクチャメモリ(457)内のアドレスを動きベクトルによって制御することができ、この動きベクトルは、例えばX、Yおよび参照ピクチャ構成要素を有することができるシンボル(421)の形態で動き補償予測ユニット(453)に利用可能である。動き補償は、サブサンプルの正確な動きベクトルが用いられている場合の、参照ピクチャメモリ(457)からフェッチされるサンプル値の内挿、動きベクトル予測メカニズムなどを含むこともできる。
【0041】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)で様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能になるループ内フィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの前の(デコーディング順の)部分のデコーディング中に取得されたメタ情報に応答することもできるほか、以前に再構成およびループフィルタリングされたサンプル値に応答することもできる。
【0042】
ループフィルタユニット(456)の出力は、描画デバイス(412)に出力され得ると共に将来のインターピクチャ予測で使用するために参照ピクチャメモリ(457)に記憶され得るサンプルストリームとなり得る。
【0043】
特定のコーディングされたピクチャは、完全に再構成された時点で、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(420)によって)参照ピクチャとして識別された時点で、現在のピクチャバッファ(458)は参照ピクチャメモリ(457)の一部となることができ、また、新たな現在のピクチャバッファが、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
【0044】
ビデオデコーダ(410)は、ITU-T Rec.H.265などの標準規格における所定のビデオ圧縮技術にしたがってデコーディング動作を実行することができる。コーディングされたビデオシーケンスがビデオ圧縮技術または標準規格の構文とビデオ圧縮技術において文書化されたプロファイルの両方を順守するという意味で、コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または標準規格で使用可能なすべてのツールから、そのプロファイル下で使用するために利用可能な唯一のツールとしていくつかのツールを選択することができる。また、準拠するために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または標準規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様とコーディングされたビデオシーケンスで信号送信されるHRDバッファ管理のためのメタデータとによってさらに制限され得る。
【0045】
一実施形態では、受信機(431)は、エンコードされたビデオと共にさらなる(冗長な)データを受信することができる。さらなるデータは、コーディングされたビデオシーケンスの一部として含まれ得る。さらなるデータは、データを適切にデコードするためにおよび/または元のビデオデータをより正確に再構成するためにビデオデコーダ(410)によって使用され得る。さらなるデータは、例えば、時間、空間、または、信号ノイズ比(SNR)拡張層、冗長スライス、冗長ピクチャ、および、前方誤り訂正コードなどの形式となり得る。
【0046】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は電子デバイス(520)に含まれる。電子デバイス(520)は送信機(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、
図3の例のビデオエンコーダ(303)の代わりに使用され得る。
【0047】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされるべきビデオ画像をキャプチャし得るビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信することができる。他の例では、ビデオソース(501)が電子デバイス(520)の一部である。
【0048】
ビデオソース(501)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および、任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)となり得るデジタルビデオサンプルストリームの形式でビデオエンコーダ(503)によってコーディングされるべきソースビデオシーケンスを与え得る。メディアサービングシステムでは、ビデオソース(501)が既に準備されたビデオを記憶する記憶装置であってもよい。ビデオ会議システムにおいて、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見られたときに動きを伝える複数の個々のピクチャとして提供され得る。ピクチャ自体は、ピクセルの空間的配列として編成され得、各ピクセルは、使用中のサンプリング構造、色空間などに応じて1つまたは複数のサンプルを含むことができる。当業者であれば、ピクセルとサンプルとの関係を容易に理解することができる。以下、サンプルを中心に説明する。
【0049】
一実施形態によれば、ビデオエンコーダ(503)は、用途により必要に応じて、リアルタイムでまたは任意の他の時間的制約下で、ソースビデオシーケンスのピクチャをコーディングしてコーディングされたビデオシーケンス(543)に圧縮することができる。適切なコーディング速度を実現することは、コントローラ(550)の1つの機能である。いくつかの実施形態では、コントローラ(550)は、以下に記載される他の機能ユニットを制御し、他の機能ユニットに機能的に結合されている。明確にするために、結合は描かれない。コントローラ(550)によって設定されるパラメータとしては、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを挙げることができる。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するように構成され得る。
【0050】
一部の実施形態において、ビデオエンコーダ(503)は、コーディングループ内で動作するように構成される。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(530)(例えば、コーディングされるべき入力ピクチャと参照ピクチャとに基づいて、シンボルストリームなどのシンボルを作成することに関与する)と、ビデオエンコーダ(503)に組み込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(リモート)デコーダも作成するのと同様の態様で(開示された主題で考慮されるビデオ圧縮技術においてシンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆的であるとき)サンプルデータを作成するためにシンボルを再構成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルまたはリモート)に関係なくビット・イグザクトな結果をもたらすため、参照ピクチャメモリ(534)の内容もローカルエンコーダとリモートエンコーダとの間でビット・イグザクトである。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ共時性のこの基本原理(および、例えばチャネルエラーのために共時性を維持できない場合は、結果として生じるドリフト)は、一部の関連技術にも同様に用いられている。
【0051】
「ローカル」デコーダ(533)の動作は、
図4に関連して上記で既に詳細に説明された、ビデオデコーダ(410)などの「リモート」デコーダの動作と同じであり得る。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)およびパーサ(420)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆となり得るため、バッファメモリ(415)およびパーサ(420)を含むビデオデコーダ(410)のエントロピーデコーディング部分は、ローカルデコーダ(533)に完全に実装されない場合がある。
【0052】
現時点で成され得る所見は、デコーダに存在する構文解析/エントロピーデコーディングを除く任意のデコーダ技術が対応するエンコーダにもほぼ同一の機能的形態で必然的に存在する必要があるということである。このため、開示される主題はデコーダの動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるため、省略することができる。特定の領域においてのみ、より詳細な説明が必要とされて以下で与えられる。
【0053】
動作中、いくつかの例において、ソースコーダ(530)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の既にコーディングされたピクチャに関連して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(532)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測基準として選択され得る参照ピクチャのピクセルブロックとの間の差をコーディングする。
【0054】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコードすることができる。コーディングエンジン(532)の動作は、好適には非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(
図5には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、通常、いくらかの誤差を有するソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照ピクチャに対してビデオデコーダによって実行され得るデコーディングプロセスを複製すると共に、再構成された参照ピクチャを参照ピクチャキャッシュ(534)に記憶させ得る。このようにして、ビデオエンコーダ(503)は、(送信エラーがなければ)遠端ビデオデコーダによって取得される再構成された参照ピクチャと共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶することができる。
【0055】
予測器(535)は、コーディングエンジン(532)のための予測探索を実行することができる。すなわち、コーディングされるべき新たなピクチャに関し、予測器(535)は、サンプルデータ(候補参照ピクセルブロックとして)または新たなピクチャに適した予測基準として役立ち得る参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータに関して参照ピクチャメモリ(534)を探索することができる。予測器(535)は、適切な予測基準を見出すためにサンプルブロックおよびピクセルブロックごとに動作することができる。場合によっては、予測器(535)によって取得される探索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に記憶された複数の参照ピクチャの中から引き出される予測基準を有することができる。
【0056】
コントローラ(550)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理することができる。
【0057】
前述のすべての機能ユニットの出力は、エントロピーコーダ(545)でエントロピーコーディングの対象となり得る。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、および、算術コーディングなどの技術にしたがってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0058】
送信機(540)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(560)を介した送信を準備するために、エントロピーコーダ(545)によって作成されたコーディングされたビデオシーケンスをバッファリングすることができる。送信機(540)は、ビデオコーダ(503)からのコーディングされたビデオデータと、送信されるべき他のデータ、例えばコーディングされたオーディオデータストリームおよび/または補助データストリーム(ソースは図示せず)とをマージすることができる。
【0059】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理することができる。コーディング中、コントローラ(550)は、特定のコーディングされたピクチャのタイプを各コーディングされたピクチャに割り当ててもよく、このピクチャのタイプは、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼすことができる。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられ得る。
【0060】
イントラピクチャ(Iピクチャ)が、予測のソースとしてシーケンス内の任意の他のピクチャを使用せずにコーディングおよびデコーディングされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、様々なタイプのイントラピクチャを可能にする。当業者には、これらのIピクチャの変形ならびにそれらのそれぞれの用途および特徴が知られている。
【0061】
予測ピクチャ(Pピクチャ)が、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を用いることによってコーディングおよびデコーディングされ得るものであり得る。
【0062】
双方向予測ピクチャ(Bピクチャ)が、各ブロックのサンプル値を予測するために最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を用いることによってコーディングおよびデコーディングされ得るものであり得る。同様に、多重予測ピクチャは、1つのブロックを再構成するために2つよりも多い参照ピクチャおよび関連付けられたメタデータを使用することができる。
【0063】
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、それぞれ4x4、8x8、4x8、または、16x16サンプルのブロック)に分割されてブロックごとにコーディングされてもよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、またはそれらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測もしくはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされてもよい。Bピクチャのブロックは、1つまたは2つの既にコーディングされた参照ピクチャに関連して空間予測によってまたは時間予測によって予測的にコーディングされてもよい。
【0064】
ビデオエンコーダ(503)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または標準規格にしたがってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行することができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または標準規格によって指定されたシンタックスに準拠することができる。
【0065】
一実施形態において、送信機(540)は、エンコードされたビデオと共にさらなるデータを送信することができる。ソースコーダ(530)は、そのようなデータをコーディングされたビデオシーケンスの一部として含むことができる。さらなるデータは、時間/空間/SNR拡張層、冗長ピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、およびVUIパラメータセットフラグメントなどを含むことができる。
【0066】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてもよい。(しばしば、イントラ予測と省略される)イントラピクチャ予測は、所与のピクチャ内の空間の相関関係を利用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関関係を利用する。一例では、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャがブロックに分割される。現在のピクチャ内のブロックが、以前にコーディングされ、ビデオ内にまだバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、参照ピクチャを特定する第3の次元を有することができ、場合によっては、複数の参照ピクチャが使用される。
【0067】
いくつかの実施形態では、インターピクチャ予測に双予測技術を使用することができる。双予測技法によれば、両方ともビデオ内の現在のピクチャよりもデコーディング順序で前にある(しかし、それぞれ表示順序で過去および将来であってもよい)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測することができる。
【0068】
さらに、コーディング効率を向上させるために、インターピクチャ予測にマージモード技術を使用することができる。
【0069】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロックのユニットで実行される。例えば、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を含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例としてルマ予測ブロックを使用して、予測ブロックは、8x8ピクセル、16x16ピクセル、8x16ピクセル、16x8ピクセルなどのピクセルに関する値(例えば、ルマ値)の行列を含む。
【0070】
図6は、本開示の他の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオピクチャのシーケンスにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコードするように構成される。一例において、ビデオエンコーダ(603)は、
図3の例のビデオエンコーダ(303)の代わりに使用される。
【0071】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルなどの予測ブロックなどの処理ブロックに関するサンプル値の行列を受信する。ビデオエンコーダ(603)は、処理ブロックが例えばレート歪み最適化を使用してイントラモード、インターモード、または、双予測モードのいずれを使用して最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるべきである場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされたピクチャにエンコードするためにイントラ予測技術用いてもよく、また、処理ブロックがインターモードまたは双予測モードでコーディングされるべきである場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされたピクチャにエンコードするためにインター予測技術または双予測技術それぞれ用いてもよい。特定のビデオコーディング技術において、マージモードは、予測子の外側のコーディングされた動きベクトル構成要素の利点を有することなく1つまたは複数の動きベクトル予測子から動きベクトルが得られるインターピクチャ予測サブモードとなり得る。特定の他のビデオコーディング技術では、対象となるブロックに適用可能な動きベクトル構成要素が存在してもよい。一例において、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためにモード決定モジュール(図示せず)などの他の構成要素を含む。
【0072】
図6の例において、ビデオエンコーダ(603)は、
図6に示されているように互いに結合されるインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、および、エントロピーエンコーダ(625)を含む。
【0073】
インターエンコーダ(630)は、現在のブロック(例えば処理ブロック)のサンプルを受信し、当該ブロックを参照ピクチャ中の1つまたは複数の参照ブロック(例えば、前のピクチャおよび後のピクチャ中のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術にしたがった冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づきインター予測結果(例えば、予測されたブロック)を計算するように構成される。一部の例において、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされるデコードされた参照ピクチャである。
【0074】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、そのブロックと同じピクチャ内の既にコーディングされたブロックとを比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。一例において、イントラエンコーダ(622)は、イントラ予測情報と同じピクチャ中の参照ブロックとに基づいてイントラ予測結果(例えば予測されたブロック)も計算する。
【0075】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一例において、汎用コントローラ(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を与える。例えば、モードがイントラモードである場合、汎用コントローラ(621)は、残差計算器(623)によって使用するためのイントラモード結果を選択するようにスイッチ(626)を制御すると共に、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御し、また、モードがインターモードである場合、汎用コントローラ(621)は、残差計算器(623)によって使用するためのインター予測結果を選択するようにスイッチ(626)を制御すると共に、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御する。
【0076】
残差計算器(623)は、受信されたブロックとイントラエンコーダ(622)またはインターエンコーダ(630)から選択される予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データをエンコードして変換係数を生成するために残差データに基づいて動作するように構成される。一例において、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換して、変換係数を生成するように構成される。変換係数は、その後に、量子化された変換係数を取得するために量子化処理を受ける。様々な実施形態では、ビデオエンコーダ(603)が残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行して、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)によって適切に使用され得る。例えば、インターエンコーダ(630)は、デコードされた残差データとインター予測情報とに基づいてデコードされたブロックを生成することができ、また、イントラエンコーダ(622)は、デコードされた残差データとイントラ予測情報とに基づいてデコードされたブロックを生成することができる。一部の例において、デコードされたブロックは、デコードされたピクチャを生成するために適切に処理され、また、デコードされたピクチャは、メモリ回路(図示せず)にバッファリングされて参照ピクチャとして使用され得る。
【0077】
エントロピーエンコーダ(625)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC標準規格などの適切な標準規格にしたがって様々な情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、全体制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示される主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングする場合には、残差情報が存在しないことに留意されたい。
【0078】
図7は、本開示の他の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコーディングして再構成されたピクチャを生成するように構成される。一例において、ビデオデコーダ(710)は、
図3の例のビデオデコーダ(310)の代わりに使用される。
【0079】
図7の例において、ビデオデコーダ(710)は、
図7に示すように互いに結合されるエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、および、イントラデコーダ(772)を含む。
【0080】
エントロピーデコーダ(771)は、コーディングされたピクチャから、コーディングされたピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モードなど、後者の2つがマージサブモードまたは他のサブモードである)、イントラデコーダ(772)またはインターデコーダ(780)によってそれぞれ予測に使用される特定のサンプルまたはメタデータを識別し得る予測情報(例えば、イントラ予測情報またはインター予測情報など)、および、例えば量子化された変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードである場合、インター予測情報がインターデコーダ(780)に提供され、また、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化の対象となり得ると共に、残差デコーダ(773)に提供される。
【0081】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0082】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0083】
残差デコーダ(773)は、逆量子化を実行して、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。また、残差デコーダ(773)は、(量子化器パラメータ(QP)を含むべく)特定の制御情報を必要としてもよく、また、その情報は、エントロピーデコーダ(771)によって提供されてもよい(これとして示されていないデータ経路は、低ボリューム制御情報のみであり得る)。
【0084】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)によって出力される残差と、予測結果(場合によってインター予測モジュールまたはイントラ予測モジュールによって出力される)とを組み合わせて、再構成されたピクチャの一部となり得る再構成されたブロックを形成するように構成され、再構成されたピクチャは、結果的に再構成されたビデオの一部となり得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作を実行できることに留意されたい。
【0085】
ビデオエンコーダ(303)、(503)および(603)ならびにビデオデコーダ(310)、(410)および(710)を任意の適切な技術を使用して実装できることに留意されたい。一実施形態において、ビデオエンコーダ(303)、(503)および(603)ならびにビデオデコーダ(310)、(410)および(710)は、1つまたは複数の集積回路を使用して実装することができる。他の実施形態において、ビデオエンコーダ(303)、(503)および(503)ならびにビデオデコーダ(310)、(410)および(710)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装できる。
【0086】
本開示は、ジオメトリ分割モード(GPM)のMV差分(MVD)のシグナリングを含む。
【0087】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG 11)は、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)、および2016年(バージョン4)に、H.265/HEVC(High Efficiency Video Coding)標準規格を公開した。2015年に、これら2つの標準化団体は、HEVCを超える次のビデオコーディング標準規格を開発する可能性を探索するために、JVET(共同ビデオ研究チーム)を共同で結成した。2018年4月、JVETは、HEVCを超える次世代ビデオコーディングの標準化プロセスを正式に開始した。この新たな標準規格は、多用途ビデオコーディング(VVC)と名付けられ、JVETは、ジョイント・ビデオ・エキスパート・チームと名付けられた。2020年7月に、H.266/VVCバージョン1が完成した。2021年1月、VVC能力を超える圧縮強化を調査するためのアドホックグループが確立された。
【0088】
VVCのインター予測では、各インター予測されたCUについて、動きパラメータは、動きベクトル、参照ピクチャインデックスおよび参照ピクチャリスト使用インデックス、ならびにインター予測されたサンプル生成に必要な追加情報を含むことができる。動きパラメータは、明示的または暗黙的な方法でシグナリングすることができる。CUがスキップモードでコーディングされる場合、CUは、1つのPUに関連付けられ得、有意な残差係数を有さず、コーディングされた動きベクトルデルタを有さず、または参照ピクチャインデックスを有さない。CUがマージモードでコーディングされる場合、マージモードはCUの動きパラメータによって指定され得る。動きパラメータは、隣接するCUから取得することができ、空間および時間の候補を含む。マージモードは、スキップモードに対してだけでなく、任意のインター予測されたCUに適用することができる。マージモードの代替案は、動きパラメータの明示的な送信である。動きパラメータの明示的な送信では、動きベクトル、各参照ピクチャリストの対応する参照ピクチャインデックスおよび参照ピクチャリスト使用フラグ、ならびに他の必要な情報をCUごとに明示的にシグナリングすることができる。
【0089】
VVCは、多くの新しい改良されたインター予測コーディングツールを含むことができる。例えば、暗黙的に導出された動き情報がCUの予測サンプルに直接使用されるマージモードに加えて、動きベクトル差によるマージモード(MMVD)がVVCに導入される。MMVDでは、スキップフラグまたはマージフラグを送信した直後にMMVDフラグをシグナリングして、MMVDモードがCUに使用されるかどうかを指定することができる。
【0090】
MMVDでは、マージ候補が選択された後に、MMVDはシグナリングされたMVD情報によってさらに洗練される。MVD情報は、マージ候補フラグ、動きの大きさを指定するインデックス、および動きの方向を示すインデックスを含むことができる。MMVDでは、マージリスト内の最初の2つの候補のうちの1つをMV基底(開始点または開始MVとも呼ばれる)として選択することができる。マージ候補フラグは、最初の2つの候補のうちのどれが使用されるかを指定するようにシグナリングすることができる。
【0091】
MMVDでは、距離インデックスは、動きの大きさ情報を指定し、開始点からの予め定義されたオフセットを示すことができる。
図8に示すように、現在のフレームは、第1の参照フレーム(例えば、L0参照またはlist0参照)および第2の参照フレーム(例えば、L1参照またはlist1参照)を有することができる。L0参照およびL1参照の各々は、それぞれの開始点を含むことができる。
図9Aおよび
図9Bに示すように、開始MVの水平成分または垂直成分のいずれかにオフセットを加えることができる。距離インデックスと予め定義されたオフセットとの関係は、表1で指定することができる。フルペルMMVDフラグ(例えば、slice_fpel_mmvd_enabled_flag)が0に等しいとき、MMVDオフセットの範囲は、1/4ルマサンプルから32ルマサンプルまでであり得る。フルペルMMVDフラグ(例えば、slice_fpel_mmvd_enabled_flag)が1である場合、MMVDオフセットの範囲は、1ルマサンプルから128ルマサンプルまでであり得る。
【0092】
【0093】
方向インデックスは、開始点に対するMVDの方向を表すことができる。方向インデックスは、表2に示すように4つの方向を表すことができる。MVD符号の意味は、L0参照およびL1参照における開始MVの情報に応じて変化し得ることに留意されたい。開始MVが(i)単予測MVであるか、または(ii)両方が現在のピクチャの同じ側(すなわち、2つの参照(例えば、L0参照およびL1参照)ピクチャ順序カウント(POC)はどちらも現在のピクチャのPOCより大きいか、またはどちらも現在のピクチャのPOCより小さい)を指す双予測MVである場合、表2の符号は、開始MVに追加されたMVオフセットの符号を指定することができる。開始MVが双予測MVであり、2つのMVが現在のピクチャの異なる側を指している(すなわち、一方の参照POCは現在のピクチャのPOCより大きく、他方の参照POCは現在のピクチャのPOCより小さい)場合、表2の符号は、開始MVのlist0 MV成分に追加されたMVオフセットの符号を指定することができ、list1 MVの符号は反対の値を有する。
【0094】
【0095】
図8は、MMVDの探索プロセスの一例を示す。
図8に示すように、
図8では、開始点MVを(例えば、方向IDXおよびベース候補IDXにしたがって)(911)で示すことができ、オフセットを(例えば、距離IDXおよび方向IDXにしたがって)(912)で示すことができ、最終MV予測子を(913)で示すことができる。別の例では、
図8において、開始点MVを(例えば、方向IDXおよびベース候補IDXにしたがって)(921)で示すことができ、オフセットを(例えば、距離IDXおよび方向IDXにしたがって)(922)で示すことができ、最終MV予測子を923で示すことができる。
【0096】
図9Aおよび
図9Bは、MMVDの例示的な探索点を示す。
図9Aに示すように、始点MVを(例えば、方向IDXおよびベース候補IDXにしたがって)(1011)で示すことができる。
図9 Aの例では、+Y、-Y、+X、および-Xなどの4つの探索方向が使用され、4つの探索方向は0、1、2、3でインデックスすることができる。距離は、0(開始点MVまで距離0)、1(開始点MVまで1s)、2(開始点MVまで2s)、3(開始点まで3s)などによってインデックスすることができる。したがって、探索方向IDXが3で、距離IDXが2のとき、最終的なMV予測子は1015として示される。
【0097】
別の例では、インデックスするために探索方向と距離とが組み合わされ得る。例えば、開始点MVは(例えば、方向IDXおよびベース候補IDXにしたがって)(1021)で示される。
図9Bに示すように、0~12によってインデックスされるために、探索方向と距離とが組み合わされる。
【0098】
いくつかの実施形態では、mmvdマージフラグ(例えば、mmvd_merge_flag[ x0 ][ y0 ])を適用することができる。mmvd_merge_flag[ x0 ][ y0 ]が1に等しいとき、動きベクトル差によるマージモードを使用して、現在のコーディングユニットのインター予測パラメータを生成することができる。mmvd_merge_flag[ x0 ][ y0 ]が0に等しいとき、インター予測パラメータを生成するために動きベクトル差によるマージモードは使用されなくてもよい。配列インデックスx0,y0は、ピクチャの左上ルマサンプルに対する考慮されるコーディングブロックの左上ルマサンプルの位置(x0,y0)を指定する。mmvd_merge_flag[ x0 ][ y0 ]が存在しない場合、mmvd_merge_flag[ x0 ][ y0 ]は0に等しいと推測することができる。
【0099】
いくつかの実施形態では、mmvd候補フラグ(例えば、mmvd_cand_flag[ x0 ][ y0 ])を適用して、マージ候補リスト内の第1の候補(0)または第2の候補(1)が、mmvd_distance_idx[ x0 ][ y0 ]およびmmvd_direction_idx[ x0 ][ y0 ]から導出された動きベクトル差と共に使用されるかどうかを指定することができる。配列インデックスx0,y0は、ピクチャの左上ルマサンプルに対する考慮されるコーディングブロックの左上ルマサンプルの位置(x0,y0)を指定する。mmvd_cand_flag[ x0 ][ y0 ]が存在しない場合、mmvd_cand_flag[ x0 ][ y0 ]は0に等しいと推測することができる。
【0100】
いくつかの実施形態では、mmvd距離フラグ(例えば、mmvd_distance_idx[ x0 ][ y0 ])を適用して、表3で指定されるようにMmvdDistance[ x0 ][ y0 ]を導出するために使用されるインデックスを指定することができる。配列インデックスx0,y0は、ピクチャの左上ルマサンプルに対する考慮されるコーディングブロックの左上ルマサンプルの位置(x0,y0)を指定する。
【0101】
【0102】
いくつかの実施形態では、mmvd方向フラグ(例えば、mmvd_direction_idx[ x0 ][ y0 ])を適用して、表4で指定されるようにMmvdSign[ x0 ][ y0 ]を導出するために使用されるインデックスを指定することができる。配列インデックスx0,y0は、ピクチャの左上ルマサンプルに対する考慮されるコーディングブロックの左上ルマサンプルの位置(x0,y0)を指定する。
【0103】
【0104】
表3から導出された距離値(例えば、MmvdDistance[ x0 ][ y0 ])および方向値(例えば、MmvdSign[ x0 ][ y0 ])に基づいて、マージおよびMVDオフセット(例えば、MmvdOffset[ x0 ][ y0 ])の両方の成分(例えば、X成分およびY成分)は、式1および式2において以下のように導出することができる。
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][0] 式(1)
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][1] 式(2)
ここで、[0]はMmvdOffsetのX成分を表すことができ、[1]はMmvdOffsetのY成分を表すことができる。
【0105】
ジオメトリ適応ブロック分割(GEO)の例は以前に提案されている。GEOは、CUを2つの部分に分割するための三角形予測モード(TPM)に加えて、CUの中心に対して32個の角度(例えば、11.25°の等しい分離で0°と360°との間で量子化される)および5個のエッジによって区別される140個の異なる区分方式をサポートすることができる。
図10は、CU(1000)におけるジオメトリマージモード(GEO)の分割境界(1002)を示す。
図10に示すように、CU(1000)は、分割境界(1002)によって第1の部分(1000A)と第2の部分(1000B)に分割することができる。さらに、角度φ
iは、0度~360度の量子化角度を表すことができ、距離オフセットρ
iは、最大距離ρ
maxの量子化されたオフセットを表すことができる。ρ
maxの値は、wまたはhのいずれかについて式(3)によって幾何学的に導出することができる。wはCU(1000)の幅とすることができ、hはCU(1000)の高さとすることができ、これは8に等しく、log2スケーリングされた短いエッジ長でスケーリングすることができる。φが0°に等しいとき、ρ
maxはw/2に等しくなり得、φが90°に等しいとき、ρ
maxはh/2に等しくなり得る。8×8ブロックのシフトバック「ρ
margin=1.0」サンプルは、分割境界がコーナに近すぎることを回避するためのものである。
【数1】
ここで、
ρ
margin=1.0 式(4)
【0106】
GEOでは、各分割モード(例えば、角度インデックスとエッジインデックスのペア)は、2つの分割化された部分上でサンプルをブレンドするために画素適応重みテーブルを割り当てることができ、サンプルの重み値は、0~8の範囲とすることができ、画素(またはCU)の中心位置からエッジまで定義されるL2距離によって決定することができる。基本的に、重み値が割り当てられるときに単位利得制約にしたがうことができる。したがって、小さい重み値がGEO分割に割り当てられる場合、大きい相補的なものを他方の分割に割り当てることができ、合計は最大8である。
【0107】
動きベクトル差によるジオメトリ予測モード(GMVD)などのMMVDとGPMの組み合わせが以前に提案された。GMVDフラグは、GMVDモードが使用されるかどうかを指定するために、GPM CU(またはGPMによって分割されたCU)に対して最初にシグナリングされ得る。GMVDフラグが真である場合には、GPM CUの各ジオメトリ分割は、GMVDを使用するか否かをさらに判定することができる。GMVDがジオメトリ分割に使用される場合には、GPMマージ候補が選択された後に、分割の動きは、シグナリングされたMVD情報によってさらに洗練され得る。他のすべての手順は、GPMと同じに保つことができる。
【0108】
GMVDでは、MVDは、MMVDと同様に、距離と方向のペアとしてシグナリングすることができる。GMVDには、9つの候補距離(例えば、1/4ペル、1/2ペル、1ペル、2ペル、3ペル、4ペル、6ペル、8ペル、および16ペル)、および8つの候補方向(例えば、4つの水平/垂直方向および4つの対角方向)が含まれ得る。また、ピクチャレベル・フルペルMMVDフラグ(例えば、pic_fpel_mmvd_enabled_flag)が1であるとき、GMVDにおけるMVDも、MMVDと同様に2だけ左シフトさせることができる。
【0109】
MMVDとGPMとの別の組み合わせは、JVET-V0125で提案された。表5は、GPMの上にMMVD情報をシグナリングするための例示的なシンタックステーブルを示す。
【0110】
【0111】
さらに、2つのGPM分割のMV改良のより柔軟な組み合わせを可能にするために、以下の条件を、GPMの第1の分割(例えば、merge_gpm_idx0)およびGPMの第2の分割(例えば、merge_gpm_idx1)のシグナリングされた値に適用することができる。(1)第1の分割および第2のGPM分割の両方がMV改良を適用しない場合(すなわち、merge_gpm_mmvd_enable_flag0およびmerge_gpm_mmvd_enable_flag1は0に等しい)、2つのGPM分割のマージインデックスは同一であることが許可されない、(2)2つのGPM分割の一方がMV改良を適用し、他方が適用しない(例えば、merge_gpm_mmvd_enable_flag0およびmerge_gpm_mmvd_enable_flag1の一方は1に等しく、他方は0に等しい)場合、2つのGPM分割のマージインデックスは同一であることが許容される、(3)2つのGPM分割の両方がMV改良(例えば、merge_gpm_mmvd_enable_flag0およびmerge_gpm_mmvd_enable_flag1は1に等しい)を適用する場合、マージインデックスは、2つの分割のMV改良が異なるときは同じになることが許可され、2つのMV改良が同一であるときは同じになることが許可されない。
【0112】
GPMにおける混合プロセスに起因して、2つの分割のMVは、異なるように制約され得る。しかしながら、GPMとMMVDとを組み合わせる場合、このような制約はシグナリングによって維持することができず、非効率的である。別の問題は、2つのGPM分割の両方がシグナリングされる必要がある場合、MMVD有効化フラグ、MMVD距離インデックス、およびMMVD方向インデックスのシグナリングコストが高価になる可能性があることである。シグナリングコストは、特定の方法で低減することができる。
【0113】
本開示の一実施形態では、MMVD情報のシグナリングは依然としてGPMの上で実行することができるが、GPM動きベクトルとMMVD情報とが2つのGPM分割について同じになる場合を回避するために、GPMの最終MVはCUレベルで適応的に導出することができる。
【0114】
一例では、GPMの第1の分割についてのオフセット値(例えば、MmvdOffset0)の導出は、依然として同じであり、式(5)および式(6)として示すことができる。
MmvdOffset0[0]=(MmvdDistance0<<2)*MmvdSign0[0] 式(5)
MmvdOffset0[1]=(MmvdDistance0<<2)*MmvdSign0[1] 式(6)
ここで、MmvdDistance0は、入力として距離インデックス(例えば、merge_gpm_mmvd_distance_idx0)を用いて表3から調べることができ、方向値(例えば、MmvdSign0)は、入力として方向インデックス(例えば、merge_gpm_mmvd_direction_idx0)を用いて表4から調べることができる。[0]は、MmvdOffset0のX成分を表すことができ、[1]は、MmvdOffset0のY成分を表すことができる。分割0(または第1の分割)の最終MV0は、式(7)および式(8)のように導出することができる。
MV0[0]=MVP0[0]+MmvdOffset0[0] 式(7)
MV0[1]=MVP0[1]+MmvdOffset0[1] 式(8)
ここで、MVP0は、分割0(または第1の分割)に対するGPMのMV予測を示すことができる。[0]は、MV0のX成分を表すことができ、[1]は、MV0のY成分を表すことができる。
【0115】
GPMの第2の分割については、GPMの第2の分割のオフセット値(例えば、MmvdOffset1)の導出は、式(9)および式(10)に示すことができる。
MmvdOffset1[0]=(MmvdDistance1<<2)*MmvdSign1[0] 式(9)
MmvdOffset1[1]=(MmvdDistance1<<2)*MmvdSign1[1] 式(10)
ここで、MmvdDistance1は、merge_gpm_mmvd_distance_idx1を入力として表3から参照することができ、MmvdSign1は、merge_gpm_mmvd_direction_idx1を入力として表4から参照することができる。[0]は、MmvdOffset1のX成分を表すことができ、[1]は、MmvdOffset1のY成分を表すことができる。さらに、(MVP1[0]+MmvdOffset1[0])とMV0[0]との比較、および(MVP1[1]+MmvdOffset1[1])とMV0[1]との比較を行うことができる。(MVP1[0]+MmvdOffset1[0])がMV0[0]に等しく、(MVP1[1]+MmvdOffset1[1])がMV0[1]に等しい場合、これは、GPMの第1の分割および第2の分割が同じ参照フレームを指すことを示すことができる。したがって、
(merge_gpm_mmvd_distance_idx1+1)およびmerge_gpm_mmvd_direction_idx1を入力とするテーブルルックアップによって、MMVDの修正されたオフセット値(例えば、MmvdOffset1’)を導出することができる。修正されたMmvdOffset1’は、式(11)および式(12)に示すことができる。
MmvdOffset1[0]’=(MmvdDistance1’<<2)*MmvdSign1[0] 式(11)
MmvdOffset1[1]’=(MmvdDistance1’<<2)*MmvdSign1[1] 式(12)
ここで、修正された距離値(例えば、MmvdDistance1’)は、入力としてmerge_gpm_mmvd_distance_idx1+1を用いて表3から調べることができ、方向値(例えば、MmvdSign1)は、入力としてmerge_gpm_mmvd_direction_idx1を用いて表4から調べることができる。[0]は、修正されたオフセット値MmvdOffset1’のX成分を表すことができ、[1]は、修正されたオフセット値MmvdOffset1’のY成分を表すことができる。分割1(または第2の分割)の最終MV1は、式(13)および式(14)のように導出することができる。
MV1[0]=MVP1[0]+MmvdOffset1[0]’ 式(13)
MV1[1]=MVP1[1]+MmvdOffset1[1]’ 式(14)
ここで、MVP1は、分割1(または第2の分割)についてのGPMのMV予測を示すことができる。[0]はMV1のX成分を表すことができ、[1]はMV1のY成分を表すことができる。そうではなく、(MVP1[0]+MmvdOffset1[0])がMV0[0]に等しくなく、かつ/または(MVP1[1]+MmvdOffset1[1])がMV0[1]に等しくない場合、MmvdOffset1は、merge_gpm_mmvd_distance_idx1およびmerge_gpm_mmvd_direction_idx1を入力として使用して導出することができる。したがって、式(9)および式(10)に基づいて、第2の分割についてのMMVDのオフセット値(例えば、MmvdOffset1)を求めることができる。したがって、分割1(または第2の分割)の最終MV1は、式(15)および式(16)のように導出することができる。
MV1[0]=MVP1[0]+MmvdOffset1[0] 式(15)
MV1[1]=MVP1[1]+MmvdOffset1[1] 式(16)
ここで、MVP1は、分割1(または第2の分割)についてのGPMのMV予測を示すことができる。[0]はMV1のX成分を表すことができ、[1]はMV1のY成分を表すことができる。
【0116】
別の例では、適合性要件は、2つのGPM分割の最終MV(例えば、MV0およびMV1)が同一になるように、GPMでコーディングされたブロックのMMVDをシグナリングしないことである。したがって、適合性要件にしたがって、GPMによって分割されたCUの第1の部分についての動きベクトル(例えば、MV0)は、GPMによって分割されたCUの第2の部分についての動きベクトル(例えば、MV1)と同一ではない。
【0117】
本開示の別の実施形態では、merge_gpm_mmvd_enable_flagなどのMMVD有効化フラグをシグナリングして、GPMモードでコーディングされたブロックに対してMMVDが有効化されているかどうかを示すことができる。MMVD有効化フラグが真の場合、MMVDは両方のGPM分割(例えば、第1の分割および第2の分割)に適用され得る。
【0118】
一例では、merge_gpm_mmvd_enable_flagが真である場合、MMVD距離インデックスおよびMMVD方向インデックスの1つのセットをシグナリングすることができる。したがって、MMVD距離インデックスおよびMMVD方向インデックスを入力として使用して、表3および表4にそれぞれ基づいて距離値(例えば、MmvdDistance)および方向値(例えば、MmvdSign)を取得することができる。両方のGPM分割に同じMVオフセットを適用することができる。式(17)および式(18)は、第1の分割におけるMVオフセットを示し、式(19)および式(20)は、第2の分割におけるMVオフセットを示す。
MmvdOffset0[0]=(MmvdDistance<<2)*MmvdSign[0] 式(17)
MmvdOffset0[1]=(MmvdDistance<<2)*MmvdSign[1] 式(18)
MmvdOffset1[0]=(MmvdDistance<<2)*(MmvdSign[0]) 式(19)
MmvdOffset1[1]=(MmvdDistance<<2)*(MmvdSign[1]) 式(20)
ここで、[0]はX成分を表すことができ、[1]はY成分を表すことができる。
【0119】
別の例では、merge_gpm_mmvd_enable_flagが真である場合、MMVD距離インデックスおよびMMVD方向インデックスの1つのセットをシグナリングすることができる。第1のGPM分割のMVオフセットは、式(21)および式(22)に示すことができるシグナリングされたMMVD距離インデックスおよびMMVD方向インデックスによって導出することができる。第2のGPM分割のMVオフセットは、シグナリングされたMMVD距離インデックス、およびシグナリングされたMMVD方向インデックスに基づく修正されたMMVD方向インデックスによって導出することができる。したがって、第1の分割(例えば、MmvdOffset0)のMVオフセットは、式(21)および式(22)において以下のように導出することができる。
MmvdOffset0[0]=(MmvdDistance<<2)*MmvdSign[0] 式(21)
MmvdOffset0[1]=(MmvdDistance<<2)*MmvdSign[1] 式(22)
第2の分割(例えば、MmvdOffset1)のMVDオフセットは、以下の式(23)および式(24)に基づいて導出することができる。
MmvdOffset1[0]=(MmvdDistance<<2)*(-MmvdSign[0]) 式(23)
MmvdOffset1[1]=(MmvdDistance<<2)*(-MmvdSign[1]) 式(24)
ここで、MmvdDistanceは、MMVD距離インデックス(例えば、merge_gpm_mmvd_distance_idx)を入力として表3から調べることができ、MmvdSignは、MMVD方向インデックス(例えば、merge_gpm_mmvd_direction_idx)を入力として表4から調べることができる。式(21)~式(24)に基づいて、GPMの第2の分割は、GPMの第1の分割の方向値(例えば、MmvdSign)とは反対の修正された方向値(例えば、-MmvdSign)を有することができることが示され得る。
【0120】
さらに別の例では、merge_gpm_mmvd_enable_flagが真である場合、MMVD位置インデックスは、GPMの2つの分割の方向および距離情報の組み合わせを示すようにシグナリングされ得る。これにより、距離情報および方向情報に基づいて、GPMの第1の分割についてのMMVDのオフセット値およびGPMの第2の分割についてのMMVDのオフセット値を決定することができる。GPMの2つの分割の方向および距離情報の可能な組み合わせは、固定された順序に基づいてシグナリングすることができる。さらに、GPMの2つの分割の同じ最終MVをもたらし得る組み合わせは、CUレベルで除去することができる。さらに、位置インデックスは、可変長コーディングでシグナリングすることができる。
【0121】
図11は、本開示のいくつかの実施形態による例示的なデコーディングプロセス(1100)の概要を示す第1のフローチャートを示す。
図12は、本開示のいくつかの実施形態による例示的なデコーディングプロセス(1200)の概要を示す第2のフローチャートを示す。
図13は、本開示のいくつかの実施形態による例示的なエンコーディングプロセス(1300)の概要を示す第1のフローチャートを示す。
図14は、本開示のいくつかの実施形態による例示的なデコーディングプロセス(1400)の概要を示す第2のフローチャートを示す。提案された方法は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。
【0122】
実施形態では、プロセスの任意の動作(例えば、1100、1200、1300、および1400)は、必要に応じて、任意の量または順序で組み合わせるか、または配置することができる。実施形態では、プロセスの動作のうちの2つ以上(例えば、1100、1200、1300、および1400)が並行して実行されてもよい。
【0123】
プロセス(例えば、1100、1200、1300、および1400)は、再構成中のブロックの予測ブロックを生成するために、ブロックの再構成に使用することができる。様々な実施形態では、プロセス(例えば、1100、1200、1300、および1400)は、端末デバイス(210)、(220)、(230)および(240)の処理回路、ビデオエンコーダ(303)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオエンコーダ(503)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(例えば、1100、1200、1300、および1400)はソフトウェア命令で実現され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(例えば、1100、1200、1300、および1400)を実行する。
【0124】
図11に示すように、プロセス(1100)は、(S1110)から開始することができる。(S1110)において、コーディングされたビデオビットストリームからブロックのコーディングされた情報を受信することができる。コーディングされた情報は、ブロックがGPMに基づいて第1の部分と第2の部分に分割され、MMVDに基づいてインター予測されていることを示すことができる。GPMは、複数の角度インデックスおよび複数のエッジインデックスを含むことができる。複数の角度インデックスは角度を示すことができ、複数のエッジインデックスはブロックの中心に対するエッジ位置を示すことができる。MMVDは、複数の距離インデックスおよび複数の方向インデックスを含むことができる。複数の距離インデックスは距離を示すことができ、複数の方向インデックスは開始動きベクトルに対する方向を示すことができる。
【0125】
そして、プロセス(1100)は、(S1120)に進むことができる。(S1120)において、GPMによって分割されたブロックの第1の部分についての動きベクトルが、GPMによって分割されたブロックの第2の部分についての動きベクトルと同一でないことを判定することができる。
【0126】
(S1130)において、ブロックは、ブロックの第1の部分についての動きベクトルおよびブロックの第2の部分についての動きベクトルに基づいて再構成することができる。
【0127】
プロセス(1100)では、(i)第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測、ならびに(ii)ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測を決定することができる。ブロックの第1の部分についての動きベクトルは、ブロックの第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測に基づいて決定され得る。ブロックの第2の部分についての動きベクトルは、(i)ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測、ならびに(ii)ブロックの第1の部分についての動きベクトルに基づいて決定され得る。
【0128】
プロセス(1100)では、第1の部分についてのMMVDのオフセット値および第2の部分についてのMMVDのオフセット値を決定するために、ブロックの第1の部分についてのMMVDのオフセット値を、第1の距離値と第1の方向値の積に基づいて決定することができる。ブロックの第2の部分についてのMMVDのオフセット値は、第2の距離値と第2の方向値の積に基づいて決定され得る。第1の距離値は、第1の距離インデックス情報に基づいて取得され得る。第1の方向値は、第1の方向インデックス情報に基づいて取得され得る。第2の距離値は、第2の距離インデックス情報およびブロックの第1の部分の動きベクトルに基づいて取得され得る。第2の方向値は、第2の方向インデックス情報に基づいて取得され得る。
【0129】
いくつかの実施形態では、ブロックの第2の部分についてのMMVDのオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和がブロックの第1の部分についての動きベクトルと等しくないことに応答して、ブロックの第2の部分についての動きベクトルは、ブロックの第2の部分についてのMMVDのオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和と等しくなるように決定され得る。
【0130】
いくつかの実施形態では、ブロックの第2の部分についての動きベクトルを決定するために、ブロックの第2の部分についてのMMVDのオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和がブロックの第1の部分についての動きベクトルに等しいことに応答して、MMVDの修正されたオフセット値は、ブロックの第2の部分についての修正された第2の距離値と第2の方向値の積に基づいて決定され得、修正された第2の距離値は、第2の距離インデックス情報に1を加えたものに基づいて取得され得る。ブロックの第2の部分についての動きベクトルは、ブロックの第2の部分についてのMMVDの修正されたオフセット値とブロックの第2の部分についてのGPMの動きベクトル予測との和に等しくなるように、その後に決定され得る。
【0131】
いくつかの実施形態では、適合性要件にしたがって、GPMによって分割されたブロックの第1の部分についての動きベクトルは、GPMによって分割されたブロックの第2の部分についての動きベクトルと同一でなくてもよい。
【0132】
図12に示すように、プロセス(1200)は、(S1210)から開始することができる。(S1210)において、ブロックに関連付けられた単一のシンタックス要素を、コーディングされたビデオビットストリームから受信することができ、単一のシンタックス要素は、(1)ブロックがGPMに基づいて第1の部分と第2の部分に分割されているかどうか、および(2)第1の部分と第2の部分の各々がMMVDに基づいてインター予測されているかどうかの両方を示すことができる。GPMは、複数の角度インデックスおよび複数のエッジインデックスを含むことができる。複数の角度インデックスは角度を示すことができ、複数のエッジインデックスはブロックの中心に対するエッジ位置を示すことができる。MMVDは、複数の距離インデックスおよび複数の方向インデックスを含むことができる。複数の距離インデックスは距離を示すことができ、複数の方向インデックスは開始動きベクトルに対する方向を示すことができる。
【0133】
(S1220)において、ブロックの第1の部分および第2の部分の両方についてのMMVDのオフセット値を、単一のシンタックス要素が第1の値であることに応答して決定することができる。
【0134】
(S1230)において、ブロックの第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測に基づいて、ブロックの第1の部分についての動きベクトルを決定することができる。
【0135】
(S1240)において、ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測に基づいて、ブロックの第2の部分についての動きベクトルを決定することができる。
【0136】
次いで、プロセス(1200)は(S1250)に進むことができ、ブロックは、ブロックの第1の部分についての決定された動きベクトルおよびブロックの第2の部分についての決定された動きベクトルに基づいて再構成することができる。
【0137】
いくつかの実施形態では、単一のシンタックス要素が第1の値であることに応答して、ブロックの第1の部分および第2の部分の両方のMMVDのオフセット値を決定するために、MMVDに関連付けられた距離インデックス情報および方向インデックス情報が受信され得る。距離値は距離インデックス情報に基づいて決定され得、方向値は方向インデックス情報に基づいて決定され得る。ブロックの第1の部分についてのMMVDのオフセット値およびブロックの第2の部分についてのMMVDのオフセット値は、距離値と方向値の積に等しいと決定され得る。
【0138】
いくつかの実施形態では、単一のシンタックス要素が第1の値であることに応答して、ブロックの第1の部分および第2の部分の両方のMMVDのオフセット値を決定するために、MMVDに関連する距離インデックス情報および方向インデックス情報が受信され得る。距離値は距離インデックス情報に基づいて決定され得、方向値は方向インデックス情報に基づいて決定され得る。ブロックの第1の部分についてのMMVDのオフセット値は、距離値と方向値の積に基づいて決定され得る。ブロックの第2の部分についてのMMVDのオフセット値は、距離値と修正された方向値の積に基づいて決定され得、修正された方向値は方向値と反対であり得る。
【0139】
いくつかの実施形態では、単一のシンタックス要素が第1の値であることに応答して、ブロックの第1の部分および第2の部分の両方のMMVDのオフセット値を決定するために、MMVDに関連する位置インデックス情報をコーディングされたビデオビットストリームから受信することができる。位置インデックス情報は、ブロックの第1の部分および第2の部分についてMMVDに関連付けられた距離情報と方向情報の組み合わせを示すことができる。ブロックの第1の部分についてのMMVDのオフセット値およびブロックの第2の部分についてのMMVDのオフセット値は、距離情報および方向情報に基づいて決定され得る。
【0140】
いくつかの実施形態では、位置インデックス情報は、可変長コーディングに基づいてコーディングされ得る。
【0141】
図13に示すように、プロセス(1300)は、(S1310)から開始することができる。(S1310)において、ビデオの現在のピクチャ内のブロックは、GPMに基づいて第1の部分および第2の部分に分割することができ、ブロックの第1の部分および第2の部分についてMMVDに基づいてインター予測を実行することができる。GPMは、ブロックの中心に対して複数の角度インデックスおよび複数のエッジインデックスを含むことができる。MMVDは、開始動きベクトルに対する複数の距離インデックスおよび複数の方向インデックスを含むことができる。
【0142】
(S1320)において、第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測を決定することができる。さらに、ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測を決定することができる。
【0143】
(S1330)において、ブロックの第1の部分についての動きベクトルは、ブロックの第1の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測に基づいて決定することができる。
【0144】
(S1340)において、ブロックの第2の部分についての動きベクトルは、(i)ブロックの第2の部分についてのMMVDのオフセット値およびGPMの動きベクトル予測、ならびに(ii)ブロックの第1の部分についての動きベクトルに基づいて決定することができる。
【0145】
(S1350)において、第1のシグナリング情報および第2のシグナリング情報を続いて生成することができる。第1のシグナリング情報は、ブロックがGPMに基づいて分割されていることを示すことができ、第2のシグナリング情報は、ブロックがMMVDに基づいてインター予測されていることを示すことができる。
【0146】
図14に示すように、プロセス(1400)は、(S1410)から開始することができる。ビデオの現在のピクチャ内のブロックは、GPMに基づいて第1の部分および第2の部分に分割することができ、ブロックの第1の部分および第2の部分についてMMVDを用いたマージモードに基づいてインター予測を実行することができる。GPMは、ブロックの中心に対して複数の角度インデックスおよび複数のエッジインデックスを含むことができる。MMVDは、開始動きベクトルに対する複数の距離インデックスおよび複数の方向インデックスを含むことができる。
【0147】
(S1420)において、距離値は距離インデックス情報に基づいて決定することができ、方向値はMMVDに関連する方向インデックス情報に基づいて決定することができる。
【0148】
(S1430)において、距離値および方向値に基づいて、第1の部分についてのMMVDのオフセット値を決定することができ、ブロックの第2の部分についてのMMVDのオフセット値を決定することができる。
【0149】
(S1440)において、MMVDに関連付けられた距離インデックス情報および方向インデックス情報を示すためのシグナリング情報を生成することができる。
【0150】
上述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に格納されたコンピュータソフトウェアとして実現することができる。例えば、
図15は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(1500)を示す。
【0151】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)およびグラフィック処理装置(GPU)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様のメカニズムの対象となり得る任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0152】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム用デバイス、およびモノのインターネット・デバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0153】
コンピュータシステム(1500)の
図15に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム(1500)の例示的な実施形態に示されている構成要素のいずれか1つまたはそれらの組み合わせに関する依存性または要件を有するものとして解釈されるべきではない。
【0154】
コンピュータシステム(1500)は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)など、1人または複数のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定のメディアをキャプチャするためにも使用され得る。
【0155】
入力ヒューマンインターフェースデバイスは、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチスクリーン(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイク(1506)、スキャナ(1507)、カメラ(1508)などのうちの1つまたは複数を含むことができる(それぞれ1つのみ図示されている)。
【0156】
コンピュータシステム(1500)はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて、1人または複数のユーザの感覚を刺激していることが可能である。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1510)、データグローブ(図示せず)、またはジョイスティック(1505)による触覚フィードバックだが、入力デバイスとして機能しない触覚フィードバックデバイスも存在する場合がある)、オーディオ出力デバイス(スピーカ(1509)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1510)などであり、それぞれタッチ画面入力機能があってもなくてもよく、それぞれ触覚フィードバック機能があってもなくてもよく、ステレオグラフィック出力、仮想現実の眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して2次元の視覚的出力または3次元以上の出力を出力できるものもある)、およびプリンタ(図示せず)を含んでもよい。
【0157】
コンピュータシステム(1500)はまた、人間がアクセス可能な記憶装置およびそれらの関連媒体、例えば、CD/DVDなどの媒体(1521)と共にCD/DVD ROM/RW(1520)を含む光学媒体、サムドライブ(1522)、取り外し可能なハードドライブまたはソリッドステートドライブ(1523)、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなどを含むことができる。
【0158】
また、当業者は、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0159】
コンピュータシステム(1500)はまた、1つまたは複数の通信ネットワーク(1555)へのインターフェース(1554)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワークなどのローカルエリアネットワーク、ケーブルテレビ、衛星テレビ、地上波放送テレビを含むTV有線または無線ワイドエリアデジタルネットワーク、車両用、CANBusを含む産業用などを含む。特定のネットワークは一般に、特定の汎用データポートまたは周辺バス(1549)(例えば、コンピュータシステム(1500)のUSBポートなど)に接続された外部ネットワーク・インターフェース・アダプタを必要とし、他のものは、一般に、以下に説明するようにシステムバスに接続することにより、コンピュータシステム(1500)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1500)は他のエンティティと通信できる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイス)、または双方向、例えば、ローカルエリアまたはワイドエリアデジタルネットワークを使用した他のコンピュータシステムへの通信である。特定のプロトコルおよびプロトコルスタックは、上記で説明されたように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0160】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1500)のコア(1540)に接続することができる。
【0161】
コア(1540)は、1つまたは複数の中央処理装置(CPU)(1541)、グラフィック処理装置(GPU)(1542)、フィールド・プログラマブル・ゲート・エリア(FPGA)(1543)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1544)、グラフィックアダプタ(1550)などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(1547)と共に、システムバス(1548)を介して接続することができる。一部のコンピュータシステムでは、システムバス(1548)に1つまたは複数の物理プラグの形でアクセスして、追加のCPU、GPUなどによる拡張を可能にすることができる。周辺機器は、コアのシステムバス(1548)に直接、または周辺バス(1549)を介して接続することができる。一例では、スクリーン(1510)をグラフィックアダプタ(1550)に接続することができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0162】
CPU(1541)、GPU(1542)、FPGA(1543)、およびアクセラレータ(1544)は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行できる。コンピュータコードは、ROM(1545)またはRAM(1546)に記憶させることができる。過渡的なデータもRAM(1546)に記憶でき、これに対し永続的なデータは、例えば、内部大容量記憶装置(1547)に記憶することができる。キャッシュメモリを使用することによって、任意のメモリ装置に素早く記憶し探索することが可能になり、1つまたは複数のCPU(1541)、GPU(1542)、大容量記憶装置(1547)、ROM(1545)、RAM(1546)などに密接に関連付けることができる。
【0163】
コンピュータ可読媒体は、様々なコンピュータ実施動作を行うためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであり得るし、またはそれらは、コンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであり得る。
【0164】
限定ではなく一例として、アーキテクチャ(1500)、特にコア(1540)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上で紹介したユーザがアクセス可能な大容量記憶装置、およびコア内部大容量記憶装置(1547)やROM(1545)などの非一時的な性質を持つコア(1540)の特定の記憶装置に関連する媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(1540)によって実行され得る。コンピュータ可読媒体は、特定のニーズにしたがって、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、RAM(1546)に格納されたデータ構造の定義やソフトウェアで定義されたプロセスにしたがってそのようなデータ構造を変更することを含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を、コア(1540)および特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。加えて、または代替として、コンピュータシステムは、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりにまたはソフトウェアと一緒に動作することができる回路(例えばアクセラレータ(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 コーディングユニット
【0165】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正、置換、および様々な代替の等価物がある。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0166】
101 現在のブロック
200 通信システム
210、220、230 端末デバイス
250 ネットワーク
300 通信システム
301 ビデオソース
302 ビデオピクチャのストリーム
303 ビデオエンコーダ
304 エンコードされたビデオデータ
305 ストリーミングサーバ
306 クライアントサブシステム
307、309 エンコードされたビデオデータのコピー
310 ビデオデコーダ
311 出力ストリーム
312 ディスプレイ
313 キャプチャサブシステム
320、330 電子デバイス
401 チャネル
410 ビデオデコーダ
412 描画デバイス
415 バッファメモリ
420 エントロピーデコーダ/パーサ
421 シンボル
430 電子デバイス
431 受信機
451 スケーラ/逆変換ユニット
452 イントラピクチャ予測ユニット
453 動き補償予測ユニット
455 アグリゲータ
456 ループフィルタユニット
457 参照ピクチャメモリ
458 現在のピクチャバッファ
501 ビデオソース
503 ビデオエンコーダ
520 電子デバイス
530 ソースコーダ
532 コーディングエンジン
533 ローカルデコーダ
534 参照ピクチャメモリ
535 予測器
540 送信機
543 コーディングされたビデオシーケンス
545 エントロピーコーダ
550 コントローラ
560 通信チャネル
603 ビデオエンコーダ
621 汎用コントローラ
622 イントラエンコーダ
623 残差計算器
624 残差エンコーダ
625 エントロピーエンコーダ
626 スイッチ
628 残差デコーダ
630 インターエンコーダ
710 ビデオデコーダ
771 エントロピーデコーダ
772 イントラデコーダ
773 残差デコーダ
774 再構成モジュール
780 インターデコーダ
1000A 第1の部分
1000B 第2の部分
1002 分割境界
1100 プロセス
1200 デコーディングプロセス
1300 エンコーディングプロセス
1400 デコーディングプロセス
1500 コンピュータシステム
1501 キーボード
1502 マウス
1503 トラックパッド
1505 ジョイスティック
1506 マイク
1507 スキャナ
1508 カメラ
1509 スピーカ
1510 タッチスクリーン
1521 媒体
1522 サムドライブ
1523 ソリッドステートドライブ
1540 コア
1541 中央処理装置(CPU)
1542 グラフィック処理装置(GPU)
1543 フィールド・プログラマブル・ゲート・エリア(FPGA)
1544 ハードウェアアクセラレータ
1545 読み取り専用メモリ(ROM)
1546 ランダムアクセスメモリ
1547 大容量記憶装置
1548 システムバス
1549 周辺バス
1550 グラフィックアダプタ
1554 インターフェース
1555 通信ネットワーク