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

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

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

特許7096951ビデオエンコーディング及びデコーディングのための方法、装置及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-28
(45)【発行日】2022-07-06
(54)【発明の名称】ビデオエンコーディング及びデコーディングのための方法、装置及びプログラム
(51)【国際特許分類】
   H04N 19/52 20140101AFI20220629BHJP
   H04N 19/70 20140101ALI20220629BHJP
   H04N 19/537 20140101ALI20220629BHJP
【FI】
H04N19/52
H04N19/70
H04N19/537
【請求項の数】 21
(21)【出願番号】P 2021527182
(86)(22)【出願日】2019-12-27
(65)【公表番号】
(43)【公表日】2022-01-20
(86)【国際出願番号】 US2019068753
(87)【国際公開番号】W WO2020142378
(87)【国際公開日】2020-07-09
【審査請求日】2021-05-18
(31)【優先権主張番号】62/787,029
(32)【優先日】2018-12-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/796,522
(32)【優先日】2019-01-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/534,026
(32)【優先日】2019-08-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,メン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2022-507872(JP,A)
【文献】特表2022-505874(JP,A)
【文献】特表2022-506269(JP,A)
【文献】特表2022-509024(JP,A)
【文献】Ru-Ling Liao, et al.,"CE10.3.1.b: Triangular prediction unit mode",JVET-L0124 (version 5),[online], Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年10月08日,Pages 1-8,[令和4年5月26日検索], インターネット, <URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=4205> and <URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0124-v5.zip>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
デコーダが実行するビデオデコーディングの方法であって、
コーディングブロックの第1の組に適用された三角予測モード(TPM)のTPM候補の第1最大許容数と、現在のコーディングブロックに適用可能なマージモードにおけるマージ候補の第2最大許容数との間の差を示すビットストリーム内の第1シンタックス要素を受け取るステップと、
前記受け取られた第1シンタックス要素に基づいて、前記TPM候補の第1最大許容数を導出するステップと、
前記導出されたTPM候補の第1最大許容数に応じて、前記TPMにより処理された前記現在のコーディングブロックのTPM候補リストを構成するステップと
を有する方法。
【請求項2】
前記TPM候補の第1最大許容数は、0から、前記現在のコーディングブロックに適用可能なマージモードにおけるマージ候補の前記第2最大許容数までの整数である、
請求項1に記載の方法。
【請求項3】
前記マージモードにおける前記マージ候補は、次の、
前記現在のコーディングブロックの空間隣接コーディングブロックからの空間動きベクトル予測子(MVP)と、
前記現在のコーディングブロックの同一位置のコーディングブロックからの時間MVPと、
履歴ベースのMVPと、
ペアワイズ平均MVPと、
ゼロモーションベクトルと
のうちの1つ以上のタイプのマージ候補を含む、
請求項2に記載の方法。
【請求項4】
前記構成するステップは、
前記TPM候補の第1最大許容数は2以上である場合に、前記TPM候補リスト上のTPM候補の数が前記TPM候補の第1最大許容数に等しくなるように、前記現在のコーディングブロックの前記TPM候補リストを構成するステップを有する、
請求項1に記載の方法。
【請求項5】
前記差を示す前記ビットストリーム内の前記第1シンタックス要素は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、タイルヘッダ、又はタイルグループヘッダで通知される、
請求項1に記載の方法。
【請求項6】
シーケンスパラメータセット(SPS)において、前記TPMが有効にされているかどうかを示す前記ビットストリーム内の第2シンタックス要素を受け取るステップを更に有する、
請求項1に記載の方法。
【請求項7】
前記第1シンタックス要素を受け取るステップは、前記ビットストリーム内の前記第2シンタックス要素を受け取るステップの後で実行される、
請求項6に記載の方法。
【請求項8】
前記第1シンタックス要素を受け取るステップは、前記ビットストリーム内の前記第2シンタックス要素が、前記TPMが有効にされていることを示すことと、少なくとも1つの追加条件が満足されることとに応答して、実行される、
請求項6に記載の方法。
【請求項9】
前記少なくとも1つの追加条件は、双予測が適用されるとの指示を有する、
請求項8に記載の方法。
【請求項10】
前記現在のコーディングブロックに適用可能な前記マージモードにおけるマージ候補の前記第2最大許容数に対応する第3シンタックス要素を受け取るステップを更に有する、
請求項1に記載の方法。
【請求項11】
前記第1シンタックス要素を受け取るステップは、前記ビットストリーム内の前記第3シンタックス要素を受け取るステップの後で実行される、
請求項10に記載の方法。
【請求項12】
ビデオデコーディングのための装置であって、
処理回路を有し、該処理回路は、
コーディングブロックの第1の組に適用された三角予測モード(TPM)のTPM候補の第1最大許容数と、現在のコーディングブロックに適用可能なマージモードにおけるマージ候補の第2最大許容数との間の差を示すビットストリーム内の第1シンタックス要素を受け取り、
前記受け取られた第1シンタックス要素に基づいて、前記TPM候補の第1最大許容数を導出し、
前記導出されたTPM候補の第1最大許容数に応じて、前記TPMにより処理された前記現在のコーディングブロックのTPM候補リストを構成する
よう構成される、装置。
【請求項13】
前記TPM候補の第1最大許容数は、0から、前記現在のコーディングブロックに適用可能なマージモードにおけるマージ候補の前記第2最大許容数までの整数である、
請求項12に記載の装置。
【請求項14】
前記マージモードにおける前記マージ候補は、次の、
前記現在のコーディングブロックの空間隣接コーディングブロックからの空間動きベクトル予測子(MVP)と、
前記現在のコーディングブロックの同一位置のコーディングブロックからの時間MVPと、
履歴ベースのMVPと、
ペアワイズ平均MVPと、
ゼロモーションベクトルと
のうちの1つ以上のタイプのマージ候補を含む、
請求項13に記載の装置。
【請求項15】
前記処理回路は、シーケンスパラメータセット(SPS)において、前記TPMが有効にされているかどうかを示す前記ビットストリーム内の第2シンタックス要素を受け取るよう更に構成される、
請求項12に記載の装置。
【請求項16】
前記第1シンタックス要素は、前記ビットストリーム内の前記第2シンタックス要素を受け取った後で受け取られる、
請求項15に記載の装置。
【請求項17】
前記第1シンタックス要素は、前記ビットストリーム内の前記第2シンタックス要素が、前記TPMが有効にされていることを示すことと、少なくとも1つの追加条件が満足されることとに応答して、受け取られる、
請求項15に記載の装置。
【請求項18】
前記処理回路は、前記現在のコーディングブロックに適用可能な前記マージモードにおけるマージ候補の前記第2最大許容数に対応する第3シンタックス要素を受け取るよう更に構成される、
請求項12に記載の装置。
【請求項19】
前記第1シンタックス要素は、前記ビットストリーム内の前記第3シンタックス要素を受け取った後で受け取られる、
請求項18に記載の装置。
【請求項20】
少なくとも1つのプロセッサによって実行される場合に、該少なくとも1つのプロセッサに、請求項1乃至11のうちいずれか一項に記載の方法を実行させるプログラム。
【請求項21】
エンコーダが実行するビデオエンコーディングの方法であって、
ビットストリームをエンコーディングするステップと、
コーディングブロックの第1の組に適用された三角予測モード(TPM)のTPM候補の第1最大許容数と、現在のコーディングブロックに適用可能なマージモードにおけるマージ候補の第2最大許容数との間の差を示すビットストリーム内の第1シンタックス要素を受け取るステップと、
前記受け取られた第1シンタックス要素に基づいて、前記TPM候補の第1最大許容数を導出するステップと、
前記導出されたTPM候補の第1最大許容数に応じて、前記TPMにより処理された前記現在のコーディングブロックのTPM候補リストを構成するステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオコーディングに概して関係がある実施形態について記載する。
【背景技術】
【0002】
本明細書中で与えられている背景の説明は、本開示の背景を一般的に提示することを目的とするものである。現在指名されている発明者の研究は、その研究がこの背景の項で説明されている範囲で、及び出願時に先行技術としてさもなければ適格でない可能性がある説明の側面は、本開示に対する先行技術として明示的にも暗黙的にも認められない。
【0003】
ビデオコーディング及びデコーディングは、動き補償を伴ったインターピクチャ予測を用いて実行可能である。圧縮されていないデジタルビデオは、ピクチャの連続を含むことができ、各ピクチャは、例えば、1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間寸法を有する。ピクチャの連続は、例えば、毎秒60ピクチャ、つまり60Hzの固定又は可変のピクチャレート(俗にフレームレートとして知られている。)を有することができる。圧縮されていないビデオは、有意なビットレート要件を有している。例えば、サンプル当たり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gビット/sに近いバンド幅を必要とする。そのようなビデオの1時間は、600Gバイト超の記憶空間を必要とする。
【0004】
ビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であることができる。圧縮は、いくつかの場合に2桁以上、上記のバンド幅又は記憶空間要件を減らすことを助けることができる。可逆及び不可逆圧縮の両方並びにそれらの組み合わせが用いられ得る。可逆圧縮は、原信号の厳密なコピーが圧縮された原信号から再構成可能である技術を指す。不可逆圧縮を使用する場合に、再構成された信号は、原信号と同じでない場合があるが、原信号と再構成された信号との間のひずみは、再構成された信号を、意図された用途にとって有用なものとするほど十分に小さい。ビデオの場合には、不可逆圧縮が広く用いられている。許容されるひずみの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビジョン配信用途のユーザよりも高いひずみを許容し得る。達成可能な圧縮比は、より高い許容可能な/受け入れ可能なひずみがより高い圧縮比をもたらし得ることを反映することができる。
【0005】
動き補償は不可逆圧縮技術であることができ、前に再構成されたピクチャ又はその部分(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降MV)によって示された方向において空間的にシフトされた後に、新たに再構成されるピクチャ又はピクチャ部分の予測のために使用される技術に関係があり得る。いくつかの場合に、参照ピクチャは、現在再構成中のピクチャと同じであることができる。MVは2つの次元X及びY、又は3つの次元を有することができ、3番目の次元は、使用中の参照ピクチャの指示である(後者は、間接的に、時間次元であることができる。)。
【0006】
いくつかのビデオ圧縮技術では、サンプルデータの特定のエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプルデータの他のエリアに関係があり、デコーディング順序においてそのMVに先行するものから、予測され得る。そうすることで、MVをコーディングするために必要なデータの量を大幅に減らすことができ、それによって、冗長性を取り除きかつ圧縮を高める。例えば、カメラから得られた入力ビデオ信号(ナチュラルビデオとして知られる。)をコーディングする場合に、単一のMVが適用可能であるエリアよりも大きいエリアが同様の方向に移動するという統計的可能性があり、従って、いくつかの場合には、隣接するエリアのMVから導出された同様の動きベクトルを用いて予測可能であるということで、MV予測は有効に働くことができる。その結果、所与のエリアについて求められるMVは、周囲のMVから予測されたMVと類似又は同じであり、エントロピコーディング後に、MVを直接コーディングする場合に使用されることになるビット数よりも少ないビットで表され得る。いくつかの場合に、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であることができる。他の場合には、MV予測自体は、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、不可逆であり得る。
【0007】
様々なMV予測メカニズムがH.265/HEVC(ITU-T Rec. H265,“High Efficiency Video Coding”,2016年12月)で説明されている。H.265が提案する多くのMV予測メカニズムの中から、本明細書では、以降「空間マージ」と呼ばれる技術が説明される。
【0008】
図1を参照すると、現在のブロック(101)は、空間的にシフトされた同じサイズの前のブロックから予測可能であると動き探索プロセス中にエンコーダによって認められたサンプルを有する。そのMVを直接にコーディングする代わりに、MVは、1つ以上の参照ピクチャと関連付けられたメタデータから、例えば、(デコーディング順序において)最も最近の参照ピクチャから、A0、A1及びB0、B1、B2(夫々、102から106)と表されている5つの周囲サンプルのうちのいずれか1つと関連付けられたMVを用いて導出され得る。H.265では、MV予測は、隣接するブロックが使用している同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0009】
本開示の態様は、デコーダでのビデオデコーディングの方法を提供する。方法は、コーディングブロックの組に適用された三角予測モード(Triangular Prediction Mode,TPM)のTPM候補の第1最大許容数を示すビットストリーム内のシンタックス要素を受け取るステップと、TPM候補の第1最大許容数に応じて、TPMにより処理された現在のコーディングブロックのTPM候補リストを構成するステップとを含むことができる。
【0010】
デコーダでのビデオデコーディングの方法において、現在のコーディングブロックのマージ候補リストが、TPMにより現在のコーディングブロックを処理するために構成される。マージ候補リストは、1つ又は2つの動きベクトルを夫々有するマージ候補を含むことができる。各動きベクトルは、第1参照ピクチャリスト又は第2参照ピクチャリストと関連付けられ得る。第1動きベクトル及び第2動きベクトルは、マージ候補リスト上のマージ候補の動きベクトルから決定される。現在のコーディングブロックは、現在のコーディングブロックの2つの三角パーティションの2つの動きベクトル予測子(Motion Vector Predictor(s),MVP)として第1及び第2動きベクトルを用いてTPMにより処理される。
【0011】
デコーダでのビデオデコーディングの方法において、ピクチャのコーディングブロックと関連付けられた分割方向シンタックス要素、第1インデックスシンタックス要素、及び第2インデックスシンタックス要素が受け取られる。コーディングブロックは、三角予測モードによりコーディングされ、分割方向シンタックス要素によって示された第1又は第2分割方向に従って第1三角予測ユニット及び第2三角予測ユニットに分割され得る。第1及び第2分割方向の両方について、第1及び第2三角予測ユニットに対して構成されたマージ候補リストへの第1マージインデックス及び第2マージインデックスが第1プロセスにより決定される。
【0012】
第1プロセスは、第1インデックスシンタックス要素の値を有するよう第1及び第2マージインデックスのうちの第1の1つのマージインデックスを決定するステップと、第2インデックスシンタックス要素が第1インデックスシンタックス要素よりも小さい値を有する場合に、第2インデックスシンタックス要素の値を有するよう第1及び第2マージインデックスのうちの第2の1つのマージインデックスを決定するステップと、第2インデックスシンタックス要素が第1インデックスシンタックス要素以上の値を有する場合に、第2インデックスシンタックス要素に1をプラスした値を有するよう第1及び第2マージインデックスのうちの第2の1つのマージインデックスを決定するステップとを含むことができる。コーディングブロックは、第1又は第2分割方向、決定された第1マージインデックス、及び決定された第2マージインデックスに従って再構成される。
【0013】
開示されている対象の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面から明らかになる。
【図面の簡単な説明】
【0014】
図1】一例において、現在のブロック及びその周囲の空間マージ候補の概略図である。
図2】実施形態に従う通信システムの略ブロック図の概略図である。
図3】実施形態に従う通信システムの略ブロック図の概略図である。
図4】実施形態に従うデコーダの略ブロック図の概略図である。
図5】実施形態に従うエンコーダの略ブロック図の概略図である。
図6】他の実施形態に従うエンコーダのブロック図を示す。
図7】他の実施形態に従うデコーダのブロック図を示す。
図8】実施形態に従って、マージ候補の組がマージ候補リストを構成するよう選択され得る候補位置の例を示す。
図9】実施形態に従って、空間マージ候補の組が拡張マージ候補リストを構成するよう選択され得る候補位置の他の例を示す。
図10】実施形態に従って、冗長性チェックプロセスのための拡張マージリスト上の候補対の例を示す。
図11】実施形態に従って、現在のピクチャにおいて拡張マージリスト上の時間マージ候補を導出する例を示す。
図12】実施形態に従って、拡張マージリスト上の時間マージ候補が選択され得る候補位置を示す。
図13】実施形態に従って、コーディングユニットを2つの三角予測ユニットに分割する例を示す。
図14】実施形態に従って、三角予測モードのための片予測候補リストを構成するために使用される空間及び時間隣接ブロックの例を示す。
図15】実施形態に従って、三角パーティションインデックスに基づいて分割方向及びパーティション動き情報を導出するために使用されるルックアップテーブルの例を示す。
図16】実施形態に従って、適応ブレンディングプロセスにおいて重み係数の組を適用するコーディングユニットの例を示す。
図17】実施形態に従って、三角予測モードにおける動きベクトル保存の例を示す。
図18A】実施形態に従って、2つの三角予測ユニットの動きベクトルに基づいて双予測動きベクトルを導出する例を示す。
図18B】実施形態に従って、2つの三角予測ユニットの動きベクトルに基づいて双予測動きベクトルを導出する例を示す。
図18C】実施形態に従って、2つの三角予測ユニットの動きベクトルに基づいて双予測動きベクトルを導出する例を示す。
図18D】実施形態に従って、2つの三角予測ユニットの動きベクトルに基づいて双予測動きベクトルを導出する例を示す。
図19】実施形態に従う三角予測モード候補リスト構成プロセスを概説するフローチャートを示す。
図20】実施形態に従う三角予測プロセスを概説するフローチャートを示す。
図21】実施形態に従う他の三角予測プロセスを概説するフローチャートを示す。
図22】実施形態に従うコンピュータシステムの概略図である。
【発明を実施するための形態】
【0015】
[I.ビデオコーディングエンコーダ及びデコーダ]
図2は、本開示の実施形態に従う通信システム(200)の略ブロック図を表す。システム(200)は、例えば、ネットワーク(250)を介して互いと通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続されている端末デバイス(210)及び(220)の第1対を含む。図2では、端末デバイス(210)及び(220)の第1対は、データの一方向伝送を実行する。例えば、端末デバイス(210)は、ネットワーク(250)を介した他の端末デバイス(220)への伝送のためにビデオデータ(例えば、端末デバイス(210)によって捕捉されるビデオデータのストリーム)をコーディングしてよい。エンコーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形で伝送可能である。端末デバイス(220)は、コーディングされたビデオデータをネットワーク(250)から受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復し、回復されたビデオデータに従ってビデオピクチャを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0016】
他の例では、通信システム(200)は、例えば、ビデオ会議中に現れ得るコーディングされたビデオデータの双方向伝送を実行する端末デバイス(230)及び(240)の第2対を含む。データの双方向伝送のために、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介した端末デバイス(230)及び(240)のうちの他方の端末デバイスへの伝送のためにビデオデータ(例えば、その端末デバイスによって捕捉されるビデオピクチャのストリーム)をコーディングしてよい。端末デバイス(230)及び(240)の各端末デバイスはまた、端末デバイス(230)及び(240)のうちの他方の端末デバイスによって送信されたコーディングされたビデオデータを受信してよく、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復してよく、回復されたビデオデータに従って、アクセス可能な表示デバイスでビデオピクチャを表示してよい。
【0017】
図2の例では、端末デバイス(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして表され得るが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、及び/又は専用のビデオ会議装置により用途を見出す。ネットワーク(250)は、例えば、ワイヤライン(有線)及び/又はワイヤレス通信ネットワークを含む、端末デバイス(210)、(220)、(230)及び(240)の間でコーディングされたビデオデータを伝達する任意数のネットワークを表す。通信ネットワーク(250)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットがある。本議論のために、ネットワーク(250)のアーキテクチャ及びトポロジは、以降で説明されない限りは本開示の動作に無関係であり得る。
【0018】
図3は、開示されている対象の応用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であることができる。
【0019】
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(302)を生成するビデオソース(301)、例えば、デジタルカメラ、を含むことができる捕捉サブシステム(313)を含んでよい。例において、ビデオピクチャのストリーム(302)は、デジタルカメラによって撮影されるサンプルを含む。ビデオピクチャのストリーム(302)は、エンコーディングされたビデオデータ(304)(又はコーディングされたビデオビットストリーム)と比較して高いデータボリュームを強調するために太線で表されており、ビデオソース(301)へ結合されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理され得る。ビデオエンコーダ(303)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能に又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。エンコーディングされたビデオデータ(304)(又はエンコーディングされたビデオビットストリーム(304))は、ビデオピクチャのストリーム(302)と比較してより低いデータボリュームを強調するために細線で表されており、将来の使用のためにストリーミングサーバ(305)に記憶され得る。図3のクライアントサブシステム(306)及び(308)などの1つ以上のストリーミングクライアントサブシステムは、エンコーディングされたビデオデータ(304)のコピー(307)及び(309)を読み出すためにストリーミングサーバ(305)にアクセスすることができる。クライアントサブシステム(306)は、例えば、電子デバイス(330)において、ビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、エンコーディングされたビデオデータの入来するコピー(307)をデコーディングし、ディスプレイ(312)(例えば、表示スクリーン)又は他のレンダリングデバイス(図示せず。)でレンダリングされ得るビデオピクチャの送出ストリーム(311)を生成する。いくつかのストリーミングシステムにおいて、エンコーディングされたビデオデータ(304)、(307)、及び(309)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされ得る。そのような規格の例には、ITU-T推奨H.265がある。例において、開発中のビデオコーディング規格は、バーサタイル・ビデオ・コーディング(Versatile Video Coding,VVC)として俗に知られている。開示されている対象は、VVCに関連して使用されてもよい。
【0020】
電子デバイス(320)及び(330)は、他のコンポーネント(図示せず。)を含むことができることが知られる。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず。)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず。)を同様に含むことができる。
【0021】
図4は、本開示の実施形態に従うビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれ得る。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、図3のビデオデコーダ(310)の代わりに使用され得る。
【0022】
受信器(431)は、ビデオデコーダ(410)によってデコーディングされるべき1つ以上のコーディングされたビデオシーケンスを、同じ又は他の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信してよい。ここで、夫々のコーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信されてよく、チャネルは、エンコーディングされたビデオデータを記憶している記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。受信器(431)は、エンコーディングされたビデオデータを他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリームとともに受信してよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてよい。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離してよい。ネットワークジッタに対抗するために、バッファメモリ(415)が受信器(431)とエントロピデコーダ/パーサ(420)(以降「パーサ(420)」)との間に結合されてよい。特定の用途では、バッファメモリ(415)は、ビデオデコーダ(410)の部分である。他では、それは、ビデオデコーダ(410)の外にあることができる(図示せず。)。更に他では、例えば、ネットワークジッタに対抗するための、ビデオデコーダ(410)の外にあるバッファメモリ(図示せず。)と、加えて、例えば、再生タイミングを操作するための、ビデオデコーダ(410)内のもう1つのバッファメモリ(415)とがあってもよい。受信器(431)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファメモリ(415)は必要とされなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファメモリ(415)は必要とされる場合があり、比較的に大きくかつ有利なことには適応サイズであることができ、ビデオデコーダ(410)の外のオペレーティングシステム又は同様の要素(図示せず。)に少なくとも部分的に実装され得る。
【0023】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含んでよい。それらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報と、潜在的に、電子デバイス(430)の必須部分でないが、図4に示されたように、電子デバイス(430)へ結合され得るレンダーデバイス(412)(例えば、表示スクリーン)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、SEI(Supplementary Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示せず。)の形をとってよい。パーサ(420)は、受信されるコーディングされたビデオシーケンスをパース/エントロピデコーディングしてよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む様々な原理に従うことができる。パーサ(420)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出し得る。サブグループは、グループ・オブ・ピクチャ(Groups of Pictures,GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Units,CU)、ブロック、変換ユニット(Transform Units,TU)、予測ユニット(Prediction Units,PU)、などを含むことができる。パーサ(420)はまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、動きベクトル、なども抽出し得る。
【0024】
パーサ(420)は、シンボル(421)を生成するために、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピデコーディング/パーシング動作を実行してよい。
【0025】
シンボル(421)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多種多様なユニットを有することができる。どのユニットがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(420)によってパースされたサブグループ制御情報によって制御され得る。パーサ(420)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
【0026】
既に述べられた機能ブロックを超えて、ビデオデコーダ410は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
【0027】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)からシンボル(421)として、量子化された変換係数とともに、使用するために変換するもの、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)へ入力することができるサンプル値を含むブロックを出力することができる。
【0028】
いくつかの場合に、スケーラ/逆変換器(451)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。そのような予測情報は、イントラピクチャ予測ユニット(452)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(452)は、現在ピクチャバッファ(458)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(458)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(455)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって供給される出力サンプル情報に加える。
【0029】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係することができる。そのような場合に、動き補償予測ユニット(453)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(457)にアクセスすることができる。ブロックに関係するシンボル(421)に従って、フェッチされたサンプルを動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニット(453)が予測サンプルをフェッチする参照ピクチャメモリ(457)内のアドレスは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(421)の形で動き補償予測ユニット(453)が利用することができる動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(457)からフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなどを含むことができる。
【0030】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる。)に含まれており、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順序において)前の部分のデコーディング中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することができる。
【0031】
ループフィルタユニット(456)の出力は、レンダーデバイス(412)へ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(457)に記憶され得るサンプルストリームであることができる。
【0032】
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(420)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(458)は、参照ピクチャメモリ(457)の部分になることができ、未使用の現在ピクチャバッファが、後続のコーディングされたピクチャの再構成を開始する前に再割当てされ得る。
【0033】
ビデオデコーダ(410)は、ITU-T推奨H.265などの規格における所定のビデオ圧縮技術に従ってデコーディング動作を実行してよい。コーディングされたビデオシーケンスは、そのコーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックス及びビデオ圧縮技術又は規格において文書化されているプロファイルの両方に従うという意味で、使用中のビデオ圧縮技術又は規格によって規定されたシンタックスに従い得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールからそのプロファイルの下での使用のために利用可能な最適なツールとして特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義された境界内にあることが、順守のために必要である。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定される制限は、いくつかの場合に、ハイポセティカル・リファレンス・デコーダ(Hypothetical Reference Decoder,HRD)仕様及びコーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータを通じて更に制限され得る。
【0034】
実施形態において、受信器(431)は、エンコーディングされたビデオとともに、追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの部分としても含まれてもよい。追加のデータは、ビデオデコーダ(410)によって、データを適切にデコーディングするために及び/又は原ビデオデータをより正確に再構成するために使用されてよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
【0035】
図5は、本開示の実施形態に従うビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれている。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、図3の例におけるビデオエンコーダ(303)の代わりに使用され得る。
【0036】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(501)(図5の例では電子デバイス(520)の部分ではない。)からビデオサンプルを受信してよい。他の例では、ビデオソース(501)は、電子デバイス(520)の部分である。
【0037】
ビデオソース(501)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCB、RGBなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、ビデオエンコーダ(503)によってエンコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(501)は、前に準備されたビデオを記憶している記憶デバイスであってよい。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
【0038】
実施形態に従って、ビデオエンコーダ(503)は、実時間において又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(543)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(550)の一機能である。いくつかの実施形態において、コントローラ(550)は、以下で記載されるような他の機能ユニットを制御し、それらのユニットへ機能的に結合される。結合は明りょうさのために表されていない。コントローラ(550)によってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関係する他の適切な機能を有するよう構成され得る。
【0039】
いくつかの実施形態において、ビデオエンコーダ(503)は、コーディングループで動作するよう構成される。過度に単純化された記載として、例において、コーディングループは、ソースコーダ(530)(例えば、コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することに関与する。)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(遠隔の)デコーダも生成することになる(シンボルとコーディングされたビデオストリームとの間の如何なる圧縮も、開示されている対象で考えられているビデオ圧縮技術において可逆である)のと同様の方法でサンプルデータを生成するようにシンボルを再構成する。その再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)へ入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリ(534)内のコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用されている。
【0040】
“ローカル”のデコーダ(533)の動作は、図4とともに先に詳細に既に説明されている、ビデオデコーダ(410)などの“遠隔”のデコーダと同じであることができる。一時的に図4も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(545)及びパーサ(420)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であることができるので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピデコーディング部分は、ローカルのデコーダ(533)において完全には実施されなくてよい。
【0041】
この時点で行われ得る観察は、デコーダに存在するパーシング/エントロピデコーディングを除く如何なるデコーダ技術も、対応するエンコーダにおいて、実質的に同じ機能形態で、必ずしも存在する必要がないことである。この理由により、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されるデコーダ技術の逆であるということで、省略され得る。特定の範囲においてのみ、より詳細な説明が必要とされ、以下で与えられている。
【0042】
動作中、ソースコーダ(530)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(532)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
【0043】
ローカルのビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングしてよい。コーディングエンジン(532)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(図5には図示せず。)でデコーディングされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(533)は、参照ピクチャに対してビデオデコーダによって実行され得るデコーディングプロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ(534)に格納されるようにしてよい。このように、ビデオエンコーダ(503)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照ピクチャと共通の内容を有している再構成された参照ピクチャのコピーをローカルで記憶し得る。
【0044】
予測器(535)は、コーディングエンジン(532)の予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(535)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(534)から探してよい。予測器(535)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(535)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
【0045】
コントローラ(550)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータ及びサブグループパラメータの設定を含め、ビデオコーダ(530)のコーディング動作を管理してよい。
【0046】
上記の全ての機能ユニットの出力は、エントロピコーダ(545)においてエントロピコーディングを受けてよい。エントロピコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
【0047】
送信器(540)は、エントロピコーダ(545)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(560)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(560)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(540)は、ビデオコーダ(503)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)とマージしてもよい。
【0048】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理してよい。コーディング中、コントローラ(550)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを夫々のコーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、次のピクチャタイプのうちの1つとして割り当てられてよい。
【0049】
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコーディングされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴に気づく。
【0050】
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。
【0051】
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
【0052】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。
【0053】
ビデオエンコーダ(503)は、ITU-T推奨H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行してよい。その動作中に、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって定められているシンタックスに従い得る。
【0054】
実施形態において、送信器(540)は、エンコーディングされたビデオとともに追加のデータを送信してもよい。ソースコーダ(530)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ又はVUIパラメータセットフラグメント、などを有してよい。
【0055】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてよい。イントラピクチャ予測(しばしばイントラ予測と省略される。)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間又は他の)相関を利用する。例において、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャは、ブロックに分割される。現在のピクチャ内のあるブロックが、ビデオ内の前にコーディングされた依然としてバッファリングされている参照ピクチャ内の参照ブロックと類似している場合に、現在にピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することができる。
【0056】
いくつかの実施形態において、双予測技術がインターピクチャ予測において使用され得る。双予測技術に従って、2つの参照ピクチャ、例えば、ビデオ内で現在のピクチャに対してデコーディング順序において両方とも先行する(しかし、表示順序では、夫々、過去及び将来にあってよい。)第1参照ピクチャ及び第2参照ピクチャが、使用される。現在のピクチャ内のあるブロックは、第1参照ピクチャ内の第1参照ブロックを指し示す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指し示す第2動きベクトルとによって、コーディングされ得る。そのブロックは、第1参照ブロック及び第2参照ブロックの組み合わせによって予測可能である。
【0057】
更に、マージモード技術が、コーディング効率を改善するためにインターピクチャ予測において使用され得る。
【0058】
本開示のいくつかの実施形態に従って、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロックのユニットにおいて実行される。例えば、HEVC規格に従って、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルといった同じサイズを有する。一般に、CTUは、1つのルーマCTB及び2つのクロマCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ又は複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割可能である。例において、各CUは、インター予測タイプ又はイントラ予測タイプなどのCUのための予測タイプを決定するよう解析される。CUは、時間及び/又は空間予測可能性に応じて1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、1つのルーマ予測ブロック(PB)及び2つのクロマPBを含む。実施形態において、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルーマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのような、ピクセルの値(例えば、ルーマ値)の行列を含む。
【0059】
図6は、本開示の他の実施形態に従うビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオピクチャの連続に含まれる現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャへと処理ブロックをエンコーディングするよう構成されてよい。例において、ビデオエンコーダ(603)は、図3の例におけるビデオエンコーダ(303)の代わりに使用される。
【0060】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロックなどのような処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(603)は、例えば、レートひずみ最適化を用いて、処理ブロックがイントラモード、インターモード、又は双予測モードにより最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるべきである場合に、ビデオエンコーダ(603)は、コーディングされたピクチャへと処理ブロックをエンコーディングするようイントラ予測技術を使用してよく、処理ブロックがインターモード又は双予測モードでコーディングされるべきである場合に、ビデオエンコーダ(603)は、コーディングされたピクチャへと処理ブロックをエンコーディングするようインター予測又は双予測技術を夫々使用してよい。特定のビデオコーディング技術において、マージモードは、予測子の外にあるコーディングされた動きベクトル成分の恩恵を受けずに1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードであることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在することがある。例において、ビデオエンコーダ(603)は、処理ブロックのモードを決定するモード決定モジュール(図示せず。)などの他のコンポーネントを含む。
【0061】
図6の例では、ビデオエンコーダ(603)は、図6に示されるように結合されているインターエンコーダ(630)、イントラエンコーダ(622)、残差計算部(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、及びエントロピエンコーダ(625)を含む。
【0062】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術に従う残差情報の記述、動きベクトル、マージモード情報)を生成し、何らかの適切な技術を用いてインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するよう構成される。いくつかの例において、参照ピクチャは、エンコーディングされたビデオ情報に基づいてデコーディングされているデコーディングされた参照ピクチャである。
【0063】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、いくつかの場合には、同じピクチャ内で既にコーディングされたブロックとそのブロックを比較し、変換後の量子化された係数を、更には、いくつかの場合には、イントラ予測情報(例えば、1つ以上のイントラエンコーディング技術に従うイントラ予測方向情報)を生成するよう構成される。例において、イントラエンコーダ(622)はまた、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を計算する。
【0064】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するよう構成される。例において、汎用コントローラ(621)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(626)へ供給する。例えば、モードがイントラモードである場合に、汎用コントローラ(621)は、残差計算部(623)による使用のためにイントラモード結果を選択するようスイッチ(626)を制御し、そして、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピエンコーダ(625)を制御する。モードがインターモードである場合に、汎用コントローラ(621)は、残差計算部(623)による使用のためにインター予測結果を選択するようスイッチ(626)を制御し、そして、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピエンコーダ(625)を制御する。
【0065】
残差計算部(623)は、受け取られたブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択された予測結果との間の差(残差データ)を計算するよう構成される。残差エンコーダ(624)は、変換係数を生成するよう残差データをエンコーディングするように残差データに基づいて動作するよう構成される。例において、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するよう構成される。次いで、変換係数は、量子化された変換係数を取得するよう量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(603)はまた、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、デコーディングされた残差データを生成するよう構成される。デコーディングされた残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)によって適切に使用され得る。例えば、インターエンコーダ(630)は、デコーディングされた残差データ及びインター予測情報に基づいて、デコーディングされたブロックを生成することができ、イントラエンコーダ(622)は、デコーディングされた残差データ及びイントラ予測情報に基づいて、デコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するよう適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず。)にバッファリングされ、いくつかの例では参照ピクチャとして使用され得る。
【0066】
エントロピエンコーダ(625)は、エンコーディングされたブロックを含めるようにビットストリームをフォーマット化するよう構成される。エントロピエンコーダ(625)は、HEVC規格などの適切な規格に従って様々な情報を含めるよう構成される。例において、エントロピエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報をビットストリームに含めるよう構成される。開示されている対象に従って、インターモード又は双予測モードのどちらか一方のマージサブモードでブロックをコーディングする場合に、残差情報はない点に留意されたい。
【0067】
図7は、本開示の他の実施形態に従うビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコーディングして、再構成されたピクチャを生成するよう構成される。例において、ビデオデコーダ(710)は、図3の例におけるビデオデコーダ(310)の代わりに使用される。
【0068】
図7の例では、ビデオデコーダ(710)は、図7に示されるように結合されているエントロピデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、及びイントラデコーダ(772)を含む。
【0069】
エントロピデコーダ(771)は、コーディングされたピクチャから、コーディングされたピクチャが構成されるシンタックス要素を表す特定のシンボルを再構成するよう構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、又はマージサブモード若しくは他のサブモードにおけるインターモード若しくは双予測モード)、イントラデコーダ(772)又はインターデコーダ(780)による予測のために夫々使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば、量子化された変換係数の形をとる残差情報、などを含むことができる。例において、予測モードがインター又は双予測モードである場合に、インター予測情報がインターデコーダ(780)へ供給され、予測タイプがイントラ予測タイプである場合に、イントラ予測情報がイントラデコーダ(772)へ供給される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)へ供給される。
【0070】
インターデコーダ(780)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するよう構成される。
【0071】
イントラデコーダ(772)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するよう構成される。
【0072】
残差デコーダ(773)は、逆量子化された変換係数を取り出すように逆量子化を実行し、逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するよう構成される。残差デコーダ(773)はまた、(量子化パラメータ(QP)を含めるための)特定の制御情報を要求してもよく、その情報は、エントロピデコーダ(771)によって供給されてよい(これは低容量の制御情報のみであるため、データパスは示されない。)。
【0073】
再構成モジュール(774)は、残差デコーダ(773)によって出力された残差と、(場合によっては、インター又はイントラ予測モジュールによって出力された)予測結果とを空間領域において組み合わせて、再構成されたブロックを形成するよう構成される。再構成されたブロックは、再構成されたピクチャの部分であってよく、次いで、再構成されたピクチャは、再構成されたビデオの部分であってよい。デブロッキング動作などのような他の適切な動作が、視覚品質を改善するために実行され得ることが知られる。
【0074】
ビデオエンコーダ(303)、(503)及び(603)並びにビデオデコーダ(310)、(410)及び(710)は、如何なる適切な技術によっても実装可能であることが知られる。実施形態において、ビデオエンコーダ(303)、(503)及び(603)並びにビデオデコーダ(310)、(410)及び(710)は、1つ以上の集積回路を用いて実装可能である。他の実施形態では、ビデオエンコーダ(303)、(503)及び(603)並びにビデオデコーダ(310)、(410)及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装可能である。
【0075】
[II.インター予測コーディング技術]
[1 マージモード]
様々な実施形態において、ピクチャは、例えば、木構造に基づく分割スキームを用いて、ブロックに分割され得る。結果として得られるブロックは、イントラ予測モード、インター予測モード(例えば、マージモード、スキップモード、アドバンスド動きベクトル予測(Advanced Motion Vector Prediction,AVMP)モード)などのような種々の処理モードにより処理され得る。現在のブロックと呼ばれる、現在処理中のブロックがマージモードにより処理される場合に、隣接ブロックは、現在のブロックの空間的又は時間的隣接物から選択され得る。現在のブロックは、選択された隣接ブロックからの動きデータ(又は動き情報と呼ばれる。)の同じ組を共有することによって、選択された隣接ブロックとマージされ得る。このマージモード動作は、隣接ブロックの領域が一緒にマージされ、動きデータの同じ組を共有することができるように、隣接ブロックのグループにわたって実行され得る。エンコーダからデコーダへの伝送中に、選択された隣接ブロックの動きデータを示すインデックスが、動きデータの組全体の伝送の代わりに、現在のブロックについて伝送され得る。このようにして、動き情報の伝送に使用されるデータ(ビット)の量は低減可能であり、コーディング効率は改善され得る。
【0076】
上記の例では、動きデータを供給する隣接ブロックは、候補位置の組から選択され得る。候補位置は、現在のブロックに関して予め定義され得る。例えば、候補位置は、空間候補位置及び時間候補位置を含むことができる。各空間候補位置は、現在のブロックに隣接する空間隣接ブロックと関連付けられる。各時間候補位置は、他のコーディングされたピクチャ(例えば、前にコーディングされたピクチャ)に位置している時間隣接ブロックと関連付けられる。候補位置に重なる隣接ブロック(候補ブロックと呼ばれる。)は、現在のブロックの全ての空間又は時間隣接ブロックのサブセットである。このようにして、候補ブロックは、隣接ブロックの組全体ではなく、マージされるべきブロックの選択のために評価され得る。
【0077】
図8は、候補位置の例を示す。それらの候補位置から、マージ候補の組は、マージ候補リストを構成するよう選択され得る。図示されるように、現在のブロック(810)は、マージモードにより処理されるべきである。候補位置{A1,B1,B0,A0,B2,C0,C1}の組は、マージモード処理のために定義される。具体的には、候補位置{A1,B1,B0,A0,B2}は、現在のブロック(810)と同じピクチャ内にある候補ブロックの位置を表す空間候補位置である。対照的に、候補位置{C0,C1}は、他のコーディングされたピクチャ内にあり、現在のブロック(810)の同一位置のブロックに隣接するか又は重なる候補ブロックの位置を表す時間候補位置である。図示されるように、候補位置C1は、現在のブロック(810)の中心の近く(例えば、それに隣接して)位置することができる。
【0078】
候補位置は、異なる例では、サンプルのブロック又はサンプルによって表され得る。図8では、各候補位置は、例えば、4×4サンプルのサイズを有しているサンプルのブロックによって表される。候補位置に対応するサンプルのそのようなブロックのサイズは、現在のブロック(810)を生成するために使用されるツリーベースの分割スキームに対して定義されたPBの最小許容サイズ(例えば、4×4サンプル)以下であることができる。そのような構成の下で、候補位置に対応するブロックは、常に、単一隣接PB内でカバーされ得る。代替の例では、サンプル位置(例えば、ブロックA1内の右下サンプル、又はブロックA0内の右上サンプル)が候補位置を表すために使用されてもよい。そのようなサンプルは、代表サンプルと呼ばれ、一方、そのような位置は、代表位置と呼ばれる。
【0079】
一例では、図8で定義されている候補位置{A1,B1,B0,A0,B2,C0,C1}に基づいて、マージモードプロセスは、候補リストを構成するように候補位置{A1,B1,B0,A0,B2,C0,C1}からマージ候補選択するよう実行され得る。候補リストは、Cmと表される予め定義された最大数のマージ候補を有することができる。候補リスト内の各マージ候補は、動き補償された予測のために使用可能である動きデータの組を含むことができる。
【0080】
マージ候補は、特定の順序に従って候補リストにおいてリストアップされ得る。例えば、どのようにマージ候補が導出されるかに応じて、異なるマージ候補は、選択される確率が異なることがある。選択される確率が高いマージ候補は、選択される確率が低いマージ候補の前に位置付けられる。そのような順序に基づいて、各マージ候補は、インデックス(マージインデックスと呼ばれる。)と関連付けられる。一実施形態において、選択される確率が高いマージ候補は、各々のインデックスをコーディングするために必要とされるビットがより少ないように、より小さいインデックス値を有することになる。
【0081】
一例において、マージ候補の動きデータは、1つ又は2つの動きベクトル水平及び垂直動きベクトル変位値と、1つ又は2つの動きベクトルと関連付けられた1つ又は2つの参照ピクチャインデックスと、任意に、参照ピクチャインデックスと関連付けられる参照ピクチャの識別とを含むことができる。
【0082】
例において、予め定義された順序に従って、マージ候補の第1の数Caが、順序{A1,B1,B0,A0,B2}に従って空間候補位置から導出され、マージ候補の第2の数Cb=Cm-Caが、順序{C0,C1}に従って時間候補位置から導出される。候補位置を表すための数字A1,B1,B0,A0,B2,C0,C1も、マージ候補を参照するために使用可能である。例えば、候補位置A1から取得されるマージ候補は、マージ候補A1と呼ばれる。
【0083】
いくつかのシナリオで、候補位置にあるマージ候補は利用不可能である場合がある。例えば、候補位置にある候補ブロックは、イントラ予測されるか、現在のブロック(810)を含むスライス又はタイルの外にあるか、あるいは、同じコーディングツリーブロック(CTB)内にない可能性がある。いくつかのシナリオで、候補位置にあるマージ候補は、冗長である場合がある。例えば、現在のブロック(810)の1つの隣接ブロックは、2つの候補位置に重なる可能性がある。冗長マージ候補は、(例えば、プルーニングプロセスを実行することによって)候補リストから除かれ得る。候補リスト内の(冗長候補が除かれている)利用可能マージ候補の総数がマージ候補の最大数Cmよりも少ない場合に、候補リストが固定長を有するよう維持され得るように候補リストを満たすよう、追加のマージ候補が(予め設定された規則に従って)生成され得る。例えば、追加のマージ候補は、双予測候補及びゼロ動きベクトル候補の組み合わせを含むことができる。
【0084】
候補リストが構成された後、エンコーダでは、評価プロセスが、候補リストからマージ候補を選択するよう実行され得る。例えば、各マージ候補に対応するレートひずみ(RD)性能が計算され得、最良のRF性能を有する1つが選択され得る。従って、選択されたマージ候補と関連付けられたマージインデックスが、現在のブロック(810)に対して決定され、デコーダへ通知され得る。
【0085】
デコーダでは、現在のブロック(810)のマージインデックスが受け取られ得る。上述されたのと類似した候補リスト構成プロセスが、エンコーダ側で生成された候補リストと同じである候補リストを生成するよう実行され得る。候補リストが構成された後、マージ候補は、いくつかの例ではこれ以上の評価を実行せずに、受け取られたマージインデックスに基づいて候補リストから選択され得る。選択されたマージ候補の動きデータは、現在のブロック(810)のその後の動き補償された予測のために使用され得る。
【0086】
スキップモードもいくつかの例では導入される。例えば、スキップモードにおいて、現在のブロックは、動きデータの組を設定するよう上記のマージモードを用いて予測され得るが、残差は生成されず、変換係数は伝送されない。スキップフラグが現在のブロックと関連付けられ得る。スキップフラグと、現在のブロックの関連する動き情報を示すマージインデックスとは、ビデオデコーダへ通知され得る。例えば、インターピクチャ予測スライス内のCUの初めに、スキップフラグは通知され得、次の:CUが1つのPU(2N×2N)しか含まないこと、マージモードが動きデータを導出するために使用されること、及び残差データがビットストリームに存在しないこと、を暗示する。デコーダ側では、スキップフラグに基づいて、予測ブロックが、残差情報を加えずに、各々の現在のブロックをデコーディングするためのマージインデックスに基づいて決定され得る。よって、本明細書で開示されるマージモードによるビデオコーディングのための様々な方法は、スキップモードと組み合わせて利用可能である。
【0087】
一例として、実施形態において、マージフラグ又はスキップフラグがビットストリームにおいて真として通知される場合に、次いで、マージインデックスは、マージ候補リスト内のどの候補が現在のブロックの動きベクトルを供給するために使用されることになるかを示すために通知される。最大4つまでの空間的に隣接する動きベクトルと、最大1つの時間的に隣接する動きベクトルとが、マージ候補リストに加えられ得る。シンタックスMaxMargeCandsNumがマージ候補リストのサイズとして定義される。シンタックスMaxMargeCandsNumは、ビットストリームで通知され得る。
【0088】
[2 拡張マージ予測モード]
いくつかの実施形態において、上記のマージ候補リストは拡張され、拡張マージ候補リストがマージモードにおいて使用される。例えば、拡張マージ候補リストは、リスト上のマージ候補の最大許容サイズに従って順次に次の5種類のマージ候補を含めることによって、構成され得る:
1)空間隣接コーディングブロック(CU)からの空間動きベクトル予測子(MVP)、
2)同一位置のCUからの時間MVP、
3)履歴バッファからの履歴ベースのMVP、
4)ペアワイズ平均MVP、及び
5)ゼロMV。
「コーディングユニット」という用語は、予測ブロック、又はピクチャから分割されたコーディングブロックを指すことができる。
【0089】
様々な実施形態において、拡張マージリストのサイズは、スライスヘッダ、タイルグループヘッダ、などで通知され得る。例において、拡張マージリストの最大許容サイズは6である。いくつかの実施形態において、マージモードでコーディングされたCUについては、最良のマージ候補のインデックスは、トランケーテッド・ユーナリー・バイナライゼーション(Truncated Unary binarization,TU)を用いてエンコーディングされる。マージインデックスの最初のビンは、コンテキストによりコーディングされ得、他のビンは、バイパスコーディングによりコーディングされ得る。
【0090】
拡張マージ候補リスト上の種々のタイプのマージ候補の生成プロセスについては、以下で説明される。
【0091】
[2.1 空間候補導出]
実施形態において、拡張マージリスト内の空間マージ候補の導出は、セクションIIの「1 マージモード」で説明された空間マージ候補のそれと類似している。図9は、実施形態に従って、現在のブロック(910)の空間マージ候補位置を示す。最高4つのマージ候補が、図9に示される候補位置の中から選択され導出され得る。導出の順序は、一例において、A1,B1,B0,A0,及びB2であることができる。例において、位置B2は、位置A1,B1,B0,A0のいずれのCUも(例えば、それ型のスライス又はタイルに属するために)利用可能でないか、あるいは、イントラコーディングされる場合にのみ考慮される。
【0092】
位置A1にある候補が拡張候補リストに加えられた後、残りの候補の追加は冗長性検査を受けることができる。冗長性検査によって、同じ動き情報を有するマージ候補は、拡張マージリストから除外され、それにより、コーディング効率は改善され得る。計算複雑性を低減するために、例において、全ての起こり得る候補対が冗長性検査において考慮されるわけではない。代わりに、図10において矢印により結ばれた対の組のみが考慮される。候補は、図10に示されている対照物がマージリスト内にあり、いくつかの例では、加えられるべき候補と同じ又は類似した動き情報を有する場合には、マージリストに加えられない。
【0093】
[2.2 時間候補導出]
実施形態において、ただ1つの時間候補が拡張マージリストに加えられる。図11は、実施形態に従って、現在のピクチャ(1101)内の現在のブロック(1111)の時間マージ候補(1131)を導出する例を示す。時間マージ候補(1131)は、ピクチャ(1102)(同一位置の(co-located)ピクチャと呼ばれる。)内の現在のブロック(1111)の同一位置のブロック(1112)の動きベクトル(1132)を調整することによって導出される。例において、同一位置のピクチャの参照ピクチャインデックスは、例えば、スライスヘッダにおいて、明示的に通知される。例において、時間マージ候補(1131)の参照ピクチャインデックスは0にセットされる。実施形態において、調整動作は、ピクチャ・オーダー・カウント(Picture Order Count,POC)Tb(1141)及びTd(1142)の距離に基づく。例えば、Tb(1141)は、現在のブロック(1111)の参照ピクチャ(1103)と現在のピクチャ(1101)との間のPOC距離であるよう定義され、一方、Td(1142)は、同一位置のブロック(1112)の参照ピクチャ(1104)と同一位置のピクチャ(1102)との間のPOC距離であるよう定義される。
【0094】
図12は、実施形態に従って、現在のブロック1210の時間マージ候補が選択され得る候補位置C1及びC0を示す。実施形態において、位置C0は、時間マージ候補を導出するよう最初にチェックされる。位置C0にあるマージ候補が利用可能でない場合に、例えば、C0にある隣接ブロックが利用可能でないか、あるいは、CTUの現在の行の外にあるとき、位置C1は使用される。
【0095】
[2.3 履歴ベースのマージ候補導出]
いくつかの実施形態において、履歴ベースの動きベクトル予測(History-based Motion Vector Prediction,HMVP)マージ候補リストは、空間及び時間候補動きベクトル予測子(MVP)の後に現在のCUの拡張マージリストに加えられる。HMVPでは、前にコーディングされたブロックの動き情報がテーブル(又は履歴バッファ)に格納され、現在のCUのためのMVP候補として使用され得る。そのような動き情報は、HMVP候補と呼ばれる。複数のHMVP候補を含むテーブルは、エンコーディング又はデコーディングプロセス中に維持され得る。テーブルは、一例において、新しいCTU行に直面する場合にリセット(空に)され得る。非サブブロックインターコーディングCUがあるときはいつでも、関連する動き情報が、実施形態において、新しいHMVPとしてテーブルの最後のエントリに加えられ得る。
【0096】
実施形態において、Sによって表される、HMVPテーブルのサイズは、6であるようセットされる。従って、最大6個のHMVP候補がテーブルに加えられてよい。新しい動き候補がテーブルに挿入される場合に、制約付き先入れ先出し(First-In-First-Out,FIFO)規則が実施形態において利用可能である。その上、冗長性検査が、テーブル内に同じHMVPがあるかどうかを見つけるために、新しいHMVP候補を加えるときに適用可能である。見つけられる場合には、同じHMVP候補はテーブルから除かれ、除かれたHMVP候補の後の全てのHMVP候補が繰り上げられる。新しいHMVP候補は、次いで、テーブルの最後に加えられ得る。
【0097】
実施形態において、HMVP候補は、拡張マージ候補リスト構成プロセスにおいて使用される。テーブル内の最新のいくつかのHMVP候補は、順番にチェックされ、実施形態において、TMVP候補の後の位置で拡張候補リストに挿入され得る。冗長性検査は、それらのHMVP候補が、拡張マージリストに前に加えられた空間又は時間マージ候補と類似するか又は同じであるかどうかを決定するために適用されてよい。
【0098】
冗長性検査動作の数を減らすために、以下の単純化が実施形態において導入される:
i)拡張マージリストの生成のために使用されるHMVP候補の数が(N<=4)?M:(8-N)とセットされる。このとき、Nは、拡張マージリスト内の既存の候補の数を示し、Mは、履歴テーブル内の利用可能なHMVP候補の数を示す。
ii)拡張マージリスト内の利用可能なマージ候補の総数が最大許容マージ候補数から1をマイナスしたものに達すると、HMVPからのマージ候補リスト構成プロセスは終了する。
【0099】
[2.4 ペアワイズ平均マージ候補導出]
いくつかの実施形態において、ペアワイズ平均候補は、現在のマージ候補リスト内の候補の予め定義された対を平均することによって生成され得る。例えば、予め定義された対は、実施形態において、{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)}と定義され、このとき、番号は、マージ候補リストへのマージインデックスを表す。例えば、平均された動きベクトルは、参照ピクチャリストごとに別々に計算される。両方の平均されるべき動きベクトルが1つのリスト内で利用可能である場合に、これら2つの動きベクトルは、それらが異なる参照ピクチャを指し示す場合でさえ、平均される。ただ1つの動きベクトルが利用可能である場合には、その利用可能な1つが直接に使用され得る。動きベクトルが利用可能でない場合には、各々の対は、一例において、スキップされる。
【0100】
[2.5 ゼロ動きベクトル予測子]
いくつかの実施形態において、ペアワイズ平均候補が加えられた後に拡張マージリストがいっぱいでない場合に、最大許容マージ候補数に達するまで、ゼロMVPが拡張マージリストの最後に挿入される。
【0101】
[3 三角予測モード(TPM)]
三角予測モード(TPM)は、いくつかの実施形態において、インター予測のために用いられ得る。実施形態において、TPMは、サイズが8×8サンプル以上でありかつスキップ又はマージモードでコーディングされるCUに適用される。実施形態において、これらの条件(サイズが8×8サンプル以上かつスキップ又はマージモードでコーディング)を満足するCUについては、TPMが適用される会中を示すために、CUレベルフラグが通知される。
【0102】
TPMが使用される場合に、いくつかの実施形態において、CUは、図13に示される対角分割又は反対角分割のどちらか一方を用いて、2つの三角形のパーティションに等分に分割される。図13では、第1CU(1310)は、左上角から右下角に向かって分割され、その結果、2つの三角予測ユニットPU1及びPU2が得られる。第2CU(1320)は、右上角から左下角に向かって分割され、その結果、2つの三角予測ユニットPU1及びPU2が得られる。CU(1310)又は(1320)における各三角予測ユニットPU1又はPU2は、それ自体の動き情報を用いてインター予測される。いくつかの実施形態において、片予測しか三角予測ユニットごとに許されない。従って、各三角予測ユニットは、1つの動きベクトル及び1つの参照ピクチャインデックスを有している。片予測動き制約は、従来の双予測方法と同様に、多くても2つの動き補償された予測がCUごとに実行されることを確かにするために、適用され得る。このようにして、処理複雑性は低減され得る。三角予測ユニットごとの片予測動き情報は、片予測マージ候補リストから導出され得る。いくつかの他の実施形態では、双予測が、三角予測ユニットごとに許され得る。従って、三角予測ユニットごとの双予測動き情報は、双予測マージ候補リストから導出され得る。
【0103】
いくつかの実施形態において、CUレベルフラグにより、現在のCUがTPMを用いてコーディングされることが示される場合に、三角パーティションインデックスと呼ばれるインデックスが更に通知される。例えば、三角パーティションインデックスは、[0,39]の範囲内の値を有することができる。この三角パーティションインデックスを用いて、三角パーティションの方向(対角又は反対角)とともに、パーティションの夫々の動き情報(例えば、各々の片予測候補リストへのマージインデックス(又はTPMインデックスと呼ばれる。))が、デコーダ側でルックアップテーブルにより取得され得る。取得された動き情報に基づいて三角予測ユニットの夫々を予測した後、実施形態において、現在のCUの対角又は反対角辺に沿ったサンプル値は、適応重みによりブレンディングプロセスを実行することによって、調整される。ブレンディングプロセスの結果として、CU全体に対する予測信号が取得され得る。その後に、変換及び量子かプロセスが、他の予測モードと同様の方法で、CU全体に適用され得る。最後に、三角パーティションモードを用いて予測されたCUの動き場が、例えば、CUから分割された4×4ユニットの組で動き情報を保存することによって、生成され得る。動き場は、例えば、マージ候補リストを構成するためにその後の動きベクトル予測プロセスにおいて、使用可能である。
【0104】
[3.1片予測候補リスト構成]
いくつかの実施形態において、TPMにより処理されたコーディングブロックの2つの三角予測ユニットの予測のためのマージ候補リストは、コーディングブロックの空間及び時間隣接ブロックの組に基づいて構成され得る。そのようなマージ候補リストは、TPM候補がここにリストアップされているTPM候補リストと呼ばれ得る。1つの実施形態において、マージ候補リストは片予測候補リストである。片予測候補リストは、実施形態において5つの片予測動きベクトル候補を含む。例えば、5つの片予測動きベクトル候補は、5つの空間隣接ブロック(図14では、1から5の番号を付されている。)及び2つの時間同一位置ブロック(図14では、6及び7の番号を付されている。)を含む7つの隣接ブロックから導出される。
【0105】
例において、7つの隣接ブロックの動きベクトルは集められ、次の順序に従って片予測候補リストに置かれる。最初に、片予測された隣接ブロックの動きベクトル、次いで、双予測された隣接ブロックについて、L0動きベクトル(すなわち、双予測MVのL0動きベクトル部分)、L1動きベクトル(すなわち、双予測MVのL1動きベクトル部分)、そして、双予測MVのL0及びL1動きベクトルの平均された動きベクトル、である。例において、候補の数が5に満たない場合には、ゼロ動きベクトルがリストの最後に加えられる。いくつかの他の実施形態では、マージ候補リストは、図14に示されるものと同じ又は異なる候補位置から選択される5つよりも少ない又は5つよりも多い片予測又は双予測マージ候補を含んでもよい。
【0106】
[3.2 ルックアップテーブル及びテーブルインデックス]
実施形態において、CUは、5つのTPM候補を含むTPM(又はマージ)候補リストを用いて三角パーティションモードによりコーディングされる。従って、5つのマージ候補が各三角PUに対して使用される場合にCUを予測する40通りの可能な方法がある。すなわち、分割方向及びマージ(又はTPM)インデックスの40通りの異なった組み合わせが存在し得る。すなわち、2(可能な分割方向)×(5(第1三角予測ユニットのための可能なマージインデックス)×5(第2三角予測ユニットのための可能なマージインデックス)-5(第1及び第2予測ユニットの対が同じマージインデックスを共有する場合の確率の数))である。例えば、同じマージインデックスが2つの三角予測ユニットについて決定される場合に、CUは、三角予測モードの代わりに、通常のマージモードを用いて処理され得る。
【0107】
従って、実施形態において、[0,39]の範囲内の三角パーティションインデックスは、ルックアップテーブルに基づいて、40個の組み合わせのうちのどの1つが使用されるかを表すために、使用され得る。図15は、三角パーティションインデックスに基づいて分割方向及びマージインデックスを導出するために使用される、例となるルックアップテーブル(1500)を示す。ルックアップテーブル(1500)に示されるように、最初の行(1501)は、0から39までの範囲に及ぶ三角パーティションインデックスを含み、2行目(1502)は、0又は1によって表される可能な分割方向を含み、3行目(1503)は、第1三角予測ユニットに対応し、0から4までの範囲に及ぶ可能な第1マージインデックスを含み、4行目(1504)は、第2三角予測ユニットに対応し、0から4までの範囲に及ぶ可能な第2マージインデックスを含む。
【0108】
例えば、1の値を有する三角パーティションインデックスがデコーダで受け取られる場合に、ルックアップテーブル(1500)の列(1520)に基づいて、分割方向は、1の値によって表される分割方向であり、第1及び第2マージインデックスは夫々、0及び1である、と決定され得る。三角パーティションインデックスはルックアップテーブルと関連付けられるということで、三角パーティションインデックスは、本開示ではテーブルインデックスとも呼ばれる。
【0109】
[3.3 三角パーティションエッジに沿った適応ブレンディング]
実施形態において、各々の動き情報を用いて各三角予測ユニットを予測した後、ブレンディングプロセスは、対角又は反対角辺の周りのサンプルを導出するよう2つの三角予測ユニットの2つの予測信号に適用される。ブレンディングプロセスは、2つの三角予測ユニットの間の動きベクトル差に応じて重み係数の2つのグループ間で適応的に選択される。実施形態において、2つの重み係数グループは、次の通りである:
(1)第1重み係数グループ:ルーマ成分のサンプルに対する{7/8,6/8,4/8,2/8,1/8}及びクロマ成分のサンプルに対する{7/8,4/8,1/8}、並びに
(2)第2重み係数グループ:ルーマ成分のサンプルに対する{7/8,6/8,5/8,4/8,3/8,2/8,1/8}及びクロマ成分のサンプルに対する{6/8,4/8,2/8}。
第2重み係数グループは、より多くのルーマ重み係数を有し、パーティションエッジに沿ってより多くのルーマサンプルをブレンディングする。
【0110】
実施形態において、次の条件が、2つの重み係数グループのうちの一方を選択するために使用される。2つの三角パーティションの参照ピクチャが互いに異なる場合に、又は2つの三角パーティション間の動きベクトル差がしきい値(例えば、16ルーマサンプル)よりも大きい場合に、第2重み係数グループが選択される。そうでない場合には、第1重み係数グループ選択される。
【0111】
図16は、第1重み係数グループを適用するCUの例を示す。図示されるように、第1コーディングブロック(1601)はルーマサンプルを含み、第2コーディングブロック(1602)はクロマサンプルを含む。コーディングブロック(1601)又は(1602)における対角辺に沿ったピクセルの組は、重み係数7/8,6/8,4/8,2/8,及び1/8に夫々対応する1,2,4,6,及び7で標識される。例えば、2の番号を付されているピクセルについては、ブレンディング動作後のピクセルのサンプル値は:

