(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-01
(45)【発行日】2023-09-11
(54)【発明の名称】履歴ベースの動きベクトル予測子の改善
(51)【国際特許分類】
H04N 19/52 20140101AFI20230904BHJP
H04N 19/105 20140101ALI20230904BHJP
H04N 19/159 20140101ALI20230904BHJP
H04N 19/176 20140101ALI20230904BHJP
【FI】
H04N19/52
H04N19/105
H04N19/159
H04N19/176
(21)【出願番号】P 2021518081
(86)(22)【出願日】2019-10-07
(86)【国際出願番号】 US2019055004
(87)【国際公開番号】W WO2020076705
(87)【国際公開日】2020-04-16
【審査請求日】2022-09-07
(32)【優先日】2018-10-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-10-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ハン、ユ
(72)【発明者】
【氏名】チェン、ウェイ-ジュン
(72)【発明者】
【氏名】ファン、ハン
(72)【発明者】
【氏名】ハング、チャオ-ション
(72)【発明者】
【氏名】カルチェビチ、マルタ
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2022-501912(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、前記方法は、
ビデオデータの1つ以上のブロックを取得することと、
履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することと、ここにおいて、第1のインデックス値に関連付けられた前記HMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられた前記HMVPテーブルの第2のエントリは、第2のHMVP候補を備え、前記第1のインデックス値は、前記第2のインデックス値よりも低い、
高度動きベクトル予測(AMVP)候補リストに対して、
正順で前記HMVPテーブルから1つ以上のHMVP候補
の第1のセットを選択することと、ここにおいて、前記第
1のHMVP候補は、前記
正順に従って前記第
2のHMVP候補の前に選択される、
前記AMVP候補リストに前
記1つ以上のHMVP候補
の選択された第1のセットを追加することと、前記AMVP候補リストは、前記1つ以上のブロックに対してAMVPを実行するために使用される、
マージ候補リストに対して、逆順で前記HMVPテーブルから1つ以上のHMVP候補の第2のセットを選択することと、ここにおいて、前記第2のHMVP候補は、前記逆順に従って前記第1のHMVP候補の前に選択される、
前記マージ候補リストに前記1つ以上のHMVP候補の選択された第2のセットを追加することと、前記マージ候補リストは、前記1つ以上のブロックについてのマージ予測を実行するために使用される、
を備える、方法。
【請求項2】
前記第1のHMVP候補は、第1の時間に復号された動き情報を備え、前記第2のHMVP候補は、第2の時間に復号された動き情報を備え、前記第1の時間は、前記第2の時間よりも時間的に
先である、請求項1に記載の方法。
【請求項3】
前記
正順で前記HMVPテーブルから前記1つ以上のHMVP候補
の第1のセットを前記選択することは、選択中に前記HMVPテーブルのエントリのサブサンプリングを実行することなく、連続するインデックス値に関連付けられた前記HMVPテーブルの連続するエントリから前記1つ以上のHMVP候補
の第1のセットを選択することを備える、請求項1に記載の方法。
【請求項4】
前記
逆順で前記HMVPテーブルから前記1つ以上のHMVP候補
の第2のセットを前記選択することは、サブサンプリングレートを使用する前記HMVPテーブルのエントリのサブサンプリングを備え、前記サブサンプリングレートに基づく分離は、連続するHMVP候補が選択される前記HMVPテーブルのエントリに関連付けられたインデックス値間で維持される、請求項
1に記載の方法。
【請求項5】
前記マージ候補リストに前
記1つ以上のHMVP候補
の選択された第2のセットを追加することは、前記マージ候補リストに時間的動きベクトル予測子(TMVP)候補を追加した後に、前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することを備える、請求項
1に記載の方法。
【請求項6】
前記2つ以上のHMVP候補は、双方向予測の両方の予測方向についての動き情報を備える、請求項1に記載の方法。
【請求項7】
少なくとも2つのHMVPテーブルが、双予測を伴うAMVPモードで使用される、請求項1に記載の方法。
【請求項8】
第1のHMVPテーブルが、第1の参照ピクチャリストに対して使用され、第2のHMVPテーブルが、第2の参照ピクチャリストに対して使用される、請求項
7に記載の方法。
【請求項9】
前記AMVPは、イントラブロックコピーAMVP予測モードを含む、請求項1に記載の方法。
【請求項10】
前記方法は、復号器によって実行され、前記ビデオデータは、符号化されたビデオビットストリームから取得される
、または、
前記方法は、符号化器によって実行される、請求項1に記載の方法。
【請求項11】
ビデオデータを処理するための装置であって、前記装置は、
メモリと、
プロセッサと、
を備え、前記プロセッサは、
ビデオデータの1つ以上のブロックを取得することと、
履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することと、ここにおいて、第1のインデックス値に関連付けられた前記HMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられた前記HMVPテーブルの第2のエントリは、第2のHMVP候補を備え、前記第1のインデックス値は、前記第2のインデックス値よりも低い、
高度動きベクトル予測(AMVP)候補リストに対して、
正順で前記HMVPテーブルから1つ以上のHMVP候補
の第1のセットを選択することと、ここにおいて、前記第
1のHMVP候補は、前記
正順に従って前記第
2のHMVP候補の前に選択される、
前記AMVP候補リストに前
記1つ以上のHMVP候補
の選択された第1のセットを追加することと、前記AMVP候補リストは、前記1つ以上のブロックに対してAMVPを実行するために使用される、
マージ候補リストに対して、逆順で前記HMVPテーブルから1つ以上のHMVP候補の第2のセットを選択することと、ここにおいて、前記第2のHMVP候補は、前記逆順に従って前記第1のHMVP候補の前に選択される、
前記マージ候補リストに前記1つ以上のHMVP候補の選択された第2のセットを追加することと、前記マージ候補リストは、前記1つ以上のブロックについてのマージ予測を実行するために使用される、
を行うように構成される、装置。
【請求項12】
前記プロセッサは、請求項2~9のいずれか一項に記載の方法を実行するように構成される、請求項11に記載の装置。
【請求項13】
前記装置は、復号器を備え、前記ビデオデータは、符号化されたビデオビットストリームから取得される
、または、
前記装置は、符号化器を備える、請求項
11に記載の装置。
【請求項14】
命令を記憶した、非一時的コンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
ビデオデータの1つ以上のブロックを取得することと、
履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することと、ここにおいて、第1のインデックス値に関連付けられた前記HMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられた前記HMVPテーブルの第2のエントリは、第2のHMVP候補を備え、前記第1のインデックス値は、前記第2のインデックス値よりも低い、
高度動きベクトル予測(AMVP)候補リストに対して、
正順で前記HMVPテーブルから1つ以上のHMVP候補
の第1のセットを選択することと、ここにおいて、前記第
1のHMVP候補は、前記
正順に従って前記第
2のHMVP候補の前に選択される、
前記AMVP候補リストに前
記1つ以上のHMVP候補
の選択された第1のセットを追加することと、前記AMVP候補リストは、前記1つ以上のブロックに対してAMVPを実行するために使用される、
マージ候補リストに対して、逆順で前記HMVPテーブルから1つ以上のHMVP候補の第2のセットを選択することと、ここにおいて、前記第2のHMVP候補は、前記逆順に従って前記第1のHMVP候補の前に選択される、
前記マージ候補リストに前記1つ以上のHMVP候補の選択された第2のセットを追加することと、前記マージ候補リストは、前記1つ以上のブロックについてのマージ予測を実行するために使用される、
を行わせる、非一時的コンピュータ可読媒体。
【請求項15】
1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、請求項2~9のいずれか一項に記載の方法を実行させる命令を記憶した、請求項14に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本願は、ビデオコーディング及び圧縮に関する。例えば、履歴ベースの動きベクトル予測子の改善を提供するシステム及び方法が説明される。
【背景技術】
【0002】
[0002]多くのデバイス及びシステムは、ビデオデータが消費のために処理及び出力されることを可能にする。デジタルビデオデータは、消費者及びビデオプロバイダの要求を満たすために大量のデータを含む。例えば、ビデオデータの消費者は、高い忠実度、解像度、フレームレート、及び同様のものを有する最高品質のビデオを望んでいる。結果として、これらの要求を満たすために必要とされる大量のビデオデータは、ビデオデータを処理及び記憶する通信ネットワーク及びデバイスに負担をかける。
【0003】
[0003]様々なビデオコーディング技法が、ビデオデータを圧縮するために使用され得る。ビデオコーディングは、1つ以上のビデオコーディング規格に従って実行される。例えば、ビデオコーディング規格は、HEVC(High-Efficiency Video Coding)、AVC(Advanced Video Coding)、MPEG-2 Part 2コーディング(MPEGは、Moving Picture Experts Groupを表す)、VP9、AOMedia(Alliance of Open Media)AV1(Video 1)、又は同様のものを含む。ビデオコーディングは、一般に、ビデオ画像又はシーケンス中に存在する冗長性を利用する予測方法(例えば、インター予測、イントラ予測、又は同様のもの)を利用する。ビデオコーディング技法の重要な目的は、ビデオ品質に対する劣化を回避又は最小化しながら、ビデオデータをより低いビットレートを使用する形態に圧縮することである。ますます発展するビデオサービスが利用可能になるにつれて、より良いコーディング効率を有する符号化技術が必要とされている。
【発明の概要】
【0004】
[0004]ビデオコーデックにおける予測技法を改善するための技法及びシステムが本明細書に説明される。例えば、本明細書に説明される技法は、復号器側動きベクトル精緻化(decoder-side motion vector refinement)を含むことができる。いくつかの例では、本技法は、HEVC(High Efficiency Video Coding)、及び/又はVVC(Versatile Video Coding)などの既存のビデオコーデックのうちのいずれにも適用され得るか、又は任意の将来のビデオコーディング規格における効率的なコーディングツールであり得る。いくつかの例では、開示される技法は、イントラブロックコピー(IBC)予測において利用されることができる。
【0005】
[0005]いくつかの例では、履歴ベースの動きベクトル予測が実行されることができ、ここで、1つ以上のブロックについての1つ以上の動きベクトル予測子が、以前に復号された動きベクトルのリストから取得又は予測されることができる。いくつかの例では、履歴ベースの動きベクトル予測子(HMVP:History-based Motion Vector Predictor)テーブルは、マージモード、高度動きベクトル予測(AMVP:Advanced Motion Vector Prediction)モード、及び/又は他のインター予測モードなど、異なるタイプのインター予測モードで使用され得るHMVP候補を含むことができる。いくつかのケースでは、異なるインター予測モードは、HMVPテーブルから候補を選択するために同じ又は異なる方法を使用することができる。いくつかの例では、HMVPテーブルは、IBCモードで使用され得るHMVP候補を含むことができる。
【0006】
[0006]いくつかの例では、異なる予測モードについてのHMVPテーブルからのHMVP候補の選択は、HMVP候補に関連付けられた選択順序に基づくことができる。HMVP候補は、先入れ先出し(FIFO:first-in-first-out)方式でHMVPテーブル中に挿入され得、ここで、より古い又はより最近でない(older or less recent)HMVP候補は、より新しい又はより最近の(younger or more recent)HMVP候補の前にHMVPテーブル中に挿入され得る。いくつかの例では、マージ候補リストは、より最近の(more recent)HMVP候補がより最近でない(less recent)HMVP候補の前に選択される正順でHMVPテーブルから1つ以上のHMVP候補を選択することによって、マージモードについてのHMVPテーブルから構築されることができる。いくつかの例では、HMVPテーブル中の最も最近の(the most recent)HMVP候補は、より最近でない(less recent)HMVP候補よりも、AMVPモードを使用して予測されている現在のブロックとのより少ない相関を有し得る。いくつかの例では、AMVPモード予測のためにより最近でないHMVP候補を使用することは、コーディング効率につながることができる。それ故に、いくつかの例では、AMVP候補リストは、より最近でないHMVP候補がより最近のHMVP候補の前に選択される逆順でHMVPテーブルから1つ以上のHMVP候補を選択することによって、AMVPモードで構築されることができる。
【0007】
[0007]少なくとも一例によると、ビデオデータを処理する方法が提供される。方法は、ビデオデータの1つ以上のブロックを取得することを含む。方法は、履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入すること(populating)を更に含み、ここにおいて、第1のインデックス値に関連付けられたHMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられたHMVPテーブルの第2のエントリは、第2のHMVP候補を備え、第1のインデックス値は、インデックス順序では第2のインデックス値よりも低い。方法は、高度動きベクトル予測(AMVP)候補リストに対して、逆順でHMVPテーブルから1つ以上のHMVP候補を選択することを更に含み、ここにおいて、第2のHMVP候補は、逆順に従って第1のHMVP候補の前に選択される。方法は、AMVP候補リストに、選択された1つ以上のHMVP候補を追加することを更に含み、AMVP候補リストは、1つ以上のブロックに対してAMVPを実行するために使用される。
【0008】
[0008]別の例では、ビデオデータを処理するための装置が提供される。装置は、メモリと、回路中にインプリメントされるプロセッサとを含む。装置は、ビデオデータの1つ以上のブロックを取得するように構成され、取得することができる。装置は、履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入するように構成され、投入することができ、ここにおいて、第1のインデックス値に関連付けられたHMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられたHMVPテーブルの第2のエントリは、第2のHMVP候補を備え、第1のインデックス値は、第2のインデックス値よりも低い。
装置は、高度動きベクトル予測(AMVP)候補リストに対して、逆順でHMVPテーブルから1つ以上のHMVP候補を選択するように構成され、選択することができ、ここにおいて、第2のHMVP候補は、逆順に従って第1のHMVP候補の前に選択される。装置は、AMVP候補リストに、選択された1つ以上のHMVP候補を追加するように構成され、追加することができ、AMVP候補リストは、1つ以上のブロックに対してAMVPを実行するために使用される。
【0009】
[0009]別の例では、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、ビデオデータの1つ以上のブロックを取得することと、 履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することと、ここにおいて、第1のインデックス値に関連付けられたHMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられたHMVPテーブルの第2のエントリは、第2のHMVP候補を備え、第1のインデックス値は、第2のインデックス値よりも低い、 高度動きベクトル予測(AMVP)候補リストに対して、逆順でHMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、第2のHMVP候補は、逆順に従って第1のHMVP候補の前に選択される、 AMVP候補リストに、選択された1つ以上のHMVP候補を追加することと、AMVP候補リストは、1つ以上のブロックに対してAMVPを実行するために使用される、 を行わせる命令を記憶した非一時的コンピュータ可読媒体が提供される。
【0010】
[0010]別の例では、ビデオデータを処理するための装置が提供される。装置は、ビデオデータの1つ以上のブロックを取得するための手段と、 履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入するための手段と、ここにおいて、第1のインデックス値に関連付けられたHMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられたHMVPテーブルの第2のエントリは、第2のHMVP候補を備え、第1のインデックス値は、第2のインデックス値よりも低い、 高度動きベクトル予測(AMVP)候補リストに対して、逆順でHMVPテーブルから1つ以上のHMVP候補を選択するための手段と、ここにおいて、第2のHMVP候補は、逆順に従って第1のHMVP候補の前に選択される、 AMVP候補リストに、選択された1つ以上のHMVP候補を追加するための手段と、AMVP候補リストは、1つ以上のブロックに対してAMVPを実行するために使用される、 を含む。
【0011】
[0011]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、第1のHMVP候補は、第1の時間に復号された動き情報を備え、第2のHMVP候補は、第2の時間に復号された動き情報を備え、第1の時間は、第2の時間よりも時間的に後である。
【0012】
[0012]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、逆順でHMVPテーブルから1つ以上のHMVP候補を選択することは、選択中にHMVPテーブルのエントリのサブサンプリングを実行することなく、連続するインデックス値に関連付けられたHMVPテーブルの連続するエントリから1つ以上のHMVP候補を選択することを備える。
【0013】
[0013]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様は、マージ候補リストに対して、正順でHMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、第1のHMVP候補は、正順に従って第2のHMVP候補の前に選択される、 マージ候補リストに選択された1つ以上のHMVP候補を追加することと、マージ候補リストは、1つ以上のブロックについてのマージ予測を実行するために使用される、 を更に含む。
【0014】
[0014]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、正順でHMVPテーブルから1つ以上のHMVP候補を選択することは、サブサンプリングレートを使用するHMVPテーブルのエントリのサブサンプリングを備え、サブサンプリングレートに基づく分離は、連続するHMVP候補が選択されるHMVPテーブルのエントリに関連付けられたインデックス値間で維持される。
【0015】
[0015]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、マージ候補リストに、選択された1つ以上のHMVP候補を追加することは、マージ候補リストに、時間的動きベクトル予測子(TMVP)候補を追加した後に、マージ候補リストに、選択された1つ以上のHMVP候補を追加することを備える。
【0016】
[0016]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様は、近隣ブロックのサイズが最小サイズ閾値以上であると決定することと、近隣ブロックのサイズが最小サイズ閾値以上であることに基づいて、近隣ブロックのアフィン動きベクトルを現在のブロックのアフィン動きベクトルとして使用することとを更に含む。
【0017】
[0017]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、2つ以上のHMVP候補は、双方向予測の両方の予測方向についての動き情報を備える。
【0018】
[0018]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、少なくとも2つのHMVPテーブルが、双予測(bi-prediction)を伴う(with)AMVPモードで使用される。
【0019】
[0019]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、第1のHMVPテーブルが、第1の参照ピクチャリストに対して使用され、第2のHMVPテーブルが、第2の参照ピクチャリストに対して使用される。
【0020】
[0020]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、AMVPは、イントラブロックコピーAMVP予測モードを含む。
【0021】
[0021]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様では、近隣ブロックのアフィン動きベクトルは、1つ以上のスケーリング変数と1つ以上の位置変数とを含む。
【0022】
[0022]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様は、符号化器を含む。
【0023】
[0023]上述された方法、装置、及びコンピュータ可読媒体のいくつかの態様は、復号器を含み、ここで、ビデオデータは、符号化されたビデオビットストリームから取得される。
【0024】
[0024]この発明の概要は、特許請求される主題の基幹的又は本質的な特徴を識別することを意図されず、特許請求される主題の範囲を決定するために単独で使用されることも意図されない。主題は、本特許の明細書全体の適切な部分、任意又は全ての図面、及び各請求項を参照することによって理解されるべきである。
【0025】
[0025]前述は、他の特徴及び実施形態と共に、後続の明細書、特許請求の範囲、及び添付の図面を参照するとより明らかとなるであろう。
【0026】
[0026]様々なインプリメンテーションの例が、次の図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【0027】
【
図1】[0027]いくつかの例に従った、符号化デバイス及び復号デバイスの例を例示するブロック図である。
【
図2A】[0028]いくつかの例に従った、マージモードについての実例的な空間的近隣動きベクトル候補を例示する概念図である。
【
図2B】[0029]いくつかの例に従った、高度動きベクトル予測(AMVP)モードについての実例的な空間的近隣動きベクトル候補を例示する概念図である。
【
図3A】[0030]いくつかの例に従った、実例的な時間的動きベクトル予測子(TMVP:temporal motion vector predictor)候補を例示する概念図である。
【
図3B】[0031]いくつかの例に従った、動きベクトルスケーリングの例を例示する概念図である。
【
図4】[0032]いくつかの例に従った、実例的な履歴ベースの動きベクトル予測子(HMVP)テーブルを例示する図である。
【
図5】[0033]いくつかの例に従った、非隣接空間的マージ候補をフェッチする例を例示する図である。
【
図6A】[0034]いくつかの例に従った、履歴ベースの動きベクトル予測子(HMVP)テーブルからマージ候補リストを作成する例を例示する図である。
【
図6B】いくつかの例に従った、履歴ベースの動きベクトル予測子(HMVP)テーブルからマージ候補リストを作成する例を例示する図である。
【
図7A】[0035]いくつかの例に従った、履歴ベースの動きベクトル予測子(HMVP)テーブルから高度動きベクトル予測(AMVP)候補リストを作成する例を例示する図である。
【
図7B】いくつかの例に従った、履歴ベースの動きベクトル予測子(HMVP)テーブルから高度動きベクトル予測(AMVP)候補リストを作成する例を例示する図である。
【
図8】[0036]いくつかの実施形態に従った、ビデオデータを処理するプロセスの別の例を例示するフローチャートである。
【
図9】[0037]いくつかの例に従った、実例的な符号化デバイスを例示するブロック図である。
【
図10】[0038]いくつかの例に従った、実例的なビデオ復号デバイスを例示するブロック図である。
【発明を実施するための形態】
【0028】
[0039]本開示のある特定の態様及び実施形態が以下に提供される。当業者に明らかであるように、これらの態様及び実施形態のうちのいくつかは、独立して適用され得、それらのうちのいくつかは、組み合わせて適用され得る。以下の説明では、説明を目的として、特定の詳細が、本明細書の実施形態の完全な理解を提供するために記載される。しかしながら、様々な実施形態がこれらの特定の詳細なしに実施され得ることは明らかであろう。図面及び説明は、制限的であることを意図されない。
【0029】
[0040]次に続く説明は、例証的な実施形態のみを提供し、本開示の範囲、適用可能性、又は構成を限定することを意図されない。むしろ、例証的な実施形態の次に続く説明は、例証的な実施形態をインプリメントすることを可能にする説明を当業者に提供するであろう。添付された特許請求の範囲に記載されているような本願の趣旨及び範囲から逸脱することなく、要素の機能及び配置において様々な変更がなされ得ることが理解されるべきである。
【0030】
[0041]ビデオコーディングデバイスは、ビデオデータを効率的に符号化及び復号するために、ビデオ圧縮技法をインプリメントする。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために、空間的予測(例えば、イントラフレーム予測又はイントラ予測)、時間的予測(例えば、インターフレーム予測又はインター予測)、インターレイヤ予測(ビデオデータの異なるレイヤにわたる)、及び/又は他の予測技法を含む、異なる予測モードを適用することを含み得る。ビデオ符号化器は、元のビデオシーケンスの各ピクチャを、ビデオブロック又はコーディングユニット(以下でより詳細に説明される)と呼ばれる矩形領域に区分することができる。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【0031】
[0042]ビデオブロックは、1つ以上の方法で、より小さいブロック(例えば、サブブロック)の1つ以上のグループに分割され得る。ビデオブロックは、コーディングツリーブロック、予測ブロック、変換ブロック、及び/又は他の適したブロックを含むことができる。一般に「ブロック」への言及は、別段の指定がない限り、そのようなビデオブロック(例えば、当業者によって理解されるように、コーディングツリーブロック、コーディングブロック、予測ブロック、変換ブロック、又は他の適切なブロック若しくはサブブロック)を指し得る。更に、これらのブロックの各々はまた、本明細書では「ユニット」(例えば、コーディングツリーユニット(CTU)、コーディングユニット、予測ユニット(PU)、変換ユニット(TU)、又は同様のもの)と交換可能に呼ばれ得る。いくつかのケースでは、ユニットは、ビットストリーム中で符号化されるコーディング論理ユニットを示し得、ブロックは、プロセスがターゲットとするビデオフレームバッファの一部分を示し得る。
【0032】
[0043]インター予測モードの場合、ビデオ符号化器は、参照フレーム又は参照ピクチャと呼ばれる、別の時間的ロケーション中にロケートされるフレーム(又はピクチャ)中で符号化されているブロックに類似するブロックを探索することができる。ビデオ符号化器は、符号化されることになるブロックからのある特定の空間的変位に探索を制限し得る。ベストマッチは、水平変位成分及び垂直変位成分を含む2次元(2D)動きベクトルを使用してロケートされ得る。イントラ予測モードの場合、ビデオ符号化器は、同じピクチャ内の以前に符号化された近隣ブロックからのデータに基づいて、空間的予測技法を使用して予測されたブロックを形成し得る。
【0033】
[0044]ビデオ符号化器は、予測誤差を決定し得る。例えば、予測誤差は、符号化されているブロック中のピクセル値と予測されたブロック中のピクセル値との間の差分として決定されることができる。予測誤差はまた、残差と呼ばれることができる。ビデオ符号化器はまた、変換係数を生成するために、変換コーディングを使用して(例えば、離散コサイン変換(DCT)の形態、離散サイン変換(DST)の形態、又は他の適した変換を使用して)予測誤差に変換を適用し得る。変換後、ビデオ符号化器は、変換係数を量子化し得る。量子化された変換係数及び動きベクトルは、シンタックス要素を使用して表され得、制御情報と共に、ビデオシーケンスのコーディングされた表現を形成し得る。いくつかの事例では、ビデオ符号化器は、シンタックス要素をエントロピーコーディングし得、それによって、それらの表現に必要とされるビット数を更に低減し得る。
【0034】
[0045]ビデオ復号器は、上述されたシンタックス要素及び制御情報を使用して、現在のフレームを復号するための予測データ(例えば、予測ブロック)を構築し得る。例えば、ビデオ復号器は、予測されたブロック及び圧縮された予測誤差を追加し得る。ビデオ復号器は、量子化された係数を使用して変換基底関数(transform basus function)を重み付けすることによって、圧縮された予測誤差を決定し得る。再構築されたフレームと元のフレームとの間の差分は、再構築誤差と呼ばれる。
【0035】
[0046]以下により詳細に説明されるように、履歴ベースの動きベクトル予測子の改善を提供するためのシステム、装置、方法(プロセスとも呼ばれる)、及びコンピュータ可読媒体が、本明細書に説明される。本明細書に説明される技法は、ビデオがブロック毎に再構築される、様々なブロックベースのビデオコーディング技法のうちの1つ以上に適用されることができる。例えば、本明細書に説明される技法は、既存のビデオコーデック(例えば、HEVC(High Efficiency Video Coding)、AVC(Advanced Video Coding)、又は他の適した既存のビデオコーデック)のうちのいずれにも適用されることができ、並びに/又は、例えば、VVC(Versatile Video Coding)、JEM(Joint Exploration Model)、VP9、AV1、及び/又は開発中若しくは開発予定の他のビデオコーディング規格など、開発中の任意のビデオコーディング規格及び/又は将来のビデオコーディング規格のための効率的なコーディングツールであることができる。
【0036】
[0047]
図1は、符号化デバイス104及び復号デバイス112を含むシステム100の例を例示するブロック図である。符号化デバイス104は、ソースデバイスの一部であり得、復号デバイス112は、受信デバイス(クライアントデバイスとも呼ばれる)の一部であり得る。ソースデバイス及び/又は受信デバイスは、モバイル若しくは固定電話ハンドセット(例えば、スマートフォン、セルラ電話、又は同様のもの)、デスクトップコンピュータ、ラップトップ若しくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、インターネットプロトコル(IP)カメラ、1つ以上のサーバデバイスを含むサーバシステム(例えば、ビデオストリーミングサーバシステム、又は他の適したサーバシステム)中のサーバデバイス、ヘッドマウントディスプレイ(HMD)、ヘッドアップディスプレイ(HUD)、スマートグラス(例えば、仮想現実(VR)グラス、拡張現実(AR)グラス、又は他のスマートグラス)、又は任意の他の適した電子デバイスなどの電子デバイスを含み得る。
【0037】
[0048]システム100のコンポーネントは、本明細書に説明される様々な動作を実行するために、1つ以上のプログラマブル電子回路(例えば、マイクロプロセッサ、グラフィックス処理ユニット(GPU)、デジタルシグナルプロセッサ(DSP)、中央処理ユニット(CPU)、及び/又は他の適した電子回路)を含むことができる電子回路又は他の電子ハードウェアを含むことができ、及び/若しくはそれを使用してインプリメントされることができ、並びに/又はコンピュータソフトウェア、ファームウェア、又はそれらの任意の組み合わせを含むことができ、及び/若しくはそれを使用してインプリメントされることができる。
【0038】
[0049]システム100は、ある特定のコンポーネントを含むように示されているが、当業者は、システム100が
図1に示されるコンポーネントよりも多い又は少ないコンポーネントを含むことができることを理解するであろう。例えば、システム100はまた、いくつかの事例では、記憶装置108及び記憶装置118以外の1つ以上のメモリデバイス(例えば、1つ以上のランダムアクセスメモリ(RAM)コンポーネント、読取専用メモリ(ROM)コンポーネント、キャッシュメモリコンポーネント、バッファコンポーネント、データベースコンポーネント、及び/又は他のメモリデバイス)、1つ以上のメモリデバイスと通信状態にある及び/若しくは電気的に接続された1つ以上の処理デバイス(例えば、1つ以上のCPU、GPU、及び/又は他の処理デバイス)、ワイヤレス通信を実行するための1つ以上のワイヤレスインターフェース(例えば、各ワイヤレスインターフェースについて1つ以上のトランシーバ及びベースバンドプロセッサを含む)、1つ以上のハードワイヤード接続を通して通信を実行するための1つ以上のワイヤードインターフェース(例えば、ユニバーサルシリアルバス(USB)入力、ライトニングコネクタ、及び/又は他のワイヤードインターフェースなどのシリアルインターフェース)、並びに/又は
図1に示されていない他のコンポーネントを含むことができる。
【0039】
[0050]本明細書に説明されるコーディング技法は、(例えば、インターネットを通した)ストリーミングビデオ送信、テレビ放送又は送信、データ記憶媒体上での記憶のためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、又は他のアプリケーションを含む、様々なマルチメディアアプリケーションにおけるビデオコーディングに適用可能である。いくつかの例では、システム100は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーミング、及び/又はビデオ電話通信などのアプリケーションをサポートするために、1方向(one-way)又は2方向(two-way)ビデオ送信をサポートすることができる。
【0040】
[0051]符号化デバイス104(又は符号化器)は、符号化されたビデオビットストリームを生成するために、ビデオコーディング規格又はプロトコルを使用してビデオデータを符号化するために使用されることができる。ビデオコーディング規格の例は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262又はISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、そのSVC(Scalable Video Coding)及びMVC(Multiview Video Coding)拡張を含む(ISO/IEC MPEG-4 AVCとしても知られる)ITU-T H.264、及びHEVC(High Efficiency Video Coding)又はITU-T H.265を含む。レンジ及びスクリーンコンテンツコーディング拡張、3次元(3D)ビデオコーディング拡張(3D-HEVC)、マルチビュー拡張(MV-HEVC)、及びスケーラブル拡張(SHVC)を含む、マルチレイヤビデオコーディングを扱うHEVCへの様々な拡張が存在する。HEVC及びその拡張は、ITU-T VCEG(Video Coding Experts Group)及びISO/IEC MPEG(Motion Picture Experts Group)のJCT-VC(Joint Collaboration Team on Video Coding)並びにJCT-3V(Joint Collaboration Team on 3D Video Coding Extension Development)によって開発されてきた。
【0041】
[0052]MPEG及びITU-T VCEGはまた、VVC(Versatile Video Coding)という名称の次世代のビデオコーディング規格のための新しいコーディングツールを調査及び開発するために、JVET(Joint Exploration Video Team)を結成した。参照ソフトウェアは、VTM(VVC Test Model)と呼ばれる。VVCの目的は、既存のHEVC規格を上回る圧縮性能の有意な改善を提供し、より高品質のビデオサービス及び新興のアプリケーション(例えば、とりわけ、360°全方向没入型マルチメディア、ハイダイナミックレンジ(HDR)ビデオなど)の展開を補助することである。VP9及びAOMedia(Alliance of Open Media)AV1(Video 1)は、本明細書に説明される技法が適用されることができる他のビデオコーディング規格である。
【0042】
[0053]本明細書に説明される多くの実施形態は、VTM、VVC、HEVC、AVC、及び/又はそれらの拡張などのビデオコーデックを使用して実行されることができる。しかしながら、本明細書に説明される技法及びシステムはまた、MPEG、JPEG(若しくは静止画像のための他のコーディング規格)、VP9、AV1、それらの拡張、又は既に利用可能であるか若しくはまだ利用可能でないか若しくは開発されていない他の適したコーディング規格など、他のコーディング規格に適用可能であり得る。それ故に、本明細書に説明される技法及びシステムは、特定のビデオコーディング規格を参照して説明され得るが、当業者は、その説明がその特定の規格にしか適用されないと解釈されるべきでないことを理解するであろう。
【0043】
[0054]
図1を参照すると、ビデオソース102は、符号化デバイス104にビデオデータを提供し得る。ビデオソース102は、ソースデバイスの一部であり得るか、又はソースデバイス以外のデバイスの一部であり得る。ビデオソース102は、ビデオキャプチャデバイス(例えば、ビデオカメラ、カメラ電話、ビデオ電話、又は同様のもの)、記憶されたビデオを包含するビデオアーカイブ、ビデオデータを提供するビデオサーバ若しくはコンテンツプロバイダ、ビデオサーバ若しくはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組み合わせ、又は任意の他の適したビデオソースを含み得る。
【0044】
[0055]ビデオソース102からのビデオデータは、1つ以上の入力ピクチャを含み得る。ピクチャはまた、「フレーム」と呼ばれ得る。ピクチャ又はフレームは、いくつかのケースでは、ビデオの一部である静止画像である。いくつかの例では、ビデオソース102からのデータは、ビデオの一部ではない静止画像であることができる。HEVC、VVC、及び他のビデオコーディング仕様では、ビデオシーケンスは、一連のピクチャを含むことができる。ピクチャは、SL、SCb、及びSCrと表される3つのサンプル配列を含み得る。SLは、ルーマサンプルの2次元配列であり、SCbは、Cbクロミナンスサンプルの2次元配列であり、SCrは、Crクロミナンスサンプルの2次元配列である。クロミナンスサンプルはまた、本明細書では「クロマ」サンプルと呼ばれ得る。他の事例では、ピクチャは、モノクロームであり得、ルーマサンプルの配列のみを含み得る。
【0045】
[0056]符号化デバイス104の符号化器エンジン106(又は符号化器)は、符号化されたビデオビットストリームを生成するためにビデオデータを符号化する。いくつかの例では、符号化されたビデオビットストリーム(又は、「ビデオビットストリーム」若しくは「ビットストリーム」)は、一連の1つ以上のコーディングされたビデオシーケンスである。コーディングされたビデオシーケンス(CVS)は、ベースレイヤ中のランダムアクセスポイントピクチャを有し、且つある特定の特性を有するアクセスユニット(AU)から開始し、ベースレイヤ中のランダムアクセスポイントピクチャを有し、且つある特定の特性を有する次のAUまでの、及びそれを含まない一連のAUを含む。例えば、CVSを開始するランダムアクセスポイントピクチャのある特定の特性は、1に等しいRASLフラグ(例えば、NoRaslOutputFlag)を含み得る。そうでない場合は、(0に等しいRASLフラグを有する)ランダムアクセスポイントピクチャは、CVSを開始しない。アクセスユニット(AU)は、1つ以上のコーディングされたピクチャと、同じ出力時間を共有するコーディングされたピクチャに対応する制御情報とを含む。ピクチャのコーディングされたスライスは、ネットワーク抽象化レイヤ(NAL)ユニットと呼ばれるデータユニットにビットストリームレベルでカプセル化される。例えば、HEVCビデオビットストリームは、NALユニットを含む1つ以上のCVSを含み得る。NALユニットの各々は、NALユニットヘッダを有する。一例では、ヘッダは、H.264/AVCの場合は1バイト(マルチレイヤ拡張を除く)、及びHEVCの場合は2バイトである。NALユニットヘッダ中のシンタックス要素は、指定されたビットを取り、従って、とりわけ、トランスポートストリーム、リアルタイムトランスポート(RTP)プロトコル、ファイルフォーマットなどの全ての種類のシステム及びトランスポートレイヤに対して可視である。
【0046】
[0057]ビデオコーディングレイヤ(VCL)NALユニット及び非VCL NALユニットを含む、2つのクラスのNALユニットがHEVC規格に存在する。VCL NALユニットは、コーディングされたビデオビットストリームを形成するコーディングされたピクチャデータを含む。例えば、コーディングされたビデオビットストリームを形成するビットのシーケンスは、VCL NALユニット中に存在する。VCL NALユニットは、コーディングされたピクチャデータの1つのスライス又はスライスセグメント(以下に説明される)を含むことができ、非VCL NALユニットは、1つ以上のコーディングされたピクチャに関連する制御情報を含む。いくつかのケースでは、NALユニットは、パケットと呼ばれることができる。HEVC AUは、コーディングされたピクチャデータを包含するVCL NALユニットと、コーディングされたピクチャデータに対応する非VCL NALユニット(ある場合には)とを含む。非VCL NALユニットは、他の情報に加えて、符号化されたビデオビットストリームに関連する高レベル情報を有するパラメータセットを包含し得る。例えば、パラメータセットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、及びピクチャパラメータセット(PPS)を含み得る。いくつかのケースでは、ビットストリームの各スライス又は他の部分は、復号デバイス112が、ビットストリームのスライス又は他の部分を復号するために使用され得る情報にアクセスすることを可能にするために、単一のアクティブなPPS、SPS、及び/又はVPSを参照することができる。
【0047】
[0058]NALユニットは、ビデオ中のピクチャのコーディングされた表現などの、ビデオデータのコーディングされた表現を形成するビットのシーケンス(例えば、符号化されたビデオビットストリーム、ビットストリームのCVS、又は同様のもの)を包含し得る。符号化器エンジン106は、各ピクチャを複数のスライスに区分することによってピクチャのコーディングされた表現を生成する。スライスは、同じピクチャ内の他のスライスからのデータへの依存なしにスライス中の情報がコーディングされるように、他のスライスとは独立している。スライスは、独立スライスセグメントと、存在する場合は、以前のスライスセグメントに従属する1つ以上の従属スライスセグメントとを含む1つ以上のスライスセグメントを含む。
【0048】
[0059]HEVCでは、スライスは次いで、ルーマサンプル及びクロマサンプルのコーディングツリーブロック(CTB)に区分される。ルーマサンプルの1つのCTB及びクロマサンプルの1つ以上のCTBは、ルーマ及びクロマサンプルのためのシンタックスと共に、コーディングツリーユニット(CTU)と呼ばれる。CTUはまた、「ツリーブロック」又は「最大コーディングユニット」(LCU)と呼ばれ得る。CTUは、HEVC符号化のための基本処理ユニットである。CTUは、変動するサイズの複数のコーディングユニット(CU)に分けられることができる。CUは、コーディングブロック(CB)と呼ばれるルーマ及びクロマサンプル配列を包含する。
【0049】
[0060]ルーマ及びクロマCBは、予測ブロック(PB)に更に分けられることができる。PBは、(利用可能であるか、又は使用のためにイネーブルにされるときに)インター予測又はイントラブロックコピー(IBC)予測のために同じ動きパラメータを使用するルーマ成分又はクロマ成分のサンプルのブロックである。1つのルーマPB及び1つ以上のクロマPBは、関連するシンタックスと共に、予測ユニット(PU)を形成する。インター予測の場合、動きパラメータのセット(例えば、1つ以上の動きベクトル、参照インデックス、又は同様のもの)は、各PUについてビットストリーム中でシグナリングされ、1つのルーマPB及び1つ以上のクロマPBのインター予測のために使用される。動きパラメータはまた、動き情報と呼ばれることができる。CBはまた、1つ以上の変換ブロック(TB)に区分されることができる。TBは、残差変換(例えば、いくつかのケースでは、同じ2次元変換)が予測残差信号をコーディングするために適用される色成分のサンプルの正方形ブロックを表す。変換ユニット(TU)は、ルーマ及びクロマサンプルのTB、及び対応するシンタックス要素を表す。変換コーディングは、以下により詳細に説明される。
【0050】
[0061]CUのサイズは、コーディングモードのサイズに対応し、形状が正方形であり得る。例えば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、又は最大で対応するCTUのサイズまでの任意の他の適切なサイズであり得る。「N×N」というフレーズは、垂直及び水平寸法の観点からビデオブロックのピクセル寸法(例えば、8ピクセル×8ピクセル)を指すために本明細書では使用される。ブロック中のピクセルは、行及び列に配置され得る。いくつかの実施形態では、ブロックは、水平方向に、垂直方向と同じ数のピクセルを有さないことがある。CUに関連付けられたシンタックスデータは、例えば、CUの1つ以上のPUへの区分を記述し得る。区分モードは、CUがイントラ予測モード符号化されるか、又はインター予測モード符号化されるかの間で異なり得る。PUは、形状が非正方形になるように区分され得る。CUに関連付けられたシンタックスデータはまた、例えば、CTUに従った、CUの1つ以上のTUへの区分を記述し得る。TUは、形状が正方形又は非正方形であることができる。
【0051】
[0062]HEVC規格によると、変換は、変換ユニット(TU)を使用して実行され得る。TUは、CUによって異なり得る。TUは、所与のCU内のPUのサイズに基づいてサイジングされ得る。TUは、PUと同じサイズであり得るか、又はより小さくあり得る。いくつかの例では、CUに対応する残差サンプルは、残差四分木(RQT)として知られる四分木構造を使用してより小さいユニットに再分割され得る。RQTのリーフノードは、TUに対応し得る。TUに関連付けられたピクセル差分値は、変換係数を作り出すために変換され得る。変換係数は次いで、符号化器エンジン106によって量子化され得る。
【0052】
[0063]ビデオデータのピクチャがCUに区分されると、符号化器エンジン106は、予測モードを使用して各PUを予測する。予測ユニット又は予測ブロックは次いで、残差を得るために元のビデオデータから減算される(以下に説明される)。各CUについて、予測モードは、シンタックスデータを使用してビットストリーム内部でシグナリングされ得る。予測モードは、イントラ予測(若しくはイントラピクチャ予測)又はインター予測(若しくはインターピクチャ予測)を含み得る。イントラ予測は、ピクチャ内の空間的に近隣するサンプル間の相関を利用する。例えば、イントラ予測を使用して、各PUは、例えば、PUについての平均値を見出すためのDC予測、平面表面(planar surface)をPUに合わせるための平面予測、近隣データから補外するための方向予測、又は任意の他の適したタイプの予測を使用して、同じピクチャ中の近隣画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するために、ピクチャ間の時間的相関を使用する。例えば、インター予測を使用して、各PUは、(出力順序で現在のピクチャの前又は後の)1つ以上の参照ピクチャ中の画像データからの動き補償予測を使用して予測される。ピクチャエリアを、インターピクチャ予測を使用してコーディングするか、又はイントラピクチャ予測を使用してコーディングするかの決定は、例えば、CUレベルでなされ得る。
【0053】
[0064]符号化器エンジン106及び復号器エンジン116(以下により詳細に説明される)は、VVCに従って動作するように構成され得る。VVCによると、ビデオコーダ(符号化器エンジン106及び/又は復号器エンジン116など)は、ピクチャを複数のコーディングツリーユニット(CTU)に区分する(ここで、ルーマサンプルの1つのCTB及びクロマサンプルの1つ以上のCTBは、ルーマサンプル及びクロマサンプルのためのシンタックスと共に、CTUと呼ばれる)。ビデオコーダは、四分木二分木(QTBT)構造又はマルチタイプツリー(MTT)構造などのツリー構造に従ってCTUを区分することができる。QTBT構造は、HEVCのCUとPUとTUとの間の分離などの、複数の区分タイプの概念を除去する。QTBT構造は、四分木区分に従って区分された第1のレベルと、二分木区分に従って区分された第2のレベルとを含む、2つのレベルを含む。QTBT構造のルートノードは、CTUに対応する。二分木のリーフノードは、コーディングユニット(CU)に対応する。
【0054】
[0065]MTT区分構造では、ブロックは、四分木区分と、二分木区分と、1つ以上のタイプの三分木区分とを使用して区分され得る。三分木区分は、ブロックが3つのサブブロックに分けられる区分である。いくつかの例では、三分木区分は、中心を通して元のブロックを分割することなく、ブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(例えば、四分木、二分木、及び三分木)は、対称又は非対称であり得る。
【0055】
[0066]いくつかの例では、ビデオコーダは、ルーマ及びクロマ成分の各々を表すために単一のQTBT又はMTT構造を使用することができるが、他の例では、ビデオコーダは、ルーマ成分のための1つのQTBT又はMTT構造、及び両方のクロマ成分のための別のQTBT又はMTT構造(又はそれぞれのクロマ成分のための2つのQTBT又はMTT構造)など、2つ以上のQTBT又はMTT構造を使用することができる。
【0056】
[0067]ビデオコーダは、HEVCによる四分木区分、QTBT区分、MTT区分、又は他の区分構造を使用するように構成されることができる。例示を目的として、本明細書における説明は、QTBT区分に言及し得る。しかしながら、本開示の技法はまた、四分木区分、又は他のタイプの区分も使用するように構成されたビデオコーダに適用され得ることが理解されるべきである。
【0057】
[0068]いくつかの例では、ピクチャの1つ以上のスライスは、スライスタイプを割り当てられる。スライスタイプは、イントラコーディングされたスライス(Iスライス)と、インターコーディングされたPスライスと、インターコーディングされたBスライスとを含む。Iスライス(イントラコーディングされたフレーム、独立して復号可能)は、イントラ予測によってのみコーディングされるピクチャのスライスであり、従って、Iスライスがスライスの任意の予測ユニット又は予測ブロックを予測するためにフレーム内のデータしか必要としないことから、独立して復号可能である。Pスライス(単方向(uni-directional)予測フレーム)は、イントラ予測で、及び単方向インター予測でコーディングされ得るピクチャのスライスである。Pスライス内の各予測ユニット又は予測ブロックは、イントラ予測でコーディングされるか、又はインター予測でコーディングされるかのうちのいずれかである。インター予測が適用されると、予測ユニット又は予測ブロックは、1つの参照ピクチャによってのみ予測され、従って、参照サンプルは、1つのフレームの1つの参照領域からのみのものである。Bスライス(双方向予測フレーム)は、イントラ予測で、及びインター予測で(例えば、双予測又は単予測(uni-prediction)のうちのいずれかで)コーディングされ得るピクチャのスライスである。Bスライスの予測ユニット又は予測ブロックは、2つの参照ピクチャから双方向に予測され得、ここで、各ピクチャは、1つの参照領域を与え(contributes)、2つの参照領域のサンプルセットは、双方向予測ブロックの予測信号を作り出すために(例えば、等しい重みで、又は異なる重みで)重み付けされる。上述されたように、1つのピクチャのスライスは、独立してコーディングされる。いくつかのケースでは、ピクチャは、単に1つのスライスとしてコーディングされることができる。
【0058】
[0069]上述されたように、イントラピクチャ予測は、ピクチャ内の空間的に近隣するサンプル間の相関を利用する。複数のイントラ予測モード(「イントラモード」とも呼ばれる)がある。いくつかの例では、ルーマブロックのイントラ予測は、平面モード、DCモード、及び33個の角度モード(例えば、対角イントラ予測モード及び対角イントラ予測モードに隣接する角度モード)を含む、35個のモードを含む。イントラ予測の35個のモードは、以下の表1に示されるようにインデックス付けされる。他の例では、33個の角度モードによってまだ表されていないことがある予測角度を含む、より多くのイントラモードが定義され得る。他の例では、角度モードに関連付けられた予測角度は、HEVCにおいて使用されるものとは異なり得る。
【表1】
【0059】
[0070]インターピクチャ予測は、画像サンプルのブロックについての動き補償予測を導出するために、ピクチャ間の時間的相関を使用する。並進動きモデルを使用して、以前に復号されたピクチャ(参照ピクチャ)中のブロックの位置は、動きベクトル(Δx、Δy)によって示され、ここで、Δxは、現在のブロックの位置に対する参照ブロックの水平変位を指定し、Δyは、現在のブロックの位置に対する参照ブロックの垂直変位を指定する。いくつかのケースでは、動きベクトル(Δx、Δy)は、整数サンプル精度(整数精度とも呼ばれる)であることができ、そのケースでは、動きベクトルは、参照フレームの整数ペルグリッド(又は整数ピクセルサンプリンググリッド)を指し示す。いくつかのケースでは、動きベクトル(Δx、Δy)は、基準フレームの整数ペルグリッドに制限されることなく、潜在する(underlying)オブジェクトの動きをより正確にキャプチャするために、分数サンプル精度(分数ペル精度又は非整数精度とも呼ばれる)であることができる。動きベクトルの精度は、動きベクトルの量子化レベルによって表され得る。例えば、量子化レベルは、整数精度(例えば、1ピクセル)又は分数ペル精度(例えば、1/4ピクセル、1/2ピクセル、又は他のサブピクセル値)であり得る。補間は、対応する動きベクトルが分数サンプル精度を有するときに予測信号を導出するために、参照ピクチャに適用される。例えば、整数位置で利用可能なサンプルは、分数位置における値を推定するために(例えば、1つ以上の補間フィルタを使用して)フィルタリングされることができる。以前に復号された参照ピクチャは、参照ピクチャリストへの参照インデックス(refIdx)によって示される。動きベクトル及び参照インデックスは、動きパラメータと呼ばれることができる。単予測と双予測とを含む2種類のインターピクチャ予測が実行されることができる。
【0060】
[0071]双予測を使用するインター予測では、動きパラメータの2つのセット(Δx0、y0、refIdx0及びΔx1、y1、refIdx1)が、(同じ参照ピクチャから、又はことによると異なる参照ピクチャから)2つの動き補償予測を生成するために使用される。例えば、双予測では、各予測ブロックは、2つの動き補償予測信号を使用し、B個の予測ユニットを生成する。2つの動き補償予測が次に組み合わされて、最終的な動き補償予測が得られる。例えば、2つの動き補償予測は、平均化することによって組み合わされることができる。別の例では、重み付け予測が使用されることができ、そのケースでは、異なる重みが各動き補償予測に適用されることができる。双予測で使用されることができる参照ピクチャは、リスト0及びリスト1として表される2つの別個のリスト中に記憶される。動きパラメータは、動き推定プロセスを使用して符号化器において導出されることができる。
【0061】
[0072]単予測を使用するインター予測では、動きパラメータの1つのセット(Δx0、y0、refIdx0)が、参照ピクチャから動き補償予測を生成するために使用される。例えば、単予測では、各予測ブロックは、多くとも1つの動き補償予測信号を使用し、P個の予測ユニットを生成する。
【0062】
[0073]PUは、予測プロセスに関連するデータ(例えば、動きパラメータ又は他の適したデータ)を含み得る。例えば、PUがイントラ予測を使用して符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PUについての動きベクトルを定義するデータを含み得る。PUについての動きベクトルを定義するデータは、例えば、動きベクトルの水平成分(Δx)、動きベクトルの垂直成分(Δy)、動きベクトルについての解像度(resolution)(例えば、整数精度、4分の1ピクセル精度、又は8分の1ピクセル精度)、動きベクトルが指し示す参照ピクチャ、参照インデックス、動きベクトルについての参照ピクチャリスト(例えば、リスト0、リスト1、又はリストC)、又はそれらの任意の組み合わせを記述し得る。
【0063】
[0074]イントラ予測及び/又はインター予測を使用して予測を実行した後、符号化デバイス104は、変換及び量子化を実行することができる。例えば、予測に続いて、符号化器エンジン106は、PUに対応する残差値を計算し得る。残差値は、コーディングされているピクセルの現在のブロック(PU)と、現在のブロックを予測するために使用される予測ブロック(例えば、予測されたバージョンの現在のブロック)との間のピクセル差分値を備え得る。例えば、(例えば、インター予測又はイントラ予測を使用して)予測ブロックを生成した後に、符号化器エンジン106は、現在のブロックから予測ユニットによって作り出される予測ブロックを減算することによって残差ブロックを生成することができる。残差ブロックは、現在のブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元ブロックフォーマット(例えば、ピクセル値の2次元行列又は配列)で表され得る。そのような例では、残差ブロックは、ピクセル値の2次元表現である。
【0064】
[0075]予測が実行された後に残り得る任意の残差データは、ブロック変換を使用して変換され、それは、離散コサイン変換(DCT)、離散サイン変換(DST)、整数変換、ウェーブレット変換、他の適した変換関数、又はそれらの任意の組み合わせに基づき得る。いくつかのケースでは、1つ以上のブロック変換(例えば、サイズ32×32、16×16、8×8、4×4、又は他の適したサイズのカーネル)が、各CU中の残差データに適用され得る。いくつかの例では、TUが、符号化器エンジン106によってインプリメントされる変換及び量子化プロセスのために使用され得る。1つ以上のPUを有する所与のCUはまた、1つ以上のTUを含み得る。以下に更に詳細に説明されるように、残差値は、ブロック変換を使用して変換係数に変換され得、次いで、エントロピーコーディングのための直列化された(serialized)変換係数を作り出すために、TUを使用して量子化及び走査され得る。
【0065】
[0076]いくつかの実施形態では、CUのPUを使用するイントラ予測又はインター予測コーディングに続いて、符号化器エンジン106は、CUのTUについての残差データを計算し得る。PUは、空間ドメイン(又はピクセルドメイン)中のピクセルデータを備え得る。前述されたように、残差データは、符号化されていないピクチャ(例えば、PU)のピクセルと、PUに対応する予測値との間のピクセル差分値に対応し得る。符号化器エンジン106は、(PUを含む)CUについての残差データを含む1つ以上のTUを形成し得、次いで、CUについての変換係数を作り出すためにTUを変換し得る。TUは、ブロック変換の適用後の変換ドメイン中の係数を備え得る。
【0066】
[0077]符号化器エンジン106は、変換係数の量子化を実行し得る。量子化は、係数を表すために使用されるデータの量を低減するために、変換係数を量子化することによって、更なる圧縮を提供する。例えば、量子化は、係数のうちのいくつか又は全てに関連付けられたビット深度を低減し得る。一例では、nビット値を有する係数は、量子化中にmビット値に切り捨てられ得、ここで、nは、mより大きい。
【0067】
[0078]量子化が実行されると、コーディングされたビデオビットストリームは、量子化された変換係数、予測情報(例えば、予測モード、動きベクトル、ブロックベクトル、又は同様のもの)、区分情報、及び他のシンタックスデータなどの任意の他の適したデータを含む。コーディングされたビデオビットストリームの異なる要素は次いで、符号化器エンジン106によってエントロピー符号化され得る。いくつかの例では、符号化器エンジン106は、エントロピー符号化されることができる直列化されたベクトルを作り出すために、量子化された変換係数を走査するために、予め定義された走査順序を利用し得る。いくつかの例では、符号化器エンジン106は、適応走査を実行し得る。ベクトル(例えば、1次元ベクトル)を形成するために、量子化された変換係数を走査した後に、符号化器エンジン106は、ベクトルをエントロピー符号化し得る。例えば、符号化器エンジン106は、コンテキスト適応可変長コーディング(context adaptive variable length coding)、コンテキスト適応バイナリ算術コーディング(context adaptive binary arithmetic coding)、シンタックスベースのコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピーコーディング(probability interval partitioning entropy coding)、又は別の適したエントロピー符号化技法を使用し得る。
【0068】
[0079]符号化デバイス104の出力110は、受信デバイスの復号デバイス112に通信リンク120を通して、符号化されたビデオビットストリームデータを構成するNALユニットを送り得る。復号デバイス112の入力114は、NALユニットを受信し得る。通信リンク120は、ワイヤレスネットワーク、ワイヤードネットワーク、又はワイヤードネットワークとワイヤレスネットワークとの組み合わせによって提供されるチャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェース又はワイヤレスインターフェースの組み合わせを含み得、任意の適したワイヤレスネットワーク(例えば、インターネット若しくは他のワイドエリアネットワーク、パケットベースのネットワーク、WiFi(登録商標)、無線周波数(RF)、UWB、WiFi-Direct、セルラ、ロングタームエボリューション(LTE(登録商標))、WiMax(登録商標)、又は同様のもの)を含み得る。ワイヤードネットワークは、任意のワイヤードインターフェース(例えば、ファイバ、イーサネット(登録商標)、電力線イーサネット、同軸ケーブルを通したイーサネット、デジタル信号線(DSL)、又は同様のもの)を含み得る。ワイヤード及び/又はワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチ、又は同様のものなどの様々な機器を使用してインプリメントされ得る。符号化されたビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信され得る。
【0069】
[0080]いくつかの例では、符号化デバイス104は、記憶装置108中に符号化されたビデオビットストリームデータを記憶し得る。出力110は、符号化器エンジン106から、又は記憶装置108から、符号化されたビデオビットストリームデータを取り出し得る。記憶装置108は、様々な分散された又は局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。例えば、記憶装置108は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化されたビデオデータを記憶するための任意の他の適したデジタル記憶媒体を含み得る。記憶装置108はまた、インター予測において使用するための参照ピクチャを記憶するための復号ピクチャバッファ(DPB)を含むことができる。更なる例では、記憶装置108は、ファイルサーバ、又はソースデバイスによって生成される符号化されたビデオを記憶し得る別の中間記憶デバイスに対応することができる。そのようなケースでは、復号デバイス112を含む受信デバイスは、ストリーミング又はダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶することと、受信デバイスにその符号化されたビデオデータを送信することとが可能な任意のタイプのサーバであり得る。実例的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、又はローカルディスクドライブを含む。受信デバイスは、インターネット接続を含む任意の標準データ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル(例えば、Wi-Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム、等)、又はその両方の組み合わせを含み得る。記憶装置108からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組み合わせであり得る。
【0070】
[0081]復号デバイス112の入力114は、符号化されたビデオビットストリームデータを受信し、復号器エンジン116に、又は復号器エンジン116によって後に使用するために記憶装置118にビデオビットストリームデータを提供し得る。例えば、記憶装置118は、インター予測において使用するための参照ピクチャを記憶するためのDPBを含むことができる。復号デバイス112を含む受信デバイスは、記憶装置108を介して、復号されることになる符号化されたビデオデータを受信することができる。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信され得る。符号化されたビデオデータを送信するための通信媒体は、無線周波数(RF)スペクトル又は1つ以上の物理的伝送線路などの任意のワイヤレス又はワイヤード通信媒体を備えることができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイスから受信デバイスへの通信を容易にするのに有用であり得る任意の他の機器を含み得る。
【0071】
[0082]復号器エンジン116は、(例えば、エントロピー復号器を使用して)エントロピー復号し、符号化されたビデオデータを構成する1つ以上のコーディングされたビデオシーケンスの要素を抽出することによって、符号化されたビデオビットストリームデータを復号し得る。復号器エンジン116は次いで、符号化されたビデオビットストリームデータを再スケーリングし、それに対して逆変換を実行し得る。残差データは次いで、復号器エンジン116の予測ステージに渡される。復号器エンジン116は次いで、ピクセルのブロック(例えば、PU)を予測する。いくつかの例では、予測は、逆変換の出力(残差データ)に追加される。
【0072】
[0083]ビデオ復号デバイス112は、ビデオ宛先デバイス122に復号されたビデオを出力し得、それは、コンテンツの消費者に復号されたビデオデータを表示するためのディスプレイ又は他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス122は、復号デバイス112を含む受信デバイスの一部であり得る。いくつかの態様では、ビデオ宛先デバイス122は、受信デバイス以外の別個のデバイスの一部であり得る。
【0073】
[0084]いくつかの実施形態では、ビデオ符号化デバイス104及び/又はビデオ復号デバイス112は、オーディオ符号化デバイス及びオーディオ復号デバイスとそれぞれ一体化され得る。ビデオ符号化デバイス104及び/又はビデオ復号デバイス112はまた、1つ以上のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせなどの、上述されたコーディング技法をインプリメントするのに必要な他のハードウェア又はソフトウェアを含み得る。ビデオ符号化デバイス104及びビデオ復号デバイス112は、それぞれのデバイス中で、組み合わされた符号化器/復号器(コーデック)の一部として一体化され得る。
【0074】
[0085]
図1に示される実例的なシステムは、本明細書で使用されることができる1つの例示的な例である。本明細書に説明される技法を使用してビデオデータを処理するための技法は、任意のデジタルビデオ符号化及び/又は復号デバイスによって実行されることができる。一般に、本開示の技法は、ビデオ符号化デバイス又はビデオ復号デバイスによって実行されるが、本技法はまた、典型的に「コーデック」と呼ばれる組み合わされたビデオ符号化器-復号器によって実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス及び受信デバイスは単に、ソースデバイスが受信デバイスへの送信のためのコーディングされたビデオデータを生成するそのようなコーディングデバイスの例に過ぎない。いくつかの例では、ソースデバイス及び受信デバイスは、それらデバイスの各々がビデオ符号化及び復号コンポーネントを含むような実質的に対称的な方式で動作し得る。故に、実例的なシステムは、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、又はビデオ電話通信のために、ビデオデバイス間の1方向又は2方向ビデオ送信をサポートし得る。
【0075】
[0086]HEVC規格への拡張は、MV-HEVCと呼ばれるMultiview Video Coding拡張と、SHVCと呼ばれるScalable Video Coding拡張とを含む。MV-HEVC及びSHVC拡張は、レイヤードコーディングの概念を共有し、ここで、異なるレイヤが、符号化されたビデオビットストリーム中に含まれる。コーディングされたビデオシーケンス中の各レイヤは、一意のレイヤ識別子(ID)によってアドレス指定される。レイヤIDは、NALユニットが関連付けられるレイヤを識別するために、NALユニットのヘッダ中に存在し得る。MV-HEVCでは、異なるレイヤは通常、ビデオビットストリーム中の同じシーンの異なるビューを表す。SHVCでは、ビデオビットストリームを異なる空間解像度(若しくはピクチャ解像度)で、又は異なる再構築忠実度で表す、異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0の)1つのベースレイヤと、(レイヤID=1、2、...nの)1つ以上のエンハンスメントレイヤとを含み得る。ベースレイヤは、HEVCの第1のバージョンのプロファイルに適合し得、ビットストリーム中の最下位の利用可能レイヤを表す。エンハンスメントレイヤは、ベースレイヤと比較して、増大された空間解像度、時間解像度若しくはフレームレート、及び/又は再構築忠実度(若しくは品質)を有する。エンハンスメントレイヤは、階層的に編成され、より下位のレイヤに従属することも(又はしないことも)ある。いくつかの例では、異なるレイヤは、単一の標準コーデックを使用してコーディングされ得る(例えば、全てのレイヤは、HEVC、SHVC、又は他のコーディング規格を使用して符号化される)。いくつかの例では、異なるレイヤは、多標準コーデックを使用してコーディングされ得る。例えば、1つのベースレイヤは、AVCを使用してコーディングされ得、1つ以上のエンハンスメントレイヤは、HEVC規格へのSHVC及び/又はMV-HEVC拡張を使用してコーディングされ得る。
【0076】
[0087]上述されたように、各ブロックについて、(本明細書では動きパラメータとも呼ばれる)動き情報のセットが利用可能であることができる。動き情報のセットは、前方(forward)及び後方(backward)予測方向についての動き情報を包含することができる。ここでは、前方及び後方予測方向は、双方向予測モードの2つの予測方向であり、「前方」及び「後方」という用語は、必ずしも幾何学的意味を有さない。代わりに、前方及び後方は、現在のピクチャ、スライス、又はブロックの参照ピクチャリスト0(RefPicList0)及び参照ピクチャリスト1(RefPicList1)に対応することができる。いくつかの例では、1つの参照ピクチャリストしかピクチャ、スライス又はブロックに対して利用可能でないとき、RefPicList0のみが利用可能であり、スライスの各ブロックの動き情報は、常に前方である。いくつかの例では、RefPicList0は、時間的に現在のピクチャに先行する参照ピクチャを含み、RefPicList1は、時間的に現在のピクチャに後続する参照ピクチャを含む。いくつかのケースでは、関連する参照インデックスと共に動きベクトルが、復号プロセスにおいて使用されることができる。関連する参照インデックスを有するそのような動きベクトルは、動き情報の単予測セットとして表される。
【0077】
[0088]各予測方向について、動き情報は、参照インデックス及び動きベクトルを包含することができる。いくつかのケースでは、簡潔さのために、動きベクトルは、関連する情報を有することができ、それから、動きベクトルが関連する参照インデックスを有する方法が仮定されることができる。参照インデックスは、現在の参照ピクチャリスト(RefPicList0又はRefPicList1)中の参照ピクチャを識別するために使用されることができる。動きベクトルは、現在のピクチャ中の座標位置から参照インデックスによって識別される参照ピクチャ中の座標へのオフセットを提供する水平及び垂直成分を有することができる。例えば、参照インデックスは、現在のピクチャ中のブロックに対して使用されるべき特定の参照ピクチャを示すことができ、動きベクトルは、参照ピクチャ中で、ベストマッチするブロック(現在のブロックにベストマッチするブロック)が参照ピクチャ中のどこにあるかを示すことができる。
【0078】
[0089]ピクチャ順序カウント(POC:Picture Order Count)は、ピクチャの表示順序を識別するためにビデオコーディング規格において使用されることができる。1つのコーディングされたビデオシーケンス内の2つのピクチャが同じPOC値を有し得るケースが存在するが、1つのコーディングされたビデオシーケンス内では、同じPOC値を有する2つのピクチャは、頻繁には生じない。複数のコーディングされたビデオシーケンスがビットストリーム中に存在するとき、同じPOC値を有するピクチャは、復号順序の観点から互いにより近くあり得る。ピクチャのPOC値は、とりわけ、参照ピクチャリスト構築、HEVCにおけるような参照ピクチャセットの導出、及び/又は動きベクトルスケーリングのために使用されることができる。
【0079】
[0090]H.264/AVCでは、各インターマクロブロック(MB)は、とりわけ、1つの16×16マクロブロック区分、2つの16×8マクロブロック区分、2つの8×16マクロブロック区分、及び4つの8×8マクロブロック区分を含む、4つの異なる方法に区分され得る。1つのマクロブロック中の異なるマクロブロック区分は、各予測方向について異なる参照インデックス値を有し得る(例えば、RefPicList0及びRefPicList1についての異なる参照インデックス値)。
【0080】
[0091]いくつかのケースでは、マクロブロックが4つの8×8マクロブロック区分に区分されないとき、マクロブロックは、各予測方向に、各マクロブロック区分について1つの動きベクトルしか有することができない。いくつかのケースでは、マクロブロックが4つの8×8マクロブロック区分に区分されるとき、各8×8マクロブロック区分は、サブブロックに更に区分されることができ、それらの各々は、各予測方向に異なる動きベクトルを有することができる。8×8マクロブロック区分は、とりわけ、1つの8×8サブブロック、2つの8×4サブブロック、2つの4×8サブブロック、及び4つの4×4サブブロックを含む異なる方法でサブブロックに分割されることができる。各サブブロックは、各予測方向に異なる動きベクトルを有することができる。従って、動きベクトルは、サブブロックに等しいか、又はそれより高いレベルで存在することができる。
【0081】
[0092]HEVCでは、スライス中の最大コーディングユニットは、コーディングツリーブロック(CTB)又はコーディングツリーユニット(CTU)と呼ばれる。CTBは、四分木を包含し、そのノードは、コーディングユニットである。CTBのサイズは、HEVCメインプロファイルにおいて16×16ピクセルから64×64ピクセルまでの範囲であることができる。いくつかのケースでは、8×8ピクセルCTBサイズがサポートされることができる。CTBは、四分木方式でコーディングユニット(CU)に再帰的に分けられ得る。CUは、CTBと同じサイズであることができ、8×8ピクセルほどに小さくあることができる。いくつかのケースでは、各コーディングユニットは、イントラ予測モード又はインター予測モードのうちのいずれかなど、1つのモードでコーディングされる。CUがインター予測モードを使用してインターコーディングされるとき、CUは、2つ又は4つの予測ユニット(PU)に更に区分され得るか、又は更なる区分が適用されないときには1つのPUとして扱われ得る。2つのPUが1つのCU中に存在するとき、2つのPUは、半分のサイズの矩形、又はCUの1/4若しくは3/4のサイズである2つの矩形であることができる。
【0082】
[0093]CUがインターコーディングされるとき、動き情報の1つのセットが、各PUについて存在することができ、それは、一意のインター予測モードで導出されることができる。例えば、各PUは、動き情報のセットを導出するために、1つのインター予測モードでコーディングされることができる。いくつかのケースでは、CUがイントラ予測モードを使用してイントラコーディングされるとき、PU形状は、2Nx2N及びNxNであることができる。各PU内では、単一のイントラ予測モードがコーディングされる(一方、クロマ予測モードは、CUレベルでシグナリングされる)。いくつかのケースでは、現在のCUサイズがSPS中で定義された最小CUサイズに等しいとき、N×NイントラPU形状が許容される。
【0083】
[0094]HEVCにおける動き予測の場合、マージモード及び高度動きベクトル予測(AMVP)モードを含む、予測ユニット(PU)のための2つのインター予測モードがある。スキップは、マージの特別なケースと考えられる。AMVPモード又はマージモードのうちのいずれでも、動きベクトル(MV)候補リストが、複数の動きベクトル予測子のために維持される。現在のPUの動きベクトル(1つ以上)、並びにマージモードの参照インデックスは、MV候補リストから1つの候補を取ることによって生成される。
【0084】
[0095]いくつかの例では、MV候補リストは最大で、マージモードについては5つの候補まで、AMVPモードについては2つの候補まで包含する。他の例では、異なる数の候補が、マージモード及び/又はAMVPモードについてのMV候補リスト中に含まれることができる。マージ候補は、動き情報のセットを包含し得る。例えば、動き情報のセットは、両方の参照ピクチャリスト(リスト0及びリスト1)に対応する動きベクトルと参照インデックスとを含むことができる。マージ候補がマージインデックスによって識別される場合、参照ピクチャは、現在のブロックの予測のために使用され、並びに関連する動きベクトルが決定される。しかしながら、AMVPモード下では、リスト0又はリスト1のうちのいずれかからの各潜在的な予測方向について、AMVP候補が1つの動きベクトルしか包含しないことから、MV候補リストに対するMV予測子(MVP)インデックスと共に、参照インデックスが明示的にシグナリングされる必要がある。AMVPモードでは、予測された動きベクトルは、更に精緻化されることができる。
【0085】
[0096]マージ候補は、動き情報のフルセットに対応し得、AMVP候補は、特定の予測方向についての1つの動きベクトルと参照インデックスとを包含し得る。両方のモードについての候補は、同じ空間的及び時間的近隣ブロックから同様に導出される。
【0086】
[0097]いくつかの例では、マージモードは、インター予測されたPUが、空間的に近隣する動きデータ位置のグループから選択された動きデータ位置と2つの時間的にコロケートされた動きデータ位置のうちの1つとを含むインター予測されたPUから、1つ以上の同じ動きベクトル、予測方向、及び1つ以上の参照ピクチャインデックスを継承することを可能にする。AMVPモードの場合、PUの1つ以上の動きベクトルは、符号化器によって構築されたAMVP候補リストからの1つ以上の動きベクトル予測子(MVP)に対して予測的に(predicatively)コーディングされることができる。いくつかの事例では、PUの単方向インター予測の場合、符号化器は、単一のAMVP候補リストを生成することができる。いくつかの事例では、PUの双方向予測の場合、符号化器は、2つのAMVP候補リストを生成することができ、1つは、前方予測方向からの空間的及び時間的近隣PUの動きデータを使用し、1つは、後方予測方向からの空間的及び時間的近隣PUの動きデータを使用する。
【0087】
[0098]両方のモードについての候補は、空間的及び/又は時間的近隣ブロックから導出されることができる。例えば、
図2A及び
図2Bは、HEVCにおける空間的近隣候補を例示する概念図を含む。
図2Aは、マージモードについての空間的近隣動きベクトル(MV)候補を例示する。
図2Bは、AMVPモードについての空間的近隣動きベクトル(MV)候補を例示する。空間的MV候補は、特定のPU(PU0)についての近隣ブロックから導出されるが、ブロックから候補を生成する方法は、マージモードとAMVPモードとの場合で異なる。
【0088】
[0099]マージモードでは、符号化器は、様々な動きデータ位置からのマージ候補を考慮することによって、マージ候補リストを形成することができる。例えば、
図2Aに示されるように、最大で4つまでの空間的MV候補が、
図2Aの番号0~4で示される空間的に近隣する動きデータ位置に関して導出されることができる。いくつかの例では、これらの空間的に近隣する動きデータ位置は、PU0などの現在のブロックについての空間的に近隣する動きデータ位置に直接隣接する。MV候補は、番号0~4によって示される順序で、マージ候補リスト中で順序付けられることができる。例えば、位置及び順序は、左位置(0)、上位置(1)、右上位置(2)、左下位置(3)、及び左上位置(4)を含むことができる。いくつかの例では、空間的に近隣する動きデータ位置を使用してマージ候補リストが構築される順序に基づいて、空間的に近隣する動きデータ位置と現在のブロックとの間に因果関係が存在する。いくつかの例では、空間的に近隣する動きデータ位置0~4は、直接隣接する因果的に(causally)近隣する動きデータ位置とも呼ばれることができる。
【0089】
[0100]
図2Bに示されたAMVPモードでは、近隣ブロックは、2つのグループに分割される:ブロック0及び1を含む左グループ、及びブロック2、3、及び4を含む上グループ。各グループについて、シグナリングされた参照インデックスによって示されたのと同じ参照ピクチャを指す近隣ブロック中の潜在的な候補は、グループの最終候補を形成するために選ばれるための最高の優先度を有する。全ての近隣ブロックが同じ参照ピクチャを指し示す動きベクトルを包含するわけではない可能性がある。従って、そのような候補が見出されることができない場合、第1の利用可能な候補が、最終候補を形成するためにスケーリングされることになり、このことから、時間的距離差分が補償されることができる。
AMVP候補リストは、適切にスケーリングされ得る利用可能な候補を使用して構築されることができる。いくつかの例では、AMVP候補リストは、因果的に近隣する動きデータ位置の中で利用可能な候補を含むことができる。
【0090】
[0101]
図3A及び
図3Bは、HEVCにおける時間的動きベクトル予測を例示する概念図を含む。時間的動きベクトル予測子(TMVP)候補は、イネーブルにされ且つ利用可能である場合、空間的動きベクトル候補の後にMV候補リストに追加される。TMVP候補についての動きベクトル導出のプロセスは、マージモードとAMVPモードとの両方について同じである。いくつかの事例では、しかしながら、マージモードのTMVP候補についてのターゲット参照インデックスは、常にゼロに設定される。
【0091】
[0102]TMVP候補導出のためのプライマリブロックロケーションは、空間的近隣候補を生成するために使用される上ブロック及び左ブロックに対するバイアスを補償するための、ブロック「T」として
図3Aに示されているような、コロケートされたPUの外部の右下ブロックである。しかしながら、そのブロックが現在のCTB(若しくはLCU)行の外部にロケートされるか、又は動き情報が利用可能でない場合、そのブロックは、PUの中心ブロックと置き換えられる。TMVP候補についての動きベクトルは、スライスレベルで示される、コロケートされたピクチャのコロケートされたPUから導出される。AVCにおける時間的ダイレクトモード(temporal direct mode)と同様に、TMVP候補の動きベクトルは、距離差を補償するために実行される動きベクトルスケーリングを受け得る。
【0092】
[0103]動き予測の他の態様もまた、HEVC、VVC、及び他のビデオコーディング仕様においてカバーされる。例えば、一態様は、動きベクトルスケーリングを含む。動きベクトルスケーリングでは、動きベクトルの値は、提示時間における(in presentation time)ピクチャ間の距離に比例すると仮定される。いくつかの例では、第1の動きベクトルは、第1の参照ピクチャと、第1の動きベクトルを含む第1の包含ピクチャとを含む2つのピクチャに関連付けられることができる。第1の動きベクトルは、第2の動きベクトルを予測するために利用されることができる。第2の動きベクトルを予測するために、第1の参照ピクチャ及び第1の包含ピクチャに関連付けられたピクチャ順序カウント(POC)値に基づいて、第1の動きの第1の包含ピクチャと第1の参照ピクチャとの間の第1の距離が計算されることができる。
【0093】
[0104]第2の参照ピクチャ及び第2の包含ピクチャは、予測されることになる第2の動きベクトルに関連付けられ得、ここで、第2の参照ピクチャは、第1の参照ピクチャとは異なる可能性があり、第2の包含ピクチャは、第1の包含ピクチャとは異なる可能性がある。第2の参照ピクチャと第2の包含ピクチャとに関連付けられたPOC値に基づいて、第2の参照ピクチャと第2の包含ピクチャとの間の第2の距離が計算されることができ、ここで、第2の距離は、第1の距離とは異なる可能性がある。第2の動きベクトルを予測するために、第1の動きベクトルは、第1の距離及び第2の距離に基づいてスケーリングされることができる。空間的に近隣する候補について、第1の動きベクトル及び第2の動きベクトルの第1の包含ピクチャ及び第2の包含ピクチャはそれぞれ同じである可能性があるが、第1の参照ピクチャ及び第2の参照ピクチャは異なり得る。いくつかの例では、動きベクトルスケーリングは、空間的及び時間的近隣候補について、TMVPモード及びAMVPモードに適用されることができる。
【0094】
[0105]動き予測の別の態様は、疑似(artificial)動きベクトル候補生成を含む。例えば、動きベクトル候補リストが完成していない場合、全ての候補が取得されるまで、疑似動きベクトル候補が生成され、動きベクトル候補リストの末尾に挿入される。マージモードでは、2つのタイプの疑似MV候補が存在する:Bスライスのためにのみ導出される合成(combined)候補を含む第1のタイプ、及び第1のタイプが十分な疑似候補を提供しない場合にAMVPのためにのみ使用されるゼロ候補を含む第2のタイプ。動きベクトル候補リスト中に既に存在し、且つ関連する動き情報を有する候補の各ペアについて、双方向合成動きベクトル候補が、リスト0中のピクチャを指す第1の候補の動きベクトルと、リスト1中のピクチャを指す第2の候補の動きベクトルとの組み合わせによって導出されることができる。
【0095】
[0106]マージモード及びAMVPモードの別の態様は、候補挿入のためのプルーニングプロセスを含む。例えば、異なるブロックからの候補は、偶然同じであり得、それは、マージ候補リスト及び/又はAMVP候補リストの効率を低下させる。プルーニングプロセスは、この問題を解決するために適用されることができる。プルーニングプロセスは、同一の又は重複する候補を挿入することを回避するために、ある1つの候補を現在の候補リスト中に既に存在する他の複数の候補に対して比較することを含む。比較の複雑さを低減するために、候補リストに挿入されることになる全ての潜在的な候補よりも少ない潜在的な候補に対してプルーニングプロセスが実行されることができる。
【0096】
[0107]いくつかの例では、拡張動きベクトル予測がインプリメントされることができる。例えば、いくつかのインターコーディングツールは、VVCなどのビデオコーディング規格において指定され、それに従って、現在のブロックについての動きベクトル予測又はマージ予測の候補リストが導出又は精緻化されることができる。そのようなアプローチの例が、以下に説明される。
【0097】
[0108]履歴ベースの動きベクトル予測は、現在のブロックについての1つ以上のMV予測子が、直接隣接する因果的に近隣する動きフィールド中のものに加えて、以前に復号されたMVのリストから取得又は予測されることができる動きベクトル予測方法である。以前に復号されたMVのリスト中のMV予測子は、HMVP候補と呼ばれる。HMVP候補は、インターコーディングされたブロックに関連付けられた動き情報を含むことができる。複数のHMVP候補を有するHMVPテーブルは、スライスのための符号化及び/又は復号プロセス中に維持されることができる。いくつかの例では、HMVPテーブルは、動的に更新されることができる。例えば、インターコーディングされたブロックを復号した後、HMVPテーブルは、復号されたインターコーディングされたブロックの関連付けられた動き情報を新しいHMVP候補としてHMVPテーブルに追加することによって更新されることができる。いくつかの例では、HMVPテーブルは、新しいスライスに遭遇したときに空にされることができる。
【0098】
[0109]
図4は、HMVPテーブル400の例を例示するブロック図である。HMVPテーブル400は、先入れ先出し(FIFO)規則を使用して管理される記憶デバイスとしてインプリメントされることができる。例えば、MV予測子を含むHMVP候補は、HMVPテーブル400中に記憶されることができる。HMVP候補は、それらが符号化又は復号される順序で記憶されることができる。一例では、HMVP候補がHMVPテーブル400中に記憶される順序は、HMVP候補が構築される時間に対応することができる。例えば、復号デバイス112などの復号器においてインプリメントされるとき、HMVP候補は、復号されたインターコーディングされたブロックの動き情報を含むように構築されることができる。いくつかの例では、HMVPテーブル400からの1つ以上のHMVP候補は、復号されることになる現在のブロックの動きベクトル予測のために使用されることができる動きベクトル予測子を含むことができる。いくつかの例では、1つ以上のHMVP候補は、それらがFIFO方式で、HMVPテーブル400の1つ以上のエントリ中に、復号された時間順序で記憶されることができる1つ以上のそのような以前に復号されたブロックを含むことができる。
【0099】
[0110]HMVP候補インデックス402は、HMVPテーブル400に関連付けられるように示されている。HMVP候補インデックス402は、HMVPテーブル400の1つ以上のエントリを識別することができる。例示的な例によると、HMVP候補インデックス402は、インデックス値0~4を含むように示され、ここで、HMVP候補インデックス402のインデックス値の各々は、対応するエントリに関連付けられる。HMVPテーブル400は、他の例において
図4を参照して示され説明されたエントリよりも多い又は少ないエントリを含むことができる。HMVP候補が構築されると、それらは、FIFO方式でHMVPテーブル400中に投入される。例えば、HMVP候補が復号されると、それらは、一端においてHMVPテーブル400中に挿入され、それらが他端からHMVPテーブル400を出るまで、HMVPテーブル400のエントリを通して順次移動される。それ故に、いくつかの例では、HMVPテーブル400をインプリメントするために、シフトレジスタなどのメモリ構造が使用されることができる。一例では、インデックス値0は、HMVPテーブル400の第1のエントリを指し示すことができ、ここで、第1のエントリは、HMVP候補が挿入されるHMVPテーブル400の第1の端部に対応することができる。それに対応して、インデックス値4は、HMVPテーブル400の第2のエントリを指し示すことができ、ここで、第2のエントリは、HMVPテーブル400の第2の端部に対応することができ、そこからHMVP候補がHMVPテーブル400から出るか又は空にされる。それ故に、インデックス値0における第1のエントリに挿入されるHMVP候補は、当該HMVP候補がインデックス値4における第2のエントリに到達するまで、より新しい又はより最近復号されたHMVP候補のための余地を作るためにHMVPテーブル400を横断することができる。このことから、任意の所与の時間にHMVPテーブル400中に存在するHVMP候補の中で、インデックス値4における第2のエントリ中のHMVP候補は、最も古い又は最も最近ではなく(the oldest or least recent)、インデックス値0における第1のエントリ中のHMVP候補は、最も新しい又は最も最近(the youngest or most recent)であり得る。一般に、第2のエントリ中のHMVP候補は、第1のエントリ中のHMVP候補よりも古い又はより最近でない、構築されたHMVP候補であり得る。
【0100】
[0111]
図4では、HMVPテーブル400の異なる状態が、参照番号400A、400B、及び400Cで識別される。状態400Aを参照すると、HMVP候補HMVP0~HMVP4が、それぞれのインデックス値4~0においてHMVPテーブル400のエントリ中に存在するように示されている。例えば、HMVP0は、インデックス値0における第1のエントリにおいてHMVPテーブル400中に挿入された最も古い又は最も最近でないHMVP候補であり得る。HMVP0は、HMVP0が状態400Aに示されたインデックス値4における第2のエントリに到達するまで、より最近でなく挿入されたより新しいHMVP候補HMVP1~HMVP4のための余地を作るために順次シフトされ得る。それに対応して、HMVP4は、インデックス値0における第1のエントリ中に挿入されることになる最も最近のHMVP候補であり得る。このことから、HMVP0は、HMVP4に関連するHMVPテーブル400中のより古い又はより最近でないHMVP候補である。
【0101】
[0112]いくつかの例では、HMVP候補HMVP0~HMVP4のうちの1つ以上は、冗長である可能性がある動きベクトル情報を含む可能性がある。例えば、冗長なHMVP候補は、HMVPテーブル400中に記憶された1つ以上の他のHMVP候補中の動きベクトル情報と同一である動きベクトル情報を含む可能性がある。冗長なHMVP候補の動きベクトル情報は、1つ以上の他のHMVP候補から取得されることができるので、冗長なHMVP候補をHMVPテーブル400中に記憶することは回避されることができる。冗長なHMVP候補がHMVPテーブル400中に記憶されることを回避することによって、HMVPテーブル400のリソースが、より効率的に利用されることができる。いくつかの例では、HMVP候補をHMVPテーブル400中に記憶するより前に、HMVP候補が冗長であるかどうかを決定するために冗長性チェックが実行されることができる(例えば、HMVP候補の動きベクトル情報は、マッチがあるかどうかを決定するために、既に記憶された他のHMVP候補の動きベクトル情報と比較されることができる)。
【0102】
[0113]いくつかの例では、HMVPテーブル400の状態400Bは、上述された冗長性チェックの概念図である。いくつかの例では、HMVP候補は、それらが復号されるときにHMVPテーブル400中に投入されることができ、冗長性チェックは、HMVP候補が記憶される前に閾値テストとして実行されるのではなく、周期的に実行されることができる。例えば、状態400Bに示されるように、HMVP候補HMVP1及びHMVP3は、冗長な候補として識別されることができる(即ち、それらの動き情報は、HMVPテーブル400中の他のHMVP候補のうちの1つの動き情報と同一である)。冗長なHMVP候補HMVP1及びHMVP3は、除去されることができ、残りのHMVP候補は、それに応じてシフトされることができる。
【0103】
[0114]例えば、状態400Cに示されているように、HMVP候補HMVP2及びHMVP4は、より古いエントリに対応するより高いインデックス値に向かってシフトされるが、HMVPテーブル400の第2の端部における第2のエントリ中に既にあるHMVP0は、更にシフトされるように示されていない。いくつかの例では、HMVP候補HMVP2及びHMVP4をシフトすることは、より新しいHMVP候補のためにHMVPテーブル400中の空間を解放することができる。それ故に、新しいHMVP候補HMVP5及びHMVP6は、HMVPテーブル400中にシフトされるように示され、ここで、HMVP6は、最新であるか、又は最も最近復号された動きベクトル情報を含み、インデックス値0における第1のエントリ中に記憶される。
【0104】
[0115]いくつかの例では、HMVPテーブル400からのHMVP候補のうちの1つ以上は、現在のブロックの動き予測のために使用されることができる他の候補リストを構築するために使用されることができる。例えば、HMVPテーブル400からの1つ以上のHMVP候補が、例えば、追加のマージ候補としてマージ候補リストに追加されることができる。いくつかの例では、同じHMVPテーブル400又は別のそのようなHMVPテーブルからの1つ以上のHMVP候補が、例えば、追加のAMVP予測子として、高度動きベクトル予測(AMVP)候補リストに追加されることができる。
【0105】
[0116]例えば、マージ候補リスト構築プロセスでは、HMVPテーブル400のエントリ中に記憶されたHMVP候補のうちのいくつか又は全てが、マージ候補リスト中に挿入されることができる。いくつかの例では、マージ候補リスト中にHMVP候補を挿入することは、マージ候補リスト中の時間的動きベクトル予測子(TMVP)候補の後にHMVP候補を挿入することを含むことができる。
図3A及び
図3Bを参照して前述されたように、TMVP候補は、イネーブルにされ且つ利用可能である場合、空間的動きベクトル候補の後にMV候補リスト中に追加されることができる。
【0106】
[0117]いくつかの例では、上述されたプルーニングプロセスが、マージ候補リストを構築する際にHMVP候補に適用されることができる。例えば、マージ候補リスト中のマージ候補の総数が許容可能なマージ候補の最大数に達すると、マージ候補リスト構築プロセスを終了することができ、それ以上のHMVP候補をマージ候補リスト中に挿入することはできない。マージ候補リスト中の許容可能なマージ候補の最大数は、所定の数、又は、例えば、マージ候補リストが構築され得る復号器に符号化器からシグナリングされ得る数であることができる。
【0107】
[0118]マージ候補リストを構築するいくつかの例では、1つ以上の他の候補がマージ候補リスト中に挿入されることができる。いくつかの例では、現在のブロックに隣接しないことがある以前にコーディングされたブロックの動き情報は、より効率的な動きベクトル予測のために利用されることができる。例えば、マージ候補リストを構築する際に非隣接空間的マージ候補が使用されることができる。いくつかの例では、非隣接空間的マージ候補は、マージ候補リスト中のTMVP候補の前に挿入されることができる。いくつかの例では、非隣接空間的マージ候補は、TMVP候補の後に挿入されたHMVP候補のうちの1つ以上を含むことができる同じマージ候補リスト中のTMVP候補の前に挿入されることができる。マージ候補リストに挿入されることができる1つ以上の非隣接空間的マージ候補を識別し、フェッチすることが、以下に
図5を参照して説明される。
【0108】
[0119]
図5は、コーディングされることになる現在のブロック502を含むピクチャ又はスライス500を例示するブロック図である。いくつかの例では、マージ候補リストは、現在のブロック502をコーディングするために構築されることができる。例えば、現在のブロックについての動きベクトルは、マージ候補リスト中の1つ以上のマージ候補から取得されることができる。マージ候補リストは、非隣接空間的マージ候補を決定することを含むことができる。例えば、非隣接空間的マージ候補は、現在のブロック502に対する2つの非隣接近隣位置から導出された新しい空間候補を含むことができる。
【0109】
[0120](現在のブロック502の上且つ左の)左上ブロックB2510と、(現在のブロック502の上の)上ブロックB1512と、(現在のブロック502の上且つ右の)右上ブロックB0514と、(現在のブロック502の左の)左ブロックA1516と、(現在のブロック502の左且つ下の)左下ブロックA0518とを含む、現在のブロック502のいくつかの隣接又は近隣ブロックが示されている。いくつかの例では、非隣接空間的マージ候補は、現在のブロックの上及び/又は左の最も近い非隣接ブロックから取得されることができる。
【0110】
[0121]いくつかの例では、現在のブロック502についての非隣接空間的マージ候補を取得することは、垂直方向(現在のブロック502の上)及び/又は水平方向(現在のブロック502の左)に、以前に復号されたブロックをトレースすること(tracing)を含むことができる。垂直トレースバック(traced back)距離504は、現在のブロック502(例えば、現在のブロック502の上部境界)及び垂直非隣接ブロックVN520に対する垂直距離を示す。水平トレースバック距離506は、現在のブロック502(例えば、現在のブロック502の左境界)及び水平非隣接ブロックHN522に対する水平距離を示す。垂直トレースバック距離504及び水平トレースバック距離506は、1つのコーディングツリーユニット(CTU)のサイズに等しい最大距離に制約される。
【0111】
[0122]垂直非隣接ブロックVN520及び水平非隣接ブロックHN522などの非隣接空間的マージ候補は、以前に復号されたブロックを垂直方向及び水平方向にそれぞれトレースすることによって識別されることができる。例えば、垂直非隣接ブロックVN520をフェッチすることは、(1つのCTUの最大サイズに制約された)垂直トレースバック距離504内にインターコーディングされたブロックが存在するかどうかを決定するための垂直逆トレースプロセスを含むことができる。そのようなブロックが存在する場合、それは、垂直非隣接ブロックVN520として識別される。いくつかの例では、水平逆トレースプロセスが、垂直逆トレースプロセスに続いて実行され得る。水平逆トレースプロセスは、インターコーディングされたブロックが(1つのCTUの最大サイズに制約された)水平トレースバック距離506内に存在するかどうかを決定することを含むことができ、そのようなブロックが見出された場合、それは、水平非隣接ブロックHN522として識別される。
【0112】
[0123]いくつかの例では、垂直非隣接ブロックVN520及び水平非隣接ブロックHN522のうちの1つ以上は、非隣接空間的マージ候補として使用するためにフェッチされることができる。フェッチプロセスは、垂直非隣接ブロックVN520が垂直逆トレースプロセスにおいて識別される場合、垂直非隣接ブロックVN520をフェッチすることを含むことができる。フェッチプロセスは次いで、水平逆トレースプロセスに進むことができる。垂直非隣接ブロックVN520が垂直逆トレースプロセスにおいて識別されない場合、水平逆トレースプロセスは、インターコーディングされたブロックに遭遇したとき、又は水平トレースバック距離506が最大距離を超えたときに終了することができる。垂直非隣接ブロックVN520が識別され、フェッチされた場合、水平逆トレースプロセスは、垂直非隣接ブロックVN520中に包含されたMVとは異なるMVを包含するインターコーディングされたブロックに遭遇したとき、又は水平トレースバック距離506が最大距離を超えた場合に終了する。前述されたように、垂直非隣接ブロックVN520及び水平非隣接ブロックHN522などのフェッチされた非隣接空間的マージ候補のうちの1つ以上は、マージ候補リスト中のTMVP候補の前に追加される。
【0113】
[0124]
図4の参照に戻ると、いくつかのケースでは、HMVP候補はまた、AMVP候補リストを構築する際に使用されることができる。AMVP候補リスト構築プロセスでは、同じHMVPテーブル400(又はマージ候補リスト構築のために使用されるHMVPテーブルとは異なるHMVPテーブル)のエントリ中に記憶されたHMVP候補のうちのいくつか又は全てが、AMVP候補リスト中に挿入されることができる。いくつかの例では、HMVP候補をAMVP候補リスト中に挿入することは、HMVP候補のエントリのセット(例えば、k個の数の最も最近のエントリ又は最も最近でないエントリ)をAMVP候補リスト中のTMVP候補の後に挿入することを含むことができる。いくつかの例では、上述されたプルーニングプロセスは、AMVP候補リストを構築する際にHMVP候補に適用されることができる。いくつかの例では、AMVPターゲット参照ピクチャと同じ参照ピクチャを有するHMVP候補のみが、AMVP候補リストを構築するために使用され得る。
【0114】
[0125]それ故に、履歴ベースの動きベクトル予測子(HMVP)予測モードは、1つ以上のHMVP候補を含むHMVPテーブル400などの履歴ベースのルックアップテーブルの使用を伴うことができる。HMVP候補は、マージモード及びAMVPモードなどのインター予測モードで使用されることができる。いくつかの例では、異なるインター予測モードは、HMVPテーブル400からHMVP候補を選択するために異なる方法を使用することができる。
【0115】
[0126]ビデオコーデックにおけるインター予測に関する、システム、装置、方法(プロセスとも呼ばれる)、及びコンピュータ可読媒体が本明細書に説明される。例えば、本明細書により詳細に説明されるように、本明細書に説明される技法は、復号器側動きベクトル精密化(DMVR)に関する。いくつかのケースでは、本技法は、符号化デバイス104、復号デバイス112、又はそれらの組み合わせのうちの1つ以上によって実行されることができる。いくつかの例では、本技法は、HEVC(High Efficiency Video Coding)、及びVVC(Versatile Video Coding)などの既存のビデオコーデックのうちのいずれにも適用され得るか、又は任意の将来のビデオコーディング規格における効率的なコーディングツールであり得る。
【0116】
[0127]いくつかの例では、開示される技法はまた、イントラブロックコピー(IBC)予測において利用されることができる。IBC予測では、又はIBCモードでは、フレーム内の以前に符号化されたブロックが、現在のブロックについての予測子として使用されることができる。いくつかの例では、以前に符号化されたブロックは、HMVPテーブルから取得されることができる。いくつかの例では、IBC予測は、画像フレーム又はピクチャ中の冗長性を利用し、ブロックマッチングを実行して、サンプルのブロック(例えば、CU、PU、又は他のコーディングブロック)を、画像フレームの近隣領域中のサンプルの再構築されたブロックからの変位として予測することができる。コンテンツの繰り返しパターンから冗長性を除去することによって、IBC予測は、コーディング効率を改善することができる。
【0117】
[0128]いくつかの例では、インター予測又はイントラブロックコピー予測では、異なるインター予測モード(例えば、マージモード、AMVPモード、及び/又は他のインター予測モード)は、同じHMVPテーブルを共有することができる。いくつかのケースでは、異なるインター予測モードは、HMVPテーブルから候補を選択するために同じ又は異なる方法を使用することができる。
【0118】
[0129]前述されたように、HMVP候補は、FIFO方式でHMVPテーブル中に挿入され得る。例えば、より古い又はより最近でないHMVP候補は、より新しい又はより最近のHMVP候補がHMVPテーブル中に挿入される前に、HMVPテーブル中に挿入され得る。HMVPテーブルは、2つ以上のHMVP候補を記憶するために2つ以上のエントリを含むことができ、ここで、2つ以上のエントリは、2つ以上の関連付けられたインデックス値を有し得る。いくつかの例では、インデックス値は、最も低いインデックス値(例えば、「0」)から最も高いインデックス値(例えば、「N-1」、ここで、HMVPテーブルはN個のエントリを有する)への昇順であることができるインデックス順序に従うことができる。FIFOインプリメンテーションのいくつかの例では、より新しい又はより最近のHMVP候補がHMVPテーブル中に挿入されるにつれて、HMVP候補は、より低いインデックス値に関連付けられたエントリからより高いインデックス値に関連付けられたエントリにシフトされ得る。このことから、任意の時点において、より高いインデックス値を有するHMVPテーブルのエントリは、より低いインデックス値を有するエントリよりも古い又はより最近でないHMVP候補を含むことができる。例えば、第2のインデックス値に関連付けられた第2のエントリは、より最近でないHMVP候補を含むことができ、第1のインデックス値に関連付けられた第1のエントリは、より最近のHMVP候補を含むことができ、ここで、第1のインデックス値は、第2のインデックス値よりも低い。
【0119】
[0130]いくつかの例では、異なる予測モードについてのHMVPテーブルからのHMVP候補の選択は、HMVP候補に関連付けられた選択順序に基づくことができる。いくつかの例では、選択順序は、昇順インデックス値を有するインデックス順序に関して定義されることができる。インデックス順序におけるインデックス値が、インデックス値の昇順で第2のインデックス値よりも低い第1のインデックス値を含む例では、「正順」という用語は、第1のインデックス値を有する第1のエントリ中の第1のHMVP候補が、第2のインデックス値を有する第2のエントリ中の第2のHMVP候補の前に選択される選択順序を含むことができる。それに対応して、「逆順」という用語は、逆順である選択順序を含むことができ、ここで、第2のインデックス値を有する第2のエントリ中の第2のHMVP候補は、第1のインデックス値を有する第1のエントリ中の第1のHMVP候補の前に選択される。前述されたように、第2のインデックス値に関連付けられた第2のエントリは、より最近でないHMVP候補を含むことができ、第1のインデックス値に関連付けられた第1のエントリは、より最近のHMVP候補を含むことができる。本明細書に論述される例では、正順及び逆順は、任意の絶対的な方向又は固有の限定を伝えることを意図されない相対的な用語であることができることが理解されるであろう。
【0120】
[0131]いくつかの例では、(例えば、状態400Aにおける)
図4のHMVPテーブル400を参照すると、最も古い又は最も最近でないHMVP候補(HMVP0)は、インデックス値0~4のセットの中で最も高いインデックス値(4)に関連付けられた第2のエントリに存在し得る。最も新しいHMVP又は最も最近のHMVP候補(HMVP4)は、インデックス値0~4のセットの中で最も低いインデックス値(0)に関連付けられた第1のエントリに存在し得る。このことから、正順は、最も低いインデックス値から開始して最も高いインデックス値に向かって継続するインデックス値に関連付けられたHMVP候補を選択することを含むことができる。例えば、正順でHMVPテーブル400からHMVP候補を選択することは、(最も低いインデックス値に関連付けられた)第1のエントリにおける最も最近のHMVP候補が(最も高いインデックス値に関連付けられた)第2のエントリにおける最も最近でないHMVP候補の前に選択される順序でHMVP候補を選択することを含むことができる。それに対応して、逆順は、最も高いインデックス値から開始して最も低いインデックス値に向かって継続するインデックス値に関連付けられたHMVP候補を選択することを含むことができる。例えば、逆順でHMVPテーブル400からHMVP候補を選択することは、(最も高いインデックス値に関連付けられた)第2のエントリにおける最も最近でないHMVP候補が(最も低いインデックス値に関連付けられた)第1のエントリにおける最も最近のHMVP候補の前に選択される順序でHMVP候補を選択することを含むことができる。いくつかの例では、異なる予測モードについての異なる方法に従ってHMVP候補を選択することは、正順又は逆順から選択された異なる順序に従ってHMVP候補を選択することを含むことができる。
【0121】
[0132]いくつかの例では、異なる予測モードについての異なる方法に従ってHMVP候補を選択することはまた、異なる「サブサンプリングレート」に従ってHMVPテーブルからHMVP候補を選択することを含むことができる。本開示では、サブサンプリングレートに基づいてHMVPテーブルからHMVP候補を選択することは、正順又は逆順のうちのいずれかで、インデックスがある特定の間隔によって離間され得るHMVPテーブルのエントリから、HMVP候補を選択することを指す。例えば、「1」のサブサンプリングレートは、順次的なインデックスロケーションに関連付けられたエントリからHMVP候補を選択することを意味することができる。例えば、「1」のサブサンプリングレートで選択されたHMVP候補は、(正順又は逆順のうちのいずれかで)インデックス値がそれらの間にギャップを有さないHMVPテーブルのエントリから選択されたHMVP候補を含み得る。同様に、R(ここで、Rは正の整数である)のサブサンプリングレートは、(正順又は逆順のうちのいずれかで)選択される連続するHMVP候補について、インデックス値がRだけ分離されるHMVPテーブルのエントリから、HMVP候補を選択することを含むことができる。規則的な間隔若しくはギャップ又は一定のサブサンプリングレートを有するサブサンプリングが本明細書では詳細に論述されるが、選択されたHMVP候補のインデックス値間で間隔又はギャップが変化する可能性がある可変のサブサンプリングレートを有することが可能である。
【0122】
[0133]前述されたように、マージ候補リスト及びAMVP候補リストは、同じHMVPテーブルから、又は異なるHMVPテーブルから構築されることができる。更に、マージ候補リスト及びAMVP候補リストを構築することは、同じ方法又は異なる方法を含むことができ、ここで、異なる方法は、異なる選択順序及び/又は異なるサブサンプリングレートを伴うことができる。
【0123】
[0134]いくつかの例では、マージ候補リスト中のマージ候補は、マージ候補リストを構築するために選択されるHMVP候補から取得されたのと同じ動きベクトルを使用することができる。例えば、マージモードでは、動きベクトル予測は、時間的にコロケートされた候補から動き情報を継承することを含むことができる。いくつかの例では、最も最近のHMVP候補中に含まれた動きベクトル予測子は、マージモードでのインター予測のために動きベクトルが導出されている現在のブロックとのより強い相関を有し得る。それ故に、いくつかの例では、マージ候補リスト構築は、HMVP候補を選択する正順に従うことができ、ここで、より最近のHMVP候補は、より最近でないHMVP候補の前に選択される。
【0124】
[0135]いくつかの例では、AMVP候補リスト中のAMVP候補についての動きベクトルは、HMVP候補中に含まれる動きベクトルから予測されることができる。いくつかの例では、HMVPテーブル中の最も最近のHMVP候補は、より最近でないHMVP候補よりも、AMVPモードを使用して予測されている現在のブロックとのより少ない相関を有し得る。VVCでは、例えば、AMVPのためにHMVPテーブル中のより最近でない候補を使用することは、より正確な予測につながることができる。例えば、より古いHMVP候補は、AMVPモードで現在のブロックについての動きベクトルを予測する際により有用であり得る動きベクトルを含むことができる。いくつかの例では、AMVPモード予測のためにより最近でない又はより古いHMVP候補を使用することは、コーディング効率につながることができる。それ故に、いくつかの例では、AMVP候補リスト構築は、より最近でないHMVP候補がより最近のHMVP候補の前に選択される逆順に従うことができる。
【0125】
[0136]ここで、上述された技法の異なる例が、
図6A、
図6B、
図7A、及び
図7Bを参照して説明される。これらの例では、同じHMVPテーブルを共有することができるが、テーブルから候補を選択するために異なる選択方法を使用する異なるインター予測モードが説明される。以下の例示的な例では、HMVPテーブルのサイズは、Nとして表されることができ、サブサンプリングレートは、Rとして表されることができ、index_startは、それから候補選択が正順又は逆順のうちの1つで開始し得るHMVPテーブル中の初期インデックス値を表すことができる。任意の適切な値が、パラメータindex_start、N、及びRに割り当てられることができる。
【0126】
[0137]
図6A及び
図6Bは、本開示の実例的な態様に係るHMVPテーブル600を例示するブロック図である。HMVPテーブル600は、インデックス値が0から15までの範囲にある16個のエントリで示されている。例えば、HMVPテーブル600のサイズは、上述された表記を使用してN=16として表され得る。HMVPテーブル600のエントリは、
図4を参照して説明されたHMVPテーブル400のHMVP候補に類似するHMVP候補を含む。HMVPテーブル600では、FIFO方式で投入されていることがある16個のHMVP候補、HMVP0~HMVP15が示されており、ここで、HMVP0は、インデックス値15を有する第2のエントリにおける最も古い又は最も最近でない候補であり、HMVP15は、インデックス値0を有する第1のエントリにおける最も新しい又は最も最近の候補である。前述されたように、HMVP候補を選択する正順は、(index_start及びサブサンプリングレートに基づいて、第1のエントリ又は第2のエントリ自体のうちの1つ以上が選択されないことがあっても)第1のエントリが第2のエントリの前に選択されるであろう方向を含むことができる。同様に、HMVP候補を選択する逆順は、(index_start及びサブサンプリングレートに基づいて、第1のエントリ又は第2のエントリ自体のうちの1つ以上が選択されないことがあっても)第2のエントリが第1のエントリの前に選択されるであろう方向を含むことができる。
【0127】
[0138]
図6Aでは、正順でHMVPテーブル600からHMVP候補を選択することによってマージ候補リスト602を構築するための例示的な例が示される。
図6Bでは、逆順でHMVPテーブル600からHMVP候補を選択することによってマージ候補リスト604を構築するための例示的な例が示される。マージ候補リスト602及び604は、HMVPテーブル600から取得されたマージ候補に加えて1つ以上のマージ候補を含むことができることが、それらは例示されていないが、理解される。例えば、マージ候補リスト602及び/又はマージ候補リスト604はまた、時間的動きベクトル予測子(TMVP)候補と、
図5を参照して説明された垂直非隣接ブロックV
N520及び水平非隣接ブロックH
N522などの1つ以上の非隣接空間的マージ候補とを含むことができる。
【0128】
[0139]
図6Aでは、マージ候補リスト602を構築することは、パラメータindex_start=3、N=16、R=4を使用して正順でHMVP候補を選択することを含むことができる。そのような例では、HMVPテーブル600から候補を選択するために正順を使用することは、マージ候補リスト602を形成するセット{3,7,11,15}中のインデックス値からの選択された候補に導くことができる。例えば、3のindex_start値は、マージ候補リスト602中の第1のマージ候補が、HMVPテーブル600中のインデックス値3に関連付けられたエントリから取得されたHMVP12であることを示す。サブサンプリングレートはR=4であるので、HMVP候補は、選択される連続するHMVP候補間に4つのインデックス値のギャップを伴って選択される。このことから、マージ候補リスト602中の次のマージ候補は、HMVPテーブル600中のインデックス値7に関連付けられたエントリから取得されたHMVP8である。同様に、マージ候補リスト602中の次の2つのマージ候補は、HMVPテーブル600中のインデックス値11及び15に関連付けられたエントリからそれぞれ取得されたHMVP4及びHMVP0である。
【0129】
[0140]
図6Bでは、マージ候補リスト604を構築することは、パラメータindex_start=13、N=16、R=4を使用して逆順でHMVP候補を選択することを含むことができる。そのような例では、HMVPテーブル600から候補を選択するために逆順を使用することは、マージ候補リスト604を形成するセット{13,9,5,1}中のインデックス値からの選択された候補に導くことができる。例えば、上記の選択プロセスを使用して形成されたマージ候補リスト604は、インデックス値13、9、5、及び1におけるHMVPテーブル600のエントリからそれぞれ取得されたHMVP候補HMVP2、HMVP6、HMVP10、及びHMVP14を含むことができる。
【0130】
[0141]
図7A及び
図7Bは、本開示の実例的な態様に係るHMVPテーブル700を例示するブロック図である。HMVPテーブル700は、インデックス値が0から15までの範囲にある16個のエントリで示されている。例えば、HMVPテーブル700のサイズは、上述された表記を使用してN=16として表され得る。HMVPテーブル700のエントリは、
図4を参照して説明されたHMVPテーブル400のHMVP候補に類似するHMVP候補を含む。HMVPテーブル700では、FIFO方式で投入されていることがある16個のHMVP候補、HMVP0~HMVP15が示されており、ここで、HMVP0は、インデックス値15を有する第2のエントリにおける最も古い又は最も最近でない候補であり、HMVP15は、インデックス値0を有する第1のエントリにおける最も新しい又は最も最近の候補である。前述されたように、HMVP候補を選択する正順は、(index_start及びサブサンプリングレートに基づいて、第1のエントリ又は第2のエントリ自体のうちの1つ以上が選択されないことがあっても)第1のエントリが第2のエントリの前に選択されるであろう方向を含むことができる。同様に、HMVP候補を選択する逆順は、(index_start及びサブサンプリングレートに基づいて、第1のエントリ又は第2のエントリ自体のうちの1つ以上が選択されないことがあっても)第2のエントリが第1のエントリの前に選択されるであろう方向を含むことができる。
【0131】
[0142]
図7Aでは、正順でHMVPテーブル700からHMVP候補を選択することによってAMVP候補リスト702を構築するための例示的な例が示される。
図7Bでは、逆順でHMVPテーブル700からHMVP候補を選択することによってAMVP候補リスト704を構築するための例示的な例が示される。
図7A及び7Bでは、AMVPモードに対して使用されるindex_start、N、及びRの値は、マージモードについて
図6A及び6Bを参照して説明されたものと同じである(又は異なる)ことができる。
【0132】
[0143]例えば、
図7Aでは、AMVP候補リスト702を構築することは、パラメータindex_start=1、N=16、R=4を使用して正順でHMVP候補を選択することを含むことができる。そのような例では、HMVPテーブル700から候補を選択するために正順を使用することは、AMVP候補リスト702を形成するセット{1,5,9,13}中のインデックス値からの選択された候補に導くことができる。例えば、1のindex_start値は、AMVP候補リスト702中の第1のAMVP候補が、HMVPテーブル700中のインデックス値1に関連付けられたエントリから取得されたHMVP14であることを示す。サブサンプリングレートはR=4であるので、HMVP候補は、選択される連続するHMVP候補間に4つのインデックス値のギャップを伴って選択される。このことから、AMVP候補リスト702中の次のAMVP候補は、HMVPテーブル700中のインデックス値5に関連付けられたエントリから取得されるHMVP10である。同様に、AMVP候補リスト702中の次の2つのAMVP候補は、HMVPテーブル700中のインデックス値9及び13に関連付けられたエントリからそれぞれ取得されるHMVP6及びHMVP2である。
【0133】
[0144]
図7Bでは、AMVP候補リスト704を構築することは、パラメータindex_start=15、N=16、R=1を使用して逆順でHMVP候補を選択することを含むことができる。上述されたように、R=1は、1のサブサンプリングレートと呼ばれることができ、それは事実上、サブサンプリングが適用されていないことを意味する。そのような例では、HMVPテーブル700から候補を選択するために逆順を使用することは、AMVP候補リスト704を形成するセット{15,14,13,12}中のインデックス値からの選択された候補に導くことができる。例えば、上記の選択プロセスを使用して形成されたAMVP候補リスト704は、インデックス値15、14、13、及び12におけるHMVPテーブル700のエントリからそれぞれ取得されるHMVP候補HMVP0、HMVP1、HMVP2、及びHMVP3を含むことができる。
【0134】
[0145]それ故に、いくつかの例では、異なるインター予測モードは、HMVPテーブルから候補を選択する異なる方法を含むことができる。例えば、
図6Aのマージ候補リスト602は、R=4のサブサンプリングレートで、正順でHMVPテーブル600からHMVP候補を選択することによって構築されることができ、AMVP候補リスト704は、R=1のサブサンプリングレートで、逆順でHMVPテーブル700からHMVP候補を選択することによって構築されることができる。一般に、正順で候補を選択することは、インデックス値がセット{index_start,index_start+R,index_start+2R,...}に属するエントリから、HMVPテーブルから選択されたHMVP候補に導くことができ、逆順で候補を選択することは、インデックス値がセット{N-index_start,N-index_start-R,N-index_start-2R,...}に属するエントリから、HMVPテーブルから選択されたHMVP候補に導くことができる。
【0135】
[0146]いくつかの例では、異なるインター予測モードは、異なるHMVPテーブルを使用することができる。例えば、マージモードでは、マージ候補リストを構築するために単一のHMVPテーブル(例えば、HMVPテーブル600)が使用されることができ、ここで、HMVPテーブル600中の候補は、以前にコーディングされたインター予測されたCUの動き情報を含む。例えば、以前にコーディングされたインター予測されたCUが双方向予測を使用して予測される場合、HMVPテーブル600中のHMVP候補は、両方の予測方向における動き情報を含むことができる。
【0136】
[0147]別の例示的な例では、双方向予測のAMVPモードでは、各方向について動き情報を取得するために2つのHMVPテーブルが使用されることができる。例えば、一方のAMVP候補リストは、リスト0の動き情報を含むように構築されることができ、他方のAMVP候補リストは、リスト1の動き情報を含むように構築されることができる。
【0137】
[0148]
図8は、本明細書に説明される履歴ベースの動きベクトル予測技法を使用してビデオデータを処理するためのプロセス800の例を例示するフローチャートである。プロセス800は、
図1及び/又は
図10の復号デバイス112などのビデオ復号器によって実行されることができる。いくつかのケースでは、プロセス800がビデオ復号器によって実行されるとき、ビデオデータは、符号化されたビデオビットストリームから復号されることになるピクチャ又はピクチャの一部分(例えば、1つ以上のブロック)を含むことができる。
【0138】
[0149]ブロック802において、プロセス800は、ビデオデータの1つ以上のブロックを取得することを含む。ビデオデータのブロックは、CU、TU、PU、又はビデオデータの他のブロックを含むことができる。例えば、ビデオデータは、ビデオブロックが履歴ベースの動きベクトルテーブル中に記憶された動きベクトルを使用して他のブロックに関してコーディングされるブロックベースのビデオデータを含むことができる。
【0139】
[0150]ブロック804において、プロセス800は、履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することを含み、ここにおいて、第1のインデックス値に関連付けられたHMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられたHMVPテーブルの第2のエントリは、第2のHMVP候補を備え、第1のインデックス値は、インデックス順序では第2のインデックス値よりも低い。例えば、プロセス800は、履歴ベースの動きベクトル予測子(HMVP)テーブル700に、HMVP候補HMVP0~HMVP15などの2つ以上のHMVP候補を投入することができる。例えば、第1のインデックス値(0)に関連付けられたHMVPテーブルの第1のエントリは、第1のHMVP候補HMVP15を含むことができ、第2のインデックス値(15)に関連付けられたHMVPテーブルの第2のエントリは、第2のHMVP候補HMVP0を含むことができ、ここで、第1のインデックス値0は、インデックス順序では第2のインデックス値15よりも低い。いくつかの例では、第1のHMVP候補HMVP15は、HMVPテーブル700中の最も最近のHMVP候補であり、第1の時間に復号された動き情報を含むことができ、第2のHMVP候補HMVP0は、HMVPテーブル700中の最も最近でないHMVP候補であり、第2の時間に復号された動き情報を含むことができ、ここで、第1の時間は、第2の時間よりも時間的に後である。
【0140】
[0151]ブロック806において、プロセス800は、高度動きベクトル予測(AMVP)候補リストに対して、逆順でHMVPテーブルから1つ以上のHMVP候補を選択することを含み、ここにおいて、第2のHMVP候補は、逆順に従って第1のHMVP候補の前に選択される。例えば、プロセス800は、AMVP候補リスト704に対して、
図7Bに示されるように、逆順でHMVPテーブル700から1つ以上のHMVP候補HMVP0~HMVP3を選択することができる。そのような例では、第2のHMVP候補HMVP0は、逆順に従って第1のHMVP候補HMVP15の前に選択されるであろう(ただし、
図7BのAMVP候補リスト704中にはHMVP0~HMVP3のみが示されている)。
【0141】
[0152]ブロック808において、プロセス800は、AMVP候補リストに、選択された1つ以上のHMVP候補を追加することを含み、AMVP候補リストは、1つ以上のブロックに対してAMVPを実行するために使用される。例えば、プロセス800は、AMVP候補リスト704に選択された1つ以上のHMVP候補HMVP0~HMVP3を追加することができ、AMVP候補リスト704は、ビデオデータの1つ以上のブロックに対してAMVPを実行するために使用される。いくつかの例では、1つ以上のブロックは、AMVP候補リスト704の1つ以上のAMVP候補を使用して予測されることになる現在のブロックを含むことができる。
【0142】
[0153]いくつかの例では、AMVP候補リスト704に対して、逆順でHMVPテーブルから1つ以上のHMVP候補を選択することは、選択中にエントリのサブサンプリングを実行することなく、連続するインデックス値15~12に関連付けられたHMVPテーブルの連続するエントリから、1つ以上のHMVP候補HMVP0~HMVP3を選択することを含むことができる。例えば、R=1のサブサンプリングレートは、選択中にエントリのサブサンプリングを実行しないことを示すことができる。
【0143】
[0154]いくつかの例では、マージ候補リストはまた、AMVP候補リストを構築するために使用された同じHMVPテーブルから、又は異なるHMVPテーブルから構築されることができる。一例では、
図6Aに示されたHMVPテーブル600は、
図7BのHMVPテーブル700と同じHMVPテーブルであることができる。いくつかの例では、マージ候補リスト602は、正順でHMVPテーブル600から1つ以上のHMVP候補HMVP12、HMVP8、HMVP4、及びHMVP0を選択することによって構築されることができる。正順に従って、第1のインデックス値(0)に関連付けられたHMVPテーブル600の第1のエントリ中の第1のHMVP候補HMVP15は、第2のインデックス値(15)に関連付けられたHMVPテーブル600の第2のエントリ中の第2のHMVP候補HMVP0の前に選択されることができるが、HMVP候補HMVP15及びHMVP0のうちの1つ以上又は両方が実際に選択される必要はない。いくつかの例では、選択された1つ以上のHMVP候補HMVP12、HMVP8、HMVP4、及びHMVP0は、マージ候補リスト602に追加されることができ、マージ候補リスト602は、1つ以上のブロックについてのマージ予測を実行するために使用される。そのような例では、正順でHMVPテーブル600から1つ以上のHMVP候補HMVP12、HMVP8、HMVP4、及びHMVP0を選択することは、サブサンプリングレートR=4を使用してエントリをサブサンプリングすることを含むことができ、ここで、サブサンプリングレートに基づく分離は、連続するHMVP候補が選択されるエントリに関連付けられたインデックス値{3,7,11,15}の間で維持される。
【0144】
[0155]いくつかの例では、HMVPテーブルのサイズ(N)、サブサンプリングレート(R)、初期位置(index_start)、HMVPテーブルの数、及び/又は選択方法は、符号化器側と復号器側の両方において予め定義されることができるか、又はシーケンスレベル(例えば、SPS又は他のシーケンスレベルシグナリング)、ピクチャレベル(例えば、PPS又は他のピクチャレベルシグナリング)、スライスレベル(例えば、スライスヘッダ又は他のスライスレベルシグナリング)、ブロックレベル、又は他の適したシグナリングで符号化器から復号器にシグナリングされる1つ以上の値として設定されることができる。いくつかの例では、異なるパラメータについての1つ以上の値は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ(SH)、コーディングツリーユニット(CTU)又はコーディングユニット(CU)中でシグナリングされることができる。
【0145】
[0156]いくつかの例では、本明細書に説明されたプロセスは、符号化デバイス104、復号デバイス112、及び/又は任意の他のコンピューティングデバイスなど、コンピューティングデバイス又は装置によって実行され得る。いくつかのケースでは、コンピューティングデバイス又は装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、又は本明細書に説明されたプロセスのステップを実行するように構成されたデバイスの他のコンポーネントを含み得る。いくつかの例では、コンピューティングデバイス又は装置は、ビデオフレームを含むビデオデータ(例えば、ビデオシーケンス)をキャプチャするように構成されたカメラを含み得る。例えば、コンピューティングデバイスは、カメラデバイスを含み得、それは、ビデオコーデックを含むことも含まないこともある。別の例として、コンピューティングデバイスは、カメラを有するモバイルデバイス(例えば、デジタルカメラ、IPカメラ、若しくは同様のものなどのカメラデバイス、カメラを含む携帯電話若しくはタブレット、又はカメラを有する他のタイプのデバイス)を含み得る。いくつかのケースでは、コンピューティングデバイスは、画像を表示するためのディスプレイを含み得る。いくつかの例では、カメラ又はビデオデータをキャプチャする他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、そのケースでは、コンピューティングデバイスは、キャプチャされたビデオデータを受信する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェース、トランシーバ、及び/又は送信機を更に含み得る。ネットワークインターフェース、トランシーバ、及び/又は送信機は、インターネットプロトコル(IP)ベースのデータ又は他のネットワークデータを通信するように構成され得る。
【0146】
[0157]本明細書に説明されたプロセスは、ハードウェア、コンピュータ命令、又はそれらの組み合わせにおいてインプリメントされることができる。コンピュータ命令のコンテキストでは、動作は、1つ以上のプロセッサによって実行されると、記載された動作を実行する、1つ以上のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、又は特定のデータタイプをインプリメントする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、及び同様のものを含む。動作が説明された順序は、限定として解釈されることを意図されず、任意の数の説明された動作は、プロセスをインプリメントするために任意の順序で及び/又は平行して組み合わされることができる。
【0147】
[0158]加えて、本明細書に説明されたプロセスは、実行可能命令で構成された1つ以上のコンピュータシステムの制御下で実行され得、1つ以上のプロセッサ上で、ハードウェアによって、又はそれらの組み合わせで、集合的に実行するコード(例えば、実行可能命令、1つ以上のコンピュータプログラム、又は1つ以上のアプリケーション)としてインプリメントされ得る。上述されたように、コードは、例えば、1つ以上のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読又は機械可読記憶媒体上に記憶され得る。コンピュータ可読又は機械可読記憶媒体は、非一時的であり得る。
【0148】
[0159]本明細書に論述されるコーディング技法は、実例的なビデオ符号化及び復号システム(例えば、システム100)においてインプリメントされ得る。いくつかの例では、システムは、宛先デバイスによって後の時間に復号されることになる符号化されたビデオデータを提供するソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイス及び宛先デバイスは、デスクトップコンピュータ、ノートブック(即ち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、又は同様のものを含む、幅広い範囲のデバイスのうちの任意のものを備え得る。いくつかのケースでは、ソースデバイス及び宛先デバイスは、ワイヤレス通信のために装備され得る。
【0149】
[0160]宛先デバイスは、コンピュータ可読媒体を介して復号されることになる符号化されたビデオデータを受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスに符号化されたビデオデータを移動させることが可能な任意のタイプの媒体又はデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスがリアルタイムで宛先デバイスに符号化されたビデオデータを直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイスに送信され得る。通信媒体は、無線周波数(RF)スペクトル又は1つ以上の物理的伝送線路などの任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイスから宛先デバイスへの通信を容易にするのに有用であり得る任意の他の機器を含み得る。
【0150】
[0161]いくつかの例では、符号化されたデータは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化されたビデオデータを記憶するための任意の他の適したデジタル記憶媒体などの、様々な分散された又は局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。更なる例では、記憶デバイスは、ファイルサーバ、又はソースデバイスによって生成される符号化されたビデオを記憶し得る別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミング又はダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶することと、宛先デバイスにその符号化されたビデオデータを送信することとが可能な任意のタイプのサーバであり得る。実例的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、又はローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む任意の標準データ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル(例えば、Wi-Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム、等)、又はその両方の組み合わせを含み得る。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組み合わせであり得る。
【0151】
[0162]本開示の技法は、ワイヤレスアプリケーション又は設定に必ずしも限定されない。本技法は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、DASH(Dynamic Adaptive Streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、又は他のアプリケーションなどの、様々なマルチメディアアプリケーションのうちの任意のものをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオ電話通信などのアプリケーションをサポートするために、1方向又は2方向ビデオ送信をサポートするように構成され得る。
【0152】
[0163]一例では、ソースデバイスは、ビデオソース、ビデオ符号化器、及び出力インターフェースを含む。宛先デバイスは、入力インターフェース、ビデオ復号器、及びディスプレイデバイスを含み得る。ソースデバイスのビデオ符号化器は、本明細書に開示される技法を適用するように構成され得る。他の例では、ソースデバイス及び宛先デバイスは、他のコンポーネント又は配置を含み得る。例えば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイスは、一体化されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0153】
[0164]上記の実例的なシステムは、単に一例に過ぎない。平行してビデオデータを処理するための技法は、任意のデジタルビデオ符号化及び/又は復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、本技法はまた、典型的に「CODEC」と呼ばれるビデオ符号化器/復号器によって実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス及び宛先デバイスは単に、ソースデバイスが宛先デバイスへの送信のためのコーディングされたビデオデータを生成するそのようなコーディングデバイスの例に過ぎない。いくつかの例では、ソースデバイス及び宛先デバイスは、それらデバイスの各々がビデオ符号化及び復号コンポーネントを含むような実質的に対称的な方法で動作し得る。故に、実例的なシステムは、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、又はビデオ電話通信のために、ビデオデバイス間の1方向又は2方向ビデオ送信をサポートし得る。
【0154】
[0165]ビデオソースは、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを包含するビデオアーカイブ、及び/又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオソースは、ソースビデオとしてコンピュータグラフィックスベースのデータを、又はライブビデオ、アーカイブされたビデオ、及びコンピュータ生成されたビデオの組み合わせを生成し得る。いくつかのケースでは、ビデオソースがビデオカメラである場合、ソースデバイス及び宛先デバイスは、いわゆるカメラ電話又はビデオ電話を形成し得る。上述されたように、しかしながら、本開示に説明される技法は、一般にビデオコーディングに適用可能であり得、ワイヤレス及び/又はワイヤードアプリケーションに適用され得る。各ケースでは、キャプチャされた、事前にキャプチャされた、又はコンピュータ生成されたビデオは、ビデオ符号化器によって符号化され得る。符号化されたビデオ情報は次いで、コンピュータ可読媒体上に出力インターフェースによって出力され得る。
【0155】
[0166]述べられたように、コンピュータ可読媒体は、ワイヤレスブロードキャスト若しくはワイヤードネットワーク送信などの一過性媒体、又はハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-rayディスク、若しくは他のコンピュータ可読媒体などの記憶媒体(即ち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイスから符号化されたビデオデータを受信し、例えば、ネットワーク送信を介して、宛先デバイスに符号化されたビデオデータを提供し得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイスから符号化されたビデオデータを受信し、符号化されたビデオデータを包含するディスクを製造し得る。従って、コンピュータ可読媒体は、様々な例において、様々な形態の1つ以上のコンピュータ可読媒体を含むことが理解され得る。
【0156】
[0167]宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロック及び他のコーディングされたユニット、例えば、ピクチャのグループ(GOP:group of pictures)の特性及び/又は処理を記述するシンタックス要素を含む、ビデオ符号化器によって定義されるシンタックス情報を含み得、それはまた、ビデオ復号器によって使用される。ディスプレイデバイスは、ユーザに復号されたビデオデータを表示し、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのうちの任意のものを備え得る。本願の様々な実施形態が説明されてきた。
【0157】
[0168]符号化デバイス104及び復号デバイス112の特定の詳細は、
図9及び
図10にそれぞれ示される。
図9は、本開示に説明された技法のうちの1つ以上をインプリメントし得る実例的な符号化デバイス104を例示するブロック図である。符号化デバイス104は、例えば、本明細書に説明されたシンタックス構造(例えば、VPS、SPS、PPS、又は他のシンタックス要素のシンタックス構造)を生成し得る。符号化デバイス104は、ビデオスライス内のビデオブロックのイントラ予測及びインター予測コーディングを実行し得る。前述されたように、イントラコーディングは、所与の1ビデオフレーム又はピクチャ内の空間的冗長性を低減又は除去するために、空間的予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接又は周囲フレーム内の時間的冗長性を低減又は除去するために、時間的予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちの任意のものを指し得る。単方向予測(Pモード)又は双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちの任意のものを指し得る。
【0158】
[0169]符号化デバイス104は、区分ユニット35、予測処理ユニット41、フィルタユニット63、ピクチャメモリ64、加算器50、変換処理ユニット52、量子化ユニット54、及びエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、及びイントラ予測処理ユニット46を含む。ビデオブロック再構築のために、符号化デバイス104はまた、逆量子化ユニット58、逆変換処理ユニット60、及び加算器62を含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、及びサンプル適応オフセット(SAO)フィルタなどの1つ以上のループフィルタを表すことを意図されている。フィルタユニット63は、インループフィルタとして
図9に示されているが、他の構成では、フィルタユニット63は、ポストループフィルタとしてインプリメントされ得る。後処理デバイス57は、符号化デバイス104によって生成される符号化されたビデオデータに対して追加の処理を実行し得る。本開示の技法は、いくつかの事例では、符号化デバイス104によってインプリメントされ得る。他の事例では、しかしながら、本開示の技法のうちの1つ以上は、後処理デバイス57によってインプリメントされ得る。
【0159】
[0170]
図9に示されているように、符号化デバイス104は、ビデオデータを受信し、区分ユニット35は、データをビデオブロックに区分する。区分はまた、スライス、スライスセグメント、タイル、又は他のより大きいユニットへの区分、並びに、例えば、LCU及びCUの四分木構造に従ったビデオブロック区分を含み得る。符号化デバイス104は、一般に、符号化されることになるビデオスライス内のビデオブロックを符号化するコンポーネントを例示している。スライスは、複数のビデオブロックに(及びことによると、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(例えば、コーディングレート及び歪みのレベル、又は同様のもの)に基づいて、現在のビデオブロックに対して、複数のイントラ予測コーディングモードのうちの1つ又は複数のインター予測コーディングモードのうちの1つなどの複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、及び参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器62に、結果として生じるイントラ又はインターコーディングされたブロックを提供し得る。
【0160】
[0171]予測処理ユニット41内のイントラ予測処理ユニット46は、空間的圧縮を提供するために、コーディングされることになる現在のブロックと同じフレーム又はスライス中の1つ以上の近隣ブロックに対して、現在のビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42及び動き補償ユニット44は、時間的圧縮を提供するために、1つ以上の参照ピクチャ中の1つ以上の予測ブロックに対して、現在のビデオブロックのインター予測コーディングを実行する。
【0161】
[0172]動き推定ユニット42は、ビデオシーケンスについての所定のパターンに従って、ビデオスライスについてのインター予測モードを決定するように構成され得る。所定のパターンは、Pスライス、Bスライス、又はGPBスライスとして、シーケンス中のビデオスライスを指定し得る。動き推定ユニット42及び動き補償ユニット44は、高度に一体化され得るが、概念的な目的のために別個に例示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレーム又はピクチャ内のビデオブロックの予測ユニット(PU)の変位を示し得る。
【0162】
[0173]予測ブロックは、ピクセル差分の観点から、コーディングされることになるビデオブロックのPUと密接にマッチすることを見出されるブロックであり、それは、絶対差分の和(SAD:sum of absolute difference)、2乗差分の和(SSD:sum of square difference)、又は他の差分メトリックによって決定され得る。いくつかの例では、符号化デバイス104は、ピクチャメモリ64中に記憶された参照ピクチャのサブ整数ピクセル位置についての値を計算し得る。例えば、符号化デバイス104は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、又は他の分数ピクセル位置の値を補間し得る。従って、動き推定ユニット42は、フルピクセル位置及び分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【0163】
[0174]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUについての動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)又は第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々は、ピクチャメモリ64中に記憶された1つ以上の参照ピクチャを識別する。動き推定ユニット42は、エントロピー符号化ユニット56及び動き補償ユニット44に計算された動きベクトルを送る。
【0164】
[0175]動き補償ユニット44によって実行される動き補償は、動き推定によって決定される動きベクトルに基づいて予測ブロックをフェッチする又は生成することを伴い得、ことによるとサブピクセル精度に対する補間を実行する。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリスト中に、動きベクトルが指し示す予測ブロックをロケートし得る。符号化デバイス104は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、ピクセル差分値を形成する。ピクセル差分値は、ブロックについての残差データを形成し、ルーマ差分成分とクロマ差分成分との両方を含み得る。加算器50は、この減算演算を実行する1つ以上のコンポーネントを表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス112によって使用するための、ビデオブロック及びビデオスライスに関連付けられたシンタックス要素を生成し得る。
【0165】
[0176]イントラ予測処理ユニット46は、上述されたように、動き推定ユニット42及び動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット処理46は、テストされたモードから、使用するための適切なイントラ予測モードを選択し得る。例えば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードについてのレート-歪み分析を使用してレート-歪み値を計算し得、テストされたモードの中で最良のレート-歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、一般に、符号化されたブロックと、符号化されたブロックを作り出すために符号化された元の符号化されていないブロックとの間の歪み(又は誤差)の量、並びに符号化されたブロックを作り出すために使用されたビットレート(即ち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについての最良のレート-歪み値を示すかを決定するために、様々な符号化されたブロックについての歪み及びレートから比率を計算し得る。
【0166】
[0177]いずれのケースでも、ブロックについてのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、エントロピー符号化ユニット56にブロックについての選択されたイントラ予測モードを示す情報を提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス104は、様々なブロックについての符号化コンテキストの定義、並びにそのコンテキストの各々に対して使用する最確イントラ予測モード、イントラ予測モードインデックステーブル、及び修正されたイントラ予測モードインデックステーブルのインジケーションを、送信されたビットストリーム構成データ中に含め得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブル及び複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る。
【0167】
[0154]予測処理ユニット41がインター予測又はイントラ予測のうちのいずれかを介して現在のビデオブロックについての予測ブロックを生成した後に、符号化デバイス104は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つ以上のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、ピクセルドメインから周波数ドメインなどの変換ドメインに残差ビデオデータを変換し得る。
【0168】
[0178]変換処理ユニット52は、量子化ユニット54に結果として生じる変換係数を送り得る。量子化ユニット54は、ビットレートを更に低減するために、変換係数を量子化する。量子化プロセスは、係数のうちのいくつか又は全てに関連付けられたビット深度を低減し得る。量子化の程度は、量子化パラメータを調節することによって修正され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行し得る。代替として、エントロピー符号化ユニット56が走査を実行し得る。
【0169】
[0179]量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット56は、コンテキスト適応可変長コーディング(CAVLC: context adaptive variable length coding)、コンテキスト適応バイナリ算術コーディング(CABAC: context adaptive binary arithmetic coding)、シンタックスベースのコンテキスト適応バイナリ算術コーディング(SBAC: syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE: probability interval partitioning entropy)コーディング、又は別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化されたビットストリームは、復号デバイス112に送信され得るか、又は復号デバイス112による後の送信若しくは取り出しのためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスについての動きベクトル及び他のシンタックス要素をエントロピー符号化し得る。
【0170】
[0180]逆量子化ユニット58及び逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後に使用するためにピクセルドメイン中の残差ブロックを再構築するために、逆量子化及び逆変換をそれぞれ適用する。動き補償ユニット44は、参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを追加することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つ以上の補間フィルタを適用し得る。加算器62は、ピクチャメモリ64中での記憶のための参照ブロックを作り出すために、動き補償ユニット44によって作り出された動き補償予測ブロックに再構築された残差ブロックを追加する。参照ブロックは、後続のビデオフレーム又はピクチャ中のブロックをインター予測するために、参照ブロックとして動き推定ユニット42及び動き補償ユニット44によって使用され得る。
【0171】
[0181]符号化デバイス104は、本明細書に説明された技法のうちの任意のものを実行し得る。本開示のいくつかの技法は、一般に、符号化デバイス104に関して説明されてきたが、上述されたように、本開示の技法のうちのいくつかはまた、後処理デバイス57によってインプリメントされ得る。
【0172】
[0182]
図9の符号化デバイス104は、本明細書に説明された変換コーディング技法のうちの1つ以上を実行するように構成されたビデオ符号化器の例を表す。符号化デバイス104は、
図8に関して上述されたプロセスを含む、本明細書に説明された技法のうちの任意のものを実行し得る。
【0173】
[0183]
図10は、実例的な復号デバイス112を例示するブロック図である。復号デバイス112は、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、フィルタユニット91、及びピクチャメモリ92を含む。予測処理ユニット81は、動き補償ユニット82及びイントラ予測処理ユニット84を含む。復号デバイス112は、いくつかの例では、
図9からの符号化デバイス104に関して説明された符号化パスとは一般に相反する復号パスを実行し得る。
【0174】
[0184]復号プロセス中に、復号デバイス112は、符号化デバイス104によって送られる符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス112は、符号化デバイス104から符号化されたビデオビットストリームを受信し得る。いくつかの実施形態では、復号デバイス112は、サーバ、媒体認識ネットワーク要素(MANE:media-aware network element)、ビデオエディタ/スプライサ、又は上述された技法のうちの1つ以上をインプリメントするように構成された他のそのようなデバイスなどのネットワークエンティティ79から符号化されたビデオビットストリームを受信し得る。ネットワークエンティティ79は、符号化デバイス104を含むことも含まないこともある。本開示に説明された技法のうちのいくつかは、ネットワークエンティティ79が復号デバイス112に符号化されたビデオビットストリームを送信するより前にネットワークエンティティ79によってインプリメントされ得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79及び復号デバイス112は、別個のデバイスの一部であり得、他の事例では、ネットワークエンティティ79に関して説明された機能は、復号デバイス112を備える同じデバイスによって実行され得る。
【0175】
[0185]復号デバイス112のエントロピー復号ユニット80は、量子化された係数、動きベクトル、及び他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、予測処理ユニット81に動きベクトル及び他のシンタックス要素を転送する。復号デバイス112は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受信し得る。エントロピー復号ユニット80は、VPS、SPS、及びPPSなどの、又は複数の(or more)パラメータセット中の固定長シンタックス要素と可変長シンタックス要素との両方を処理及び構文解析し得る。
【0176】
[0186]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、現在のフレーム又はピクチャの以前に復号されたブロックからのデータ及びシグナリングされたイントラ予測モードに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコーディングされた(即ち、B、P又はGPB)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトル及び他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを作り出す。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから作り出され得る。復号デバイス112は、ピクチャメモリ92中に記憶された参照ピクチャに基づいて、デフォルト構築技法を使用して参照フレームリスト、リスト0及びリスト1を構築し得る。
【0177】
[0187]動き補償ユニット82は、動きベクトル及び他のシンタックス要素を構文解析することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在のビデオブロックについての予測ブロックを作り出すために予測情報を使用する。例えば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)と、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)と、スライスについての1つ以上の参照ピクチャリストについての構築情報と、スライスの各インター符号化されたビデオブロックについての動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測状態と、現在のビデオスライス中のビデオブロックを復号するための他の情報と、を決定するために、パラメータセット中の1つ以上のシンタックス要素を使用し得る。
【0178】
[0188]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルについての補間された値を計算するために、ビデオブロックの符号化中に符号化デバイス104によって使用されるような補間フィルタを使用し得る。このケースでは、動き補償ユニット82は、受信されたシンタックス要素から符号化デバイス104によって使用される補間フィルタを決定し得、予測ブロックを作り出すために補間フィルタを使用し得る。
【0179】
[0189]逆量子化ユニット86は、ビットストリーム中で提供され、且つエントロピー復号ユニット80によって復号された、量子化された変換係数を逆量子化(inverse quantizes)、即ち、逆量子化(de-quantizes)する。逆量子化プロセスは、量子化の程度、及び同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックについて符号化デバイス104によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセルドメイン中の残差ブロックを作り出すために、変換係数に逆変換(例えば、逆DCT又は他の適した逆変換)、逆整数変換、又は概念的に同様の逆変換プロセスを適用する。
【0180】
[0190]動き補償ユニット82が動きベクトル及び他のシンタックス要素に基づいて現在のビデオブロックについての予測ブロックを生成した後に、復号デバイス112は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つ以上のコンポーネントを表す。所望される場合、(コーディングループ中又はコーディングループ後のうちのいずれかの)ループフィルタはまた、ピクセル遷移を平滑化するために、又は別様にビデオ品質を改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、及びサンプル適応オフセット(SAO)フィルタなどの1つ以上のループフィルタを表すことを意図される。フィルタユニット91は、インループフィルタとして
図10に示されているが、他の構成では、フィルタユニット91は、ポストループフィルタとしてインプリメントされ得る。所与のフレーム又はピクチャ中の復号されたビデオブロックは次いで、ピクチャメモリ92中に記憶され、それは、後続する動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ92はまた、
図1に示されているビデオ宛先デバイス122などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
【0181】
[0191]
図10の復号デバイス112は、本明細書に説明された変換コーディング技法のうちの1つ以上を実行するように構成されたビデオ復号器の例を表す。復号デバイス112は、
図8に関して上述されたプロセス800を含む、本明細書に説明された技法のうちの任意のものを実行し得る。
【0182】
[0192]前述の説明では、本願の態様は、その特定の実施形態を参照して説明されているが、当業者は、本願の主題はそれに限定されないと認識するであろう。このことから、本願の例示的な実施形態が本明細書に詳細に説明されてきたが、発明の概念は、別様に様々に具現化及び用いられ得、添付された特許請求の範囲は、先行技術によって限定される場合を除いて、そのような変形を含むように解釈されることを意図されることが理解されるべきである。上述された主題の様々な特徴及び態様は、個々に又は一緒に使用され得る。更に、実施形態は、本明細書のより広い趣旨及び範囲から逸脱することなく、本明細書に説明されたものを超えたあらゆる数の環境及び用途において利用されることができる。本明細書及び図面は、それ故に、制限的ではなく、例示的であると見なされるべきである。例示を目的として、方法は、特定の順序で説明された。代替の実施形態では、方法は、説明されたものとは異なる順序で実行され得ることが理解されるべきである。
【0183】
[0193]当業者は、本明細書で使用される未満(「<」)及び超過(「>」)記号又は用語が、本説明の範囲から逸脱することなく、以下(「≦」)及び以上(「≧」)記号とそれぞれ置き換えられることができることを理解するであろう。
【0184】
[0194]コンポーネントがある特定の動作を実行する「ように構成される」ものとして説明される場合、そのような構成は、例えば、動作を実行するように電子回路又は他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路(例えば、マイクロプロセッサ、又は他の適した電子回路)をプログラミングすることによって、又はそれらの任意の組み合わせで、達成されることができる。
【0185】
[0195]セット「のうちの少なくとも1つ」又はセット「のうちの1つ以上」を記載する特許請求の範囲の文言又は他の文言は、セットの1つのメンバ又はセットの複数のメンバが特許請求の範囲を満たすことを示す。例えば、「A及びBのうちの少なくとも1つ」を記載する特許請求の範囲の文言は、A、B、又はAとBを意味する。別の例では、「A及びBのうちの1つ以上」を記載する特許請求の範囲の文言は、A、B、又はAとBを意味する。別の例では「A、B、及びCのうちの1つ以上」を記載する特許請求の範囲の文言は、A、B、C、AとB、AとC、BとC、又はAとBとCの全てを意味する。
【0186】
[0196]本明細書に開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの組み合わせとしてインプリメントされ得る。ハードウェア及びソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、及びステップが、一般にそれらの機能の観点から上述されてきた。そのような機能がハードウェアとしてインプリメントされるか、又はソフトウェアとしてインプリメントされるかは、特定のアプリケーションとシステム全体に課せられた設計制約とに依存する。当業者は、各特定のアプリケーションについて、説明された機能を様々な方法でインプリメントし得るが、そのようなインプリメンテーションの決定は、本願の範囲からの逸脱を引き起こしていると解釈されるべきでない。
【0187】
[0197]本明細書に説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいてインプリメントされ得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又はワイヤレス通信デバイスハンドセット及び他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイスなどの様々なデバイスのうちの任意のものにおいてインプリメントされ得る。モジュール又はコンポーネントとして説明されたどの特徴も、集積ロジックデバイスにおいて共に、又はディスクリートではあるが相互運用可能なロジックデバイスとして別個に、インプリメントされ得る。ソフトウェアにおいてインプリメントされる場合、本技法は、実行されると、上述された方法のうちの1つ以上を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成し得、それは、パッケージング材料を含み得る。コンピュータ可読媒体は、同期動的ランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、不揮発ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM(登録商標))、FLASH(登録商標)メモリ、磁気又は光データ記憶媒体、及び同様のものなどのメモリ又はデータ記憶媒体を備え得る。本技法は加えて、又は代替として、命令又はデータ構造の形態でプログラムコードを搬送又は通信し、且つコンピュータによってアクセス、読み取り、及び/又は実行されることができる、伝搬される信号又は波などのコンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【0188】
[0198]プログラムコードは、プロセッサによって実行され得、それは、1つ以上のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の同等の集積回路若しくはディスクリートロジック回路などの1つ以上のプロセッサを含み得る。そのようなプロセッサは、本開示に説明された技法のうちの任意のものを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携した1つ以上のマイクロプロセッサ、又は任意の他のそのような構成としてインプリメントされ得る。それ故に、「プロセッサ」という用語は、本明細書に使用される場合、前述の構造のうちの任意のもの、前述の構造の任意の組み合わせ、又は本明細書に説明された技法のインプリメンテーションに適した任意の他の構造若しくは装置を指し得る。加えて、いくつかの態様では、本明細書に説明された機能は、符号化及び復号のために構成された専用ソフトウェアモジュール若しくはハードウェアモジュール内で提供され得るか、又は組み合わされたビデオ符号化器-復号器(CODEC)中に組み込まれ得る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを処理する方法であって、前記方法は、
ビデオデータの1つ以上のブロックを取得することと、
履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することと、ここにおいて、第1のインデックス値に関連付けられた前記HMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられた前記HMVPテーブルの第2のエントリは、第2のHMVP候補を備え、前記第1のインデックス値は、前記第2のインデックス値よりも低い、
高度動きベクトル予測(AMVP)候補リストに対して、逆順で前記HMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、前記第2のHMVP候補は、前記逆順に従って前記第1のHMVP候補の前に選択される、
前記AMVP候補リストに前記選択された1つ以上のHMVP候補を追加することと、前記AMVP候補リストは、前記1つ以上のブロックに対してAMVPを実行するために使用される、
を備える、方法。
[C2]
前記第1のHMVP候補は、第1の時間に復号された動き情報を備え、前記第2のHMVP候補は、第2の時間に復号された動き情報を備え、前記第1の時間は、前記第2の時間よりも時間的に後である、C1に記載の方法。
[C3]
前記逆順で前記HMVPテーブルから前記1つ以上のHMVP候補を前記選択することは、選択中に前記HMVPテーブルのエントリのサブサンプリングを実行することなく、連続するインデックス値に関連付けられた前記HMVPテーブルの連続するエントリから前記1つ以上のHMVP候補を選択することを備える、C1に記載の方法。
[C4]
マージ候補リストに対して、正順で前記HMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、前記第1のHMVP候補は、前記正順に従って前記第2のHMVP候補の前に選択される、
前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することと、前記マージ候補リストは、前記1つ以上のブロックについてのマージ予測を実行するために使用される、
をさらに備える、C1に記載の方法。
[C5]
前記正順で前記HMVPテーブルから前記1つ以上のHMVP候補を前記選択することは、サブサンプリングレートを使用する前記HMVPテーブルのエントリのサブサンプリングを備え、前記サブサンプリングレートに基づく分離は、連続するHMVP候補が選択される前記HMVPテーブルのエントリに関連付けられたインデックス値間で維持される、C4に記載の方法。
[C6]
前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することは、前記マージ候補リストに時間的動きベクトル予測子(TMVP)候補を追加した後に、前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することを備える、C4に記載の方法。
[C7]
前記2つ以上のHMVP候補は、双方向予測の両方の予測方向についての動き情報を備える、C1に記載の方法。
[C8]
少なくとも2つのHMVPテーブルが、双予測を伴うAMVPモードで使用される、C1に記載の方法。
[C9]
第1のHMVPテーブルが、第1の参照ピクチャリストに対して使用され、第2のHMVPテーブルが、第2の参照ピクチャリストに対して使用される、C8に記載の方法。
[C10]
前記AMVPは、イントラブロックコピーAMVP予測モードを含む、C1に記載の方法。
[C11]
前記方法は、復号器によって実行され、前記ビデオデータは、符号化されたビデオビットストリームから取得される、C1に記載の方法。
[C12]
前記方法は、符号化器によって実行される、C1に記載の方法。
[C13]
ビデオデータを処理するための装置であって、前記装置は、
メモリと、
回路中にインプリメントされたプロセッサと、
を備え、前記プロセッサは、
ビデオデータの1つ以上のブロックを取得することと、
履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することと、ここにおいて、第1のインデックス値に関連付けられた前記HMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられた前記HMVPテーブルの第2のエントリは、第2のHMVP候補を備え、前記第1のインデックス値は、前記第2のインデックス値よりも低い、
高度動きベクトル予測(AMVP)候補リストに対して、逆順で前記HMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、前記第2のHMVP候補は、前記逆順に従って前記第1のHMVP候補の前に選択される、
前記AMVP候補リストに前記選択された1つ以上のHMVP候補を追加することと、前記AMVP候補リストは、前記1つ以上のブロックに対してAMVPを実行するために使用される、
を行うように構成される、装置。
[C14]
前記第1のHMVP候補は、第1の時間に復号された動き情報を備え、前記第2のHMVP候補は、第2の時間に復号された動き情報を備え、前記第1の時間は、前記第2の時間よりも時間的に後である、C13に記載の装置。
[C15]
前記逆順で前記HMVPテーブルから前記1つ以上のHMVP候補を前記選択することは、選択中に前記HMVPテーブルのエントリのサブサンプリングを実行することなく、連続するインデックス値に関連付けられた前記HMVPテーブルの連続するエントリから前記1つ以上のHMVP候補を選択することを備える、C13に記載の装置。
[C16]
前記プロセッサは、
マージ候補リストに対して、正順で前記HMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、前記第1のHMVP候補は、前記正順に従って前記第2のHMVP候補の前に選択される、
前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することと、前記マージ候補リストは、前記1つ以上のブロックについてのマージ予測を実行するために使用される、
を行うようにさらに構成される、C13に記載の装置。
[C17]
前記正順で前記HMVPテーブルから前記1つ以上のHMVP候補を前記選択することは、サブサンプリングレートを使用する前記HMVPテーブルのエントリのサブサンプリングを備え、前記サブサンプリングレートに基づく分離は、連続するHMVP候補が選択される前記HMVPテーブルのエントリに関連付けられたインデックス値間で維持される、C16に記載の装置。
[C18]
前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することは、前記マージ候補リストに時間的動きベクトル予測子(TMVP)候補を追加した後に、前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することを備える、C16に記載の装置。
[C19]
前記2つ以上のHMVP候補は、双方向予測の両方の予測方向についての動き情報を備える、C13に記載の装置。
[C20]
少なくとも2つのHMVPテーブルが、双予測を伴うAMVPモードで使用される、C13に記載の装置。
[C21]
第1のHMVPテーブルが、第1の参照ピクチャリストに対して使用され、第2のHMVPテーブルが、第2の参照ピクチャリストに対して使用される、C20に記載の装置。
[C22]
前記AMVPは、イントラブロックコピーAMVP予測モードを含む、C13に記載の装置。
[C23]
前記装置は、復号器を備え、前記ビデオデータは、符号化されたビデオビットストリームから取得される、C13に記載の装置。
[C24]
前記装置は、符号化器を備える、C13に記載の装置。
[C25]
命令を記憶した、非一時的コンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
ビデオデータの1つ以上のブロックを取得することと、
履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入することと、ここにおいて、第1のインデックス値に関連付けられた前記HMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられた前記HMVPテーブルの第2のエントリは、第2のHMVP候補を備え、前記第1のインデックス値は、前記第2のインデックス値よりも低い、
高度動きベクトル予測(AMVP)候補リストに対して、逆順で前記HMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、前記第2のHMVP候補は、前記逆順に従って前記第1のHMVP候補の前に選択される、
前記AMVP候補リストに前記選択された1つ以上のHMVP候補を追加することと、前記AMVP候補リストは、前記1つ以上のブロックに対してAMVPを実行するために使用される、
を行わせる、非一時的コンピュータ可読媒体。
[C26]
前記第1のHMVP候補は、第1の時間に復号された動き情報を備え、前記第2のHMVP候補は、第2の時間に復号された動き情報を備え、前記第1の時間は、前記第2の時間よりも時間的に後である、C25に記載の非一時的コンピュータ可読媒体。
[C27]
前記逆順で前記HMVPテーブルから前記1つ以上のHMVP候補を前記選択することは、選択中に前記HMVPテーブルのエントリのサブサンプリングを実行することなく、連続するインデックス値に関連付けられた前記HMVPテーブルの連続するエントリから前記1つ以上のHMVP候補を選択することを備える、C25に記載の非一時的コンピュータ可読媒体。
[C28]
1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
マージ候補リストに対して、正順で前記HMVPテーブルから1つ以上のHMVP候補を選択することと、ここにおいて、前記第1のHMVP候補は、前記正順に従って前記第2のHMVP候補の前に選択される、
前記マージ候補リストに前記選択された1つ以上のHMVP候補を追加することと、前記マージ候補リストは、前記1つ以上のブロックについてのマージ予測を実行するために使用される、
を行わせるさらなる命令を記憶した、C25に記載の非一時的コンピュータ可読媒体。
[C29]
ビデオデータを処理するための装置であって、前記装置は、
ビデオデータの1つ以上のブロックを取得するための手段と、
履歴ベースの動きベクトル予測子(HMVP)テーブルに2つ以上のHMVP候補を投入するための手段と、ここにおいて、第1のインデックス値に関連付けられた前記HMVPテーブルの第1のエントリは、第1のHMVP候補を備え、第2のインデックス値に関連付けられた前記HMVPテーブルの第2のエントリは、第2のHMVP候補を備え、前記第1のインデックス値は、前記第2のインデックス値よりも低い、
高度動きベクトル予測(AMVP)候補リストに対して、逆順で前記HMVPテーブルから1つ以上のHMVP候補を選択するための手段と、ここにおいて、前記第2のHMVP候補は、前記逆順に従って前記第1のHMVP候補の前に選択される、
前記AMVP候補リストに前記選択された1つ以上のHMVP候補を追加するための手段と、前記AMVP候補リストは、前記1つ以上のブロックに対してAMVPを実行するために使用される、
を備える、装置。
[C30]
前記第1のHMVP候補は、第1の時間に復号された動き情報を備え、前記第2のHMVP候補は、第2の時間に復号された動き情報を備え、前記第1の時間は、前記第2の時間よりも時間的に後である、C29に記載の装置。