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

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

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特許7200470双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法
<>
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図1
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図2
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図3
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図4
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図5
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図6
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図7
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図8
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図9
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図10
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図11
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図12
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図13
  • 特許-双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-26
(45)【発行日】2023-01-10
(54)【発明の名称】双予測動き補償に対するデコーダ側双予測オプティカルフローベースのピクセル単位補正を用いるデコーダ側の動きベクトルのリファインメントのためのハードウェアおよびソフトウェアフレンドリーシステムおよび方法
(51)【国際特許分類】
   H04N 19/577 20140101AFI20221227BHJP
   H04N 19/44 20140101ALI20221227BHJP
   H04N 19/59 20140101ALI20221227BHJP
【FI】
H04N19/577
H04N19/44
H04N19/59
【請求項の数】 27
(21)【出願番号】P 2021520339
(86)(22)【出願日】2019-12-30
(65)【公表番号】
(43)【公表日】2022-02-21
(86)【国際出願番号】 CN2019129980
(87)【国際公開番号】W WO2020140874
(87)【国際公開日】2020-07-09
【審査請求日】2021-05-18
(31)【優先権主張番号】201931000185
(32)【優先日】2019-01-02
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】201931001238
(32)【優先日】2019-01-10
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】セツラマン、スリラム
(72)【発明者】
【氏名】エー、ジェーヴァ ラジ
(72)【発明者】
【氏名】コテチャ、サガー
【審査官】鉢呂 健
(56)【参考文献】
【文献】AKULA, Sri Nitchith et al.,Description of SDR, HDR and 360° video coding technology proposal considering mobile application scenario by Samsung, Huawei, GoPro, and HiSilicon,buJoint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US, 10-20 Apr. 2018, [JVET-J0024_v2],JVET-J0024 (version 4),ITU-T,2018年04月14日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/10_San%20Diego/wg11/JVET-J0024-v4.zip>: JVET-J0024_v3.docx: pp. 58-63
【文献】SETHURAMAN, Sriram,Non-CE9: Co-existence analysis for DMVR with BDOF,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, [JVET-M0223-v1],JVET-M0223 (version 1),ITU-T,2019年01月02日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0223-v1.zip>: JVET-M0223-v1.docx: pp. 1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
インター予測方法であって、
現在のピクチャの現在のピクチャブロックの動き情報に基づいて参照サンプルを選択する段階と、
選択された前記参照サンプルに対して双線形補間である第1補間を実行することにより、第1補間サンプルを導出する段階と、
前記第1補間サンプルに基づいて整数距離の動きベクトルのリファインメント(MVR)を実行することにより、ターゲットサブ予測ユニット(PU)の整数距離デルタ動きベクトルを導出する段階であって、前記ターゲットサブPUは前記現在のピクチャブロック内にある、導出する段階と、
前記第1補間サンプルおよび前記整数距離デルタ動きベクトルに基づいて、前記ターゲットサブPU内のそれぞれのM×Mピクセルマトリクスに対して、双予測オプティカルフロー(BPOF)を実行することにより、M×Mピクセルマトリクスフローベクトルを導出する段階であって、Mは正の整数であり、前記M×Mピクセルマトリクスのサイズは、前記ターゲットサブPUのサイズより小さい、導出する段階と、
前記参照サンプルに対して離散コサイン変換補間である第2補間を実行することにより、第2補間サンプルを導出する段階と、
前記M×Mピクセルマトリクスフローベクトルを使用することで前記第1補間サンプルおよび前記第2補間サンプルに基づく前記ターゲットサブPUの内部の位置におけるサンプル勾配を計算し双予測のために前記ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する段階と、
前記第2補間サンプルおよび前記少なくとも1つの補正パラメータに基づいて、双予測を実行する段階と
を備える、方法。
【請求項2】
前記動き情報は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニットレベルにおける動きベクトルを備える、請求項1に記載の方法。
【請求項3】
前記双予測を実行する前記段階は、第1参照ピクチャに基づく前記補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャに基づく前記補正パラメータを使用して第2予測ピクチャを生成する段階とを備える、請求項1または2に記載の方法。
【請求項4】
前記参照サンプルの整数グリッドサンプルは第1メモリに格納され、前記第1補間サンプルは、前記第1メモリとは異なる第2メモリに格納される、請求項1からのいずれか一項に記載の方法。
【請求項5】
前記第2補間は、分離可能な補間フィルタにより実行される、請求項1からのいずれか一項に記載の方法。
【請求項6】
前記ターゲットサブPUに対して前記少なくとも1つの補正パラメータを計算する段階の前に、前記方法は、
前記第1補間サンプルに基づいて、前記ターゲットサブPUの左右境界サンプル位置における水平境界のサンプル勾配と、前記ターゲットサブPUの上下境界サンプル位置における垂直境界のサンプル勾配とを導出する段階を備える、請求項1からのいずれか一項に記載の方法。
【請求項7】
前記水平境界のサンプル勾配と前記垂直境界のサンプル勾配とは、前記MVRを実行した後に導出される、請求項に記載の方法。
【請求項8】
前記ターゲットサブPUに対する前記少なくとも1つの補正パラメータは、前記水平境界のサンプル勾配および前記垂直境界のサンプル勾配に基づいて計算される、請求項または7に記載の方法。
【請求項9】
Mは4である、請求項1からのいずれか一項に記載の方法。
【請求項10】
インター予測方法であって、
現在のピクチャの現在のピクチャブロックの動き情報に基づいて参照サンプルを選択する段階と、
選択された前記参照サンプルに対して補間を実行することにより補間サンプルを導出する段階と、
前記補間サンプルに基づいて、整数距離の動きベクトルのリファインメント(MVR)コストを算出する段階と、
算出された前記整数距離MVRコストに基づいて、整数距離デルタ動きベクトルを決定する段階と、
前記補間サンプルおよび前記整数距離デルタ動きベクトルに基づいて、ターゲットサブ予測ユニット(PU)内のそれぞれのM×Mピクセルマトリクスに対して、双予測オプティカルフロー(BPOF)を実行することにより、M×Mピクセルマトリクスフローベクトルを導出する段階であって、Mは正の整数であり、M×Mは前記ターゲットサブPUのサイズより小さく、前記ターゲットサブPUは前記現在のピクチャブロック内にある、導出する段階と、
前記M×Mピクセルマトリクスフローベクトルを使用することで前記補間サンプルに基づく前記ターゲットサブPUの内部の位置におけるサンプル勾配を計算し、双予測のために前記ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する段階と、
前記補間サンプルおよび前記少なくとも1つの補正パラメータに基づいて、双予測を実行する段階と
を備える、方法。
【請求項11】
前記動き情報は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニットレベルにおける動きベクトルを備える、請求項10に記載の方法。
【請求項12】
前記双予測を実行する前記段階は、第1参照ピクチャに基づく前記補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャに基づく前記補正パラメータを使用して第2予測ピクチャを生成する段階とを備える、請求項10または11に記載の方法。
【請求項13】
前記補間は、分離可能な補間フィルタにより実行される、請求項10から12のいずれか一項に記載の方法。
【請求項14】
前記ターゲットサブPUに対する前記少なくとも1つの補正パラメータを計算する段階の前に、前記方法は、
前記ターゲットサブPUに対する前記少なくとも1つの補正パラメータを計算する前に、前記補間サンプルに基づいて前記ターゲットサブPUの境界勾配を導出する段階を備える、請求項10または13に記載の方法。
【請求項15】
前記ターゲットサブPUに対する前記少なくとも1つの補正パラメータは、前記境界勾配に基づいて計算される、請求項14に記載の方法。
【請求項16】
前記補間は双線形補間または離散コサイン変換補間である、請求項10から15のいずれか一項に記載の方法。
【請求項17】
Mは4である、請求項10から16のいずれか一項に記載の方法。
【請求項18】
前記補間サンプルの最初および最後のN行は、同じ第1補間方法を使用して決定され、前記最初および最後のN行を除く前記補間サンプルの行は、同じ第2補間方法を使用して決定される、請求項10から17のいずれか一項に記載の方法。
【請求項19】
Nは3である、請求項18に記載の方法。
【請求項20】
前記第1補間方法は離散コサイン変換補間または双線形補間であり、前記第2補間方法は離散コサイン変換補間である、請求項18または19に記載の方法。
【請求項21】
ビデオピクチャをエンコードする方法であって、
前記ビデオピクチャを受信する段階と、請求項1から20のいずれか一項に記載のインター予測方法を、前記ビデオピクチャのブロックに適用する段階と、実行された前記双予測に基づいて前記ビデオピクチャをエンコードする段階とを備える、方法。
【請求項22】
エンコードされたビデオピクチャをデコードする方法であって、
エンコードされた前記ビデオピクチャを受信する段階と、請求項1から20のいずれか一項に記載のインター予測方法を、エンコードされた前記ビデオピクチャのブロックに適用する段階と、実行された前記双予測に基づいて、エンコードされた前記ビデオピクチャをデコードする段階とを備える、方法。
【請求項23】
請求項1から21のいずれか一項に記載の方法を実行するための処理回路を備える、エンコーダ。
【請求項24】
請求項1から20または請求項22のいずれか一項に記載の方法を実行するための処理回路を備える、デコーダ。
【請求項25】
請求項1から22のいずれか一項に記載の方法を、コンピュータに実行させるたのコンピュータプログラム。
【請求項26】
1または複数のプロセッサと、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサにより実行されるプログラミングを格納する非一時的コンピュータ可読記憶媒体と
を備えるエンコーダであって、
前記プログラミングは、前記1または複数のプロセッサにより実行される場合、請求項1から21のいずれか一項に記載の方法を実行するように前記エンコーダを構成する、エンコーダ。
【請求項27】
1または複数のプロセッサと、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサにより実行されるプログラミングを格納する非一時的コンピュータ可読記憶媒体と
を備えるデコーダであって、
前記プログラミングは、前記1または複数のプロセッサにより実行される場合、請求項1から20または請求項22のいずれか一項に記載の方法を実行するように前記デコーダを構成する、デコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般的に、画像処理分野、より具体的には、インター予測技術に関する。
【背景技術】
【0002】
ビデオ圧縮において、インター予測は、現在のブロックと比べた動きベクトルを指定することにより、以前にデコードされた参照ピクチャの再構築されたサンプルを使用する処理である。これらの動きベクトルは、予測残差として、空間的または時間的な動きベクトルの予測因子を使用することにより、符号化され得る。動きベクトルは、サブピクセル精度であり得る。参照フレームにおけるサブピクセル精度のピクセル値を導出するために、現在のブロックに対する予測は、2つの参照ピクチャ領域から2つの動きベクトルを使用して導出された2つの予測ブロックの重み付けされた組み合わせとして導出される。この場合、動きベクトルに加えて、2つの予測ブロックが導出される参照ピクチャに対する参照インデックスも符号化される必要がある。現在のブロックに対する動きベクトルはまた、いずれの動きベクトルの残差も符号化することなく、空間的な隣接の動きベクトルおよび参照インデックスが継承されるマージ処理によって導出され得る。空間的な隣接に加えて、以前に符号化された参照フレームの動きベクトルはまた、現在のブロックに対する参照フレームへの距離と比べた参照フレームへの距離に対処するために、動きベクトルの適切なスケーリングを有する時間的なマージオプションとして格納され、使用される。
【0003】
本発明は、VCEGのQ16とMPEG(SC29/WG11)との間のジョイントワークであるJoint Video Exploration Team内のJoint Exploratory Model(JEM)として以前から追及されていた多用途ビデオ符号化規格に関する。デコーダ側の動きベクトルのリファインメントおよびデコーダ側の動きベクトルの導出に関する文書JVET-G1001および他のホアウェイ社の従来技術は、本発明に関連する寄稿文および特許のリストを取得するために使用され得る。
【0004】
動きベクトルの残差を符号化したビットをさらに削減できるようにデコーダ側の動きベクトルのリファインメントまたは導出を実行するために、いくつかの方法が提案されてきた。
【0005】
テンプレートマッチング(TM)方法と呼ばれる方法の1つのクラスは、(図1に示されるように)テンプレートと呼ばれる既に再構築された現在のブロックに隣接するL字形状の領域を使用し、複数の適切にスケーリングされた空間的且つ時間的な動きベクトル候補を使用して、各参照フレームにおいて最も一致するL字形状の領域を(差分絶対値和または平均除去された差分絶対値和などのコスト関数を使用して)識別する。そして、最も一致する候補を中心に、その中心の周りの特定のリファインメント距離内で、さらなるリファインメントが実行される。エンコーダ側では、片予測(すなわち、最も一致する参照を使用する予測)または双予測(すなわち、上位2つの最も一致する参照を平均化することにより導出される予測)を決定するために、レート歪み最適化コストが計算される。
【0006】
バイラテラルマッチング(BM)方法と呼ばれる方法の別のクラスにおいては、現在の符号化ユニット(CU)の動き情報は、動きベクトル候補のセットを取得することと、現在のフレームと、双予測に使用される2つの参照ピクチャとの間の時間距離比に基づいて、動きベクトル候補を対称的にミラーリングすること(および動き補償に使用される最も近い動きベクトル精度への丸め処理)により(「ピクチャ」および「フレーム」という用語が本明細書において入れ替え可能に使用されることに留意されたい)、動きベクトル候補を使用する動き補償ブロックと、別の参照から取得される動き補償ブロックとの間の最も近い一致を見つけることとによりデコーダ側において導出される。これは、図2に示されている。連続的な動きの軌跡という仮定のもと、2つの参照ブロックを指す動きベクトルMV0およびMV1は、現在のピクチャと2つの参照ピクチャとの間の時間的距離、すなわち、TD0およびTD1に比例するものとする。現在のピクチャが時間的に2つの参照ピクチャ間にあり、現在のピクチャから2つの参照ピクチャまでの時間的距離が同じである場合、バイラテラルマッチングは、ミラーベースの双方向動き補償(MC)となる。
【0007】
標準的な候補のセットのうち最も一致する動きベクトル候補を識別した後、コスト関数評価に使用される対応する検索位置が時間距離比により常に互いに関連するような方式で、第1参照における動きベクトル候補と、第2参照における時間距離比に基づく時間的にスケーリングされた動きベクトル候補との周りのリファインメント範囲内で、局所的リファインメントが実行される。
【0008】
いくつかの実施形態において、動き補償補間の複雑性を低減するために、リファインメントの間に双線形補間が実行され、リファインメントの後に離散コサイン変換ベースの補間フィルタ(DCTIF)を使用して最終的な厳密なMCが行われる。
【0009】
バイラテラルマッチングマージモードにおいて、2つの異なる参照ピクチャにおける現在のCUの動きの軌跡に沿う2つのブロック間の最も近い一致に基づいて、CUの動き情報が導出されるので、双予測が常に適用される。
【0010】
テンプレートマッチングマージまたはバイラテラルマッチングマージを示すための明示的なマージモードは、デコーダ側の動きベクトルの導出を全く必要としないデフォルトのマージモードからこれらのモードを区別するためにシグナリングされ得る。
【0011】
いくつかの実施形態において、時間的距離は無視され、過去および将来の参照フレームのそれぞれにおいて、等しい動きベクトルおよび反対の動きベクトルを用いてバイラテラルマッチングが実行される。
【0012】
いくつかの実施形態において、マージインデックスがシグナリングされることはないが、他の実施形態では、複数の動き補償を実行することについてのデコーダの複雑性を単純化するために、明示的なマージインデックスがシグナリングされる。
【0013】
バイラテラルマッチングモードの変形例において、両側的に平均化されたテンプレートは、明示的にシグナリングされたマージインデックスから取得された参照であるL0およびL1内の予測ブロックを使用して初めて作成され、このテンプレートに対してマッチングが実行される。テンプレートは、何らかの動きがある場合に更新される。また、いくつかの実施形態において、リファインメントは、1つの参照において実行され、このリファインされた動きベクトルのミラーリングによって、他の参照における動きベクトルが取得される。リファインメントは、中心位置が最小のエラーを有する、または、反復の最高回数に達する、のいずれかまで、2つの参照間で交互に行われる。
【0014】
リファインメントの方法のいくつかにおいて、CUレベルリファインメントがまず実行される。次に、候補としてのCUレベルのリファインされたMVと共に、サブCUレベルの複数候補の評価が実行される。任意選択的に、各サブCUは、最も一致する候補に関して独自のリファインメントを実行できる。
【0015】
差分絶対値和または平均除去された差分絶対値和のいずれかが、L0参照パッチとL1参照パッチとの間の位置合わせのレベルを測定するためのマッチングコスト関数として使用される。いくつかのコスト関数は、リファインメント位置の開始からの動きベクトルのリファインメント距離をバイアス項として使用する。
【0016】
例えば、図3のように、デコーダ側の導出またはリファインメント処理が暗黙的に実行されることを考慮すると、エンコーダ側の再構築をデコーダ側の再構築と一致させるために、エンコーダは、デコーダと厳密に同じ方式でこれらの段階を実行する必要がある。
【0017】
通常、デコーダ側の動きベクトルのリファインメントまたは導出処理の間は、輝度サンプルのみが使用される。しかしながら、色差は、輝度の動き補償に使用されるように、(任意のクロマダウンサンプリングを考慮するために適切にスケーリングされた)最終的なリファインメント動きベクトルを使用して、動き補償もされる。
[双予測オプティカルフロー]
【0018】
双予測オプティカルフロー(BPOF)は、双予測のためのブロック単位の動き補償の上で実行されるサンプル単位のデコーダ側の動きリファインメントである。サンプルレベルの動きリファインメントは、シグナリングを使用しない。
【0019】
(k)を、ブロック動き補償後の参照k(k=0,1)からの輝度値とし、
【数1】

