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

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

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

特許7516725双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法
<>
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図1
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図2
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図3
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図4
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図5
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図6
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図7
  • 特許-双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法
(51)【国際特許分類】
   H04N 19/51 20140101AFI20240709BHJP
【FI】
H04N19/51
【請求項の数】 11
(21)【出願番号】P 2020564570
(86)(22)【出願日】2019-09-18
(65)【公表番号】
(43)【公表日】2022-05-02
(86)【国際出願番号】 CN2019106308
(87)【国際公開番号】W WO2020057524
(87)【国際公開日】2020-03-26
【審査請求日】2021-01-08
【審判番号】
【審判請求日】2023-05-24
(31)【優先権主張番号】201831035309
(32)【優先日】2018-09-19
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】セツラマン、スリラム
(72)【発明者】
【氏名】エー、ジェーヴァ ラジ
【合議体】
【審判長】畑中 高行
【審判官】川崎 優
【審判官】高橋 宣博
(56)【参考文献】
【文献】Jianle Chen et al., Algorithm Description of Joint Exploration Test Model 7 (JEM 7)、 Joint Video Exploration Team (JVET) of ITU-T SG16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting:Torino,IT 13-21 July 2017,Document:JVET-G1001-v1、2017年8月19日、pp.20-23,27-28
【文献】Chun-Chi Chen et al.,Non-CE9:Early Termination Techniques for DMVR、Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting:Geneva,CH,19-27 March 2019,Document:JVET-N0408-v3、2019年3月21日、pp.1-3
【文献】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 10th Meeting:San Diego,US, 10-20 Apr.2018,Document:JVET-J0015-v1、2018年4月14日、pp.3-7
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
動き補償された参照パッチ間のアラインメントレベルを判定するための方法であって、前記方法は、
デコーダにより、双線形動き補償された補間からサブピクセル精度のマージ動きベクトルに基づいて、動き補償されて補間されたサンプルを取得する段階であって、2つの参照パッチにわたる前記補間されたサンプルの生成は、インターリーブされている、段階と
前記デコーダにより、前記動き補償されて補間されたサンプルのサブセットを用いて、2つの動き補償された参照パッチ間の差分絶対値和(SAD)を計算する段階と、
前記デコーダにより、前記SADが符号化ユニット(CU)サイズに依存する閾値より小さいか否かを判定する段階であって、前記CUサイズに依存する閾値は、前記動き補償されて補間されたサンプルの前記サブセット内のサンプル数の関数である、段階と、
前記SADが前記CUサイズに依存する閾値より小さい場合、
残りのデコーダ側の動きベクトルのリファインメント(DMVR)処理段階を省略する段階と、
最終的な動き補償を実行する段階と、
前記SADが前記CUサイズに依存する閾値より小さくない場合、
前記残りのDMVR処理段階を実行する段階と
前記最終的な動き補償を実行する段階と
を備える方法。
【請求項2】
前記2つの動き補償された参照パッチに対する前記双線形動き補償された補間の処理が並行して実行される、請求項1に記載の方法。
【請求項3】
前記動き補償されて補間されたサンプルは、インターリーブ方式で前記2つの動き補償された参照パッチから導出される、請求項1又は2に記載の方法。
【請求項4】
動き補償された参照パッチ間のアラインメントレベルを判定するための方法であって、前記方法は、
デコーダにより、双線形動き補償された補間からサブピクセル精度のマージ動きベクトルに基づいて、動き補償されて補間されたサンプルを取得する段階と、
前記デコーダにより、前記動き補償されて補間されたサンプルのサブセットを用いて、2つの動き補償された参照パッチ間の差分絶対値和(SAD)を計算する段階と、
前記デコーダにより、前記SADが符号化ユニット(CU)サイズに依存する閾値より小さいか否かを判定する段階であって、前記CUサイズに依存する閾値は、前記動き補償されて補間されたサンプルの前記サブセット内のサンプル数の関数である、段階と、
前記SADが前記CUサイズに依存する閾値より小さい場合、
残りのデコーダ側の動きベクトルのリファインメント(DMVR)処理段階を省略する段階と、
最終的な動き補償を実行する段階と、
前記SADが前記CUサイズに依存する閾値より小さくない場合、
前記残りのDMVR処理段階を実行する段階と、
前記最終的な動き補償を実行する段階と
を備え、
前記動き補償されて補間されたサンプルは、インターリーブ方式で前記2つの動き補償された参照パッチから導出される、方法。
【請求項5】
前記動き補償されて補間されたサンプルの前記サブセットは、(CU_width-2)×(CU-height-2)サンプルを有し、CU_widthは前記符号化ユニットの幅であり、CU-heightは符号化ユニット(CU)の高さである、請求項3又は4に記載の方法。
【請求項6】
前記動き補償されて補間されたサンプルの前記サブセットは、(CU_width×CU_height-(CU_width-2)×(CU-height-2))サンプルを有し、CU_widthは前記符号化ユニットの幅であり、CU-heightは符号化ユニット(CU)の高さである、請求項3又は4に記載の方法。
【請求項7】
前記CUサイズに依存する閾値は、動き補償されて補間されたサンプルの前記サブセット内のサンプル数についての関数である、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記2つの動き補償された参照パッチに対する前記双線形動き補償された補間が並行して実行される、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記双線形動き補償された補間は、前記2つの動き補償された参照パッチに対してインターリーブ方式で実行される、請求項1から7のいずれか一項に記載の方法。
【請求項10】
動き補償された参照パッチ間のアラインメントレベルを判定するための方法であって、前記方法は、
デコーダにより、双線形動き補償された補間からサブピクセル精度のマージ動きベクトルに基づいて、動き補償されて補間されたサンプルを取得する段階と、
前記デコーダにより、前記動き補償されて補間されたサンプルのサブセットを用いて、2つの動き補償された参照パッチ間の差分絶対値和(SAD)を計算する段階と、
前記デコーダにより、前記SADが符号化ユニット(CU)サイズに依存する閾値より小さいか否かを判定する段階であって、前記CUサイズに依存する閾値は、前記動き補償されて補間されたサンプルの前記サブセット内のサンプル数の関数である、段階と、
前記SADが前記CUサイズに依存する閾値より小さい場合、
残りのデコーダ側の動きベクトルのリファインメント(DMVR)処理段階を省略する段階と、
最終的な動き補償を実行する段階と、
前記SADが前記CUサイズに依存する閾値より小さくない場合、
前記残りのDMVR処理段階を実行する段階と、
前記最終的な動き補償を実行する段階と
を備え、
前記双線形動き補償された補間は、前記2つの動き補償された参照パッチに対してインターリーブ方式で実行される方法。
【請求項11】
非一時的メモリであって、これに格納されるプロセッサ実行可能命令を有する非一時的メモリと、
前記非一時的メモリに接続され、前記プロセッサ実行可能命令を実行して、請求項1から10のいずれか一項に記載の方法を促進するように構成されるプロセッサと
を備える、インター予測装置。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本発明は、2018年9月19日に出願されたインド国仮特許出願第201831035309号に対する優先権を主張する。ここで、当該インド国仮特許出願は、その全体において参照により組み込まれる。
【0002】
本発明は、デコーダ側の動きベクトルのリファインメントを用いたビデオ符号化のための動き補償に関する。特に、本発明の実施形態は、動き補償された参照パッチ間のアラインメントレベルを検証し、2つの動き補償された参照パッチ間の差が符号化ユニットサイズに依存する閾値より小さい場合、リファインメントを省略するための方法及び装置に関する。
【背景技術】
【0003】
ビデオ圧縮において、インター予測は、現在のブロックと比べた動きベクトルを特定することにより、以前にデコードされた参照ピクチャの再構築されたサンプルを用いる処理である。これらの動きベクトルは、予測残差として、空間的又は時間的な動きベクトルの予測因子を用いて符号化され得る。動きベクトルは、サブピクセル精度であり得る。再構築された整数位置の値から、参照フレーム(ピクチャ)内のサブピクセル精度のピクセル値を導出するために、補間フィルタが適用される。双予測は、2つの参照ピクチャエリアから2つの動きベクトルを用いて導出される2つの予測ブロックの重み付けされた組み合わせとして、現在のブロックの予測が導出される処理に関する。この場合、動きベクトルに加えて、2つの予測ブロックが導出される参照ピクチャに対する参照インデックスも符号化される必要がある。現在のブロックに対する動きベクトルはまた、いずれの動きベクトルの残差も符号化することなく空間的な隣接の動きベクトル及び参照インデックスが継承されるマージ処理を通じて導出され得る。空間的な隣接に加えて、以前に符号化された参照フレームの動きベクトルはまた、現在のブロックに対する参照フレームへの距離と比べた参照フレームへの距離に対処するために、動きベクトルの適切なスケーリングを有する時間的なマージオプションとして格納され、用いられる。
【0004】
図1は、テンプレートマッチングベースのデコーダ側の動きベクトルの導出を示し、現在のブロックのテンプレートは、参照ピクチャ内の参照テンプレートと一致する。図1を参照すると、テンプレートマッチングは、現在のピクチャ(「Cur Pic」として示される)内のテンプレート(上側及び/又は左側の隣接ブロック)と、参照ピクチャ(「Ref0」として示される)内のテンプレートのブロックと同じサイズを有するブロックとの間での最も近い一致を見つけることにより、現在の符号化ユニット(CU)の動き情報を導出するために採用される。
【0005】
図2は、バイラテラルマッチングベースのデコーダ側の動きベクトルの導出を示し、現在のブロックは、動きの軌跡に沿って、2つの参照ブロックを用いて予測される。図2を参照すると、現在のブロック(「Cur block」として示される)の動き情報は、2つの参照ピクチャRef0及びRef1に基づいて導出される。現在のブロックCur blockの動き情報は、参照ピクチャRef0及びRef1内の動きの軌跡に沿う動きベクトルMV0及びMV1と関連付けられる2つのブロック間の最良のマッチングを見つけることにより導出される。動きの軌跡が直線である場合、参照ピクチャRef0と関連付けられる動きベクトルMV0、及び、参照ピクチャRef1と関連付けられる動きベクトルMV1は、現在のピクチャとそれぞれの参照ピクチャRef0及びRef1との間の時間的距離TD0及びTD1に比例する。
【0006】
動きベクトルの残差を符号化したビットをさらに削減できるようにデコーダ側の動きベクトルのリファインメント又は導出を実行するために、いくつかの方法が提案されてきた。テンプレートマッチング(TM)方法と呼ばれる方法の1つのクラスは、(図1に示されるように)テンプレートと称される既に再構築されている現在のブロックに隣接するL字形状の領域を用い、複数の適切にスケーリングされた空間的及び時間的な動きベクトルの候補を用いて、各参照フレームにおいて最も一致するL字形状の領域を(差分絶対値和又は平均値が除去された差分絶対値和などのコスト関数を用いて)識別する。そして、最も一致する候補を中心に、その中心の周りの特定のリファインメント距離内で、さらなるリファインメントが実行される。エンコーダ側では、片予測(すなわち、最も一致する参照を用いた予測)、又は、双予測(すなわち、上位2つの最も一致する参照を平均化することにより導出された予測)を判定するために、レート歪み最適化コストが計算される。
【0007】
バイラテラルマッチング(BM)方法と呼ばれる方法の別のクラスは、2つの異なる参照ピクチャ内の現在の符号化ユニット(CU)の動きの軌跡に沿う2つのブロック間で最も近い一致を見つけることにより、現在のCUの動き情報を導出する。これは、図2に示されている。連続的な動きの軌跡という仮定のもと、2つの参照ブロックを指す動きベクトルMV0及びMV1は、現在のピクチャと2つの参照ピクチャとの間の時間的距離、すなわち、TD0及びTD1に比例するものとする。現在のピクチャが時間的に2つの参照ピクチャ間にあり、かつ、現在のピクチャから2つの参照ピクチャまでの時間的距離が同じである場合、バイラテラルマッチングは、ミラーベースの双方向動きベクトル(MV)となる。
【0008】
バイラテラルマッチングマージモードでは、2つの異なる参照ピクチャにおける現在のCUの動きの軌跡に沿う2つのブロック間の最も近い一致に基づいて、CUの動き情報が導出されるので、双予測が常に適用される。
【0009】
テンプレートマッチングマージ又はバイラテラルマッチングマージを示す明示的なマージモードは、デコーダ側の動きベクトルの導出を全く必要としないデフォルトのマージモードからこれらのモードを区別するためにシグナリングされ得る。
【0010】
バイラテラルマッチングモードでは、時間的距離が無視され、過去及び将来の参照フレーム内のそれぞれの等しい及び反対の動きベクトルを用いてバイラテラルマッチングが実行される。
【0011】
いくつかの場合において、マージインデックスがシグナリングされることはないが、他の場合では、複数の動き補償を実行することについてのデコーダの複雑性を簡単にするために、明示的なマージインデックスがシグナリングされる。
【0012】
デコーダ側の動きベクトルのリファインメント(DMVR)方法と呼ばれるバイラテラルマッチングモードの変形では、まず、明示的にシグナリングされたマージインデックスから取得された参照リストL0及びL1内の予測ブロックを用いて、双方で平均化されたテンプレートが作成され、このテンプレートに対して、バイラテラルマッチングが実行される。当該テンプレートは、何らかの動きがある場合に更新される。また、いくつかの場合において、リファインメントが一方の参照において実行され、このリファインされた動きベクトルのミラーリングを通じて、他の参照における動きベクトルが取得される。リファインメントは、中心位置が最小のエラーを有する、又は、反復の最高回数に達する、のいずれかまで、2つの参照間で交互に行う。
【0013】
いくつかのリファインメント処理では、まず、CUレベルのリファインメントが実行される。次に、候補としてのCUレベルのリファインされたMVと共に、サブCUレベルの複数候補の評価が実行される。他のリファインメント処理では、各サブCUは、最も一致する候補に関して独自のリファインメントを実行できる。
【0014】
暗黙的なデコーダ側の導出又はリファインメント処理を考慮すると、エンコーダ側の再構築がデコーダ側の再構築と一致させるために、エンコーダは、デコーダと厳密に同じ方式でこれらの段階を実行する必要がある。
【0015】
通常、デコーダ側の動きベクトルのリファインメント又は導出処理中、輝度サンプルのみが用いられる。しかしながら、輝度の動き補償に対して用いられるように、(任意のクロマダウンサンプリングを構成するために、適切にスケーリングされた)最終的なリファインメント動きベクトルを用いて、クロミナンスも動き補償される。
【0016】
マージ動きベクトルがサブピクセル精度であるので、通常、リファインメントは、各参照内のそれぞれのサブピクセル精度のマージ動きベクトルからの整数距離で最初に実行される。標準的な動き補償は計算的に高額であるので、一般的には、整数距離のリファインメントを実行するために必要とされる補間されたサンプル値を作成するために、双線形補間方法が用いられる。他の従来技術では、リファインメントが終了した場合に、整数距離の位置において評価されたコスト関数の値、及び、最低コストを有する位置におけるコスト関数の値を用いて、サブピクセルデルタ動きベクトルの補正が推定されるものを用いてパラメトリックなエラー表面を取得するという提案が行われていた。各参照において、最終の整数距離に加えてサブピクセル距離ベースの動きベクトルの補正が取得されると、最終の標準的な動き補償が実行される。
【発明の概要】
【0017】
本発明の実施形態は、予め定められた符号化ユニットサイズに依存する閾値に対して動き補償された参照パッチ間のアラインメントのレベルを判定するための方法及び装置に関する。予め定められた符号化ユニットサイズに依存する閾値に対して動き補償された参照パッチ間のアラインメントレベルを判定することにより、デコーダ側の動きベクトルのリファインメントの反復のコンピュータ演算を節約できるので、それにより、ビデオデコーダ内の電力消費を減らすことができる。
【0018】
動きベクトルのリファインメント段階を削減するために、動き補償された参照パッチ間のアラインメントレベルを判定する方法及び装置が提供される。一方法によれば、ビデオデコーダは、マージ動きベクトルに丸め処理を行うことによりアラインメントレベルを判定し、丸め処理が行われた動きベクトルを用いて単純な動き補償を実行することにより2つの動き補償された参照パッチ間の差分絶対値和(SAD)を算出し、SADがCUサイズに依存する閾値より小さいか否かを判定する。SADがCUサイズに依存する閾値より小さい場合、デコーダは、残りのデコーダ側の動きベクトルの処理段階を省略し、丸め処理が行われていないマージ動きベクトルを用いて最終的な動き補償を実行する。一実施形態において、丸め処理が行われていないマージ動きベクトルは、横方向及び縦方向において最も近い整数サンプルの位置に対して丸め処理が行われてよく、最終的な動き補償は、整数位置のサンプルの平均化を実行することを含む。別の実施形態において、丸め処理が行われていないマージ動きベクトルは、半ピクセルの位置サンプルを取得するために、横方向及び縦方向において最も近い半ピクセルサンプルの位置に対して丸め処理が行われてよく、最終的な動き補償は、半ピクセルの位置サンプルの平均化を実行することを含む。方法は、SADが予め定められた閾値よりも小さいときはいつでも、ビデオデコーダは、動き補償された参照パッチ間のアラインメントレベルが許容可能であると判定し、ビデオデコーダは、動きベクトルのリファインメント処理、例えば、双線形補間、平均値の判定、リファインメントコスト関数の評価及び他の処理段階を省略して、クロックサイクルを節約し、電力消費を減らすことができるという点で有利である。別の方法において、ビデオデコーダは、サブピクセル精度のマージ動きベクトルを用いた双線形動き補償された補間からのサンプルのサブセットを用いて、2つの動き補償された参照パッチ間のSADを算出する。次に、SADは、符号化ユニット(CU)サイズに依存する閾値と比較される。符号化ユニットサイズに依存する閾値のビットデプスは、補間されたサンプルのビットデプスにしたがって調整され得る。補間されたサンプルのサブセットを用いてSADのみを計算することにより、方法は、有利なことに、必要とされる演算(クロックサイクル)がより少ない。さらに別の方法において、デコーダは、動き補償された参照パッチのそれぞれの中心位置にある動き補償されて補間されたサンプル間の平均値が削減されたSAD(MR-SAD)を算出し、MR-SADがCUサイズに依存する閾値より小さいか否かを判定する。この方法では、2つの動き補償された参照パッチの中心位置のMR-SADは、リファインメントが始まる場合に計算される。中心位置に対するMR-SADがCUサイズに依存する閾値より小さい場合、ビデオデコーダは、デコーダ側の動きベクトルのリファインメント処理の残りを省略する。インター予測方法は、マージモードの初期の動きベクトルに基づいて、第1の動き補償された参照パッチ及び第2の動き補償された参照パッチを取得する段階と、第1の動き補償された参照パッチと第2の動き補償された参照パッチとの間のパッチ差分値を計算する段階と、パッチ差分値が閾値より小さい場合、初期の動きベクトルに基づいて現在のブロックの予測値を取得する段階であって、閾値は、現在のブロックのサイズに基づいて判定される、段階と、パッチ差分値が閾値よりも大きい又は閾値と等しい場合、初期の動きベクトルをリファインして、現在のブロックの予測値を取得する段階とを備える。実現可能な実施例において、初期の動きベクトルは、現在のブロックの隣接ブロックの動きベクトルから導出される。実現可能な実施例において、初期の動きベクトルは、第1の動きベクトル及び第2の動きベクトルを有し、第1の動き補償された参照パッチは、第1の動きベクトルにしたがって取得され、第2の動き補償された参照パッチは、第2の動きベクトルにしたがって取得される。実現可能な実施例において、パッチ差分値は、SAD値又は平均値が削減されたSAD値である。実現可能な実施例において、第1の動き補償された参照パッチと第2の動き補償された参照パッチとの間のパッチ差分値を計算する段階は、第1の動き補償された参照パッチのサブセットサンプルと、第2の動き補償された参照パッチの対応するサブセットサンプルとの間のパッチ差分値を計算する段階を有する。実現可能な実施例において、第1の動き補償された参照パッチと第2の動き補償された参照パッチとの間のパッチ差分値を計算する段階の後に、パッチ差分値及び閾値に基づいて比較を実行する段階をさらに備える。実現可能な実施例において、パッチ差分値及び閾値に基づいて比較を実行する段階の前に、現在のブロックのサイズにしたがって閾値を判定した後に閾値を調整する段階をさらに備える。実現可能な実施例において、パッチ差分値が閾値より小さい場合、初期の動きベクトルに基づいて現在のブロックの予測値を取得する段階の前に、デコーダ側の動きベクトルのリファインメント(DMVR)が省略されると判定する段階をさらに備える。実現可能な実施例において、パッチ差分値が閾値より小さい場合、初期の動きベクトルと同じである動きベクトルを用いて、現在のブロックの予測値を取得する。インター予測装置は、非一時的メモリであって、これに格納されるプロセッサ実行可能命令を有するメモリと、メモリに接続され、プロセッサ実行可能命令を実行して、上記のインター予測方法の実現可能な実施例のいずれか一つに係る方法を促進するように構成されるプロセッサとを備える。これらの新規な技術は、動きベクトルのリファインメントの相当な数の反復を節約することにより、クロックサイクルの数、及び、ビデオデコーダの電力消費を減らす。
【図面の簡単な説明】
【0019】
図1】テンプレートマッチングベースのデコーダ側の動きベクトルの導出を示し、現在のブロックのテンプレートは、参照ピクチャ内の参照テンプレートと一致する。
【0020】
図2】バイラテラルマッチングベースのデコーダ側の動きベクトルの導出を示し、現在のブロックは、動きの軌跡に沿う2つの参照ブロックを用いて予測される。
【0021】
図3】バイラテラルテンプレートマッチングベースのデコーダ側の動きベクトルのリファインメント(DMVR)の例を示し、テンプレートは、更新された動きベクトルMV0'及びMV1'によって参照される最も一致するブロックを見つけるために、初期の動きベクトルMV0及びMV1及びバイラテラルテンプレートマッチングによって参照される予測ブロックから双予測を用いて生成される。
【0022】
図4】本発明の実施形態に係る動き補償された参照パッチ間のアラインメントレベルを判定するための方法を図示する簡略フローチャートであり、リファインメント処理段階の条件付きの省略は、丸め処理された整数位置ベースのコスト関数に基づいている。
【0023】
図5】本発明の実施形態に係る動き補償されたパッチ間のアラインメントレベルのデコーダ側の検証、チェック又は判定を用いる方法の簡略フローチャートを示し、リファインメント処理段階の条件付きの省略は、動き補償されて補間されたサンプルのサブセットを用いた2つの動き補償された参照パッチ間の差分絶対値和に基づいている。
【0024】
図6】本発明の実施形態に係る動き補償されたパッチ間のアラインメントレベルのデコーダ側の検証、チェック又は判定を用いる方法の簡略フローチャートを示し、リファインメント処理段階の条件付きの省略は、動き補償された参照パッチのそれぞれの中心位置にある動き補償されて補間されたサンプル間の平均値が削減された差分絶対値和に基づいている。
【0025】
図7】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
【0026】
図8】端末デバイスの例の構造を示すブロック図である。
【発明を実施するための形態】
【0027】
本発明は、VCEGのQ16とMPEG(SC29/WG11)との間のジョイントワークであるJoint Video Exploration Team内のJoint Exploratory Model(JEM)として以前から追及されていた多用途ビデオ符号化規格に関する。デコーダ側の動きベクトルのリファインメント及びデコーダ側の動きベクトルの導出に関する文書JVET-G1001及び他のホアウェイ社の従来技術は、本発明に関連する寄稿文書及び特許のリストを取得するために用いられ得る。
【0028】
上記で説明したように、バイラテラルマッチング演算は、双予測に関連する2つの参照内の動き補償されたブロック間のアラインメントのレベルを改善しようとする。追加のフラグを符号化することを避けるために、好ましいオプションは、デコーダ側の動きベクトルのリファインメントにふさわしいすべてのマージモードのインター符号化された符号化ユニットに対するものである。しかしながら、非常に良好な数の符号化ユニットは、マージモードの動きベクトルにおいて既に非常に良好なアラインメントを有しており、リファインメントを通じて改善の余地が全くないことに気づく。リファインメントは、リファインメントの範囲内で複数の位置におけるコスト関数の評価を実行することを伴うので、より良好なバッテリ寿命又は低消費エネルギーなどの属性に転換できる平均的なデコーダの複雑性の大幅な削減を結果としてもたらすことができるような改善が見込まれない場合、これらの演算を回避する。いくつかの従来技術の方法では、双予測マージモード符号化ユニット内のマージ動きベクトルから取得された2つの標準的な動き補償されたパッチ間のアラインメントのレベルが各符号化ユニットサイズに対する予め定められた閾値より小さい場合、リファインメントを省略することが提案されてきた。しかしながら、一般に、双線形補間がリファインメントを実行するために用いられるサンプルを作成するために採用されているという事実を考慮すると、従来技術では、依然として、リファインメントを省略できるか否かをチェックするために標準的な動き補償、リファインメントを実行するための双線形補間、及び、サブピクセルの精度がリファインされた動きベクトルを用いた最終の標準的な動き補償を必要としている。標準的な8タップ補間フィルタは計算的に非常に高額であるので、補間フィルタリングを2回実行することは、リファインメントを省略するためのテストを行わないよりも、最悪のケースの複雑性を高くする。また、ハードウェアタイミングの視点から、差分絶対値和の評価が、リファインメントが利用可能なクロックを減らす従属ステージを加える。
【0029】
したがって、(リファインされた動きベクトルを用いた最終的な正確な動き補償を伴う双線形補間ベースのリファインメントと比較される場合)補間サイクルを増やすことなく、かつ、ハードウェア実装に対する最悪のケースのタイミング制約を悪化させることなく、リファインメントの反復を省略することをチェックするコンセプトを調和させる必要がある。
【0030】
動きベクトル(MV)リファインメントは、バイラテラルマッチングコスト又はテンプレートマッチングコストの基準を有するパターンベースのMV探索である。最近の動向では、無制限中心バイアスダイアモンド探索(UCBDS)と、CUレベル及びサブCUレベルのそれぞれにおけるMVリファインメントに対する適応クロス探索という2つの探索パターンがサポートされている。CU及びサブCUレベルのMVリファインメントの両方について、MVは、1/4輝度サンプルMV精度で直接検索され、これは、1/8輝度サンプルMVリファインメントに従う。CU及びサブCU段階に対するMVリファインメント探索範囲は、8個の輝度サンプルと等しく設定される。
【0031】
双予測演算において、1つのブロック領域の予測について、リスト0のMV及びリスト1のMVを用いてそれぞれ形成される2つの予測ブロックは、単一の予測信号を形成するために組み合わせられる。デコーダ側の動きベクトルのリファインメント(DMVR)方法において、双予測の2つの動きベクトルは、さらに、バイラテラルテンプレートマッチング処理によりリファインされる。デコーダに適用されるバイラテラルテンプレートマッチングは、追加の動き情報を伝送することなく、リファインされたMVを取得するために、バイラテラルテンプレートと参照ピクチャ内の再構築サンプルとの間の歪みベースの探索を実行する。
【0032】
図3は、バイラテラルテンプレートマッチングベースのデコーダ側の動きベクトルのリファインメント(DMVR)の例を示し、テンプレートは、更新されたMV0'及びMV1'によって参照される最も一致するブロックを見つけるために、初期のMV0及びMV1及びバイラテラルテンプレートマッチングによって参照される予測ブロックからの双予測を用いて生成される。まず、リスト0内の候補のMV0となるように、マージモードで、現在のブロックに対して最も一致するMVが設定される。同様に、リスト1内の候補のMVとなるように、(マージモードで)現在のブロックに対して最も一致するMVが設定される。次に、参照ピクセルは、テンプレートを形成するために平均化される。次に、テンプレートを用いて、第1及び第2の参照ピクチャの候補のMVの周囲の領域が検索され、最低コストを有するMVが最終的なMVであると判定される。テンプレート内の各ピクセルと、検索された領域内の各ピクセルとの間の差の和を用いて、コスト値が算出されてよい。図3を参照すると、段階1において、バイラテラルテンプレートは、リスト0及びリスト1内のそれぞれの参照ブロックにおける初期の動きベクトルMV0及びMV1により参照される予測ブロックから生成される。
【0033】
段階2において、バイラテラルマッチングは、更新された動きベクトルMV0'及びMV1'によって参照される最も一致するブロックを見つけることである。テンプレートマッチング演算は、生成されたテンプレートと、参照ピクチャ内の(初期の予測ブロックの周りにある)サンプル領域との間のコスト測定を算出する工程を含む。2つの参照ピクチャのそれぞれについて、最小のテンプレートコストを生じるMVは、元のMVを置換えるために、そのリストの更新されたMVとみなされる。最近の動向では、9個のMVの候補がリストごとに検索される。9個のMVの候補は、元のMVと、横又は縦方向のいずれか、又は、両方において元のMVに対してオフセットされた1つの輝度サンプルを有する8個の周囲MVとを含む。最後に、最終的な双予測結果を生成するために、2つの新たなMV、すなわち、MV0'及びMV1'が用いられる。コスト測定として、差分絶対値和(SAD)が用いられる。DMVRは、追加の構文要素を伝送することなく、過去の参照ピクチャからの一方のMVと、将来の参照ピクチャからの他方を用いた双予測のマージモードに適用される。
【0034】
様々な実施形態において、予め定められた符号化ユニットサイズに依存する閾値に対して、2つの動き補償された参照パッチ間の差が比較又は測定され、比較又は測定結果に基づいて、リファインメントが省略される。2つの動き補償された参照パッチ間の差は、事前補間サンプルを用いる、又は、双線形補間されたサンプルのサブセットを用いる、のいずれかで実行される。また、いくつかの実施形態において、パッチの平均値が除去された差分絶対値和(MR-SAD)は、リファインメントに対するエラー測定基準として用いられてよく、パッチの単純な差分絶対値和は、平均に対する平均値の計算を節約することを可能にし、最悪のケースのタイミング要件に役立てるために、省略チェックが実行される測定基準として用いられてよい。予め定められた閾値は、バッファサイズ及び処理要件を減らすために、補間中又はその後に採用され得る下位ビットデプスに適合される。
【0035】
デコーダ側の動きベクトルのリファインメント/導出が符号化システムの標準的な態様であることを考慮すると、エンコーダの再構築とデコーダの再構築との間にドリフトがないようにするために、エンコーダも同じエラー表面技術を実行しなければならい。したがって、エンコーディング及びデコーディングシステムの両方に対して、すべての実施形態のすべての態様が適用可能である。以下に提供される実施形態は、本開示を理解するための一部の例に過ぎず、したがって、制限することを意図しているものとして理解されるべきでない。
【0036】
実施形態1
【0037】
本実施形態において、マージ動きベクトルは、最も近い整数位置に対して丸め処理が行われる。双予測に対して用いられる2つの参照内の現在の符号化ユニットの位置に関するオフセットとして整数グリッドの動きベクトルに丸め処理が行われるこれらを用いて、符号化ユニットサイズのサンプルのブロック間の差分絶対値和(SAD)が計算される。この差分絶対値和は、符号化ユニット(CU)サイズに依存する閾値と比較され、差分絶対値和が閾値より小さい場合、デコーダ側の動きベクトルのリファインメント処理段階の残り(the rest)又は残り(the remaining)は、規範的に省略される。
【0038】
適切に予め定められたCUサイズに依存する閾値は、高い閾値での圧縮ゲインの低下とトレードオフされる所望の平均的な計算の節約又は省エネルギーに基づいて判定される。
【0039】
図4は、本発明の実施形態に係る動き補償されたパッチ間のアラインメントレベルについてのデコーダ側の検証又は判定を用いる方法の簡略フローチャートであり、残りのリファインメント処理段階の条件付きの省略は、丸め処理された整数位置ベースのコスト関数に基づいている。フローチャートに示される段階は、エンコーダ側又はデコーダ側における1つ又は複数のプロセッサ上の実行可能なプログラムコード又は命令として実装され得る。フローチャートに示される段階は、電子コンポーネント、デジタル及び/又はアナログ回路、ロジックエレメント、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを用いて実装され得る。方法は、段階401において、ビデオデコーダ(ビデオデコーダ及びデコーダは本明細書において互換的に用いられる)が、2つの動き補償された参照パッチ間の丸め処理が行われていないマージ動きベクトルを取得する段階を含んでよい。パッチは、M×Nピクセルの現在のブロックの予め定められたサイズを有し、M及びNはそれぞれ正の整数である。いくつかの実施形態において、MはNと等しくてよい。他の実施形態において、M及びNは異なっていてよい。パッチは、予測ユニット又は符号化ユニットであってよく、ピクチャ(フレーム)内のサンプルのブロックと称される。丸め処理が行われていないマージ動きベクトルは、バイラテラルマッチング、テンプレートマッチング又は他の技術を用いて取得され得る。丸め処理が行われていないマージ動きベクトルは、整数ピクセル精度又は分数ピクセル精度を有するマージ動きベクトルであり得る。段階402において、デコーダは、丸め処理が行われていないマージ動きベクトルに丸め処理を行って、丸め処理が行われた動きベクトルを取得する。丸め処理を行う工程は、丸め処理が行われていない動きベクトルを整数ピクセル精度の動きベクトルに変換すること、又は、動きベクトルのピクセル精度を下げることを含み得る。例えば、分数精度の動きベクトルは、整数ピクセル精度の動きベクトルに対して丸め処理が行われ得る。丸め処理を行う工程は、1つ又は複数のビット分、ベクトル値を右にシフトすることを含んでよい。一実施形態において、ビデオデコーダは、最も近い整数サンプルの位置に対する丸め処理が行われていないマージ動きベクトルに丸め処理を行ってよい。別の実施形態において、ビデオデコーダは、最も近い半ピクセルサンプルの位置に対する丸め処理が行われていないマージ動きベクトルに丸め処理を行ってよい。
【0040】
段階403において、ビデオデコーダは、丸め処理が行われた動きベクトルを用いて単純な動き補償を実行することにより、2つの動き補償された参照パッチ間の差分絶対値和(SAD)を計算(算出)する。それぞれの参照ピクチャRef0、Ref1における差の和SAD(第1のパッチ、第2のパッチ)は、それぞれの探索空間における最良のテンプレートマッチングを判定するためのコスト関数である。段階404において、デコーダは、符号化ユニット(CU)サイズに依存する閾値とSADを比較して、SADがCUサイズに依存する閾値より小さいか、又は、これより小さくないか(すなわち、CUサイズに依存する閾値と等しいか、又は、これより大きいか)を判定する。SADがCUサイズに依存する閾値より小さいと判定された場合(段階405における「はい」)、デコーダは、デコーダ側の動きベクトルのリファインメント(DMVR)処理段階を省略し(段階406)、丸め処理が行われていないマージ動きベクトルを用いて最終的な動き補償を実行する(段階408)。SADがCUサイズに依存する閾値より小さくないと判定された場合(段階405における「いいえ」)、デコーダは、デコーダ側の動きベクトルのリファインメント(DMVR)処理段階を実行し(段階407)、次に、最終的な動き補償を実行する(段階408)。デコーダは、現在のブロックと厳密に一致する探索窓内の参照ブロックに基づいて動きベクトルの候補をリファインしてよく、すなわち、デコーダは、SADがCUサイズに依存する閾値より小さくない場合、現在のブロックに対する新たな補間された動きベクトルを(例えば、双線形補間を用いて)判定してよく、その後、デコーダは、次に、現在のブロックに対する最終的な動き補償を実行する。一実施形態において、最終的な動き補償を実行する段階は、横方向及び縦方向において最も近い整数サンプルの位置に対する丸め処理が行われていないマージ動きベクトルに丸め処理を行って、整数位置のサンプルを取得し、整数位置のサンプルに対して平均化演算を実行する段階を含んでよい。別の実施形態において、最終的な動き補償を実行する段階は、横方向及び縦方向において最も近い半ピクセルサンプルの位置に対する丸め処理が行われていないマージ動きベクトルに丸め処理を行って、半ピクセルの位置サンプルを取得する段階と、半ピクセルの位置サンプルに対して平均化演算を実行する段階とを含んでよい。
【0041】
評価される測定基準は閾値より小さいときはいつでも、異なる位置における双線形補間、平均値の判定及びリファインメントコスト関数の評価などのデコーダ側の動きベクトルのリファインメントについての他の態様のすべてを省略でき、最終の標準的な動き補償を実行できるという点で、本実施形態は、他の利点の中でも有利である。ハードウェア実装では、いくつかの実施形態において、リファインメントを省略してタイミング制約を改善する(すなわち、リファインメントのタスクを実行するために、より多くの時間又はクロックサイクルを取得する)ために、測定基準の評価と並行して双線形補間を投機的に実行することが可能であることに留意されたい。
【0042】
実施形態2
【0043】
本実施形態において、デコーダは、サブピクセル精度のマージ動きベクトルを用いて実行される双線形動き補償された補間からのサンプルのサブセットを用いて、双予測に関する2つの参照内の動き補償されたパッチ間の差分絶対値和を計算する。次に、この差分絶対値和は、予め定められた符号化ユニットサイズに依存する閾値と比較され、差分絶対値和が閾値より小さいとデコーダが判定した場合、リファインメント段階の残りは規範的に省略される。
【0044】
1つの例示的な実施例において、双線形動き補償された補間は、参照パッチの両方において並行して(同時に)実行される。別の実施形態において、2つの参照にわたる補間されたサンプルの生成がインターリーブされる。これらの両方の場合において、差分絶対値和の算出は、有利なことに、生成されるすべての補間されたサンプルを待機させるよりはむしろ、できるだけ早い時間において計算される。この処理はまた、補間されたサンプルを再度ロードすることを避ける。これにより、ハードウェアのレイテンシを減らし、最悪のケース経路に必要とされる残りのリファインメントの計算を実行するのに利用可能な時間を改善する。
【0045】
いくつかの実施例において、差分絶対値和を計算するために、符号化ユニットの次元と等しい次元(サイズ)を有するサンプルのブロックが用いられる。そのような実施形態では、差分絶対値和が閾値より小さいと判定された場合、中心位置以外のリファインメント位置に対して必要とされる補間されたサンプルの計算が省略され得る。他の実施形態において、補間されたサンプルのサブセットのみが差分絶対値和を計算するために利用される。これらの場合、予め定められた閾値は、差分絶対値和に対して用いられるサンプル数の関数となるように修正される。差分絶対値和が閾値より小さいとデコーダが判定した場合、残りの補間も省略できる。一実施形態では、補間されたサンプルのサブセットは、一実施形態における(coding_unit_width-2)×(coding_unit_height-2)サンプルとすることができる。別の実施形態では、補間されたサンプルのサブセットは、別の実施形態における(coding_unit_width×coding_unit_height-(coding_unit_width-2)×(coding_unit_height-2))サンプルとすることができ、coding_unit_widthは符号化ユニットの幅であり、coding_unit_heightは符号化ユニットの高さである。
【0046】
双線形補間が補間されたサンプルのビットデプスを制約する場合、補間されたサンプルの制約されていないビットデプスにおいて導出される閾値をシフトダウンすることによって、予め定められた閾値もそれにしたがって調整される。
【0047】
図5は、本発明の実施形態に係る動き補償されたパッチ間のアラインメントレベルについてのデコーダ側の検証、チェック又は判定を用いる方法の簡略フローチャートを示し、デコーダ側の動きベクトルのリファインメント処理段階の条件付きの省略は、双線形動き補償されて補間されたサンプルのサブセットに基づいている。フローチャートに示される段階は、エンコーダ側又はデコーダ側における1つ又は複数のプロセッサ上の実行可能なプログラムコード又は命令として実装され得る。フローチャートに示される段階はまた、電子コンポーネント、デジタル及び/又はアナログ回路、ロジックエレメント、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを用いて実装され得る。方法は、段階501において、ビデオデコーダが、2つの動き補償された参照パッチ間の丸め処理が行われていないマージ動きベクトルを取得することを含んでよい。パッチは、M×Nピクセルの現在のブロックの予め定められたサイズを有し、M及びNはそれぞれ正の整数である。いくつかの実施形態において、M及びNは同じであってよい。他の実施形態において、M及びNは異なっていてよい。丸め処理が行われていないマージ動きベクトルは、バイラテラルマッチング、テンプレートマッチング又は他の技術を用いて取得され得る。段階502において、デコーダはまた、サブピクセル精度のマージ動きベクトルに基づいて、動き補償されて補間されたサンプルを取得する。
【0048】
段階503において、デコーダは、動き補償されて補間されたサンプルのサブセットを用いて、2つの動き補償された参照パッチ間の差分絶対値和(SAD)を計算(算出)する。いくつかの実施形態において、SADは、補間処理と並行して、又は、同時に並行して計算され得る。段階504において、デコーダは、符号化ユニット(CU)サイズに依存する閾値とSADを比較して、SADがCUサイズに依存する閾値より小さいか、又は、これより小さくないかを判定する。一実施形態において、CUサイズに依存する閾値は、補間されたサンプルのサブセット内のサンプル数の関数である。SADがCUサイズに依存する閾値より小さいと判定された場合(段階505における「はい」)、デコーダは、デコーダ側の動きベクトルのリファインメント(DMVR)処理段階を省略し(段階506)、丸め処理が行われていないマージ動きベクトルを用いて最終的な動き補償を実行する(段階508)。SADがCUサイズに依存する閾値より小さくない(すなわち、CUサイズに依存する閾値と等しい又はこれより大きい)と判定された場合(段階505における「いいえ」)、デコーダは、丸め処理が行われていないマージ動きベクトルを用いてデコーダ側の動きベクトルのリファインメント(DMVR)処理段階を実行し(段階507)、次に、丸め処理が行われていないマージ動きベクトルを用いて、最終的な動き補償を実行する(段階508)。デコーダは、現在のブロックと厳密に一致する探索窓内の参照ブロックに基づいて動きベクトルの候補をリファインしてよく、すなわち、デコーダは、SADがCUサイズに依存する閾値より小さくない場合、現在のブロックに対する新たな補間された動きベクトルを(例えば、双線形補間を用いて)判定してよく、その後、デコーダは、次に、丸め処理が行われていないマージ動きベクトルを用いて、現在のブロックに対する最終的な動き補償を実行する。
【0049】
第2の実施形態(実施形態2)は、控え目な閾値が、依然として多くの符号化ユニットがリファインメント処理の残りの段階を省略することを可能にすることができるので、より少ない符号化ゲインの減少を可能にする。タイミングの観点から、閾値に対するSADの判定又は検証のために必要とされる差分絶対値和の演算は、双線形補間段階に対して実質的に隠すことができるので、最悪のケースのタイミング制約に影響を与えることはない。
【0050】
実施形態3
【0051】
本実施形態において、リファインメントを始める中心位置に対して計算される平均値が除去された差分絶対値和(MR-SAD)を用いて、早期終了チェック(判定)が実行される。いくつかの実施形態では、中心位置のMR-SADがまず評価されて符号化ユニットサイズに依存する閾値と比較される。中心位置に対するMR-SADが閾値より小さい場合、次に、リファインメント処理の残りが規範的に省略される。
【0052】
いくつかの実施形態において、中心位置以外の位置(例えば、第1の反復リファインメントポイント内の特定の位置)におけるMR-SAD評価が中心位置のMR-SAD評価と並行して評価され得ることが可能である。しかしながら、これら評価されたMR-SADは、中心位置のMR-SADが予め定められた閾値より小さい場合、影響がない。
【0053】
補間が補間されたサンプルのビットデプスを制約する場合、補間されたサンプルの制約されていないビットデプスにおいて導出された閾値をシフトダウンすることにより、予め定められた閾値もそれにしたがって調整される。
【0054】
図6は、本発明の実施形態に係る動き補償されたパッチ間のアラインメントレベルについてのデコーダ側の検証、チェック又は判定を用いる方法の簡略フローチャートを示し、デコーダ側の動きベクトルのリファインメント処理段階の条件付きの省略は、リファインメント開始位置の平均値が除去された差分絶対値和に基づいている。フローチャートに示される段階は、エンコーダ側又はデコーダ側における1つ又は複数のプロセッサ上の実行可能なプログラムコード又は命令として実装され得る。フローチャートに示される段階はまた、電子コンポーネント、デジタル及び/又はアナログ回路、ロジックエレメント、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを用いて実装され得る。方法は、段階602で開始してよく、ビデオデコーダは、2つの動き補償された参照パッチ間のサブピクセル精度のマージ動きベクトルに基づいて、動き補償されて補間されたサンプルを取得する。段階603において、デコーダは、リファインメントを始める中心位置に対する2つのパッチのそれぞれの平均値を計算(算出)する。デコーダはまた、中心位置に対する平均値が除去された差分絶対値和(MR-SAD)を(603において)計算する。
【0055】
604において、デコーダは、符号化ユニット(CU)サイズに依存する閾値とMR-SADを比較して、MR-SADがCUサイズに依存する閾値より小さいか、又は、これより小さくないか(CUサイズに依存する閾値と等しいか、又は、これより大きいか)を判定する。一実施形態において、CUサイズに依存する閾値は、サブピクセル精度のマージ動きベクトルのビットデプスについての関数である。MR-SADがCUサイズに依存する閾値より小さいと判定された場合(段階605における「はい」)、デコーダは、デコーダ側の動きベクトルのリファインメント(DMVR)処理段階を省略し(段階606)、マージ動きベクトルを用いて最終的な動き補償を実行する(段階608)。MR-SADがCUサイズに依存する閾値より小さくないと判定された場合(段階605における「いいえ」)、デコーダは、マージ動きベクトルを用いてデコーダ側の動きベクトルのリファインメント(DMVR)処理段階を実行し(段階607)、次に、マージ動きベクトルを用いて、最終的な動き補償を実行する(段階608)。デコーダは、現在のブロックと厳密に一致する探索窓内の参照ブロックに基づいて動きベクトルの候補をリファインしてよく、すなわち、デコーダは、MR-SADがCUサイズに依存する閾値より小さくない場合、現在のブロックに対する新たな補間された動きベクトルを(例えば、双線形補間を用いて)判定してよく、その後、デコーダは、次に、マージ動きベクトルを用いて現在のブロックに対する最終的な動き補償を実行する。
【0056】
いくつかの実施形態において、パッチの平均値を計算する段階は、対応する参照パッチ内のすべてのピクセルの輝度強度を平均化する段階を含んでよい。平均値が除去された差分絶対値和(MR-SAD)は、以下の式を用いて計算されてよい。
MR-SAD=SAD(first_sample-mean(first_patch)、second_sample-mean(second_patch))
【0057】
first_sampleは、第1の動き補償された参照パッチの中心にある第1の動き補償されて補間されたサンプルを表し、second_sampleは、第2の動き補償された参照パッチの中心にある第2の動き補償されて補間されたサンプルを表し、mean(first_block)は、first_blockのサンプル値の平均化演算を表し、mean(second_block)は、second_blockのサンプル値の平均化演算を表し、(第1、第2)パッチは、サンプルに関して(第1、第2)ブロックの幅及び高さを有してよく、SADは、第1のパッチのサンプルの値と第2のパッチのサンプルの値との絶対差の加算演算である。
【0058】
本実施形態は、そのようなチェックなしで必要とされるものに対して、リファインメントチェックの条件付きの省略を実行するために、追加の計算が生じないことを保証できる。統計的に、リファインメントの反復の計算が節約され、結果として、ソフトウェアにおける電力を節約し、平均的なサイクルを減少させることができる。
【0059】
示される上述したフローチャートは、本発明に係る動き補償されたパッチ間のアラインメントの判定、チェック又は検証についての例示的な実施形態を図示することを意図している。当業者が理解するように、本明細書で説明されるアラインメントのチェック及び判定段階は、本発明の範囲から逸脱することなく、本発明を実施するために再配置され、修正され、又は、組み合わせられてよい。
【0060】
本開示に係る実施形態は、ハードウェア回路、ソフトウェアプログラムコード、1つ又は複数のプロセッサ又はCPUにより実行可能なコンピュータ命令、又は、これらの組み合わせにおいて実装されてよい。例えば、本発明の実施形態は、本明細書で説明された段階を実行する1つ又は複数の集積回路又はデバイスであり得る。プログラムコードは、デジタル信号プロセッサ(DSP)上で実行され得る。実施形態はまた、1つ又は複数のマイクロプロセッサ、1つ又は複数のフィールドプログラマブルゲートアレイ(FPGA)により実装され得る。
【0061】
本開示に係る実施形態は、予め定められたCUサイズに依存する閾値に対して動き補償された参照パッチ(符号化ユニット、ブロック)間のアラインメントのレベルを判定するための装置を提供する。装置は、2つの動き補償された参照パッチ間の丸め処理が行われていないマージ動きベクトルを取得し、最も近い整数サンプルの位置に対する丸め処理が行われていないマージ動きベクトルに丸め処理を行って、丸め処理が行われた動きベクトルを取得し、丸め処理が行われた動きベクトルを用いて、2つの動き補償された参照パッチ間の差分絶対値和(SAD)を計算し、SADがCUサイズに依存する閾値より小さいか否かを判定するように構成される回路を含んでよい。SADがCUサイズに依存する閾値より小さい場合、装置の回路は、デコーダ側の動きベクトルのリファインメント処理の残りの段階を省略し、丸め処理が行われていないマージ動きベクトルを用いて最終的な動き補償を実行する。SADがCUサイズに依存する閾値より小さくない場合、装置の回路は、デコーダ側の動きベクトルのリファインメント処理の残りの段階を実行し、次に、丸め処理が行われていないマージ動きベクトルを用いて最終的な動き補償を実行する。
【0062】
一実施形態において、装置の回路は、丸め処理が行われた動きベクトルを用いる代わりに、動き補償されて補間されたサンプルのサブセットを用いてSADを導出する。
【0063】
一実施形態において、装置の回路は、整数ピクセルの動き探索に対して平均値が除去された差分絶対値和(MR-SAD)を計算し、CUサイズに依存する閾値とMR-SADを比較する。
【0064】
いくつかの実施形態において、装置の回路は、統合された半導体デバイス又はチップを含んでよい。他の実施形態において、回路は、ハードウェアコンポーネント又はデバイス、又は、ハードウェア及びソフトウェアの組み合わせ、例えば、命令又はプログラムコードを用いて動作可能な1つ又は複数のプロセッサ、プログラマブルデバイス、又は、DSPを含んでよい。
【0065】
以下は、上述した実施形態に示されるようなエンコーディング方法及びデコーディング方法のアプリケーション及びそれらを用いたシステムの説明である。
【0066】
図7は、コンテンツ配布サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意で、ディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上述した通信チャネル13を含んでよい。通信リンク3104は、限定されるものではないが、WIFI(登録商標)、イーサネット(登録商標)、ケーブル、無線(3G/4G/5G)、USB又はこれらの任意の種類の組み合わせなどを含む。
【0067】
キャプチャデバイス3102は、データを生成し、上記の実施形態に示されるようなエンコーディング方法により、データをエンコードしてよい。代わりに、キャプチャデバイス3102は、データをストリーミングサーバ(図には示されていない)に配信してよく、サーバは、データをエンコードして、エンコードされたデータを端末デバイス3106に伝送する。キャプチャデバイス3102は、限定されるものではないが、カメラ、スマートフォン又はパッド、コンピュータ又はラップトップ、ビデオ会議システム、PDA、車載デバイス又はこれらのいずれかの組み合わせなどを含む。例えば、上述したように、キャプチャデバイス3102は送信元デバイス12を含んでよい。データがビデオを含む場合、キャプチャデバイス3102に含まれるビデオエンコーダ20は、ビデオエンコーディング処理を実際に実行してよい。データがオーディオ(すなわち、音声)を含む場合、キャプチャデバイス3102に含まれるオーディオエンコーダは、オーディオエンコーディング処理を実際に実行してよい。いくつかの実際のシナリオについて、キャプチャデバイス3102は、これらを一緒に多重化することにより、エンコードされたビデオ及びオーディオデータを配信する。他の実際のシナリオについて、例えば、ビデオ会議システムにおいて、エンコードされたオーディオデータ及びエンコードされたビデオデータは多重化されない。キャプチャデバイス3102は、エンコードされたオーディオデータ及びエンコードされたビデオデータを別個に端末デバイス3106に配信する。
【0068】
コンテンツ供給システム3100において、端末デバイス310は、エンコードされたデータを受信及び再生する。端末デバイス3106は、データ受信及び復元機能を有するデバイス、例えば、上述したエンコードされたデータをデコーディングすることが可能なスマートフォン又はパッド3108、コンピュータ又はラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(PDA)3122、車載デバイス3124又はこれらのいずれかの組み合わせなどであってよい。例えば、上述したように、端末デバイス3106は送信先のデバイス14を含んでよい。エンコードされたデータがビデオを含む場合、端末デバイスに含まれるビデオデコーダ30は、ビデオデコーディングを実行することを優先させる。エンコードされたデータがオーディオを含む場合、端末デバイスに含まれるオーディオデコーダは、オーディオデコーディング処理を実行することを優先させる。
【0069】
ディスプレイを有する端末デバイス、例えば、スマートフォン又はパッド3108、コンピュータ又はラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、パーソナルデジタルアシスタント(PDA)3122又は車載デバイス3124について、端末デバイスは、デコードされたデータをそのディスプレイに入力できる。ディスプレイを搭載していない端末デバイス、例えば、STB3116、ビデオ会議システム3118又はビデオ監視システム3120について、外部ディスプレイ3126は、デコードされたデータを受信及び示すために、内部でコンタクトされる。
【0070】
このシステム内の各デバイスがエンコーディング又はデコーディングを実行する場合、上述した実施形態に示されるように、ピクチャエンコーディングデバイス又はピクチャデコーディングデバイスが用いられ得る。
【0071】
図8は、端末デバイス3106の例の構造を示す略図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後に、プロトコル処理ユニット3202は、ストリームの伝送プロトコルを解析する。プロトコルは、限定されるものではないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキストトランスファープロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、又は、これらの任意の種類の組み合わせなどを含む。
【0072】
プロトコル処理ユニット3202がストリームを処理した後に、ストリームファイルが生成される。当該ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化されたデータをエンコードされたオーディオデータ及びエンコードされたビデオデータに分離できる。上述したように、いくつかの実際のシナリオにつて、例えば、ビデオ会議システムでは、エンコードされたオーディオデータ及びエンコードされたビデオデータは多重化されていない。この状況において、エンコードされたデータは、逆多重化ユニット3204を通すことなく、ビデオデコーダ3206及びオーディオデコーダ3208に伝送される。
【0073】
逆多重化処理を介して、ビデオエレメンタリストリーム(ES)、オーディオES及び任意で字幕が生成される。上述した実施形態において説明したように、ビデオデコーダ30を含むビデオデコーダ3206は、上述した実施形態に示されるようなデコーディング方法により、ビデオESをデコードしてビデオフレームを生成し、このデータを同期ユニット3212に入力する。オーディオデコーダ3208は、オーディオESをデコードしてオーディオフレームを生成し、このデータを同期ユニット3212に入力する。代わりに、ビデオフレームは、それを同期ユニット3212に入力する前に、(図8には示されていない)バッファに格納されてよい。同様に、オーディオフレームは、それを同期ユニット3212に入力する前に、(図8には示されていない)バッファに格納されてよい。
【0074】
同期ユニット3212は、ビデオフレーム及びオーディオフレームを同期させて、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオ及びオーディオ情報の提示を同期させる。情報は、符号化されたオーディオ及びビジュアルデータの提示に関するタイムスタンプ、及び、データストリームそのものの配信に関するタイムスタンプを用いて構文で符号化してよい。
【0075】
ストリームに字幕が含まれている場合、字幕デコーダ3210は、字幕をデコードし、それをビデオフレーム及びオーディオフレームと同期させ、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
【0076】
本発明は、上述したシステムに限定されるものではなく、上述した実施形態におけるピクチャエンコーディングデバイス又はピクチャデコーディングデバイスのいずれが、他のシステム、例えば、自動車システムに組み込まれ得る。
図1
図2
図3
図4
図5
図6
図7
図8