ブレンディングされたサンプル値=2/8×P1+6/8×P2

に従って取得され得る。ここで、P1及びP2は、各々のピクセルでのサンプル値であるが、第1三角予測ユニット及び第2三角予測ユニットの予測に夫々属しているものを表す。
【0112】
[3.4 動き場における動きベクトル保存]
図17は、TPMによりコーディングされたCU内の2つの三角予測ユニットの動きベクトルが、その後の動きベクトル予測にとって有用な動き場を形成するよう組み合わされ保存される方法の例を示す。図示されるように、第1コーディングブロック(1701)は、左上角から右下角に向かって2つの三角予測ユニットに第1対角辺(1703)に沿って分割され、一方、第2コーディングブロック(1702)は、右上角から左下角に向かって2つの三角予測ユニットに第2対角辺(1704)に沿って分割される。コーディングブロック(1701)又は(1702)の第1三角予測ユニットに対応する第1動きベクトルは、Mv1と表され、一方、コーディングブロック(1701)又は(1702)の第2三角予測ユニットに対応する第2動きベクトルは、Mv2と表される。コーディングブロック(1701)を例とすると、デコーダ側では、コーディングブロック(1701)内の第1及び第2三角予測ユニットに対応する2つのマージインデックスが、受け取られたシンタックス情報に基づいて決定され得る。マージ候補リストがコーディングブロック(1701)について構成された後、Mv1及びMv2は、2つのマージインデックスに従って決定され得る。
【0113】
実施形態において、コーディングブロック(1701)は、4×4サンプルのサイズを有する複数の正方形に分割される。各4×4正方形に対応して、片予測動きベクトル(例えば、Mv1若しくはMv2)又は(双予測動き情報を形成する)2つの動きベクトルのどちらか一方が、各々のコーディングブロック(1701)内の4×4正方形の位置に応じて保存される。図17の例で示されるように、Mv1又はMv2のどちらか一方である片予測動きベクトルは、コーディングブロック(1701)を分割する対角辺(1703)に重ならない各4×4正方形に保存される。対照的に、2つの動きベクトルは、各々のコーディングブロック(1701)を分割する対角辺(1703)と重なる各4×4正方形に保存される。コーディングブロック(1702)については、動きベクトルは、コーディングブロック(1701)と同様の方法で編成及び保存され得る。
【0114】
各々の対角辺に重なる4×4正方形に保存された双予測動きベクトルの対は、実施形態において、次の規則に従ってMv1及びMv2から導出され得る:
(1)Mv1及びMv2が(例えば、異なる参照ピクチャリストL0又はL1と関連付けられた)異なる方向に向かう動きベクトルである場合に、Mv1及びMv2は、双予測動きベクトルの対を形成するよう組み合わされる。
(2)Mv1及びMv2の両方が(例えば、同じ参照ピクチャリストL0(又はL1)と関連付けられた)同じ方向に向かう場合に:
(2.a)Mv2の参照ピクチャが参照ピクチャリストL1(又はL0)内のピクチャと同じであるとき、Mv2は、参照ピクチャリストL1(又はL0)内のその参照ピクチャと関連付けられるよう変更される。Mv1と、関連付けられる参照ピクチャリストを変更されたMv2とが、双予測動きベクトルの対を形成するよう組み合わされる。
(2.b)Mv1の参照ピクチャが参照ピクチャリストL1(又はL0)内のピクチャと同じであるとき、Mv1は、参照ピクチャリストL1(又はL0)内のその参照ピクチャと関連付けられるよう変更される。関連付けられる参照ピクチャリストを変更されたMv1と、Mv1とが、双予測動きベクトルの対を形成するよう組み合わされる。
(2.c)上記以外の場合に、Mv1のみが各々の4×4正方形について保存される。
【0115】
図18A~18Dは、例となる規則の組に従って双予測動きベクトルの対の導出の例を示す。2つの参照ピクチャリストが図18A~18Dで使用される。第1参照ピクチャリストL0は、POC0及びPOC8のピクチャ・オーダー・カウント(POC)番号を付され、0及び1の参照ピクチャインデックス(refIdx)を夫々有する参照ピクチャを含む。一方、第2参照ピクチャリストL1は、POC8及びPOC16のPOC番号を付され、0及び1の参照ピクチャインデックスを夫々有する参照ピクチャを含む。
【0116】
図18Aは、規則(1)に対応する。図18Aに示されるように、Mv1は、L0内のPOC0と関連付けられ、よって、参照ピクチャインデックスrefIdx=0を有し、一方、Mv2は、L1内のPOC8と関連付けられ、よって、参照ピクチャインデックスrefIdx=0を有する。Mv1及びMv2は異なる参照ピクチャリストと関連付けられるということで、Mv1及びMv2は一緒に、双方向動きベクトルの対として使用される。
【0117】
図18Bは、規則(2.a)に対応する。図示されるように、Mv1及びMv2は、同じ参照ピクチャリストL0と関連付けられる。Mv2は、L1の番号でもあるPOC8を指し示す。従って、Mv2は、L1内のPOC8と関連付けられるよう変更され、各々の参照インデックスの値は、1から0に変更される。
【0118】
図18C及び図18Dは、規則(2.b)及び(2.c)に対応する。
【0119】
[3.5 三角予測パラメータを通知するシンタックス要素]
いくつかの実施形態において、三角予測ユニットモードは、スキップ又はマージモードでCUに適用される。CUのブロックサイズは、8×8よりも小さくできない。スキップ又はマージモードでコーディングされたCUについては、三角予測ユニットモードが現在のCUに対して適用されているか否かを示すために、CUレベルフラグが通知される。実施形態において、三角予測ユニットモードがCUに適用される場合に、CUを2つの三角予測ユニットに分割する方向を示すテーブルインデックス及び2つの三角予測ユニットの動きベクトル(又は各々のマージインデックス)が通知される。テーブルインデックスは0から39の範囲に及ぶ。ルックアップテーブルは、テーブルインデックスから分割方向及び動きベクトルを導出するために使用される。
【0120】
[3.6 変更された三角予測通知]
上述されたように、3つのパラメータ、すなわち、分割方向、第1三角予測ユニットに対応する第1マージインデックス(TPMインデックス)、及び第2三角予測ユニットに対応する第2マージインデックス(TPMインデックス)は、TPMがコーディングブロックに適用される場合に生成される。説明されているように、いくつかの例では、3つの三角予測パラメータが、テーブルインデックスを通知することによってエンコーダ側からデコーダ側へ通知される。ルックアップテーブル(例えば、図15の例におけるルックアップテーブル(1500))に基づいて、3つの三角予測パラメータは、デコーダ側で受け取られたテーブルインデックスを用いて導出され得る。しかし、追加のメモリ空間が、デコーダでルックアップテーブルを記憶するために必要とされる。これは、デコーダのいくつかの実施において負担になる可能性がある。例えば、追加のメモリは、デコーダのコスト及び電力消費の増大をもたらす可能性がある。
【0121】
上記の問題を解決するために、いくつかの実施形態において、テーブルインデックスを通知し、テーブルインデックスを解釈するためにルックアップテーブルに依存することに代えて、3つのシンタックス要素がエンコーダ側からデコーダ側へ通知される。3つの三角予測パラメータ(分割方向及び2つのマージ又はTPMインデックス)は、ルックアップテーブルを使用せずに、3つのシンタックス要素に基づいてデコーダ側で導出又は決定され得る。3つのシンタックス要素は、実施形態において各々のコーディングブロックについて如何なる順序でも通知可能である。
【0122】
実施形態において、3つのシンタックス要素は、分割方向シンタックス要素、第1インデックスシンタックス要素、及び第2インデックスシンタックス要素を含む。分割方向シンタックス要素は、分割方向パラメータを決定するために使用され得る。第1及び第2インデックスシンタックス要素は、第1及び第2マージ又はTPMインデックスのパラメータを決定するために使用され得る。
【0123】
分割方向シンタックス要素については、実施形態において、分割方向シンタックス要素は、分割方向が左下角から右下角へ又は右上角から左下角へであるかどうかを示すために0又は1の値をとる。例えば、0又は1のどちらか一方が、左下角から右下角への分割方向を表すために使用され得る。
【0124】
第1及び第2インデックスシンタックス要素については、実施形態において、第1インデックスシンタックス要素は、第1マージインデックスのパラメータの値を有するよう構成され、一方、第2インデックスシンタックス要素は、第2マージインデックスが第1マージインデックスよりも小さいときには、第2マージインデックスの値を有し、第2マージインデックスが第1マージインデックスよりも大きいときには、第2マージインデックスから1をマイナスした値を有するよう構成される(第2及び第1マージインデックスは、上述されたように異なる値をとることを前提とされるので、第2及び第1マージインデックスは互いに等しくならない。)。
【0125】
例として、実施形態において、マージ候補リストは、5つのマージ候補の長さを有する。従って、第1インデックスシンタックス要素は、0,1,2,3,又は4の値をとり、一方、第2インデックスシンタックス要素は、0,1,2,又は3の値をとる。例えば、第1マージインデックスパラメータが2の値を有し、第2マージインデックスパラメータが4の値を有する場合に、第1及び第2マージインデックスを通知するために、第1及び第2インデックスシンタックス要素は夫々、2及び3の値を有することになる。
【0126】
実施形態において、コーディングブロックは、現在のピクチャ内の参照ポイントに関して(xCb,yCb)の座標を有する位置に位置する。ここで、xCb及びyCbは夫々、現在のコーディングブロックの水平及び垂直座標を表す。いくつかの実施形態において、xCb及びyCbは、4×4粒度により水平及び垂直座標とアライメントされる。従って、分割方向シンタックス要素は、split_dir[xCb][yCb]と表される。第1インデックスシンタックス要素は、merge_triangle_idx0[xCb][yCb]と表される。第2インデックスシンタックス要素は、merge_triangle_idx1[xCb][yCb]と表される。
【0127】
3つの三角予測パラメータ(分割方向並びに第1及び第2マージインデックス)を通知するために使用される3つのシンタックス要素(分割方向シンタックス要素、第1及び第2インデックスシンタックス要素)は、様々な実施形態において、異なるバイナライゼーション方法によりコーディングされ得る。
【0128】
1つの実施形態において、第1インデックスシンタックス要素は、トランケーテッド・ユーナリー・コーディングによりコーディングされる。他の実施形態では、第1インデックスシンタックス要素は、トランケーテッド・バイナリ・コーディングによりコーディングされる。一例において、第1インデックスシンタックス要素の最大有効値は4に等しい。他の実施形態では、プレフィックス及び固定長バイナライゼーションの組み合わせが、第1インデックスシンタックス要素をコーディングするために使用される。一例において、プレフィックスビンは最初に、第1インデックスシンタックス要素が0であるかどうかを示すために通知される。第1インデックスシンタックス要素が0でない場合に、更なるビンが、第1インデックスシンタックス要素の実際の値を示すよう固定長でコーディングされる。最大有効値が4に等しい場合のトランケーテッド・ユーナリー・コーディング、トランケーテッド・バイナリ・コーディング、並びにプレフィックス及び固定長コーディングの例は、表1に示される。
【表1】
【0129】
1つの実施形態において、第2インデックスシンタックス要素は、トランケーテッド・ユーナリー・コーディングによりコーディングされる。他の実施形態では、第2インデックスシンタックス要素は、トランケーテッド・バイナリ・コーディング(2ビットによる固定長コーディング)によりコーディングされる。最大有効値が3に等しい場合のトランケーテッド・ユーナリー・コーディング及びトランケーテッド・バイナリ・コーディングの例は、表2に示される。
【表2】
【0130】
様々な実施形態において、異なるコンテキストモデルが、第1及び第2インデックスシンタックス要素の2値化された値における各ビンに対して適用されてよい。
【0131】
実施形態において、m及びnによって表される2つの整数値が、三角予測における2つの三角予測ユニットのためのマージ候補インデックスを示すために使用される。例えば、三角マージ候補リストが5つのマージ候補の長さを有する例では、m及びnは、m及びnが等しくならないことを除いては、如何なる組み合わせでも0から4までの値であることができる。インデックスシンタックス要素merge_triangle_idx0[xCb][yCb]及びmerge_triangle_idx1[xCb][yCb]は、3つのシンタックス要素が通知される前にエンコーダ側でm、n、及びシンタックス要素split_dir[xCb][yCb]から導出され得る。
【0132】
デコーダ側では、様々なマッピング方法が、2つの三角パーティションによって使用される各々のマージ候補を取得するように、3つの通知されたシンタックス要素split_dir[xCb][yCb]、merge_triangle_idx0[xCb][yCb]、及びmerge_triangle_idx1[xCb][yCb]を実際の三角マージ候補インデックスにマッピングするために用いられ得る。
【0133】
[III.TPM候補の柔軟な最大許容数]
上述されたように、いくつかの例において、TPM候補リストは、固定数の5つのTPM候補を含むことができる。しかし、特定の状況下で、TPMの最大許容数は、複雑性とコーディング効率との間のより良いトレードオフを達成するために柔軟であることが望まれる。従って、いくつかの実施形態において、TPMによりブロックの組をコーディングするためのTPM候補の最大許容数は、ビットストリームにおいて通知され得る。例えば、TPM候補の最大許容数は、シーケンスパラメータセット(Sequence Parameter Set,SPS)、ピクチャパラメータセット(Picture Parameter Set,PPS)、スライスヘッダ、タイルヘッダ、タイルグループヘッダ、などにおいて通知され得る。例えば、TPM候補の最大許容数は、MaxNumTriangleMergeCandによって表される。
【0134】
実施形態において、TPM候補の最大許容数は、0から、マージモードにおけるマージ候補の最大許容数までの整数であるよう制限される。マージモードは、セクションIIの「1 マージモード」で説明されたマージモード、又はセクションIIの「2 拡張マージ予測モード」で説明された拡張マージ予測モードであることができる。例えば、実施形態において、TPM候補の最大許容数を制限する根拠を与えるマージモードは、次のタイプのマージ候補、(i)空間隣接コーディングユニット(CU)からの空間動きベクトル予測子(MVP)、(ii)同一位置のCUからの時間MVP、(iii)履歴バッファからの履歴ベースのMVP、又は(iv)ペアワイズ平均MVP、を含むことができる。
【0135】
様々な実施形態において、マージモード候補の最大許容数は異なることができる。実施形態において、マージモード候補の最大許容数は5又は6であることができる。実施形態において、マージモード候補の最大許容数によってTPM候補の最大許容数を制限することは、TPM及びマージモードの両方をコーディングツールオプションとして用いるエンコーダ又はデコーダの実施複雑性を減らすことができる。
【0136】
実施形態において、TPM候補の最大許容数は直接通知される。例えば、TPM候補の最大許容数に等しい値を有するシンタックス要素が通知され得る。
【0137】
実施形態において、コーディング効率を改善するために、TPM候補の最大許容数と予め定義された値、例えば、5又は6との間の差が通知される。一例において、予め定義された値は、マージモード候補の最大許容数に等しいことができる。
【0138】
表3は、実施形態に従うシンタックス伝送の例を示す。表3には1から11までの番号を付された複数行の記述が存在する。行1は、タイルグループヘッダのシンタックス伝送の開始を示す。tile_group_type及びfive_minus_max_num_triangle_merge_candによって表される2つのシンタックス要素の伝送は、行3から行8に記述されている。行3で、tile_group_typeのシンタックス要素が最初に伝送され得る。行7から8で、tile_group_typeがBに等しく(タイルグループが双予測タイプであることを示す。)、かつ、sps_triangle_enable_flagが真である(TPMが、現在のタイルグループを規定するSPSにおいて有効にされることを示す。)場合に、シンタックス要素five_minus_max_num_triangle_merge_candが伝送される。
【表3】
【0139】
シンタックス要素five_minus_max_num_triangle_merge_candは、予め定義された値(例えば、5)と、タイルグループでサポートされているTPM候補の最大許容数との間の差を表す。TPM候補の最大許容数は、