【数2】
とをそれぞれ、I(k)勾配の水平成分および垂直成分とする。オプティカルフローが有効であると仮定すると、動きベクトルフィールド
【数3】
は、式(1.13)により与えられる。
【数4】
【0020】
このオプティカルフローの方程式を、各サンプルの動きの軌跡に対するエルミート補間と組み合わせることは、関数値I(k)と、微分係数
【数5】

【数6】
との両方の末尾と一致する一意の3次多項式をもたらす。t=0におけるこの多項式の値はBPOF予測である:
【数7】
【0021】
ここで、τとτとは、図4に示されるように、参照フレームへの距離を示す。距離τとτとは、Ref0およびRef1のPOC:
【数8】
に基づいて算出される。両方の予測が同じ時間方向から来るとき(両方過去から、または両方将来からのいずれか)、サインは異なる(すなわち、τ・τ<0)。この場合、BPOFは、予測が同じ時点からでない(すなわち、τ≠τ)ときにのみ適用され、両方の参照される領域は、非ゼロの動き
【数9】
を有し、ブロックの動きベクトルは、時間距離
【数10】
に比例する。
【0022】
動きベクトルフィールド
【数11】
は、ポイントAの値とポイントBの値との間の差Δを最小化することにより決定される(ポイントAおよびBは、動きの軌跡と参照フレーム平面との交点である)。モデルは、Δに対する局所的なテイラー展開の第1線形項のみを使用する:
【数12】
【0023】
式(1.15)におけるすべての値は、サンプル位置
【数13】
に依存し、これは、これまでの表記からは省略されている。動きが局所的な周辺領域において一貫していると仮定すると、現在予測されているポイント
【数14】
を中心とする(2M+1)×(2M+1)の矩形の窓
【数15】
の内部におけるΔを最小化し、ここでMは2と等しい:
【数16】
【0024】
この最適化問題について、最近の動向は、まず垂直方向における最小化を行い、次に水平方向の最小化を行う単純化された最小二乗アプローチを使用する。これは、
【数17】
【数18】
をもたらし、ここで、
【数19】
である。
【0025】
ゼロまたは非常に小さい値による除算を回避するために、正則化パラメータrおよびmは、式(1.17)および(1.18)に導入される。
【数20】
【数21】
ここでdはビデオサンプルのビット深度である。
【0026】
特定の実施形態において、除算は、分母における最上位ビット位置の位置として計算された値を有する右シフトを使用して実行される。
【0027】
BPOFを用いて、動きフィールドが各サンプルに対してリファインされ得ることが可能であるが、計算の複雑性を低減するために、BPOFのブロックベースの設計が使用され得る。動きリファインメントは、4×4ブロックに基づいて算出される。ブロックベースのBPOFにおいて、4×4ブロックにおけるすべてのサンプルの式(1.19)におけるsの値は集約され、次に、sの集約された値は、4×4ブロックのBPOF動きベクトルオフセットを導出するのに使用される。以下の最小二乗ベースの式は、ブロックベースのBPOFの導出に使用される。
【0028】
【数22】
ここで、bは、予測されたブロックのk番目の4×4ブロックに属するサンプルのセットを示す。式(1.17)および(1.18)におけるsは、関連付けられた動きベクトルオフセットを導出するために、
【数23】
により置き換えられる。
【0029】
BPOFに対するメモリアクセスを、通常の双予測動き補償と同じく保持するために、現在のブロックの内部の位置についてのみ、すべての予測および勾配値
【数24】
が算出される。現在のブロックの外部のサンプル値を必要とする現在のブロックの内部の位置の勾配を計算するために、双線形補間または最も近い整数グリッドサンプル値が、特定の実施形態において使用される。最近の動向において、ブロックの外部の
【数25】
の値は、ブロックの内部の最も近い利用可能な値と等しく設定される。例えば、これは、図5に示されるように、パディングとして実装され得る。
【0030】
いくつかの場合において、BPOFによって計算されたMVオフセットは、ノイズまたは不規則な動きに起因して、信頼性に欠ける可能性がある。したがって、BPOFにおいて、MVオフセットの大きさは、閾値thBPOFにクリップされている。閾値は、現在のピクチャの参照ピクチャがすべて1つの方向からであるかまたはそうでないかに基づいて決定される。例えば、MVオフセットは通常、水平方向と垂直方向との両方において、+/-1整数ピクセル距離内でクリップされる。
【0031】
いくつかの実施形態において、BPOFの勾配は、HEVC動き補償処理(2D分離可能なFIR)と一致する処理を使用する動き補償補間と同じ時間において算出される。この2D分離可能FIRに対する入力は、動き補償処理、およびブロックの動きベクトルの小数部分に応じた分数位置(fracX、fracY)と同じ参照フレームサンプルである。水平方向の勾配
【数26】
の場合、信号はまず、デスケーリングシフトd-8で分数位置fracYに対応するBPOFfilterSを使用して垂直に補間され、次に、勾配フィルタBPOFfilterGが、18-dのデスケーリングシフトで、分数位置fracXに対応する水平方向において、適用される。垂直方向の勾配
【数27】
の場合、勾配フィルタはまず、デスケーリングシフトd-8で、分数位置fracYに対応するBPOFfilterGを使用して垂直に適用され、次に、信号変位が、18-dのデスケーリングシフトで、分数位置fracXに対応する水平方向において、BPOFfilterSを使用して、実行される。勾配算出BPOFfilterGおよび信号変位BPOFfilterFの補間フィルタの長さは、合理的な複雑性を維持するために、より短い(6タップ)。表1.4は、BPOFにおけるブロックの動きベクトルの異なる分数位置に対する勾配算出に使用されるフィルタを示す。表1.5は、BPOFにおける予測信号生成に使用される補間フィルタを示す。
[表1.4]
【表1】
[表1.5]
【表2】
【0032】
特定の他の実施形態において、勾配は、単純な[-1 0 1]フィルタを使用して水平方向および垂直方向における2-D分離可能な動き補償補間を行った後、計算される。
【0033】
最近の動向において、BPOFは、2つの予測が異なる参照ピクチャからである場合、すべての双予測モード(アフィン、重み付けされた双予測動き補償、およびサブブロックベースの高度な時間的マージモードの場合を除いて)に適用される。
【0034】
4×4サブブロックで、6×6サンプル位置を使用する場合、1.22の方程式は、以下の中間精度を必要とする:
・I(k)は、14の中間ビット深度(VVC内)で維持される動きベクトルの小数部分に基づく2-D分離可能な動き補償補間の後のクリップされていない予測ブロックサンプルに対応し、-8192のオフセットは、符号付き14ビット数の動的範囲をより有効に利用するために適用される。したがって、差分項(I(1)-I(0))は、15ビット精度を有する。

