IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7222086スキップ及びマージモードのためのマルチ仮説のシグナリング及び動きベクトル差分によるマージの距離オフセットテーブルのシグナリングのための方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-06
(45)【発行日】2023-02-14
(54)【発明の名称】スキップ及びマージモードのためのマルチ仮説のシグナリング及び動きベクトル差分によるマージの距離オフセットテーブルのシグナリングのための方法及び装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20230207BHJP
   H04N 19/52 20140101ALI20230207BHJP
【FI】
H04N19/70
H04N19/52
【請求項の数】 14
(21)【出願番号】P 2021525116
(86)(22)【出願日】2019-12-13
(65)【公表番号】
(43)【公表日】2022-01-19
(86)【国際出願番号】 US2019066318
(87)【国際公開番号】W WO2020123998
(87)【国際公開日】2020-06-18
【審査請求日】2021-05-10
(31)【優先権主張番号】62/779,407
(32)【優先日】2018-12-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/782,848
(32)【優先日】2018-12-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/713,490
(32)【優先日】2019-12-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】チョイ,ベヨンドゥ
(72)【発明者】
【氏名】リィウ,シャン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2014/025692(WO,A1)
【文献】Man-Shu Chiang, et al.,CE10.1: Combined and multi-hypothesis prediction,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0257-v1,11th Meeting: Ljubljana, SI,2018年07月,pp.1-6
【文献】Seungsoo Jeong, Min Woo Park, and Chanyul Kim,CE4 Ultimate motion vector expression in J0024 (Test 4.2.9),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0115-v4,11th Meeting: Ljubljana, SI,2018年07月,pp.1-7
【文献】Li Jingya, Ru-Ling Liao, and Chong Soon Lim,CE4-related: Improvement on ultimate motion vector expression,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0408-v2,12th Meeting: Macao, CN,2018年10月,pp.1-4
【文献】Guichun Li, Xiaozhong Xu, Xiang Li, and Shan Liu,CE4-related: MMVD offset table signaling,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0435,13th Meeting: Marrakech, MA,2019年01月,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダで実行されるビデオデコーディングの方法であって、
現在ブロックのためのシグナリング情報を含むコーディングされたビデオビットストリームを受信するステップであって、前記シグナリング情報は(i)前記現在ブロックがマージモードでコーディングされていること、及び(ii)前記現在ブロックがマルチ仮説モードでコーディングされているかどうか、を示す、ステップと、
前記シグナリング情報に基づいて、前記現在ブロックのためのブロック再構成情報を決定するステップと、
決定された前記ブロック再構成情報を用いて前記現在ブロックを再構成するステップと、
を含み、
前記現在のブロックが前記マルチ仮説モードでコーディングされていることを、前記シグナリング情報が示すという決定に応答して、前記シグナリング情報は、マージ候補リスト内の候補の最大数から2を引いた最大値を有するマージインデックスを含み、
前記マージインデックスは単項コードでコーディングされている、方法。
【請求項2】
前記マージモードは、第1フラグでシグナリングされ、
前記マルチ仮説モードは第2フラグでシグナリングされる、
請求項記載の方法。
【請求項3】
前記ブロック再構成情報は、前記マージインデックスによって特定される第1マージ候補と、前記マージインデックスから導出される第2マージ候補と、を含む、
請求項1又は2記載の方法。
【請求項4】
マージ候補リストの候補数が2未満であるという決定に応答して、前記現在ブロックが前記マルチ仮説モードでコーディングされるべきでないことが決定される、
請求項記載の方法。
【請求項5】
マージインデックスがマージ候補リスト内の候補の最大数から1を引いた値以上の値を有するという決定に応答して、前記現在ブロックが前記マルチ仮説モードでコーディングされるべきでないことが決定される、
請求項1乃至4いずれか1項記載方法。
【請求項6】
前記現在ブロックは、マージ動きベクトル差分(MMVD)モードでコーディングされ、
前記シグナリング情報は、MMVD距離テーブルのためのオーダーコードを含む、
請求項1乃至いずれか1項記載の方法。
【請求項7】
前記ブロック再構成情報は、前記MMVD距離テーブルを用いて得られる動きベクトルを含む、
請求項記載の方法。
【請求項8】
前記オーダーコードは、前記MMVD距離テーブルの1つ以上の要素を特定する進オーダーコードである、
請求項6又は7記載の方法。
【請求項9】
前記MMVD距離テーブルの少なくとも1つの要素は、前記2進オーダーコードから推定される、
請求項記載の方法。
【請求項10】
前記オーダーコードは、ベースオーダーコードであり、
前記MMVD距離テーブルの1つ以上の要素を特定する最終的なオーダーコードは、前記ベースオーダーコード、及び、前記最終的なオーダーコードと前記ベースオーダーコードとの間の差分の和から決定される、
請求項記載の方法。
【請求項11】
前記最終的なオーダーコードと前記ベースオーダーコードとの間の前記差分は、前記シグナリング情報に含まれる、
請求項10記載の方法。
【請求項12】
前記オーダーコードは、画像パラメータセット(PPS)のヘッダ及びシークエンスパラメータセット(SPS)のヘッダの一方に含まれる、
請求項記載の方法。
【請求項13】
ビデオデコーディングのためビデオデコーダであって、
現在ブロックのためのシグナリング情報を含むコーディングされたビデオストリームを受信し、前記シグナリング情報は(i)前記現在ブロックがマージモードでコーディングされていること、及び(ii)前記現在ブロックがマルチ仮説モードでコーディングされているかどうか、を示し、
前記シグナリング情報に基づいて、前記現在ブロックのためのブロック再構成情報を決定し、
決定された前記ブロック再構成情報を用いて前記現在ブロックを再構成し、
前記現在のブロックが前記マルチ仮説モードでコーディングされていることを、前記シグナリング情報が示すという決定に応答して、前記シグナリング情報は、マージ候補リスト内の候補の最大数から2を引いた最大値を有するマージインデックスを含み、
前記マージインデックスは単項コードでコーディングされている
ように構成された処理回路を備える、
ビデオデコーダ。
【請求項14】
ビデオデコーダ内のプロセッサによって実行されると、
現在ブロックのためのシグナリング情報を含むコーディングされたビデオビットストリームを受信するステップであって、前記シグナリング情報は(i)前記現在ブロックがマージモードでコーディングされていること、及び(ii)前記現在ブロックがマルチ仮説モードでコーディングされているかどうか、を示す、ステップと、
前記シグナリング情報に基づいて、前記現在ブロックのためのブロック再構成情報を決定するステップと、
決定された前記ブロック再構成情報を用いて前記現在ブロックを再構成するステップと、
を含み、
前記現在のブロックが前記マルチ仮説モードでコーディングされていることを、前記シグナリング情報が示すという決定に応答して、前記シグナリング情報は、マージ候補リスト内の候補の最大数から2を引いた最大値を有するマージインデックスを含み、
前記マージインデックスは単項コードでコーディングされている、
方法をプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照援用
本開示は、2019年12月13日に出願された米国特許出願第16/713,490号「METHOD AND APPARATUS FOR SIGNALING OF MULTI-HYPOTHESIS FOR SKIP AND MERGE MODE AND SIGNALING OF DISTANCE OFFSET TABLE IN MERGE WITH MOTION VECTOR DIFFERENCE(スキップ及びマージモードのためのマルチ仮説のシグナリング及び動きベクトル差分によるマージの距離オフセットテーブルのシグナリングのための方法及び装置)」、2018年12月13日に出願された米国仮特許出願第62/779,407号「methods of signaling of multi-hypothesis for skip/mergemode(スキップ/マージモードのためのマルチ仮説のシグナリング方法)」、及び2018年12月20日に出願された米国仮特許出願第62/782,848号「METHODS OF SIGNALING OF DISTANCE OFFSET TABLE IN MERGE WITH MOTION VECTOR DIFFERENCE(動きベクトル差分によるマージの距離オフセットテーブルのシグナリング方法)」の利益を主張し、これらは、本明細書に参照援用されている。
【0002】
技術分野
本開示は、概して、ビデオコーディングに関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示のコンテキストを全般的に提示するためのものである。現在挙げられているの発明者の研究は、その研究がこの背景部分に記載されている範囲において、また、出願時に他の点では先行技術として適格でないかもしれない説明の側面において、本開示に対する先行技術として明示的にも黙示的にも認められていない。
【0004】
ビデオコーディングとデコーディングは、動き補正を伴う画像間予測(inter-picture prediction)を用いて行うことができる。非圧縮ディジタルビデオは、一連の画像を含むことができ、各画像は、例えば、1920×1080の輝度サンプル及び関連する色サンプルの空間寸法を有する。一連の画像は、固定又は可変の画像レート(例えば、60画像/秒又は60Hz)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920x1080の輝度サンプル解像度)は、1.5Gビット/秒に近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶領域を必要とする
【0005】
ビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減である。圧縮は、場合によっては、2桁以上前述の帯域幅又は記憶スペースの要求を低減するのに役立つ。可逆圧縮及び非可逆圧縮の両方、並びにそれらの組み合わせを用いることができる。可逆圧縮とは、元の信号の正確なコピーを圧縮された元の信号から再構成することができる技術をいう。非可逆圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された用途に役立てるのに十分小さい。ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量は、アプリケーションに依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを容認し得る。達成可能な圧縮比は、より高い許容可能/容認可能歪みはより高い圧縮比をもたらすことができること、を反映することができる。
【0006】
動き補償は、非可逆圧縮技術であることができ、かつ、先行して再構成された画像又はその一部(参照画像)からのサンプルデータのブロックが、動きベクトル(以下、MVとも称する。)によって示される方向に空間的にシフトされた後に、新たな再構成画像又はその一部の予測のために使用される技術に関連付けることができる。
【0007】
場合によっては、参照画像は現在再構成中の画像と同一であることもできる。MVは、X及びYの2次元、又は3次元を有することができ、第3次元は、使用中の参照画像の表示である(後者は、間接的に、時間次元であることができる)。いくつかのビデオ圧縮技術では、サンプルデータの、あるエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接し、デコードの順序(decoding order)でそのMVに先行するサンプルデータの別のエリアに関連するMVから予測することができる。このようにして、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増大させることができる。MV予測は効率的に作用することができ、なぜならば、例えば、(ナチュラルビデオとして既知の)カメラから導出された入力ビデオ信号をコーディングする場合、単一のMVが適用可能であるエリアよりも大きなエリアは、類似の方向に移動するという統計的可能性があり、したがって、場合によっては、隣接するエリアのMVから導出された類似の動きベクトルを用いて予測することができるからである。その結果、所与のエリアについて見出されたMVは、周囲のMVから予測されるMVと類似又は同一になり、それは、エントロピーコーディングの後、MVを直接コーディングする場合に使用されるであろうものよりも、より少ない数のビットで表され得る。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測それ自体は、例えば、いくつかの周囲MVから予測子を計算する際の丸め誤差のために、非可逆的であり得る。
【0008】
様々なMV予測メカニズムがH.265/HEVC (ITU-T Rec. H.265, High Efficiency Video Coding, December 2016)に、記述されている。H.265が提供する多くのMV予測メカニズムのうち、ここでは、以後「空間マージ」と称されるテクニックについて説明する。
【0009】
図1を参照すると、現在ブロック(101)は、空間的にシフトされた同じサイズの先行するブロックから予測可能であることが、モーションサーチプロセス中にエンコーダによって見出されたサンプルを含む。そのMVを直接コーディングする代わりに、1つ以上の参照画像に関連付けられたメタデータから、例えば、A0、A1、及びB0、B1、B2(それぞれ102から106)と示される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、(デコード順において)最新の参照画像から、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照画像からの予測子を使用することができる。
【発明の概要】
【0010】
例示的な実施形態によれば、ビデオデコーダ内で実行されるビデオデコーディングの方法は、現在ブロックのためのシグナリング情報を含むコーディングされたビデオビットストリームを受信するステップを含む。方法はさらに、シグナリング情報に基づいて、現在ブロックのためのブロック再構成情報を決定するステップを含む。方法はさらに、決定されたブロック再構成情報を用いて現在ブロックを再構成するステップを含む。
【0011】
例示的な実施形態によれば、ビデオデコーディングのためのビデオデコーダは、現在のブロックのためのシグナリング情報を含むコーディングされたビデオビットストリームを受信するように構成された処理回路を含む。処理回路はさらに、シグナリング情報に基づいて、現在ブロックのためのブロック再構成情報を決定するように構成されている。処理回路はさらに、決定されたブロック再構成情報を用いて現在ブロックを再構成するように、構成されている。
【0012】
例示的な実施形態によれば、命令が格納されている非一時的コンピュータ可読媒体であって、ビデオデコーダ内のプロセッサによって実行される方法をプロセッサに実行させる非一時的コンピュータ可読媒体であって、方法は、現在ブロックのためのシグナリング情報を含むコーディングされたビデオビットストリームを受信するステップと、シグナリング情報に基づいて、現在ブロックのためのブロック再構成情報を決定するステップと、決定された前記ブロック再構成情報を用いて前記現在ブロックを再構成するステップと、を含む。
【図面の簡単な説明】
【0013】
開示された主題のさらなる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
図1図1は、一実施例における現在ブロック及びその周囲の空間マージ候補を模式的に示す図である。
図2図2は、一実施形態による通信システム(200)の簡略化ブロック図を模式的に示す図である。
図3図3は、一実施形態による通信システム(300)の簡略化ブロック図を模式的に示す図である。
図4図4は、一実施形態によるデコーダの簡略化ブロック図を模式的に示す図である。
図5図5は、一実施形態によるエンコーダの簡略化ブロック図を模式的に示す図である。
図6図6は、別の実施形態によるエンコーダのブロック図である。
図7図7は、別の実施形態によるデコーダのブロック図である。
図8図8は、一実施形態による制御点動きベクトル継承を模式的に示す図である。
図9図9は、一実施形態による、構成されたアフィンマージモードの候補位置の配置を模式的に示す図である。
図10図10は、一実施形態による、サブブロックベースの時間的MV予測(SbTMVP)によって使用される空間的隣接ブロックを模式的に示す図である。
図11図11は、一実施形態によるサブCUモーションフィールドの導出を模式的に示す図である。
図12A図12Aは、履歴ベースMV予測(HMVP)バッファのためのデコーディングフローチャートを示す図である。
図12B図12Bは、HMVPバッファのアップデートを模式的に示す図である。
図13図13は、一実施形態による、適用された重み付け係数を有するブロックを模式的に示す図である。
図14図14は、一実施形態による、動きベクトル差分(MMVD)モードとのマージにおけるマージ候補の動きベクトルに基づいて、2つの参照画像リストに関連付けられた2つの参照画像における開始点の決定を模式的に示す図である。
図15図15は、一実施形態によるMMVDモードで評価される2つの開始点を取り囲む所定の点を模式的に示す図である。
図16図16は、一実施形態による方向テーブル選択を示す図である。
図17図17は、一実施形態による例示的デコーディングプロセスを示す図である。
図18図18は、本開示の一実施形態によるコンピュータシステムを模式的に示す図である。
【発明を実施するための形態】
【0014】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1対の端末デバイス(210)及び(220)を含む。図2の例では、第1対の端末デバイス(210)及び(220)は、データの一方向送信を行う。例えば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に伝送するために、ビデオデータ(例えば、端末デバイス(210)によって捕捉されるビデオ画像のストリーム)をコーディングし得る。エンコードされた画像データは、1つ以上のコーディングされたビデオビットストリームの形態で送信されることができる。端末デバイス(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがってビデオ画像を表示し得る。一方向性データ伝送は、メディア提供アプリケーション等において一般的であり得る。
【0015】
別の例では、通信システム(200)は、第2対の端末デバイス(230)及び(240)を含み、例えばビデオ会議中に、発生し得るコーディングされたビデオデータの双方向伝送を行う。データの双方向伝送のために、例えば、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)及び(240)の他方の端末デバイスに伝送するために、ビデオデータ(例えば、端末デバイスによって捕捉されるビデオ画像のストリーム)をコーディングし得る。端末デバイス(230)及び(240)の各端末デバイスは、端末デバイス(230)及び(240)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがって、アクセス可能な表示デバイスにビデオ画像を表示し得る。
【0016】
図2の例では、端末デバイス(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本発明の原理はこれらに限定されない。本発明の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器への適用を見出す。ネットワーク(250)は、例えばワイヤライン(有線)通信ネットワーク及び/又は無線通信ネットワークを含む、端末デバイス(210)、(220)、(230)及び(240)の間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換チャネル及び/又はパケット交換チャネル内でデータを交換することができる。代表的なネットワークには、テレコミュニケーションネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットが含まれる。本説明の目的のためには、以下に説明しない限り、ネットワーク(250)のアーキテクチャ及びトポロジーは本発明の動作には重要ではない。
【0017】
図3は、開示された主題の適用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTVや、CD、DVD、メモリースティック等を含むデジタルメディアへの圧縮ビデオの保存等を含む、他のビデオ対応アプリケーションに等しく適用することができる。
【0018】
ストリーミングシステムは、例えば、非圧縮のビデオ画像(302)のストリームを生成するビデオソース(301)、例えばデジタルカメラを含むことができるキャプチャサブシステム(313)を含み得る。一実施形態では、ビデオ画像のストリーム(302)は、デジタルカメラによって撮影されるサンプルを含む。エンコードされたビデオデータ(304)(又はコーディングされたビデオビットストリーム)と比較した場合に、高データ量を強調するために太線として描かれたビデオ画像のストリーム(302)は、ビデオソース(301)に結合されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理されることができる。ビデオエンコーダ(303)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができ、以下により詳細に説明されるように、開示された主題の態様を可能にし、又は実施する。エンコードされたビデオデータ(304)(又はエンコードされたビデオビットストリーム(304))は、ビデオ画像(302)のストリームと比較した場合に、より低いデータ量を強調するために細線として示され、将来の使用のためにストリーミングサーバ(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のコンテキストで使用され得る。
【0019】
電子デバイス(320)及び(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)も含むことができる。
【0020】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、図3の例のビデオデコーダ(310)の代わりに使用されることができる。
【0021】
受信器(431)は、ビデオデコーダ(410)によってデコードされるべき1つ以上のコーディングされたビデオシーケンスを受信することができ、同一又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信することができ、その際、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信することができ、このチャネルは、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。受信器(431)は、エンコードされたビデオデータを、他のデータ、例えばコーディングされたオーディオデータ及び/又は付随的なデータストリームと共に受信することができ、これらのデータは、それぞれのエンティティ(図示せず)を使用して転送され得る。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサ(420)(以後「パーサ(420)」)との間に結合され得る。特定の用途では、バッファメモリ(415)はビデオデコーダ(410)の一部である。他の場合には、ビデオデコーダ(410)の外側にあることができる(図示せず)。さらに別の場合には、例えばネットワークジッタに対抗するために、ビデオデコーダ(410)の外側にバッファメモリ(図示せず)が存在することができ、さらに、例えば再生タイミング(playout timing)を処理するために、ビデオデコーダ(410)の内側に別のバッファメモリ(415)が存在することもできる。受信器(431)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、又は、アイソクロナスネットワーク(isosynchronous network)から、データを受信している場合、バッファメモリ(415)は不要であるか、又は小さくてもよい。インターネット等のベストエフォート型パケットネットワークでの使用のために、バッファメモリ(415)は、必要とされ、比較的大きく、有利に適応サイズであり得、ビデオデコーダ(410)の外側のオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実装され得る。
【0022】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、及び、図4に示されているように、電子デバイス(430)の不可欠な部分ではないが、電子デバイス(430)に結合され得るレンダリングデバイス(412)(例えば、表示スクリーン)等のレンダリングデバイスを制御する潜在的な情報を含む。(複数の)レンダリングデバイスの制御情報は、付加拡張情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の携帯であり得る。
【0023】
パーサ(parser)(420)は、受信されるコーディングされたビデオシーケンスをパースし/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴う又は伴わない算術コーディング等を含む種々の原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出し得る。
サブグループは、画像グループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含み得る。パーサ(420)はまた、変換係数、量子化パラメータ値、動きベクトル等の情報を、コーディングされたビデオシーケンスから抽出し得る。パーサ(420)は、シンボル(421)を生成するように、バッファメモリ(415)から受信したビデオシーケンスに、エントロピーデコード/パース動作を実行し得る。
【0024】
シンボル(421)の再構成は、コーディングされたビデオ画像又はその部分のタイプ(例えば、画像間及び画像内、ブロック間及びブロック内)及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが、どのように含まれているかは、パーサ(420)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数ユニットとの間のかかるサブグループ制御情報のフローは、明確さのために図示されていない。
【0025】
すでに述べた機能ブロックの他に、ビデオデコーダ(410)は、概念的に、以下に説明するように、いくつかの機能ユニットに分割されることができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示された主題を説明するの目的で、以下の機能単位に概念的に細分化することが適切である。
【0026】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、及び、パーサ(420)から(複数の)シンボルとして、使用されるべき変換、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む制御情報を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力可能なサンプル値を含むブロックを出力することができる。
【0027】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラコーディングされたブロックに関係することができ、すなわち、先行して再構成された画像からの予測情報を使用していないが、現在の画像の、先行して再構成された部分からの予測情報を使用することができるブロックに関連付けることができる。かかる予測情報は、画像内予測ユニット(intra picture prediction unit)(452)によって提供されることができる。場合によっては、画像内予測ユニット(452)は、現在の画像バッファ(458)からフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在の画像バッファ(458)は、例えば、部分的に再構成された現在の画像及び/又は完全に再構成された現在の画像をバッファする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に加算する。
【0028】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、相互コーディングに関係し、潜在的に動き補償ブロックに関係することができる。かかる場合、動き補償予測ユニット453は、予測に使用されるサンプルをフェッチするために参照画像メモリ457にアクセスすることができる。ブロックに関連するシンボル(421)にしたがってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)を出力(この場合、残差サンプル又は残差信号と称される)に加算されることができる。動き補償予測ユニット(453)が予測サンプルをフェッチする参照画像メモリ(457)内のアドレスは、動きベクトルによって制御することができ、例えばX、Y、及び参照画像コンポーネントを有することができるシンボル(421)の形態で動き補償予測ユニット(453)に利用可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されている場合には、参照画像メモリ(457)からフェッチされるようにサンプル値を補間すること、動きベクトル予測機構、等を含むことができる。
【0029】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の種々のループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術(in-loop filter technologies)を含むことができ、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも称される)に含まれるパラメータによって制御され、パーサー(420)からシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、コーディングされた画像又はコーディングされたビデオシーケンスと(デコード順において)先行する部分のデコードの間で得られるメタ情報に応答することができると共に、先行して再構成されループフィルタリングされたサンプル値に応答することができる、インループフィルタ技術を含むことができる。
【0030】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力されることができ、また将来の画像内部予測に使用するために参照画像メモリ(457)に記憶されることができるサンプルストリームであることができる。
【0031】
コーディングされた画像は、一旦完全に再構成されると、将来の予測のための参照画像として使用されることができる。例えば、一旦現在の画像に対応するコーディング画像が完全に再構成され、(例えば、パーサ(420)によって)コーディングされた画像が参照画像として識別されると、現在の画像バッファ(458)は参照画像メモリ(457)の一部となることができ、新たな現在画像バッファは、後続のコーディング画像の再構成を開始する前に再割当てされ得る。
【0032】
ビデオデコーダ(410)は、ITU-T Rec.H.265.等の標準の所定のビデオ圧縮技術にしたがってデコーディング動作を実行し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術若しくは標準の構文、及び、ビデオ圧縮技術若しくは標準に文書化されているプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術又は標準によって特定された構文に適合し得る。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は標準で使用可能な全てのツールから選択することができる。また、コンプライアンスのために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることであり得る。場合によっては、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズ等を制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様と、コーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
【0033】
一実施形態では、受信器(431)は、エンコードされたビデオと共に追加の(冗長な)データを受信し得る。追加データは、コーディングされた(複数の)ビデオシーケンスの部分として含まれ得る。追加のデータは、データを適切にデコードするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、又は信号雑音比(SNR)拡張層、冗長スライス、冗長画像、前方エラー補正コード等の形態であることができる。。
【0034】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。図3の例のビデオエンコーダ(303)の代わりに、ビデオエンコーダ(503)を用いることができる。
【0035】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされる(複数の)ビデオ映像を捕捉することができるビデオソース(501)(図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0036】
ビデオソース(501)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(503)によってコーディングされるべきソースビデオシーケンスを提供し得る。メディア配信システムにおいて、ビデオソース(501)は、予め準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(501)は、局所映像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、シーケンスで見たときにモーションをもたらす複数の個々の画像として提供され得る。画像自体は、ピクセルの空間アレイとして組織化されることができ、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている
【0037】
一実施形態によれば、ビデオエンコーダ(503)は、ソースビデオシーケンスの画像を、リアルタイムで、又はアプリケーションによって要求される任意の他の時間制約下で、コーディングされたビデオシーケンス(543)にコーディングし、圧縮し得る。適切なコーディングレートを実現することは、コントローラ(550)の一つの機能である。いくつかの実施形態において、コントローラ(550)は、以下に記載されるように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確性のために示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、...)、画像サイズ、画像グループレイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するように構成されることができる。
【0038】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成される。過剰に単純化された説明として、一例において、コーディングループは、(例えば、コーディングされるべき入力画像及び参照画像に基づいて、シンボルストリーム等のシンボルを生成する責任を担う)ソースコーダ(530)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が、開示された主題において考慮されたビデオ圧縮技術において可逆的であるように)、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームのデコーディングは、デコーダロケーション(ローカル又はリモート)に依存しないビットイクザクトな結果(bit-exact results)をもたらすので、参照画像メモリ(534)中の内容もまた、ローカルエンコーダとリモートエンコーダとの間でビットイクザクトである。換言すれば、エンコーダの予測部分は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像同期性のこの基本原理(及び、例えばチャンネルエラーのために、同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても同様に使用される。
【0039】
「ローカル」デコーダ(533)の動作は、ビデオデコーダ(410)等の「リモート」デコーダと同じであることができ、これは、図4と関連して詳細に既に上述したとおりである。しかしながら、図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)によるコーディングビデオシーケンスへのシンボルのコーディング/デコーディングが可逆的であることができるので、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピーデコーディング部分及びパーサ(420)は、ローカルデコーダ(533)に完全には実装されない場合がある。
【0040】
この点で行うことができる観察は、デコーダ内に存在するパース/エントロピーデコードを除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があることである。この理由のために、開示された主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、総合的に記述されたデコーダ技術の逆であるため、省略することができる。特定の分野においてのみ、より詳細な説明が必要であり、以下に提供される。
【0041】
動作中に、いくつかの例において、ソースコーダ(530)は、「参照画像」として指定されたビデオシーケンスからの1つ以上の、先行してコーディングされた画像を参照して入力画像を予測的にコーディングする、モーション補償予測コーディングを実行し得る。このようにして、コーディングエンジン(532)は、入力画像のピクセルブロックと、入力画像に対する(複数の)予測参照として選択され得る(複数の)参照画像のピクセルブロックとの間の差をコーディングする。
【0042】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照画像として指定され得る画像のコーディングされたビデオデータをデコードし得る。コーディングエンジン(532)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオ・デコーダ(図5には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照画像上でビデオデコーダによって実行され、参照画像キャッシュ(534)に記憶されるべき再構成された参照画像を生じさせ得るデコーディング処理を繰り返す。このようにして、ビデオエンコーダ(503)は、遠位端ビデオデコーダによって得られるであろう再構成された参照画像として、共通のコンテンツを有する再構成された参照画像のコピーをローカルに記憶することができる。
【0043】
予測器(535)は、コーディングエンジン(532)について予測探索を実行し得る。すなわち、コーディングされるべき新しい画像について、予測器(535)は、新しい画像についての適切な予測参照として役立ち得る、参照画像動きベクトル、ブロック形状等の特定のメタデータ、又は、サンプルデータ(参照ピクセルブロックの候補として)、について参照画像メモリ(534)を検索し得る。予測器(535)は、適切な予測参照を見出すために、サンプルブロック毎に動作し得る。場合によっては、予測器(535)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(534)に記憶された複数の参照画像から引き出された予測参照を有し得る。
【0044】
コントローラ(550)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理し得る。
【0045】
上述した機能ユニットの全ての出力は、エントロピーコーダ(545)におけるエントロピーコーディングを受け得る。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディング等の技術にしたがって、シンボルを可逆的に圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0046】
送信器(540)は、エントロピーコーダ(545)によって作成されたコーディングされたビデオシーケンスをバッファすることができ、エンコードされたビデオデータを記憶するであろう記憶デバイスへのハードウェア/ソフトウェアアリンクであり得る通信チャネル(560)を経由した送信のために用意する。送信器(540)は、ビデオ・コーダ(503)からのコーディングされたビデオデータを、例えばコーディングされたオーディオデータ及び/又は補助的なデータ・ストリーム(図示せず)等の、送信されるべき他のデータとともにマージし得る。
【0047】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。コーディングの間、コントローラ(550)は、各コーディングされた画像に、特定のコーディングされた画像タイプを割り当てることができ、これは、各画像に適用され得るコーディング技術に影響を及ぼし得る。
例えば、画像は、しばしば、次の画像タイプの1つとして割り当てられる:
【0048】
イントラ画像(I画像)は、予測ソースとしてシーケンス内の他の画像を使用することなく、コーディングされ、デコードされ得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」:Independent Decoder Refresh)画像を含む、異なるタイプのイントラ画像を許容する。当業者は、I画像のこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【0049】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの運動ベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。
【0050】
双方向(bi-directionally)予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。同様に、複数の予測画像は、1つのブロックの再構成のために、2つ以上の参照画像及び関連するメタデータを使用することができる。
【0051】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、4×4、8×8、4×8、又は16×16の各サンプルのブロック)に分割され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されるコーディング割り当てによって決定された、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは、非予測的にコーディングされるか、又は、それらは、同じ画像の既にコーディングされたブロック(空間予測又はインター予測)を参照して予測的にコーディングされ得る。P画像の画素ブロックは、先行してコーディングされた一つの参照画像を参照して、空間的予測又は時間的予測を介して予測的にコーディングされ得る。B画像のブロックは、1つ又は2つの、先行してコーディングされた参照画像を参照して、空間的予測を介して、又は時間的予測を介して予測的にコーディングされ得る。
【0052】
ビデオエンコーダ(503)は、所定のビデオコーディング技術又はITU-T Rec.H.265.等の標準にしたがってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行し得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準によって指定された構文に適合し得る。
【0053】
一実施形態では、送信器(540)は、エンコードされたビデオと共に追加データを送信し得る。ソースコーダ(530)は、コーディングされたビデオシーケンスの一部としてかかるデータを含むことができる。追加のデータは、時間的/空間的/SNR強調レイヤーや、他の形式の冗長データ、例えば冗長画像及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等を含み得る。
【0054】
ビデオは、時間シーケンスにおいて複数のソース画像(ビデオ画像)として捕捉され得る。画像内予測(しばしば、インター予測と略される)は、所与の画像における空間的相関を使用し、画像間予測は、画像間の(時間的又は他の)相関を使用する。一例では、現在画像と称されるコーディング/デコーディング中の特定の画像は、ブロックに分割される。現在画像内のブロックが、ビデオ内の、先行してコーディングされ、まだバッファされている参照画像内の参照ブロックに類似する場合、現在の画像内ブロックは、動きベクトルと称されるベクトルによってコーディングされ得る。動きベクトルは、参照画像内の参照ブロックを指し、複数の参照画像が使用されている場合には、参照画像を識別する第3次元を有することができる。
【0055】
いくつかの実施形態において、双方向予測技術(bi-prediction technique)は、画像間予測において使用され得る。双方向予測技術によれば、ビデオ内の現在画像に対してデコード順序では両方とも先行する(ただし、表示順序では、それぞれ過去及び未来であり得る)第1参照画像及び第2参照画像等の2つの参照画像が使用される。現在画像内のブロックは、第1参照画像内の第1参照ブロックを指す第1動きベクトルと、第2参照画像内の第2参照ブロックを指す第2の動きベクトルとによってコーディングされることができる。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることができる。
【0056】
さらに、コーディング効率を改善するために、画像間予測にマージモード技術を使用することができる。
【0057】
本開示のいくつかの実施形態によれば、画像間予測及び画像内予測等の予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオ画像シーケンス中の画像は、圧縮のためにコーディングツリーユニット(CTU)に仕切られ、画像中のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセル等の、同じサイズを有する。一般に、CTUは、1つのルミナンスCTBと2つのクロミナンスCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ又は複数のコーディング単位(CU)に再帰的に4分木分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1CU、32×32ピクセルの4CU、又は16×16ピクセルの16CUに分割することができる。例では、各CUは、インター予測タイプ又はイントラ予測タイプ等の、CUの予測タイプを決定するために分析される。CUは時間的及び/又は空間的予測可能性に依存して1つ以上の予測単位(PU)に分割される。一般に、各PUは輝度予測ブロック(PB)と2つの彩度PBを含む。一実施形態では、コーディング(エンコード/デコード)における予測操作は、予測ブロックのユニットにおいて実行される。予測ブロックの一例として輝度予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等、ピクセルに対する値(例えば、輝度値)の行列を含む。
【0058】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオ・エンコーダ(603)は、ビデオ画像シーケンス内の現在ビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされた画像にエンコードするように構成されている。一実施形態では、ビデオエンコーダ(603)は、図3の例のビデオエンコーダ(303)の代わりに使用される。
【0059】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロック等の処理ブロックに対するサンプル値のマトリックスを受信する。ビデオエンコーダ(603)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、又は双方向予測モードを使用して、最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされた画像にエンコードするためにイントラ予測技術を使用することができ、処理ブロックがインターモード又は双方向予測モードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされた画像にコーディングするために、それぞれ、インター予測技術又は双方向予測技術を使用してもよい。特定のビデオコーディング技術では、マージモードは、予測器外部のコーディングされた動きベクトル成分の利益なしに、動きベクトルが1つ以上の動きベクトル予測器から導出される画像間予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一実施形態では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他の構成要素を含む。
【0060】
図6の例では、ビデオエンコーダ(603)は、図6に示すように一緒に結合されたエントロピーエンコーダ(625)と、インターエンコーダ(630)と、イントラエンコーダ(622)と、残差計算器(623)と、スイッチ(626)と、残差エンコーダ(624)と、汎用コントローラ(621)と、を含む。
【0061】
インターエンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照画像内の1つ以上の参照ブロックと比較し(例えば、先行する画像内及び後の画像内のブロック)、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照画像は、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照画像である。
【0062】
イントラエンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを、同じ画像内で既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラコーディング技術に従ったイントラ予測方向情報)も生成するように構成されている。一例では、イントラエンコーダ(622)はまた、同じ画像内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0063】
汎用制御デバイス(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一実施形態では、汎用コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を供給する。例えば、モードがイントラモードの場合、汎用コントローラ621は、スイッチ626を制御して、残差計算器623が使用するイントラモードの結果を選択し、エントロピーエンコーダ625を制御して、イントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードの場合、汎用コントローラ621は、スイッチ626を制御して、残差計算器623が使用するインター予測結果を選択し、エントロピーエンコーダ625を制御して、インター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0064】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一実施例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインにコンバートし、変換係数を生成するように構成される。その後、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。様々な実施形態では、ビデオエンコーダ(603)は、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)によって適切に使用されることができる。例えば、インターエンコーダ(630)は、デコードされた残差データ及びインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(622)は、デコードされた残差データ及びイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、いくつかの例では、デコードされた画像を生成するために適切に処理され、デコードされた画像は、メモリ回路(図示せず)内でバッファされ、参照画像として使用され得る。
【0065】
エントロピーエンコーダ(625)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成されている。エントロピーエンコーダ(625)は、HEVC標準のような適切な標準に従った種々の情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題にしたがって、インターモード又は双方向予測モードのいずれかのマージサブモードにおけるブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0066】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部であるコーディングされた画像を受信し、コーディングされた画像をデコードして再構成画像を生成するように構成されている。一実施形態では、ビデオデコーダ(710)は、図3の実施形態のビデオデコーダ(310)の代わりに使用される。
【0067】
図7の例では、ビデオデコーダ(710)は、図7に示すように一緒に結合されたイントラデコーダ(772)と、エントロピーデコーダ(771)と、インターデコーダ(780)と、残差デコーダ(773)と、再構成モジュール(774)と、及びを含む。
【0068】
エントロピーデコーダ(771)は、コーディングされた画像から、そのコーディング画像を作成する(of which the coded picture is made up)構文要素を表す特定のシンボルを再構成するように構成することができる。かかるシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は別のサブモードにおけるインターモード、双方向予測モード等)、予測情報(例えば、イントラ予測情報又はインター予測情報)を含むことができ、それらは、イントラデコーダ(722)又はインターデコーダ(780)によって、それぞれ使用される特定のサンプル又はメタデータ、例えば量子化された変換係数の形態の残差情報等、を識別することができる。一例として、予測モードがインターモード又は双方向予測モードである場合には、インター予測情報がインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0069】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0070】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0071】
残差デコーダ(773)は、逆量子化変換係数(de-quantized transform coefficients)を抽出するために逆量子化を実行し、逆量子化変換係数を処理して残差を周波数領域から空間領域にコンバートするように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)を必要とすることがあり、その情報は、エントロピーデコーダ(771)によって提供され得る(データパスは、低ボリューム制御情報のみであるため、図示されていない)。
【0072】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と、(場合によってはインター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成ブロックを形成するように構成され、これは、再構成画像の一部であり得、したがって、再構成ビデオの一部であり得る。
【0073】
デブロッキング等の他の適切な操作を行って、視覚品質を改善することができることに留意されたい。なお、ビデオエンコーダ(303)、(503)及び(603)と、ビデオデコーダ(310)、(410)、及び(710)とは、任意の適切な技術を用いて実現することができる。一実施形態では、ビデオエンコーダ(303)、(503)及び(603)と、ビデオデコーダ(310)、(410)及び(710)とは、1つ以上の集積回路を使用して実装され得る。別の実施形態では、ビデオエンコーダ(303)、(503)及び(503)と、ビデオデコーダ(310)、(410)、及び(710)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することができる。
【0074】
いくつかの実施形態によれば、幅及び高さの両方が8以上であるCUに、AFマージモードが適用され得る。このモードでは、現在CUの制御点動きベクトル(CPMV:control point motion vector)は、空間的に隣接するCUの動き情報に基づいて生成され得る。最大5つの制御点動きベクトル予測子(CPMVP:Control Point Motion Vector Predictor)が存在し得、またインデックスは、現在CUに使用されるCPMVPを示すためにシグナリングされ得る。
【0075】
いくつかの実施形態では、以下の3種類のCPMV候補が、アフィンマージ候補リストを形成するために使用される:(i)隣接CUのCPMVから外挿される継承アフィンマージ候補、(ii)隣接CUの並進MVを用いて導出された構成マージ候補CPMVP、(iii)ゼロMV。
【0076】
いくつかの実施形態によれば、隣接ブロックのアフィン動きモデルから導出され得る、最大2つの継承アフィン候補が存在し得る。それらの2つの継承候補は、左側の隣接CUに由来する候補と、上方の隣接CUに由来する候補とを含み得る。一例として、候補ブロックは、図1に示した候補ブロックであり得る。左側の予測子について、スキャン順序は、A0→A1であり得、上側の予測子について、スキャン順序は、B0→B1→B2であり得る。一部の実施形態では、各側から第1継承候補のみが選択され、2つの継承候補間では、プルーニングチェックは実行されない。隣接アフィンCUが識別されると、このCUの制御点動きベクトルは、現在CUのアフィンマージリストにおいてCPMVP候補を導出するために使用され得る。現在ブロック800を示す図8に示したように、隣接する左下のブロックAがアフィンモードでコーディングされる場合、ブロックAを含むCU802の左上隅、右上隅及び左下隅の動きベクトルv2、v3及びv4が得られる。ブロックAが、4パラメータフィンモデルを用いてコーディングされる場合、現在CUの2つのCPMVは、v2及びv3に従って計算され得る。ブロックAが、6パラメータフィンモデルを用いてコーディングされる場合、現在CUの3つのCPMVは、v2、v3及びv4に従って計算され得る。
【0077】
いくつかの実施形態によれば、構成アフィン候補は、各制御点の隣接並進モーション情報を組み合わせることによって、構成され得る。図9に示すように、制御点に関するモーション情報は、現在ブロック900の特定の空間的な隣接ブロック及び時間的な隣接ブロック(即ち、「T」)から導出され得る。CPMV_k(k=1,2,3,4)は、k番目の制御点を表し得る。CPMV_1について、B2→B3→A2ブロックがチェックされ得、また第1利用可能ブロックのMVが使用され得る。CPMV_2について、B1→B0ブロックがチェックされ得、またCPMV_3について、A1→A0ブロックがチェックされ得る。TMVPが利用可能である場合には、TMVPがCPMV_4として使用され得る。
【0078】
いくつかの実施形態では、4つの制御点のMVが得られた後に、アフィンマージ候補は、それらの制御点についてのモーション情報に基づいて構成され得る。制御点のMVの以下の例示的組み合わせを使用して、1つのブロックを構成し得る:{CPMV_1、CPMV_2、CPMV_3}、{CPMV_1、CPMV_2、CPMV_4}、{CPMV_1、CPMV_3、CPMV_4}、{CPMV_2、CPMV_3、CPMV_4}、{CPMV_1、CPMV_2}及び{CPMV_1、CPMV_3}
【0079】
3つのCPMVの組み合わせは、6パラメータフィンマージ候補を構成し、2つCPMVの組み合わせは、4パラメータのアフィンマージ候補を構成する。いくつか実施形態では、動きスケーリングプロセスを回避するために、制御点の参照インデックスが異なる場合には、制御点MVの関連する組み合わせが破棄される。
【0080】
いくつか実施形態によれば、サブブロックベースの時間動きベクトル予測(SbTMVP:sub-block based temporal motion vector prediction)法は、HEVCにおける時間モーションベクター予測(TMVP)と同様に、同一位置画像内のモーションフィールドを使用して、現在画像内のCUに関するモーションベクター予測及びマージモードを改善することができる。TMVPによって使用される同一の同一位置画像(The same collocated picture)は、SbTVMPに使用され得る。SbTMVPは、次の2つの主な側面について、TMVPとは異なる。(1)TMVPは、CUレベルでモーションを予測するが、SbTMVPは、サブCUレベルでモーションを予測する。(2)TMVPは、同一位置画像内の同一位置ブロック(同一位置ブロックは、現在CUに対して中央のブロック又は右下のブロック)から時間動きベクトルをフェッチするのに対し、SbTMVPは、同一位置画像から時間動き情報をフェッチする前に動きシフトを適用し、モーションシフトは、現在CUの空間隣接ブロックのうちの1つに由来する動きベクトルから取得される。
【0081】
SbTVMPプロセスは、図10及び図11に示されている。いくつかの実施形態では、SbTMVPは、2つのステップで、現在CU内のサブCUの動きベクトルを予測する。図10に示すように、第1ステップにおいては、現在ブロック(1000)の空間隣接ブロックは、A1、B1、B0及びA0の順序で検査される。同一位置画像を自身の参照画像として使用する動きベクトルを有する第1利用可能空間隣接ブロックが識別されると、この動きベクトルは、動きシフトが適用される動きベクトルとして選択される。かかる動きベクトルが空間隣接ブロックから識別されない場合には、動きシフトは(0、0)に設定される。
【0082】
第2ステップでは、第1ステップにおいて識別された動きシフトが適用されて(即ち、現在ブロックの座標に加えられて)、それにより、図11に示したような同一位置画像からサブCUレベル動き情報(例えば、動きベクトル及び参照インデックス)が得られる。図11における例は、動きシフト(1149)が、空間隣接ブロックA1(1143)の動きベクトルに設定される場合を想定する。続いて、現在画像(1141)の現在ブロック(1142)における現在サブCU(例えば、サブCU(1144))について、同一位置画像(1151)の同一位置ブロック(1152)における対応する同一位置サブCU(例えば、同一位置サブCU(1154))の動き情報が使用されて、現在サブCUに関する動き情報が導出される。対応する同一位置サブCU(例えば、同一位置サブCU(1154))の動き情報は、HEVCにおけるTMVPプロセスと同様のやり方で、現在サブCU(例えばサブCU(1144))の動きベクトル及び参照インデックスに変換され、HEVCでは、時間動きスケーリングが、時間動きベクトルの参照画像を現在CUの参照画像に整列させるために適用される。
【0083】
いくつかの実施形態によれば、SbTVMP候補及びアフィンマージ候補の両方を含む組み合わせサブブロックベースマージリストは、サブブロックベースマージモードで使用することができる。SbTVMPモードは、シークエンスパラメータセット(SPS)フラグによって有効/無効になる。SbTMVPモードが有効な場合、SbTMVP予測子が、サブブロックベースマージリストの第1エントリとして追加され、それにアフィンマージ候補が続く。サブブロックベースマージリストの最大許容サイズは、一部の用途では、5である。SbTMVPで使用されるサブCUサイズは、例えば、8×8に固定される。アフィンマージモードについて行われるように、幅及び高さの両方が8以上である場合、SbTMVPモードは、CUに対してのみ適用可能である。
【0084】
付加的なSbTMVPマージ候補の符号化ロジックは、他のマージ候補のための符号化ロジックと同じである。つまり、Pスライス又はBスライスにおける各CUについて、付加的なレート歪み(RD)チェックが実行されて、SbTMVP候補を使用するか否かが決定される。
【0085】
一部の実施形態によれば、履歴ベースMVP(HMVP)法は、先行してコーディングされたブロックの動き情報として定義されたHMVP候補を含む。複数のHMVP候補を有するテーブルは、エンコード/デコードプロセスの間、維持される。新たなスライスが検出されると(encountered)、テーブルは空にされる。インターコーディングされた非アフィンブロックが存在する場合には常に、関連付けられた動き情報が、新たなHMVP候補として、テーブルの最後のエントリに追加される。HMVP法のコーディングフローは、図12Aに示されている。
【0086】
テーブル・サイズSは6であるように設定され、それは最高6つのHMVP候補がテーブルに加えられ得ることを示す。テーブルに新たな動き候補が挿入されると、制約付きFIFO規則が利用されて、それにより、冗長チェック検査が先ず適用され、同一のHMVPがテーブル内に存在するか否かが決定される。発見された場合には、その同一のHMVPがテーブルから削除され、全てのHMVP候補はその後、前方に移動される、つまり、インデックスが1低減される。図12Bは、HMVPテーブルに新たな動き候補を挿入する例を示す。
【0087】
HMVP候補は、マージ候補リスト構成プロセスにおいて使用され得る。テーブル内の最新のいくつかのHMVP候補が順番にチェックされ、TMVP候補の後に候補リストに挿入される。プルーニングは、HMVP候補において、サブブロック動き候補を除く、空間マージ候補又は時間マージ候補に適用され得る(即ち、ATMVP)。
【0088】
いくつかの実施形態において、プルーニング操作の数を低減するために、チェックされるHMPV候補の数(Lで表される)が、L=(N<=4)?M:(8-N)、Mは、テーブルにおける利用可能HMVP候補の数を指す。ここで、Nは、利用可能な非サブブロックマージ候補の数を示し、Mは、テーブルにおける利用可能HMVP候補の数を示す。また、利用可能マージ候補の総数が、シグナリングされた最大許容マージ候補から1を引いた数に達すると、HMVPリストからのマージ候補リスト構成プロセスは終了する。さらに、組み合わせ双方向予測マージ候補導出についてのペアの数は、12から6に低減される。
【0089】
HMVP候補は、AMVP候補リスト構成プロセスにおいて使用することも考えられる。テーブル内の最後のK個のHMVP候補の動きベクトルは、TMVP候補の後に挿入される。AMVPターゲット参照画像と同じ参照画像を有するHMVP候補のみが、AMVP候補リストを構成するために使用される。
プルーリングは、HMVP候補に適用される。いくつかの用途では、Kは4にセットされ、その一方で、AMVPリストのサイズは、変更されずに維持される。つまり、AMVPリストのサイズは2である。
【0090】
いくつかの実施形態によれば、現在マージ候補リストにおける候補の予め定義されたペアを平均することによって、ペアワイズ平均候補が生成され得る。いくつかの例では、ペアワイズ平均候補の数は6であり、予め定義されたペアは、{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)}として定義され、ここで、数字は、マージ候補リストについてのマージインデックスを表す。平均された動きベクトルは、参照リスト毎に別個に計算され得る。1つのリストにおいて両方の動きベクトルが使用可能である場合、それら2つの動きベクトルが異なる参照画像を指す場合であっても、それら2つの動きベクトルは平均化され得る。動きベクトルが1つだけ利用可能である場合、その1つの動きベクトルが直接使用され得る。動きベクトルが利用可能でない場合、このリストは無効とみなされ得る。ペアワイズ平均候補は、HEVC標準における組み合わせ候補を置換することができる。
【0091】
現在画像の参照は、イントラブロックコピーと称される場合もあり、このイントラブロックコピーでは、動きベクトルは、現在画像において既に再構成された参照サンプルを表す。CPRは、HEVCスクリーンコンテンツコーディング拡張(HEVC SCC)においてサポートされている。CPRコーディングされたCUは、インターコーディングされたブロックとしてシグナリングされ得る。CPRコーディングされたCUの輝度動きベクトル(又はブロックベクトル)は、整数精度であっ得る。
彩度動きベクトルは、整数精度にクリッピングされ得る。
【0092】
いくつかの実施形態では、AMVRと組み合わされる場合、CPRモードを、1pel(ピクセル)動きベクトル精度と4pel動きベクトルの精度との間で切り換えることができる。現在画像は、参照画像リストL0の端部に配置され得る。メモリ消費及びデコーダ複雑性を低減するために、CPRは、現在CTUの再構成された部分を使用することのみが許可されてよく、これにより、CPRモードは、ハードウェアで実装するためのローカルオンチップメモリを用いて実装することができる。
【0093】
いくつかの実施形態では、エンコーダ側において、ハッシュベース動き推定が、CPRについて実行され得る。エンコーダは、輝度サンプルが16以下の幅又は高さのいずれかを有するブロックに対してRDチェックを実行し得る。非マージモードに関して、ブロックベクター探索は、先ずハッシュベース探索を用いて実行され得る。ハッシュ探索が有効な候補を返さない場合、ブロックマッチングベースのローカル探索が実行され得る。
【0094】
いくつかのの実施形態では、ハッシュベースの探索において、現在ブロックと参照ブロックとの間のハッシュキー照合(32ビットCRC)は、全ての許容ブロックサイズに拡張され得る。現在画像における各位置に対するハッシュキー計算は、4×4サブブロックに基づき得る。より大きなサイズの現在ブロックについては、ハッシュキーは、全ての4×4サブブロックの全てのハッシュキーが、対応する参照位置におけるハッシュキーと一致する場合には、参照ブロックのハッシュキーと一致するように決定され得る。複数の参照ブロックのハッシュキーが、現在ブロックのハッシュキーと一致することが判明した場合には、一致した各参照のブロックベクターコストが計算されることができ、また一致した参照のうち最小コストを有するものが選択される。
【0095】
いくつかの実施形態では、ブロック照合探索において、探索範囲が、現在CTU内の現在ブロックの左上におけるN個のサンプルとなるようにセットされ得る。CTUの開始時に、Nの値は、時間参照画像が存在しない場合には128に初期化され、少なくとも1つの時間参照画像が存在する場合には64に初期化される。ハッシュヒット率は、ハッシュベース探索を用いて一致が発見されたCTUにおけるサンプルの百分率として定義され得る。現在CTUをエンコードしているときに、ハッシュヒット率が5%未満の場合、Nは半分に低減される。
【0096】
マルチ仮説予測法は、高度な動きベクトル予測(AMVP)モード、スキップ及びマージモード、及び、イントラモードの単一予測を含む、既存の画像間予測モードを改善するために使用され得る。マルチ仮説予測法は、既存の予測モードを、余剰マージインデックス予測(extra merge indexed prediction)と組み合わせ得る。マージインデックス予測は、マージインデックスが動き補償予測のための動き情報を取得するためにシグナリングされ得るマージモードにおける予測として実行され得る。最終的な予測は、マージインデックス予測と、異なる重みが組み合わせに応じて適用される既存の予測モードによって生成された予測との加重平均であり得る。
【0097】
いくつかの実施形態では、マルチ仮説予測を適用して、AMVPモードの単方向予測(uni-prediction)を改善し得る。1つのフラグがシグナリングされて、マルチ仮説予測が有効又は無効にされる。さらに、フラグが真(true)である場合には、1つの付加的なマージインデックスがシグナリングされる。このように、マルチ仮説予測では、単方向予測が双方向予測に変わり、双方向予測では、一方の予測が、AMVPモードにおける本来のシンタックス要素を用いて取得され、他方の予測が、マージモードを用いて取得される。最終的な予測は、1:1の重みを用いて、それら2つの予測を双方向予測における予測として組み合わせる。マージ候補リストは、先ず、サブCU候補が除外されたマージモードから導出される(例えば、アフィン代替時間動きベクトル予測(ATMVP:affine, alternative temporal motion vector prediction))。次に、マージ候補リストは、2つの別個のリストに分割され、一方のリストは、候補のうちの全てのL0動きを含むリスト0(L0)のためのリストであり、他方のリストは、全てのL1の動きを含むリスト1(L1)のためのリストである。冗長性を取り除き、空所(vacancy)を埋めた後に、2つのマージリストが、L0及びL1それぞれに対して生成される。AMVPモードを改善するためにマルチ仮説予測が適用される場合には、2つの制約がある。一つ目は、64以上の輝度コーディングブロック(CB)エリアを有するそれらのCUに対して有効にされることであり、二つ目は、低遅延B画像に対してL1にのみ適用されることである。
【0098】
いくつかの実施形態では、マルチ仮説予測がスキップモード又はマージモードに適用される場合、マルチ仮説予測の有効化は、明示的にシグナリングされ得る。余剰マージインデックス予測が、元の予測に付加的に選択され得る。したがって、マルチ仮説予測の各候補は、マージ候補のペアを暗示し、それらのペアは、一つは、1番目のマージインデックス付き予測のための候補と、もう一つは2番目のマージインデックス付き予測のための候補とを含む。しかしながら、各ペアにおいて、2番目のマージインデックス予測のためのマージ候補は、任意の付加的なマージインデックスをシグナリングすることなく、後継の(succeeding)マージ候補(即ち、既にシグナリングされたマージインデックスに1を加えたもの)として暗示的に導出され得る。それらのペアを除外し、類似のマージ候補を含め、空所を埋めることによって冗長性を取り除いた後に、マルチ予測のための候補リストが形成される。その後、最終的な予測を生成するために、2つのマージ候補のペアに由来する動きベクトルが取得され得、この際、5:3の重みが、1番目及び2番目のマージインデックス予測それぞれに適用され得る。さらに、マルチ仮説予測が有効であるマージCU又はスキップCUは、既存の仮説の動き情報に付加的に、後続の隣接CUの参照に関する付加的な仮説の動き情報を保存することができる。サブCU候補(例えば、アフィン、SbTMVP)は候補リストから除外されることがあり、また低遅延のB画像について、マルチ仮説予測は、スキップモードに適用されないことがある。さらに、マルチ仮説予測がマージモード又はスキップモードに適用される場合、16未満のCU幅又はCU高さを有するそれらのCUに対して、又は16のCU幅及びCU高さの両方を有するそれらのCUに対して、双方向線形内挿フィルタが、マルチ仮説のための動き補償に使用され得る。
【0099】
いくつかの実施形態によれば、イントラ予測モードを改善するために、マルチ仮説予測が適用される場合、マルチ仮説予測は、イントラ予測と、マージインデックス予測と、を組み合わせる。マージモードCUにおいて、1つのフラグがマージモードにシグナリングされ、そのフラグが真である場合に、イントラ候補リストから1つのイントラモードが選択される。
【0100】
いくつかの実施形態では、輝度成分について、イントラ候補リストが、DCモード、平面モード、水平モード及び垂直モードを含む4つのイントラ予測モードから導出され、またイントラ候補リストのサイズは、ブロック形状に応じて、3又は4であっ得る。例えば、CU幅がCU高さの2倍である場合、水平モードがイントラ候補リストから除外され、CU高さがCU幅の2倍である場合、垂直モードがイントラ候補から除外される。いくつかの実施形態では、イントラモードインデックスに従い選択されたイントラ予測モード候補と、マージインデックスに従い選択されたマージ予測候補とが、加重平均を使用して組み合わされる。いくつかの実施形態では、彩度成分について、ダイレクトモード(DM)が、余剰なシグナリングを行わずに適用される。
【0101】
いくつかの実施形態によれば、複数の予測を組み合わせるための重みは、以下のように実装され得る。DCモード又は平面モードが選択される場合、又はCB幅又はCB高さが4未満である場合、等しい重みが、イントラ予測候補及びインター予測候補に適用される。4以上のCB幅及びCB高さを有するそれらのCBについて、水平/垂直モードが選択される場合、1つのCBが先ず、垂直方向又は水平方向において、4つの等積領域に分割される。(w_intrai、w_jnteri)として表される各重みセットは、ここではiは1から4であり、以下のように実施されることができる:(w_intra1、w_jnter1)=(6,2)、(w_intra2、w_jnter2)=(5,3)、(w_intra3、w_jnter3)=(3,5)、及び(w_intra4、w_jnter4)=(2,6)。これらの重みセットは、対応する領域に適用されることができ、ここで、(w_intra1、w_jnter1)は、参照サンプルに最も近い領域に関するものであり、また(w_intra4、w_jnter4)は、参照サンプルから最も離れた領域に関するものである。重みセットが対応する領域に適用された後、組み合わされた予測は、2つの重み付け予測を合計し、3ビット右シフトすることによって計算され得る。さらにまた、予測子のイントラ仮説のためのイントラ予測モードは、後続の隣接CUによる参照のために保存され得る。
【0102】
図13は、マルチ仮説予測の一例を示す。インター予測(i)(1322)及びイントラ予測(i)(1324)は、i番目領域のためのインター予測部分及びイントラ予測部分に対応する。w_inter(i)及びw_intra(i)は、i番目領域のためのインター予測重み及びイントラ予測重みにそれぞれ対応する。最終的な予測(1312)は、重み付けされたインター予測(1322)及び重み付けされたイントラ予測(1324)を組み合わせることによって形成され得る。現在ブロック(1310)は、最終的な予測手段(1312)及び残差サンプル(1314)を用いて再構成されることができる。残差サンプルは、現在ブロック(1310)と最終的な予測(1312)の違いを表すことができる。
【0103】
スキップ/マージモードに関するマルチ仮説予測では、シグナリングされるマージインデックスの最大数は、通常マージ候補リストにおける候補の最大数よりも小さい。しかしながら、通常マージ候補リストにおける候補の最大数は、スキップ/マージモードに関するこのマルチ仮説予測のためのマージインデックスシグナリングの短縮単項コーディング(truncated unary coding)のために依然として使用される。本開示の実施形態は、このシグナリングを改善する。
【0104】
本開示の実施形態によれば、ブロックという用語は、予測ブロック、コーディングブロック、又はコーディングユニット(即ち、CU)と解釈され得る。本開示の実施形態は、スキップ/マージモードにおけるマルチ仮説予測のためのマージインデックスシグナリングの現在の設計を修正する。
【0105】
いくつかの実施形態では、マルチ仮説予測がスキップモード又はマージモードに適用される場合、マルチ仮説予測の有効化は、明示的なシグナリングによって実行される。スキップ/マージモードに関するマルチ仮説予測が有効化されている場合、短縮単項コーディングを用いて、マージインデックスがシグナリングされ得る。したがって、シグナリングされた各マージインデックスは、マージ候補のペアを暗示するために使用され得る。例えば、シグナリングされたマージインデックスは、第1マージ候補を明示的にシグナリングするために使用され得、また第2マージ候補は、シグナリングされたマージインデックス(即ち、既にシグナリングされたマージインデックスに1を足したもの)から導出され得る。
【0106】
一部の実施形態によれば、max_num_candidatesは、マージ候補リストに関するマージ候補の最大許容数を示す。インターマージ/スキップモードについて、マージインデックスに関する短縮単項二値化(truncated unary binarization)の最大値は、(max_num_candidates-1)であり得る。いくつかの実施形態では、マルチ仮説予測がスキップモード又はマージモードに対して有効化されている場合、シグナリングされ得るマージインデックスの最大数は、(max_num_candidates-1)である。何故ならば、シグナリングされた各マージインデックスは、リスト上の連続する2つのマージ候補に対応するからである。
【0107】
いくつかの実施形態によれば、マージフラグが現在ブロックに対して真であることがシグナリングされる場合、スキップ/マージモードのためのマルチ仮説予測が有効化されているか否かを示すために使用フラグがシグナリングされる。使用フラグが真であり、マルチ予測モードが有効化されていることを示す場合、使用フラグに加えて、マージインデックスがシグナリングされる。(max_num_candidates-2)の値は、マージインデックスコーディングのための短縮単項バイナリゼーションにおける最大値として使用され得る。
【0108】
一例では、max_num_candidatesは6であり、スキップ/マージモードに関するマルチ仮説予測のための使用フラグは真である。この例では、マージインデックスに関する最大値は4(即ち、max_num_candidates-2)である。考えられる全てのマージインデックス値とそれに対応する単項コードのマッピングは、表1に記載されている。
【表1】
【0109】
いくつかの実施形態によれば、マージフラグが現在ブロックについて真であることがシグナリングされる場合、マージインデックスがその後シグナリングされる。(max_num_candidates-1)の値は、マージインデックスコーディングにおける短縮単項二値化のための最大値として使用され得る。さらに、マージインデックスの値が、(max_num_candidates-1)未満である場合、使用フラグがその後、スキップ/マージモードのためのマルチ仮説予測が有効化されているか否かを示すためにシグナリングされる。マージインデックス値が(max_num_candidates-1)以上である場合、使用フラグは、暗示的に偽にセットされる。例えば、マージインデックス値が(max_num_candidates-1)以上である場合、マージインデックス値は無効であるとみなされ、またそのような状況が発生した場合、デコーダは、使用フラグを偽にセットするか、又は使用フラグが真としてシグナリングされた場合であっても、使用フラグを偽として扱う。
【0110】
いくつかの実施形態によれば、マルチ仮説予測が利用可能であるためには、マージ候補のペアが、マージ候補リストにおいて利用可能であるべきである。いくつかの実施形態では、特定の条件が満たされると、マルチ仮説予測は、スキップ/マージモードに対して利用できない。
【0111】
1つの実施形態では、通常のマージリストに関するマージ候補の最大許容数がmax_num_candidatesである場合、またこの値が2未満である場合には、マルチ仮説予測は、スキップ/マージモードに対して利用できない。従って、この場合、一部の実施例では、マルチ仮説予測のための使用フラグがシグナリングされず、偽であると推測される。別の例では、max_num_candidatesが2未満である場合、マルチ仮説予測のための使用フラグが偽としてシグナリングされる(ビットストリーム適合性要求)。
【0112】
いくつかの実施形態では、CPRモードが使用される場合、マージ候補の一部が、CPRモードでコーディングされ得る。例えば、CPRコーディングされたブロックと通常のインターコーディンされたグブロックとの組み合わせが、マルチ仮説予測では許容されない場合、いくつかの実施形態では、以下の制約が満たされるべきである:利用可能な通常のインターコーディングマージ候補の数が2未満である場合、マルチ仮説予測の使用フラグが偽としてシグナリングされる(ビットストリーム適合性要求)。
【0113】
いくつかの実施形態では、動きベクトル差分を用いるマージモード(MMVD:merge with motion vector difference)は、現在ブロックの動きベクトル予測子を決定するために使用される。MMVDモードは、スキップモード又はマージモードが有効化されている場合に使用することができる。MMVDモードは、スキップモード又はマージモードのマージ候補リストにおけるマージ候補を再利用する。例えば、マージ候補リストから選択されたマージ候補を使用して、参照画像における起点を提供することができる。現在ブロックの動きベクトルは、起点と、起点に関する動きの大きさ及び動きの方向を含む動きオフセットとによって表すことができる。エンコーダ側では、マージ候補の選択及び動きオフセットの決定は、探索プロセス(評価プロセス)を基礎とすることができる。デコーダ側では、選択されたマージ候補及び動きオフセットを、エンコーダ側からのシグナリングに基づいて決定することができる。
【0114】
MMVDモードは、本明細書において説明する種々のインター予測モードにおいて構成されたマージ候補リストを再利用することができる。いくつかの例では、マージ候補リストにおけるデフォルトマージタイプ(例えば、MRG_TYPE_DEFAULT_N)の候補のみが、MMVDモードのために考慮される。デフォルトのマージタイプのマージ候補の例は、本明細書において記載したような、(i)マージモードにおいて使用されるマージ候補、(ii)HMVPモードにおける履歴バッファに由来するマージ候補、及び(iii)ペアワイズ平均動きベクトル候補を含むことができる。アフィンモード又はSbTMVPモードにおけるマージ候補は、一部の例では、MMVDモードにおける拡張のためには使用されない。
【0115】
ベース候補インデックス(IDX)は、起点を定義するために使用することができる。例えば、0から3までのインデックスに関連付けられたマージ候補(動きベクトル予測子(MVP))のリストを表2に示す。ベース候補インデックスのインデックスを有するマージ候補をリストから決定することができ、また起点を提供するために使用することができる。
【表2】
【0116】
距離インデックスを使用して、動きの大きさ情報を提供することができる。例えば、予め定義された複数のピクセル距離を、0から7までのインデックスにそれぞれ関連付けて、表3に示す。距離インデックスのインデックスを有するピクセル距離を、複数のピクセル距離から決定することができ、また動きの大きさを提供するために使用することができる。
【表3】
【0117】
方向インデックスを使用して、動きの方向情報を提供することができる。方向インデックスは、起点に対して相対的なMVDの方向を表し得る。例えば、00から11(2進)までのインデックスを有する4つの方向を表4に示す。方向インデックスのインデックスを有する方向を、4つの方向から決定することができ、また起点に関する動きオフセットの方向を提供するために使用することができる。
【表4】
【0118】
MMVDシンタックス要素は、MMVDモードにおける距離IDX、ベース候補インデックス及び方向インデックスを含む、MMVDインデックスのセットをシグナリングするためのビットストリームで送信することができる。
【0119】
いくつかの実施形態では、MMVD有効化フラグは、現在ブロックをコーディングするためのスキップ及びマージフラグを送信した後にシグナリングされる。例えば、スキップ及びマージフラグが真である場合、MMVDフラグがパースされる。MMVDフラグが1である場合、一例では、MMVDシンタックス要素(MMVDインデックスのセット)がパースされる。一例では、MMVDフラグが1ではない場合、別のモードに関連付けられたフラグ、例えばAFFINEフラグがパースされる。AFFINEフラグが1である場合、AFFINEモードが、現在ブロックを処理するために使用される。AFFINEフラグが1ではない場合、一例では、スキップ/マージインデックスが、スキップ/マージモードを用いて現在ブロックを処理するためにパースされる。
【0120】
図14及び図15は、本開示の実施形態による、MMVDモードにおける探索プロセスの一例を示す。探索プロセスを実行することによって、現在画像(又は現在フレームと呼ばれる)における現在ブロック(1401)について、ベース候補インデックス、方向インデックス、及び距離インデックスを含むMMVDインデックスのセットを決定することができる。
【0121】
図14及び図15に示されたように、第1マージ候補に属する第1動きベクトル(1411)及び第2動きベクトル(1421)が示されている。第1マージ候補は、現在ブロック(1401)に関して構成されたマージ候補リストにおけるマージ候補であることができる。第1動きベクトル(1411)及び第2動きベクトル(1421)は、それぞれ、参照画像リストL0及びL1における2つの参照画像(1402)及び(1403)に関連付けられることができる。したがって、参照画像(1402)及び(1403)において、図14における2つの起点(1422)及び(1424)を決定することができる。
【0122】
一例では、起点(1422)及び(1424)に基づいて、参照画像(1402)及び(1403)における垂直方向(+Y又は-Yによって表されている)又は水平方向(+X及び-Xによって表されている)における起点(1422)及び(1424)から延びる複数の予め定義された点を評価することができる。一例では、各起点(1422)又は(1424)に関して相互に鏡映された点のペア、例えば点(1514)及び(1524)のペア、又は点(1515)及び(1525)のペアを使用して、現在ブロック(1401)についての動きベクトル予測子候補を形成し得る動きベクトルのペアを決定することができる。起点(1511)又は(1521)を包囲する予め定義された点に基づいて決定されたそれらの動きベクトル予測子候補を評価することができる。
【0123】
第1マージ候補に加えて、現在ブロック(1401)のマージ候補リストにおける別の利用可能又は有効なマージ候補も同様に評価することができる。一例では、単方向予測マージ候補について、2つの参照画像リストの内の1つと関連付けられた1つの予測方向のみが評価される。
【0124】
評価に基づいて、最良動きベクトル予測子候補を決定することができる。したがって、最良動きベクトル予測子候補に対応して、最良マージ候補をマージリストから選択することができ、また動き方向及び動き距離を決定することもできる。例えば、選択されたマージ候補及び表2に基づいて、ベース候補インデックスを決定することができる。予め定義された点(1515)(又は(1525))に対応するような、選択された動きベクトル予測子に基づいて、起点(1511)に関する点(1515)の方向及び距離を決定することができる。表3及び表4によれば、方向インデックスと距離インデックスを相応に決定することができる。
【0125】
なお、上述の実施例は、例示を目的としたものに過ぎない。代替的な例では、MMVDモードにおいて提供される動きベクトル表現法に基づいて、動き距離及び動き方向は異なるように定義され得る。さらに、評価プロセス(探索プロセス)は異なるように実行され得る。例えば、双方向予測マージ候補に関して、3つのタイプの予測方向(例えば、L0、L1、並びにL0及びL1)は、最良い動きベクトル予測子を選択するために、予め定義された距離及び方向のセットに基づいて評価され得る。別の例に関して、単方向予測マージ候補は、ミラーリング又はスケーリングによって、双方向予測マージ候補にコンバートされてもよく、またその後評価され得る。上述の例では、評価プロセスの結果として生じる予測方向(例えば、L0、L1、又はL0及びL1)を示す付加的なシンタックスがシグナリングされ得る。
【0126】
上述のように、マージ候補リストにおけるマージ候補は、エンコーダ側でのMMVDモードにおけるベース候補を決定するために評価される。デコーダ側では、入力としてのベース候補インデックスを使用して、動きベクトル予測子をマージ候補リストから選択することができる。したがって、マージ候補を格納するためのラインバッファ以外には、MMVDモードのための付加的なラインバッファは必要ない。
【0127】
いくつかの実施形態では、MMVDは、表5に示したように、斜め方向候補から成る付加的な表を使用する。水平/垂直テーブル及び斜めテーブルの内の1つは、図16に示したようなベース動きベクトルの方向に従って選択される。
【表5】
【0128】
いくつかの実施形態では、MMVDは、画像解像度に基づいて、適応型距離テーブルを使用する。例えば、画像解像度が2K(即ち、1920×1080)よりも高くない場合、表6がベース距離テーブルとして使用され、それ以外の場合は、表7がベース距離テーブルとして使用される。
【表6】