MaxNumTriangleMergeCand=5-five_minus_max_num_triangle_merge_cand

に従って決定され得る。
【0140】
実施形態において、マージモード候補の最大許容数は最初に通知される。次いで、マージモード候補の最大許容数とTPM候補の最大許容数との間の差が通知される。このシナリオでは、マージモード候補の通知された最大許容数は、通知される差を計算することにおいて、予め定義された値(例えば、5又は6)に取って代わる。
【0141】
図19は、本開示の実施形態に従うプロセス(1900)を概説するフローチャートを示す。プロセス(1900)は、再構成中のブロックについて予測ブロックを生成するために、TPMでコーディングされたブロックの再構成において使用され得る。様々な実施形態において、プロセス(1900)は、端末デバイス(210)、(220)、(230)及び(240)内の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(710)の機能を実行する処理回路などのような処理回路によって実行される。いくつかの実施形態において、プロセス(1900)は、ソフトウェア命令で実装され、よって、処理回路がソフトウェア命令を実行する場合に、処理回路はプロセス(1900)を実行する。プロセスは(S1901)から始まり、(S1910)へ進む。
【0142】
(S1910)で、TPMのTPM候補の最大許容数を示すシンタックス要素が受け取られ得る。シンタックス要素は、SPS、PPS、スライスヘッダ、タイルヘッダ、タイルグループヘッダ、などにおいて通知され得る。従って、TPM候補の最大許容数は、SPS、PPS、スライスヘッダ、タイルヘッダ、又はタイルグループヘッダによって夫々制御されるコーディングブロックの組に適用され得る。
【0143】
シンタックス要素は、TPM候補の最大許容数の値、又はTPM候補の最大許容数と予め定義された値との間の差の値を表すことができる。例えば、予め定義された値は、現在のブロックに適用可能なマージモードにおけるマージ候補の最大許容数に等しいことができる。
【0144】
(S1920)で、現在のブロックのTPM候補リストが、TPM候補の最大許容数に従って構成され得る。例えば、TPM候補の通知された最大許容数は、0から、現在のブロックに適用可能なマージモードにおけるマージ候補の最大許容数までの整数であるよう定義され得る。従って、(S1920)で決定されたTPM候補の最大許容数が2以上である場合に、現在のブロックのTPM候補リストは構成され得る。構成されたTPM候補リスト上のTPM候補の数は、(S1910)で受け取られたシンタックス要素によって示されるTPM候補の最大許容数に等しいことができる。プロセス(1900)は(S1999)へ進み、(S1999)で終了する。
【0145】
[IV.三角予測モード候補リストとしてのマージモード候補リストの再利用]
[1 TPM-マージモードリスト]
セクションIIの「3.1 片予測候補リスト構成」で図14を参照して説明されたように、TPM候補リストは、マージモード候補リストのそれとは異なる方法で構成され得る。TPM候補リスト及びマージモード候補リストを別々に構成することは、本開示の態様に従ういくつかのシナリオで実施複雑性及び計算複雑性の両方を増大させる可能性がある。従って、いくつかの実施形態において、マージモード候補リストはTPM候補リストとして再利用される。あるいは、言い換えると、TPM候補リストは、マージモード候補リストと同じ方法で構成され得る。そのようなTPM候補リストに基づいて、TPMにおける2つの三角パーティションの動きベクトル予測子(MVP)は、ビットストリームにおいて通知された三角予測パラメータのグループに基づいてTPM候補リストから識別され得る。そのようなTPM候補リストは、本開示ではTPM-マージモードリストと呼ばれる。
【0146】
例えば、セクションIIの「3 三角予測モード(TPM)」で説明された3つの三角予測パラメータと同様に、本セクションでの三角予測パラメータのグループは、分割方向と、第1三角予測ユニットに対応する第1候補インデックスと、第2三角予測ユニットに対応する第2候補インデックスとを含むことができる。しかし、第1又は第2候補インデックスは、セクションIIの「3 三角予測モード(TPM)」と同様に、片予測候補リストへのインデックスの代わりに、TPM-マージモードリスト上のマージ候補へのインデックスであることができる。
【0147】
例えば、エンコーダ側で、TPM-マージモードリスト上の参照ピクチャリストL0又はL1と関連付けられた動きベクトルは、2つの三角予測ユニットのMVPとして夫々使用される第1及び第2動きベクトルを決定するよう評価され得る。2つの決定された動きベクトルの夫々は、各々のマージ候補に属し、参照ピクチャリストと関連付けられ得る。各々のマージ候補のマージインデックスは、第1及び第2TPMインデックスとして使用され、ビットストリームにおいて通知され得る。例えば、第1及び第2動きベクトルは、TPM-マージモードリスト上の同じマージ候補に属することができ、あるいは、様々な実施形態において同じマージ候補に属することを禁止され得る。
【0148】
その上、2つの決定された動きベクトルの夫々と関連付けられた参照ピクチャリストの情報もビットストリームにおいて通知され得る。例えば、listIdxによって表される参照ピクチャリストインデックスは、第1動きベクトルと関連付けられた参照ピクチャリストを示すよう通知され得る。
【0149】
デコーダ側では、同じTPM-マージモードリストが構成され得る。通知された2つのTPMインデックスと、関連した参照ピクチャリストの情報とに基づいて、2つの動きベクトルはTPM-マージモードリストから識別され得る。
【0150】
様々な実施形態において、TPM-マージモードリストは、ブロックに基づく片予測又は双予測マージ候補を含み得るHEVCに似たインターモードのマージリストであることができる。例えば、HEVCに似たインターモードの例には、セクションIIの「1 マージモード」又はセクションIIの「2 拡張マージ予測モード」で説明されたマージモードが含まれ得る。マージモード又は拡張マージ予測モードのマージ候補リストを構成するための、説明されているプロセスは、TPM-マージモードリストを構成するために使用可能である。
【0151】
[2 TPM-マージモードリスト上の片予測候補の処理]
いくつかの実施形態において、任意のステップが、TPM-マージモードリスト内の片予測候補を処理するために実行され得る。例えば、そのような片予測候補は夫々、1つの参照ピクチャリストL0又はL1と関連付けられた1つの動きベクトルを含む。実施形態において、片予測候補は、TPM-マージモードリストから取り除かれる。実施形態において、片予測候補は、双予測方向に変換又は拡張される。
【0152】
例において、TPM-マージモードリストは、0以上4以下の対応する参照ピクチャインデックスを有する次の候補、[Uni,Bi,Uni,Bi,Uni]を含む。“Uni”及び“Bi”は夫々、片予測候補及び双予測候補を示す。通知されるべきインデックスが0,1,2,3,又は4の範囲内にある場合に、0,2,4は片予測子であってTPMによって使用不可能であるから、非効率的である。TPM-マージモードリスト上の候補が片予測か双予測かの確認の追加のステップが必要である。
【0153】
よって、効率を改善するために、片予測候補を除くこと又は拡張することの2つのアプローチが、異なる例において採用され得る。片予測MVが除かれる場合に、TPM-マージモードリストは、インデックスが0又は1である[Bi,Bi]になる。片予測候補を許さないことによって、インデックスのとり得る値は減るので、インデックスをコーディングするために必要なビットは少なくなる。片予測候補が双予測に拡張又は変換される場合に、TPM-マージモードリストは[Bi,Bi,Bi,Bi,Bi]になる。インデックス範囲は依然として0から4まであるが、全ての候補が双予測であるから、TPMによって使用可能である。より多くの候補を使用することによって、コーディング効率は潜在的に向上し得る。
【0154】
様々な実施形態において、次の方法が、片予測候補を双予測公報に変換するために使用され得る。片予測候補において、参照ピクチャリストlistX(例えば、Xは0又は1である。)の動きベクトルMV1が利用不可能であり、参照ピクチャリスト[1-listX]の動きベクトルMV2が利用可能であり、参照ピクチャインデックスがrefIdxによって表されると仮定して、MV1は、次の方法で導出され得る:
(i)listXについて、refIdx=0及びゼロ動きベクトルがMV1に対してセットされる。
(ii)listXについて、refIdx=0及び、時間距離に基づきMV2から調整された動きベクトルが、MV1に対してセットされる。
(iii)listXについて、refIdx=0及び、MV2からの反映された動きベクトルが、MV1に対してセットされる。例えば、ミラーリング動作において、MV2の水平及び垂直変位にマイナス1を乗じて、MV1の水平及び垂直変位を求める。
(iv)最大許容refIdx及び、時間距離に基づきMV2から調整された動きベクトルが、MV1に対してセットされる。
【0155】
実施形態において、片予測候補は、TPM-マージモードリストから除かれない。代わりに、片予測候補が三角予測のために選択され得ないように、適合制約が実装される。
【0156】
[3 参照ピクチャインデックス:listIdx]
実施形態において、各々の三角パーティションのためにどの動きベクトルが使用されるかを識別するために、listIdxによって表され、参照ピクチャリストを示すフラグ(又はインデックス)が、分割方向、第1候補インデックス(cand_idx0によって表される。)、及び第2候補インデックス(cand-idx1)に加えて通知され得る。第1候補インデックス(cand_idx0)及び第2候補インデックス(cand_idx1)は、TPM-マージモードリストへのインデックスであることができる。分割方向、第1候補インデックス(cand_idx0によって表される。)、及び第2候補インデックス(cand-idx1)を含む3つのパラメータは、セクションIIの「3.2 ルックアップテーブル及びテーブルインデックス」で説明された三角パーティションインデックス(例えば、0から39までの範囲に及ぶ。)により、又はセクションIIの「3.6 変更された三角予測通知」で説明された別々のシンタックス要素により通知され得る。
【0157】
一例において、コーディングブロックの第1及び第2三角パーティションに対応する動きベクトル予測子MV1及びMV2は、次の方法で、通知されたパラメータに従って識別され得る:

