(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-27
(45)【発行日】2022-07-05
(54)【発明の名称】部分的コスト計算
(51)【国際特許分類】
H04N 19/57 20140101AFI20220628BHJP
H04N 19/105 20140101ALI20220628BHJP
H04N 19/136 20140101ALI20220628BHJP
H04N 19/176 20140101ALI20220628BHJP
【FI】
H04N19/57
H04N19/105
H04N19/136
H04N19/176
(21)【出願番号】P 2020568386
(86)(22)【出願日】2019-06-06
(86)【国際出願番号】 IB2019054710
(87)【国際公開番号】W WO2019234672
(87)【国際公開日】2019-12-12
【審査請求日】2020-12-03
(32)【優先日】2018-06-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ワン,ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2019/231706(WO,A1)
【文献】国際公開第2019/001786(WO,A1)
【文献】国際公開第2015/142833(WO,A1)
【文献】米国特許出願公開第2018/0199057(US,A1)
【文献】Xu Chen, Jicheng An, and Jianhua Zheng,Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-D0029,4th Meeting: Chengdu, CN,2016年10月,pp.1-4
【文献】Xiaoyu Xiu, et al.,Description of SDR, HDR, and 360° video coding technology proposal by InterDigital Communications and Dolby Laboratories,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-J0015-v1,10th Meeting: San Diego, US,2018年04月,pp.i,3-7
【文献】Hongbin Liu, et al.,CE9-related: Simplification of Decoder Side Motion Vector Derivation,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0105-v1,11th Meeting: Ljubljana, SI,2018年07月,pp.1-3
【文献】Meng Xu, Xiang Li, Stephan Wenger, and Shan Liu,CE9-related: Memory bandwidth reduction for DMVR,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0288,11th Meeting: Ljubljana, SI,2018年07月,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ・データを符号化する方法であって:
現在のビデオ・ブロックについての動き情報を導出するステップと;
前記動き情報に基づき、デコーダ動きベクトル洗練(DMVR)ツールを使って、洗練された動き情報を導出するステップであって、現在のビデオ・ブロックと関係した参照ピクチャーにおける一つまたは複数の領域の各領域におけるサンプルの部分的な集合が、各領域に対応するマッチング・コストを計算するために使用され、前記マッチング・コストは前記洗練された動き情報を決定するために使用され、前記各領域におけるサンプルの部分的な集合は、前記各領域の複数の部分領域の各部分領域の一部のサンプルを含み、前記複数の部分領域は同じサイズをもつ、ステップと;
前記洗練された動き情報を使って現在のビデオ・ブロック
とビットストリームとの間の変換
を実行するステップとを含む、
方法。
【請求項2】
前記各部分領域がサンプルのN行を含み、前記各部分領域におけるサンプルの前記部分的な集合が、前記各部分領域におけるサンプルの少なくとも1つの行を含み、Nは1より大きな整数である、請求項1に記載の方法。
【請求項3】
前記各部分領域におけるサンプルの前記少なくとも1つの行が、前記各部分領域におけるサンプルのi番目の行であり、iの値は前記複数の部分領域について同じであり、iの値は1以上N以下である、請求項2に記載の方法。
【請求項4】
iの値があらかじめ定義されている、請求項3に記載の方法。
【請求項5】
前記各部分領域におけるサンプルの前記少なくとも1つの行が、前記各部分領域における最初の行である、請求項2に記載の方法。
【請求項6】
Nの値があらかじめ定義されている、請求項2ないし5のうちいずれか一項に記載の方法。
【請求項7】
N=2である、請求項2ないし6のうちいずれか一項に記載の方法。
【請求項8】
前記現在のビデオ・ブロックが少なくとも1つのサブブロックを含み、前記現在のビデオ・ブロックについて導出される前記動き情報が各サブブロックの動き情報を含み、前記現在のビデオ・ブロックについて導出される前記洗練された動き情報が各サブブロックの洗練された動き情報を含む、請求項1ないし7のうちいずれか一項に記載の方法。
【請求項9】
前記サブブロックの幅および高さの少なくとも一方が16以下である、請求項8に記載の方法。
【請求項10】
前記現在のビデオ・ブロックのルーマ成分が、前記DMVRツールを使
うことによって前記洗練された動き
情報を導出するために使用される、請求項1ないし9のうちいずれか一項に記載の方法。
【請求項11】
前記一つまたは複数の領域が、前記現在のビデオ・ブロックについて導出されたもとの動きベクトルに基づいて決定される、請求項1ないし10のうちいずれか一項に記載の方法。
【請求項12】
前記一つまたは複数の領域が、前記参照ピクチャーにおけるもとの動きベクトルに対応するもとの領域に対する少なくとも1つのオフセットに対応する少なくとも1つの領域を含む、請求項1ないし11のうちいずれか一項に記載の方法。
【請求項13】
前記洗練された動き情報に対応する洗練された予測領域が、前記一つまたは複数の領域のうち最小マッチング・コストに対応する領域である、請求項1ないし12のうちいずれか一項に記載の方法。
【請求項14】
前記変換することが、前記現在のビデオ・ブロックをビットストリームにエンコードすることを含む、請求項1ないし13のうちいずれか一項に記載の方法。
【請求項15】
前記変換することが、ビットストリームから前記現在のビデオ・ブロックをデコードすることを含む、請求項1ないし14のうちいずれか一項に記載の方法。
【請求項16】
プロセッサおよび命令を備えた非一時的メモリを有する、ビデオ・データを符号化する装置であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに:
現在のビデオ・ブロックについての動き情報を導出するステップと;
前記動き情報に基づき、デコーダ動きベクトル洗練(DMVR)ツールを使って、洗練された動き情報を導出するステップであって、現在のビデオ・ブロックと関係した参照ピクチャーにおける一つまたは複数の領域の各領域におけるサンプルの部分的な集合が、各領域に対応するマッチング・コストを計算するために使用され、前記マッチング・コストは前記洗練された動き情報を決定するために使用され、前記各領域におけるサンプルの部分的な集合は、前記各領域の複数の部分領域の各部分領域の一部のサンプルを含み、前記複数の部分領域は同じサイズをもつ、ステップと;
前記洗練された動き情報を使って現在のビデオ・ブロック
とビットストリームとの間の変換
を実行するステップとを実行させるものである、
装置。
【請求項17】
命令を記憶している非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、プロセッサに:
現在のビデオ・ブロックについての動き情報を導出するステップと;
前記動き情報に基づき、デコーダ動きベクトル洗練(DMVR)ツールを使って、洗練された動き情報を導出するステップであって、現在のビデオ・ブロックと関係した参照ピクチャーにおける一つまたは複数の領域の各領域におけるサンプルの部分的な集合が、各領域に対応するマッチング・コストを計算するために使用され、前記マッチング・コストは前記洗練された動き情報を決定するために使用され、前記各領域におけるサンプルの部分的な集合は、前記各領域の複数の部分領域の各部分領域の一部のサンプルを含み、前記複数の部分領域は同じサイズをもつ、ステップと;
前記洗練された動き情報を使って現在のビデオ・ブロック
とビットストリームとの間の変換
を実行するステップとを実行させるものである、
記憶媒体。
【請求項18】
ビデオのビットストリー
ムを記憶
するための方法であって:
現在のビデオ・ブロックについての動き情報を導出するステップと;
前記動き情報に基づき、デコーダ動きベクトル洗練(DMVR)ツールを使って、洗練された動き情報を導出するステップであって、現在のビデオ・ブロックと関係した参照ピクチャーにおける一つまたは複数の領域の各領域におけるサンプルの部分的な集合が、各領域に対応するマッチング・コストを計算するために使用され、前記マッチング・コストは前記洗練された動き情報を決定するために使用され、前記各領域におけるサンプルの部分的な集合は、前記各領域の複数の部分領域の各部分領域の一部のサンプルを含み、前記複数の部分領域は同じサイズをもつ、ステップと;
前記洗練された動き情報を使って現在のビデオ・ブロックから前記ビットストリーム
を生成するステップと
:
前記ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップとを含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
パリ条約に基づく適用可能な特許法および/または規則に基づき、本出願は、2018年6月7日に出願された先の米国仮特許出願第62/682,150号の優先権および利益を適時に主張してなされる。米国仮特許出願第62/682,150号の開示全体が、本出願の開示の一部として参照によって援用される。
【0002】
技術分野
本文書は、ビデオ符号化技術に関するものである。
【背景技術】
【0003】
ビデオ圧縮における進歩にもかかわらず、デジタル・ビデオは、依然として、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオの受信・表示が可能な接続されたユーザー装置の数が増加するにつれて、デジタル・ビデオ使用に対する帯域幅需要は増加し続けることが予想される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ビデオ符号化におけるデコーダ側動きベクトル導出(decoder side motion vector derivation、DMVD)に関連する技術が開示された。これは、HEVCのような既存のビデオ符号化標準、または最終化されようとしている標準(多用途ビデオ符号化(Versatile Video Coding))に適用されうる。これは、将来のビデオ符号化規格またはビデオ・コーデックにも適用可能である。
【課題を解決するための手段】
【0005】
ある例示的側面では、ビデオのデジタル表現を含むビットストリームをデコードする方法が開示される。本方法は、ビットストリームから現在のビデオ・ブロックの動き情報をデコードするステップと、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のピクセル位置の部分的な集合に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれは、複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストを有するテンプレートを用いて現在のブロックの動き情報を洗練するステップとを含む。
【0006】
別の例示的側面では、ビデオのデジタル表現を含むビットストリームをデコードする方法が開示される。本方法は、ビットストリームから現在のビデオ・ブロックの動き情報をデコードするステップと、現在のビデオ・ブロックのサイズを決定するステップと、現在のビデオ・ブロックのサイズが第1のサイズより小さいとの決定に応じて、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれにおけるピクセル位置の部分的な集合に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、現在のビデオ・ブロックのサイズが第1のサイズより小さくないとの決定に応じて、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のすべてのピクセル位置に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストを有するテンプレートを使用して、現在のブロックの動き情報を洗練するステップとを含む。
【0007】
さらに別の例示的側面では、ビデオのデジタル表現を含むビットストリームをデコードする方法が開示される。本方法は、ビットストリームから現在のビデオ・ブロックの動き情報をデコードするステップと、現在のビデオ・ブロックのサイズを決定するステップと、現在のビデオ・ブロックのサイズが第1のサイズより大きいとの決定に応じて、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のピクセル位置の部分的な集合に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、現在のビデオ・ブロックのサイズが第1のサイズより大きくないとの決定に応じて、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のすべてのピクセル位置に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストを有するテンプレートを用いて現在のビデオ・ブロックの動き情報を洗練するステップとを含む。
【0008】
さらに別の例では、ビデオのデジタル表現を含むビットストリームをデコードする方法が開示されている。本方法は、ビットストリームから現在のビデオ・ブロックの動き情報をデコードするステップと、現在のビデオ・ブロックの形状を決定するステップと、現在のビデオ・ブロックの形状が第1の形状であるとの決定に応じて、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のピクセル位置の部分的な集合に基づいて現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、現在のビデオ・ブロックの形状が第2の形状であるとの決定に応じて、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のピクセル位置の部分的な集合に基づいて現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、現在のブロックの形状が第3の形状であるとの決定に応じて、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のすべてのピクセル位置に基づいて現在のビデオ・ブロックのマッチング・コストを推定するステップであって、前記一つまたは複数のテンプレートのそれぞれは複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストをもつテンプレートを用いて現在のブロックの動き情報を洗練するステップとを含む。
【0009】
別の例示的側面では、上述の方法のそれぞれを実施するように構成されたプロセッサを含む装置が開示される。
【0010】
さらに別の例示的側面では、これらの方法は、コンピュータ実行可能命令の形で具現され、コンピュータ読み取り可能なプログラム媒体に記憶されてもよい。
【0011】
これらおよびその他の側面は、本稿においてさらに説明される。
【図面の簡単な説明】
【0012】
【
図1】マージ候補リスト構築のための導出プロセスの例を示す。
【0013】
【0014】
【
図3】空間的マージ候補の冗長性検査のために考慮される候補ペアの例を示す。
【0015】
【
図4】
図4Aおよび
図4Bは、N×2Nおよび2N×N分割の第2のPUについての例示的な位置を示す。
【0016】
【
図5】時間的マージ候補のための動きベクトル・スケーリングの例示的な図である。
【0017】
【
図6】時間的マージ候補C0およびC1の候補位置の例を示す。
【0018】
【
図7】組み合わされた双予測マージ候補の例を示す。
【0019】
【
図8】動きベクトル予測候補のための例示的な導出プロセスを示す。
【0020】
【
図9】空間的動きベクトル候補のための動きベクトル・スケーリングの例示的な図を示す。
【0021】
【0022】
【0023】
【
図12】FRUCにおけるユニラテラルMEの例を示す。
【0024】
【
図13】バイラテラル・テンプレート・マッチングに基づくDMVRの例を示す。
【0025】
【
図14】テンプレート・マッチングにおける簡略化されたテンプレートの例を示す。
【0026】
【
図15】ビデオ・デコードの例示的方法のためのフローチャートである。
【0027】
【
図16】ビデオ・デコードの別の例示的方法のためのフローチャートである。
【0028】
【
図17】ビデオ・デコードのさらに別の例示的方法のためのフローチャートである。
【0029】
【
図18】ビデオ・デコードのさらに別の例示的方法のためのフローチャートである。
【0030】
【
図19】ビデオ・デコード装置のブロック図である。
【0031】
【発明を実施するための形態】
【0032】
本稿は、圧縮解除またはデコードされたデジタル・ビデオの品質を改善するために、ビデオ・ビットストリームのデコーダによって使用されうるさまざまな技術を提供する。さらに、ビデオ・エンコーダが、さらなるエンコードのために使用されるデコードされたフレームを再構成するために、エンコードのプロセス中にこれらの技術を実装してもよい。
【0033】
セクション見出しは、理解を容易にするために本稿で使用されており、実施形態および技術を対応するセクションに限定するものではない。よって、あるセクションからの実施形態は、他のセクションからの実施形態と組み合わせることができる。さらに、いくつかの実施形態は、ビデオ符号化ステップを詳細に記述するが、符号化を元に戻す対応するデコード・ステップが、デコーダによって実装されることが理解されるであろう。さらに、ビデオ処理は、ビデオ符号化または圧縮、ビデオ復号または圧縮解除、およびビデオ・ピクセルがある圧縮フォーマットから別の圧縮フォーマットまたは異なる圧縮ビットレートに表現されるビデオ・トランスコードを包含する。
【0034】
1.技術的枠組み
ビデオ符号化規格は、主に、よく知られたITU-TおよびISO/IEC規格の開発を通じて発展してきた。ITU-TはH.261およびH.263を作成し、ISO/IECはMPEG-1およびMPEG-4 Visualを作成した。2つの組織はH.262/MPEG-2 VideoおよびH.264/MPEG-4 Advanced Video Coding(AVC)およびH.265/HEVC規格を共同で作成した。H.262以来、ビデオ符号化規格は、時間的予測と変換符号化が利用されるハイブリッド・ビデオ符号化構造に基づいている。HEVCを越えた将来のビデオ符号化技術を探求するため、2015年にVCEGとMPEGが共同で合同ビデオ探査チーム(Joint Video Exploration Team、JVET)を設立した。それ以来、JVETによって多くの新しい方法が採用され、合同探求モデル(Joint Exploration Model、JEM)と名付けられた参照ソフトウェアに入れられた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間で合同ビデオエキスパートチーム(Joint Video Expert Team、JVET)が発足し、HEVCと比較して50%のビットレート削減を目指してVVC規格に取り組んでいる。
【0035】
2.HEVC/H.265におけるインター予測
各インター予測される予測ユニット〔予測単位〕(Prediction Unit、PU)は、1つまたは2つの参照ピクチャー・リストのための動きパラメータを有する。動きパラメータは、動きベクトルおよび参照ピクチャー・インデックスを含む。2つの参照ピクチャー・リストのうちの1つの使用が、inter_pred_idcを使用して信号伝達されてもよい。動きベクトルは、予測子に対するデルタとして明示的に符号化されてもよい。
【0036】
符号化ユニット〔符号化単位〕(Coding Unit、CU)がスキップ・モードで符号化されるとき、1つのPUがそのCUに関連付けられ、有意な残差係数、符号化された動きベクトル・デルタまたは参照ピクチャー・インデックスは存在しない。マージ・モードが指定されると、現在のPUについての動きパラメータが、空間的および時間的な候補を含む近隣のPUから取得される。マージ・モードは、スキップ・モードについてだけでなく、任意のインター予測されるPUに適用できる。マージ・モードに対する代替は、動きパラメータの明示的な伝送であり、ここで、動きベクトル(より正確には、動きベクトル予測子と比較した動きベクトル差分)、各参照ピクチャー・リストについての対応する参照ピクチャー・インデックス、および参照ピクチャー・リスト使用が、各PUごとに明示的に信号伝達される。そのようなモードは、本稿では高度動きベクトル予測(Advanced Motion Vector Prediction、AMVP)と呼ばれる。
【0037】
信号伝達により、2つの参照ピクチャー・リストのうちの一方が使用されるべきであることが示される場合、PUは、サンプルの1つのブロックから生成される。これは「単予測(uni-prediction)」と呼ばれる。単予測は、PスライスおよびBスライス両方について利用可能である。
【0038】
信号伝達により両方の参照ピクチャー・リストが使用されるべきであることが示される場合、PUはサンプルの2つのブロックから生成される。これは「双予測(bi-prediction)」と呼ばれる。双予測は、Bスライスについてのみ利用可能である。
【0039】
以下のテキストは、HEVCにおいて指定されたインター予測モードの詳細を与える。説明はマージ・モードから始まる。
【0040】
2.1.1.マージ・モード
2.1.1.1.マージ・モードのための候補の導出
マージ・モードを使用してPUが予測される場合、マージ候補リスト内の項目を指すインデックスがビットストリームからパースされ、動き情報を取得するために使用される。このリストの構築は、HEVC規格において規定されており、以下の一連のステップに従って要約できる。
●ステップ1:初期候補の導出
○ステップ1.1:空間的候補の導出
○ステップ1.2:空間的候補についての冗長性検査
○ステップ1.3:時間的候補の導出
●ステップ2:追加的候補の挿入
○ステップ2.1:双予測候補の作成
○ステップ2.2:ゼロ動き候補の挿入
【0041】
これらのステップは
図1にも概略的に示されている。空間的マージ候補の導出のためには、5つの異なる位置に位置する候補の中から最大4つのマージ候補が選択される。時間的マージ候補の導出のためには、最大1つのマージ候補が2つの候補の中から選択される。デコーダでは各PUについて一定数の候補が想定されるので、ステップ1から得られた候補の数が、スライス・ヘッダにおいて信号伝達されるマージ候補の最大数(MaxNumMergeCand)に達しない場合には、追加的候補が生成される。候補の数は一定であるので、最良のマージ候補のインデックスは、切り詰められた単進的二値化(truncated unary binarization、TU)を用いてエンコードされる。CUのサイズが8に等しい場合、現在のCUのすべてのPUは、2N×2N予測ユニットのマージ候補リストと同一の単一のマージ候補リストを共有する。
【0042】
以下では、上記の諸ステップに関連する動作が詳述される。
【0043】
2.1.1.2.空間的候補の導出
空間的マージ候補の導出では、
図2に示された位置に位置する候補の中から最大4つのマージ候補が選択される。導出順はA
1、B
1、B
0、A
0、B
2である。位置B
2は、位置A
1、B
1、B
0、A
0のいずれかのPUが利用できない(たとえば、それが別のスライスまたはタイルに属するため)またはイントラ符号化されている場合にのみ考慮される。位置A
1で候補が追加された後、残りの候補の追加は、同じ動き情報をもつ候補がリストから除外されることを保証する冗長性検査の対象となり、符号化効率が改善される。計算複雑さを低減するために、前述の冗長性検査では、可能な候補対のすべてが考慮されるわけではない。その代わりに、
図3の矢印で結ばれた対のみが考慮され、冗長性検査のために使用される対応する候補が同じ動き情報をもたない場合にのみ、候補がリストに追加される。重複する動き情報の別の源は、2N×2Nとは異なる分割に関連付けられた「第2のPU」である。一例として、
図4は、それぞれ、N×2Nおよび2N×Nの場合の第2のPUを示す。現在のPUがN×2Nとして分割されている場合、位置A
1における候補はリスト構築のために考慮されない。実際、この候補を加えることによって、同じ動き情報をもつ2つの予測ユニットが得られる。これは、符号化ユニットにおいて1つのPUをもつだけで冗長である。同様に、現在のPUが2N×Nとして分割されている場合、位置B
1は考慮されない。
【0044】
2.1.1.3.時間的候補の導出
このステップでは、1つの候補のみがリストに追加される。特に、この時間的マージ候補の導出において、スケーリングされた動きベクトルが、与えられた参照ピクチャー・リスト内で現在のピクチャーとの最小のPOC差をもつピクチャーに属する共位置のPUに基づいて導出される。共位置のPUの導出のために使用される参照ピクチャー・リストは、スライス・ヘッダ内で明示的に信号伝達される。時間的マージ候補のためのスケーリングされた動きベクトルは、
図5における点線によって示されるように得られ、これは、POC距離、tbおよびtdを用いて、共位置のPUの動きベクトルからスケーリングされる。ここで、tbは、現在のピクチャーの参照ピクチャーと現在のピクチャーとの間のPOC差であると定義され、tdは、該共位置のピクチャーの参照ピクチャーと該共位置のピクチャーとの間のPOC差であると定義される。時間的マージ候補の参照ピクチャー・インデックスはゼロに設定される。スケーリング・プロセスの実際的な実現は、HEVC仕様において記述されている。Bスライスについては、一方は参照ピクチャー・リスト0について、他方は参照ピクチャー・リスト1についての2つの動きベクトルが得られ、組み合わされて、双予測マージ候補を作成する。
【0045】
参照フレームに属する共位置のPU(Y)では、
図6に示されるように、時間的候補についての位置は候補C
0とC
1の間で選択される。位置C
0におけるPUが利用可能でない場合、またはイントラ符号化されている場合、または現在のCTU行の外にある場合は、位置C
1が使用される。それ以外の場合は、位置C
0が、時間的マージ候補の導出において使用される。
【0046】
2.1.1.4.追加的候補の挿入
空間的および時間的マージ候補のほかに、2つの追加的なタイプのマージ候補がある:組み合わされた双予測マージ候補とゼロ・マージ候補である。組み合わされた双予測マージ候補は、空間的および時間的マージ候補を利用することによって生成される。組み合わされた双予測マージ候補は、Bスライスのためだけに使用される。組み合わされた双予測候補は、初期候補の第1の参照ピクチャー・リスト動きパラメータと別の候補の第2の参照ピクチャー・リスト動きパラメータとを組み合わせることによって生成される。これらの2つのタプルが異なる動き仮説を提供するならば、それらは新しい双予測候補を形成する。一例として、
図7は、mvL0およびrefIdxL0またはmvL1およびrefIdxL1を有する、もとのリスト(左側)内の2つの候補が、最終リスト(右側)に追加される組み合わされた双予測マージ候補を作成するために使用される場合を示す。HEVC仕様において定義された、これらの追加的なマージ候補を生成するために考慮される組み合わせに関する多数の規則がある。
【0047】
マージ候補リストにおける残りの項目を埋め、よってMaxNumMergeCand容量に達するために、ゼロ動き候補が挿入される。これらの候補は、ゼロ空間変位と、ゼロから始まり、新しいゼロ動き候補がリストに追加される毎に増加する参照ピクチャー・インデックスとを有する。これらの候補によって使用される参照フレームの数は、それぞれ単方向予測および双方向予測について、1および2である。最後に、これらの候補に対しては冗長性検査は実行されない。
【0048】
2.1.1.5.並列処理のための動き推定領域
エンコード・プロセスを高速化するために、動き推定が並列に実行されることができ、それにより、与えられた領域内のすべての予測ユニットについての動きベクトルが同時に導出される。空間的近傍からのマージ候補の導出は、並列処理を妨げる可能性がある。一つの予測ユニットが隣接するPUから動きパラメータを導出することは、その関連する動き推定が完了するまではできないからである。符号化効率と処理待ち時間との間のトレードオフを緩和するために、HEVCは動き推定領域(motion estimation region、MER)を定義しており、そのサイズは、"log2_parallel_merge_level_minus2"シンタックス要素を用いて、ピクチャー・パラメータ・セットにおいて信号伝達される。MERが定義されている場合、同じ領域にはいるマージ候補は利用不能とマークされ、よって、リスト構築において考慮されない。
【0049】
2.1.2.AMVP
AMVPは、近傍PUとの動きベクトルの空間時間的相関を活用し、それが動きパラメータの明示的な伝送のために使用される。各参照ピクチャー・リストについて、まず左、上の時間的に近隣のPU位置の利用可能性を検査し、冗長な候補を除去し、ゼロ・ベクトルを加えて候補リストを一定長にすることによって、動きベクトル候補リストが構築される。次いで、エンコーダは候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。同様に、マージ・インデックス信号伝達では、最良の動きベクトル候補のインデックスは、切り詰められた単進法を用いてエンコードされる。この場合にエンコードされるべき最大値は2である(
図8参照)。以下の諸セクションでは、動きベクトル予測候補の導出プロセスについての詳細を与える。
【0050】
2.1.2.1.AMVP候補の導出
図8は、動きベクトル予測候補のための導出プロセスを要約している。
【0051】
動きベクトル予測では、空間的動きベクトル候補と時間的動きベクトル候補という2つのタイプの動きベクトル候補が考慮される。空間的動きベクトル候補の導出については、
図2に示されるように、5つの異なる位置に位置する各PUの動きベクトルに基づいて、最終的には2つの動きベクトル候補が導出される。
【0052】
時間的動きベクトル候補の導出については、2つの異なる共位置の位置に基づいて導出される2つの候補から、1つの動きベクトル候補が選択される。空間時間的候補の第1のリストが作成された後、リスト内の重複した動きベクトル候補が除去される。潜在的な候補の数が2よりも多い場合、関連する参照ピクチャー・リスト内の参照ピクチャー・インデックスが1よりも大きい動きベクトル候補は、リストから除去される。空間時間的動きベクトル候補の数が2より少ない場合、追加的なゼロ動きベクトル候補がリストに追加される。
【0053】
2.1.2.2.空間的動きベクトル候補
空間的動きベクトル候補の導出において、
図2に示されるような位置に位置するPUから導出される5つの潜在的な候補のうち最大2つの候補が考慮される。前記の位置は、動きマージの位置と同じである。現在のPUの左側についての導出順序は、A
0、A
1、およびスケーリングされたA
0、スケーリングされたA
1として定義される。現在のPUの上側についての導出順序は、B
0、B
1、B
2、スケーリングされたB
0、スケーリングされたB
1、スケーリングされたB
2として定義される。よって、それぞれの側について、動きベクトル候補として使用できる4つのケースがあり、2つのケースは空間的スケーリングを使用することを必要とされず、2つのケースは空間スケーリングが使用される。4つの異なるケースは次のようにまとめられる。
・空間的スケーリングなし
-(1)同じ参照ピクチャー・リスト、同じ参照ピクチャー・インデックス(同じPOC)
-(2)異なる参照ピクチャー・リストであるが、同じ参照ピクチャー(同じPOC)
・空間的スケーリング
-(3)同じ参照ピクチャー・リストであるが、異なる参照ピクチャー(異なるPOC)
-(4)異なる参照ピクチャー・リストおよび異なる参照ピクチャー(異なるPOC)
【0054】
まず空間的スケーリングのない場合、次に空間的スケーリングをチェックする。空間的スケーリングは、参照ピクチャー・リストには関係なく、近隣のPUの参照ピクチャーと現在のPUの参照ピクチャーの間でPOCが異なる場合に考慮される。左候補のすべてのPUが利用可能でないか、またはイントラ符号化されている場合、左および上のMV候補の並列導出を助けるために、上の動きベクトルについてのスケーリングが許容される。そうでない場合は、空間的スケーリングは、上の動きベクトルについては許容されない。
【0055】
空間的スケーリング・プロセスにおいては、近傍(neighbouring)PUの動きベクトルは、
図9に示されるように、時間的スケーリングと同様の仕方でスケーリングされる。主な違いは、参照ピクチャー・リストと現在のPUのインデックスが入力として与えられることであり、実際のスケーリング・プロセスは時間的スケーリングのものと同じである。
【0056】
2.1.2.3.時間的動きベクトル候補
参照ピクチャー・インデックスの導出のほかは、時間的マージ候補の導出のためのすべてのプロセスは、空間的動きベクトル候補の導出のためのものと同じである(
図6を参照)。参照ピクチャー・インデックスはデコーダに信号伝達される。
【0057】
2.2.JEMにおける新しいインター予測方法
2.2.1.パターンマッチング動きベクトル導出
パターンマッチング動きベクトル導出(pattern matched motion vector derivation、PMMVD)モードは、フレームレート上方変換(Frame-Rate Up Conversion、FRUC)技法に基づく特別なマージ・モードである。このモードでは、ブロックの動き情報は信号伝達されず、デコーダ側で導出される。
【0058】
CUについて、FRUCフラグは、そのマージ・フラグが真の場合に信号伝達される。FRUCフラグが偽の場合は、マージ・インデックスが信号伝達され、通常のマージ・モードが使用される。FRUCフラグが真の場合は、追加的なFRUCモード・フラグが信号伝達されて、どの方法(バイラテラル・マッチングまたはテンプレート・マッチング)がそのブロックについての動き情報を導出するために使用されるべきかを示す。
【0059】
エンコーダ側では、CUについてFRUCマージ・モードを使用するかどうかの決定は、通常のマージ候補について行なわれるのと同様にRDコスト選択に基づく。すなわち、CUについて、2つのマッチング・モード(バイラテラル・マッチングおよびテンプレート・マッチング)が両方とも、RDコスト選択を使用して検査される。最小のコストにつながるほうは、さらに他のCUモードと比較される。FRUCマッチング・モードが最も効率的なモードである場合、そのCUについてFRUCフラグが真に設定され、関連するマッチング・モードが使用される。
【0060】
FRUCマージ・モードにおける動き導出プロセスには2つのステップがある。CUレベルの動き探索がまず実行され、サブCUレベルの動き洗練がそれに続く。CUレベルでは、バイラテラル・マッチングまたはテンプレート・マッチングに基づいて、CU全体について初期動きベクトルが導出される。まず、MV候補のリストが生成され、最小マッチング・コストにつながる候補が、さらなるCUレベルの洗練のための開始点として選択される。次いで、開始点のまわりのバイラテラル・マッチングまたはテンプレート・マッチングに基づくローカル探索が実行され、最小マッチング・コストにつながるMVが、CU全体についてのMVとして取られる。その後、導出されたCU動きベクトルを開始点として、動き情報はサブCUレベルでさらに洗練される。
【0061】
たとえば、次の導出プロセスがW×H CUの動き情報導出のために実行される。第1段では、W×HのCU全体についてのMVが導出される。第2段では、CUはさらにM×MのサブCUに分割される。Mの値は(16)のように計算され、Dはあらかじめ定義された分割深さで、JEMではデフォルトで3に設定される。次いで、各サブCUについてのMVが導出される。
M=max{4,min{M/2D,N/2D}} (1)
【0062】
図10に示されるように、バイラテラル・マッチングは、2つの異なる参照ピクチャーにおける、現在のCUの動き軌跡(motion trajectory)に沿った2つのブロックの間の最も近いマッチを発見することによって、現在のCUの動き情報を導出するために使用される。連続した動きの軌跡の想定のもとでは、2つの参照ブロックを指す動きベクトルMV0とMV1は、現在のピクチャーと2つの参照ピクチャーとの間の時間的距離、すなわちTD0とTD1に比例する。特別な場合として、現在のピクチャーが時間的に2つの参照ピクチャーの間に存在し、現在のピクチャーから2つの参照ピクチャーまでの時間的距離が同じである場合、バイラテラル・マッチングはミラーに基づく双方向MVになる。
【0063】
図11に示されるように、テンプレート・マッチングは、現在のピクチャー内のテンプレート(template)(現在のCUの上および/または左の近傍のブロック)と参照ピクチャー内のブロック(テンプレートと同じサイズ)との間の最も近いマッチを見つけることによって、現在のCUの動き情報を導出するために使用される。前述のFRUCマージ・モードを除き、テンプレート・マッチングはAMVPモードにも適用される。JEMでは、HEVCで行なわれているように、AMVPには2つの候補がある。テンプレート・マッチング法を用いて、新しい候補が導出される。テンプレート・マッチングによる新たに導出された候補が第1の既存のAMVP候補と異なる場合、それはAMVP候補リストの最先頭に挿入され、次いで、リスト・サイズは2に設定される(つまり、第2の既存のAMVP候補は除去する)。AMVPモードに適用されるときは、CUレベル探索のみが適用される。
【0064】
2.2.2.CUレベルのMV候補集合
CUレベルのMV候補集合は:
(i)現在のCUがAMVPモードの場合、もとのAMVP候補
(ii)すべてのマージ候補
(iii)2.2.4.節で導入される、補間されたMVフィールド内のいくつかのMV
(iv)上および左の近傍の動きベクトル
からなる。
【0065】
バイラテラル・マッチングを使用する場合、マージ候補のそれぞれの有効なMVが入力として使用されて、バイラテラル・マッチングの想定でMV対を生成する。たとえば、マージ候補の1つの有効なMVは参照リストAの(MVa, refa)である。すると、それと対になるバイラテラルMVの参照ピクチャーrefbが、他方の参照リストB内に見つかる。refaとrefbは、現在のピクチャーの時間的に異なる側にある。参照リストBにおいてそのようなrefbが利用可能でない場合、refbはrefaとは異なる参照として決定され、現在のピクチャーとのその時間的距離は、リストBにおいて最小のものである。refbが決定された後、現在のピクチャーとrefa、refbとの間の時間的距離に基づいてMVaをスケーリングすることによって、MVbが導出される。
【0066】
補間されたMVフィールドからの4つのMVも、CUレベルの候補リストに加えられる。より具体的には、現在のCUの位置(0,0)、(W/2,0)、(0,H/2)および(W/2,H/2)における補間されたMVが追加される。
【0067】
AMVPモードにおいてFRUCが適用されるとき、もとのAMVP候補もCUレベルのMV候補集合に加えられる。
【0068】
CUレベルでは、AMVP CUについての最大15個のMV、マージCUについての最大13個のMVが候補リストに加えられる。
【0069】
2.2.3.サブCUレベルのMV候補集合
サブCUレベルのMV候補集合は:
(i)CUレベルの探索から決定されたMV
(ii)上、左、左上、右上の近傍MV
(iii)参照ピクチャーからの共位置のMVのスケーリングされたバージョン
(iv)最大4個のATMVP候補
(v)最大4個のSTMVP候補
からなる。
【0070】
参照ピクチャーからのスケーリングされたMVは以下のように導出される。両方のリスト内の参照ピクチャーすべてをたどる。参照ピクチャー内のサブCUの共位置におけるMVは、開始CUレベルMVの参照にスケーリングされる。
【0071】
ATMVPおよびSTMVP候補は、4つの最初のものに限定される。
【0072】
サブCUレベルでは、最大17個のMVが候補リストに追加される。
【0073】
2.2.4.補間されたMVフィールドの生成
フレームを符号化する前に、補間された動きフィールドが、ユニラテラルMEに基づいて、ピクチャー全体について、生成される。すると、動きフィールドは、後にCUレベルまたはサブCUレベルMV候補として使用されてもよい。
【0074】
まず、両方の参照リストにおける各参照ピクチャーの動きフィールドを4×4ブロック・レベルでたどる。各4×4ブロックについて、現在のピクチャーにおける4×4ブロック(
図12に示される)およびそのブロックを通る、そのブロックに関連付けられた動きが、補間された動きを割り当てられていない場合、参照ブロックの動きは、時間距離TD0およびTD1に応じて、現在のピクチャーにスケーリングされ(HEVCにおけるTMVPのMVスケーリングと同じようにして)、スケーリングされた動きが、現在のフレームにおけるそのブロックに割り当てられる。4×4ブロックにスケーリングされたMVが割り当てられていない場合は、そのブロックの動きは、補間された動きフィールドにおいて利用不能としてマークされる。
【0075】
2.2.5.補間およびマッチング・コスト
動きベクトルが端数サンプル位置を指すとき、動き補償された補間が必要となる。複雑さを低減するために、通常の8タップHEVC補間の代わりに双線形補間が、バイラテラル・マッチングおよびテンプレート・マッチングの両方について使用される。
【0076】
マッチング・コストの計算は、異なるステップでは少し異なる。CUレベルで候補集合から候補を選択するとき、マッチング・コストは、バイラテラル・マッチングまたはテンプレート・マッチングの差分絶対値和(SAD)である。開始MVが決定された後、サブCUレベル探索におけるバイラテラル・マッチングのマッチング・コストCは、次のように計算される:
C=SAD+w・(|MVx-MVx
s|+|MVy-MVy
s|) (2)
ここで、wは経験的に4に設定される重み付け因子であり、MVおよびMVsはそれぞれ現在のMVおよび開始MVを示す。SADはここでも、サブCUレベル探索におけるテンプレート・マッチングのマッチング・コストとして使用されている。
【0077】
FRUCモードでは、MVは、ルーマ・サンプルのみを使用して導出される。導出された動きは、MCインター予測のために、ルーマおよびクロマの両方について使用される。MVが決定された後、最終的なMCはルーマについての8タップ補間フィルタおよびクロマについての4タップ補間フィルタを使用して実行される。
【0078】
2.2.6.MV洗練
MV洗練は、バイラテラル・マッチング・コストまたはテンプレート・マッチング・コストの基準を用いたパターン・ベースのMV探索である。JEMでは、制約されない中心バイアス・ダイヤモンド探索(unrestricted center-biased diamond search、UCBDS)と、CUレベルおよびサブCUレベルでのMV洗練のための適応クロス探索(adaptive cross search)という2つの探索パターンがサポートされる。CUレベルおよびサブCUレベルのMV洗練の両方について、MVは1/4ルーマ・サンプルMV精度で直接検索され、1/8ルーマ・サンプルMV洗練がこれに続く。CUおよびサブCUステップのためのMV洗練の検索範囲は、8ルーマ・サンプルに等しく設定される。
【0079】
2.2.7.テンプレート・マッチングFRUCマージ・モードにおける予測方向の選択
バイラテラル・マッチング・マージ・モードでは、CUの動き情報が、2つの異なる参照ピクチャーにおける現在のCUの動き軌跡に沿った2つのブロック間の最も近いマッチに基づいて導出されるので、双予測が常に適用される。テンプレート・マッチング・マージ・モードについては、そのような制限はない。テンプレート・マッチング・マージ・モードでは、エンコーダは、CUについて、リスト0からの単予測、リスト1からの単予測、または双予測の中から選択することができる。選択は、次のようにテンプレート・マッチングのコストに基づく:
costBi<=factor*min(cost0,cost1)の場合
双予測を使用;
それ以外でcost0<=cost1の場合
リスト0からの単予測を使用;
それ以外の場合
リスト1からの単予測を使用;
ここで、cost0はリスト0テンプレート・マッチングのSAD、cost1はリスト1テンプレート・マッチングのSAD、costBiは双予測テンプレート・マッチングのSADである。factorの値は1.25に等しく、これは選択プロセスが双予測に向けてバイアスをかけられていることを意味する。
【0080】
インター予測方向選択は、CUレベルのテンプレート・マッチング・プロセスにのみ適用される。
【0081】
2.2.8.デコーダ側動きベクトル洗練
双予測動作では、1つのブロック領域の予測のために、それぞれリスト0の動きベクトル(MV)およびリスト1のMVを用いて形成された2つの予測ブロックが組み合わされて、単一の予測信号を形成する。デコーダ側動きベクトル洗練(decoder-side motion vector refinement、DMVR)方法では、双予測の2つの動きベクトルが、バイラテラル・テンプレート・マッチング・プロセスによってさらに洗練される。バイラテラル・テンプレート・マッチングがデコーダにおいて適用され、追加的な動き情報を伝送することなく洗練されたMVを得るために、バイラテラル・テンプレートと参照ピクチャー内の再構成サンプルとの間の歪みベース探索が実行される。
【0082】
DMVRでは、
図13に示されるように、それぞれリスト0の初期MV0およびリスト1のMV1から、2つの予測ブロックの重み付けされた組み合わせ(すなわち平均)として、バイラテラル・テンプレートが生成される。テンプレート・マッチング動作は、生成されたテンプレートと参照ピクチャー内の(初期予測ブロックのまわりの)サンプル領域との間のコスト指標を計算することからなる。2つの参照ピクチャーのそれぞれについて、最小テンプレート・コストを与えるMVが、そのリストの更新されたMVと考えられ、もとのMVを置き換える。JEMでは、各リストについて9個のMV候補が探索される。9個のMV候補は、もとのMVと、水平方向もしくは垂直方向のいずれかまたは両方向において1つのルーマ・サンプルがもとのMVに対してオフセットされた8つの周囲のMVとを含む。最後に、2つの新しいMV、すなわち、
図13に示されるMV0'およびMV1'が、最終的な双予測結果を生成するために使用される。差分絶対値和(SAD)がコスト指標として使用される。1つの周囲のMVによって生成される予測ブロックのコストを計算するとき、現実のMVの代わりに、実際には(整数画素に)丸められたMVが、予測ブロックを得るために使用されることに注意されたい。
【0083】
DMVRは、追加的なシンタックス要素の伝送なしに、過去の参照ピクチャーからの1つのMVと、将来の参照ピクチャーからの別のMVとを用いた双予測のマージ・モードのために適用される。JEMでは、CUについて、LIC、アフィン動き、FRUC、またはサブCUマージ候補が有効にされているときは、DMVRは適用されない。
【0084】
2.2.9.問題の例
DMVRおよびFRUCのようなDMVD諸方法は、デコーダにとって非常に複雑な、動き情報を導出または洗練するための動き推定を実行する。動き推定の間、それらは、一つの共通の問題を共有する、すなわち、テンプレートと候補ブロックとの間の差(差の絶対値(absolute difference)、二乗差(square difference)など)が、ブロック内のすべてのピクセルについて計算され、足し合わされ、次いで、最良のマッチング・ブロックを選択するために使用される。最良の候補ブロックまたはMVを選択するには一部のピクセルの差が十分に良好である場合があるため、これは必要ではない。一方、通例、動きベクトルの導出または洗練において、ルーマ成分のみが使用され、クロマ成分は考慮されない。
【0085】
DMVRについては、テンプレートを生成するために1回、最終的な予測ブロックを生成するために1回と、2回動き補償を実行するという、もう一つの複雑さ問題がある。結果として、各参照ピクチャー・リスト(すなわち予測方向)について、初期MVおよび洗練されたMVが端数成分のみを有する場合、水平補間と垂直補間の両方を2回実行する。これは、最悪ケースの複雑さを劇的に増大させる。一方、DMVRはマージ・モードでのみ機能し、AMVPモードでは機能できない。MV洗練では、信号伝達されたMV(マージ候補からの導出されたMV)を開始MVとして、その周囲のMVをチェックする。しかしながら、信号伝達されたMVのMV精度は考慮されない。AMVRでは精度の低いMVが選択されることがある。たとえば、最高の許容可能なMV精度が1/4画素であるとすると、AMVRでは、4画素または1画素MVが使用されることがある。この場合、MV精度を洗練するためにDMVRを使用することができる。サブブロック・レベルで適用できるFRUCとは異なり、DMVRは、ATMVPおよびSTMVPの場合を除いて、ブロック・レベルで実行され、これは符号化性能損失につながる可能性がある。
【0086】
FURCについては、バイラテラル・マッチングを実行するとき、式(4)のように信頼できない動きベクトルを抑制するために、開始MVと候補MVとの間のMV差を考慮する。MV差は固定の重み付け因子を乗算されるが、これは、不合理になることがある。より大きなブロックについては、SADは主要な役割を果たし、MV差は無視でき、より小さなブロックについては、MV差が大きすぎる可能性がある。
【0087】
2.2.10.例示的実施形態
我々は、DMVD諸方法の複雑さを低減し、符号化性能を改善するためにいくつかの側面を提案する。開示される方法は、既存のDMVD方法に適用されることができるが、デコーダ側での動き/モード導出のための将来の方法にも適用されることができる。
【0088】
第一に、テンプレートと候補ブロックとの間のコスト(たとえば、差、歪みまたは歪みとMVの両方を考慮したコスト)は、デコーダ側動き推定、すなわち、動き情報の導出または洗練手順において、一部のピクセル(partial pixels)についてのみ計算される。第二に、DMVRについて、補間回数(interpolation times)が低減される。第三に、開示された技法を使用するいくつかの実施形態は、DMVRをAMVPモードに適用する。第四に、MV差の重み付け因子は、異なるブロック・サイズについては異なることができる。
【0089】
以下の例のリストは、開示された技法がビデオ・デコード・プロセスに具体化されることができるいくつかの仕方を提供する。
【0090】
動きベクトル精度としてprecと表記し、precがNに等しい場合、それは動きベクトルが1/2^N画素精度をもつことを意味する。Nは、正の整数、ゼロまたは負の整数であることができる。
1.テンプレートと諸候補ブロックとの間のコスト(たとえば、差)が、動き情報導出または洗練手順において、部分的に選択された行(partially selected rows)についてのみ計算される。
a.一例では、選択された行は、N行毎のi番目の行のすべてとして定義され、N>1であり、1≦i≦Nである。たとえば、Nは2に等しく、iは1に等しい。
b.一例では、N行をもつ各グループについて、グループ内のある種の行が、選択された行として使用される。たとえば、4行毎の第1の行および第2の行が利用される。
c.一例では、コストは、ブロックの任意に選択された行、たとえば、最初の行と最後の行、または最初の2つの行と最後の2つの行、について計算される。
d.一部の行(partial rows)を選択するとき、すべてのブロック・サイズに同じルールが適用されることができる。あるいはまた、異なる規則が異なるブロック・サイズおよび/またはブロック形状(たとえば、正方形または長方形またはブロック幅とブロック高さの間の諸比率)に適用されることができる。
i.一例では、コスト計算中に、より大きなブロック・サイズについて、より多くの行がスキップされ、その逆も同様である。たとえば、ブロック・サイズが16×16より小さい場合(すなわち、幅×高さ<16×16)には、2行毎の最初の行について差が計算されるが、他のブロック・サイズについては、4行毎の最初の行について差が計算される。
ii.一例では、コスト計算中に、より大きな高さをもつブロック形状について、より多くの行がスキップされ、その逆も同様である。たとえば、コストは、ブロックの高さが16未満の場合、2行毎の最初の行について計算されるが、他のブロック・サイズについては、4行毎の最初の行についてコストが計算される。
iii.一例では、そのような単純化は、最悪ケースの複雑さを抑制するために、一つまたは複数の最小ブロック・サイズ(すなわち、最小の幅×高さ)にのみ適用される。たとえば、該単純化は8×8より小さい面積のブロックにのみ適用される。
iv.一例では、そのような単純化は、一つまたは複数の最大ブロック・サイズにのみ適用される。たとえば、該単純化は32×32より大きい面積のブロックにのみ適用される。
v.一例では、そのような単純化は、最大のブロック高さまたは幅をもつ一つまたは複数のブロック形状にのみ適用される。
vi.一例では、そのような単純化は、いくつかの選択されたブロック形状のみに適用される。
2.ブロックの各行またはブロックの選択された各行について、すべての列または一部の列(partial columns)についてコストが計算される。
a.一例では、コストは、T列毎のM個の連続する列(任意の有効な列Yで開始可能)について計算される。ここで、T>0、1≦M≦T、1≦Y≦T-M+1である。たとえば、T=8、M=4、Y=1である。
b.一例では、コストは、T列毎のM個の選択された列について計算される。
c.一例では、コストは、当該行のM個の任意に選択された列(たとえば、最初のK列および最後のL列)について計算される。
d.一部の列を選択するときは、すべてのブロック・サイズに同じ規則が適用できる。あるいはまた、異なるブロック・サイズおよび/またはブロック形状(たとえば、正方形または長方形またはブロック幅とブロック高さの間の諸比率)に異なる規則が適用できる。
i.一例では、コスト計算の間に、より大きなブロック・サイズについて、より多くの列がスキップされ、その逆もまた同様である。たとえば、ブロック・サイズが16×16より小さい場合、8列毎の最初の4列について差が計算されるが、他のブロック・サイズについては、16列毎の最初の4列について差が計算される。列が8または16より小さい場合は、最初の4列のみが差を計算するために使用される。
ii.一例では、コスト計算の間に、より大きな幅をもつブロック形状についてより多くの列がスキップされ、その逆もまた同様である。たとえば、コストは、ブロックの幅が16未満の場合、8列毎の最初の4列について計算されるが、他のブロック・サイズについては、16列毎の最初の4列についてコストが計算される。
iii.一例では、そのような単純化は、最悪ケースの複雑さを抑制するために、一つまたは複数の最小ブロック・サイズにのみ適用される。
iv.一例では、そのような単純化は、一つまたは複数の最大ブロック・サイズにのみ適用される。
v.一例では、そのような単純化は、最大のブロック幅をもつ一つまたは複数のブロック形状にのみ適用される。
vi.一例では、そのような単純化は、いくつかの選択されたブロック形状のみに適用される。
3.DMVRでは、テンプレートを生成するとき、JEMのように現実のMVを使用する代わりに、整数MVまたは整数の水平成分もしくは垂直成分をもつMVを使用して動き補償が実行される。
a.一例では、MV(水平成分と垂直成分の両方)は、両方の予測方向について整数精度に丸められる。
b.一例では、一方の予測方向のMVは整数精度に丸められ、他方の予測方向のMVは変更されない。
c.一例では、1つのMV成分(水平成分または垂直成分のいずれか)のみが、各予測方向について整数精度に丸められる。
d.一例では、一方の予測方向のMVは整数精度に丸められ、他方の予測方向の一つのMV成分のみが整数精度に丸められる。
e.一例では、一方の予測方向のMVは変更されず、他方の予測方向の一つのMV成分のみが整数精度に丸められる。
f.端数mvとしてfmvと表記し、丸められた整数精度mvとしてimvと表記する。xの符号としてsign(x)と表記する。sign(x)=1(x≧0の場合)、sing(x)=-1(x<0の場合)である。
i.imv=(fmv+(1<<(prec-1)))>>prec
ii.あるいはまた、imv=fmv>>prec
iii.あるいはまた、imv=(fmv+sign(fmv)*(1<<(prec-1)))>>prec
g.そのような単純化は、すべてのブロック・サイズに、または一つまたは複数のブロック・サイズおよび/またはある種のブロック形状にのみ適用されてもよい。
i.一例では、JEMまたはBMS(benchmark set[ベンチマークセット])における4×4、またはHEVCにおける4×8および8×4のような、一つまたは複数の最小ブロック・サイズに適用される。
ii.一例では、一つまたは複数の最大ブロック・サイズに適用される。
iii.一例では、いくつかの選択されたブロック・サイズに適用される。
4.代替的に、DMVRでは、テンプレートを生成するとき、より短いタップの補間フィルタ(たとえば、双線形フィルタ)が動き補償において使用される。
5.DMVRはサブブロック・レベルで実行されることが提案される。ブロックは、種々の仕方でサブブロックに分割できる。
a.一例では、すべてのブロックは、固定されたM×Nサブブロック・サイズ、たとえば、4×4または4×8または8×4または8×8または8×16または16×8または16×16に分割される。ブロック幅/高さがサブブロック幅/高さの整数倍である場合、ブロックはサブブロックに分割され、そうでない場合は、ブロックはサブブロックに分割されない。
b.一例では、ブロックは、等しいサイズのK個のサブブロックに分割される。ここで、K≧2である。たとえば、M×Nのブロックは、4個の(M/2)×(N/2)サブブロック、または2個の(M/2)×Nサブブロック、または2個のM×(N/2)ブロックに分割される。
c.一例では、分割方法は、ブロック・サイズまたはブロック形状または他の符号化された情報に依存する。たとえば、8×32のブロックは4×8サブブロックに分割され、32×8ブロックは8×4サブブロックに分割される。
d.一例では、サブブロックのテンプレートを生成するとき、ブロック全体の導出された動き情報が、現在のブロック・レベルDMVRにおけるように利用されてもよい。
i.代替的に、近傍サブブロック(単数または複数)の洗練された動き情報が、ブロック全体の導出された動き情報とともに、またはブロック全体の導出された動き情報なしに、テンプレートを形成するために利用されてもよい。
e.一例では、サブブロックの探索点は、他のサブブロック(単数または複数)からの洗練された動き情報も考慮してもよい。
6.一例では、(PMMVDにおいて)テンプレート・マッチングによって使用されるテンプレートは、
図14に示されるように、現在のブロックに残っているピクセルを除いて、現在のブロックより上のピクセルのみを含む。
7.既存のDMVD諸方法では、ルーマ成分のみが動きベクトルを導出または洗練するために考慮される。クロマ成分をさらに考慮することが提案される。与えられた動きベクトルの3つの色成分のコストをCiで表す(ここで、iは色成分インデックスを示す)。
a.最終的なコストは、Wi*Ciとして定義される。ここで、Wiはi番目の色成分の重みを示す。
b.あるいはまた、最終的なコストは(W0*C0+W1*(C1+C2))と定義される。いくつかの例では、W0またはW1のいずれかが1に等しい。
c.一例では、DMVRをクロマ成分に適用するとき、動きベクトルの丸めが適用されてもよい。それにより、整数動きベクトルが利用されることができ、クロマ成分について補間を適用する必要がない。
d.一例では、DMVRをクロマ成分に適用するとき、補間が必要とされる場合は、より短いタップの補間フィルタ(たとえば、双線形フィルタ)が適用されてもよい。
8.上記の諸方法は、ある種の色成分、またはすべての色成分に適用されうる。
a.異なる色成分に対して異なる規則が適用されてもよく、あるいはルーマ成分とクロマ成分が異なる規則を利用してもよい。
b.あるいはまた、上記の諸方法をどのように適用するかおよび適用するか否かが、シーケンス・パラメータ・セット、ピクチャー・パラメータ・セット、スライス・ヘッダ等において、さらに信号伝達されてもよい。
【0091】
図15は、ビデオ・デコードの例示的方法1500のためのフローチャートである。方法1500は、ビットストリームからの現在のビデオ・ブロックについて動き情報をデコードするステップ(1502)と、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のピクセル位置の部分的な集合に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップ(1504)であって、前記一つまたは複数のテンプレートのそれぞれは複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストを有するテンプレートを用いて、現在のビデオ・ブロックの動き情報を洗練するステップ(1506)とを含む。
【0092】
図16は、ビデオ・デコードの例示的方法1600のためのフローチャートである。方法1600は、ビットストリームから現在のビデオ・ブロックについての動き情報をデコードするステップ(1602)と、現在のビデオ・ブロックのサイズが第1のサイズより小さいかどうかを決定するステップ(1604)と、現在のビデオ・ブロックのサイズが第1のサイズより小さい場合、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれにおけるピクセル位置の部分的な集合に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップ(1606)であって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、現在のビデオ・ブロックのサイズが第1のサイズより小さくない場合、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のすべてのピクセル位置に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップ(1608)であって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストを有するテンプレートを使用して、現在のビデオ・ブロックの動き情報を洗練するステップ(1610)とを含む。
【0093】
図17は、ビデオ・デコードの例示的方法1700のためのフローチャートである。方法1700は、ビットストストリームから現在のビデオ・ブロックの動き情報をデコードするステップ(1702)と、現在のビデオ・ブロックのサイズが第1のサイズより大きいかどうかを決定するステップ(1704)と、現在のビデオ・ブロックのサイズが第1のサイズより大きい場合、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のピクセル位置の部分的な集合に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップ(1706)であって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、現在のビデオ・ブロックのサイズが第1のサイズより大きくない場合、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のすべてのピクセル位置に基づいて、現在のビデオ・ブロックのマッチング・コストを推定するステップ(1708)であって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストを有するテンプレートを用いて現在のビデオ・ブロックの動き情報を洗練するステップ(1710)とを含む。
【0094】
図18は、ビデオ・デコードの例示的方法1800のためのフローチャートである。方法1800は、ビットストリームから現在のビデオ・ブロックの動き情報をデコードするステップ(1802)と、現在のビデオ・ブロックの形状が選択された形状のグループの一つであるかどうかを判定するステップ(1804)と、現在のビデオ・ブロックの形状が選択された形状のグループのうちの一つである場合、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のピクセル位置の部分的な集合に基づいて現在のビデオ・ブロックのマッチング・コストを推定するステップ(1806)であって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、現在のビデオ・ブロックの形状が選択された形状のグループのうちの一つではない場合、一つまたは複数のテンプレートを用いて、前記一つまたは複数のテンプレートのそれぞれの中のすべてのピクセル位置に基づいて現在のビデオ・ブロックのマッチング・コストを推定するステップ(1808)であって、前記一つまたは複数のテンプレートのそれぞれが複数のサンプルをもつビデオ・ブロックを含む、ステップと、最小のマッチング・コストをもつテンプレートを用いて現在のビデオ・ブロックの動き情報を洗練するステップ(1810)とを含む。
【0095】
上記の諸方法に関して、いくつかの実施形態では、ピクセル位置の部分的集合は、前記一つまたは複数のテンプレートのうち各テンプレートの行の部分集合を含む。いくつかの実施形態では、ピクセル位置の前記部分的な集合は、前記一つまたは複数のテンプレートのうちの各テンプレートのN行のグループ毎からのすべてのi番目の行を含む。
【0096】
セクション2.2.10は、方法1500、1600、1700、または1800によって実装されることができる追加的な例示的実施形態および変形を提供する。
【0097】
図19は、本願で開示される技術のさまざまな部分を実装するために利用できるハードウェア装置1900の例示的実施形態のブロック図を示す。ハードウェア装置1900は、ラップトップ、スマートフォン、タブレット、カムコーダ、またはビデオを処理することができる他のタイプの装置でありうる。装置1900は、データを処理するためのプロセッサまたはコントローラ1902と、データを記憶および/またはバッファするための、プロセッサ1902と通信するメモリ1904とを含む。たとえば、プロセッサ1902は、中央処理ユニット(CPU)またはマイクロコントローラ・ユニット(MCU)を含むことができる。いくつかの実装では、プロセッサ1902はフィールドプログラマブルゲートアレイ(FPGA)を含むことができる。いくつかの実装では、装置1900は、スマートフォン装置のさまざまな視覚的および/または通信データ処理機能のために、グラフィックス処理ユニット(GPU)、ビデオ処理ユニット(VPU)および/または無線通信ユニットを含むかまたはそれらと通信する。たとえば、メモリ1904は、プロセッサ1902によって実行されたときに、情報、コマンド、および/またはデータを受領すること、情報およびデータを処理すること、および処理された情報/データをアクチュエータまたは外部ディスプレイなどの別の装置に送信または提供するなどのさまざまな動作を実行するように装置1900を構成するプロセッサ実行可能コードを含み、記憶することができる。装置1900のさまざまな機能をサポートするために、メモリ1904は、命令、ソフトウェア、値、画像、およびプロセッサ1902によって処理または参照される他のデータのような情報およびデータを記憶することができる。たとえば、さまざまなタイプのランダムアクセスメモリ(RAM)デバイス、リードオンリーメモリ(ROM)デバイス、フラッシュメモリデバイス、および他の好適な記憶媒体が、メモリ1904の記憶機能を実装するために使用されることができる。装置1900は、さらに、変換およびデコードなどの反復的な計算機能を実行するための専用のビデオ処理回路1906を含んでいてもよい。装置1900は、方法1500、1600、1700または1800を実装するために使用されてもよい。
【0098】
図20は、ビデオ・エンコーダの例示的実装を示すブロック図である。ビデオ・エンコーダは、変換、動き推定および残留誤差の符号化のような符号化ツールを用いて符号化されるビデオ・ピクチャーに対して作用する。エンコードされたビデオ・フレームはエンコーダで再構成され(動き補償され)、他のビデオ・ピクチャーのインター符号化のための参照ピクチャーとして使用される。本稿に記載される技法は、
図19に関して記載されたようなハードウェア・プラットフォームを使用して、ビデオ・エンコーダまたはビデオ・デコーダによって実装されてもよい。
【0099】
以上から、本明細書において、例解の目的で、本願で開示される技術の個別的な実施形態が説明されてきたが、本発明の範囲を逸脱することなく、さまざまな修正をなしうることが理解されるであろう。よって、本願で開示される技術は、添付の特許請求の範囲によるほかは限定されない。
【0100】
本稿に記載された開示されたまたは他の実施形態、モジュール、および機能的動作は、デジタル電子回路、または本稿に開示された構造およびその構造的等価物を含むコンピュータ・ソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの一つまたは複数の組み合わせで実現できる。開示されたおよび他の実施形態は、一つまたは複数のコンピュータ・プログラム製品、すなわち、データ処理装置による実行のため、またはデータ処理装置の動作を制御するための、コンピュータ読み取り可能媒体上にエンコードされたコンピュータ・プログラム命令の一つまたは複数のモジュールとして実装できる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶デバイス、機械読み取り可能記憶基板、メモリデバイス、機械読み取り可能な伝搬信号に影響を与える物質の組成、またはそれらの一つまたは複数の組み合わせでありうる。用語「データ処理装置」は、たとえば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータ・プログラムのための実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの一つまたは複数の組み合わせを構成するコードを含むことができる。伝搬信号は、人工的に生成された信号、たとえば、好適な受信器装置に送信するための情報をエンコードするために生成された、機械生成された電気信号、光信号、または電磁信号である。
【0101】
コンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル式またはインタープリット式言語を含む、任意の形のプログラミング言語で書くことができ、スタンドアローン・プログラムとして、またはコンピューティング環境での使用に好適なモジュール、コンポーネント、サブルーチン、または他のユニットとしてを含め、任意の形の展開することができる。コンピュータ・プログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(たとえば、マークアップ言語文書に格納された一つまたは複数のスクリプト)、問題のプログラム専用の単一ファイル、または複数の協調するファイル(たとえば、一つまたは複数のモジュール、サブプログラム、またはコードの一部分を記憶するファイル)に記憶できる。コンピュータ・プログラムは、1つのコンピュータ上で、または1つのサイトに位置されるか、もしくは複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開することができる。
【0102】
本稿に記載されるプロセスおよび論理フローは、一つまたは複数のコンピュータ・プログラムを実行する一つまたは複数のプログラマブルプロセッサによって実行されて、入力データに対して作用して、出力を生成することによって機能を実行することができる。プロセスおよび論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)のような特殊目的の論理回路によって実行されることができ、装置もかかる論理回路として実装されることができる。
【0103】
コンピュータ・プログラムの実行に好適なプロセッサは、たとえば、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタル・コンピュータの任意の一つまたは複数のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受領する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための一つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための一つまたは複数の大容量記憶装置、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含む、またはかかる大容量記憶装置に動作可能に結合されて、かかる大容量記憶装置からデータを受領したり、それらにデータを転送したり、またはその両方をする。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータ・プログラム命令およびデータを記憶するのに好適なコンピュータ読み取り可能媒体は、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス;磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足されるか、特殊目的論理回路内に組み込まれることができる。
【0104】
本特許文献は多くの個別事項を含んでいるが、これらは、いずれかの発明の範囲または特許請求されうるものに対する限定としてではなく、特定の発明の特定の実施形態に特有でありうる事項の説明と解釈されるべきである。別々の実施形態の文脈で本特許文献において記載されているある種の事項が、単一の実施形態において組み合わせて実装されることもできる。逆に、単一の実施形態の文脈において記載されているさまざまな事項が、複数の実施形態において別々に、または任意の好適なサブコンビネーションにおいて実装されることもできる。さらに、諸事項が、ある種の組み合わせにおいて作用するものとして上述され、当初はそのように請求項に記載されることさえありうるが、請求項に記載された組み合わせからの一つまたは複数の事項が、場合によっては、組み合わせから切り出されることができ、請求項に記載された組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられてもよい。
【0105】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、そのような動作が示される特定の順序で、または逐次順で実行されること、または、示されたすべての動作が実行されることを要求するものとして理解されるべきではない。さらに、この特許文献に記載されている実施形態におけるさまざまなシステム・コンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではない。
【0106】
若干の実装および例のみが記述されており、本特許文献に記載され、示されている内容に基づいて、他の実装、向上および変形ができる。