【表7】
【0129】
いくつかの実施形態では、MMVDは、発生ベース距離テーブルの並べ替えに基づいて、適応型距離テーブルを使用する。例えば、距離インデックスは、先行してコーディングされた画像ランキングにおける各距離インデックスの使用の発生に従って、高から低に並び替えられ得る。いくつかの実施形態では、MMVD候補値が修正され、その結果、MMVDモードにおいてコーディングされたCUは、MMVD距離が閾値よりも大きい場合、サブサンプル動きベクトルの代わりに、完全なサンプルを有する。
【0130】
いくつかの実施形態によれば、予測オフセットを用いるアフィンマージモードとも称される、アフィンMMVD法は、ベース予測子として、第1利用可能アフィンマージ候補を選択する。この方法は、続いて、動きベクトルオフセットを、ベース予測子からの各制御点の動きベクトル値に適用する。利用可能なアフィンマージ候補が存在しない場合には、アフィンMMVD法は使用されない。
【0131】
いくつかの実施形態では、制御点(CP)毎のシグナリング法において、選択されたベース予測子のインター予測方向、及び各方向の参照インデックスが変更なしで使用される。各制御点に対して、ゼロ_MVDフラグが使用されて、制御点はオフセットシグナリングを必要とするか否かを示し得る。ゼロ_MVDフラグが真である場合、制御点に必要とされる他のシグナリングは存在しない。存在する場合には、距離インデックス及びオフセット方向インデックスは、制御点についてシグナリングされ得る。表8は、シグナリングされた距離インデックス及び対応する距離オフセットの例を示す。
【表8】
【0132】
いくつかの実施形態において、方向インデックスは、表9に示されるように、4つの方向を表すことができ、x方向又はy方向のみがMV差を有し得るが、両方向では有さない。
【表9】
【0133】
いくつかの実施形態において、インター予測が単項予測である場合、シグナリングされた距離オフセットは、各制御点予測子に対してオフセット方向に適用される。結果として得られる動きベクトルは各制御点のMV値となる。いくつかの実施形態では、インター予測が双方向予測である場合、シグナリングされた距離オフセットは、制御点予測器のL0運動ベクターに対してシグナリングされたオフセット方向に適用され、L1 MVに適用されるオフセットは、ミラーリングベースで適用される。
【0134】
いくつかの実施形態によれば、距離オフセットインデックス及びオフセット方向インデックスは、ブロックごとに信号化される。同じオフセットが全ての利用可能な制御点に適用され得る。制御点の数は、ベース予測子のアフィン型によって決定され得る。距離オフセットテーブル及びオフセット方向テーブルは、表8及び表9と同じであり得る。
【0135】
ブロックの全ての制御点に対して一度にシグナリングが実行される場合、ゼロMVDフラグは使用されない。距離テーブルの使用されたオフセット値の発生統計が、エンコーダ側とデコーダ側の両方で同じ方法で収集される場合、エンコーダとデコーダの両方が、発生統計に基づいて距離テーブルの新たな順序を導出し、アップデートされた距離テーブルがMMVDの次の画像で使用される。これらの特徴は、画像間の依存性を導入し、エラー耐性(error resilience)の問題を引き起こす。本開示の実施形態は、この従属性、及び結果として生じるエラー耐性の問題を低減することを対象とする。これに関して、本開示の実施形態は、デコーダにテーブルを導出させる代わりに、デコーダが使用すべき並べ替えられた距離テーブルの指示をシグナリングすることによって、発生ベースのMMVD距離テーブルの並べ替えの現在の設計を強化する。
【0136】
いくつかの実施形態によれば、エンコーダ側では、MMVD距離テーブルが並べ替えられた後、オーダーコード(order code)を生成し、ビットストリームでシグナリングすることができる。いくつかの実施形態において、デコーダ側では、オーダーコードをデコードした後、MMVD距離テーブルは、オーダーコードに基づいて構成され得る。一実施形態では、MMVD距離テーブルのオーダーコードは、スライスヘッダ、タイル/タイトル(tile/title)グループヘッダ、又は他のヘッダのうちの1つに信号を送ることができる。
【0137】
いくつかの実施形態では、MMVD距離テーブルの順序は整数で表され、これはオーダーコードと称することができる。8エントリを有する現在MMVDテーブルでは、8つの3ビット要素からなる24を有し得る。各3ビット要素は元の距離インデックス値を表し得る。導出されたMMVD距離テーブルの順序で8つの要素全てを連結すると、特定の整数値になる。要素は、降順又は昇順で連結されることができる。要素数は、増減することがあり、そのため、各要素を表すビット数は、それにしたがって変化することがある。
【0138】
一例として、表6のようなオリジナルのMMVD距離テーブルについて、並べ替え後、新しい順序は{1ピクセル、2ピクセル、1/2ピクセル、1/4ピクセル、16ピクセル、4ピクセル、32ピクセル、8ピクセル}となり、オリジナルの距離インデックスの順序は{2,3,1,0,6,4,7,5}となる。表10に示すように、16進形式のオーダーコードは0x4C8CBとする。この点に関して、要素インデックス0は、1ピクセルのピクセル距離、及び2進値010を有する距離インデックス2に対応する。したがって、2進オーダーコードの先頭3桁は010となる。各要素及び距離インデックスは、それぞれの2進値を持ち、連結されると、2進オーダーコード及び等価な16進オーダーコードを形成する。
【表10】
【0139】
いくつかの実施形態において、表コードは整数値であり得、このオーダーコードは8つの要素のうちの7つのみから構成され、残りの要素は推論され得る。推論された要素は、最初の要素、又は最後の要素、又は予め定義された要素インデックスを有する任意の要素とすることができる。最後の要素が推測される場合、オーダーコードのビット数は、24の代わりに21であり得る。要素は、降順又は昇順で連結することができる。要素は、降順又は昇順で連結することができる。要素数は増減し得るので、各要素を表すビット数はそれに応じて変化し得る。
【0140】
一例として、表6のような元のMMVD距離テーブルについて、並べ替え後、新しい順序は{1ピクセル、2ピクセル、1/2ピクセル、1/4ピクセル、16ピクセル、4ピクセル、32ピクセル、8ピクセル}となり、元の距離インデックスの順序は{2,3,1,0,6,4,7,5}となる。最後の要素が推論される場合、表11に示すように、最初の7つの要素のみをオーダーコードでコーディングすることができる。
最終的なオーダーコードは0x99197である。
【表11】
【0141】
いくつかの実施形態によれば、MMVD距離テーブルのオーダーコードは、予測によってシグナリングされ得る。ベースオーダーコードは、画像パラメータセット(PPS)、シーケンスパラメータセット(PSP)、又は別のヘッダでシグナリングされることがあり、オーダーコードとベースオーダーコードとの差分は、スライスヘッダ、タイル/タイル(tile/tile)グループヘッダ、又は他のヘッダのいずれかでシグナリングされることがある。一実施形態では、ベースオーダーコードは、MMVD距離テーブルの全ての要素を含む予め定義された値であり得る。例えば、8要素MMVD距離テーブルの場合、ベース順序は、{0、{1、2、3、4、5、6、7}の距離インデックス順序を有する{1/4ピクセル、1/2ピクセル、1ピクセル、2ピクセル、4ピクセル、8ピクセル、16ピクセル、32ピクセル}として予め定義され得る。各要素の2進値は表12の通りであり、16進値のベースオーダーコードは0x53977である。
【表12】
【0142】
いくつかの実施形態では、エンコーダ側の画像のオーダーコードをコーディングするために、導出された実際のオーダーコード値とベースオーダーコード値との差分がビットストリームにおいてシグナリングされる。差分の値は、オーダーコードデルタと呼ばれることがある。いくつかの実施形態では、デコーダ側では、オーダーコードデルタをデコードした後、予め定義されたベースオーダーコードと加算し、式1に示されるように、実際のオーダーコードを導出する。その後、MMVD距離テーブルをオーダーコードにしたがって導出することができる。
式1:オーダーコード=オーダーコードデルタ+ベースオーダーコード
【0143】
ベースオーダーコードの予め定義された値は、上記の例に限定されることはできない。例えば、予め定義された値は、任意の予め定義された順序であり得る。
【0144】
いくつかの実施形態によれば、多数の予め定義された距離テーブル順序(テーブルのグループと称される)が、エンコーダ及びデコーダの両方に記憶される。エンコーダ側については、現在画像、スライス、タイル又は画像の任意のセグメントについてグループから選択されたテーブルのインデックスがビットストリーム内でシグナリングされ得る。デコーダ側では、受信されたインデックスに対応するグループ内のテーブルが、エンコーダ側による使用と同様に、現在画像、スライス、タイル又は画像の任意のセグメントについてMMVD距離テーブルとして使用され得る。
【0145】
いくつかの例では、グループの全てのテーブルの距離エントリは、同じ候補の距離の異なる順列である(例えば、表11の例参照)。他の例では、グループの全てのテーブルの距離エントリが異なる場合があります。例えば、1つは表6から、もう1つは表7からのように、グループ内に2つの異なる表が存在し得る。0又は1のインデックスを使用して、どのインデックスを使用するかを選択し得る。
【0146】
いくつかの例では、予め定義されたテーブルのセットが使用され得る。エンコーダは、まず、予め定義されたテーブルが使用されるか否かを示すフラグをシグナリングし得る。予め定義されたテーブルが使用されている場合、テーブルインデックスがシグナリングされる。予め定義されたテーブルが使用されない場合、新たな予め定義されていないテーブルがデコーダでシグナリングされる。予め定義されていないテーブルは、バッファされ、後に他の画像によって参照され得る。バッファされた、予め定義されていないテーブルを識別するために、別のテーブルインデックスがシグナリングされ得る。予め定義されていないテーブルの最大数は、ビットストリームにおいて予め定義されているか、又はシグナリングされている数によって制約され得る。バッファされた予め定義されていないテーブルが最大数に達すると、テーブルがバッファから削除され得る。たとえば、最も古いテーブルを削除し得る。バッファは、ビットストリーム内でシグナリングされた特定のフラグ、又は、例えば即時デコードリフレッシュ(IDR)画像等の、他のバッファリセット機構によってリセットされ得る。
【0147】
いくつかの例において、予め定義されたテーブルのセットは、デコーダパラメータセット(DPS)、ビデオパラメータセット(VPS)又はシーケンスパラメータセット(SPS)でシグナリングされ得る。DPSでシグナリングされたセットは、連続的にコーディングされた全てのコーディングされたビデオシーケンス(CVS)を含むビットストリーム全体においてアクティベートされ、使用され得る。VPSでシグナリングされたセットは、各CVSが各層又は構成要素に対してコーディングされているCVSのグループ内でアクティベートされ、使用されてもよい。SPSでシグナリングされたセットは、関連するCVS内でアクティベートされ、使用され得る。画像パラメータセット(PPS)、ヘッダパラメータセット(HPS)、適応パラメータセット(APS)、スライスヘッダ又はタイル/タイルグループヘッダでシグナリングされたフラグは、インデックスが、関連する画像又はタイル/タイル・グループにおいて、予め定義されたテーブルの1つを示し得るか、又は再インデックス化された(並べ替えられた)セットを示し得るかどうかを示すことができる。インデックスが存在することをフラグが示す場合、インデックスは、予め定義されたテーブルの中の関連する画像のCUをコーディングするために使用される予め定義されたテーブルを特定し得る。複数のテーブルが異なるパラメータで定義されている場合、最後にアクティベートされたパラメータセットで定義されているテーブルがアクティベートされ、使用される。インデックスが存在せず、距離順序が手動で定義されていることをフラグが示す場合、距離インデックスは表7、8、及び9に示されるようにシグナリングされている。
【0148】
いくつかの例において、PPS、HPS、APS、スライスヘッダ又はタイル/タイルグループヘッダでシグナリングするフラグは、予め定義されたテーブルを使用するか、又は要素インデックスに対応する全てのピクセル距離を明示的にシグナリングするかどうかを示し得る。フラグが、全て又は部分的なピクセル距離情報が明示的にシグナリングされることを示す場合には、どのパラメータセット内の予め定義されたテーブルも、アクティベートされておらず、関連する画像内で使用され、現在のPPS、HPS、APS、スライスヘッダ又はタイル/タイルグループヘッダで定義されたテーブルが、関連する画像内のCUをコーディングするために使用される。新たに定義された表は、要素インデックスからピクセル距離までの全てのマッピング情報を含み得る。
【0149】
いくつかの例において、PPS、HPS、APS、スライスヘッダ又はタイル/タイルグループヘッダでシグナリングされたフラグは、予め定義されたテーブルを使用するか、要素インデックスに対応するピクセル距離差分を明示的にシグナリングするかどうかを示し得る。フラグが、全て又は部分的なピクセル距離差分が明示的にシグナリングされていることを示す場合には、任意のパラメータセット内の予め定義されたテーブルの1つがアクティベートされ、関連する画像内で使用される。さらに、ピクセル距離値は、現在の画像について明示的にシグナリングされたピクセル距離差分値を予め定義された画素距離値に加算することによって取得され得る。
【0150】
いくつかの実施形態によれば、任意のアフィンMMVD方法が使用される場合、MMVD距離テーブルオーダーコードをシグナリングするため、又は予め定義された候補のセットからMMVD距離テーブルオーダをシグナリングするための、上記に開示された方法は、アフィンMMVDのために並べ替えられた距離オフセットテーブルをシグナリングするために適用され得る。いくつかの例では、任意のアフィンMMVD方法は、MMVDに使用される初期テーブルとは異なる距離オフセットテーブルを有し得る。さらに、距離オフセットテーブル内の要素の数は、MMVDに使用されるものとは異なることがあり、したがって、アフィンMMVDのための距離オフセットテーブルの各要素を表現するために必要なビット数は、MMVDのそれとは異ることがある。
【0151】
図17は、デコーダによって実行されるプロセスの一実施形態を示す。このプロセスは、ステップ(S1700)で開始され得、現在ブロックのためのシグナリング情報を含むコーディングされたビデオビットストリームを受信する。プロセスは、ステップ(S1702)に進み、シグナリング情報に基づいて現在ブロックのためのブロック再構成情報を決定する。プロセスは、ステップ(S1704)に進み、決定されたブロック再構成情報を用いて現在ブロックを再構成する。一例として、シグナリング情報は、現在ブロックがマージモードでコーディングされているかどうか、及びマルチ仮説予測が現在ブロックについて有効化されているかどうかを示し得る。マルチ仮説予測が有効化されている場合、ブロック再構成情報は、マージインデックスによって特定される第1マージ候補と、マージインデックスから導出される第2マージ候補と、を含み得る。別の例として、現在のブロックは、MMVDモードでコーディングされ、シグナリング情報は、MMVD距離テーブルのためのオーダーコードを含む。現在ブロックがMMVDモードでコーディングされる場合、ブロック再構成情報は、MMVD距離テーブルを使用して取得される動きベクトルであり得る。
【0152】
上述の技術は、コンピュータ読取可能な命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ読取可能な媒体に物理的に記憶することができる。例えば、図18は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(1800)を示す。
【0153】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切な機械コード若しくはコンピュータ言語を使用してコーディングされることができ、直接実行されることができるか、又は、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)等による、実施、マイクロコード実行等を介して実行されることができる命令を含むコードを作成する。
【0154】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、物品のインターネット等を含む種々のタイプのコンピュータ又はその構成要素上で実行されることができる。
【0155】
コンピュータ・システム(1800)のための図18に示されるコンポーネントは、例示的な性質のものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関する制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(1800)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関連する依存性又は要件を有すると解釈されるべきではない
【0156】
コンピュータシステム(1800)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スイッピング、データグローブの動き)、音声入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、一人又は複数の人間ユーザによる入力に応答することができる。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、音声、音楽、周囲の音声)、画像(例えば、走査画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)等の、人間による意識的入力に必ずしも直接関係しない特定の媒体を捕捉するために使用されることができる。
【0157】
入力ヒューマンインタフェースデバイスは、キーボード(1801)、マウス(1802)、トラックパッド(1803)、タッチスクリーン(1810)、データグローブ(図示せず)、ジョイスティック(1805)、マイクロホン(1806)、スキャナ(1807)、カメラ(1808)の1つ以上を含み得る。
【0158】
コンピュータ・システム(1800)はまた、特定のヒューマンインタフェース出力デバイスを含み得る。
かかるヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人又は複数の人間ユーザの感覚を刺激し得る。かかるヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1810)、データグローブ(図示せず)、又はジョイスティック(1805)による触覚フィードバック)、入力デバイスとして働かない触覚フィードバックデバイスであることもでき)と、オーディオ出力デバイス(例えば、スピーカー(1809)、ヘッドフォン(図示せず))と、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1810)であり、各々が触覚フィードバック能力を有するか又は有さず、各々が触覚フィードバック能力を有するか又は有さず、そのうちのいくつかは、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)等の立体出力のような手段を介して2次元視出力又は3次元以上の出力を可能にし得るもの)と、プリンタ(図示せず)と、を含み得る。
【0159】
コンピュータシステム(1800)はまた、人間がアクセス可能な記憶デバイスと、それらのアクセス可能な媒体とを含むことができ、媒体は、例えば、CD/DVD等の媒体(1821)によるCD/DVD ROM/RWを含む光学媒体ドライブ(1820)、USBメモリ(1822)、着脱可能ヘッドドライブ又はソリッドステートドライブ(1823)、テープ、フロッピーディスク(図示せず)等の従来の磁気媒体、セキュリティドングル等の特殊化されたROM/ASIC/PLDベースデバイス等である。
【0160】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解されたい。
【0161】
コンピュータシステム(1800)はまた、1つ以上の通信ネットワークへのインタフェースを含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、広域、大都市、車両及び工業、リアルタイム、遅延耐性等であり得る。ネットワークの例としては、イーサネット、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TV、CANBusを含む産業用及び車両用を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1849)に接続される外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(1800)のUSBポート)を必要とし、他のネットワークは、一般に、以下に説明するシステムバスに接続されることにより、コンピュータ・システム(1800)のコアに統合される(、例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェースである)。これらのネットワークのいずれかを使用して、コンピュータシステム(1800)は、他のエンティティと通信することができる。かかる通信は、単指向性通信、受信のみ(例えば、放送テレビ)通信、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)通信、又は、例えばローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの、双方向通信であることができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインタフェースの各々で使用されることができる。
【0162】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインタフェースは、コンピュータシステム(1800)のコア(1840)に接続されることができる。
【0163】
コア(1840)は、1つ以上の中央処理デバイス(CPU)(1841)、グラフィックス処理デバイス(GPU)(1842)、フィールドプログラマブルゲートエリア(FPGA)(1843)の形態の特殊なプログラマブル処理デバイス、特定のタスクのためのハードウェアアクセラレータ(1844)等を含むことができる。これらのデバイスは、読出し専用メモリ(ROM) (1845)、ランダムアクセスメモリ(1846)、内部大容量記憶デバイス、例えば内部非ユーザアクセス可能ハードドライブ、SSD等(1847)と共に、システムバス(1848)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(1848)は、追加のCPU、GPU等による拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能である。周辺デバイスは、コアのシステムバス(1848)に直接接続するか、又は周辺バス(1849)を介して接続することができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0164】
CPU(1841)、GPU(1842)、FPGA(1843)、及びアクセラレータ(1844)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1845)又はRAM(1846)に格納されることができる。移行データは、RAM(1846)に格納されることもできるが、永久データは例えば内部大容量記憶デバイス(1847)に格納されことができる。1つ以上のCPU(1841)、GPU(1842)、大容量記憶デバイス(1847)、ROM(1845)、RAM(1846)等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0165】
コンピュータ可読媒体は、各種のコンピュータ実行動作を実行するためにその上のコンピュータコードを有することができる。メディアおよびコンピュータコードは特別に設計されたそれらであることができて、本開示のために作成されることができる、または、それらはよく公知で、コンピュータソフトウェア技術の技術を有するそれらが利用できる種類でありえる。
【0166】
一例として、限定するものではなく、アーキテクチャ(1800)、具体的にはコア(1840)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能性を提供することができる。かかるコンピュータ可読媒体は、コア-内部大容量記憶デバイス(1847)又はROM(1845)等の一時的でない性質のコア(1840)の特定の記憶デバイスと同様に、上述のようにユーザがアクセス可能な大容量記憶デバイスに関連する媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア(1840)によって実行され得る。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1840)及びその中の具体的にプロセッサ(CPU、GPU、FPGA等を含む)に、RAM (1846)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスにしたがって、かかるデータ構造を変更することを含む、本明細書に記載された特定のプロセス又は特定の部分を実行させることができる。さらに、又は代替として、コンピュータシステムは、回路(例えば、アクセラレータ(1844))内に配線された、又は他の方法で具現化されたロジックの結果として、機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を含み、また、必要に応じて、その逆も可能である。コンピュータ読取り可能媒体への参照は、実行のためのソフトウェアを記憶する回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0167】
付録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:ロング・ターム・エヴォリューション
CANバス:コントローラ・エリア・ネットワーク・バス
USB:ユニバーサル・シリアル・バス
PCI:ペリフェラル・コンポーネント・インターコネクト
FPGA:フィールド・プログラマブル・ゲート・エリア
SSD:ソリッド・ステート・ドライブ
IC:集積回路
CU:コーディング・ユニット
【0168】
本開示はいくつかの例示的な実施形態を説明しているが、本発明の範囲内に入る、変更、置換、及び様々な均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本発明の原理を実施し、したがってその概念及び範囲内にある多数のシステム及び方法を創造することができることが理解されよう。
【0169】
(1)
ビデオデコーダで実行されるビデオデコーディングの方法であって、
現在ブロック(current block)のためのシグナリング情報を含むコーディングされたビデオビットストリームを受信するステップと、
シグナリング情報に基づいて、現在ブロックのためのブロック再構成情報を決定するステップと、
決定された前記ブロック再構成情報を用いて現在ブロックを再構成するステップと、
を含む、方法。
【0170】
(2)
特徴(1)による方法であって、
シグナリング情報は、現在ブロックがマージモードでコーディングされていることを示し、
シグナリング情報は、現在ブロックがマルチ仮説モード(multi-hypothesis mode)でコーディングされているかどうかをさらに示す、
方法。
【0171】
(3)
特徴(2)による方法であって、
現在ブロックがマルチ仮説モードでコーディングされていることを、シグナリング情報が示すという決定に応答して、
シグナリング情報は、マージ候補リスト内の候補の最大数から2を引いた最大値を有するマージインデックスをさらに含む、
方法。
【0172】
(4)
特徴(3)による方法であって、
マージインデックスは単項コード(unary code)でコーディングされている、
方法。
【0173】
(5)
特徴(3)又は(4)による方法であって、
マージモードは第1フラグでシグナリングされ、
マルチ仮説モードは第2フラグでシグナリングされる、
方法。
【0174】
(6)
特徴(3)~(5)のいずれか1つによる方法であって、
ブロック再構成情報は、マージインデックスによって特定される第1マージ候補と、マージインデックスから導出される第2マージ候補と、を含む、
方法。
【0175】
(7)
特徴(2)~(6)のいずれか1つによる方法であって、
マージ候補リストの候補数(a number of candidates)が2未満であるという決定に応答して、現在ブロックがマルチ仮説モードでコーディングされるべきでないことが決定される、
方法。
【0176】
(8)
特徴(2)~(7)のいずれか1つによる方法であって、
マージインデックスがマージ候補リスト内の候補の最大数から1を引いた値以上の値を有するという決定に応答して、現在ブロックがマルチ仮説モードでコーディングされるべきでないことが決定される、
方法。
【0177】
(9)
特徴(1)による方法であって、
現在ブロックは、マージ・動きベクトル差分(MMVD:merge motion vector difference)モードでコーディングされ、
シグナリング情報は、MMVD距離テーブルのためのオーダーコード(order code)を含む、
方法。
【0178】
(10)
特徴(9)による方法であって、
ブロック再構成情報は、MMVD距離テーブルを用いて得られる動きベクトルを含む、
方法。
【0179】
(11)
特徴(9)又は(10)による方法であって、
オーダーコードは、MMVD距離テーブルの1つ以上の要素を特定する2進オーダーコードである、
方法。
【0180】
(12)
特徴(11)による方法であって、
MMVD距離テーブルの少なくとも1つの要素は、前記2進オーダーコードから推定される、
方法。
【0181】
(13)
特徴(9)~(12)のいずれか1つによる方法であって、
オーダーコードは、ベースオーダーコードであり、
MMVD距離テーブルの1つ以上の要素を特定する最終的なオーダーコードは、ベースオーダーコード、及び、最終的なオーダーコードとベースオーダーコードとの間の差分の和から決定される、
方法。
【0182】
(14)
特徴(12)又は(13)による方法であって、
最終的なオーダーコードとベースオーダーコードとの間の差分は、シグナリング情報に含まれる、
方法。
【0183】
(15)
特徴(9)~(14)のいずれか1つによる方法であって、
オーダーコードは、画像パラメータセット(PPS:picture parameter set)のヘッダ及びシークエンスパラメータセット(SPS:sequence parameter set)のヘッダの一方に含まれる、
方法。
【0184】
(16)
ビデオデコーディングのためビデオデコーダであって、
現在ブロックのためのシグナリング情報を含むコーディングされたビデオストリームを受信し、
シグナリング情報に基づいて、現在ブロックのためのブロック再構成情報を決定し、
決定されたブロック再構成情報を用いて現在ブロックを再構成する、
ビデオデコーダ。
【0185】
(17)
特徴(16)によるビデオデコーダであって、
シグナリング情報は、現在ブロックがマージモードでコーディングされていることを示し、
シグナリング情報は、現在ブロックがマルチ仮説モードでコーディングされているかどうかをさらに示す、
ビデオデコーダ。
【0186】
(18)
特徴(17)によるビデオデコーダであって、
現在ブロックがマルチ仮説モードでコーディングされていることを、シグナリング情報が示すという決定に応答して、
シグナリング情報は、マージ候補リスト内の候補の最大数から2を引いた最大値を有するマージインデックスをさらに含む、
ビデオデコーダ。
【0187】
(19)
特徴(18)によるビデオデコーダであって、
マージインデックスは単項コードでコーディングされている、
ビデオデコーダ。
【0188】
(20)
命令が格納されている非一時的コンピュータ可読媒体であって、ビデオデコーダ内のプロセッサによって実行されると、方法をプロセッサに実行させる非一時的コンピュータ可読媒体であって、方法は、
現在ブロックのためのシグナリング情報を含むコーディングされたビデオビットストリームを受信するステップと、
シグナリング情報に基づいて、現在ブロックのためのブロック再構成情報を決定するステップと、
決定された前記ブロック再構成情報を用いて現在ブロックを再構成するステップと、を含む
方法をプロセッサに実行させる、非一時的コンピュータ可読媒体。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15
図16
図17
図18