MV1=triangleMargeList[cand_idx0][listIdx] (1)

MV2=triangleMargeList[cand_idx1][1-listIdx] (2)

ここで、triangleMargeListは、TPM-マージモードリストを表す。
【0158】
式(1)に従って、listIdxの参照ピクチャリストと関連付けられ、cand_idx0のインデックスを有するマージ候補に属する動きベクトルは、MV1として識別され得る。同様に、式(2)に従って、[1-listIdx]の参照ピクチャリストと関連付けられ、cand_idx1のインデックスを有するマージ候補に属する動きベクトルは、MV2として識別され得る。
【0159】
実施形態において、listIdxのシンタックス要素は通知されない。三角パーティションに対応する動きベクトルMV1及びMV2は、2つの参照ピクチャリストのうちのデフォルトの1つと夫々関連付けられる。例えば、動きベクトルは、

MV1=triangleMargeList[cand_idx0][0]
(3)

MV2=triangleMargeList[cand_idx1][1]
(4)

に従って識別され得る。式(3)に示されるように、第1動きベクトルは、デフォルトで参照ピクチャリストL0からであり、一方、式(4)では、第2動きベクトルは、デフォルトで参照ピクチャリストL1からである。
【0160】
シンタックス要素listIdxは、いくつかの実施形態において、バイパスコーディング又はコンテキストコーディングされ得る。シンタックス要素listIdxがコンテキストコーディングされる場合に、1つのコンテキストが使用され得る。代替的に、現在のブロックの空間隣接ブロックに基づく2又は3つのコンテキストが使用され得る。
【0161】
いくつかの実施形態において、シンタックス要素listIdxは、ビットストリームにおいて条件付きで通知され得る。例えば、NoBackwardPredFlagが、前の参照ピクチャに基づく予測が禁止されることを示すよう真である場合に、シンタックス要素listIdxは通知されず、一例では0と推測される。そのようなシナリオでは、2つの参照ピクチャリストは互いに同じであってよいことが知られる。
【0162】
[4 三角パーティションの動きベクトル情報の保存]
現在のブロックの2つの三角パーティションに対応し、TPM-マージモードリストから取得される動き情報(例えば、動きベクトル及び関連した参照ピクチャインデックス、並びに参照ピクチャリスト)は、非三角予測ブロックと類似した方法で保存され得る。例えば、動き情報は、最小ブロックレベル(例えば、4×4ピクセルの最小許容サイズを有するブロック)で保存され得、その後にコーディングされるブロック(空間又は時間動きベクトル予測を含む。)についての動きベクトル予測、デブロッキング動作、などに使用される。一例において、TPM-マージモードリストから取得された現在のブロックの動き情報は、セクションIIの「3.4 動き場における動きベクトル保存」で説明された方法と同様に保存され得る。
【0163】
[5 TPM-マージモードリストに基づくTPMプロセスの例]
図20は、本開示の実施形態に従うTPMプロセス(2000)を概説するフローチャートを示す。プロセス(2000)は、再構成中のブロックについて予測ブロックを生成するために、TPMでコーディングされたブロックの再構成において使用され得る。様々な実施形態において、プロセス(2000)は、端末デバイス(210)、(220)、(230)及び(240)内の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(710)の機能を実行する処理回路などのような処理回路によって実行される。いくつかの実施形態において、プロセス(2000)は、ソフトウェア命令で実装され、よって、処理回路がソフトウェア命令を実行する場合に、処理回路はプロセス(2000)を実行する。プロセスは(S2001)から始まり、(S2010)へ進む。
【0164】
(S2010)で、TPMにより現在のブロックを処理するための参照ピクチャリストを示すシンタックス要素(例えば、listIdx)が受け取られ得る。他の例では、参照ピクチャリストを示すシンタックス要素は通知されない。
【0165】
(S2012)で、第1候補インデックス(例えば、cand_idx0)及び第2候補インデックス(cand_idx1)を示す1つ以上のシンタックス要素が受け取られる。
【0166】
(S2014)で、マージ候補リスト(例えば、TPM-マージモードリスト)が、セクションII.1で説明されたマージモード及びセクションII.2で説明された拡張予測モードなどの通常のマージモードにおけるマージ候補リストを構成する方法と同様に構成され得る。マージ候補リスト上のマージ候補は、片予測又は双予測され得、2つの参照ピクチャリストL0及びL1と関連付けられた1つ又は2つの動きベクトルを含む。
【0167】
(S2016)で、マージ候補リスト上の1つ以上の片予測候補が処理され得る。例えば、片予測候補は、候補リストから取り除かれ得るか、あるいは、双予測候補に変換され得る。他の例では、片予測候補はマージ候補リスト上で保持されてもよいが、現在のブロックの三角予測のための動きベクトルを供給するために選択されない。
【0168】
(S2018)で、第1及び第2候補インデックス並びに指示された参照ピクチャリストに基づいて、第1及び第2動きベクトルが、(S2014)で構成されたマージ候補リストから決定され得る。例えば、第1及び第2候補インデックスは、第1及び第2動きベクトルが選択される2つのマージ候補を決定するために使用され得る。次いで、第1又は第2動きベクトルのうちの一方が選択される参照ピクチャリストL0又はL1を特定する指示された参照ピクチャリストに基づいて、第1及び第2動きベクトルは決定され得る。
【0169】
参照ピクチャリストを示すシンタックス要素がいくつかの例において通知されない場合に、2つの参照ピクチャリストの1つが、デフォルトで2つの三角パーティションの1つと関連付けられ得る。
【0170】
(S2020)で、予測ブロックが、第1及び第2動きベクトルに基づいて現在のブロックに対して構成され得る。例えば、第1及び第2動きベクトルは、2つのコーディングブロックを決定するために使用され、その2つのコーディングブロックからのサンプルは、予測ブロックを形成するよう結合される。例えば、重み付きブレンディングプロセスが、セクションIIの「3.3 三角パーティションエッジに沿った適応ブレンディング」で説明されたように実行されてよい。その後に、マージモードが有効にされる場合に、現在のブロックの再構成されたブロックを取得するよう、残差信号が予測ブロックと結合され得る。プロセス(2000)は(S2099)へ進み、(S2099)で終了する。
【0171】
[V.三角予測インデックスの通知及び導出]
説明されているように、(xCb,yCb)の座標を有する位置にあるコーディングブロックについて、分割方向シンタックス要素split_dir[xCb][yCb]、第1インデックスシンタックス要素merge_triangle_idx0[xCb][yCb]及び第2インデックスシンタックス要素merge_triangle_idx1[xCb][yCb]が、三角予測パラメータ(分割方向並びに第1及び第2マージインデックス)を通知するために用いられ得る。分割方向シンタックス要素は、2つの分割方向のうちの1つを示してよい。その上、m及びnによって表される2つの整数値が、三角予測モードにおける2つの三角予測ユニットのマージ候補インデックスを示すために使用され得る。
【0172】
例において、merge_triangle_idx[xCb][yCb]によって表されるテーブルインデックスは、任意に、m、n、及びsplit_dir[xCb][yCb]から導出され得る。例えば、merge_triangle_idx[xCb][yCb]は、merge_triangle_idx[xCb][yCb]=(m*4+n-(n>m?1:0))*2+split_dir[xCb][yCb]として導出され得る。3つのシンタックス要素split_dir[xCb][yCb]、merge_triangle_idx0[xCb][yCb]、及びmerge_triangle_idx1[xCb][yCb]が三角予測パラメータを通知するために用いられる場合に、テーブルインデックスmerge_triangle_idx[xCb][yCb]の導出は実行されてもされなくてもよい。
【0173】
本開示の態様に従って、2つのマージインデックスm及びnを2つのインデックスシンタックス要素merge_triangle_idx0[xCb][yCb]及びmerge_triangle_idx1[xCb][yCb]にマッピングする多数の方法が存在し得る。2つのインデックスシンタックス要素の異なる確率分布及びコーディング方法により、異なるマッピング方法又はプロセスは、異なるコーディング効率をもたらし得る。これに応じて、より良いマッピング方法は、コーディング効率を改善するように適応的に選択されてよい。
【0174】
実施形態において、merge_triangle_idx0[xCb][yCb]、merge_triangle_idx1[xCb][yCb]とm、nとの間の固定マッピングが使用されてよい。例えば、エンコーダ側では、2つの分割方向のどちらがコーディングブロックを分割するために使用されるかを問わず、第1マージインデックスmは、第1インデックスシンタックス要素merge_triangle_idx0[xCb][yCb]にセットされ、第2マージインデックスnは、第2インデックスシンタックス要素merge_triangle_idx1[xCb][yCb]にセットされる。デコーダでは、マージインデックスm及びnは、次の擬似コードによって表される第1プロセスに従って導出され得る:

