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

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許7379391シグナリングサブ予測ユニット動きベクトル予測子
<>
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図1
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図2A
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図2B
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図3
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図4
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図5
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図6
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図7
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図8
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図9
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図10
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図11
  • 特許-シグナリングサブ予測ユニット動きベクトル予測子 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-06
(45)【発行日】2023-11-14
(54)【発明の名称】シグナリングサブ予測ユニット動きベクトル予測子
(51)【国際特許分類】
   H04N 19/52 20140101AFI20231107BHJP
   H04N 19/109 20140101ALI20231107BHJP
   H04N 19/176 20140101ALI20231107BHJP
   H04N 19/70 20140101ALI20231107BHJP
【FI】
H04N19/52
H04N19/109
H04N19/176
H04N19/70
【請求項の数】 13
(21)【出願番号】P 2020570430
(86)(22)【出願日】2019-06-18
(65)【公表番号】
(43)【公表日】2021-10-14
(86)【国際出願番号】 US2019037722
(87)【国際公開番号】W WO2019246092
(87)【国際公開日】2019-12-26
【審査請求日】2022-05-18
(31)【優先権主張番号】62/687,052
(32)【優先日】2018-06-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/443,113
(32)【優先日】2019-06-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ファン、ハン
(72)【発明者】
【氏名】チェン、ウェイ-ジュン
(72)【発明者】
【氏名】セレジン、バディム
(72)【発明者】
【氏名】カルチェビチ、マルタ
【審査官】田中 純一
(56)【参考文献】
【文献】特表2018-507616(JP,A)
【文献】国際公開第2018/061522(WO,A1)
【文献】米国特許出願公開第2016/0227214(US,A1)
【文献】特表2017-507543(JP,A)
【文献】欧州特許出願公開第03091743(EP,A1)
【文献】Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer Ohm, Jill Boyce,Algorithm Description of Joint Exploration Test Model 7 (JEM 7),JVET-G1001-v1 ,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino,2017年08月19日,pp.i-iv,pp.1-44
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオデータを復号する方法であって、
符号化されたビデオデータを受信することと、
第1のブロックが予め定められた値より大きいことに基づいて、前記符号化されたビデオデータから第1のサブ予測ユニット動きフラグをパースすることと、ここにおいて、前記第1のサブ予測ユニット動きフラグは、ブロックレベルにおいて受信され、前記第1のブロックに適用可能であり
動き情報がサブ予測ユニット動きに基づき生成されることを示す前記第1のサブ予測ユニット動きフラグがアクティブであると決定したことに応答して、
ブ予測ユニットレベル動き予測候補の第1のリストを導出することと、前記サブ予測ユニットレベル動き予測候補は、前記第1のブロックの少なくとも1つのサブブロック内のサブ予測ユニットレベル動き推定に適用可能であり、
サブ予測ユニットレベル動き予測候補の前記第1のリストから、第1の動きベクトル予測子を示すサブブロックマージインデックスを復号することと、
前記第1の動きベクトル予測子を使用して、前記第1のブロックの前記少なくとも1つのサブブロックを復号することと、
第2のブロックが前記予め定められた値より大きいことに基づいて、前記符号化されたビデオデータから第2のサブ予測ユニット動きフラグをパースすることと、ここにおいて、前記第2のサブ予測ユニット動きフラグは、前記ブロックレベルにおいて受信され、前記第2のブロックに適用可能であり、
前記第2のサブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、
測ユニットレベル動き予測候補の第2のリストを導出することと、前記予測ユニットレベル動き予測候補は、前記第2のブロックの予測ユニットに適用可能であり、と、
予測ユニットレベル動き予測候補の前記第2のリストから、第2の動きベクトル予測子を示す予測ユニットマージインデックスを復号することと、ここにおいて、前記予測ユニットマージインデックスは、前記サブブロックマージインデックスとは異なるシンタックス要素であり、
前記第2の動きベクトル予測子を使用して、前記第2のブロックの前記予測ユニットを復号することと、
を備える、方法。
【請求項2】
前記符号化されたビデオデータは、前記第1のブロックと前記第2のブロックとを含み、
サブ予測ユニットレベル動き予測候補の前記第1のリストは、前記第1のブロックの第1の隣接ブロックから導出され、
予測ユニットレベル動き予測候補の前記第2のリストは、前記第2のブロックの第2の隣接ブロックから導出される、
請求項1に記載の方法。
【請求項3】
前記第1の隣接ブロックは、現在ピクチャ中の前記第1のブロックの空間隣接物、または前にコーディングされたピクチャ中の前記第1のブロックの時間隣接物である、請求項2に記載の方法。
【請求項4】
サブ予測ユニットレベル動き予測候補の前記第1のリストまたは予測ユニットレベル動き予測候補の前記第2のリストは、前記第1の隣接ブロックまたは前記第2の隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる、請求項2に記載の方法。
【請求項5】
前記予測ユニットレベル動き候の前記第2のリストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
サブ予測ユニットレベル動き予測候補の前記第1のリストは、、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項7】
ビデオデータを復号するための装置であって、
号化されたビデオデータを記憶するためのメモリと
前記メモリと通信するプロセッサと、
を備え、前記プロセッサは、
前記符号化されたビデオデータを受信することと、
第1のブロックが予め定められた値より大きいことに基づいて、前記符号化されたビデオデータから第1のサブ予測ユニット動きフラグをパースすることと、ここにおいて、前記第1のサブ予測ユニット動きフラグは、ブロックレベルにおいて受信され、前記第1のブロックに適用可能であり
動き情報がサブ予測ユニット動きに基づき生成されることを示す前記第1のサブ予測ユニット動きフラグがアクティブであると決定したことに応答して、
ブ予測ユニットレベル動き予測候補の第1のリストを導出することと、前記サブ予測ユニットレベル動き予測候補は、前記第1のブロックの少なくとも1つのサブブロック内のサブ予測ユニットレベル動き推定に適用可能であり、
サブ予測ユニットレベル動き予測候補の前記第1のリストから、第1の動きベクトル予測子を示すサブブロックマージインデックスを復号することと、
前記第1の動きベクトル予測子を使用して、前記第1のブロックの前記少なくとも1つのサブブロックを復号することと、
第2のブロックが前記予め定められた値より大きいことに基づいて、前記符号化されたビデオデータから第2のサブ予測ユニット動きフラグをパースすることと、ここにおいて、前記第2のサブ予測ユニット動きフラグは、前記ブロックレベルにおいて受信され、前記第2のブロックに適用可能であり、
前記第2のサブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、
測ユニットレベル動き予測候補の第2のリストを導出することと、前記予測ユニットレベル動き予測候補は、前記第2のブロックの予測ユニットに適用可能であり、
予測ユニットレベル動き予測候補の前記第2のリストから、第2の動きベクトル予測子を示す予測ユニットマージインデックスを復号することと、ここにおいて、前記予測ユニットマージインデックスは、前記サブブロックマージインデックスとは異なるシンタックス要素であり、
前記第2の動きベクトル予測子を使用して、前記第2のブロックの前記予測ユニットを復号することと、
を行うように構成された、装置。
【請求項8】
前記符号化されたビデオデータは、前記第1のブロックと前記第2のブロックとを含み、
サブ予測ユニットレベル動き予測候補の前記第1のリストは、前記第1のブロックの第1の隣接ブロックから導出され、
予測ユニットレベル動き予測候補の前記第2のリストは、前記第2のブロックの第2の隣接ブロックから導出される、
請求項に記載の装置。
【請求項9】
前記第1の隣接ブロックは、現在ピクチャ中の前記第1のブロックの空間隣接物、または前にコーディングされたピクチャ中の前記第1のブロックの時間隣接物である、請求項に記載の装置。
【請求項10】
サブ予測ユニットレベル動き予測候補の前記第1のリストまたは予測ユニットレベル動き予測候補の前記第2のリストは、前記第1の隣接ブロックまたは前記第2の隣接ブロックにおける動き予発生に基づいて少なくとも部分的に順序付けられる、請求項に記載の装置。
【請求項11】
前記予測ユニットレベル動き候の前記第2のリストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む、請求項に記載の装置。
【請求項12】
サブ予測ユニットレベル動き予測候補の前記第1のリストは、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む、請求項7に記載の装置。
【請求項13】
1つまたは複数のプロセッサによって実行されたときに、請求項1~のいずれか一項に記載の方法を、前記1つまたは複数のプロセッサに実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【0001】
[0001] 本出願は、2018年6月19日出願の米国仮特許出願第62/687,052号の優先権を主張する、2019年6月17日出願の米国特許出願第16/443,113号の利益を主張し、その内容全体が参照によって本明細書に組み込まれる。
【技術分野】
【0002】
[0002] 本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【0003】
[0003] デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイス、および同様のものを含む、広範囲のデバイスに組み込まれることができる。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,パート10、アドバンスドビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)規格、ITU-T H.265/高効率ビデオコーディング(HEVC)、およびそのような規格の拡張版によって定義される規格に記載されているものなどの、ビデオコーディング技法をインプリメントする。ビデオデバイスは、そのようなビデオコーディング技法をインプリメントすることによって、より効率的にデジタルビデオ情報を送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004] ビデオコーディング技法は、ビデオシーケンスに内在する冗長性を低減または取り除くために、空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(例えば、ビデオピクチャまたはビデオピクチャの一部分)は、コーディングツリーユニット(CTU)、コーディングユニット(CU)、および/またはコーディングノードとも呼ばれ得る、ビデオブロックへと分割され得る。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の参照サンプルに対して空間的予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の参照サンプルに対して空間的予測を使用し得るか、または他の参照ピクチャ中の参照サンプルに対して時間的予測を使用し得る。ピクチャは、フレームと呼ばれ得、参照ピクチャは、参照フレームと呼ばれ得る。
【発明の概要】
【0005】
[0005] 概して、本開示は、ビデオコーデックにおける動きベクトル予測に関する。例えば、導出される動きベクトル予測候補の2つのリストから、動きベクトル予測子が適応的に選択される。第1のリストはPUレベル動きベクトル予測候補を含み、第2のリストはサブPUレベル動きベクトル予測候補を含む。
【0006】
[0006] 1つの例示的な実施形態では、ビデオデータを復号する方法が説明される。本方法は、符号化されたビデオデータを受信することと、符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストのいずれかから動きベクトル予測子を選択することと、選択された動きベクトル予測子を使用して、符号化されたビデオデータを復号することと、を含む。符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補のリストおよび予測ユニットレベル動き予測候補のリストは、現在ブロックの隣接ブロックから導出される。隣接ブロックは、現在ピクチャ中の現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の現在ブロックの時間隣接物である。サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストは、隣接ブロックにおける動き予測発生(occurrences)に基づいて少なくとも部分的に順序付けられる。予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、第1の動きベクトル情報または第2のベクトル情報は、選択された動きベクトル予測子から決定される。予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む。サブ予測ユニットレベル動き予測候補のリストは、アフィン動きベクトル予測(affine motion vector prediction)、代替時間動きベクトル予測(ATMVP:alternative temporal motion vector prediction)、空間時間動きベクトル予測(STMVP:spatial-temporal motion vector prediction)、平面動きベクトル予測(planar motion vector prediction)、およびパターンマッチ動きベクトル導出(PMVD:pattern matched motion vector derivation)のうちの少なくとも1つを含む。本方法は、サブ予測ユニット動きフラグがアクティブであると決定したことに応答してマージング候補インデックスを導出することを含み、ここにおいて、マージング候補インデックスは、選択されるべき動きベクトル予測子を指定する。
【0007】
[0007] 別の例示的な実施形態では、ビデオデータを復号するための装置が説明される。本装置は、受信された符号化されたビデオデータを記憶するためのメモリとプロセッサとを含む。プロセッサは、符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストのいずれかから動きベクトル予測子を選択することと、選択された動きベクトル予測子を使用して、符号化されたビデオデータを復号することと、を行うように構成されている。符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補のリストおよび予測ユニットレベル動き予測候補のリストは、現在ブロックの隣接ブロックから導出される。隣接ブロックは、現在ピクチャ中の現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の現在ブロックの時間隣接物である。サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストは、隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる。予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、第1の動きベクトル情報または第2のベクトル情報は、選択された動きベクトル予測子から決定される。予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む。サブ予測ユニットレベル動き予測候補のリストは、アフィン動きベクトル予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む。プロセッサは、サブ予測ユニット動きフラグがアクティブであると決定したことに応答してマージング候補インデックスを導出するようにさらに構成され、ここにおいて、マージング候補インデックスは、選択されるべき動きベクトル予測子を指定する。
【0008】
[0008] 別の例示的な実施形態では、ビデオデータを復号するための装置が説明される。本装置は、受信された符号化されたビデオデータを記憶するためのメモリ手段とプロセッサ手段とを含む。プロセッサ手段は、符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストのいずれかから動きベクトル予測子を選択することと、選択された動きベクトル予測子を使用して、符号化されたビデオデータを復号することと、を行うように構成されている。符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補のリストおよび予測ユニットレベル動き予測候補のリストは、現在ブロックの隣接ブロックから導出される。隣接ブロックは、現在ピクチャ中の現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の現在ブロックの時間隣接物である。サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストは、隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる。予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、第1の動きベクトル情報または第2のベクトル情報は、選択された動きベクトル予測子から決定される。予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む。サブ予測ユニットレベル動き予測候補のリストは、アフィン動きベクトル予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む。プロセッサ手段は、サブ予測ユニット動きフラグがアクティブであると決定したことに応答してマージング候補インデックスを導出するようにさらに構成され、ここにおいて、マージング候補インデックスは、選択されるべき動きベクトル予測子を指定する。
【0009】
[0009] 別の例示的な実施形態では、非一時的コンピュータ可読記憶媒体が、実行されたときに1つまたは複数のプロセッサに方法を実行させる命令を記憶している。本方法は、符号化されたビデオデータを受信することと、符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストのいずれかから動きベクトル予測子を選択することと、選択された動きベクトル予測子を使用して、符号化されたビデオデータを復号することと、を含む。符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補のリストおよび予測ユニットレベル動き予測候補のリストは、現在ブロックの隣接ブロックから導出される。隣接ブロックは、現在ピクチャ中の現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の現在ブロックの時間隣接物である。サブ予測ユニットレベル動き予測候補のリストまたは予測ユニットレベル動き予測候補のリストは、隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる。予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、第1の動きベクトル情報または第2のベクトル情報は、選択された動きベクトル予測子から決定される。予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む。サブ予測ユニットレベル動き予測候補のリストは、アフィン動きベクトル予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む。本方法は、サブ予測ユニット動きフラグがアクティブであると決定したことに応答してマージング候補インデックスを導出することを含み、ここにおいて、マージング候補インデックスは、選択されるべき動きベクトル予測子を指定する。
【0010】
[0010] 1つまたは複数の例の詳細は、添付の図面および以下の説明に記載される。他の特徴、目的、および利点が、本説明、図面、および特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【0011】
図1】[0011] 本開示の技法を実行し得る例示的なビデオ符号化および復号システムを例示するブロック図である。
図2A】[0012] 例示的な四分木二分木(QTBT)構造と、対応するコーディングツリーユニット(CTU)とを例示する概念図である。
図2B】例示的な四分木二分木(QTBT)構造と、対応するコーディングツリーユニット(CTU)とを例示する概念図である。
図3】[0013] 動きベクトル予測子導出を例示するフローチャートである。
図4】[0014] マージモードのための空間隣接動きベクトル候補を例示する概念図である。
図5】[0015] 時間動きベクトル候補を例示する概念図である。
図6】[0016] 候補動きベクトルブロック選択技法を例示する。
図7】[0017] 空間時間動きベクトル予測(STMVP)を例示する概念図である。
図8】[0018] バイラテラルマッチング技法を例示する概念図である。
図9】[0019] テンプレートマッチング技法を例示する概念図である。
図10】[0020] 平面動きベクトル予測を例示する概念図である。
図11】[0021] 本開示の技法を実行し得る例示的なビデオエンコーダを例示するブロック図である。
図12】[0022] 本開示の技法を実行し得る、例示的なビデオデコーダを例示するブロック図である。
【詳細な説明】
【0012】
[0023] 本開示は、デコーダ側動きベクトル導出(DMVD:decoder-side motion vector derivation)に関する。本開示で説明されるデコーダ側動きベクトル導出技法は、HEVC(高効率ビデオコーディング)などの、既存のビデオコーデックのいずれかとともに使用され得るか、またはH.266 VVC(Versatile Video Coding)およびEVC(Essential Video Coding)などの、任意の将来のビデオコーディング規格のためのコーディング技法として使用され得る。
【0013】
[0024] 図1は、本開示の技法を実行し得る例示的なビデオ符号化および復号システム100を例示するブロック図である。本開示の技法は、概して、ビデオデータをコーディング(符号化および/または復号)することを対象とし、特に、本明細書で説明される技法に関する。概して、ビデオデータは、ビデオを処理するための任意のデータを含む。したがって、ビデオデータは、生の、コーディングされていないビデオ、符号化されたビデオ、復号された(例えば、再構成された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
【0014】
[0025] 図1に示すように、システム100は、この例では、宛先デバイス116によって復号および表示されることになる符号化されたビデオデータを提供するソースデバイス102を含む。特に、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116にビデオデータを提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または同様のものを含む、幅広い範囲のデバイスのうちのいずれかを備え得る。いくつかのケースでは、ソースデバイス102および宛先デバイス116は、ワイヤレス通信のために装備され得、よってワイヤレス通信デバイスと呼ばれ得る。
【0015】
[0026] 図1の例では、ソースデバイス102は、ビデオソース104、メモリ106、ビデオエンコーダ200、および出力インターフェース108を含む。宛先デバイス116は、入力インターフェース122、ビデオデコーダ300、メモリ120、およびディスプレイデバイス118を含む。本開示にしたがって、ソースデバイス102のビデオエンコーダ200および宛先デバイス116のビデオデコーダ300は、デコーダ側動きベクトル導出のための技法を適用するように構成され得る。したがって、ソースデバイス102は、ビデオ符号化デバイスの一例を表し、宛先デバイス116は、ビデオ復号デバイスの一例を表す。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。例えば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス116は、統合されたディスプレイデバイスを含むのではなくむしろ、外部ディスプレイデバイスとのインターフェースをとり得る。
【0016】
[0027] 図1に示すシステム100は1つの例にすぎない。一般に、任意のデジタルビデオ符号化および/または復号デバイスが、デコーダ側動きベクトル導出のための技法を実行し得る。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116に送信するためのコーディングされたビデオデータを生成するコーディングデバイスの例にすぎない。本開示は、データのコーディング(符号化および/または復号)を実行するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200およびビデオデコーダ300は、コーディングデバイスの例、特に、それぞれビデオエンコーダおよびビデオデコーダを表す。いくつかの例では、デバイス102、116は、デバイス102、116の各々がビデオ符号化および復号構成要素を含むように実質的に対称的に動作し得る。したがって、システム100は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス102、116間の一方向または二方向ビデオ送信をサポートし得る。
【0017】
[0028] 概して、ビデオソース104は、ビデオデータ(すなわち、生の、符号化されていないビデオデータ)のソースを表し、ビデオデータの連続する一連のピクチャ(「フレーム」とも呼ばれる)を、ピクチャのためのデータを符号化するビデオエンコーダ200に提供する。ソースデバイス102のビデオソース104は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされた生ビデオを包含するビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとしてコンピュータグラフィックスベースのデータを、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを、生成し得る。いずれのケースも、ビデオエンコーダ200は、キャプチャされたビデオデータ、事前にキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、ピクチャを、コーディングのために、受信された順序(「表示順序」と呼ばれるときもある)からコーディング順序に再配置し得る。ビデオエンコーダ200は、符号化されたビデオデータを含むビットストリームを生成し得る。次いでソースデバイス102は、例えば、宛先デバイス116の入力インターフェース122による受信および/または取り出しのために、出力インターフェース108を介してコンピュータ可読媒体110上に、符号化されたビデオデータを出力し得る。
【0018】
[0029] ソースデバイス102のメモリ106および宛先デバイス116のメモリ120は、汎用メモリを表す。いくつかの例では、メモリ106、120は、生ビデオデータ、例えば、ビデオソース104からの生ビデオと、ビデオデコーダ300からの生の復号されたビデオデータとを記憶し得る。追加的または代替的に、メモリ106、120は、例えば、それぞれビデオエンコーダ200およびビデオデコーダ300によって実行可能なソフトウェア命令を記憶し得る。この例ではビデオエンコーダ200およびビデオデコーダ300とは別個に示されているが、ビデオエンコーダ200およびビデオデコーダ300はまた、機能的に類似または同等の目的のための内部メモリを含み得ることを理解されたい。さらに、メモリ106、120は、符号化されたビデオデータ、例えば、ビデオエンコーダ200からの出力およびビデオデコーダ300への入力を記憶し得る。いくつかの例では、メモリ106、120の部分は、例えば、生の、復号された、および/または符号化されたビデオデータを記憶するための、1つまたは複数のビデオバッファとして割り振られ得る。
【0019】
[0030] コンピュータ可読媒体110は、ソースデバイス102から宛先デバイス116に、符号化されたビデオデータをトランスポートすることが可能な任意のタイプの媒体またはデバイスを表し得る。1つの例では、コンピュータ可読媒体110は、ソースデバイス102が、例えば無線周波数ネットワークまたはコンピュータベースのネットワークを介して、符号化されたビデオデータをリアルタイムに宛先デバイス116に直接送信することを可能にする通信媒体を表す。出力インターフェース108は、符号化されたビデオデータを含む送信信号を変調し得、入力インターフェース122は、ワイヤレス通信プロトコルなどの通信規格にしたがって、受信された送信信号を変調し得る。通信媒体は、無線周波数(RF)スペクトルもしくは1つまたは複数の物理伝送線などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするのに有用であり得る他の任意の機器を含み得る。
【0020】
[0031] いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に、符号化されたデータを出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112から符号化されたデータにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための他の任意の好適なデジタル記憶媒体などの、様々な分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
【0021】
[0032] いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化されたビデオを記憶し得るファイルサーバ114または別の中間記憶デバイスに、符号化されたビデオデータを出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114から、記憶されたビデオデータにアクセスし得る。ファイルサーバ114は、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(例えば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、またはネットワーク接続ストレージ(NAS)デバイスを表し得る。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通して、ファイルサーバ114から符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ114上に記憶された符号化されたビデオデータにアクセスするのに好適である、ワイヤレスチャネル(例えば、Wi-Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム等)、またはその両方の組合せを含み得る。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組合せにしたがって動作するように構成され得る。
【0022】
[0033] 出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(例えば、イーサネット(登録商標)カード)、様々なIEEE802.11規格のいずれかにしたがって動作するワイヤレス通信構成要素、または他の物理的構成要素を表し得る。出力インターフェース108および入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5G、または同様のものなどのセルラ通信規格にしたがって、符号化されたビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(例えば、ZigBee(登録商標))、Bluetooth(登録商標)規格、または同様のものなどの、他のワイヤレス規格にしたがって、符号化されたビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。例えば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に起因する機能を実行するためのSoCデバイスを含み得、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に起因する機能を実行するためのSoCデバイスを含み得る。
【0023】
[0034] 本開示の技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTPを介した動的適応型ストリーミング(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されるデジタルビデオの復号、または他のアプリケーションなどの、様々なマルチメディアアプリケーションのいずれかをサポートするビデオコーディングに適用され得る。
【0024】
[0035] 宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(例えば、非一時的記憶デバイス112、ファイルサーバ114、または同様のもの)から、符号化されたビデオビットストリームを受信する。符号化されたビデオビットストリームコンピュータ可読媒体110は、ビデオエンコーダ200によって定義され、ビデオデコーダ300によっても使用される、ビデオブロックまたは他のコーディングされたユニット(例えば、スライス、ピクチャ、ピクチャのグループ、シーケンス、または同様のもの)の特性および/または処理を記述する値を有するシンタックス要素などの、シグナリング情報を含み得る。ディスプレイデバイス118は、復号されたビデオデータの復号されたピクチャをユーザに表示する。ディスプレイデバイス118は、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちのいずれかを表し得る。
【0025】
[0036] 図1に示されていないが、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、オーディオエンコーダおよび/またはオーディオデコーダと各々統合され得、共通データストリーム中にオーディオとビデオの両方を含む多重化ストリームを扱うための、適切なMUX-DEMUXユニット、または他のハードウェアおよび/またはソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0026】
[0037] ビデオエンコーダ200およびビデオデコーダ300は、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなどの、様々な好適なエンコーダおよび/またはデコーダ回路のいずれかとして各々インプリメントされ得る。本技法が部分的にソフトウェアにおいてインプリメントされるとき、デバイスは、本開示の技法を実行するために、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ200およびビデオデコーダ300の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのうちのいずれも、それぞれのデバイスに複合エンコーダ/デコーダ(CODEC)の一部として統合され得る。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラ電話などのワイヤレス通信デバイスを備え得る。
【0027】
[0038] ビデオコーディング規格は、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、およびITU-T H.264(ISO/IEC MPEG-4 AVCとしても既知)を含み、そのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含む。
【0028】
[0039] ビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)またはITU-T H.265は、その範囲拡張、マルチビュー拡張(MV-HEVC)、およびスケーラブル拡張(SHVC)を含めて、JCT-VC(Joint Collaboration Team on Video Coding)、ならびにITU-T VCEG(Video Coding Experts Group)およびISO/IEC MPEG(Motion Picture Experts Group)のJCT-3V(Joint Collaboration Team on 3D Video Coding Extension Development)によって開発されたものである。
【0029】
[0040] ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)は、現在のHEVC規格(そのスクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングのための現在の拡張および近い将来の拡張を含む)のそれを超える圧縮能力を有する、将来のビデオコーディング技術の標準化のための潜在的必要性を現在研究している。これらグループは、この分野における専門家によって提案された圧縮技術設計を評価するために、JVET(Joint Video Exploration Team)として知られる合同協力作業においてこの調査活動に協力して取り組んでいる。JVETは、2015年10月19日~21日にわたって最初の会合を行った。そして、最新バージョンの基準ソフトウェア、すなわち、JEM7(Joint Exploration Model 7)が、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-57.0/ からダウンロードできる。JEM7(Joint Exploration Test Model 7)のアルゴリズムの記述は、JVET-G1001と呼ばれ得る。
【0030】
[0041] ビデオエンコーダ200およびビデオデコーダ300は、高効率ビデオコーディング(HEVC)とも呼ばれる、ITU-T H.265などのビデオコーディング規格、またはマルチビュー拡張および/またはスケーラブルビデオコーディング拡張などの、それに対する拡張にしたがって動作し得る。代替的に、ビデオエンコーダ200およびビデオデコーダ300は、VVC(Versatile Video Coding)とも呼ばれるITU-T H.266またはJEM(Joint Exploration Test Model)などの、他の所有規格または業界規格にしたがって動作し得る。VVC規格の最近のドラフトは、Bross他,“Versatile Video Coding (Draft 3)”,ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJVET(Joint Video Experts Team),第13回会合:Marrakech,MA,20190年1月9日~18日,JVET-M1001-v3(以下、「VVCドラフト4」)に記載されている。しかしながら、本開示の技法は、いずれの特定のコーディング規格にも限定されるものではない。
後述されるように、ビデオデコーダ300は、本開示の1つまたは複数の技法を実行するように構成され得る。例えば、ビデオデコーダ300は、受信された符号化されたビデオデータからサブ予測ユニット動きフラグをパースし、サブ予測ユニット動きフラグがアクティブである場合、サブ予測ユニットレベル動き予測候補のリストを導出し、サブ予測ユニット動きフラグがアクティブでない場合、予測ユニットレベル動き予測候補のリストを導出し、選択された動きベクトル予測子を使用して、符号化されたビデオデータを復号し得る。
【0031】
[0042] 概して、ビデオエンコーダ200およびビデオデコーダ300は、ピクチャのブロックベースのコーディングを実行し得る。「ブロック」という用語は、一般に、処理される(例えば、符号化される、復号される、またはそうでない場合、符号化および/または復号プロセスで使用される)ことになるデータを含む構造を指す。例えば、ブロックは、ルミナンスデータおよび/またはクロミナンスデータのサンプルの2次元行列を含み得る。概して、ビデオエンコーダ200およびビデオデコーダ300は、YUV(例えば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルのための赤、緑、および青(RGB)データをコーディングするのではなくむしろ、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分およびクロミナンス成分をコーディングし得、ここで、クロミナンス成分は、赤の色相(red hue)と青の色相(blue hue)両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化の前に、受信されたRGBフォーマットされたデータをYUV表現に変換し、ビデオデコーダ300は、YUV表現をRGBフォーマットに変換する。代替的に、前処理ユニットおよび後処理ユニット(図示せず)が、これらの変換を実行し得る。
【0032】
[0043] 本開示は、概して、ピクチャのデータを符号化または復号するプロセスを含むようにピクチャのコーディング(例えば、符号化および復号)に言及し得る。同様に、本開示は、ブロックのためのデータを符号化または復号するプロセス、例えば、予測および/または残差コーディングを含むようにピクチャのブロックのコーディングに言及し得る。符号化されたビデオビットストリームは、一般に、コーディング決定(例えば、コーディングモード)とピクチャのブロックへの分割とを表すシンタックス要素についての一連の値を含む。したがって、ピクチャまたはブロックのコーディングへの言及は、一般に、ピクチャまたはブロックを形成するシンタックス要素についての値のコーディングとして理解されるべきである。
【0033】
[0044] HEVCは、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)を含む、様々なブロックを定義する。HEVCによれば、ビデオコーダ(ビデオエンコーダ200など)は、四分木構造にしたがってコーディングツリーユニット(CTU)をCUに分割する。すなわち、ビデオコーダは、CTUおよびCUを、4つの等しい、オーバーラップしない正方形に分割し、四分木の各ノードは、0個または4つのうちのいずれかの子ノードを有する。子ノードのないノードは、「リーフノード」と呼ばれ得、そのようなリーフノードのCUは、1つまたは複数のPUおよび/または1つまたは複数のTUを含み得る。ビデオコーダは、PUおよびTUをさらに分割し得る。例えば、HEVCでは、残差四分木(RQT)は、TUの分割を表す。HEVCでは、PUはインター予測データを表し、TUは残差データを表す。イントラ予測されるCUは、イントラモード指示などのイントラ予測情報を含む。
【0034】
[0045] 別の例として、ビデオエンコーダ200およびビデオデコーダ300は、JEMまたはVVCにしたがって動作するように構成され得る。JEMまたはVVCによれば、ビデオコーダ(ビデオエンコーダ200など)は、ピクチャを複数のコーディングツリーユニット(CTU)に分割する。ビデオエンコーダ200は、四分木二分木(QTBT)構造などのツリー構造にしたがってCTUを分割し得る。QTBT構造は、HEVCのCU、PU、およびTU間の分離など、複数の分割タイプの概念を取り除く。JEMのQTBT構造は、四分木分割にしたがって分割された第1のレベルと、二分木分割にしたがって分割された第2のレベルとの2つのレベルを含む。QTBT構造のルートノードはCTUに対応する。二分木のリーフノードは、コーディングユニット(CU)に対応する。
【0035】
[0046] MTT分割構造では、ブロックは、四分木(QT)分割、二分木(BT)分割、および1つまたは複数のタイプの三分木(TT)分割を使用して分割され得る。三分木分割は、ブロックが3つのサブブロックに分けられる分割である。いくつかの例では、三分木分割は、中心を通って元のブロックを分割することなくブロックを3つのサブブロックに分割する。MTTにおける分割タイプ(例えば、QT、BT、およびTT)は、対称または非対称であり得る。
【0036】
[0047] いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分およびクロミナンス成分の各々を表すように単一のQTBTまたはMTT構造を使用し得るが、他の例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分のための1つのQTBT/MTT構造と、両方のクロミナンス成分のための別のQTBTまたはMTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)など、2つ以上のQTBTまたはMTT構造を使用し得る。
【0037】
[0048] ビデオエンコーダ200およびビデオデコーダ300は、HEVCによる四分木分割、QTBT分割、もしくはMTT分割、または他の分割構造を使用するように構成され得る。説明を目的として、本開示の技法の説明は、QTBT分割に関して提示される。しかしながら、本開示の技法はまた、四分木分割、または他のタイプの分割も使用するように構成されたビデオコーダにも適用され得ることを理解されたい。
【0038】
[0049] 本開示は、「N×N(NxN)」および「N×N(N by N)」を交換可能に使用して、垂直寸法および水平寸法に関するブロック(CUまたは他のビデオブロックなど)のサンプル寸法、例えば、16×16(16x16)サンプルまたは16×16(16 by 16)サンプルに言及し得る。一般に、16×16 CUは、垂直方向に16個のサンプル(y=16)を、水平方向に16個のサンプル(x=16)を有することになる。同様に、N×N CUは、一般に、垂直方向にN個のサンプルを、水平方向にN個のサンプルを有し、ここで、Nは、非負整数値を表す。CU中のサンプルは、行および列に配置され得る。さらに、CUは、水平方向において、必ずしも垂直方向と同じ数のサンプルを有する必要はない。例えば、CUは、N×M個のサンプルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
【0039】
[0050] ビデオエンコーダ200は、予測情報および/または残差情報、および他の情報を表すCUについてのビデオデータを符号化する。予測情報は、CUのための予測ブロックを形成するためにどのようにCUが予測されるべきかを示す。残差情報は、一般に、符号化前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
【0040】
[0051] CUを予測するために、ビデオエンコーダ200は、概して、インター予測またはイントラ予測を通してCUのための予測ブロックを形成し得る。インター予測は、一般に、前にコーディングされたピクチャのデータからCUを予測することを指し、イントラ予測は、一般に、同じピクチャの前にコーディングされたデータからCUを予測することを指す。インター予測を実行するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ200は、概して、例えば、CUと参照ブロックとの間の差分に関して、CUによくマッチする参照ブロックを識別するために動き探索を実行し得る。ビデオエンコーダ200は、参照ブロックが現在のCUによくマッチするかどうかを決定するために、差分絶対値和(SAD:sum of absolute difference)、差分二乗和(SSD:sum of squared differences)、平均絶対差(MAD:mean absolute difference)、平均二乗差(MSD:mean squared differences)、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して現在のCUを予測し得る。
【0041】
[0052] JEMおよびVVCのいくつかの例はまた、インター予測モードとみなされ得る、アフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはズームアウト、回転、遠近運動(perspective motion)、または他の不規則な動きタイプなど、非並進運動を表す2つ以上の動きベクトルを決定し得る。
【0042】
[0053] イントラ予測を実行するために、ビデオエンコーダ200は、予測ブロックを生成するようにイントラ予測モードを選択し得る。JEMおよびVVCのいくつかの例は、様々な方向性モード、ならびに平面モードおよびDCモードを含む67個のイントラ予測モードを提供する。概して、ビデオエンコーダ200は、現在ブロック(例えば、CUのブロック)に対する隣接サンプルを記述するイントラ予測モードを選択して、そのサンプルから現在ブロックのサンプルを予測する。ビデオエンコーダ200がラスタ走査順序(左から右、上から下)でCTUおよびCUをコーディングすると仮定すると、そのようなサンプルは、一般に、現在ブロックと同じピクチャ中の現在ブロックの上、左上、または左にあり得る。
【0043】
[0054] ビデオエンコーダ200は、現在ブロックのための予測モードを表すデータを符号化する。例えば、インター予測モードの場合、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、および対応するモードについての動き情報を表すデータを符号化し得る。単方向または双方向インター予測の場合、例えば、ビデオエンコーダ200は、高度動きベクトル予測(AMVP:advanced motion vector prediction)またはマージモードを使用して動きベクトルを符号化し得る。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために同様のモードを使用し得る。
【0044】
[0055] ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200は、ブロックについての残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成されたブロックについての予測ブロックとの間のサンプルごとの差分を表す。ビデオエンコーダ200は、残差ブロックに1つまたは複数の変換を適用して、変換されたデータをサンプル領域ではなく変換領域において生成し得る。例えば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ200は、第1の変換に続いて、モード依存非分離型二次変換(MDNSST)、信号依存変換、カルーネンレーベ変換(KLT)、または同様のものなどの二次変換を適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を生成する。
【0045】
[0056] 上述したように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実行し得る。量子化は一般に、係数を表すために使用されるデータの量をできる限り低減するように変換係数が量子化されるプロセスを指し、さらなる圧縮を提供する。量子化プロセスを実行することによって、ビデオエンコーダ200は、係数の一部または全部に関連付けられたビット深度を低減し得る。例えば、ビデオエンコーダ200は、量子化中にnビット値をmビット値に丸め得、ここで、nはmよりも大きい。いくつかの例では、量子化を実行するために、ビデオエンコーダ200は、量子化されることになる値のビット単位の右シフトを実行し得る。
【0046】
[0057] 量子化に続いて、ビデオエンコーダ200は、変換係数を走査し得、量子化された変換係数を含む2次元行列から1次元ベクトルを生成する。走査は、より高いエネルギー(それゆえ、より低い周波数)係数を、ベクトルの前方に置き、より低いエネルギー(それゆえ、より高い周波数)変換係数を、ベクトルの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ200は、直列ベクトルを生成するために、量子化された変換係数を走査するための所定の走査順序を利用し、次いでベクトルの量子化された変換係数をエントロピー符号化し得る。他の例では、ビデオエンコーダ200は、適応走査を実行し得る。量子化された変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ200は、例えば、コンテキスト適応型バイナリ算術コーディング(CABAC)にしたがって、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ200はまた、ビデオデータを復号する際にビデオデコーダ300が使用するための、符号化されたビデオデータに関連付けられたメタデータを記述するシンタックス要素についての値をエントロピー符号化し得る。
【0047】
[0058] CABACを実行するために、ビデオエンコーダ200は、送信されることになるシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値がゼロ値であるか否かに関連し得る。確率の決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0048】
[0059] ビデオエンコーダ200はさらに、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、もしくはビデオパラメータセット(VPS)などの他のシンタックスデータ中で、ビデオデコーダ300に、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを生成し得る。ビデオデコーダ300は、同様に、対応するビデオデータをどのように復号すべきかを決定するために、そのようなシンタックスデータを復号し得る。
【0049】
[0060] このようにして、ビデオエンコーダ200は、符号化されたビデオデータ、例えば、ピクチャのブロック(例えば、CU)への分割と、ブロックについての予測情報および/または残差情報とを記述するシンタックス要素を含むビットストリームを生成し得る。最後に、ビデオデコーダ300は、ビットストリームを受信し、符号化されたビデオデータを復号し得る。
【0050】
[0061] 概して、ビデオデコーダ300は、ビットストリームの符号化されたビデオデータを復号するために、ビデオエンコーダ200によって実行されたものとは逆のプロセスを実行する。例えば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスと逆ではあるが実質的に同様にCABACを使用してビットストリームのシンタックス要素についての値を復号し得る。シンタックス要素は、CTUへのピクチャの分割情報と、CTUのCUを定義するための、QTBT構造などの対応する分割構造にしたがう各CTUの分割とを定義し得る。シンタックス要素は、ビデオデータのブロック(例えば、CU)についての予測情報および残差情報をさらに定義し得る。
【0051】
[0062] 残差情報は、例えば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックの量子化された変換係数を逆量子化および逆変換して、ブロックについての残差ブロックを再生し得る。ビデオデコーダ300は、シグナリングされた予測モード(イントラ予測またはインター予測)および関連する予測情報(例えば、インター予測のための動き情報)を使用して、ブロックについての予測ブロックを形成する。次いでビデオデコーダ300は、(サンプルごとのベースで)予測ブロックと残差ブロックとを組み合わせて、元のブロックを再生し得る。ビデオデコーダ300は、ブロックの境界に沿った視覚的アーティファクトを低減するために、デブロッキングプロセスを実行するなどの追加の処理を実行し得る。
【0052】
[0063] 本開示は、概して、シンタックス要素などの、ある特定の情報の「シグナリング」に言及し得る。「シグナリング」という用語は、一般に、符号化されたビデオデータを復号するために使用される値シンタックス要素および/または他のデータの通信を指し得る。すなわち、ビデオエンコーダ200は、ビットストリーム中のシンタックス要素についての値をシグナリングし得る。一般に、シグナリングは、ビットストリーム中に値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムに、または宛先デバイス116による後の取り出しのためにシンタックス要素を記憶デバイス112に記憶するときに起き得るなど、リアルタイムではなく、ビットストリームを宛先デバイス116にトランスポートし得る。
【0053】
[0064] 図2Aおよび図2Bは、例示的な四分木二分木(QTBT)構造130と、対応するコーディングツリーユニット(CTU)132とを例示する概念図である。実線は四分木分割を表し、点線は二分木分割を示す。二分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされ、ここで、この例では、0が水平分割を示し、1が垂直分割を示す。四分木分割の場合、四分木ノードが等しいサイズの4つのサブブロックへと水平および垂直にブロックを分割することから、分割タイプを示す必要はない。したがって、QTBT構造130の領域ツリーレベル(すなわち、実線)についてのシンタックス要素(分割情報など)と、QTBT構造130の予測ツリーレベル(すなわち、破線)についてのシンタックス要素(分割情報など)とを、ビデオエンコーダ200が符号化し得、ビデオデコーダ300が復号し得る。QTBT構造130の終端リーフノードによって表されるCUについての予測および変換データなどのビデオデータを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。
【0054】
[0065] 概して、図2BのCTU132は、第1および第2のレベルにおけるQTBT構造130のノードに対応するブロックのサイズを定義するパラメータに関連付けられ得る。これらのパラメータは、CTUサイズ(サンプル中のCTU132のサイズを表す)、最小四分木サイズ(許容される最小四分木リーフノードサイズを表すMinQTSize)、最大二分木サイズ(許容される最大二分木ルートノードサイズを表すMaxBTSize)、最大二分木深度(許容される最大二分木深度を表すMaxBTDepth)、および最小二分木サイズ(許容される最小二分木リーフノードサイズを表すMinBTSize)を含み得る。
【0055】
[0066] CTUに対応するQTBT構造のルートノードは、QTBT構造の第1のレベルにおいて4つの子ノードを有し得、それらの各々は四分木分割にしたがって分割され得る。すなわち、第1のレベルのノードは、リーフノード(子ノードを有さない)であるか、または4つの子ノードを有する。QTBT構造130の例は、分岐のための実線を有する親ノードおよび子ノードを含むノードを表す。第1のレベルのノードが、許容される最大二分木ルートノードサイズ(MaxBTSize)よりも大きくない場合、それらは、それぞれの二分木によってさらに分割されることができる。分割から生じるノードが、許容される最小二分木リーフノードサイズ(MinBTSize)または許容される最大二分木深度(MaxBTDepth)に達するまで、1つのノードの二分木分割を繰り返すことができる。QTBT構造130の例は、分岐のための破線を有するノードを表す。二分木リーフノードは、コーディングユニット(CU)と呼ばれ、これは、さらなる分割なしに、予測(例えば、イントラピクチャ予測またはインターピクチャ予測)および変換のために使用される。上述のように、CUは、「ビデオブロック」または「ブロック」とも呼ばれ得る。
【0056】
[0067] QTBT分割構造の1つの例では、CTUサイズは128×128(ルーマサンプルと2つの対応する64×64のクロマサンプル)として設定され、MinQTSizeは、16×16として設定され、MaxBTSizeは、64×64として設定され、MinBTSizeは(幅と高さの両方について)、4として設定され、MaxBTDepthは、4として設定される。四分木リーフノードを生成するために、最初に四分木分割がCTUに適用される。四分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有し得る。リーフ四分木ノードが128×128である場合、サイズがMaxBTSize(すなわち、この例では64×64)を超えるので、二分木によってさらに分割されないことになる。そうでない場合、リーフ四分木ノードは、二分木によってさらに分割されることになる。したがって、四分木リーフノードは二分木のためのルートノードでもあり、二分木深度を0として有する。二分木深度がMaxBTDepth(この例では4)に達するとき、さらなる分割は許可されない。二分木ノードの幅がMinBTSize(この例では4)に等しいとき、それはさらなる水平分割が許可されないことを示唆する。同様に、MinBTSizeに高さが等しい二分木ノードは、その二分木ノードに対してさらなる垂直分割が許可されないことを示唆する。上述したように、二分木のリーフノードはCUと呼ばれ、さらなる分割なく予測および変換にしたがってさらに処理される。
【0057】
[0068] このセクションでは、ビデオコーディング規格、特に、以前の規格の動きベクトル予測関連の技法を説明する。
【0058】
[0069] ビデオコーディング規格は、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、およびITU-T H.264(ISO/IEC MPEG-4 AVCとしても既知)を含み、そのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含む。MVCの最新の共同ドラフトは、“Advanced video coding for generic audiovisual services”,ITU-T勧告 H.264,2010年3月に記載されている。
【0059】
[0070] さらに、新たに開発されたビデオコーディング規格、すなわち、ITU-T VCEG(Video Coding Experts Group)およびISO/IEC MPEG(Motion Picture Experts Group)のJCT-VC(Joint Collaboration Team on Video Coding)によって開発された高効率ビデオコーディング(HEVC)が存在する。HEVCの最近のドラフトは、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip から入手可能である。
【0060】
[0071] 動き情報
[0072] 各ブロックについて、動き情報のセットが利用可能であり得る。動き情報のセットは、前方予測方向および後方予測方向についての動き情報を包含する。ここで、前方予測方向および後方予測方向は、現在ピクチャまたはスライスの参照ピクチャリスト0(RefPicList0)および参照ピクチャリスト1(RefPicList1)に対応する2つの予測方向である。「前方向」および「後方向」という用語は、必ずしも幾何学的な意味を有するわけではない。代わりに、それらは、どの参照ピクチャリストに動きベクトルが基づくかを区別するために使用される。前方向予測は、参照リスト0に基づいて形成された予測を意味し、後方向予測は、参照リスト1に基づいて形成された予測を意味する。参照リスト0と参照リスト1との両方が所与のブロックについての予測を形成するために使用されるケースでは、双方向予測と呼ばれる。
【0061】
[0073] 所与のピクチャまたはスライスについて、1つの参照ピクチャリストのみが使用される場合、ピクチャまたはスライス内部のすべてのブロックが前方向予測される。所与のピクチャまたはスライスについて両方の参照ピクチャリストが使用される場合、ピクチャまたはスライス内部のブロックは前方向予測され得るか、または後方向予測され得るか、または双方向予測され得る。
【0062】
[0074] 各予測方向について、動き情報は、参照インデックスおよび動きベクトルを包含する。参照インデックスは、対応する参照ピクチャリスト(例えば、RefPicList0またはRefPicList1)中の参照ピクチャを識別するために使用される。動きベクトルは、水平成分と垂直成分の両方を有し、その各々が、水平方向および垂直方向それぞれに沿ったオフセット値を示す。いくつかの説明では、簡潔さのために、「動きベクトル」という言葉が、動きベクトルとそれに関連付けられた参照インデックスの両方を示すように、動き情報と交換可能に使用され得る。
【0063】
[0075] POC
[0076] ピクチャ順序カウント(POC:picture order count)が、ピクチャの表示順序を識別するためにビデオコーディング規格で使用される。1つのコーディングされたビデオシーケンス内の2つのピクチャが同じPOC値を有し得るケースがあるが、典型的には、1つのコーディングされたビデオシーケンス内では起こらない。複数のコーディングされたビデオシーケンスが1つのビットストリーム中に存在するとき、POCの値が同じピクチャは、復号順序に関して互いにより近くてもよい。
【0064】
[0077] ピクチャのPOC値は、典型的には、参照ピクチャリスト構築、HEVCにおけるような参照ピクチャセットの導出、および動きベクトルスケーリングのために使用される。
【0065】
[0078] 予測ユニット
[0079] 予測ユニット(PU)は、同じ予測情報を共有するサンプルの基本ユニットを指す。インター予測PUでは、予測情報は、動き情報の同じセット、またはPUについての動き情報を導出するための同じ方法であり得る。1つの例では、PUは、HEVCブロック構造におけるものと同じであり得、他のブロック分割構造、四分木+二分木分割、マルチタイプツリー分割などにおける基本ブロックでもあり得る。
【0066】
[0080] サブPUは、サンプルが動き情報の同じセットを共有する、PU中のサブブロックである。サブPUレベルの動きでは、PU中のサンプルは、動き情報導出のための同じ方法/モデルを共有するが、サブPUは、動き情報のそれ自体のセットを有することができ、同じPU中の他のサブPUとは異なり得る。
【0067】
[0081] 図3は、本明細書で説明される、動きベクトル予測子導出の例示的なフローチャートを例示する。動きベクトル予測子候補の2つのリストが、3次元領域における隣接ブロックの情報から導出される。デコーダは、ビットストリームから、復号されたシンタックス要素is_sub_pu_motion_flagにしたがってリストを適応的に選択する。
【0068】
[0082] 1つの例では、sub_puリストは、現在ブロックが所定の値よりも大きい場合にのみ存在し得る。別の例では、ブロックは、サブPUのみ、例えば、4×4ブロックを包含し得、フラグは次いで、動き情報生成がサブPU方法に基づくか否かを示す。2つのリストは、異なる数の動き予測候補を含み得、それらは、SPS、PPS、またはスライスヘッダ中で事前定義またはシグナリングされ得る。隣接ブロックは、現在ピクチャ中の空間隣接物または前にコーディングされたピクチャ中の時間隣接物であり得る。
【0069】
[0083] 図3に例示するように、2つのリストの導出プロセスについて説明する。300において、デコーダは、フラグがアクティブであるか否かを決定する。フラグがアクティブでないとデコーダが決定した場合、デコーダは302に進む。フラグがアクティブである場合、デコーダは306に進む。
【0070】
[0084] 302において、PUレベル動き予測候補の第1のリストが導出される。306において、サブPUレベル動き予測候補の第2のリストが導出される。PUレベル動き予測候補とは、同じPU中のすべてのピクセルが動き情報の同じセットを共有することを意味する。サブPUレベル動き予測候補とは、同じサブPU中のすべてのピクセルが動き情報の同じセットを共有するが、PU中の異なるサブPUが動き情報の異なるセットを有し得ることを意味する。動き情報のセットが、インター予測方向、複数の参照を使用する場合の単数または複数の参照ピクチャインデックス、複数の参照を使用する場合の単数または複数の動きベクトルを含むことができる。
【0071】
[0085] PUレベル動きベクトル候補リストの一例は、HEVCマージ候補リストである。サブPUレベル動き予測の例は、限定するものではないが、アフィン動きベクトル予測(アフィン)、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)等を含む。例示的なシンタックステーブルを以下の表1に示す。シンタックス要素sub_pu_motion_idxは、サブPUレベル動き予測候補リスト中の選択された候補を示すために使用され得、シンタックス要素pu_motion_idxは、PUレベル動き予測候補リスト中の選択された候補を示すために使用される。
【0072】
【表1】
【0073】
[0086] 別の方法では、PUレベル動きベクトル候補は2つのグループに分割され得る。is_sub_pu_motion_flagは、選択された候補がPUレベル動き情報候補の第1のグループにないことを示すシンタックスをデコーダが受信するときにシグナリングされる。is_sub_pu_motion_flagは、インデックスのうちの1つとしてPUレベルマージインデックスにおいて暗黙的にシグナリングされ得る。次いで、is_sub_pu_motion_flagが真である場合、サブPUレベルマージインデックスがさらにシグナリングされることになる。1つの例では、PUレベル動き予測候補リスト挿入順序は、A→B→S→C→D→Eである。A、B、C、D、Eは、PUレベル動き予測候補を示し、Sは、sub_pu_motion_flagのインジケータである。Sが選択された場合、sub_pu_motion_flagは真であると推測される。Aの1つの例は、左下の空間マージ候補であり得、Bの1つの例は、右上の空間マージ候補であり得る。他の挿入順序も適用され得ることに留意されたい。
【0074】
[0087] サブPUレベル動き予測候補が、上述したすべての方法においてグループ化されることに留意されたい。
【0075】
[0088] 動きベクトル予測候補選択のためのシグナリング
[0089] 動き予測候補がサブPUレベルであるかどうかを示すために、シンタックス要素is_sub_pu_motion_flagが最初に使用される。is_sub_pu_motion_flagは、1つのビン(0/1)を使用して2値化され、コンテキストベースのバイナリ算術コーダによってコーディングされ得る。コンテキストは、ブロック分割ツリーにおけるPUサイズ/エリアまたはPU深度に依存し得る。より大きいPUは、より小さいPUよりもサブPUレベル動きベクトル予測を選択するのがより頻繁になる傾向があり得る。コンテキストはまた、空間/時間隣接ブロックからのsub_pu_motion_flagにも依存し得る。現在のPUがサブPU動きを使用する可能性は、隣接ブロックがサブPU動きを有する場合に高くなる。
【0076】
[0090] is_sub_pu_motion_flagが真(「1」)である場合、シンタックス要素sub_pu_motion_idxが、サブPU動き予測候補を導出するための方法を示すために使用される。方法の総数、すなわち、サブPUレベル動き予測候補の総数num_sub_pu_motionは、高レベルシンタックスにおいてシグナリングされることができる。sub_pu_motion_idxは、num_sub_pu_motionに依存して短縮単項コード(truncated unary code)を使用して2値化されることができる。しかしながら、他の2値化方法を適用することもできる。
【0077】
[0091] is_sub_pu_motion_flagが偽(「0」)である場合、シンタックス要素nor_pu_motion_idxが、PUレベル動き予測候補を導出するための方法を示すために使用される。PUレベル動きベクトル予測候補の総数、num_nor_pu_motionは、高レベルシンタックスにおいてシグナリングされることができる。nor_pu_motion_idxは、num_nor_pu_motionに依存して短縮単項コードを使用して2値化されることができる。しかしながら、他の2値化方法を適用することもできる。
【0078】
[0092] PUレベル動き予測候補の導出
[0093] PUレベル動き予測候補は、HEVCと同様に、空間または時間隣接コーディングブロックから導出されることができる。HEVCマージモードでは、
[0094] HEVCでは、MV候補リストは、マージモードについては最大で5つの候補を、AMVPモードについては2つの候補のみを包含する。マージ候補は、動き情報のセット、例えば、両方の参照ピクチャリスト(リスト0およびリスト1)に対応する動きベクトルと参照インデックスとを包含し得る。マージ候補がマージインデックスによって識別される場合、参照ピクチャは、現在ブロックの予測のために使用され、ならびに関連する動きベクトルが決定される。
【0079】
[0095] 上記に基づいて、1つまたは複数の動きベクトル予測子が、復号された候補インデックスに基づいて選択される。
【0080】
[0096] HEVCマージモードでは、ブロック400の最大4つまでの空間MV候補402、404、406、および408が、図4に示す順序で導出されることができる。順序は次の通りであり、左(0,A1)、上(1,B1)、右上(2,B0)、左下(3,A0)、および左上(4,B2)である。
【0081】
[0097] ここで、HEVCにおける時間隣接候補を説明する。時間動きベクトル予測子(TMVP)候補が、有効かつ利用可能である場合、空間動きベクトル候補の後にMV候補リストへと追加される。TMVP候補導出のための主要なブロックロケーションは、ブロック「T」500として図5に示す、コロケートされたPUの外の右下ブロックであり、空間隣接候補を生成するために使用される上ブロックおよび左ブロックに対するバイアスを補償する。しかしながら、ブロック502が現在のCTB行の外にロケートされる場合または動き情報が利用可能でない場合、当該ブロックは、PUの中心ブロック504と置き換えられる。TMVP候補についての動きベクトルは、スライスレベルで示される、コロケートされたピクチャのコロケートされたPUから導出される。コロケートされたPUについての動きベクトルは、コロケートされたMVと呼ばれる。
【0082】
[0098] サブPUレベル動き予測候補の導出
[0099] サブPUレベル動き予測候補は、限定するものではないが、アフィン動き予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、パターンマッチ動きベクトル導出(PMVD)等を含むことができる。以下に、これらのサブPUレベル動き予測の例を例示する。しかしながら、いくつかの変形形態または他のサブPUレベル動き予測を追加することもできる。
【0083】
[0100] アフィン動き予測
[0101] 4パラメータアフィン動き予測方法では、ブロックの動きベクトルフィールドは、数式(1)によって記述される。
【0084】
【数1】
【0085】
[0102] ここで、(w,h)はブロックのサイズであり、(x,y)は座標である。(v0x,v0y)は、左上隅の制御点の動きベクトルであり、(v1x,v1y)は、右上隅の制御点の動きベクトルである。
【0086】
[0103] 6パラメータアフィン動き予測方法では、ブロックの動きフィールドは、数式(2)によって記述される。
【0087】
【数2】
【0088】
[0104] ここで、さらに、(v2x,v2y)は、左下隅の制御点の動きベクトルである。
【0089】
[0105] サブPUベースのアフィン動き予測では、サブPUのMVは、サブPUの中心におけるMVを計算することによって導出されることができる。代替的に、サブPUのサイズにしたがって(w,h)および(x,y)をスケールダウンすることができる。
【0090】
[0106] 1つの方法では、(vix,viy)は、現在ブロックが前にコーディングされた隣接ブロックと同じアフィン動きモデルを共有することを考慮して、アフィン動きによって前にコーディングされた隣接ブロックから導出されることができる。
【0091】
[0107] 別の方法では、(vix,viy)は、隣接コーディングブロックにおいて動きベクトルによって導出されることができる。例えば、図6に示すように、(v0x,v0y)は、ブロックA600、B602、またはC604における動きベクトルから導出されることができ、(v1x,v1y)は、ブロックC606またはD608における動きベクトルから導出されることができ、(v2x,v2y)は、ブロックE610またはF612から導出されることができる。
【0092】
[0108] 代替時間動きベクトル予測
[0109] 代替時間動きベクトル予測(ATMVP)方法(または、高度時間動きベクトル予測と呼ばれるときもある)では、時間動きベクトル予測(TMVP)は、現在PUのサブPUから動き情報(動きベクトルおよび参照インデックスを含む)の複数のセットをフェッチすることによって修正される。
【0093】
[0110] 空間時間動きベクトル予測
[0111] 空間時間動きベクトル予測方法では、サブPUの動きベクトルは、ラスタ走査順序にしたがって、再帰的に導出される。図7は、STMVPの概念を例示する。4つの4×4サブPU A、B、C、およびDを包含する8×8 PUを考える。現在フレーム中の隣接4×4ブロックは、a、b、c、およびdとラベル付けされる。サブCU Aのための動き導出は、その2つの空間隣接物を識別することによって開始する。第1の隣接物は、サブCU Aの上のN×Nブロックである(ブロックc)。このブロックcが利用可能でない、またはイントラコーディングされている場合、サブCU Aの上の他のN×Nブロックが(ブロックcから開始して左から右に)チェックされる。第2の隣接物は、サブCU Aの左のブロックである(ブロックb)。ブロックbが利用可能でない、またはイントラコーディングされている場合、サブCU Aの左の他のブロックが(ブロックbから開始して上から下に)チェックされる。各リストについての隣接ブロックから得られた動き情報は、所与のリストのための第1の参照フレームにスケーリングされる。次に、サブブロックAの時間動きベクトル予測子(TMVP)が、HEVCにおいて指定されたTMVP導出の同じ手順に従うことによって導出される。ロケーションDにおけるコロケートされたブロックの動き情報がフェッチされ、それに応じてスケーリングされる。最後に、動き情報を取り出してスケーリングした後、すべての利用可能な動きベクトル(最大3つまで)が、各参照リストについて別々に平均化される。平均化された動きベクトルは、現在のサブCUの動きベクトルとして割り当てられる。
【0094】
[0112] パターンマッチ動きベクトル導出
[0113] パターンマッチ動きベクトル導出(PMMVD)方法は、フレームレートアップコンバージョン技法に基づく。動き導出プロセスは2つのステップを有する。PUレベルの動き探索が最初に実行され、次いでサブPUレベル動きリファインメントが続く。PUレベルでは、最初の動きベクトルが、バイラテラルマッチング(bilateral matching)またはテンプレートマッチング(template matching)に基づいてPU全体について導出される。最初に、MV候補のリストが生成され、最小のマッチングコストをもたらす候補が、さらなるPUレベルのリファインメントのための開始点として選択される。次いで開始点の周囲でのバイラテラルマッチングまたはテンプレートマッチングに基づく局所的探索が実行され、最小マッチングコストをもたらすMVが、CU全体についてのMVとして得られる。その後に、動き情報は、開始点として導出されたCU動きベクトルを用いてサブPUレベルでさらにリファインされる。
【0095】
[0114] バイラテラルマッチングの概念を図8に例示する。バイラテラルマッチングは、2つの異なる参照ピクチャ中の、現在ブロックの動き軌跡に沿う2つのブロック間の最もよくマッチするものを見つけることによって、動き情報を導出するために使用される。動き軌跡が連続的であると仮定して、2つの参照ブロックを指す動きベクトルMV0およびMV1は、現在ピクチャと2つの参照ピクチャとの間の時間的距離、すなわち、TD0およびTD1に比例するものとする。特別なケースとして、現在ピクチャが時間的に2つの参照ピクチャ間にあり、現在ピクチャから2つの参照ピクチャまでの時間的距離が同じであるとき、バイラテラルマッチングは、ミラーベースの双方向MVとなる。
【0096】
[0115] 図9に例示するテンプレートマッチは、現在ピクチャ中のテンプレート(現在ブロックの上部および/または左の隣接ブロック)と参照ピクチャ中のブロック(テンプレートと同じサイズ)との間の最もよくマッチするものを見つけることによって動き情報を導出するために使用される。
【0097】
[0116] 平面動きベクトル予測
[0117] 平面動きベクトル予測は、以下のように4×4ブロックベースで水平および垂直線形補間を平均化することによって達成される。
【0098】
【数3】
【0099】
[0118] WおよびHは、ブロックの幅および高さを示す。(x,y)は、左上隅のサブブロックに対する現在サブブロックの座標である。すべての距離は、ピクセル距離を4で割ったものによって示される。P(x,y)は、現在サブブロックの動きベクトルである。
【0100】
[0119] ロケーション(x,y)についての水平予測Ph(x,y)および垂直予測Pv(x,y)は、以下のように計算される。
【0101】
【数4】
【0102】
[0120] ここで、L(-1,y)およびR(W,y)は、現在ブロックの左および右の4×4ブロックの動きベクトルである。A(x,-1)およびB(x,H)は、図9に示すように、現在ブロックの上および下の4×4ブロックの動きベクトルである。
【0103】
[0121] 左の列および上の行の隣接ブロックの参照動き情報は、現在ブロックの空間隣接ブロックから導出される。
【0104】
[0122] 右の列および下の行の隣接ブロックの参照動き情報は、以下のように導出される。
1)右下の時間隣接4×4ブロックの動き情報を導出する。
2)右列の隣接4×4ブロックの動きベクトルを、右上の隣接4×4ブロックの動き情報と共に右下の隣接4×4ブロックの導出された動き情報を使用して、R(W,y)=((H-y-1)×AR+(y+1)×BR)/Hとして算出する。
3)下の行の隣接4×4ブロックの動きベクトルを、左下の隣接4×4ブロックの動き情報と共に右下の隣接4×4ブロックの導出された動き情報を使用して、B(x,H)=((W-x-1)×BL+(x+1)×BR)/Wとして算出する。
【0105】
[0123] ここで、図10に示すように、ARは、右上の空間隣接4×4ブロックの動きベクトルであり、BRは、右下の時間隣接4×4ブロックの動きベクトルであり、BLは、左下の空間隣接4×4ブロックの動きベクトルである。
【0106】
[0124] 各リストについての隣接ブロックから得られた動き情報は、所与のリストのための第1の参照ピクチャにスケーリングされる。
【0107】
[0125] 候補リスト挿入
[0126] 利用可能な場合、サブPUレベル動き予測候補は、アフィン→ATMVP→STMVP→PMMVD→平面(Planar)、というデフォルト順序でリストに挿入される。デフォルト順序は、スライスタイプ、時間レイヤ、アフィン動きモデル、および/または時間動き予測子の利用可能性に基づいて事前定義またはシグナリングされ得る。デフォルト順序はまた、ブロックタイプ、ブロック形状、またはブロックサイズに基づいて異なり得る。サブPUレベル動き予測候補の最大数は、高レベルシンタックスによって示される、利用可能なサブPUレベル動き予測候補の総数および/または所定の数によって決定される。1つの例では、所定の数が3であり、かつアフィン、ATMVP、STMVP、PMMVD、および平面候補のすべてが利用可能である場合、最大数は3である。しかし、アフィンおよびATMVPのみが利用可能である場合、最大数は2である。最大数が0である場合、is_sub_pu_motion_flagは偽(「0」)であると推測され、ビットストリームにおいてシグナリングされない。
【0108】
[0127] 他のデフォルト候補順序も使用することができる。
1つの例では、アフィン→PMMVD→ATMVP→STMVP→平面、である。
別の例では、PMMVD→アフィン→ATMVP→STMVP→平面、である。
別の例では、2つ以上のアフィン候補が使用され得る。アフィン1→アフィン2→PMMVD→ATMVP→STMVP→平面
または、アフィン1→ATMVP→アフィン2→平面
[0128] 優先的な候補再順序付け
[0129] デフォルトサブPUレベル動き予測候補リストは、隣接コーディングブロックにおけるそれらの発生に基づいて再順序付けされることができる。1つの例では、隣接コーディングブロックにおける発生をより多く有する候補は、リスト中のより低いインデックス位置に入れられる。
【0109】
[0130] 部分的に優先的な候補再順序付け
[0131] 候補の再順序付けの複雑さを低減するために、優先的な候補再順序付けは、1つまたは複数のサブリストにのみ適用される。例えば、デフォルト順序の候補1-2、3-4は、隣接コーディングブロックにおけるそれらの出現に基づいて別々に再順序付けられる。
【0110】
[0132] プルーニング(Pruning)
[0133] 複雑さを低減するために、サブPU候補リストにプルーニングも部分プルーニングも適用されなくてよい。1つの例では、ATMVP、STMVP、および平面間のプルーニングが適用され得るが、アフィンとサブPU候補の残りとの間にプルーニングは適用されない。
【0111】
[0134] 別の例では、プルーニングは、所定の値以下であるサブPUの数にのみ適用される。
【0112】
[0135] サブPU動き予測候補の代替シグナリング方法
[0136] サブPU動き予測候補の選択は、インデックスの代わりに候補挿入順序にしたがってフラグをイネーブルにすることによってシグナリングされることができる。1つの例では、挿入順序がアフィン→PMMVD→ATMVP→STMVP→平面である場合、シグナリングは表2に示す通りである。
【0113】
[0137] 別の代替方法では、サブPU動き予測候補は、いくつかのサブグループにグループ化されることができる。例えば、アフィン、平面はサブグループ1にグループ化され、ATMVPおよびSTMVPはサブグループ2にグループ化され、PMMVDはさらに別のサブグループ3にグループ化される。例示的なシグナリングを表3に示す。シンタックスpmmvd_flagは、それがPMMVD候補であるか否かを示すために最初にシグナリングされる。次いで、それがPMMVD候補でない場合、それがサブグループ1候補であるかどうかを示すために、別のシンタックス要素sub_group1_flagがシグナリングされる。sub_group1_flagが真であり、それがサブグループ1候補であることを示す場合、それがアフィン候補であるかどうかを示すために、affine_flagがシグナリングされる。それがアフィン候補でない場合、それが平面候補であることを示すために、planar_mv_flagが真として設定される。sub_group1_flagが偽である場合、それがATMVP候補であるかどうかを示すために、atmvp_flagがシグナリングされる。それがATMVP候補でない場合、それがSTMVP候補であることを示すために、stmvp_flagが真として設定される。
【0114】
【表2】
【0115】
【表3】
【0116】
[0138] 表2および表3では、例示しやすくするために利用可能性チェックが無視されていることに留意されたい。対応する候補が利用可能でない場合、フラグは偽(「0」)であると推測される。また、グループ化の他の変形形態も適用できることに留意されたい。
【0117】
[0139] 図11は、本開示の技法を実行し得る例示的なビデオエンコーダ200を例示するブロック図である。図11は説明を目的として提供されており、本開示に広く例示および説明される技法を限定するものとみなされるべきではない。説明を目的として、本開示は、HEVCビデオコーディング規格および開発中のH.266ビデオコーディング規格などのビデオコーディング規格のコンテキストでビデオエンコーダ200を説明する。しかしながら、本開示の技法は、これらのビデオコーディング規格に限定されず、概してビデオ符号化および復号に適用可能である。
【0118】
[0140] 図11の例では、ビデオエンコーダ200は、ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット202、逆変換処理ユニット212、再構成ユニット214、フィルタユニット216、復号ピクチャバッファ(DPB)218、およびエントロピー符号化ユニット220を含む。
【0119】
[0141] ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されることになるビデオデータを記憶し得る。ビデオエンコーダ200は、ビデオデータメモリ230に記憶されたビデオデータを、例えば、ビデオソース104(図1)から受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測時に使用するための参照ビデオデータを記憶する参照ピクチャメモリとして働き得る。ビデオデータメモリ230およびDPB218は、同期ダイナミックランダムアクセスメモリ(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230およびDPB218は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、例示されるように、ビデオエンコーダ200の他の構成要素とともにオンチップであり得るか、またはそれらの構成要素に対してオフチップであり得る。
【0120】
[0142] 本開示では、ビデオデータメモリ230への言及は、そのように明記されていない限り、ビデオエンコーダ200内部のメモリ、またはそのように明記されていない限り、ビデオエンコーダ200外部のメモリに限定されると解釈されるべきではない。むしろ、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(例えば、符号化されることになる現在ブロックについてのビデオデータ)を記憶する参照メモリとして理解されたい。図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時記憶を提供し得る。
【0121】
[0143] 図11の様々なユニットは、ビデオエンコーダ200によって実行される動作を理解する助けとなるために例示されている。これらユニットは、固定機能回路、プログラマブル回路、またはこれらの組合せとしてインプリメントされ得る。固定機能回路は、特定の機能を提供する回路を指し、実行されることができる動作に関して予め設定されている。プログラマブル回路は、様々なタスクを実行するようにプログラムされることができる回路を指し、実行されることができる動作において柔軟な機能を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(例えば、パラメータを受信またはパラメータを出力するように)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは概して不変である。いくつかの例では、ユニットの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、1つまたは複数のユニットは、集積回路であり得る。
【0122】
[0144] ビデオエンコーダ200は、プログラマブル回路から形成された、演算論理ユニット(ALU)、初等関数ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブルコアを含み得る。ビデオエンコーダ200の動作がプログラマブル回路によって実行されるソフトウェアを使用して実行される例では、ビデオエンコーダ200が受信し実行するソフトウェアのオブジェクトコードを、メモリ106(図1)が記憶し得るか、またはビデオエンコーダ200内の別のメモリ(図示せず)がそのような命令を記憶し得る。
【0123】
[0145] ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出し、ビデオデータを残差生成ユニット204およびモード選択ユニット202に提供し得る。ビデオデータメモリ230内のビデオデータは、符号化されることになる生ビデオデータであり得る。
【0124】
[0146] モード選択ユニット202は、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226を含む。モード選択ユニット202は、他の予測モードにしたがってビデオ予測を実行するための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニット、または同様のものを含み得る。
【0125】
[0147] モード選択ユニット202は、概して、複数の符号化パスを調整して、符号化パラメータの組合せとそのような組合せについての結果として得られるレートひずみ値とをテストする。符号化パラメータは、CTUのCUへの分割、CUのための予測モード、CUの残差データのための変換タイプ、CUの残差データのための量子化パラメータなどを含み得る。モード選択ユニット202は、最終的に、他のテストされた組合せよりも良好なレートひずみ値を有する符号化パラメータの組合せを選択し得る。
【0126】
[0148] ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに分割し、スライス内に1つまたは複数のCTUをカプセル化し得る。モード選択ユニット210は、上述したHEVCの四分木構造またはQTBT構造などのツリー構造にしたがってピクチャのCTUを分割し得る。上述したように、ビデオエンコーダ200は、ツリー構造にしたがってCTUを分割することから1つまたは複数のCUを形成し得る。そのようなCUは、一般に「ビデオブロック」または「ブロック」とも呼ばれ得る。
【0127】
[0149] 概して、モード選択ユニット202はまた、現在ブロック(例えば、現在のCU、またはHEVCでは、PUとTUとのオーバーラップ部分)についての予測ブロックを生成するように、その構成要素(例えば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在ブロックのインター予測の場合、動き推定ユニット222は、1つまたは複数の参照ピクチャ(例えば、DPB218に記憶された1つまたは複数の前にコーディングされたピクチャ)中の1つまたは複数のよくマッチする参照ブロックを識別するために動き探索を実行し得る。特に、動き推定ユニット222は、例えば、差分絶対値和(SAD)、差分二乗和(SSD)、平均絶対差(MAD)、平均二乗差(MSD)、または同様のものにしたがって、可能性のある参照ブロックが現在ブロックにどのくらい類似しているかを表す値を計算し得る。動き推定ユニット222は、概して、現在ブロックと考慮中の参照ブロックとの間のサンプルごとの差分を使用して、これらの計算を実行し得る。動き推定ユニット222は、現在ブロックに最もよくマッチする参照ブロックを示す、これらの計算から生じる最低値を有する参照ブロックを識別し得る。
【0128】
[0150] 動き推定ユニット222は、現在ピクチャ中の現在ブロックの位置に対する参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。次いで動き推定ユニット222は、動きベクトルを動き補償ユニット224に提供し得る。例えば、単方向インター予測の場合、動き推定ユニット222は、単一の動きベクトルを提供し得るが、双方向インター予測の場合、動き推定ユニット222は、2つの動きベクトルを提供し得る。次いで動き補償ユニット224は、動きベクトルを使用して予測ブロックを生成し得る。例えば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルが分数サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタにしたがって予測ブロックについての値を補間し得る。さらに、双方向インター予測の場合、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックについてのデータを取り出し、例えば、サンプルごとの平均化または加重平均化により、取り出されたデータを組み合わせ得る。
【0129】
[0151] 別の例として、イントラ予測コーディングまたはイントラ予測コーディングの場合、イントラ予測ユニット226は、現在ブロックに隣接するサンプルから予測ブロックを生成し得る。例えば、方向性モードの場合、イントラ予測ユニット226は、概して、隣接サンプルの値を数学的に組み合わせ、現在ブロックにわたって定義された方向にこれらの計算された値をポピュレートして(populate)、予測ブロックを生成し得る。別の例として、DCモードの場合、イントラ予測ユニット226は、現在ブロックに対する隣接サンプルの平均を計算し、予測ブロックの各サンプルについての結果として得られる平均を含むように予測ブロックを生成し得る。
【0130】
[0152] モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在ブロックの生の符号化されていないバージョンを、およびモード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在ブロックと予測ブロックとの間のサンプルごとの差分を計算する。結果として得られるサンプルごとの差分は、現在ブロックについての残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差ブロック中のサンプル値間の差分を決定して、残差差動パルスコード変調(RDPCM:residual differential pulse code modulation)を使用して残差ブロックを生成し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実行する1つまたは複数の減算器回路を使用して形成され得る。
【0131】
[0153] モード選択ユニット202がCUをPUに分割する例では、各PUは、ルーマ予測ユニットおよび対応するクロマ予測ユニットに関連付けられ得る。ビデオエンコーダ200およびビデオデコーダ300は、様々なサイズを有するPUをサポートし得る。上述のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得、PUのサイズは、PUのルーマ予測ユニットのサイズを指し得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測の場合には、2N×2NまたはN×NというPUサイズを、インター予測の場合には、2N×2N、2N×N、N×2N、N×N、または同様のものという対称PUサイズをサポートし得る。ビデオエンコーダ200およびビデオデコーダ300はまた、インター予測の場合に、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズについての非対称分割をサポートし得る。
【0132】
[0154] モード選択ユニット202がCUをPUにさらに分割しない例では、各CUは、ルーマコーディングブロックおよび対応するクロマコーディングブロックに関連付けられ得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ200およびビデオデコーダ300は、2N×2N、2N×N、またはN×2NというCUサイズをサポートし得る。
【0133】
[0155] イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなどの他のビデオコーディング技法の場合、いくつかの例として、モード選択ユニット202は、コーディング技法に関連するそれぞれのユニットを介して、符号化されている現在ブロックについての予測ブロックを生成する。パレットモードコーディングなどのいくつかの例では、モード選択ユニット202は、予測ブロックを生成せず、代わりに、選択されたパレットに基づいてブロックを再構成する様式を示すシンタックス要素を生成し得る。そのようなモードでは、モード選択ユニット202は、これらのシンタックス要素を、符号化されるようにエントロピー符号化ユニット220に提供し得る。
【0134】
[0156] 上述のように、残差生成ユニット204は、現在ブロックについてのビデオデータと対応する予測ブロックとを受信する。次いで残差生成ユニット204は、現在ブロックについての残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在ブロックとの間のサンプルごとの差分を計算する。したがって、
[0157] 変換処理ユニット206は、残差ブロックに1つまたは複数の変換を適用して、変換係数のブロック(本明細書では「変換係数ブロック」と呼ばれる)を生成する。変換処理ユニット206は、残差ブロックに様々な変換を適用して、変換係数ブロックを形成し得る。例えば、変換処理ユニット206は、残差ブロックに、離散コサイン変換(DCT)、方向性変換、カルーネンレーベ変換(KLT)、または概念的に類似した変換を適用し得る。いくつかの例では、変換処理ユニット206は、残差ブロックへの複数の変換、例えば、一次変換と、回転変換などの二次変換とを実行し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
【0135】
[0158] 量子化ユニット208は、変換係数ブロック中の変換係数を量子化して、量子化された変換係数ブロックを生成し得る。量子化ユニット208は、現在ブロックに関連付けられた量子化パラメータ(QP)値にしたがって変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200(例えば、モード選択ユニット202を介する)は、CUに関連付けられたQP値を調整することによって、現在ブロックに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらし得、したがって、量子化された変換係数は、変換処理ユニット206によって生成された元の変換係数よりも低い精度を有し得る。
【0136】
[0159] 逆量子化ユニット210および逆変換処理ユニット212は、量子化された変換係数ブロックにそれぞれ逆量子化および逆変換を適用して、変換係数ブロックから残差ブロックを再構成し得る。再構成ユニット214は、再構成された残差ブロックと、モード選択ユニット202によって生成された予測ブロックとに基づいて、(ある程度の歪みがある可能性があるが)現在ブロックに対応する再構成されたブロックを生成し得る。例えば、再構成ユニット214は、再構成された残差ブロックのサンプルを、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに加算して、再構成されたブロックを生成し得る。
【0137】
[0160] フィルタユニット216は、再構成されたブロックに対して1つまたは複数のフィルタ動作を実行し得る。例えば、フィルタユニット216は、CUのエッジに沿ったブロックアーティファクト(blockiness artifacts)を低減するためにデブロッキング動作を実行し得る。いくつかの例では、フィルタユニット216の動作はスキップされ得る。
【0138】
[0161] ビデオエンコーダ200は、再構成されたブロックをDPB218に記憶する。例えば、フィルタユニット216の動作が必要とされない例では、再構成ユニット216が、再構成されたブロックをDPB218に記憶し得る。フィルタユニット224の動作が必要とされる例では、フィルタユニット216が、フィルタリングされた再構成されたブロックをDPB218に記憶し得る。動き推定ユニット222および動き補償ユニット224は、その後に符号化されるピクチャのブロックをインター予測するために、再構成された(およびフィルタリングされた可能性のある)ブロックから形成された参照ピクチャをDPB218から取り出し得る。さらに、イントラ予測ユニット226が、現在ピクチャ中の他のブロックをイントラ予測するために、現在ピクチャのDPB218中の再構成されたブロックを使用し得る。
【0139】
[0162] 概して、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。例えば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(例えば、インター予測のための動き情報またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化動作を実行して、エントロピー符号化されたデータを生成し得る。例えば、エントロピー符号化ユニット220は、データに対して、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、V2V(variable-to-variable)長コーディング動作、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率区間区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作を実行し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
【0140】
[0163] ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構成するために必要とされるエントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。特に、エントロピー符号化ユニット220は、ビットストリームを出力し得る。
【0141】
[0164] 上述の動作は、ブロックに関して説明されたものである。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であると理解されたい。上述のように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
【0142】
[0165] いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックに対して繰り返される必要はない。1つの例として、ルーマコーディングブロックのための動きベクトル(MV)および参照ピクチャを識別するための動作は、クロマブロックのためのMVおよび参照ピクチャを識別するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされ得、参照ピクチャは同じであり得る。別の例として、イントラ予測プロセスは、ルーマコーディングブロックとクロマコーディングブロックとで同じであり得る。
【0143】
[0166] ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、回路内にインプリメントされ、かつ予測ピクセル値を使用してフレームレートアップコンバージョン(FRUC)テンプレートを導出し、および導出されたテンプレートを使用してデコーダ側動きベクトル導出技法を実行するように構成された1つまたは複数の処理ユニットとを含む、ビデオデータを符号化するように構成されたデバイスの一例を表す。別の例では、ビデオデコーダ300は、ビデオデータの1つまたは複数の隣接ブロックからそれぞれの動きベクトルを決定し、ビデオデータの1つまたは複数の隣接ブロックからのそれぞれの動きベクトルを使用してビデオデータの現在ブロックについての動きベクトルを導出するように構成され得る。別の例では、ビデオデコーダ300は、ビデオデータの1つまたは複数のコロケートされたブロックからそれぞれの動きベクトルを決定し、ビデオデータの1つまたは複数のコロケートされたブロックからのそれぞれの動きベクトルを使用してビデオデータの現在ブロックについての動きベクトルを導出するように構成され得る。
【0144】
[0167] 図12は、本開示の技法を実行し得る例示的なビデオデコーダ300を例示するブロック図である。図12は説明を目的として提供されており、本開示において広く例示および説明される技法を限定するものではない。説明を目的として、本開示では、ビデオデコーダ300についてJEM、H.266/VVC、およびHEVCの技法にしたがって説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に合わせて構成されたビデオコーディングデバイスによって実行され得る。
【0145】
[0168] 図12の例では、ビデオデコーダ300は、コーディングされたピクチャバッファ(CPB)メモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、フィルタユニット312、および復号ピクチャバッファ(DPB)314を含む。予測処理ユニット304は、動き補償ユニット316およびイントラ予測ユニット318を含む。予測処理ユニット304は、他の予測モードにしたがって予測を実行するための追加ユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニット、または同様のものを含み得る。他の例では、ビデオデコーダ300は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【0146】
[0169] CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されることになる、符号化されたビデオビットストリームなどの、ビデオデータを記憶し得る。CPBメモリ320に記憶されたビデオデータは、例えば、コンピュータ可読媒体110(図1)から取得され得る。CPBメモリ320は、符号化されたビデオビットストリームからの符号化されたビデオデータ(例えば、シンタックス要素)を記憶するCPBを含み得る。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時データなど、コーディングされたピクチャのシンタックス要素以外のビデオデータを記憶し得る。DPB314は、概して、ビデオデコーダ300が、符号化されたビデオビットストリームの後続のデータまたはピクチャを復号するときに参照ビデオデータとして出力および/または使用し得る、復号されたピクチャを記憶する。CPBメモリ320およびDPB314は、同期ダイナミックランダムアクセスメモリ(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。CPBメモリ320およびDPB314は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであり得るか、これらの構成要素に対してオフチップであり得る。
【0147】
[0170] 追加的または代替的に、いくつかの例では、ビデオデコーダ300は、メモリ120(図1)からコーディングされたビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320を用いて上述したようにデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能が一部または全部がソフトウェアにおいてインプリメントされたときにビデオデコーダ300の処理回路によって実行されるように、ビデオデコーダ300によって実行されることになる命令を記憶し得る。
【0148】
[0171] 図12に示す様々なユニットは、ビデオデコーダ300によって実行される動作を理解する助けとなるために例示されている。これらユニットは、固定機能回路、プログラマブル回路、またはこれらの組合せとしてインプリメントされ得る。図11と同様に、固定機能回路は、特定の機能を提供する回路を指し、実行されることができる動作に関して予め設定されている。プログラマブル回路は、様々なタスクを実行するようにプログラムされることができる回路を指し、実行されることができる動作において柔軟な機能を提供する。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(例えば、パラメータを受信またはパラメータを出力するように)ソフトウェア命令を実行し得るが、固定機能回路が実行する動作のタイプは概して不変である。いくつかの例では、ユニットの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、1つまたは複数のユニットは、集積回路であり得る。
【0149】
[0172] ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されたプログラマブルコアを含み得る。ビデオデコーダ300の動作がプログラマブル回路上で実行されるソフトウェアによって実行される例では、オンチップまたはオフチップメモリは、ビデオデコーダ300が受信および実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶し得る。
【0150】
[0173] エントロピー復号ユニット302は、CPBから符号化されたビデオデータを受信し、ビデオデータをエントロピー復号して、シンタックス要素を再生し得る。予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構成ユニット310、およびフィルタユニット312は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。
【0151】
[0174] 概して、ビデオデコーダ300は、ブロックごとのベースでピクチャを再構成する。ビデオデコーダ300は、各ブロックに対して個別に再構成動作を実行し得る(ここで、現在再構成されている、すなわち、復号されているブロックは、「現在ブロック」と呼ばれ得る)。
【0152】
[0175] エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数ならびに量子化パラメータ(QP)および/または(単数または複数の)変換モード指示などの変換情報を定義するシンタックス要素をエントロピー復号し得る。逆量子化ユニット306は、量子化された変換係数ブロックに関連付けられたQPを使用して、量子化の程度を決定し、同様に、逆量子化ユニット306が適用すべき逆量子化の程度を決定し得る。逆量子化ユニット306は、例えば、量子化された変換係数を逆量子化するために、ビット単位の左シフト演算を実行し得る。それによって逆量子化ユニット306は、変換係数を含む変換係数ブロックを形成し得る。
【0153】
[0176] 逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、変換係数ブロックに1つまたは複数の逆変換を適用して、現在ブロックに関連付けられた残差ブロックを生成し得る。例えば、逆変換処理ユニット308は、係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向性変換、または別の逆変換を適用し得る。
【0154】
[0177] さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素にしたがって予測ブロックを生成する。例えば、現在ブロックがインター予測されることを予測情報シンタックス要素が示す場合、動き補償ユニット316が、予測ブロックを生成し得る。このケースでは、予測情報シンタックス要素は、参照ブロックをそこから取り出すDPB314内の参照ピクチャ、および現在ピクチャ中の現在ブロックのロケーションに対する参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(図11)に関して説明したものと実質的に同様にインター予測プロセスを実行し得る。
【0155】
[0178] 別の例として、現在ブロックがイントラ予測されることを予測情報シンタックス要素が示す場合、イントラ予測ユニット318が、予測情報シンタックス要素によって示されるイントラ予測モードにしたがって予測ブロックを生成し得る。ここでも、イントラ予測ユニット318は、概して、イントラ予測ユニット226(図11)に関して説明したものと実質的に同様にイントラ予測プロセスを実行し得る。イントラ予測ユニット318は、DPB314から、現在ブロックに対する隣接サンプルのデータを取り出し得る。
【0156】
[0179] 再構成ユニット310は、予測ブロックおよび残差ブロックを使用して現在ブロックを再構成し得る。例えば、再構成ユニット310は、残差ブロックのサンプルを予測ブロックの対応するサンプルに加算して、現在ブロックを再構成し得る。
【0157】
[0180] フィルタユニット312は、再構成されたブロックに対して1つまたは複数のフィルタ動作を実行し得る。例えば、フィルタユニット312は、再構成されたブロックのエッジに沿ったブロックアーティファクトを低減するためにデブロッキング動作を実行し得る。フィルタユニット312の動作は、必ずしもすべての例において実行されるわけではない。
【0158】
[0181] ビデオデコーダ300は、再構成されたブロックをDPB314に記憶し得る。上述のように、DPB314は、イントラ予測のための現在ピクチャおよび後続の動き補償のための前に復号されたピクチャのサンプルなどの参照情報を予測処理ユニット304に提供し得る。さらに、ビデオデコーダ300は、図1のディスプレイデバイス118などのディスプレイデバイス上での後続の提示のために、復号されたピクチャをDPBから出力し得る。
【0159】
[0182] このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、回路内にインプリメントされ、かつ本明細書で説明する方法およびプロセスをインプリメントするように構成された1つまたは複数の処理ユニットとを含むビデオ復号デバイスの一例を表す。
【0160】
[0183] 例えば、符号化されたビデオデータは、以下のシンタックスを含み得る。
【0161】
【表4】
【0162】
[0184] merge_subblock_flag[x0][y0]は、現在のコーディングユニットのためのサブブロックベースのインター予測パラメータが隣接ブロックから推測されるかどうかを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対する、考慮されるコーディングブロックの左上ルーマサンプルのロケーション(x0,y0)を指定する。merge_subblock_flag[x0][y0]が存在しないとき、それは0に等しいと推測される。
【0163】
[0185] merge_subblock_idx[x0][y0]は、サブブロックベースのマージング候補リストのマージング候補インデックスを指定し、ここで、x0、y0は、ピクチャの左上ルーマサンプルに対する、考慮されるコーディングブロックの左上ルーマサンプルのロケーション(x0,y0)を指定する。
【0164】
[0186] merge_subblock_idx[x0][y0]が存在しないとき、それは0に等しいと推測される。
【0165】
[0187] merge_subblock_flag[xCb][yCb]が1に等しい場合、8.4.4.2において指定されるようなサブブロックマージモードにおける動きベクトルおよび参照インデックスのための導出プロセスが、入力としてのルーマコーディングブロック幅cbWidthおよびルーマコーディングブロック高さcbHeightと、ルーマコーディングブロックロケーション(xCb,yCb)で呼び出され、出力として、水平方向におけるルーマコーディングサブブロックの数numSbXおよび垂直方向におけるルーマコーディングサブブロックの数numSbYと、参照インデックスrefIdxL0、refIdxL1と、予測リスト利用フラグアレイpredFlagL0[xSbIdx][ySbIdx]およびpredFlagL1[xSbIdx][ySbIdx]と、ルーマサブブロック動きベクトルアレイmvL0[xSbIdx][ySbIdx]およびmvL0[xSbIdx][ySbIdx]と、クロマサブブロック動きベクトルアレイmvCL0[xSbIdx][ySbIdx]およびmvCL1[xSbIdx][ySbIdx]と、ここで、xSbIdx=0..numSbX-1、ySbIdx=0..numSbY-1であり、双予測重みインデックスgbiIdx、である。
【0166】
[0188] 例に依存して、本明細書において説明された技法のいずれかの技法ある特定の動作(acts)またはイベントが、異なるシーケンスで実行されることができ、追加され、マージされ、または完全に除外され得る(例えば、説明されたすべての行為またはイベントが技法の実践にとって必要であるわけではない)ことを認識されたい。さらに、ある特定の例では、行為またはイベントは、連続的ではなくむしろ、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサによって同時に実行され得る。
【0167】
[0189] 1つまたは複数の例において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せにおいてインプリメントされ得る。ソフトウェアにおいてインプリメントされる場合には、これら機能は、1つまたは複数の命令もしくはコードとして、コンピュータ可読媒体上に記憶、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルにしたがって、コンピュータプログラムの1つの場所から別の場所への転送を容易にする任意の媒体を含む通信媒体、またはデータ記憶媒体などの有体の媒体に対応するコンピュータ可読記憶媒体を含み得る。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法のインプリメンテーションのための命令、コード、および/またはデータ構造を取り出すために、1つまたは複数のコンピュータもしくは1つまたは複数のプロセッサによってアクセスされることができる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0168】
[0190] 限定ではなく例として、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置、またはその他の磁気記憶デバイス、フラッシュメモリ、もしくは、データ構造または命令の形態で所望のプログラムコードを記憶するために使用されることができ、かつコンピュータによってアクセスされることができる他の任意の媒体を備えることができる。また、任意の接続は、適切にはコンピュータ可読媒体と称する。例えば、命令がウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、もしくは赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含むのではなく、非一時的な有形の記憶媒体を対象とすることを理解されたい。ディスク(disk)およびディスク(disc)は、本明細書で使用されるとき、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ここで、ディスク(disk)は通常、磁気的にデータを再生するが、ディスク(disc)は、レーザーを用いて光学的にデータを再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【0169】
[0191] 命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または、他の同等の集積回路またはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用されるとき、前述の構造、または本明細書で説明された技法のインプリメンテーションに好適な他の任意の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明される機能性は、符号化および復号のために構成された専用ハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得るか、または組み合わされたコーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路もしくは論理要素において十分にインプリメントされることができる。
【0170】
[0192] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(例えば、チップセット)を含む、幅広く様々なデバイスまたは装置においてインプリメントされ得る。開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために、様々な構成要素、モジュール、またはユニットが本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要とするわけではない。むしろ、上述したように、様々なユニットは、コーデックハードウェアユニットに組み合わされ得るか、または、好適なソフトウェアおよび/またはファームウェアと併せて、上述した1つまたは複数のプロセッサを含む、相互動作のハードウェアユニットの集合によって提供され得る。
【0171】
[0193] 様々な例を説明した。これらの例および他の例は、以下の特許請求の範囲の適用範囲内にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
符号化されたビデオデータを受信することと、
前記符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、 前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、
前記サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストのいずれかから動きベクトル予測子を選択することと、
前記選択された動きベクトル予測子を使用して、前記符号化されたビデオデータを復号することと、
を備える、方法。
[C2]
前記符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補の前記リストおよび予測ユニットレベル動き予測候補の前記リストは、前記現在ブロックの隣接ブロックから導出される、C1に記載の方法。
[C3]
前記隣接ブロックは、現在ピクチャ中の前記現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の前記現在ブロックの時間隣接物である、C2に記載の方法。
[C4]
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストは、前記隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる、C2に記載の方法。
[C5]
予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、前記第1の動きベクトル情報または前記第2のベクトル情報は、前記選択された動きベクトル予測子から決定される、C1に記載の方法。
[C6]
前記予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む、C1に記載の方法。
[C7]
サブ予測ユニットレベル動き予測候補の前記リストは、アフィン動きベクトル予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む、C1に記載の方法。
[C8]
前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、マージング候補インデックスを導出することをさらに備え、ここにおいて、前記マージング候補インデックスは、選択されるべき前記動きベクトル予測子を指定する、
C1に記載の方法。
[C9]
ビデオデータを復号するための装置であって、
受信された符号化されたビデオデータを記憶するためのメモリと、
プロセッサと、
を備え、前記プロセッサは、
前記符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、
前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、
前記サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストのいずれかから動きベクトル予測子を選択することと、
前記選択された動きベクトル予測子を使用して、前記符号化されたビデオデータを復号することと、
を行うように構成されている、装置。
[C10]
前記符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補の前記リストおよび予測ユニットレベル動き予測候補の前記リストは、前記現在ブロックの隣接ブロックから導出される、C9に記載の装置。
[C11]
前記隣接ブロックは、現在ピクチャ中の前記現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の前記現在ブロックの時間隣接物である、C10に記載の装置。
[C12]
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストは、前記隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる、C10に記載の装置。
[C13]
予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、前記第1の動きベクトル情報または前記第2のベクトル情報は、前記選択された動きベクトル予測子から決定される、C9に記載の装置。
[C14]
前記予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む、C9に記載の装置。
[C15]
サブ予測ユニットレベル動き予測候補の前記リストは、アフィン動きベクトル予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む、C9に記載の装置。
[C16]
前記プロセッサは、
前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、マージング候補インデックスを導出するようにさらに構成され、ここにおいて、前記マージング候補インデックスは、選択されるべき前記動きベクトル予測子を指定する、
C9に記載の装置。
[C17]
ビデオデータを復号するための装置であって、
受信された符号化されたビデオデータを記憶するためのメモリ手段と、
プロセッサ手段と、
を備え、前記プロセッサ手段は、
前記符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、
前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、
前記サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストのいずれかから動きベクトル予測子を選択することと、
前記選択された動きベクトル予測子を使用して、前記符号化されたビデオデータを復号することと、
を行うように構成されている、装置。
[C18]
前記符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補の前記リストおよび予測ユニットレベル動き予測候補の前記リストは、前記現在ブロックの隣接ブロックから導出される、C17に記載の装置。
[C19]
前記隣接ブロックは、現在ピクチャ中の前記現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の前記現在ブロックの時間隣接物である、C18に記載の装置。
[C20]
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストは、前記隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる、C18に記載の装置。
[C21]
予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、前記第1の動きベクトル情報または前記第2のベクトル情報は、前記選択された動きベクトル予測子から決定される、C17に記載の装置。
[C22]
前記予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含む、C17に記載の装置。
[C23]
サブ予測ユニットレベル動き予測候補の前記リストは、アフィン動きベクトル予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む、C17に記載の装置。
[C24]
前記プロセッサ手段は、
前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、マージング候補インデックスを導出するようにさらに構成され、ここにおいて、前記マージング候補インデックスは、選択されるべき前記動きベクトル予測子を指定する、
C17に記載の装置。
[C25]
実行されたときに、
符号化されたビデオデータを受信することと、
前記符号化されたビデオデータからサブ予測ユニット動きフラグをパースすることと、
前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、サブ予測ユニットレベル動き予測候補のリストを導出することと、
前記サブ予測ユニット動きフラグがアクティブでないと決定したことに応答して、予測ユニットレベル動き予測候補のリストを導出することと、
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストのいずれかから動きベクトル予測子を選択することと、
前記選択された動きベクトル予測子を使用して、前記符号化されたビデオデータを復号することと、
を備える方法を、1つまたは複数のプロセッサに実行させる命令を記憶した、非一時的コンピュータ可読記憶媒体。
[C26]
前記符号化されたビデオデータは、現在ブロックを含み、サブ予測ユニットレベル動き予測候補の前記リストおよび予測ユニットレベル動き予測候補の前記リストは、前記現在ブロックの隣接ブロックから導出される、C25に記載の媒体。
[C27]
前記隣接ブロックは、現在ピクチャ中の前記現在ブロックの空間隣接物、または前にコーディングされたピクチャ中の前記現在ブロックの時間隣接物である、C26に記載の媒体。
[C28]
サブ予測ユニットレベル動き予測候補の前記リストまたは予測ユニットレベル動き予測候補の前記リストは、前記隣接ブロックにおける動き予測発生に基づいて少なくとも部分的に順序付けられる、C26に記載の媒体。
[C29]
予測ユニット中のピクセルは、第1の動きベクトル情報を共有し、サブ予測ユニット中のピクセルは、第2の動きベクトル情報を共有し、前記第1の動きベクトル情報または前記第2のベクトル情報は、前記選択された動きベクトル予測子から決定され、
前記予測ユニットレベル動きベクトル候補リストは、空間隣接候補および時間隣接候補のうちの少なくとも1つを含み、
サブ予測ユニットレベル動き予測候補の前記リストは、アフィン動きベクトル予測、代替時間動きベクトル予測(ATMVP)、空間時間動きベクトル予測(STMVP)、平面動きベクトル予測、およびパターンマッチ動きベクトル導出(PMVD)のうちの少なくとも1つを含む、C25に記載の媒体。
[C30]
前記方法は、
前記サブ予測ユニット動きフラグがアクティブであると決定したことに応答して、マージング候補インデックスを導出することをさらに備え、ここにおいて、前記マージング候補インデックスは、選択されるべき前記動きベクトル予測子を指定する、
C25に記載の媒体。
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12