【数28】
および
【数29】
は、水平方向と垂直方向とのそれぞれにおいて[-1 0 1]フィルタを適用することにより、I(k)から計算される水平方向および垂直方向の勾配に対応し、したがって、15ビット精度になる。
・現在の採用において、現在のフレームから2つの参照フレームへの時間的距離、τ0およびτ1は、等しいと仮定される。式1.22で使用される
【数30】
および
【数31】
の和と、
【数32】
および
【数33】
の和は、16ビット精度になる。
・したがって、積項は(16+15)または(16+16)ビット精度を有し得、所与の4×4サブブロックの6×6サンプル位置に対して累積を行うことは、32+6=38ビットのアキュムレータを必要とする。
【0035】
多用途映像符号化規格に対する最近の採用では、32ビットのアキュムレータを超えることを回避するために、また、16ビットまたは32ビットの単一命令多重データ(SIMD)処理を促進するために、中間ビット深度に対して以下の標準的な単純化が行われる。
・I(k)は、それらを減算する前に6ビットだけ右にシフトされ、減算された量は9ビット精度になる。

【数34】
および
【数35】
は、それらを11ビット精度にするために、まず4ビットだけ右にシフトされる。
・水平方向の勾配の和よび垂直方向の勾配の和の項は、11ビット精度の勾配を使用して計算され、計算された和は、合計の項を9ビット精度にするために、さらに3ビットだけ右シフトされる。
・積項は次に、9ビット×9ビット乗算として計算され、24ビットアキュムレータに累積される18ビット出力をもたらす。
・24ビット累積量は次に、(ここでも、27ビット中間値を超えることなく)フローベクトルを計算するのに使用され、フローベクトル
【数36】
は、5ビット(すなわち、各成分は-8から8の間の値である)で表される。
・ピクセルレベルでBPOF補正を適用している間、中間11ビットの水平方向および垂直方向の勾配値を使用して、水平方向の勾配の12ビットの差と、垂直方向の勾配の差とを取得して、これらは次に、
【数37】
でそれぞれ乗算され、まとめて加算され(これは16ビット範囲を横切り得る)、次に、丸め処理により1だけダウンシフトされ、次に、オフセット項とともに、クリップされていない予測ブロック値に加算される。したがって、ソフトウェアにおけるSIMDでは、最終的な右シフトまで32ビット精度で処理が実行され、それらをサンプルビット深度まで進ませて、次にサンプルがパックされる。したがって、補正を適用している間のSIMDスループットは劣る。現在、BPOFは、重み付けされた双予測の間に無効となり、通常の双予測平均化の間にのみ有効となる。
【0036】
通常、動きベクトルは、推定された変位を伴うBPOFの場合には更新されず、クロマ成分予測は、推定された変位に基づいて調整されない。
[DMVRおよびBPOFの組み合わせ]
【0037】
リファインメントのための内部メモリ要件は、リファインメントが実行されるブロックのサイズに直接依存するので、特定のDMVR実施形態は、ピクセルカウントより大きいサイズの符号化ユニットを、特定の予め定められたrefinement_sub_PU_widthおよび特定の予め定められたrefinement_sub_PU_heightを越えないサブ予測単位(サブPU)に強制的にパーティション化する。
【0038】
DMVR(ここでおよび以下において、DMVRという用語が使用されるが、エンコーダ側の動きベクトルのリファインメントも含まれることは言うまでもない)とBPOFとの単純な組み合わせは、まずサブPUレベルで整数距離またはサブピクセル距離精度のデコーダ側MVリファインメントを実行することにより実現される。ここで、サブPU DMVRは、より単純な分離可能な2-D補間(例えば、整数グリッドサンプル、最終的な動き補償補間と同じサブピクセル精度であり得る指定されたサブピクセル精度でのまたは減少したサブピクセル精度での双線形補間)を使用して実行される。一度リファインされた動きベクトルがサブPUに知られると、2-D分離可能なDCTIFベースの動き補償補間が実行される。HEVCおよびドラフトVVC規格においては、8または7タップDCTIFが、サブピクセル位相に応じて輝度MCに採用される。(規範的に水平方向の補間に続く)垂直方向の補間からDCTIF補間サンプルが利用可能となった後、サンプル値およびサンプル勾配は、前述したように、双予測オプティカルフローベクトルがピクセル単位のレベルでまたはサブPUを有するm×nサブブロックのいずれかで決定されることを使用して計算される。ピクセルまたはサブブロックに対するこのオプティカルフローベクトル、ならびに、サンプル値およびサンプル勾配に基づいて、従来の双予測平均化は、前述のように、補正項で更新される。
【0039】
したがって、サブPUに対するDCTIFベースの補間の開始は、サブPU DMVRが完了するまで待機する必要がある。オプティカルフローベクトルの計算の開始は、サブPU DCTIFの垂直方向の補間が利用可能となり始めるまで待機する必要があり、これは、水平DCTIFベースの補間行のDCTIFフィルタタップの数が生成された後にのみ可能である。
【0040】
上記を考慮すると、本発明の基礎となる対象は、インター予測のための技術を提供することであり、ここで、全体的な処理時間、負荷、およびメモリ容量に対する必要が、当技術分野と比較して減少され得る。
【発明の概要】
【0041】
上述の対象は、添付の請求項により提示される。
インター予測方法であって、
現在のピクチャの現在のピクチャブロックの動き情報に基づいて参照サンプルを選択する段階と、
選択された参照サンプルに対して第1補間を実行することにより、第1補間サンプルを導出する段階と、
第1補間サンプルに基づいて整数距離の動きベクトルのリファインメント(MVR)を実行することにより、ターゲットサブ予測ユニット(PU)の整数距離デルタ動きベクトルを導出する段階であって、ここで、ターゲットサブPUは現在のピクチャブロック内にある、導出する段階と、
第1補間サンプルおよび整数距離デルタ動きベクトルに基づいて、ターゲットサブPU内のそれぞれのM×Mピクセルマトリクスに対して、双予測オプティカルフロー(BPOF)を実行することにより、M×Mピクセルマトリクスフローベクトル(Mは整数であり、例えば、M=4)を導出する段階であって、ここで、Mは正の整数であり、M×Mピクセルマトリクスのサイズは、ターゲットサブPUのサイズより小さい、導出する段階と、
参照サンプルに対して第2補間を実行することにより、第2補間サンプルを導出する段階と、
M×Mピクセルマトリクスフローベクトル、第1補間サンプル、および第2補間サンプルに基づいて、ターゲットサブPUに対して少なくとも1つの補正パラメータを計算する段階と、
第2補間サンプルおよび少なくとも1つの補正パラメータに基づいて、双予測を実行する段階と
を備える、方法が提供される。
【0042】
したがって、導出、計算および双予測方法の段階の指定された組み合わせにより、全体的な計算負荷およびインター予測に基づく符号化に必要とされる計算時間は、当該技術分野において認識されている技術と比較して大幅に減少し得る。
【0043】
動き情報は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニットレベルにおける動きベクトルを備え得る。さらに、動き情報は、適切な参照ピクチャの選択を促進するのに有用な参照インデックスを備え得る。
【0044】
発明の方法の第2補間は、現在のピクチャブロックの動きベクトルと、ターゲットサブPUに対して導出された整数距離デルタ動きベクトルとを使用して実行され得る。サブブロックの動きベクトルは、現在のブロックの初期の動きベクトルと、適切なオフセットとに基づいて導出される。最初のMVは、整数ピクセル位置を指さない場合があるが、オフセットは、インター距離(inter distance)デルタとなり、その結果、オフセットが初期の動きベクトルに加算される場合、最初のMVは整数ピクセル位置に到達する。
【0045】
双予測に使用されるターゲットサブPUに対する上述の少なくとも1つの補正パラメータは、ターゲットサブPUのサンプルに対して算出されたサンプル勾配から計算され得る。これにより、例えば、テンプレートまたはバイラテラルマッチングのみに基づく従来の双予測は、予測ピクチャの精度に関して向上され得る。
【0046】
具体的には、補正パラメータを採用する双予測は、第1参照ピクチャL0に基づく補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャL1に基づく補正パラメータを使用して第2予測ピクチャを生成する段階とを備え得る。
【0047】
実施形態によると、参照サンプルの整数グリッドサンプルは第1メモリに格納され、第1補間サンプルは第1メモリとは異なる第2メモリ、例えば、キャッシュメモリに格納され、その結果、第1補間サンプルは、それが必要とされる異なる処理の段階において容易に取得され得る。
【0048】
上記の実施形態において、第2補間は、分離可能な補間フィルタにより実行され得る。そのような種類のフィルタは、比較的高速且つ正確な補間を行うことを可能にし得る。
【0049】
上記の実施形態において、発明の方法は、ターゲットサブPUに対して少なくとも1つの補正パラメータを計算する段階の前に、
第1補間サンプルに基づいて、ターゲットサブPUの左右境界サンプル位置における水平境界のサンプル勾配と、ターゲットサブPUの上下境界サンプル位置における垂直境界のサンプル勾配とを導出する段階を備え得る。
【0050】
水平および垂直境界のサンプル勾配は、双予測の勾配ベースの補正の間に使用されるために、いくつかの内部メモリにバッファリングされ得る。ターゲットサブPUに対する少なくとも1つの補正パラメータは、水平境界のサンプル勾配および垂直境界のサンプル勾配に基づいて計算され得る。具体的に、水平境界のサンプル勾配および垂直境界のサンプル勾配は、全体的なメモリおよび計算負荷を低減するために、動きベクトルのリファインメントを実行した後に導出され得る。
【0051】
上述の第1補間は双線形補間であり得るおよび/または上述の第2補間はより簡単ではなく/高価な離散コサイン変換補間であり得る。
【0052】
また、上述の対象は、
現在のピクチャの現在のピクチャブロックの動き情報に基づいて参照サンプルを選択する段階と、
選択された参照サンプルに対して補間(例えば、分離可能な補間フィルタにより実行される)を実行することにより補間サンプルを導出する段階と、
補間サンプルに基づいて、整数距離の動きベクトルのリファインメント(MVR)コストを算出する段階と、
算出された整数距離MVRコストに基づいて、整数距離デルタ動きベクトルを決定する段階と、
補間サンプルおよび整数距離デルタ動きベクトルに基づいて、ターゲットサブ予測ユニット(PU)内のそれぞれのM×Mピクセルマトリクスに対して、双予測オプティカルフロー(BPOF)を実行することにより、M×Mピクセルマトリクスフローベクトル(Mは整数であり、例えば、M=4)を導出する段階であって、ここで、Mは正の整数であり、M×MはサブPUのサイズより小さく、ターゲットサブPUは現在のピクチャブロック内にある、導出する段階と、
M×Mピクセルマトリクスフローベクトルおよび補間サンプルに基づいて、ターゲットサブPUに対して少なくとも1つの補正パラメータを計算する段階と、
補間サンプルおよび少なくとも1つの補正パラメータに基づいて、双予測を実行する段階と
を備えるインター予測方法を提供することにより提示される。
【0053】
したがって、導出、計算および双予測方法の段階の指定された組み合わせにより、全体的な計算負荷およびインター予測に基づく符号化に必要とされる計算時間も、当該技術分野において認識されている技術と比較して大幅に減少し得る。
【0054】
上述の実施形態におけるように、動き情報は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニットレベルにおける動きベクトルを備え得、それは参照インデックスを備え得る。
【0055】
ターゲットサブPUに対する少なくとも1つの補正パラメータは、ターゲットサブPUのサンプルに対して算出されたサンプル勾配から計算され得る。上述の実施形態におけるように、双予測の実行は、第1参照ピクチャL0に基づく補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャL1に基づく補正パラメータを使用して第2予測ピクチャを生成する段階とを備え得る。
【0056】
ターゲットサブPUに対する補正パラメータは、境界勾配に基づいて計算され得る。したがって、方法は、ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する段階の前に、ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する前に、補間サンプルに基づいてターゲットサブPUの境界勾配を導出する段階を備え得る。
【0057】
この提供された方法において使用される補間は、双線形補間または離散コサイン変換補間であり得る。さらに、補間サンプルの最初および最後のN行は、同じ第1補間方法を使用して決定され得、最初および最後のN行を除く補間サンプルの行は、同じ第2補間方法を使用して決定され得る。Nは、例えば、3であり得る。第1補間方法は離散コサイン変換補間または双線形補間であり得、第2補間は離散コサイン変換補間であり得る。
【0058】
また、上述の対象は、別のインター予測方法であって、
現在のピクチャの現在のピクチャブロックの動き情報により参照サンプルを選択する段階と、
現在のピクチャブロックのターゲットサブ予測ユニット(PU)に対する補間サンプルを導出する段階であって、当該段階は、選択された参照サンプルの当該参照サンプルに対して第1補間を実行することであって、その位置は現在のピクチャブロックの動きベクトル(MV)リファインメント範囲内のゼロデルタ動きベクトルに対応する、実行することと、選択された参照サンプルの当該参照サンプルに対して第2補間を実行することであって、その位置は現在のピクチャブロックのMVリファインメント範囲内のゼロデルタMVに対応しない、実行することとによって行われる、導出する段階と、
補間サンプルに基づいて、整数距離の動きベクトルのリファインメント(MVR)コストを算出する段階と、
算出された整数距離MVRコストに基づいて、整数距離デルタ動きベクトルを決定する段階と、
算出された整数距離MVRコストを使用して、決定された整数距離デルタ動きベクトルの周りのサブピクセル精度のデルタ動きベクトルを決定する段階と、
ゼロデルタ動きベクトルの位置における補間サンプルに基づいて、ターゲットサブPU内のサンプルの各M×M輝度ブロックに対して、双予測オプティカルフロー(BPOF)を実行することにより、M×Mピクセルマトリクスフローベクトル(Mは整数であり、例えば、M=4)を導出する段階であって、ここで、Mは正の整数であり、M×MはサブPUのサイズより小さく、ターゲットサブPUは現在のピクチャブロック内にある、導出する段階と、
ターゲットサブPUに対する輝度インター予測が、ターゲットサブPUに対する決定されたデルタ動きベクトル、または、ターゲットサブPU内のサンプルの各M×M輝度ブロックに対して導出されたBPOFベクトルを使用して実行されるかどうかを決定する段階と、
ターゲットサブPUに対する輝度インター予測が、導出されたBPOFベクトルを使用して実行されると決定された場合、M×Mピクセルマトリクスフローベクトルと補間サンプルとに基づいて、ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する段階と、
ターゲットサブPUに対する輝度インター予測が、決定されたデルタ動きベクトルを使用して実行されると決定された場合、決定されたデルタ動きベクトルに基づいて、ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する段階と、
補間サンプルと少なくとも1つの補正パラメータとに基づいて、双予測を実行する段階と
の段階を備える方法を提供することにより提示される。
【0059】
したがって、この他の提供された方法の導出、計算および双予測方法の段階の指定された組み合わせにより、全体的な計算負荷およびインター予測に基づく符号化に必要とされる計算時間も、当該技術分野において認識されている技術と比較して大幅に減少し得る。
【0060】
また、この他の提供された方法においては、ターゲットサブPUに対する少なくとも1つの補正パラメータは、ターゲットサブPUのサンプルに対して算出されたサンプル勾配から計算され得る。再び、双予測の実行は、第1参照ピクチャL0に基づく補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャL1に基づく補正パラメータを使用して第2予測ピクチャを生成する段階とを備え得る。
【0061】
第2補間は分離可能な補間フィルタにより実行され得るおよび/または第1補間は離散コサイン変換補間であり得る。第2補間は双線形または離散コサイン変換補間であり得る。
【0062】
この他の提供された方法は、ターゲットサブPUに対するデルタ動きベクトル、または、ターゲットサブPU内のサンプルの各M×M輝度ブロックに対するBPOFベクトルを使用して、ターゲットサブPUに対する輝度インター予測を条件付きで実行する。これにより、具体的なインター予測は、計算負荷/オーバーヘッドと、インター予測手順からもたらされる予測ピクチャの精度との間の妥協に基づいて選択され得る。実用的な適用の間に得られた実験および経験は、特定の条件が保持される場合に、それがターゲットサブPU内のサンプルの各M×M輝度ブロックに対して導出されたBPOFベクトルを使用してターゲットサブPUに対する輝度インター予測を実行するのに適切であり得ることを示した。例えば、ターゲットサブPUに対する輝度インター予測は、以下の条件の1または複数が満たされる場合、ターゲットサブPU内のサンプルの各M×M輝度ブロックに対して導出されたBPOFベクトルを使用して実行されることが決定され得る。
a)最良コストの整数距離デルタ動きベクトルがゼロベクトルである
b)ゼロデルタ動きベクトルのMVRコストから最良コストを引いた値が予め定められた閾値より小さい
c)ターゲットサブPU内の輝度サンプルのすべての4×4ブロックにわたるBPOFベクトルのユークリッドまたはマンハッタン距離の分散が、予め定められた閾値を超える
【0063】
発明の方法の上記の実施形態のすべては、ビデオシーケンスのビデオピクチャの符号化、すなわち、エンコード、およびデコードに使用され得る。したがって、以下の方法も、本明細書に提供される。
【0064】
ビデオピクチャを受信する段階と、上記の実施形態のいずれかのインター予測方法を、ビデオピクチャのブロックに適用する段階と、実行された双予測に基づいてビデオピクチャをエンコードする段階とを備えるビデオピクチャをエンコードする方法、ならびに、エンコードされたビデオピクチャを受信する段階と、上記の実施形態のいずれかのインター予測方法を、エンコードされたビデオピクチャのブロックに適用する段階と、実行された双予測に基づいて、エンコードされたビデオピクチャをデコードする段階とを備える、エンコードされたビデオピクチャをデコードする方法。
【0065】
さらに、上記の実施形態のいずれかに従って方法を実行するための処理回路を備えるエンコーダまたはデコーダが提供される。
【0066】
具体的に、1または複数のプロセッサと、プロセッサに接続され、プロセッサにより実行されるプログラミングを格納する非一時的コンピュータ可読記憶媒体とを備えるエンコーダまたはデコーダが提供され、ここで、プログラミングは、プロセッサにより実行される場合、エンコーダまたはデコーダを、上記の実施形態のいずれかに従って方法を実行するように構成する。
【0067】
さらに、上記の実施形態のいずれかに従って方法を実行するプログラムコードを備えるコンピュータプログラム製品が提供される。
【図面の簡単な説明】
【0068】
図1】テンプレートマッチングベースのデコーダ側の動きベクトルの導出の図である。
図2】バイラテラルマッチングベースのデコーダ側の動きベクトルの導出の図である。
図3】バイラテラルテンプレートマッチングベースのデコーダ側の動きベクトルのリファインメントの図である。
図4】双予測オプティカルフローの図である。
図5】現在のブロックの外部のサンプル値およびサンプル勾配値を導出する図である。
図6】実施形態1のDMVR+BPOF共存システムのブロック図である。
図7】実施形態1の非DMVR CUのためのBPOFシステムのブロック図である。
図8】実施形態1のDMVR+BPOF共存システムのブロック図である。
図9】実施形態2のDMVR+BPOF共存システムのブロック図である。
図10】実施形態2の非DMVR CUのためのBPOFシステムのブロック図である。
図11】サブPUレベルのサブペルのフローに対する勾配ベースの補正を用いるDMVRの図(4×4レベルのBPOFなし)である。
図12】実施形態3のブロック図である。
図13】実施形態3のタイミング図である。
図14】エンコーダまたはデコーダの実施形態の図である。
【発明を実施するための形態】
【0069】
上述のように、各双予測動き補償サンプルに対する、デコーダ側の動きベクトルのリファインメント(例えば、対称バイラテラルマッチングを使用する)と、デコーダ側の双予測オプティカルフローベースのピクセル単位補正との単純な組み合わせは、サブピクセル距離リファインメント動きベクトルを用いる整数距離または整数のサブPUレベル決定と、水平DCTIFベースの補間の開始との間の依存性を含む。同様に、双予測オプティカルフロー推定の開始は、利用可能となる第1垂直DCTIFベースの補間行に依存性を有する。第1依存は、サブPU粒度パイプラインを設定することにより提示され得る。その結果、所与のサブPU上でDMVR(エンコーダ側におけるDMVR動きベクトルのリファインメントも含まれることが再度留意される)が動作する場合、DMVRが既に完了した(または適用可能でないと決定された)以前のサブPUに対してDCTIFが実行され得る。
【0070】
互いに隣接する異なる予測または符号化ユニットブロックの動き補償に必要とされるサンプル間にかなりの重複が存在し得ることを考慮すると、プリフェッチキャッシュは通常、ハードウェア設計において採用され、動き補償に必要とされるサンプルを確定的にもたらす。ソフトウェア実装において、プロセッサキャッシュは、参照の空間局所性を自動的に提供する。これらのプリフェッチキャッシュは、外部メモリよりアクセスが速いが、ハードウェア設計において使用される内部ラインメモリよりアクセスが遅くなる傾向にある。したがって、このプリフェッチキャッシュは、同じサンプルのセットに対して何度もアクセスされないことが好ましい。したがって、サブPUレベルパイプラインに伴い、内部メモリ要件が増加し、DMVRに既にアクセスされたラインのためのプリフェッチキャッシュに再度アクセスすることを回避すべく、最終的なDCTIFに対する整数グリッドサンプルをバッファする。DMVRおよび水平DCTIFベースの補間が異なるサブPU上で動作していると、内部メモリの必要量は、2つの参照および2つのサブPUにわたって、4*(sPUw+N_TAPS_DCTIF-1+2*(S+1))*(sPUh+2*(S+1))となる。ここで、sPUwおよびsPUhは、(選択された粒度の)サブPUの幅および高さであり、N_TAPS_DCTIFは、DCTIFベースの補間に使用されるフィルタタップの数を指示し、Sは、マージ動きベクトルの周りのDMVRリファインメント範囲を表し、追加の1は、BPOFの必要から来る。
【0071】
N_TAPS_DCTIFが増加すると、水平DCTIFベースの補間が垂直DCTIFベースの補間の前に規範的に実行される必要があることを考慮すると、垂直DCTIFベースの補間は、水平DCTIFベース補間行のN_TAPS_DCTIF数が生成されるまで開始できない。全体的なタイミング(またはパイプラインのレイテンシ)の観点から、BPOFは、垂直DCTIFベースの補間サンプルに対して実行されるので、この時間の間に、現在は不可能であるBPOFの特定の算出を実行することが好ましい。垂直方向における勾配計算要件を考慮すると、3つの垂直補間行が、垂直方向の勾配計算を開始するのに必要とされる。サブPUレベルパイプラインを考慮すると、内部メモリを最小限に保持するために、BPOFは、サブPUレベルにおいても発生する必要がある。サブPUの4×4サブブロックのフローベクトルの決定は、5*(sPUw+2)*(sPUh+2)の9ビット×9ビット乗算を必要とする。積項の累積の数は、NUM_4×4_PER_SUB_PU*36となり、ここでNUM_4×4_PER_SUB_PUは、サブPUごとの4×4ブロックの数である。補正項の計算は、水平および垂直方向の勾配を必要とするので、L0およびL1の水平および垂直のサンプル勾配(15ビット深度)がバッファに格納されること、または、補正計算が4×4レベルの計算されたフローベクトルが利用可能性とともに開始し得るまで、(14の)中間ビット深度におけるクリップされていない平均前補間サンプルが、バッファに格納されることのいずれかが必須である。最良のタイミングとして、サブPU内の4×4ブロックの行に対するオプティカルフロー推定が発生している間、フローベクトルおよび勾配ベースの補正が、サブPU内の4×4ブロックの前の行に対して計算される。これは、勾配の格納またはクリップされていない平均前の補間サンプルの格納が、各参照において少なくとも8行分である必要があることを示唆する。BPOFが存在しない場合、双予測平均化は、各参照から垂直補間サンプルのうち1つの行が利用可能となったらすぐに、列ごとに実行されることが可能であったことに留意すべきである。したがって、内部メモリの負荷を減らすことが望ましい。
【0072】
DMVRが存在しない場合のBPOFは、現在、これらの追加サンプルが符号化ユニットに含まれる限り、符号化ユニット内において、DCTIFベースの補間サンプルが所与の4×4の外部で利用可能であると仮定する。換言すると、4×4の内部の位置に対する勾配算出には、6×6のDCTIFベースの補間サンプルが必要とされる。同様に、サブPUには、(sPUw+2)×(sPUh+2)におけるDCTIFベースの補間サンプルが必要とされる。これは、符号化ユニットのサイズがサブPUのサイズより大きい場合はいつでも、DCTIFが最初に2つの行と2つの列とを生成することによりサブPUのパイプラインをプライミングすることを必要とする。これはまた、2*128*2*2の平均前補間参照サンプルが最悪のケースにおいて維持される必要があり得るので、内部メモリ要件を増加させる。代替的に、内部メモリを節約することは、各サブPUが(sPUw+2)×(sPUh+2)のDCTIFベースの補間出力を生成することを必要とし、これにより、16×16のサブPU場合、補間作業負荷を25%まで増加する。したがって、内部メモリ需要におけるこの増加または補間作業負荷における25%の増加に起因するゲートカウントの増加を回避することが望ましい。
【0073】
サブピクセル精度のデルタMVがDMVRにより採用される場合はいつでも、各サブPUは、水平方向および垂直方向において異なるサブピクセル位相オフセットを潜在的に有し得る。したがって、各サブPUは、独立した2-D分離可能なDCTIFベースの補間を実行する必要がある。これは、依然として、VVCにおけるアフィンサブCUで発生するすべての4×4双予測サブPUの最悪のケースのDCTIF補間の複雑性を十分に下回るが、ハードウェアの平均電力要件またはソフトウェアの平均処理要件は、サブPUレベルのDCTIFで大幅に増加する。また、サブピクセル精度のデルタMVを有するDMVRが存在する場合、BPOFは、いくつかの補間方法(例えば、DCTIF、双線形補間、または最も近い整数グリッドサンプル)を使用して、サブPU内の位置に対する勾配算出に必要とされる、サブPUの外部にある追加サンプルを強制的に取得する。これらの補間を実行することはまた、ハードウェアの平均電力要件およびソフトウェアの平均処理要件を増加させる。したがって、ハードウェアの平均電力またはソフトウェアの平均処理要件を増加させる必要を回避できることが望ましい。
【0074】
本発明は、(a)プリフェッチキャッシュアクセスを、DMVRなしの状態に近いレベルに維持すること、(b)内部メモリの増加を回避すること、(c)計算の実行に必要とされる時間を減らすこと、(d)ゲートカウントの増加を回避すること、(e)ハードウェアの平均電力の増加またはソフトウェアの平均処理要件の増加を回避すること、および(f)SIMDフレンドリーさの欠如を回避することにより、上記に列挙された問題の1または複数を対処/緩和するシステムおよび方法を提供する。
【0075】
本発明は、異なる処理の同時性を向上させる。一実施形態において、DMVRに対して実行された双線形動き補償は、4×4ブロックレベルにおいても、オプティカルフローベクトルを計算するのに利用される。これは、すべてのフローベクトル関連の計算がDCTIFベースの動き補償と同時に実行されることを可能にして、したがって、動き補償の全体的なタイミングが向上される。別の実施形態において、DCTIFベースの動き補償は、まず、双線形動き補償を使用して計算されたリファインメントの追加サンプルを用いて実行される。これは、DMVRが、各垂直DCTIFベースの補間ラインが利用可能となった際に、行レベルのパイプラインにおいて実行されることを可能にする。全体のリファインメント範囲に対して通常実行される双線形補間の複雑性は、中央部分に対するDCTIFベースの補間サンプルを共有することにより減少し、したがって、ハードウェアのゲートカウントまたはソフトウェアの処理が減少する。内部メモリ要件はまた、この実施形態では、プリフェッチキャッシュからアクセスされる整数グリッドサンプルが2つのサブPUステージにわたって維持される必要がないので、減少する。
【0076】
DMVRとBPOFとが符号化ユニットに対して同時に共存することを必要とする実施形態において、DMVRからのサブピクセル精度のデルタMVは無効となり、その結果、サブPUに強制的にパーティション化されたより大きい符号化ユニットにおいて、水平補間および垂直補間されたラインバッファの再利用が可能となる。ソフトウェアにおいて、これは、DCTIFが、符号化ユニットレベルにおいて実行され、サブCUレベルでDCTIFを実行するより計算的なコストが低い(CU_w+4)×(CU_h+4)のサンプルを生成することを可能にする。
【0077】
DMVRにおけるサブピクセル精度のデルタMVが利用可能である特定の実施形態において、BPOFベースの補正は、DMVRから取得されたサブピクセルのフローベクトルを使用する勾配ベースの補正に置き換えられる。整数距離コスト値を使用して取得されたパラメトリックなエラー表面を使用してサブピクセルのフローベクトルを計算することにより、この場合、フローベクトル計算に関連するピクセルレベル処理が回避される。
【0078】
特定の実施形態において、全体的なタイミングを向上させるべく、BDOFを使用するフローベクトル算出は、DMVRからのデルタMVに依存することなく実行される。輝度インター予測が、DMVRで決定されたデルタMV位置における勾配ベース補正を使用するか、または、BDOFベースのオプティカルフローベクトルを使用して計算された補正を使用するかを決定する決定ロジックが導入される。DMVRベースのデルタMVは、上記の決定に関わらず、リファインされたMVを更新するのに使用され、サブPUレベルにおけるクロマMCを実行するために、同じものが使用される。
【0079】
BPOFが適用されるがDMVRは適用されない符号化ユニットにおいて、標準的なサブPUのサイズ(DMVRがBPOFと共にある場合に使用されるサブPUのサイズと同じであることが好ましい)が定義され、その結果、サブPUの外部のサンプルを必要とするサブPUの内部の位置におけるサンプル勾配は、DMVRに対して実行されたのと同じ補間を使用して取得される。
【0080】
特定の実施形態において、DMVRに使用される補間は、符号化ユニットのサイズに基づいて適用され、その結果、符号化ユニットの幅、符号化ユニットの高さ、および符号化ユニットのサイズの予め定められた閾値を上回る符号化ユニットのサイズは、全体のリファインメント範囲にわたってDCTIF自体を使用し、その一方、残りの符号化ユニットは、リファインメント必要とされる追加サンプルまたは全体のリファインメント範囲に必要とされる追加サンプルのいずれかに対して、より単純な補間を使用する。
【0081】
デコーダ側の動きベクトルのリファインメント/導出が符号化システムの標準的な態様であることを考慮すると、エンコーダの再構築とデコーダの再構築との間にドリフトがないようにするために、エンコーダも同じリファインメント検索処理を実行する必要がある。したがって、すべての実施形態のすべての態様は、エンコードシステムおよびデコードシステムの両方に適用可能である。
【0082】
テンプレートマッチングにおいて、リファインメントの動きは、明示的にシグナリングされたマージインデックスに基づいてまたはコスト評価によって暗黙的に導出されるサブピクセル精度の中心から開始する参照においてのみ発生する。
【0083】
バイラテラルマッチング(平均化テンプレートありまたはなし)において、リファインメントは、明示的にシグナリングされたマージインデックスに基づいてまたはコスト評価によって暗黙的に導出されるそれぞれのサブピクセル精度の中心から開始する参照であるL0およびL1において開始する。
[実施形態1]
【0084】
この実施形態において、DMVRおよび4×4レベルの双予測オプティカルフローベクトルの決定は、同じ補間スキームを使用する。これの1つのサンプル実施形態は図6に示されており、ここで双線形補間はブロック601に示されるように採用される。601は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニット(VPDU)レベルにおいて、リファインされていない動きベクトルを使用して参照サンプルをフェッチすると仮定されるプリフェッチバッファM601からのサンプルにアクセスする。双線形補間サンプルは、内部メモリバッファM602に格納され、所与のサブPUに対してL0およびL1におけるマージMV中心に関して整数距離DMVRを実行する処理ブロック602によりアクセスされ、整数距離デルタMVを生成する。所与のサブPUで各4×4に対して双予測オプティカルフローベクトル推定を実行するブロック603も、サブCUに対する整数距離デルタMVにより提供されるオフセットから開始するM602にアクセスする。一般的な補間は、DCTIFベースの補間であってもよいことに留意すべきである。一般的な補間がDCTIFベースの補間でない場合、図6は、残りの依存関係を示す。非DCTIF補間の間にアクセスされた整数グリッドサンプルは、内部メモリM603においてバッファリングされ、プリフェッチキャッシュからこれらのサンプルに再度アクセスすることを回避する。DCTIFの水平方向の補間ステージ(604)は、ラインバッファM604内にその出力を生成する。そして、垂直方向の補間ステージ(605)は、新しい垂直方向の補間ラインを生成するために、これらのラインバッファから消費する。(DMVRからの整数距離変位を考慮した後の)サブPUの左右境界における水平方向の勾配と、サブPUの上下境界における垂直方向の勾配とは、内部メモリM605においてバッファリングされる。サブPUの各垂直補間行が利用可能となると、勾配ベースの補正が、606においてサブPU内の各4×4ブロックに対する計算されたフローベクトルを使用することにより適用される。M605の内容は、サブPUの外部のサンプルを必要とするサブPU内の位置の勾配を取得するのに使用される。計算された補正を使用することで、補正された最終的な双予測されたサンプルが607において生成される。604、605および606におけるL0およびL1ラインの処理は、同時にまたはインターリーブ方式のいずれかで実行され、その結果、607は一度に一行を完了できると仮定される。
【0085】
表1は、この実施形態が提供する同時性のレベルを示す。主な機能ブロックは、列にわたって示され、異なるタイミングに関連するステージは、行に示される。ステージT1、T3およびT6は、ランプアップまたはランプダウンのいずれかの処理に関しており、したがって、1または複数の機能ブロックの定常状態を処理するステージT2、T4およびT5よりはるかに小さいことが、表から見られ得る。T2が、DMVRに対する補間とDMVRのコスト算出との間の同時性を提供することが見られ得る。T4は、サブPUの4×4ブロックに対するフローベクトル計算と水平DCTIFベースの補間のプライミングとの間の同時性を提供する。T5は、垂直DCTIFベースの補間と勾配ベースの補正の適用との間の同時性を提供し、補正された最終的な双予測の行を生成する。
【表3】
表1:実施形態1の異なる機能ブロックにわたっての同時性表
【0086】
メモ:T1、T3およびT6は、T2、T4、T5ステージよりタイミングが比較的に小さく、これは少なくとも2つの機能ブロックにわたる同時性を可能にする。
【0087】
図7は、DMVRを適用しない符号化ユニットに、BPOFがどのように適用されるかを示す図である。メモリユニットM701、M702、M703、M704、およびM705はそれぞれ、M601、M602、M603、M604、およびM605と機能が同様である。処理ユニット701、702、703、704、705および706はそれぞれ、601、603、604、605、606および607と機能が同様である。DMVRが実行されないので、関連するブロックサイズは、DMVRリファインメント範囲パラメータSに依存しない。しかしながら、DMVRの場合と同じ方法論が採用され、DMVRを採用する符号化ユニットとDMVRを採用しない符号化ユニットとにわたるハードウェア実装およびソフトウェア実装を調和させる。
【0088】
図8は、BPOFを採用しない符号化ユニットに、DMVRがどのように実行されるかを示す図である。メモリユニットM801、M802、M803、M804およびM805はそれぞれ、M601、M602、M603、M604およびM605と機能が同様である。処理ユニット801、802、804、805、806および807はそれぞれ、601、602、604、605、606および607と機能が同様である。処理ユニット803は、802において評価された整数距離位置コストを使用してモデリングされたパラメトリックなエラー表面を使用して、全体のサブPUに対するサブペル精度のフローベクトルを計算するという点で、603と異なる。
【0089】
図6および図8のシステムおよび方法において、サブピクセル精度のデルタMVが利用可能であるとき、それは、サブPUに対して、リファインされたMVを更新するのに使用され、その結果、リファインされたMVは、(マージまたはAMVPにおける)空間MV予測に、デブロッキング強度決定に、およびエンコード順序における将来のアクセスユニットのための時間的動きベクトル予測因子として使用され得る。サブピクセルのデルタMVの更新されたリファインされたMVはまた、輝度サブPUに対応するクロマ部のクロマ動き補償に使用される。
【0090】
実施形態1の主な利点は、異なる処理ステージにわたる同時性を向上させ、その結果、全体的なパイプラインレイテンシがハードウェア実装において減少し得ることである。具体的に、DMVRに使用されたのと同じ補間を使用してフローベクトルを計算することにより、フローベクトルの計算は、DCTIFベースの補間と同時に発生し得る。同様に、勾配ベースの補正は、DCTIFベースの補間の生成と同時に適用され得る。また、サブCUレベルの動き補償を必要とするのではなく、リファインメントのための動き補償と、DCTIFベースの動き補償とが、全体の輝度符号化ユニットにおいて実行されることを可能にすることにより、ソフトウェア実装における平均処理時間が減少する。これは、輝度のサブピクセル精度のデルタMV部分を無効にすることにより可能となる。最悪のケースのプリフェッチキャッシュアクセスは、DMVRおよび/またはBPOFがない場合とほぼ同じレベルに保持される。符号化効率の影響は最小に保持される。
【0091】
この実施形態において、DMVRおよびBPOFベクトル推定にわたって同じ補間方法を共有するシステムおよび方法が開示される。BPOFベクトル推定とDCTIFベースの補間の並列処理のためのシステムおよび方法が開示される。輝度のサブピクセル精度のデルタMVを無効にするが、サブPUのリファインされたMVとクロマMCとを更新するために、サブピクセル精度のデルタMVを依然として使用することにより、ソフトウェアの計算の複雑性を減少させるシステムおよび方法が開示される。
[実施形態2]
【0092】
この実施形態において、リファインメントのための動き補償は、リファインメント範囲の中央部分に対して(すなわち、ゼロデルタMVに対応するサンプルの符号化ユニットサイズ分に対して)DCTIFベースの補間サンプルを使用し、その一方、DMVRおよびBPOFに必要とされるこれらの中心サンプルの周りの追加サンプルは、DCTIFまたはより単純な補間スキームのいずれかを使用して取得される。これは、図9に示される。ブロック901は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニット(VPDU)レベルにおいて、リファインされていない動きベクトルを使用して参照サンプルをフェッチすると仮定されるプリフェッチバッファM901からのサンプルにアクセスすることにより、水平方向の補間を実行する。水平方向の補間は、サブピクセル位相依存のDCTIFベースの補間されたsPUw数のサンプルを各行に生成し、行の左右の3つの補間サンプルは、DCTIFまたはより単純な補間のいずれかを使用して生成される(同じサブピクセル精度または減少したサブピクセル精度での双線形補間、最も近い整数グリッドサンプルなど)。これらは、ラインバッファユニットM902に格納される。垂直方向の補間ブロック902は、M902からアクセスして垂直補間サンプルを生成し、ここで、最初および最後の3つの行が、DCTIFまたはより単純な補間を使用して生成され、その一方、中央sPUh数の行は、サブピクセル位相に基づくDCTIFベースの補間を使用して生成される。これらの垂直補間サンプルは、内部メモリバッファM903に格納される。整数距離DMVRのコスト算出は、M903にアクセスすることにより904において実行される。DMVRのレイテンシを減少させるべく、所与の検索位置に対して新しい行が利用可能になったらすぐに、行レベルのコスト算出が実行され得ることに留意すべきである。DMVRのすべての検索位置のすべての行に対してコスト算出が更新される場合、整数距離デルタMVは、すべての位置のうち最も低いコストを見つけることと、検索センタからのこの位置の距離を整数距離デルタMVとして使用することとにより、905において決定される。一度整数距離デルタMVが決定されると、任意選択的なサブピクセル精度のデルタMVは、明示的な評価を使用して、または、904において決定され905に渡される整数距離コストに適用されるパラメトリックなエラー表面ベースのフィットによって、決定され得る。ブロック906は、アクセスにM903して、905で決定された整数距離オフセットにおけるサンプル値にアクセスし、各サブPU内の各4×4ブロックに対するオプティカルフローベクトルを計算するのに必要とされるサンプル勾配を計算する。一度サブPUを有する所与の4×4ブロックに対するオプティカルフローベクトルが906で決定されると、ブロックレベル補正は、M903にアクセスすることと、計算されたオプティカルフローベクトルを使用することとにより907において計算される。906は、勾配値を格納するために906が必要な代わりに、M903からアクセスされたサンプル値を使用して勾配を再計算できる。最終的な双予測サンプル値は、M903のサンプル値と、907から渡された補正値とにアクセスすることにより、908において計算される。
【0093】
表2は、異なる機能ユニットにわたるこの実施形態における同時性のレベルを示す。主な機能ブロックは、列にわたって示され、異なるタイミングに関連するステージは、行に示される。ステージT2およびT4が同時性を可能にすることが、表から見られ得る。具体的に、T2の間、補間およびDMVRコスト算出が同時に発生する。T4の間、4×4ブロックの行に対して、オプティカルフロー推定と、フローベクトルおよび勾配ベースの補正とをパイプライン化する。垂直方向に複数のサブPUを有するより大きい符号化ユニットにおいて、列単位でサブPUの処理を行うことにより、8個の水平補間されたラインバッファと2つの垂直補間されたラインバッファとが、前のサブPUから再使用され得、T1のオーバーヘッドを回避する。しかしながら、すべての8×8符号化ユニットの最悪のケースでは、1つのCUのT1ステージの出力は、別のCUに使用されることができない。しかしながら、1つのサブPU/CUのステージT1と、別のサブPU/CUのステージT5とは、並列に行われ得る。
【表4】
表2:実施形態2の異なる機能ブロックにわたっての同時性表
【0094】
メモ:CU内のサブPUにわたって列単位でトラバースする場合、T1の動作のほとんどは、サブPU間において非表示にできる。ただし、最悪のケースは、小さいCU(例えば、8×8)に対して発生し、ここで各8×8は、独自のT1ステージを発生させ、これはT2と同等のタイミングでありできる。
【0095】
図10は、DMVRを適用しない符号化ユニットに、BPOFがどのように適用されるかを示す図である。メモリユニットM1001、M1002およびM1003はそれぞれ、M901、M902およびM903と機能が同様である。処理ユニット1001、1002、1006、1007および1008はそれぞれ、901、902、906、907および908と機能が同様である。DMVRが実行されないので、関連するブロックサイズは、DMVRリファインメント範囲パラメータSに依存しない。しかしながら、DMVRの場合と同じ方法論が採用され、DMVRを採用する符号化ユニットとDMVRを採用しない符号化ユニットとにわたるハードウェア実装およびソフトウェア実装を調和させる。
【0096】
図11は、BPOFを採用しない符号化ユニットに、DMVRがどのように実行されるかを示す図である。メモリユニットM1101、M1102およびM1103はそれぞれ、M901、M902およびM903と機能が同様である。処理ユニット1101、1102、1104、1105、1107および1108はそれぞれ、901、902、904、905、907および908と機能が同様である。処理ユニット1106は、1104において評価され1105を通過する整数距離位置コストを使用してモデリングされたパラメトリックなエラー表面を使用して、全体のサブPUに対するサブペル精度のフローベクトルを計算するという点で、906と異なる。
【0097】
図9および図11のシステムおよび方法において、サブピクセル精度のデルタMVが利用可能であるとき、それは、サブPUに対して、リファインされたMVを更新するのに使用され、その結果、リファインされたMVは、(マージまたはAMVPにおける)空間MV予測に、デブロッキング強度決定に、およびエンコード順序における将来のアクセスユニットのための時間的動きベクトル予測因子として使用され得る。サブピクセルのデルタMVの更新されたリファインされたMVはまた、輝度サブPUに対応するクロマ部のクロマ動き補償に使用される。
【0098】
この実施形態の主な利点は、2つのサブPUステージにわたって整数グリッドサンプルを維持する必要がないことにより、内部メモリ要件を減らすことである。参照ごとに、補間された(sPUw+6)×(sPUh+6)のサンプルのみが格納され、これは、sPUw=8およびsPUh=8の最悪のケースの(sPUw+13)×(sPUh+13)よりはるかに小さい。また、中心サンプルに対して双線形補間を実行しないことにより、計算の複雑性を減らす。また、補間とDMVRコスト計算との間の行レベルのパイプライン化、ならびに、フローベクトル推定とBPOFベースの補正との間の4×4レベルのパイプライン化の行を実行する能力を有することにより、同時性も向上する。また、サブCUレベルの動き補償を必要とするのではなく、リファインメントのための動き補償と、DCTIFベースの動き補償とが、全体の輝度符号化ユニットにおいて実行されることを可能にすることにより、ソフトウェア実装における平均処理時間が減少する。これは、輝度のサブピクセル精度のデルタMV部分を無効にすることにより可能となる。最悪のケースのプリフェッチキャッシュアクセスは、DMVRおよび/またはBPOFがない場合とほぼ同じレベルに保持される。符号化効率の影響は最小に保持される。
【0099】
この実施形態において、DMVRからのゼロデルタMVに対してDCTIFを使用し、非ゼロデルタMVに必要とされる追加サンプルに対してより単純な補間を使用するように標準的な動き補償を修正することと、DMVRとBPOFとに対して同じ補間を使用することとのためのシステムおよび方法が開示される。補間を伴うDMVRコスト算出の行レベルのパイプライン化された処理のためのシステムおよび方法が開示される。輝度のサブピクセル精度のデルタMVを無効にするが、サブPUのリファインされたMVとクロマMCとを更新するために、サブピクセル精度のデルタMVを依然として使用することにより、ソフトウェアの計算の複雑性を減少させるシステムおよび方法が開示される。
[実施形態3]
【0100】
実施形態2の変形例であるこの実施形態において、CU内の各サブPUにおけるサンプルの各4×4ブロックに対するBDOFベースのオプティカルフローベクトル推定は、DMVRコスト評価と実質的に並列して実行され、したがって、DMVRにより決定されるリファインされた動きベクトルに依存しない。
【0101】
図12は、輝度サンプルの符号化ユニットブロックのサブPUについてのこの実施形態を示す。符号化ユニットブロックは、サブPUに強制的にパーティション化され、その結果、リファインメントブロックサイズは予め定められた幅および予め定められた高さを越えない。符号化ユニットブロックが、予め定められた幅より小さいまたはそれに等しい幅と、予め定められた高さより小さいまたはそれに等しい高さとを有する場合、より小さいブロックに強制的にパーティション化されることはなく、サブPUと符号化ユニットブロックとは同じになる。
【0102】
水平および垂直DCTIFベースの補間ブロック1201および1202が示されるが、特定のブロックが水平方向の補間のみを有するまたは垂直方向の補間のみを有するまたは補間を必要とせずに単に整数グリッドサンプルを使用する場合があることを理解されたい。水平動きベクトル成分と垂直動きベクトル成分との両方が端数ピクセル部分を有する場合の最悪のケースにおいて、水平DCTIFベースの補間と垂直DCTIFベースの補間との両方が適用されるものとする。両方の補間が存在する場合、垂直方向の補間と水平方向の補間とは、行レベルのパイプラインにおいて発生し得る。
【0103】
ブロック1203において、DMVRに対する整数距離位置コストの評価は、最終的な補間サンプルを使用して計算される。差分絶対値和または行平均除去された差分絶対値和などの特定のコスト関数に対して、コスト評価は、補間を伴う行レベルのパイプラインにおいて発生し得ることに留意すべきである。
【0104】
ブロック1204では、マージMVからのすべてのリファインメントデルタ整数距離動きベクトル位置において評価されたコストに基づいて、最良の整数距離位置が決定される。最良コストの整数距離デルタ動きベクトルがリファインメント範囲の境界に存在しない場合、パラメトリックなエラー表面が最良コストの整数距離デルタ動きベクトルにおける且つその周りの整数距離コスト関数値に適合され、最良サブピクセル精度のデルタ動きベクトルを取得する。
【0105】
ブロック1205では、現在のサブPU内のサンプルの各4×4ブロックについて、前述の双予測オプティカルフロー推定処理を使用して、オプティカルフローベクトルが推定される。このオプティカルフローベクトル推定は、DMVRを使用したリファインされたMVの決定に依存しないことに留意すべきである。
【0106】
ブロック1206では、最終的な双予測の出力サンプルを生成するのにDMVRのリファインされたMVが使用されるものとするか、または、最終的な双予測の出力サンプルを生成するのにBDOFオプティカルフローベクトルが使用されるものとするかについての決定が行われる。この決定は、BDOFベクトルの使用を優先して行われ、以下のルールのうち1または複数を使用して行われ得る。
1.最良コストの整数距離デルタ動きベクトルがゼロベクトルであるとき。
2.ゼロデルタ動きベクトルDMVRコストから最良コストを引いた値が、予め定められた閾値より小さいとき(例えば、16×16のサブPUに対して、予め定められた閾値は、14ビット補間サンプルを使用するコスト関数を計算する場合、16、32、または64であり得る)。いくつかの実施形態において、最良コストは、整数距離デルタMVのみに基づくことができる。いくつかの他の実施形態において、最良コストは、整数距離コスト関数値のパラメトリックなエラー表面に基づくことができる。
3.ターゲットサブPU内の輝度サンプルのすべての4×4ブロックにわたるBPOFベクトルのユークリッドまたはマンハッタン距離の分散は、予め定められた閾値を超える(例えば、16個の4×4ブロックのサンプルを含むサイズ16×16のサブPUの場合、マンハッタン距離の分散に対する予め定められた閾値は、0.25、0.4、0.5などといった値であり得る)。
【0107】
ブロック1207では、ブロック1206において行われた決定に基づいて、最終的な双予測されたサンプルが生成される。具体的には、ブロック1207がDMVRを選択するとき、整数距離デルタMVオフセットのサンプルの予測されたブロックであるL0およびL1が、現在のサブPUに対する予測されたサンプルとしてアクセスされる。デルタMVが、明示的にまたはパラメトリックなエラー表面を使用して決定されたサブピクセル精度の部分を有するとき、次に、式1.14は、それぞれがデルタMVの水平成分および垂直成分のサブピクセル部分であるvxおよびvyを用いて適用され、勾配は、アクセスされた予測されたサンプルを使用して計算される。したがって、整数距離デルタMVにおける双予測は、サブピクセルのデルタMVとサンプル勾配の差とを使用して修正される。
【0108】
一方で、ブロック1207がBDOFを選択するとき、式1.14は、ブロック1205内のその4×4に対する計算されたオプティカルフローベクトルを使用することにより、サブPU内のサンプルの各4×4ブロックに適用される。
【0109】
1206による決定に関わらず、1204からのデルタMVは、サブPUに対するリファインされたMVを更新するのに使用され、これは、必要に応じて、デブロッキング、時間的MV予測、および空間MV予測に使用され得る。
【0110】
リファインされたMVはまた、サブPUの色差成分に対して動き補償を実行するためにも使用される。一実施形態において、決定ブロック1206がBDOFを選択するとき、デルタMVは、色差成分に対する動き補償を実行するのに使用されるリファインされたMVを取得する前に、各成分において-1と1との間にクリップされる。
【0111】
図13は、異なる処理ブロックにわたっての依存関係を示す。(2-D分離可能な補間の場合における)垂直方向の補間は、水平方向の補間に続く。例えば、8タップDCTIFが補間に使用されるとき、8行の水平補間行が利用可能となった後、垂直方向の補間の1つの行が発生し得る。この後、水平方向の補間の1つの行と垂直方向の補間の1つの行とは、インターリーブされ得る(または、同時に発生し得る)。補間サンプルの行が利用可能となったらすぐに、ブロック1204の整数距離コスト評価は、DMVRにより評価されるデルタMVのいくつかの位置に対して開始することができる。同様に、処理ブロック1205に対する勾配算出および勾配和算出は、補間サンプルが利用可能となったらすぐに、開始することができる。したがって、1204および1205における処理は並列で発生し得る。ブロック1206の決定は、ブロック1205がリファインメントMVを確定するとすぐに発生する。双予測に対する勾配ベースの補正は、ブロック1206の決定に依存する。
【0112】
上記の手順のすべては、エンコーダまたはデコーダにおいて実装され得る。デコーダまたはエンコーダであり得る例示的なビデオ符号化デバイス400が、図14に示される。
【0113】
ビデオ符号化デバイス400は、入口ポート410(または入力ポート410)と、データを受信するための受信ユニット(Rx)420と、プロセッサと、論理ユニットと、データを処理するための処理回路または中央処理ユニット(CPU)430と、送受信器ユニット(Tx)440と、データを送信するための出口ポート450(または出力ポート450)と、データを格納するためのメモリ460とを備える。ビデオ符号化デバイス400はまた、光信号または電気信号のエグレスまたはイングレスのために、入口ポート410、受信ユニット420、送受信器ユニット440、および出口ポート450に接続された光/電気(OE)成分と電気/光(EO)成分とを備え得る。
【0114】
プロセッサ430は、ハードウェアおよびソフトウェアにより実装され得る。プロセッサ430は、1または複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信ユニット420、送受信器ユニット440、出口ポート450、およびメモリ460と通信している。プロセッサ430は符号化モジュール470を備え得、ここで様々な符号化処理が、特に、上記の手順が処理され、準備され、または提供され得る。代替的に、符号化モジュール470は、メモリ460に格納され、プロセッサ430により実行される命令として実装される。
【0115】
メモリ460は、1または複数のディスク、テープドライブ、およびソリッドステートドライブを備え得、オーバーフローデータ格納デバイスとして使用され、そのようなプログラムが実行のために選択された場合にプログラムを格納して、プログラムを実行している間に読み取られる命令およびデータを格納し得る。メモリ460は、例えば、揮発性および/または非揮発性であり得、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であり得る。
【0116】
[略語および用語集の定義]
DMVR:デコーダ側の動きベクトルのリファインメント(Decoder Side Motion Vector Refinement)
SAD:差分絶対値和(Sum of Absolute Differences)
MV:動きベクトル(Motion Vector)
BPOF:双予測サンプルのための双予測オプティカルフローベースのピクセル単位補正(Bi-predictive Optical Flow based per-pixel correction for bi-prediction samples)
DCTIF:所与のサンプルのブロックに対する参照フレームに関する所与のサブピクセル動きベクトルに基づく参照サンプルの動き補償補間に使用される離散コサイン変換ベースの補間フィルタ(Discrete-Cosine transform based interpolation filter used for motion compensated interpolation of reference samples based on a given sub-pixel motion vector with respect to that reference frame for a given block of samples)
MC:動き補償(Motion compensation)
HEVC:高効率ビデオ符号化規格(High Efficiency Video Coding standard)
VVC:多用途映像符号化規格(Versatile Video Coding standard)
[他の考えられる項目]
[項目1]
インター予測方法であって、
現在のピクチャの現在のピクチャブロックの動き情報に基づいて参照サンプルを選択する段階と、
選択された上記参照サンプルに対して第1補間を実行することにより、第1補間サンプルを導出する段階と、
上記第1補間サンプルに基づいて整数距離の動きベクトルのリファインメント、MVR、を実行することにより、ターゲットサブ予測ユニット、PU、の整数距離デルタ動きベクトルを導出する段階であって、上記ターゲットサブPUは上記現在のピクチャブロック内にある、導出する段階と、
上記第1補間サンプルおよび上記整数距離デルタ動きベクトルに基づいて、上記ターゲットサブPU内のそれぞれのM×Mピクセルマトリクスに対して、双予測オプティカルフロー、BPOF、を実行することにより、M×Mピクセルマトリクスフローベクトルを導出する段階であって、Mは正の整数であり、上記M×Mピクセルマトリクスのサイズは、上記ターゲットサブPUのサイズより小さい、導出する段階と、
上記参照サンプルに対して第2補間を実行することにより、第2補間サンプルを導出する段階と、
上記M×Mピクセルマトリクスフローベクトル、上記第1補間サンプル、および上記第2補間サンプルに基づいて、上記ターゲットサブPUに対して少なくとも1つの補正パラメータを計算する段階と、
上記第2補間サンプルおよび上記少なくとも1つの補正パラメータに基づいて、双予測を実行する段階と
を備える、方法。
[項目2]
上記動き情報は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニットレベルにおける動きベクトルを備える、項目1に記載の方法。
[項目3]
上記第2補間は、上記現在のピクチャブロックの動きベクトルと、上記ターゲットサブPUに対して導出された上記整数距離デルタ動きベクトルとを使用して実行される、項目1または2に記載の方法。
[項目4]
上記ターゲットサブPUに対する上記少なくとも1つの補正パラメータは、上記ターゲットサブPUのサンプルに対して算出されたサンプル勾配から計算される、項目1から3のいずれかに記載の方法。
[項目5]
上記双予測を実行する上記段階は、第1参照ピクチャL0に基づく上記補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャL1に基づく上記補正パラメータを使用して第2予測ピクチャを生成する段階とを備える、項目1から4のいずれかに記載の方法。
[項目6]
上記参照サンプルの整数グリッドサンプルは第1メモリに格納され、上記第1補間サンプルは、上記第1メモリとは異なる第2メモリに格納される、項目1から5のいずれかに記載の方法。
[項目7]
上記第2補間は、分離可能な補間フィルタにより実行される、項目1から6に記載の方法。
[項目8]
上記ターゲットサブPUに対して上記少なくとも1つの補正パラメータを計算する段階の前に、上記方法は、
上記第1補間サンプルに基づいて、上記ターゲットサブPUの左右境界サンプル位置における水平境界のサンプル勾配と、上記ターゲットサブPUの上下境界サンプル位置における垂直境界のサンプル勾配とを導出する段階を備える、項目1から8のいずれか一項に記載の方法。
[項目9]
上記水平境界のサンプル勾配と上記垂直境界のサンプル勾配とは、上記MVRを実行した後に導出される、項目8に記載の方法。
[項目10]
上記ターゲットサブPUに対する上記少なくとも1つの補正パラメータは、上記水平境界のサンプル勾配および上記垂直境界のサンプル勾配に基づいて計算される、項目8または9に記載の方法。
[項目11]
上記第1補間は双線形補間である、項目1から10のいずれか一項に記載の方法。
[項目12]
上記第2補間は離散コサイン変換補間である、項目1から11のいずれか一項に記載の方法。
[項目13]
Mは4である、項目1から12のいずれか一項に記載の方法。
[項目14]
インター予測方法であって、
現在のピクチャの現在のピクチャブロックの動き情報に基づいて参照サンプルを選択する段階と、
選択された上記参照サンプルに対して補間を実行することにより補間サンプルを導出する段階と、
上記補間サンプルに基づいて、整数距離の動きベクトルのリファインメント、MVR、コストを算出する段階と、
算出された上記整数距離MVRコストに基づいて、整数距離デルタ動きベクトルを決定する段階と、
上記補間サンプルおよび上記整数距離デルタ動きベクトルに基づいて、ターゲットサブ予測ユニット、PU、内のそれぞれのM×Mピクセルマトリクスに対して、双予測オプティカルフロー、BPOF、を実行することにより、M×Mピクセルマトリクスフローベクトルを導出する段階であって、Mは正の整数であり、M×Mは上記サブPUのサイズより小さく、上記ターゲットサブPUは上記現在のピクチャブロック内にある、導出する段階と、
上記M×Mピクセルマトリクスフローベクトルおよび上記補間サンプルに基づいて、上記ターゲットサブPUに対して少なくとも1つの補正パラメータを計算する段階と、
上記補間サンプルおよび上記少なくとも1つの補正パラメータに基づいて、双予測を実行する段階と
を備える、方法。
[項目15]
上記動き情報は、符号化ツリーブロックレベルまたは仮想パイプラインデータユニットレベルにおける動きベクトルを備える、項目14に記載の方法。
[項目16]
上記ターゲットサブPUに対する上記少なくとも1つの補正パラメータは、上記ターゲットサブPUのサンプルに対して算出されたサンプル勾配から計算される、項目14から15のいずれかに記載の方法。
[項目17]
上記双予測を実行する上記段階は、第1参照ピクチャL0に基づく上記補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャL1に基づく上記補正パラメータを使用して第2予測ピクチャを生成する段階とを備える、項目14から16のいずれかに記載の方法。
[項目18]
上記補間は、分離可能な補間フィルタにより実行される、項目14から17に記載の方法。
[項目19]
上記ターゲットサブPUに対する上記少なくとも1つの補正パラメータを計算する段階の前に、上記方法は、
上記ターゲットサブPUに対する上記少なくとも1つの補正パラメータを計算する前に、上記補間サンプルに基づいて上記ターゲットサブPUの境界勾配を導出する段階を備える、項目14または18に記載の方法。
[項目20]
上記ターゲットサブPUに対する上記少なくとも1つの補正パラメータは、上記境界勾配に基づいて計算される、項目19に記載の方法。
[項目21]
上記補間は双線形補間または離散コサイン変換補間である、項目14から20のいずれか一項に記載の方法。
[項目22]
Mは4である、項目14から21のいずれか一項に記載の方法。
[項目23]
上記補間サンプルの最初および最後のN行は、同じ第1補間方法を使用して決定され、上記最初および最後のN行を除く上記補間サンプルの行は、同じ第2補間方法を使用して決定される、項目14から2のいずれか一項に記載の方法。
[項目24]
Nは3である、項目23に記載の方法。
[項目25]
上記第1補間方法は離散コサイン変換補間または双線形補間であり、上記第2補間は離散コサイン変換補間である、項目23または24に記載の方法。
[項目26]
インター予測方法であって、
現在のピクチャの現在のピクチャブロックの動き情報により参照サンプルを選択する段階と、
上記現在のピクチャブロックのターゲットサブ予測ユニット、PU、に対する補間サンプルを導出する段階であって、上記段階は、選択された上記参照サンプルの上記参照サンプルに対して第1補間を実行することであって、その位置は上記現在のピクチャブロックの動きベクトル、MV、リファインメント範囲内の上記ゼロデルタ動きベクトルに対応する、実行することと、選択された上記参照サンプルの上記参照サンプルに対して第2補間を実行することであって、その位置は上記現在のピクチャブロックの上記MVリファインメント範囲内の上記ゼロデルタMVに対応しない、実行することとによって行われる、導出する段階と、
上記補間サンプルに基づいて、整数距離の動きベクトルのリファインメント、MVR、コストを算出する段階と、
算出された上記整数距離MVRコストに基づいて、整数距離デルタ動きベクトルを決定する段階と、
算出された上記整数距離MVRコストを使用して、決定された上記整数距離デルタ動きベクトルの周りのサブピクセル精度のデルタ動きベクトルを決定する段階と、
上記ゼロデルタ動きベクトルの位置における上記補間サンプルに基づいて、上記ターゲットサブPU内のサンプルの各M×M輝度ブロックに対して、双予測オプティカルフロー、BPOF、を実行することにより、M×Mピクセルマトリクスフローベクトルを導出する段階であって、Mは正の整数であり、M×Mは上記サブPUのサイズより小さく、上記ターゲットサブPUは上記現在のピクチャブロック内にある、導出する段階と、
上記ターゲットサブPUに対する輝度インター予測が、上記ターゲットサブPUに対する決定された上記デルタ動きベクトル、または、上記ターゲットサブPU内のサンプルの各M×M輝度ブロックに対して上記導出されたBPOFベクトルを使用して実行されるかどうかを決定する段階と、
ターゲットサブPUに対する上記輝度インター予測が、上記導出されたBPOFベクトルを使用して実行されると決定された場合、上記M×Mピクセルマトリクスフローベクトルと上記補間サンプルとに基づいて、上記ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する段階と、
ターゲットサブPUに対する上記輝度インター予測が、決定された上記デルタ動きベクトルを使用して実行されると決定された場合、決定された上記デルタ動きベクトルに基づいて、上記ターゲットサブPUに対する少なくとも1つの補正パラメータを計算する段階と、
上記補間サンプルと上記少なくとも1つの補正パラメータとに基づいて、双予測を実行する段階と
を備える方法。
[項目27]
上記ターゲットサブPUに対する上記少なくとも1つの補正パラメータは、上記ターゲットサブPUのサンプルに対して算出されたサンプル勾配から計算される、項目26に記載の方法。
[項目28]
上記双予測を実行する上記段階は、第1参照ピクチャL0に基づく上記補正パラメータを使用して第1予測ピクチャを生成する段階と、第2参照ピクチャL1に基づく上記補正パラメータを使用して第2予測ピクチャを生成する段階とを備える、項目26から27のいずれかに記載の方法。
[項目29]
上記第2補間は、分離可能な補間フィルタにより実行される、項目26から28のいずれかに記載の方法。
[項目30]
上記第1補間は離散コサイン変換補間である、項目26から29のいずれかに記載の方法。
[項目31]
上記第2補間は双線形または離散コサイン変換補間である、項目26から30のいずれか一項に記載の方法。
[項目32]
Mは4である、項目26から31のいずれか一項に記載の方法。
[項目33]
上記ターゲットサブPUに対する上記輝度インター予測は、
a)最良コストの整数距離デルタ動きベクトルがゼロベクトルである
b)上記ゼロデルタ動きベクトルのMVRコストから上記最良コストを引いた値が予め定められた閾値より小さい
c)ターゲットサブPU内の輝度サンプルのすべての4×4ブロックにわたるBPOFベクトルのユークリッドまたはマンハッタン距離の分散が、予め定められた閾値を超える
といった条件の1または複数が満たされる場合、上記ターゲットサブPU内のサンプルの各M×M輝度ブロックに対して上記導出されたBPOFベクトルを使用して実行されることが決定される、項目26から32のいずれかに記載の方法。
[項目34]
ビデオピクチャをエンコードする方法であって、
上記ビデオピクチャを受信する段階と、項目1から34のいずれかに記載のインター予測方法を、上記ビデオピクチャのブロックに適用する段階と、実行された上記双予測に基づいて上記ビデオピクチャをエンコードする段階とを備える、方法。
[項目35]
エンコードされたビデオピクチャをデコードする方法であって、
エンコードされた上記ビデオピクチャを受信する段階と、項目1から33のいずれかに記載のインター予測方法を、エンコードされた上記ビデオピクチャのブロックに適用する段階と、実行された上記双予測に基づいて、エンコードされた上記ビデオピクチャをデコードする段階とを備える、方法。
[項目36]
項目1から34のいずれか一項に記載の方法を実行するための処理回路を備える、エンコーダ(400)。
[項目37]
項目1から33または項目35のいずれか一項に記載の方法を実行するための処理回路を備える、デコーダ(400)。
[項目38]
項目1から35のいずれか一項に記載の方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
[項目39]
1または複数のプロセッサ(430)と、
上記1または複数のプロセッサ(430)に接続され、上記1または複数のプロセッサ(430)により実行されるプログラミングを格納する非一時的コンピュータ可読記憶媒体(460)と
を備えるエンコーダ(400)であって、
上記プログラミングは、上記1または複数のプロセッサ(430)により実行される場合、項目1から34のいずれか一項に記載の方法を実行するように上記エンコーダ(400)を構成する、エンコーダ(400)。
[項目40]
1または複数のプロセッサ(430)と、
上記1または複数のプロセッサ(430)に接続され、上記1または複数のプロセッサ(430)により実行されるプログラミングを格納する非一時的コンピュータ可読記憶媒体(460)と
を備えるデコーダ(400)であって、
上記プログラミングは、上記1または複数のプロセッサ(430)により実行される場合、項目1から33または項目35のいずれか一項に記載の方法を実行するように上記デコーダ(400)を構成する、デコーダ(400)。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14