m=merge_triangle_idx0[xCb][yCb]
n=merge_triangle_idx1[xCb][yCb]
n=n+(n>=m?1:0)
【0175】
上記の擬似コードでは、第1マージインデックスmは、第1インデックスシンタックス要素merge_triangle_idx0[xCb][yCb]の値を有するよう決定される。第2マージインデックスnは、第2インデックスシンタックス要素が第1インデックスシンタックス要素よりも小さい値を有する場合には、第2インデックスシンタックス要素merge_triangle_idx1[xCb][yCb]の値を有するよう決定される。第2マージインデックスnは、第2インデックスシンタックス要素が第1インデックスシンタックス要素以上の値を有する場合には、第2インデックスシンタックス要素の値に1をプラスした値を有するよう決定される。
【0176】
同様に、他の例では、固定マッピング方法が使用されるが、第1及び第2マージインデックスは、第1及び第2インデックスシンタックス要素へのマッピングのために交換される。例えば、エンコーダでは、2つの分割方向の両方について、nはmerge_triangle_idx0[xCb][yCb]にセットされ、mはmerge_triangle_idx1[xCb][yCb]にセットされる。従って、マージインデックスm及びnは、デコーダでは次の擬似コードによって表される第2プロセスに従って導出され得る:

n=merge_triangle_idx0[xCb][yCb]
m=merge_triangle_idx1[xCb][yCb]
m=m+(m>=n?1:0)
【0177】
他の実施形態では、merge_triangle_idx0[xCb][yCb]、merge_triangle_idx1[xCb][yCb]とm、nとの間の適応マッピングが使用されてもよい。
【0178】
第1の例において、エンコーダでは、split_dir[xCb][yCb]が0に等しい場合に、mはmerge_triangle_idx0[xCb][yCb]にセットされ、nはmerge_triangle_idx1[xCb][yCb]にセットされる。そうでない場合には、nがmerge_triangle_idx0[xCb][yCb]にセットされ、mがmerge_triangle_idx1[xCb][yCb]にセットされる。従って、m及びnは、デコーダでは次の擬似コードによって表される第3プロセスに従って導出され得る:

