(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159375
(43)【公開日】2023-10-31
(54)【発明の名称】ビデオコーディングのための方法、装置及びプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20231024BHJP
H04N 19/52 20140101ALI20231024BHJP
【FI】
H04N19/70
H04N19/52
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023137129
(22)【出願日】2023-08-25
(62)【分割の表示】P 2021557681の分割
【原出願日】2021-01-12
(31)【優先権主張番号】62/960,930
(32)【優先日】2020-01-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/088,073
(32)【優先日】2020-11-03
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,リン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
(57)【要約】 (修正有)
【課題】マージMVP候補の最大数に少なくとも基づいてビデオデコーディングのための処理回路を含む装置及び方法を提供する。
【解決手段】処理回路による方法は、コーディングされたビットストリームから、第1コーディングレベルにおいてシグナリングされた第1構文要素をデコードする。第1構文要素は、マージ動きベクトル予測(MVP)候補の最大数を示し、第1コーディングレベルは、画像パラメータセット(PPS)レベルよりも高い。方法はまた、第1構文要素に基づいて、マージMVP候補の最大数を決定し、マージMVP候補の最大数に少なくとも基づいて、第1コーディングレベルに関連するコーディングブロックを再構成する。第1コーディングレベルはシークエンスレベルであり、第1の構文要素はシーケンスパラメータセット(SPS)においてシグナリングされる。
【選択図】
図21
【特許請求の範囲】
【請求項1】
デコーダが実行するビデオをデコードするための方法であって、
コーディングされたビットストリームから、第1コーディングレベルにおいてシグナリングされた第1構文要素をデコードするステップであって、前記第1構文要素は、マージ動きベクトル予測候補(マージMVP候補)の最大数を示し、前記第1コーディングレベルは、画像パラメータセット(PPS)レベルよりも高い、ステップと、
前記第1構文要素に基づいて、前記マージMVP候補の最大数を決定するステップと、
前記マージMVP候補の最大数に少なくとも基づいて、前記第1コーディングレベルに関連するコーディングブロックを再構成するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本願は、2020年11月3日に出願された米国特許出願第17/088,073号「ビデオコーディングのための方法及び装置(METHOD AND APPARATUS FOR VIDEO CODING)」に基づく優先権の利益を主張し、これは2020年1月14日に出願された米国仮出願第62/960,930号「インター予測のためのマージ候補の最大数のシグナリング(SIGNALING OF MAXIMUM NUMBER OF MERGE CANDIDATES FOR INTER PREDICTION)」に基づく優先権の利益を主張する。
先願の全ての開示は、完全に本願明細書に援用したものとする。
【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とも称する。)によって示される方向に空間的にシフトされた後に、新たな再構成画像又はその一部の予測のために使用される技術に関連付けることができる。場合によっては、参照画像は現在再構成中の画像と同一であることもできる。MVは、X及びYの2次元、又は3次元を有することができ、第3次元は、使用中の参照画像の表示である(後者は、間接的に、時間次元であることができる)。
【0007】
いくつかのビデオ圧縮技術では、サンプルデータの、あるエリアに適用可能な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】
本開示の態様は、ビデオエンコード/デコードのための方法及び装置を提供する。いくつかの実施例では、ビデオデコードのための装置は、処理回路を含む。処理回路は、コーディングされたビットストリームから、第1コーディングレベルにおいてシグナリングされた第1構文要素をデコードすることができる。第1構文要素は、マージ動きベクトル予測(MVP)候補の最大数を示すことができる。第1コーディングレベルは、画像パラメータセット(PPS)レベルよりも高いことができる。処理回路は、第1構文要素に基づいて、マージMVP候補の最大数を決定することができる。処理回路は、マージMVP候補の最大数に少なくとも基づいて、第1コーディングレベルに関連するコーディングブロックを再構成することができる。
【0011】
実施形態において、処理回路は、コーディングされたビデオビットストリームから、第1コーディングレベルにおいてシグナリングされた第4構文要素と、第3構文要素と、第2構文要素と、をデコードすることができる。第2構文要素は、幾何学的マージモードマージ候補の最大数を示すことができ、第3構文要素は、サブブロックベースのマージMVP候補の最大数を示すことができ、第4構文要素は、イントラブロックコピー(IBC)マージブロックベクトル予測(BVP)候補の最大数を示すことができる。処理回路は、(i)第2構文要素に基づいて、幾何学的マージモードマージ候補の最大数を、(ii)前記第3構文要素に基づいて、前記サブブロックベースのマージMVP候補の最大数を、及び(iii)前記第4構文要素に基づいて、前記IBCマージBVP候補の最大数を決定することができる。
【0012】
一実施形態において、第1コーディングレベルは、シーケンスレベルであり、第1構文要素は、シーケンススパラメータセット(SPS)でシグナリングされている。
【0013】
一実施形態において、処理回路は、前記コーディングされたビデオビットストリームから、満たされている条件に基づいて、第2コーディングレベルでシグナリングされた第2構文要素をデコードすることができる。第2構文要素は、幾何学的マージモード、サブブロックベースモード、及びイントラブロックコピー(IBC)マージモードのうちの1つに対するマージ候補の最大数を示すことができる。実施例において、幾何学的マージモード、サブブロックベースマージモード及びIBCマージモードのうちの1つは、幾何学的マージモードである。マージ候補の最大数は、幾何学的マージモードマージ候補の最大数である。第2構文要素は、幾何学的マージモードマージ候補の最大数を示す。条件は、第2コーディングレベルで使用可能である幾何学的マージモード、及び、3以上であるマージMVP候補の最大数である。処理回路は、第2構文要素に基づいて、幾何学的マージモードマージ候補の最大数を決定することができる。
【0014】
実施例において、幾何学的マージモード、サブブロックベースマージモード及びIBCマージモードのうちの1つは、サブブロックベースマージモードである。マージ候補の最大数は、サブブロックベースのマージMVP候補の最大数である。第2構文要素は、サブブロックベースのマージMVP候補の最大数を示す。条件は、第2コーディングレベルにおいて使用可能であるアフィンモードである。処理回路は、第2構文要素に基づいて、サブブロックベースのマージMVP候補の最大数を決定することができる。実施例において、第2構文要素は、第2コーディングレベルより低いコーディングレベルにおいて変更される。実施例において、第1コーディングレベル及び第2コーディングレベルは、シーケンスレベルであり、第2コーディングレベルより低いコーディングレベルは、画像レベルである。
【0015】
実施例において、幾何学的マージモード、サブブロックベースマージモード及びIBCマージモードのうちの1つは、IBCマージモードである。マージ候補の最大数は、IBCマージブロックベクトル予測(BVP)候補の最大数である。第2構文要素は、IBCマージBVP候補の最大数を示す。条件は、第2コーディングレベルで使用可能であるIBCマージモードである。処理回路は、第2構文要素に基づいて、IBCマージBVP候補の最大数を決定することができる。
【0016】
実施例において、第1コーディングレベル及び第2コーディングレベルは、シーケンスレベルである。
【0017】
また、本開示の態様は、ビデオデコーディングのためにコンピュータによって実行されたときに、コンピュータにビデオコーディングのための方法を実行させる命令を格納する非一時的なコンピュータ読取可能媒体記憶を提供する。
【図面の簡単な説明】
【0018】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【
図1】
図1は、一実施例における現在ブロック及びその周囲の空間マージ候補を模式的に示す図である。
【
図2】
図2は、一実施形態による通信システム(200)の簡略ブロック図を模式的に示す図である。
【
図3】
図3は、一実施形態による通信システム(300)の簡略ブロック図を模式的に示す図である。
【
図4】
図4は、一実施形態によるデコーダの簡略ブロック図を模式的に示す図である。
【
図5】
図5は、一実施形態によるエンコーダの簡略ブロック図を模式的に示す図である。
【
図6】
図6は、別の実施形態によるエンコーダのブロック図である。
【
図7】
図7は、別の実施形態によるデコーダのブロック図である。
【
図8】
図8は、例示的な幾何学的マージモードを示す。
【
図9】
図9は、画像パラメータセット(PPS)においてシグナリングされた例示的な構文を示す。
【
図10】
図10は、画像ヘッダにおいてシグナリングされた例示的な構文を示す。
【
図11】
図11は、シーケンスパラメータセット(SPS)においてシグナリングされた例示的な構文を示す。
【
図12】
図12は、PPSにおいてシグナリングされた例示的な構文を示す。
【
図13】
図13は、画像ヘッダにおいてシグナリングされた例示的な構文を示す。
【
図14】
図14は、画像ヘッダにおいてシグナリングされた例示的な構文を示す。
【
図21】
図21は、本開示の一実施形態によるプロセス(2100)の概略を示すフローチャートを示す。
【
図22】
図22は、一実施形態によるコンピュータシステムを模式的に示す図である。
【発明を実施するための形態】
【0019】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1対の端末デバイス(210)及び(220)を含む。
図2の例では、第1対の端末デバイス(210)及び(220)は、データの一方向送信を行う。例えば、端末デバイス(210)は、ネットワーク(250)を介して他の端末デバイス(220)に伝送するために、ビデオデータ(例えば、端末デバイス(210)によって捕捉されるビデオ画像のストリーム)をコーディングすることができる。エンコードされた画像データは、1つ以上のコーディングされたビデオビットストリームの形態で送信されることができる。端末デバイス(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがってビデオ画像を表示することができる。一方向性データ伝送は、メディア提供アプリケーション等において一般的であり得る。
【0020】
別の例では、通信システム(200)は、第2対の端末デバイス(230)及び(240)を含み、例えばビデオ会議中に、発生し得るコーディングされたビデオデータの双方向伝送を行う。データの双方向伝送のために、例えば、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)及び(240)の他方の端末デバイスに伝送するために、ビデオデータ(例えば、端末デバイスによって捕捉されるビデオ画像のストリーム)をコーディングすることができる。端末デバイス(230)及び(240)の各端末デバイスは、端末デバイス(230)及び(240)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードして、ビデオ画像を復元し、復元されたビデオデータにしたがって、アクセス可能な表示デバイスにビデオ画像を表示することができる。
【0021】
図2の例では、端末デバイス(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本発明の原理はこれらに限定されない。本発明の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器への適用を見出す。ネットワーク(250)は、例えばワイヤライン(有線)及び/又は無線通信ネットワークを含む、端末デバイス(210)、(220)、(230)及び(240)の間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換及び/又はパケット交換チャネル内のデータを交換することができる。
代表的なネットワークには、テレコミュニケーションネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットが含まれる。本説明の目的のためには、以下に説明しない限り、ネットワーク(250)のアーキテクチャ及びトポロジーは本発明の動作には重要ではない。
【0022】
図3は、開示された主題の適用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTVや、CD、DVD、メモリースティック等を含むデジタルメディアへの圧縮ビデオの保存等を含む、他のビデオ対応アプリケーションに等しく適用することができる。
【0023】
ストリーミングシステムは、例えば、非圧縮のビデオ画像(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のコンテキストで使用され得る。
【0024】
電子デバイス(320)及び(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)も含むことができる。
【0025】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例のビデオデコーダ(310)の代わりに使用されることができる。
【0026】
受信器(431)は、ビデオデコーダ(410)によってデコードされるべき1つ以上のコーディングされたビデオシーケンスを受信することができ、同一又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信することができ、その際、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信することができ、このチャネルは、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。
受信器(431)は、エンコードされたビデオデータを、他のデータ、例えばコーディングされたオーディオデータ及び/又は付随的なデータストリームと共に受信することができ、これらのデータは、それぞれのエンティティ(図示せず)を使用して転送され得る。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサ(420)(以後「パーサ(420)」)との間に結合され得る。特定の用途では、バッファメモリ(415)はビデオデコーダ(410)の一部である。他の場合には、ビデオデコーダ(410)の外側にあることができる(図示せず)。さらに別の場合には、例えばネットワークジッタに対抗するために、ビデオデコーダ(410)の外側にバッファメモリ(図示せず)が存在することができ、さらに、例えば再生タイミングを処理するために、ビデオデコーダ(410)の内側に別のバッファメモリ(415)が存在することもできる。受信器(431)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、又は、アイソクロナスネットワークから、データを受信している場合、バッファメモリ(415)は不要であるか、又は小さくてもよい。インターネット等のベストエフォート型パケットネットワークでの使用のために、バッファメモリ(415)は、必要とされ、比較的大きく、有利に適応サイズであり得、ビデオデコーダ(410)の外側のオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実装され得る。
【0027】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、及び、
図4に示されているように、電子デバイス(430)の不可欠な部分ではないが、電子デバイス(430)に結合され得るレンダリングデバイス(412)(例えば、表示スクリーン)等のレンダリングデバイスを制御する潜在的な情報を含む。(複数の)レンダリングデバイスの制御情報は、付加拡張情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であり得る。パーサ(420)は、受信されるコーディングされたビデオシーケンスをパースし/エントロピデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴う又は伴わない算術コーディングなどを含む種々の原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出し得る。サブグループは、画像グループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含み得る。パーサ(420)はまた、変換係数、量子化パラメータ値、モーションベクター等の情報を、コーディングされたビデオシーケンスから抽出し得る。
【0028】
パーサ(420)は、シンボル(421)を生成するように、バッファメモリ(415)から受信したビデオシーケンスに、エントロピデコード/パース動作を実行し得る。
【0029】
シンボル(421)の再構成は、コーディングされたビデオ画像又はその部分のタイプ(例えば、画像間及び画像内、ブロック間及びブロック内)及び他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが、どのように含まれているかは、パーサ(420)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数ユニットとの間のかかるサブグループ制御情報のフローは、明確さのために図示されていない。
【0030】
すでに述べた機能ブロックの他に、ビデオデコーダ(410)は、概念的に、以下に説明するように、いくつかの機能ユニットに分割されることができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示された主題を説明するの目的で、以下の機能単位に概念的に細分化することが適切である。
【0031】
第1ユニットは、スケーラ/逆変換ユニット(451)である。
スケーラ/逆変換ユニット(451)は、量子化された変換係数、並びに、パーサ(420)から(複数の)シンボルとして、使用されるべき変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力可能なサンプル値を含むブロックを出力することができる。
【0032】
いくつかの場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、イントラコード化されたブロックに関係することができる;すなわち、先行して再構成された画像からの予測情報を使用していないが、現在画像の、先行して再構成された部分からの予測情報を使用できるブロック。かかる予測情報は、画像内部予測ユニット(452)によって提供されることができる。場合によっては、画像内部予測ユニット(452)は、現在の画像バッファ(458)からフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在の画像バッファ(458)は、例えば、部分的に再構成された現在の画像及び/又は完全に再構成された現在の画像をバッファする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に加算する。
【0033】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、相互コーディングに関係し、潜在的にモーション補償ブロックに関係することができる。かかる場合、モーション補償予測ユニット453は、予測に使用されるサンプルをフェッチするために参照画像メモリ457にアクセスすることができる。ブロックに関連するシンボル(421)にしたがって、フェッチされたサンプルをモーション補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力(この場合、残留サンプル又は残留信号と称される)に加算されることができる。モーション補償予測ユニット(453)が予測サンプルをフェッチする参照画像メモリ(457)内のアドレスは、モーションベクターによって制御することができ、例えばX、Y、及び参照画像コンポーネントを有することができるシンボル(421)の形態でモーション補償予測ユニット(453)に利用可能である。モーション補償はまた、サブサンプルの正確なモーションベクターが使用されている場合に参照画像メモリ(457)からフェッチされるようにサンプル値を補間すること、モーションベクター予測機構、等を含むことができる。
【0034】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の種々のループフィルタリング技術を受けることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができ、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも称される)に含まれるパラメータによって制御され、パーサ(420)からシンボル(421)としてループフィルタユニット(456)に利用可能にされるが、コーディングされた画像又はコーディングされたビデオシーケンスの(デコード順において)前の部分のデコードの間に得られるメタ情報に応答することができると共に、以前に再構成されループフィルタリングされたサンプル値に応答することができる、ループ内フィルタ技術を含むことができる。
【0035】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力されることができ、また将来の画像内部予測に使用するために参照画像メモリ(457)に記憶されることができるサンプルストリームであることができる。
【0036】
コーディングされた画像は、一旦完全に再構成されると、将来の予測のための参照画像として使用されることができる。例えば、一旦現在の画像に対応するコーディング画像が完全に再構成され、(例えば、パーサ(420)によって)コーディングされた画像が参照画像として識別されると、現在の画像バッファ(458)は参照画像メモリ(457)の一部となることができ、新たな現在画像バッファは、後続のコーディング画像の再構成を開始する前に再割当てされ得る。
【0037】
ビデオデコーダ(410)は、ITU-T Rec.H.265.等の標準の所定のビデオ圧縮技術にしたがってデコーディング動作を実行し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術若しくは標準の構文、及び、ビデオ圧縮技術若しくは標準に文書化されているプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術又は標準によって特定された構文に適合し得る。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は標準で使用可能なすべてのツールから選択することができる。また、コンプライアンスのために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることであり得る。場合によっては、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様と、コーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
【0038】
一実施形態では、受信器(431)は、エンコードされたビデオと共に追加の(冗長な)データを受信することができる。追加データは、コーディングされた(複数の)ビデオシーケンスの部分として含まれ得る。追加のデータは、データを適切にデコードするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、又は信号雑音比(SNR)拡張層、冗長スライス、冗長画像、前方エラー補正コードなどの形態であり得る。
【0039】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。
図3の例のビデオエンコーダ(303)の代わりに、ビデオエンコーダ(503)を用いることができる。
【0040】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされる(複数の)ビデオ映像を捕捉することができるビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0041】
ビデオソース(501)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(503)によってコーディングされるべきソースビデオシーケンスを提供し得る。メディア配信システムにおいて、ビデオソース(501)は、予め準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(501)は、局所映像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、シーケンスで見たときに動きをもたらす複数の個々の画像として提供され得る。画像自体は、ピクセルの空間アレイとして組織化されることができ、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0042】
一実施例によれば、ビデオエンコーダ(503)は、リアルタイムで、又はアプリケーションによって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスの画像をコード化し、コード化されたビデオシーケンス(543)に圧縮することができる。適切なコーディングレートを実現することは、コントローラ(550)の一つの機能である。いくつかの実施形態において、コントローラ(550)は、以下に記載されるように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。継手は、明確にするため表されない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、...)、画像サイズ、画像グループレイアウト、最大動きベクトルサーチレンジ等を含むことができる。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するように構成されることができる。
【0043】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成される。過剰に単純化された説明として、一例において、コーディングループは、(例えば、コーディングされるべき入力画像及び参照画像に基づいて、シンボルストリーム等のシンボルを生成する責任を担う)ソースコーダ(530)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が、開示された主題において考慮されたビデオ圧縮技術において可逆的であるように)、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームのデコーディングは、デコーダロケーション(ローカル又はリモート)に依存しないビットイクザクトな結果(bit-exact results)をもたらすので、参照画像メモリ(534)中の内容もまた、ローカルエンコーダとリモートエンコーダとの間でビットイクザクトである。換言すれば、エンコーダの予測部分は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像同期性のこの基本原理(及び、例えばチャンネルエラーのために、同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても同様に使用される。
【0044】
「ローカル」デコーダ(533)の動作は、ビデオデコーダ(410)等の「リモート」デコーダと同じであることができ、これは、
図4と関連して詳細に既に上述したとおりである。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)によるコーディングビデオシーケンスへのシンボルのコーディング/デコーディングが可逆的であることができるので、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピーデコーディング部分及びパーサ(420)は、ローカルデコーダ(533)に完全には実装されない場合がある。
【0045】
この点で行うことができる観察は、デコーダ内に存在するパース/エントロピーデコードを除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能的形態で存在する必要があることである。このために、開示された主題は、デコーダ動作に集中する。それらが包括的に記載されているデコーダ技術の逆であるにつれて、エンコーダ技術の説明は略記されることができる。特定の領域だけで、より多くの詳細説明が、必要とされて、下でなされる。
【0046】
動作中に、いくつかの例において、ソースコーダ(530)は、「参照画像」として指定されたビデオシーケンスからの1つ以上の、先行してコーディングされた画像を参照して入力画像を予測的にコーディングする、モーション補償予測コーディングを実行し得る。このようにして、コーディングエンジン(532)は、入力画像のピクセルブロックと、入力画像に対する(複数の)予測参照として選択され得る(複数の)参照画像のピクセルブロックとの間の差をコーディングする。
【0047】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照画像として指定され得る画像のコーディングされたビデオデータをデコードし得る。コーディングエンジン(532)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオ・デコーダ(
図5には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照画像上でビデオデコーダによって実行され、参照画像キャッシュ(534)に記憶されるべき再構成された参照画像を生じさせ得るデコーディング処理を繰り返す。このようにして、ビデオエンコーダ(503)は、遠位端ビデオデコーダによって得られるであろう再構成された参照画像として、共通のコンテンツを有する再構成された参照画像のコピーをローカルに記憶することができる。
【0048】
予測器(535)は、コーディングエンジン(532)について予測サーチを実行し得る。すなわち、コーディングされるべき新しい画像について、予測器(535)は、新しい画像についての適切な予測参照として役立ち得る、参照画像動きベクトル、ブロック形状等の特定のメタデータ、又は、サンプルデータ(参照ピクセルブロックの候補として)、について参照画像メモリ(534)をサーチし得る。予測器(535)は、適切な予測参照を見出すために、サンプルブロック毎に動作し得る。場合によっては、予測器(535)によって得られたサーチ結果によって決定されるように、入力画像は、参照画像メモリ(534)に記憶された複数の参照画像から引き出された予測参照を有し得る。
【0049】
コントローラ(550)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理し得る。
【0050】
上述した機能ユニットの全ての出力は、エントロピーコーダ(545)におけるエントロピーコーディングを受け得る。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディング等の技術にしたがって、シンボルを可逆的に圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0051】
送信器(540)は、エントロピーコーダー(545)によって作成されたコード化ビデオシーケンスをバッファリングして、エンコードされたビデオデータを格納し得る記憶デバイスへのハードウェア/ソフトウェアリンクあり得る通信チャネル(560)を介した送信に備えることができる。送信器(540)は、ビデオ・コーダ(503)からのコーディングされたビデオデータを、例えばコーディングされたオーディオデータ及び/又は補助的なデータ・ストリーム(図示せず)等の、送信されるべき他のデータとともにマージし得る。
【0052】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。コーディングの間、コントローラ(550)は、各コーディングされた画像に、特定のコーディングされた画像タイプを割り当てることができ、これは、各画像に適用され得るコーディング技術に影響を及ぼし得る。例えば、画像は、しばしば、次の画像タイプの1つとして割り当てられる:
【0053】
イントラ画像(I画像)は、予測ソースとしてシーケンス内の他の画像を使用することなく、コーディングされ、デコードされ得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」:Independent Decoder Refresh)画像を含む、異なるタイプのイントラ画像を許容する。当業者は、I画像のこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【0054】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの運動ベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。
【0055】
双方向(bi-directionally)予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルと参照インデックスを用いるインター予測又はイントラ予測を使用して、コーディングされ、デコードされ得るものであり得る。同様に、複数の予測画像は、1つのブロックの再構成のために、2つ以上の参照画像及び関連するメタデータを使用することができる。
【0056】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、4×4、8×8、4×8、又は16×16の各サンプルのブロック)に分割され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されるコーディング割り当てによって決定された、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは、非予測的にコーディングされるか、又は、それらは、同じ画像の既にコーディングされたブロック(空間的予測又はインター予測)を参照して予測的にコーディングされ得る。P画像の画素ブロックは、先行してコーディングされた一つの参照画像を参照して、空間的予測又は時間的予測を介して予測的にコーディングされ得る。B画像のブロックは、1つ又は2つの、先行してコーディングされた参照画像を参照して、空間的予測を介して、又は時間的予測を介して予測的にコーディングされ得る。
【0057】
ビデオエンコーダ(503)は、所定のビデオコーディング技術又はITU-T Rec.H.265.などの標準にしたがってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行し得る。したがって、コード化されたビデオデータは、使用されているビデオコード化技術又は標準によって指定された構文に準拠し得る。
【0058】
一実施例において、送信器(540)は、エンコードされたビデオとともに付加的なデータを送信することができる。ソースコーダ(530)は、コード化されたビデオシーケンスの一部としてかかるデータを含むことができる。追加のデータは、時間的/空間的/SNR強調レイヤーや、他の形式の冗長データ、例えば冗長画像及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等を含み得る。
【0059】
ビデオは、時間シーケンスにおいて複数のソース画像(ビデオ画像)として捕捉され得る。画像内予測(Intra-picture prediction)(しばしば、イントラ予測と略される)は、所与の画像における空間的相関を使用し、画像間予測又はインター予測(inter-picture prediction)は、画像間の(時間的又は他の)相関を使用する。一例では、現在画像と称されるコーディング/デコーディング中の特定の画像は、ブロックに仕切られる(partitioned into blocks)。現在画像内のブロックが、ビデオ内の、先行してコーディングされ、まだバッファされている参照画像内の参照ブロックに類似する場合、現在の画像内ブロックは、動きベクトルと称されるベクトルによってコーディングされ得る。動きベクトルは、参照画像内の参照ブロックを指し、複数の参照画像が使用されている場合には、参照画像を識別する第3次元を有することができる。
【0060】
いくつかの実施形態において、双方向予測技術(bi-prediction technique)は、画像間予測において使用され得る。双方向予測技術によれば、ビデオ内の現在画像に対してデコード順では両方とも先行する(ただし、表示順では、それぞれ過去及び未来であり得る)第1参照画像及び第2参照画像等の2つの参照画像が使用される。現在画像内のブロックは、第1参照画像内の第1参照ブロックを指す第1動きベクトルと、第2参照画像内の第2参照ブロックを指す第2の動きベクトルとによってコーディングされることができる。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることができる。
【0061】
さらに、コーディング効率を改善するために、インター画像予測にマージモード技術を使用することができる。
【0062】
本開示のいくつかの実施形態によれば、インター画像予測及びイントラ画像予測等の予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオ画像シーケンス中の画像は、圧縮のためにコーディングトリーユニット(CTU)に仕切られ、画像中のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセル等の、同じサイズを有する。一般に、CTUは、1つのルマCTB(one luma CTB)と2つのクロマCTB(two chroma CTBs)である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ピクセル等、ピクセルに対する値(例えば、ルマ値)の行列を含む。
【0063】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオ・エンコーダ(603)は、ビデオ画像シーケンス内の現在ビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされた画像にエンコードするように構成されている。一実施例では、ビデオエンコーダ(603)は、
図3の例のビデオエンコーダ(303)の代わりに使用される。
【0064】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロック等の処理ブロックに対するサンプル値のマトリックスを受信する。ビデオエンコーダ(603)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、又は双方向予測モードを使用して、最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコード化されるべき場合は、ビデオエンコーダ(603)はイントラ予測時術を使用して処理ブロックをコード化された画像にエンコードすることができ:処理ブロックがインターモード又は双予測モードでコード化されるべき場合は、ビデオエンコーダ(603)はインター予測又は双予測技術を使用して、それぞれ、処理ブロックをコード化された画像にエンコードすることができる。特定のビデオ符号化技術において、モード缶を合併して運動ベクトルが特定の他のビデオ符号化技術においてpredictors. の外側で符号化運動ベクトル成分の利点のない一つ以上の運動ベクトル・プレディクタに由来するインター画像予測下位モードである、主題ブロックに適用できる運動ベクトル成分は、存在してもよい。一実施形態では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他の構成要素を含む。
【0065】
図6の例では、ビデオエンコーダ(603)は、
図6に示すように一緒に結合されたエントロピーエンコーダ(625)と、インターエンコーダ(630)と、イントラエンコーダ(622)と、残差計算器(623)と、スイッチ(626)と、残差エンコーダ(624)と、汎用コントローラ(621)と、を含む。
【0066】
インターエンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照画像内の1つ以上の参照ブロックと比較し(例えば、先行する画像内及び後の画像内のブロック)、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。若干の実施例において、基準ピクチャは、コード化されたビデオ情報に基づいて復号化される復号化基準ピクチャである。
【0067】
イントラエンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを、同じ画像内で既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラコーディング技術に従ったイントラ予測方向情報)も生成するように構成されている。一実施例では、イントラエンコーダ(622)はまた、同じ画像内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0068】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一実施形態では、汎用コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を供給する。例えば、モードがイントラモードであるときに、総合制御装置(621)はスイッチ(626)を残差計算機(623)用にイントラモード結果を選択するために制御して、先行復号化情報を選択して、先行復号化情報をビットストリームに含むためにエントリピーコーダ(625)を制御する;そして、モードがインターモードであるときに、総合制御装置(621)はスイッチ(626)を残差計算機(623)用にインター予測結果を選択するために制御して、インター予測情報を選択して、インター予測情報をビットストリームに含むためにエントリピーコーダ(625)を制御する。
【0069】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一実施例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインにコンバートし、変換係数を生成するように構成される。それから、変換係数は量子化処理に従属して、量子化変換係数を得る。様々な実施形態では、ビデオエンコーダ(603)は、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)によって適切に使用されることができる。例えば、インターエンコーダ(630)は、デコードされた残差データ及びインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(622)は、デコードされた残差データ及びイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、いくつかの実施例では、デコードされた画像を生成するために適切に処理され、デコードされた画像は、メモリ回路(図示せず)内でバッファされ、参照画像として使用され得る。
【0070】
エントロピーエンコーダ(625)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成されている。エントロピーエンコーダ(625)は、HEVC標準のような適切な標準に従った種々の情報を含むように構成される。一実施例では、エントロピーエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題にしたがってインターモード又は双方向予測モードのいずれかのマージサブモードにおけるブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0071】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部であるコーディングされた画像を受信し、コーディングされた画像をデコードして再構成画像を生成するように構成されている。一実施形態では、ビデオデコーダ(710)は、
図3の実施形態のビデオデコーダ(310)の代わりに使用される。
【0072】
図7実施例において、ビデオデコーダ(710)は、
図7に示すように一緒に結合されているエントロピー復号器(771)、インター・デコーダ(780)、残差デコーダ(773)、再構成モジュール(774)およびイントラ・デコーダ(772)を含む。
【0073】
エントロピーデコーダ(771)は、コーディングされた画像から、そのコーディング画像を作成する(of which the coded picture is made up)構文要素を表す特定のシンボルを再構成するように構成することができる。かかるシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は別のサブモードにおけるインターモード、双方向予測モード等)、予測情報(例えば、イントラ予測情報又はインター予測情報)を含むことができ、それらは、イントラデコーダ(722)又はインターデコーダ(780)によって、それぞれ使用される特定のサンプル又はメタデータ、例えば量子化された変換係数の形態の残差情報等、を識別することができる。実施例において、予測モードがインターであるか双予測されたモードであるときに、インター予測情報はインター・デコーダ(780)に提供される;そして、予測タイプが先行復号化タイプであるときに、先行復号化情報はイントラ・デコーダ(772)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0074】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0075】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0076】
残差デコーダ(773)は、逆量子化変換係数(de-quantized transform coefficients)を抽出するために逆量子化を実行し、逆量子化変換係数を処理して残差を周波数領域から空間領域にコンバートするように構成される。残りデコーダ(773)は特定の制御情報(Quantizer Parameter(QP)を含むために)を必要とすることもできる、そして、エントロピー復号器(771)(これとして描写されないデータ経路は低いボリューム制御情報だけでもよい)によって、その情報は設けられていることができる。
【0077】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)によって出力される残差と(場合によっては、インター又はイントラ予測モジュールによって出力される)予測結果を組み合わせて、 再構成されたブロックを形成し、これは、再構成された画像の一部であり得、したがって、再構成されたビデオの一部であり得る。デブロッキング等の他の適切な動作を行って、視覚品質を改善することができることに留意されたい。
【0078】
なお、ビデオエンコーダ(303)、(503)及び(603)と、ビデオデコーダ(310)、(410)、及び(710)とは、任意の適切な技術を用いて実現することができる。一実施形態では、ビデオエンコーダ(303)、(503)及び(603)と、ビデオデコーダ(310)、(410)及び(710)とは、1つ以上の集積回路を使用して実装され得る。別の実施形態では、ビデオエンコーダ(303)、(503)及び(503)と、ビデオデコーダ(310)、(410)、及び(710)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することができる。
【0079】
本開示の態様は、ビデオコーディング技術、例えば、HEVCを超えてVVCで使用される、レギュラーマージモード、サブブロックベースマージモード、イントラブロックコピー(IBC)マージモード、及び幾何マージモード等の、それぞれのインター予測コーディングツールのための様々な(1つ以上の)マージ候補リストの(1つ以上の)長さのシグナリングに関する。
【0080】
幾何学的マージモード(幾何学的パーテションモードとも称される)は、複数の異なる仕切り方法をサポートすることができる。
図8は、例示的な幾何学的マージモードを示す。幾何学的マージモードでは、CU (800)は、2つのパーティションに仕切ることができ、パーティション1~2をライン又はエッジ(810)で仕切ることができる。2つのパーティションの各々は、三角形、台形、五角形等の任意の適切な形状を有することができる。
【0081】
インター予測のためのマージ候補は、HEVC及びVVC等のビデオコーディングにおいて効果的であり得る。一実施形態、例えばVVCにおいては、4つの異なるマージ候補リスト(またはマージリスト)が存在し、エンコーダ及びデコーダ側に構築され得る。4つのマージ候補リストは、レギュラーマージモードに対するマージ候補リスト(又は第1のマージ候補)、幾何学的マージモードに対するマージ候補リスト(又は第2マージ候補)、サブブロックベースのマージモードに対するマージ候補リスト(又は第3のマージ候補)、IBCマージモードに対するマージ候補リスト(又は第4のマージ候補)がを含むことができる。
【0082】
関連技術(HEVCにおける特定の技術など)と比較して、レギュラーマージモードに対する第1マージ候補リストは、より多くの種類のマージ候補を含むように拡張されることができる。さらに、第1マージ候補リストにおけるマージ候補(又はマージ動きベクトル予測(MVP)候補)の最大数を、例えば5から6に拡張することができる。第1マージ候補リスト内のマージMVP候補の最大数は、PPSレベルの画像パラメータセット(PPS)又は画像レベルの画像ヘッダ内でシグナリングされることができる。
【0083】
図9は、PPSにおいてシグナリングされた第1PPSレベルパラメータ(例えば、pps_six_minus_max_num_merge_cand_plus1)を示す。第1PPSレベルパラメータは、マージMVP候補の最大数を示すことができる。
図10は、画像ヘッダ内でシグナリングされた第1の画像レベルパラメータ(例えば、pic_six_minus_max_num_merge_cand)を示す。第1画像レベルパラメータは、マージMVP候補の最大数(MaxNumMergeCand)を示すことができる。
【0084】
第1構文要素は、対応するコーディングレベルでシグナリングされるマージMVP候補の最大数を示すことができる。例えば、第1構文要素は、PPSレベルで信号を発する第1PPSレベルパラメータ、又は画像レベルで信号を発する第1画像レベルパラメータを参照する。
【0085】
第1PPSレベルパラメータ(例えば、pps_6_minus_max_num_merge_cand_plus1)が0に等しい場合、第1画像レベルパラメータ(例えば、pic_6_minus_max_num_merge_cand)が、PPSを参照する画像ヘッダに存在する(又は信号で送られる)ことを特定できる。第1PPSレベルパラメータ(例えば、pps_6_minus_max_num_merge_cand_plus1)が0より大きい場合、第1画像レベルパラメータ(例えば、pic_6_minus_max_num_merge_cand)がPPSを参照する画像ヘッダに存在しない(又は信号が送られていない)ことを特定できる。第1PPSレベルパラメータ(例えば、pps_6_minus_max_num_merge_cand_plus1)の値は、0~6の範囲であり得る。第1PPSレベルパラメータ(例えば、pps_6_minus_max_num_merge_cand_plus1)が存在しない場合、第1PPSレベルパラメータ(例えば、pps_6_minus_max_num_merge_cand_plus1)は、0に等しいと推測される。
【0086】
第1画像レベルパラメータ(例えば、pic_six_minus_max_num_merge_cand)は、6から減算した(subtracted from 6)、画像ヘッダに関連付けられたスライスでサポートされるマージMVP候補(MaxNumMergeCand)の最大数を特定できる。マージMVP候補(MaxNumMergeCand)の最大数は、式(1)を用いて決定することができる。
MaxNumMergeCand = 6 - pic_six_minus_max_num_merge_cand (式1)
【0087】
MaxNumMergeCandの値は、1~6以内の範囲で指定できる。第1の画像レベルパラメータが存在しない場合、第1の画像レベルパラメータ(例えば、pic_6_minus_max_num_merge_cand)の値は、第1PPSレベルパラメータ(例えば、pps_6_minus_max_num_merge_cand_plus1)-1と等しくなると推測されることができる。
【0088】
幾何学的マージモードは、シーケンスパラメータセット(SPS)のSPS構文要素を使用してシーケンスレベルで有効又は無効にすることができる。例では、SPS構文要素は第1シーケンスレベルフラグ(例えばsps_geo_enabled_flag)である。
図11は、SPSにおいてシグナリングされた第1のシーケンスレベルフラグ(例えば、sps_geo_enabled_flag)を示す。
【0089】
第1シーケンスレベルフラグ(例えば、sps_geo_enabled_flag)は、幾何学的マージモードに基づく動き補償がインター予測に使用できるかどうかを特定できる。0に等しい第1シーケンスレベルフラグ(例えばsps_geo_enabled_flag)は、幾何学的マージモードに基づく動き補償がコーディングレイヤビデオシーケンス(CLVS)で使用されないように構文が制約されること、及び幾何学的マージモード関連の構文要素がCLVSのコーディングユニット構文に存在しないようにすることを特定することができる。第1シーケンスレベルフラグ(例えば、sps_geo_enabled_flag)が1に等しい場合、幾何学的マージモードに基づく動き補償がCLVSで使用できることを特定できる。
【0090】
幾何学的マージモードマージ候補(MaxNumGeoMergeCand)の最大数を示すパラメータは、PPSレベル又は画像レベルで明示的にシグナリングされることができる。
【0091】
図12は、PPSにおいてシグナリングされた例示的な構文を示す。構文は、幾何マージモードマージ候補の最大数を示す第2のPPSレベルパラメータ(例えば、pps_max_num_merge_cand_minus_max_num_geo_cand_plus1)を含む。
図13は、画像ヘッダ内においてシグナリングされた例示的な構文を示す。構文は、幾何マージモードマージ候補の最大数を示す第2の画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)を含みる。
【0092】
第2の構文要素は、対応するコーディングレベルでシグナリングされた幾何学的マージモードマージ候補の最大数を示すことができる。例えば、第2構文要素は、PPSレベルでシグナリングされた第2PPSレベルパラメータ、又は画像レベルでシグナリングされた第2画像レベルパラメータを参照する。
【0093】
第2PPSレベルパラメータ(例えば、pps_max_num_merge_cand_minus_max_num_geo_cand_plus1)が0に等しい場合、第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)が、PPSを参照するスライスの画像ヘッダに存在するか、又はシグナリングされことを特定できる。第2PPSレベルパラメータ(例えば、pps_max_num_merge_cand_minus_max_num_geo_cand_plus1)が0より大きい場合、第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)がPPSを参照する画像ヘッダに存在しないことを特定できる。第2PPSレベルパラメータの値(例:pps_max_num_merge_cand_minus_max_num_geo_cand_plus1)は、0からMaxNumMergeCand-1の範囲であることができる。第2PPSレベルパラメータ(例えば、pps_max_num_merge_cand_minus_max_num_geo_cand_plus1)が存在しない場合、第2PPSレベルパラメータは0に等しいと推定されることができる。
【0094】
第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)は、マージMVP候補の最大数(MaxNumMergeCand)から減算した、画像ヘッダに関連付けられたスライスでサポートされる幾何学的マージモードマージ候補の最大数を特定できる。
【0095】
第2画像レベルパラメータが存在しない場合、第1シーケンスレベルフラグ(例えば、sps_ge_enabled_flag)が1であり、マージMVP候補の最大数(MaxNumMergeCand)が2以上である場合、第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_ge_cand)は(第2PPSレベルパラメータ-1)(例えば、pps_max_num_merge_cand_minus_max_max_num_geo_cand_plus1-1)と等しいと推測されることができる。
【0096】
幾何学的マージモードマージ候補の最大数(MaxNumGeoMergeCand)は、例えば式(2)を用いて、マージMVP候補の最大数(MaxNumMergeCand)及び第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)に基づいて決定されることができる。
MaxNumGeoMergeCand=MaxNumMergeCand-pic_max_num_merge_cand_minus_max_num_geo_cand (式2)
【0097】
第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)が存在する場合(すなわち、シグナリングされた場合)、MaxNumGeoMergeCandの値は、2からMaxNumMergeCandまでの範囲であることができる。
【0098】
第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)が存在せず(すなわち、シグナリングされておらず)、(i)第1シーケンスレベルフラグ(例えば、sps_geo_enabled_flag)が0に等しく、(ii)マージMVP候補(MaxNumMergeCand)の最大数が2未満であることが満足される場合、幾何学的マージモードマージ候補(MaxmGeoMergeCand)の最大数が0に等しく設定されることができる。
【0099】
幾何学的マージモードマージ候補(MaxNumGeoMergeCand)の最大数が0の場合、幾何学的マージモードは画像ヘッダに関連付けられたスライスに対して許可されない。
【0100】
第2PPSレベルパラメータ(例えば、pps_max_num_merge_cand_minus_max_num_ge_cand_plus1)、第2画像レベルパラメータ(例えば、pic_max_num_merge_cand_minus_max_num_geo_cand)、及びマージMVP候補の最大数(例えば、MaxNumMergeCand)を使用して、幾何学的マージモードマージ候補の最大数(例えば、MaxNumGeoMergeCand)を決定できる。幾何学的マージモードマージ候補(MaxNumGeoMergeCand)の最大数は、MaxNumMergeCandの値を超えないように指定されることができる。MaxNumGeoMergeCandの値は、例えば特定のアプリケーションに依存して、変化することができる。PPSシグナリングは、MaxNumGeoMergeCandの値が頻繁に変化しない場合に有効であり得るため、各画像に対してシグナリングする必要は無い。一方、MaxNumGeoMergeCandが画像ごとに頻繁に変化する場合には、画像ヘッダシグナリングが有効になりる。
【0101】
図14は、画像ヘッダ内でシグナリングされた例示的な構文を示す。構文には、サブブロックベースのマージMVP候補の最大数(MaxNumSubblockMergeCand)(サブブロックベースのマージモードに対するマージ候補の最大数とも称される)を示す画像ヘッダでシグナリングされる第3画像レベルパラメータ(例えば、pic_5_minus_max_num_subblock_merge_cand)が含まれる。
【0102】
第3構文要素は、対応するコーディングレベルでシグナリングされたサブブロックベースのマージMVP候補の最大数を示すことができる。例えば、第3構文要素は、画像レベルでシグナリングされる第3画像レベルパラメータを参照する。
【0103】
第3画像レベルパラメータ(例えば、pic_5_5_minus_max_num_subblock_merge_cand)は、5の値から減算した、スライスでサポートされるサブブロックベースのマージMVP候補の最大数を特定できる。第3画像レベルパラメータが存在しない(又は信号が送られていない)場合、第3画像レベルパラメータ(例えば、pic_five_minus_max_num_subblock_merge_cand)の値は、(5-(sps_sbtmvp_enabled_flag&pic_temporal_mvp_enabled_flag))に等しいと推定されることができる。
実施例では、sps_sbtmvp_enabled_flagは、SPSレベルでSBTMVPモードが有効かどうかを示すSPSレベルフラグである。
実施例において、pic_temporal_mvp_enabled_flagは、時間的MVPモードが画像レベルで有効かどうかを示す画像レベルフラグである。
【0104】
サブブロックベースのマージMVP候補(MaxNumSubblockMergeCand)の最大数は、式(3)を用いて、例えば、第3画像レベルパラメータ(例えば、pic_5_minus_max_num_subblock_merge_cand)に基づいて決定することができる。
MaxNumSubblockMergeCand=5-pic_five_minus_max_num_subblock_merge_cand (式3)
【0105】
サブブロックベースのマージMVP候補(MaxNumSubblockMergeCand)の最大数は、0~5の範囲である。
【0106】
図15は、画像ヘッダ内においてシグナリングされる例示的な構文を示す。構文は、IBCマージモードのためのIBCマージブロックベクトル予測(BVP)候補(MaxNumIbcMergeCand)の最大数を示す第4画像レベルパラメータ(例えば、pic_6_minus_max_num_ibc_merge_cand)を含んでいる。
【0107】
第4構文要素は、対応するコーディングレベルでシグナリングされたIBCマージBVP候補の最大数を示すことができる。例えば、第4の構文要素は、画像レベルでシグナリングされる第4の画像レベルパラメータを参照する。
【0108】
第4画像レベルパラメータ(例えば、pic_6_minus_max_num_ibc_merge_cand)は、6から減算した、画像ヘッダに関連するスライスでサポートされているBVP候補の最大数を特定できる。IBCマージBVP候補(MaxNumIbcMergeCand)の最大数は、例えば式(4)を用いて、第4画像レベルパラメータ(例えば、pic_6_minus_max_num_ibc_merge_cand)に基づいて決定することができる。
MaxNumIbcMergeCand=6-pic_six_minus_max_num_ibc_merge_cand (式4)
【0109】
IBCマージBVP候補(MaxNumIbcMergeCand)の最大数は、1~6以内の範囲である。
【0110】
構文要素は、第1構文要素、第2構文要素、第3構文要素、第4構文要素などを含むことができる。上述のように、第1の構文要素は、対応するコーディングレベル(例えば、スライスレベル又は画像レベルよりも高いコーディングレベル)においてシグナルされるマージMVP候補の最大数を示すことができ、従って、第1の構文要素は、レギュラーマージモードのためのマージMVP候補リストの長さを示すことができる。MVP候補リストには、レギュラーマージモードのMVP候補を含めることができる。例えば、第1構文要素は、PPSレベルにおいてシグナリングされる第1PPSレベルパラメータ、又は画像レベルにおいてシグナリングされる第1画像レベルパラメータを参照する。
【0111】
第2構文要素は、対応するコーディングレベル(例えば、スライスレベル又は画像レベルより高いコーディングレベル)においてシグナリングされる幾何学的マージモードマージ候補の最大数を示すことができ、したがって、第2構文要素は、幾何学的マージモードに対する幾何学的マージモードマージ候補リストの長さを示すことができる。幾何学的マージモードマージ候補リストは、幾何学的マージモードマージ候補に対する幾何学的マージモードマージ候補を含むことができる。例えば、第2構文要素は、PPSレベルでシグナリングされる第2PPSレベルパラメータ、又は画像レベルでシグナリングされる第2画像レベルパラメータを参照する。
【0112】
第3構文要素は、サブブロックベースのマージMVP候補の最大数を対応するコーディングレベル(例えば、スライスレベル又は画像レベルより高いコーディングレベル)で示すことができ、したがって、第3の構文要素は、サブブロックベースのマージモードに対するサブブロックベースのマージMVP候補リストの長さを示すことができる。サブブロックベースマージMVP候補リストは、サブブロックベースマージモードに対するサブブロックベースマージMVP候補を含むことができる。例えば、第3構文要素は、画像レベルで信号がシグナリングされる第3画像レベルパラメータを参照する。
【0113】
第4構文要素は、対応するコーディングレベル(例えば、スライスレベル又は画像レベルより高いコーディングレベル)においてシグナリングされるIBCマージBVP候補の最大数を示すことができ、したがって、第4構文要素は、IBCマージモードのIBCマージBVP候補リスト(又はIBCマージ候補リスト)の長さを示すことができる。IBCマージBVP候補リストは、IBCマージモードに対するIBCマージBVP候補を含めることができる。例えば、第4構文要素は、画像レベルでシグナリングされる第4画像レベルパラメータを参照する。
【0114】
本開示の態様によれば、第1コーディングレベルにおいてシグナリングされる第1の構文要素は、コーディングされたビデオビットストリームからデコードすることができる。第1構文要素は、マージMVP候補の最大数を示す。第1コーディングレベルは、任意の適切なコーディングレベル、例えば、スライスレベルよりも高いレベルであり得る。実施例において。前記第1コーディングレベルは、PPSレベルよりも高い。マージMVP候補の最大数は、例えば式(5)に基づいて、第1構文要素に基づいて決定することができる。その後、マージMVP候補の最大数に少なくとも基づいて、前記第1コーディングレベルに関連するコーディングブロックを再構成する。実施例において、第1コーディングレベルはシーケンスレベルであり、第1構文要素はSPにおいてシグナリングされる。第1コーディングレベルがより低いコーディングレベル(例えば、PPSレベル)からより高いコーディングレベル(例えば、配列レベル)まで増加する場合に、コーディング効率は増加することができ、シグナリングオーバヘッドは減少することができる。
【0115】
本開示の態様によれば、対応するマージ候補リスト(例えば、マージMVP候補リスト、幾何マージモードマージ候補リスト、サブブロックベースのマージMVP候補リスト、IBCマージBVP候補リスト、及び/又は類似のもの)の(1つ以上の)長さに関連する1つ以上の構文要素は、第1コーディングレベルでシグナリングされることができる。第1コーディングレベルは、任意の適切なコーディングレベルであり得る。実施例において、第1コーディングレベルは、スライスレベル又は画像レベルよりも高い。実施例において、第1コーディングレベルはPPSレベルよりも高い。1つ以上の構文要素は、第1構文要素を含むことができる。
【0116】
一実施形態では、1つ以上の構文要素は、第1構文要素、第2構文要素、第3構文要素、及び第4構文要素を含み、シーケンスレベルにおいてSPS内でシグナリングされる。実施例では、第1構文要素、第2構文要素、第3構文要素、第4構文要素は、第1コーディングレベル内で変化しない。実施例では、第1コード化レベルはシーケンスレベルである。第1構文要素、第2構文要素、第3構文要素、第4構文要素を含む1つ以上の構文要素等の特定の構文要素は、シーケンスレベルにおいて変化せず、より低いコーディングレベル(例えば、PPSレベル、画像レベル、又はスライスレベル)に代えてシーケンスレベルにおいて特定の構文要素をシグナリングすると、コーディング効率を高めたり、信号オーバヘッドを減少させたりすることができる。
【0117】
一実施形態では、第2の構文要素、第3の構文要素、及び第4の構文要素は、第1コーディングレベルでシグナリングすることができ、コーディングされたビデオビットストリームからデコードされることができる。第2構文要素は、幾何学的マージモードマージ候補の最大数を示すことができ、第3構文要素は、サブブロックベースのマージMVP候補の最大数を示すことができ、第4構文要素は、IBCマージBVP候補の最大数を示すことができる。幾何学的マージモードマージ候補の最大数は第2構文要素に基づいて決定でき、サブブロックベースのマージMVP候補の最大数は第3構文要素に基づいて決定でき、IBCマージBVP候補の最大数は第4構文要素に基づいて決定できる。
【0118】
図16は、SPSにおける例示的な構文要素を示す。構文要素には、第1構文要素(例えばsix_minus_max_num_merge_cand)、第2構文要素(例えばmax_num_merge_cand_minus_max_num_geo_cand)、第3構文要素(例えばfive_minus_max_num_subblock_merge_cand)、第4構文要素(例えばsix_minus_max_num_ibc_merge_cand)が含まれる。
【0119】
第1構文要素(例えば、six_minus_max_num_merge_cand)は、値6から減算した、SPSでサポートされるマージMVP候補の最大数を特定できる。マージMVP候補の最大数(MaxNumMergeCand)は、例えば式(5)に基づいて、第1構文要素(例えば、six_minus_max_num_merge_cand)に基づいて決定することができる。
MaxNumMergeCand=6-six_minus_max_num_merge_cand (式5)
【0120】
MaxNumMergeCandの値は1~6以内の範囲であり得る。
【0121】
第2構文要素(例えば、max_num_merge_cand_minus_max_num_geo_cand)は、MaxNumMergeCandから減算した、SPSでサポートされる幾何マージモードマージ候補の最大数を特定できる。
【0122】
幾何マージモードマージ候補の最大数(MaxNumGeoMergeCand)は、例えば式6を用いて、第2構文要素及びマージMVP候補の最大数に基づいて決定することができる。MaxNumGeoMergeCand=MaxNumMergeCand-max_num_merge_cand_minus_max_num_geo_cand
式(6)
【0123】
第2構文要素(例:max_num_merge_cand_minus_max_num_geo_cand)が存在する(又はシグナリングされる)場合、幾何学的マージモードマージ候補の最大数(MaxNumGeoMergeCand)の値は、2から最大数のマージMVP候補(MaxNumMergeCand)までの範囲であることができる。
【0124】
第3構文要素(例えば、five_minus_max_num_subblock_merge_cand)は、値5から減算した、SPSでサポートされるサブブロックベースのマージMVP候補の最大数を特定できる。
【0125】
サブブロックベースのマージMVP候補の最大数(MaxNumSubblockMergeCand)は、例えば式(7)を用いて、第3構文要素(例えば、5_minus_max_num_subblock_merge_cand)に基づいて決定することができる。
MaxNumSubblockMergeCand=5-five_minus_max_num_subblock_merge_cand (式7)
【0126】
MaxNumSubblockMergeCandの値は、0~5以内の範囲であることができる。
【0127】
第4構文要素(例えば、six_minus_max_num_ibc_merge_cand))は、値6から減算した、SPSでサポートされるBVP候補の最大数を特定できる。IBCマージBVP候補(MaxNumIbcMergeCand)の最大数は、例えば式(8)を用いて、第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)に基づいて決定することができる。
MaxNumIbcMergeCand = 6 -six_minus_max_num_ibc_merge_cand (式8)
【0128】
MaxNumIbcMergeCandの値は、0~6以内の範囲である。
【0129】
実施例において、第1構文要素、第2構文要素、第3構文要素、第4構文要素を含む構文要素は、PPSでシグナリングされる。このように、第1構文要素、第2構文要素、第3構文要素、第4構文要素は、PPS内では変化せず、第1PPSから第2PPSに変化することができる。
【0130】
本開示の態様によれば、(1つ以上の)対応するマージ候補リストの(1つ以上の)長さに関連する1つ以上の構文要素は、例えば、対応するインター予測コーディングツール(又はインターコーディングツール)が有効であるかどうかに基づいて、条件付きでシグナリングされることができる。一実施形態では、第1の構文要素は、マージMVP候補の最大数(又はレギュラーマージモードの場合のマージMVP候補リストの長さ)がシグナリングされることを示し、他のマージ候補リストの長さに関連する残りの構文要素(例えば、第2の構文要素、第3の構文要素、第4の構文要素など)がシグナリングされる場合と、されない場合があり得る。したがって、特定のインターコーディングツールのためのイネーブルフラグを使用して、特定のインターコーディングツールのためのマージ候補リストの長さに関連する対応する構文要素のシグナリングを制御することができる。かくして、いくつかの実施例において、特定のインターコーディングツールのためのイネーブルフラグが特定のインターコーディングツールが無効であることを示す場合、対応する構文要素はシグナリングされず、したがって、コーディング効率は増加し、及び/又はシグナリングオーバヘッドは減少する。
【0131】
一実施形態では、第2コーディングレベルでシグナリングされる構文要素は、コーディングされたビデオビットストリームから、満たされている条件(condition being satisfied)に基づいてデコードされることができる。構文要素は、幾何学的マージモード、サブブロックベースのマージモード、IBCマージモード等のうちの1つに対するマージ候補の最大数を示すことができる。
【0132】
実施例において、
幾何学的マージモード、サブブロックベースマージモード及びIBCマージモードのうちの前記1つは、幾何学的マージモードである。マージ候補の最大数は、幾何学的マージモードマージ候補の最大数である。好悪分要素は、幾何学的マージモードマージ候補の最大数を示す第2構文要素である。
図17のボックス(1712)を参照すると、条件は、前記第2コーディングレベルで使用可能である幾何学的マージモード、及び、3以上である前記マージMVP候補の最大数である。前記第2構文要素に基づいて、前記幾何学的マージモードマージ候補の最大数は決定されることができる。
【0133】
実施例において、幾何学的マージモード、サブブロックベースマージモード及びIBCマージモードのうちの前記1つは、サブブロックベースマージモードである。マージ候補の最大数は、サブブロックベースのマージMVP候補の最大数である。構文要素は、サブブロックベースのマージMVP候補の最大数を示す第3構文要素である。
図17のボックス(1710)を参照すると、条件は、第2コーディングレベルにおいて使用可能であるアフィンモードである。サブブロックベースのマージMVP候補の最大数は、第3構文要素に基づいて決定されることができる。
【0134】
実施例において、幾何学的マージモード、サブブロックベースマージモード及びIBCマージモードのうちの前記1つは、IBCマージモードである。マージ候補の最大数は、IBCマージBVP候補の最大数である。構文要素は、IBCマージBVP候補の最大数を示す第4構文要素であえる。
図17のボックス(1711)を参照すると、条件は、IBCマージモードが、第2コーディングレベルで使用可能である。IBCマージBVP候補の最大数は、第4構文要素に基づいて決定されることができる。
【0135】
実施例において、マージMVP候補の長さを示す第1構文要素は、SPSにおいてシグナリングされており、幾何学的マージモードマージ候補の長さを示す第2構文要素、サブブロックベースのマージMVP候補リストの長さを示す第3構文要素、及びIBCマージ候補リストの長さを示す第4構文要素は、
図17に示すよう、にシークエンスレベルにおいて、条件付きでシグナリングされる。
【0136】
図17を参照すると、第1構文要素(例えば、six_minus_max_num_merge_cand)は、SPSにおいてシグナリングされる。上述したように、第1構文要素(例えばsix_minus_max_num_merge_cand)は値6から減算した、SPSでサポートされるマージMVP候補の最大数を特定できる。マージMVP候補の最大数(MaxNumMergeCand)は、例えば式(5)に基づいて、第1構文要素(例えば、six_minus_max_num_merge_cand)に基づいて決定することができる。MaxNumMergeCandの値は、1~6以内の範囲で指定できる。
【0137】
図17のボックス(1712)を参照すると、第1シーケンスレベルフラグ(例えば、sps_geo_enabled_flag)が1に等しく、マージMVP候補の最大数(MaxNumMergeCand)が3以上である場合に、第2の構文要素(例えば、max_num_merge_cand_minus_num_ge_cand)はシグナリングされることができる。実施例において、第1シーケンスレベルフラグ(例えば、sps_geo_enabled_flag)が1に等しいことは、幾何学的マージモードがシーケンスレベルにおいて有効であることを示す。
【0138】
第2構文要素(例えば、max_num_merge_cand_minus_max_num_geo_cand)は、MaxNumMergeCandから差し引いたSPSでサポートされる幾何マージモードマージ候補の最大数を特定できる。
【0139】
GEOマージモード候補の最大数(MaxNumGeoMergeCand)は、式(6)を用いて決定することができる。
【0140】
第2構文要素(例えば、max_num_merge_cand_minus_max_num_geo_cand)が存在する場合、GEOマージモード候補の最大数(MaxNumGeoMergeCand)の値は、2からマージMVP候補の最大数(MaxNumMergeCand)までの範囲である。
【0141】
第2構文要素(例えば、max_num_merge_cand_minus_max_num_geo_cand)が存在しない場合、
第1シーケンスレベルフラグ(例えば、sps_geo_enabled_flag)が1に等しく、
マージMVP候補の最大数(MaxNumMergeCand)が2に等しい場合、
GEOマージモード候補の最大数(MaxNumGeoMergeCand)は2に設定されることができる。
【0142】
第2構文要素(例えば、max_num_merge_cand_minus_max_num_geo_cand)が存在しない(又は信号が送られていない)場合であって、
(i)第1シーケンスレベルフラグ(例えば、sps_geo_enabled_flag)が0に等しいこと、
(ii)マージMVP候補(MaxNumMergeCandなど)の最大数が2未満であることのうちの一方が満たされる場合、
幾何学的マージモードマージ候補(例えば、MaxNumGeoMergeCand)の最大数を0に等しく設定できる。
【0143】
図17のボックス(1710)を参照すると、第2シーケンスレベルフラグ(例えば、sps_affine_enabled_flag)が1に等しい場合、第3構文要素(例えば、five_minus_max_num_subblock_merge_cand)は、シグナリングされることができる。
実施例において、第2シーケンスレベルフラグ(例えば、sps_affine_enabled_flag)が1に等しいことは、アフィンモードがシーケンスレベルで有効であることを示しる。
【0144】
第3構文要素(例えば、five_minus_max_num_subblock_merge_cand)は、値5から減算された、SPSでサポートされているサブブロックベースのマージMVP候補の最大数を特定できる。第3構文要素が存在しない場合、第3構文要素(例えば、five_minus_max_num_subblock_merge_cand)の値は(5-sps_sbtmvp_enabled_flag)と等しいと推測できる。
【0145】
サブブロックベースのマージMVP候補の最大数(MaxNumSubblockMergeCand)は、式(7)に基づいて決定されることができる。
【0146】
MaxNumSubblockMergeCandの値は、0~5以内の範囲であることができる。
【0147】
図17のボックス(1711)を参照すると、第3シーケンスレベルフラグ(例えば、sps_ibc_enabled_flag)が1に等しい場合、第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)は、シグナリングされることができる。実施例において、第3シーケンスレベルフラグ(例えば、sps_ibc_enabled_flag)が1に等しいことは、IBCマージモードがシーケンスレベルにおいて有効であることを示す。
【0148】
第4構文要素(例えば、six_minus_max_num_ibc_merge_cand))は、値6から減算した、SPSでサポートされるBVP候補の最大数を特定できる。IBCマージBVP候補(MaxNumIbcMergeCand)の最大数は、例えば式(8)を用いて、第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)に基づいて決定することができる。
【0149】
第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)が存在しない場合、MaxNumIbcMergeCandは0に等しくなることができる。
【0150】
MaxNumIbcMergeCandの値は、0~6以内の範囲である。
【0151】
実施例において、
図17に示すように、第1構文要素は第1コーディングレベル(例えば、シーケンスレベル)でシグナリングされ、第2の構文要素、第3の構文要素、及び第4の構文要素は、第2コーディングレベル(例えば、シーケンスレベル)で条件付きでシグナリングされる。あるいは、第1構文要素は、第1コーディングレベル(例えば、シーケンスレベル)でシグナリングされ、(i)第2構文要素、(ii)第3構文要素、(iii)第4構文要素、及び/又は他の構文要素のうちの1つ以上は、第2コーディングレベル(例えば、シーケンスレベル)において条件付きでシグナリングされる。第1コーディングレベルは、第2コーディングレベルと同一又はより高いことができる。実施例において、第1コーディングレベル及び第2コーディングレベルは、シーケンスレベルである。
【0152】
一実施形態において、マージMVP候補リストの長さを示す第1構文要素は、第1コーディングレベルにおいてシグナリングされており、幾何学的マージモードマージ候補の長さを示す第2構文要素、サブブロックベースのマージMVP候補リストの長さを示す第3構文要素、及び、IBCマージ候補の長さを示す第4構文要素は、第1コーディングレベルにおいて条件つきでシグナリングされる。実施例では、第1コーディングレベルは、スライスレベル(又はスライスヘッダ)、画像レベル(又は画像ヘッダ)などよりも高い。実施例では、第1コード化レベルはシーケンスレベルである。
【0153】
特定の構文要素(例えば、第1構文要素)は、第1コーディングレベル(例えば、シーケンスレベル)では変化せず、シーケンス内の画像、スライス、及び/又は、類似のものに対して一定のままである。このように、特定の構文要素は、例えば、コーディング効率を改善し、及び/又はシグナリングオーバヘッドを低減するために、第1コーディングレベルより低いコーディングレベルの代わりに、第1コーディングレベル(例えば、高コーディングレベル)でシグナリングされることができる。他の構文要素(例えば、第3構文要素)は、第1コーディングレベルで変化することができ、したがって、例えば、柔軟性を高めるために、第1コーディングレベルより低い第2コーディングレベル(例えば、低コーディングレベル)でシグナリングされることができる。例えば、第1コーディングレベルはシーケンスレベルであり、第3構文要素はシーケンス内で変化し、画像内では変化せず、したがって、画像レベル(例えば第2コーディングレベル)でシグナリングされる。
【0154】
一実施形態では、マージMVP候補リストの長さを示す第1構文要素は第1コーディングレベルでシグナリングされ、幾何学的マージモードマージ候補リストの長さを示す第2構文要素とIBCマージ候補リストの長さを示す第4構文要素は第1コーディングレベルにおいて条件付きでシグナリングされる。(1つ以上の)他のマージ候補リストの(1つ以上の)長さを示す他の構文要素、例えば、サブブロックベースのマージMVP候補リストの長さを示す第3構文要素は、第1コーディングレベルより低い第2コーディングレベルでシグナリングされることができる。実施例において、第1コーディングレベルはシーケンスレベルであり、第2コーディングレベルはPPSレベル、画像レベル、又はスライスレベルである。
【0155】
実施例において、第1構文要素、第2構文要素、第4構文要素だけが、シーケンスレベルにおけるSPSでシグナリングされる。他のマージ候補リストの(1つ以上の)長さを示す(1つ以上の)他の構文要素は、シーケンスレベルより低いレベル(例えば、画像レベル)でシグナリングされる。(1つ以上の)他の構文要素は、第3構文要素を含むことができる。実施例において、第3構文要素は、SPS内で、例えば、第1画像から第2画像に変化し、したがって、第3構文要素は、各画像に対して、より良い柔軟性を有するように、画像レベルでシグナリングされる。
【0156】
図18Aは、第1構文要素、第2構文要素、及び第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)が、シーケンスレベルでSPSにおいてシグナリングされることを示す。
図18Bは、第3構文要素が、画像ヘッダ内で画像レベルでシグナリングされることを示す。
図18A-18Bに示される構文要素は、第1構文要素(例えばsix_minus_max_num_merge_cand)、第2構文要素(例えばmax_num_merge_cand_minus_max_num_geo_cand)、及び第4構文要素が、シーケンスレベルにおいて変化せず、第3構文要素(例えばfive_minus_max_num_subblock_merge_cand)はシーケンス内で変化することができる場合に適用することができる。
【0157】
実施例において、マージMVP候補リストの長さを示す第1構文要素は、第1コーディングレベルよりも低いコーディングレベルで変化しないままである(例えば、アップデート、オーバーライド、又は変更できない)。第2コーディングレベルにおいて条件付きでシグナリングされる第2構文要素と第4構文要素は、第2コーディングレベルより低いコーディングレベルでは変化せずに残る(例えば、アップデート、オーバーライド、又は変更できない)。実施例では、マージMVP候補リスト、幾何学的マージモードマージ候補リスト、及びIBCマージ候補リストのいずれかを除外する(1つ以上の)他のマージ候補リストの(1つ以上の)長さを示す(1つ以上の)構文要素のみを、第2コーディングレベルより低いコーディングレベルでアップデート、オーバーライド、又は変更することができる。実施例において、第2コーディングレベルにおいて条件付きでシグナリングされる第3構文要素は、第2コーディングレベルより低いコーディングレベルで変更される。例えば、第2コーディングレベル(例えば、シーケンスレベル)において条件付きでシグナリングされる第3構文要素は、画像レベルで変更される。
【0158】
実施例において、サブブロックベースのマージ候補リストの長さを示す第3構文要素のみを、第1コーディングレベル(シーケンスレベル)より低いコーディングレベル(例えば、画像レベル)でアップデート、オーバーライド、又は変更することができる。
【0159】
図19Aは、第1構文要素、第2構文要素、及び第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)が、シーケンスレベルにおけるSPSにおいてシグナリングされ、シーケンスレベルにおいて変化しないままであることを示す。
図19A-19Bは、第3構文要素がシーケンスレベルにおいてSPSでシグナリングされ、画像レベルにおいて画像ヘッダでさらに変更されることを示している。
図19A-19Bに示される構文要素は、第1構文要素(例えばsix_minus_max_num_merge_cand)、第2構文要素(例えばmax_num_merge_cand_minus_max_num_geo_cand)、及び第4構文要素が、シーケンスレベルにおいて変化せず、第3構文要素(例えばfive_minus_max_num_subblock_merge_cand)は1つの画像から他の画像まで変更されることができる場合に、適用することができる。
【0160】
第3構文要素(例えば、five_minus_max_num_subblock_merge_cand)がSPSに存在せず、pic_temporal_mvp_enabled_flagとsps_sbtmvp_enabled_flagの両方が1に等しい場合、サブブロックベースのマージMVP候補の最大数(MaxNumSubblockMergeCand)は、現在の画像ヘッダに関連付けられたスライスに対して1に等しくなりる。
【0161】
開示の態様によれば、第1構文要素、第2構文要素、第3構文要素、及び第4構文要素のうちの1つ以上が、例えばスライスレベル又は画像レベルよりも高い、第1コーディングレベル(例えば、シーケンスレベル)でシグナリングされる場合である。第1構文要素、第2構文要素、第3構文要素、第4構文要素の1つ以上は、第1コーディングレベル(シーケンスレベルなど)より低いコーディングレベル(PPSレベル、画像レベル、スライスレベルなど)ではアップグレードし、オーバーライド、変更することはできない。
【0162】
実施例では、第1構文エレメント、第2構文エレメント、第3構文エレメント、第4構文エレメントは、シーケンスレベルにおいてSPSでシグナリングされ、第1構文エレメント、第2構文エレメント、第3構文エレメント、第4構文エレメントは、シーケンスレベルより低いコーディングレベル(例えば、PPSレベル、画像レベル、又はスライスレベル)でアップデートし、オーバーライドし、又は変更することはできない。
【0163】
実施例では、第1構文要素、第2構文勝訴要素3構文要素、第4構文要素はPPSレベルのPPSで信号を送られ、第1構文要素、第2構文要素、第3構文要素、第4構文要素は、PPSレベルより低いコーディングレベル(例えば、画像レベル、スライスレベル)ではアップデートし、オーバーライドし、変更することはできない。
【0164】
本開示の態様によれば、種々のマージ候補リストの長さに関連する1つ以上の構文要素の存在をさらに示すために、追加の構文要素を使用することができる。
【0165】
実施例において、
図20のボックス(2010)によって示されるように、IBCマージBVP候補リストの長さに関連する第4構文要素の存在を示す構文要素又はフラグ(例えば、6_minus_max_ibc_merge_cand_presentフラグ)は、
図20に示されるように、第4構文要素が存在するか否かをさらに示すために使用される。したがって、第4構文要素の存在は、第3シーケンスレベルフラグ(例えば、sps_ibc_enabled_flag)に加えて、構文要素(例えば、6_minus_max_num_ibc_merge_cand_presentフラグ)に基づいて条件付きで決定される。第4構文要素は、構文要素(例えば、6_minus_max_num_ibc_merge_cand_presentフラグ)と第3シーケンスレベルフラグ(例えば、sps_ibc_enabled_flag)に基づいて条件付きでシグナリングされる。上記の説明は、第2構文要素、第3構文要素、及び/又は類似のものなどの、他の構文要素のシグナリングに適切に適合させることができる。
【0166】
第1構文要素(例えば、six_minus_max_num_merge_cand)は、値6から減算した、SPSでサポートされるマージMVP候補の最大数を特定できる。サブブロックベースのマージMVP候補の最大数(MaxNumSubblockMergeCand)は、上述したように、式(5)に基づいて決定されることができる。MaxNumMergeCandの値は、1~6以内の範囲で指定できる。
【0167】
第2構文要素(例えば、max_num_merge_cand_minus_max_num_geo_cand)は、MaxNumMergeCandから差し引いたSPSでサポートされる幾何マージモードマージ候補の最大数を特定できる。
【0168】
幾何学的マージモードマージ候補の最大数(MaxNumGeoMergeCand) は上述したように、式(6)に基づいて決定されることができる。
【0169】
max_num_merge_cand_minus_max_num_geo_candが存在する場合、MaxNumGeoMergeCandの値は、2~MaxNumMergeCand以内の範囲であることができる。
【0170】
max_num_merge_cand_minus_max_num_geo_candが存在しない場合であって、sps_geo_enabled_flagが1に等しく、そして、MaxNumMergeCandが2に等しい場合、MaxNumGeoMergeCandは、2に等しく設定される。
【0171】
max_num_merge_cand_minus_max_num_geo_candが存在しない場合(であって、sps_geo_enabled_flagが0に等しいか、又は、MaxNumMergeCandが2未満である場合)、MaxNumGeoMergeCandは0に等しく設定される。
【0172】
第3構文要素(例えば、five_minus_max_num_subblock_merge_cand)は、値5から減算した、SPSでサポートされているサブブロックベースのマージMVP候補の最大数を特定できる。第2構文要素が存在しない場合、five_minus_max_num_subblock_merge_candの値は(5 - sps_sbtmvp_enabled_flag)と等しいと推測できる。
【0173】
サブブロックベースのマージMVP候補の最大数(MaxNumSubblockMergeCand)は、上述のように、式(7)に基づいて決定されることができる。
【0174】
MaxNumSubblockMergeCandの値は、0~5以内の範囲であることができる。
【0175】
構文要素、six_minus_max_num_ibc_merge_cand_presentフラグは、BVP候補をマージするIBCの最大数を特定できる。six_minus_max_num_ibc_merge_cand_presentフラグが存在しない場合、six_minus_max_num_ibc_merge_cand_presentフラグは0と推定できる。six_minus_max_num_ibc_merge_cand_presentフラグが存在する場合、第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)はビットストリームに存在する。
【0176】
第4構文要素(例えば、six_minus_max_num_ibc_merge_cand))は、値6から減算した、SPSでサポートされるBVP候補の最大数を特定できる。IBCマージモード候補の最大数(MaxNumIbcMergeCand)は、式(8)を用いて決定することができる。
【0177】
第4構文要素(例えば、six_minus_max_num_ibc_merge_cand)が存在しない場合、MaxNumIbcMergeCandは0に等しくなることができる。
【0178】
MaxNumMergeCandの値は、1~6以内の範囲であることができる。
【0179】
図21は、本開示の一実施形態によるプロセス(2100)の概略を示すフローチャートを示す。プロセス(2100)は、マージ候補の最大数、幾何学的マージモードマージ候補の最大数、サブブロックベースのマージMVP候補の最大数、IBCマージBVP候補の最大数など、マージ候補の最大数を示す様々な構文要素に信号を送る際に使用することができる。様々な実施形態では、プロセス(2100)は、端末装置(210)、(220)、(230)及び(240)の処理回路、ビデオエンコーダ(303)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオエンコーダ(503)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(2100)は、ソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(2100)を実行する。プロセスは(S2101)から始まり、(S2110)に進む。
【0180】
(S2110)において、第1コーディングレベルにおいてシグナリングされる第1の構文要素は、コーディングされたビデオビットストリームからデコードされることができる。第1構文要素は、マージ動きベクトル予測(MVP)候補の最大数を示すことができる。第1コーディングレベルは、画像パラメータセット(PPS)レベルよりも高いことができる。実施例では、第1コーディングレベルはシーケンスレベルである。
【0181】
(S2120)において、マージMVP候補の最大数は、第1構文要素に基づいて決定されることができる。
【0182】
(S2130)において、第1コーディングレベルに関連するコーディングブロックは、マージMVP候補の最大数に少なくとも基づいて再構成されることができる。プロセス(2100)は(S2199)に進み、終了する。
【0183】
方法(2100)は、適切に適合されていることができる。プロセス(2100)のステップは、修正及び/又は省略することができる。(1つ以上の)追加ステップは、加えられることができる。実施のいかなる適切な順序も、用いられることができる。
【0184】
いくつかの実施例では、1つ以上の第2構文要素、第3構文要素、及び第4構文要素などの追加の構文要素を、シグナリング又は条件付きシグナリングすることができる。したがって、前記第2構文要素に基づいて、前記幾何学的マージモードマージ候補の最大数は決定されることができ、サブブロックベースのマージMVP候補の最大数は、第3構文要素に基づいて決定されることができ、IBCマージBVP候補の最大数は、第4構文要素に基づいて決定されることができる。
【0185】
開示された方法は、別々に又は任意の順序で組み合わせて用いられることができる。さらに、方法(又は実施形態)、エンコーダ、及びデコーダの各々は、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装され得る。一実施例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に格納されたプログラムを実行する。本開示の方法(又は実施形態)、エンコーダ、及びデコーダは、上記のように、コーディング効率を向上させ、及び/又は信号オーバヘッドを低減させることができる。
【0186】
上記の技術は、コンピュータ可読命令を用いたコンピュータソフトウェアとして行うことができて、物理的に一つ以上のコンピュータ可読媒体に格納されることができる。例えば、
図22は、開示された主題の特定の実施例を実施するのに適しているコンピュータシステム(2200)を示す。
【0187】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切な機械コード若しくはコンピュータ言語を使用してコーディングされることができ、直接実行されることができるか、又は、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)等による、実施、マイクロコード実行等を介して実行されることができる命令を含むコードを作成する。
【0188】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、物品のインターネット等を含む種々のタイプのコンピュータ又はその構成要素上で実行されることができる。
【0189】
コンピュータシステム(2200)のための
図17に示されるコンポーネントは、例示的な性質のものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関する制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(2200)の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関連する依存性又は要件を有すると解釈されるべきではない。
【0190】
コンピュータシステム(2200)は、特定のヒューマンインタフェース入力デバイスを含み得る。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スイッピング、データグローブの動き)、音声入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、一人又は複数の人間ユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、音声、音楽、周囲の音声)、画像(例えば、走査画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)等の、人間による意識的入力に必ずしも直接関係しない特定の媒体を捕捉するために用いられ得る。
【0191】
入力ヒューマンインタフェースデバイスには、次のものが1つ以上含まれ得る(それぞれ1つのみ表されている):キーボード(2201)、マウス(2202)、トラックパッド(2203)、タッチスクリーン(2210)、データグローブ(図示せず)、ジョイスティック(2205)、マイクロホン(2206)、スキャナ(2207)、カメラ(2208)。
【0192】
コンピュータシステム(2200)はまた、特定のヒューマンインタフェース出力デバイスを含み得る。かかるヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人又は複数の人間ユーザの感覚を刺激し得る。かかるヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2210)、データグローブ(図示せず)、又はジョイスティック(2205)による触覚フィードバック)、入力デバイスとして働かない触覚フィードバックデバイスであることもでき)と、オーディオ出力デバイス(例えば、スピーカー(1709)、ヘッドフォン(図示せず))と、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2210)であり、各々が触覚フィードバック能力を有するか又は有さず、各々が触覚フィードバック能力を有するか又は有さず、そのうちのいくつかは、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)等の立体出力のような手段を介して2次元視出力又は3次元以上の出力を可能にし得るもの)と、プリンタ(図示せず)と、を含み得る。
【0193】
コンピュータシステム(2200)はまた、人間がアクセス可能な記憶デバイスと、それらのアクセス可能な媒体とを含むことができ、媒体は、例えば、CD/DVD等の媒体(2221)によるCD/DVD ROM/RWを含む光学媒体ドライブ(2220)、USBメモリ(2222)、着脱可能ヘッドドライブ又はソリッドステートドライブ(2223)、テープ、フロッピーディスク(図示せず)等の従来の磁気媒体、セキュリティドングル等の特殊化されたROM/ASIC/PLDベースデバイス等である。
【0194】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解されたい。
【0195】
コンピュータシステム(2200)はまた、1つ以上の通信ネットワークへのインタフェースを含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、広域、大都市、車両及び工業、リアルタイム、遅延耐性等であり得る。ネットワークの例としては、イーサネット、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TV、CANBusを含む産業用及び車両用を含む。特定のネットワークは、特定の汎用データポート又はペリフェラルバス(2249)(たとえば、コンピュータシステム(2200)のUSBポート)に接続された外部ネットワークインターフェイスアダプタを必要とする;他には、一般に、以下に説明するようにシステムバス(たとえば、PCコンピュータシステムへのイーサネットインターフェイス又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)に接続することによってコンピュータシステム(2200)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(2200)は、他のエンティティと通信することができる。かかる通信は、単指向性通信、受信のみ(例えば、放送テレビ)通信、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)通信、又は、例えばローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの、双方向通信であることができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインタフェースの各々で使用されることができる。
【0196】
前述のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインタフェースは、コンピュータシステム(2200)のコア(2240)に接続されることができる。
【0197】
コア(2240)は、1つ以上の中央処理デバイス(CPU)(2241)、グラフィックス処理デバイス(GPU)(2242)、フィールドプログラマブルゲートエリア(FPGA)(2243)の形態の特殊なプログラマブル処理デバイス、特定のタスクのためのハードウェアアクセラレータ(2244)等を含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(2245)、ランダムアクセスメモリ(2246)、内部大容量記憶デバイス、例えば内部非ユーザアクセス可能ハードドライブ、SSD等(2247)と共に、システムバス(2248)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(2248)は、追加のCPU、GPU等による拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能である。周辺デバイスは、コアのシステムバス(2248)に直接接続するか、又は周辺バス(2249)を介して接続することができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0198】
CPU(2241)、GPU(2242)、FPGA(2243)、及びアクセラレータ(2244)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2245)又はRAM(2246)に格納されることができる。移行データは、RAM(2246)に格納されることもできるが、永久データは例えば内部大容量記憶デバイス(2247)に格納されことができる。1つ以上のCPU(2241)、GPU(2242)、大容量記憶デバイス(2247)、ROM(2245)、RAM(2246)等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【0199】
コンピュータ可読媒体は、各種のコンピュータ実施動作(computer-implemented operations)を実行するためにその上のコンピュータコードを有することができる。メディアおよびコンピュータコードは特別に設計されたそれらであることができて、本開示のために作成されることができる、または、それらはよく公知で、コンピュータソフトウェア技術の技術を有するそれらが利用できる種類でありえる。
【0200】
一例として、限定するものではなく、アーキテクチャ(2200)、具体的にはコア(2240)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能性を提供することができる。かかるコンピュータ可読媒体は、コア-内部大容量記憶デバイス(2247)又はROM(2245)等の一時的でない性質のコア(2240)の特定の記憶デバイスと同様に、上述のようにユーザがアクセス可能な大容量記憶デバイスに関連する媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア(2240)によって実行され得る。コンピュータ読取可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(2240)及びその中の具体的にプロセッサ(CPU、GPU、FPGA等を含む)に、RAM (2246)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスにしたがって、かかるデータ構造を変更することを含む、本明細書に記載された特定のプロセス又は特定の部分を実行させることができる。付加的に又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(2244))内に配線された、又は他の方法で具現化されたロジックの結果として、機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を含み、また、必要に応じて、その逆も可能である。コンピュータ読取り可能媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)等の)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0201】
付録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:コーディングユニット
【0202】
本開示はいくつかの例示的な実施形態を説明しているが、本発明の範囲内に入る、変更、置換、及び様々な均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本発明の原理を実施し、したがってその概念及び範囲内にある多数のシステム及び方法を創造することができることが理解されよう。
【0203】
[付記1]
デコーダが実行するビデオをデコードするための方法であって、
コーディングされたビットストリームから、第1コーディングレベルにおいてシグナリングされた第1構文要素をデコードするステップであって、前記第1構文要素は、マージ動きベクトル予測候補(マージMVP候補)の最大数を示し、前記第1コーディングレベルは、画像パラメータセット(PPS)レベルよりも高い、ステップと、
前記第1構文要素に基づいて、前記マージMVP候補の最大数を決定するステップと、
前記マージMVP候補の最大数に少なくとも基づいて、前記第1コーディングレベルに関連するコーディングブロックを再構成するステップと、
を含む、方法。
[付記2]
前記方法はさらに、
前記コーディングされたビデオビットストリームから、前記第1コーディングレベルにおいてシグナリングされた第4構文要素と、第3構文要素と、第2構文要素と、をデコードするステップであって、前記第2構文要素は、幾何学的マージモードマージ候補の最大数を示し、前記第3構文要素は、サブブロックベースマージMVP候補の最大数を示し、前記第4構文要素は、イントラブロックコピー(IBC)マージブロックベクトル予測(BVP)候補(IBCマージBVP候補)の最大数を示す、ステップと、
(i)前記第2構文要素に基づいて、前記幾何学的マージモードマージ候補の最大数を、
(ii)前記第3構文要素に基づいて、前記サブブロックベースマージMVP候補の最大数を、及び
(iii)前記第4構文要素に基づいて、前記IBCマージBVP候補の最大数を、
決定するステップと、
を含む、付記1記載の方法。
[付記3]
前記第1コーディングレベルは、シーケンスレベルであり、
前記第1構文要素は、シーケンススパラメータセット(SPS)でシグナリングされている、
付記1又は2記載の方法。
[付記4]
前記方法はさらに、
前記コーディングされたビデオビットストリームから、満たされている条件に基づいて、第2コーディングレベルでシグナリングされた第2構文要素を決定するステップであって、前記第2構文要素は、幾何学的マージモード、サブブロックベースマージモード、及びイントラブロックコピーマージモード(IBCマージモード)のうちの1つに対するマージ候補の最大数を示す、ステップ
をさらに含む、付記1乃至3いずれか1項記載の方法。
[付記5]
前記幾何学的マージモード、前記サブブロックベースマージモード及び前記IBCマージモードのうちの前記1つは、前記幾何学的マージモードであって、
マージ候補の最大数は、前記幾何学的マージモードのマージ候補の最大数であり、
前記第2構文要素は、前記幾何学的マージモードのマージ候補の最大数を示し、
前記条件は、前記第2コーディングレベルで使用可能である前記幾何学的マージモード、及び、3以上である前記マージMVP候補の最大数であり、
前記方法はさらに、
前記第2構文要素に基づいて、前記幾何学的マージモードのマージ候補の最大数を決定するステップ、
を含む、付記4記載の方法。
[付記6]
前記幾何学的マージモード、前記サブブロックベースマージモード及び前記IBCマージモードのうちの前記1つは、前記サブブロックベースマージモードであって、
マージ候補の最大数は、前記サブブロックベースのマージMVP候補の最大数であり、
前記第2構文要素は、前記サブブロックベースマージMVP候補の最大数を示し、
前記条件は、前記第2コーディングレベルにおいて使用可能であるアフィンモードであり、
前記方法はさらに、
前記第2構文要素に基づいて、前記サブブロックベースマージMVP候補の最大数を決定するステップ、
を含む、付記4記載の方法。
[付記7]
前記幾何学的マージモード、前記サブブロックベースマージモード及び前記IBCマージモードのうちの前記1つは、前記IBCマージモードであって、
前記マージ候補の最大数は、IBCマージブロックベクトル予測(BVP)候補(IBCマージBVP候補)の最大数であり、
前記第2構文要素は、前記IBCマージBVP候補の最大数を示し、
前記条件は、前記第2コーディングレベルで使用可能である前記IBCマージモードであり、
前記方法はさらに、
前記第2構文要素に基づいて、前記IBCマージBVP候補の最大数を決定するステップを含む、
付記4記載の方法。
[付記8]
前記第1コーディングレベル及び前記第2コーディングレベルは、シーケンスレベルである、
付記4記載の方法。
[付記9]
第2構文要素は、前記第2コーディングレベルより低いコーディングレベルにおいて変更される、
付記6記載の方法。
[付記10]
前記第1コーディングレベル及び前記第2コーディングレベルは、シーケンスレベルであり、
前記第2コーディングレベルより低いコーディングレベルは、画像レベルである、
付記9記載の方法。
[付記11]
ビデオデコーディングのための装置であって、
処理回路を備え、前記処理回路は、
付記1乃至10いずれか1項記載の方法を実行する
ように構成されている、
装置。
[付記12]
命令を含むプログラムであって、前記命令は、ビデオをデコードするために、コンピュータによって実行されたときに前記コンピュータに、
コーディングされたビットストリームから、第1コーディングレベルにおいてシグナリングされた第1構文要素をデコードするステップであって、前記第1構文要素はマージ動きベクトル予測(MVP)候補の最大数を示し、前記第1コーディングレベルは、画像パラメータセット(PPS)レベルよりも高い、ステップと、
前記第1構文要素に基づいて前記マージMVP候補の前記最大数を決定するステップと、
前記マージMVP候補の最大数に少なくとも基づいて、前記第1コーディングレベルに関連するコーディングブロックを再構成するステップと、
を実行させる、
プログラム。
[付記13]
エンコーダが実行するビデオをエンコードするための方法であって、
ビットストリームをエンコードするステップであって、コーディングされたビットストリームにおいて、第1構文要素は、第1コーディングレベルにおいてシグナリングされており、前記第1構文要素は、マージ動きベクトル予測候補(マージMVP候補)の最大数を示し、前記第1コーディングレベルは、画像パラメータセット(PPS)レベルよりも高い、ステップと、
を含む、方法。
【外国語明細書】