if(split_dir[xCb][yCb]==0)

m=merge_triangle_idx0[xCb][yCb]
n=merge_triangle_idx1[xCb][yCb]
n=n+(n>=m?1:0)

else

n=merge_triangle_idx0[xCb][yCb]
m=merge_triangle_idx1[xCb][yCb]
m=m+(m>=n?1:0)
【0179】
第2の例において、エンコーダでは、split_dir[xCb][yCb]が1に等しい場合に、mはmerge_triangle_idx0[xCb][yCb]にセットされ、nはmerge_triangle_idx1[xCb][yCb]にセットされる。そうでない場合には、mがmerge_triangle_idx1[xCb][yCb]にセットされ、mがmerge_triangle_idx0[xCb][yCb]にセットされる。従って、m及びnは、デコーダでは次の擬似コードによって表される第4プロセスに従って導出され得る:

if(split_dir[xCb][yCb]==1)

m=merge_triangle_idx0[xCb][yCb]
n=merge_triangle_idx1[xCb][yCb]
n=n+(n>=m?1:0)

else

n=merge_triangle_idx0[xCb][yCb]
m=merge_triangle_idx1[xCb][yCb]
m=m+(m>=n?1:0)
【0180】
実施形態において、上記の固定又は適応マッピング方法のうちの1つはデフォルトで用いられ、マッピング方法の通知はビットストリームにおいて伝送されない。従って、デコーダは、デフォルトで、各々の擬似コードによって表される上記の4つのプロセスのうちの1つに基づいて、マージインデックスm及びnを決定することができる。
【0181】
対照的に、他の例では、2つのマッピング方法のどちらが使用されるか、又は4つのプロセスのどれが第1及び第2インデックスシンタックス要素をデコーディングするために使用されるべきかを通知するために、シンタックス要素が使用され得る。
【0182】
図21は、本開示の実施形態に従うTPMプロセス(2100)を概説するフローチャートを示す。プロセス(2100)は、再構成中のブロックについて予測ブロックを生成するために、TPMでコーディングされたブロックの再構成において使用され得る。様々な実施形態において、プロセス(2000)は、端末デバイス(210)、(220)、(230)及び(240)内の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(710)の機能を実行する処理回路などのような処理回路によって実行される。いくつかの実施形態において、プロセス(2100)は、ソフトウェア命令で実装され、よって、処理回路がソフトウェア命令を実行する場合に、処理回路はプロセス(2100)を実行する。プロセスは(S2101)から始まり、(S2110)へ進む。
【0183】
(S2110)で、分割方向シンタックス要素、第1インデックスシンタックス要素、及び第2インデックスシンタックス要素が受け取られ得る。分割方向シンタックス要素は、第1又は第2分割方向を示すことができる。これらのシンタックス要素は、ピクチャのコーディンブルオックと関連付けられ得る。コーディングブロックは、三角予測モードによりコーディングされ、第1又は第2分割方向に従って第1三角予測ユニット及び第2三角予測ユニットに分割され得る。
【0184】
(S2120)で、第1及び第2分割方向の両方について、第1及び第2三角予測ユニットについて構成されたマージ候補リストへの第1マージインデックス及び第2マージインデックスが決定され得る。決定は、2つのインデックスシンタックス要素に第1及び第2マージインデックスをマッピングする固定マッピング方法に基づくプロセスを用いることができる。例えば、第1及び第2マージインデックスのうちの第1の1つのマージインデックスは、第1インデックスシンタックス要素の値を有するよう決定され得る。第1及び第2マージインデックスのうちの第2の1つのマージインデックスは、第2インデックスシンタックス要素が第1インデックスシンタックス要素よりも小さい値を有する場合には、第2インデックスシンタックス要素の値を有するよう決定され得る。第1及び第2マージインデックスのうちの第2の1つのマージインデックスは、第2インデックスシンタックス要素が第1インデックスシンタックス要素以上の値を有する場合には、第2インデックスシンタックス要素の値に1をプラスした値を有するよう決定され得る。
【0185】
(S2130)で、テーブルインデックスが、決定された第1及び第2マージインデックス並びに第1又は第2分割方向に基づいて、例えば、上記の式merge_triangle_idx0[xCb][yCb]=(m*4+n-(n>m?1:0)*2)+split_dir[xCb][yCb]に基づいて、導出され得る。
【0186】
(S2140)で、コーディングブロックは、第1又は第2分割方向、決定された第1マージインデックス、及び決定された第2マージインデックスに従って再構成され得る。代替的に、テーブルインデックスが導出される場合に、コーディングブロックは、(S2130)で導出されたテーブルインデックスに基づいて再構成され得る。プロセス(2100)は(S2199)へ進み、(S2199)で終了する。
【0187】
[VI.コンピュータシステム]
上記の技術は、コンピュータ読み出し可能な命令を使用しかつ1つ以上のコンピュータ可読媒体に物理的に記憶されているコンピュータソフトウェアとして実装可能である。例えば、図22は、開示されている対象の特定の実施形態を実装することに適したコンピュータシステム(2200)を示す。
【0188】
コンピュータソフトウェアは、1つ以上の中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって直接に又は解釈、マイクロコード実行などを通じて実行され得る命令を含むコードを生成するようにアセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
【0189】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット(Internet of Things)のためのデバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
【0190】
コンピュータシステム(2200)に関して図22に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる制限も示唆することを意図しない。構成要素の構成は、コンピュータシステム(2200)の例となる実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存又は要件も有するものとして解釈されるべきではない。
【0191】
コンピュータシステム(2200)は、特定のヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグロープ動作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、二次元映像、立体視映像を含む三次元映像)など、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
【0192】
入力ヒューマンインターフェースデバイスは、キーボード(2201)、マウス(2202)、トラックパッド(2203)、タッチスクリーン(2210)、データグローブ(図示せず。)、ジョイスティック(2205)、マイク(2206)、スキャナ(2207)、カメラ(2208)のうちの1つ以上(夫々表されているもののうちの1つのみ)を含んでよい。
【0193】
コンピュータシステム(2200)は、特定のヒューマンインターフェース出力デバイスも含んでよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2210)、データグローブ(図示せず。)、又はジョイスティック(2205)による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)、音声出力デバイス(例えば、スピーカ(2209)、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により二次元視覚出力又は三次元よりも多い次元の出力を出力可能なスクリーン(2210))、及びプリンタ(図示せず。)を含んでよい。
【0194】
コンピュータシステム(2200)は、人がアクセス可能な記憶デバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体(2221)を伴ったCD/DVD ROM/RW(2220)、サムドライブ(2222)、リムーバブルハードディスク又はソリッドステートドライブ(2223)、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
【0195】
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
【0196】
コンピュータシステム(2200)は、1つ以上の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用デジタルポート又はペリフェラルバス(2249)(例えば、コンピュータシステム(2200)のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(2200)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(2200)は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
【0197】
上記のヒューマンインターフェースデバイス、人がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(2200)のコア(2240)へ取り付けられ得る。
【0198】
コア(2240)は、1つ以上の中央演算処理装置(CPU)(2241)、グラフィクス処理ユニット(GPU)(2242)、フィールドプログラマブルゲートアレイ(FPGA)(2243)の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(2244)、などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2245)、ランダムアクセスメモリ(RAM)(2246)、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など(2247)とともに、システムバス(2248)を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス(2248)は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス(2248)へ直接に又はペリフェラルバス(2249)を通じて、周辺機器が取り付けられ得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。
【0199】
CPU(2241)、GPU(2242)、FPGA(2243)、及びアクセラレータ(2244)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM(2245)又はRAM(2246)に記憶され得る。一時データもRAM(2246)に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置(2247)に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU(2241)、GPU(2242)、大容量記憶装置(2247)、ROM(2245)、RAM(2246)などと密接に関連し得る。
【0200】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
【0201】
例として、限定としてではなく、アーキテクチャ(2200)、具体的にはコア(2240)を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(2247)又はROM(2245)などの、非一時的な性質であるコア(2240)の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2240)によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア(2240)、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM(2246)に記憶されているデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードウェアにより実現されるか又は別なふうに具現されるロジックの結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
【0202】
付録A:頭字語
JEM:joint exploration model
VVC:versatile video coding
BMS:benchmark set
MV:Motion Vector
HEVC:High Efficiency Video Coding
SEI:Supplementary Enhancement Information
VUI:Video Usability Information
GOP:Group(s) of Pictures
TU:Transform Unit(s)
PU:Prediction Unit(s)
CTU:Coding Tree Unit(s)
CTB:Coding Tree Block(s)
PB:Prediction Block(s)
HRD:Hypothetical Reference Decoder
SNR:Signal Noise Ratio
CPU:Central Processing Unit(s)
GPU:Graphics Processing Unit(s)
CRT:Cathode Ray Tube
LCD:Liquid-Crystal Display
OLED:Organic Light-Emitting Diode
CD:Compact Disc
DVD:Digital Video Disc
ROM:Read-Only Memory
RAM:Random Access Memory
ASIC:Application-Specific Integrated Circuit
PLD:Programmable Logic Device
LAN:Local Area Network
GSM:Global System for Mobile communications
LTE:Long Term Evolution
CANBus:Controller Area Network Bus
USB:Universal Serial Bus
PCT:Peripheral Component Interconnect
FPGA:Field Programmable Gate Areas
SSD:Solid-State Drive
IC:Integrated Circuit
CU:Coding Unit
HMVP:History-based MVP
MVP:Motion Vector Predictor
TMVP:Temporal MVP
TPM:Triangular Prediction Mode
VTM:Versatile Test Model
【0203】
本開示は、いくつかの例となる実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。
【0204】
[参照による援用]
本開示は、「Merge List Construction in Triangular Prediction」と題されて2019年1月24日付けで出願された米国特許仮出願第62/796522号及び「Derivation of Triangular Prediction Indices」と題されて2018年12月31日付けで出願された米国特許仮出願第62/787029号の優先権の利益を主張して「Method and Apparatus for Video Coding」と題されて2019年8月7日付けで出願された米国特許出願第16/534026号の優先権の利益を主張するものである。これらの先願の全開示は、その全文を参照により本願に援用される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18A
図18B
図18C
図18D
図19
図20
図21
図22