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

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

▶ ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッドの特許一覧

特開2023-118810BDOFおよびPROFの方法、コンピューティングデバイス、コンピュータ可読記録媒体及びビットストリーム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023118810
(43)【公開日】2023-08-25
(54)【発明の名称】BDOFおよびPROFの方法、コンピューティングデバイス、コンピュータ可読記録媒体及びビットストリーム
(51)【国際特許分類】
   H04N 19/70 20140101AFI20230818BHJP
   H04N 19/513 20140101ALI20230818BHJP
   H04N 19/537 20140101ALI20230818BHJP
   H04N 19/577 20140101ALI20230818BHJP
【FI】
H04N19/70
H04N19/513
H04N19/537
H04N19/577
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023106015
(22)【出願日】2023-06-28
(62)【分割の表示】P 2022516449の分割
【原出願日】2020-09-17
(31)【優先権主張番号】62/901,774
(32)【優先日】2019-09-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/904,330
(32)【優先日】2019-09-23
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】シウ、シアオユイ
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】ワン、シアンリン
(72)【発明者】
【氏名】ユイ、ピン
(57)【要約】
【課題】BDOFおよびPROFの方法を提供する。
【解決手段】BDOFおよびPROFの方法は、非アフィンモードで符号化されている現在のビデオブロックについて、第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、ビデオブロックの動きリファインメントを導出するためにBDOFが適用されているとの判定に基づいて、現在のビデオブロックについて、BDOFが有効化されていることを、第1SPSレベル制御フラグがシグナリングし、アフィンモードで符号化されている現在のビデオブロックについて、第1予測サンプルおよび第2予測サンプルに基づいて、ビデオブロックの動きリファインメントを導出するためにPROFが適用されているとの判定に基づいて、現在のビデオブロックについてPROFが有効化されていることを、第2SPSレベル制御フラグがシグナリングする。
【選択図】図1
【特許請求の範囲】
【請求項1】
エンコーダが、2つのGCI(general constraint information)レベル制御フラグをシグナリングし、
前記2つのGCIレベル制御フラグは、第1GCIレベル制御フラグおよび第2GCIレベル制御フラグを含み、
前記第1GCIレベル制御フラグは、BDOFが現在のビデオシーケンスに対して有効化されるかどうかを示し、
前記第2GCIレベル制御フラグは、PROFが前記現在のビデオシーケンスに対して有効化されるかどうかを示し、
前記エンコーダが、2つのSPS(sequence parameter set)レベル制御フラグをシグナリングし、
前記2つのSPSレベル制御フラグは、第1SPSレベル制御フラグおよび第2SPSレベル制御フラグを含み、
前記第1SPSレベル制御フラグは、BDOFが現在のビデオブロックに対して有効化されているかどうかをシグナリングし、
前記第2SPSレベル制御フラグは、PROFが現在のビデオブロックに対して有効化されているかどうかをシグナリングし、
非アフィンモードで符号化されている前記現在のビデオブロックについて、第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、前記ビデオブロックの動きリファインメントを導出するためにBDOFが適用されているとの判定に基づいて、前記現在のビデオブロックについて、BDOFが有効化されていることを、前記第1SPSレベル制御フラグがシグナリングし、
アフィンモードで符号化されている前記現在のビデオブロックについて、前記第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、前記ビデオブロックの前記動きリファインメントを導出するためにPROFが適用されているとの判定に基づいて、前記現在のビデオブロックについてPROFが有効化されていることを、前記第2SPSレベル制御フラグがシグナリングする、
前記エンコーダに実装される、BDOF(bi-directional optical flow)およびPROF(prediction refinement with optical flow)の方法。
【請求項2】
前記第1GCIレベル制御フラグが前記BDOFを無効化する場合、前記第1SPSレベル制御フラグがゼロであることを要求する第1ビットストリーム適合制約を適用し、
前記第2GCIレベル制御フラグが前記PROFを無効化する場合、前記第2SPSレベル制御フラグがゼロであることを要求する第2ビットストリーム適合制約を適用する、
請求項1に記載の方法。
【請求項3】
前記第1SPSレベル制御フラグが有効化された場合、スライスヘッダの第1制御フラグをシグナリングし、
前記第1制御フラグは前記スライスヘッダのビデオブロックに対して前記BDOFが無効化されているかどうかをシグナリングし、
前記第2SPSレベル制御フラグが有効化された場合、前記スライスヘッダの第2制御フラグをシグナリングし、
前記第2制御フラグは前記スライスヘッダのビデオブロックに対して前記PROFが有効化されているかどうかをシグナリングする、
ことをさらに含む、請求項1に記載の方法。
【請求項4】
1つ以上のプロセッサと、
前記1つ以上のプロセッサに接続されたメモリと、
前記メモリに格納された複数のプログラムと、
を含むコンピューティングデバイスであって、
前記複数のプログラムは、前記1つ以上のプロセッサによって実行されると、
エンコーダが、2つのGCI(general constraint information)レベル制御フラグをシグナリングし、
前記2つのGCIレベル制御フラグは、第1GCIレベル制御フラグおよび第2GCIレベル制御フラグを含み、
前記第1GCIレベル制御フラグはBDOFが現在のビデオシーケンスに対して有効化されるかどうかを示し、
前記第2GCIレベル制御フラグはPROFが前記現在のビデオシーケンスに対して有効化されるかどうかを示し、
前記エンコーダが、2つのSPS(sequence parameter set)レベル制御フラグをシグナリングし、
前記2つのSPSレベル制御フラグは、第1SPSレベル制御フラグおよび第2SPSレベル制御フラグを含み、
前記第1SPSレベル制御フラグは、BDOFが現在のビデオブロックに対して有効化されているかどうかをシグナリングし、
前記第2SPSレベル制御フラグは、PROFが現在のビデオブロックに対して有効化されているかどうかをシグナリングし、
非アフィンモードで符号化されている前記現在のビデオブロックについて、第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、前記ビデオブロックの動きリファインメントを導出するためにBDOFが適用されているとの判定に基づいて、前記現在のビデオブロックに対してBDOFが有効化されていることを、前記第1SPSレベル制御フラグがシグナリングし、
アフィンモードで符号化されている前記現在のビデオブロックについて、前記第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、前記ビデオブロックの前記動きリファインメントを導出するためにPROFが適用されているとの判定に基づいて、前記現在のビデオブロックに対してPROFが有効化されていることを、前記第2SPSレベル制御フラグがシグナリングする、
動作を前記コンピューティングデバイスに実行させる、
コンピューティングデバイス。
【請求項5】
前記複数のプログラムは、前記1つ以上のプロセッサによって実行されると、
前記第1GCIレベル制御フラグが前記BDOFを無効化する場合、前記第1SPSレベル制御フラグがゼロであることを要求する第1ビットストリーム適合制約を適用し、
前記第2GCIレベル制御フラグが前記PROFを無効化する場合、前記第2SPSレベル制御フラグがゼロであることを要求する第2ビットストリーム適合制約を適用する、
動作を前記コンピューティングデバイスに実行させる、
請求項4に記載のコンピューティングデバイス。
【請求項6】
前記複数のプログラムは、前記1つ以上のプロセッサによって実行されると、
前記第1SPSレベル制御フラグが有効化されている場合、前記エンコーダが、スライスヘッダの第1制御フラグをシグナリングし、
前記第1制御フラグは前記スライスヘッダのビデオブロックに対して前記BDOFが無効化されているかどうかをシグナリングし、
前記第2SPSレベル制御フラグが有効化されている場合、前記スライスヘッダの第2制御フラグをシグナリングし、
前記第2制御フラグは前記スライスヘッダのビデオブロックに対して前記PROFが有効化されているかどうかをシグナリングする、
動作を前記コンピューティングデバイスに実行させる、
請求項4に記載のコンピューティングデバイス。
【請求項7】
エンコーダが、2つのGCI(general constraint information)レベル制御フラグをシグナリングし、
前記2つのGCIレベル制御フラグは、第1GCIレベル制御フラグおよび第2GCIレベル制御フラグを含み、
前記第1GCIレベル制御フラグはBDOFが現在のビデオシーケンスに対して有効化されるかどうかを示し、
前記第2GCIレベル制御フラグはPROFが前記現在のビデオシーケンスに対して有効化されるかどうかを示し、
前記エンコーダが、2つのSPS(sequence parameter set)レベル制御フラグをシグナリングし、
前記2つのSPSレベル制御フラグは、第1SPSレベル制御フラグおよび第2SPSレベル制御フラグを含み、
前記第1SPSレベル制御フラグは、前記BDOFが現在のビデオブロックに対して有効化されているかどうかをシグナリングし、
前記第2SPSレベル制御フラグは、PROFが現在のビデオブロックに対して有効化されているかどうかをシグナリングし、
非アフィンモードで符号化されている前記現在のビデオブロックについて、第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、前記ビデオブロックの動きリファインメントを導出するためにBDOFが適用されているとの判定に基づいて、前記現在のビデオブロックに対してBDOFが有効化されていることを、前記第1SPSレベル制御フラグがシグナリングし、
アフィンモードで符号化されている前記現在のビデオブロックについて、前記第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、前記ビデオブロックの前記動きリファインメントを導出するためにPROFが適用されているとの判定に基づいて、前記現在のビデオブロックに対してPROFが有効化されていることを、前記第2SPSレベル制御フラグがシグナリングする、
ことを含む動作を、符号化装置に行わせる、ビットストリームを記録する非一時的コンピュータ可読記録媒体。
【請求項8】
前記第1GCIレベル制御フラグが前記BDOFを無効化する場合、前記第1SPSレベル制御フラグがゼロであることを要求する第1ビットストリーム適合制約を適用し、
前記第2GCIレベル制御フラグが前記PROFを無効化する場合、前記第2SPSレベル制御フラグがゼロであることを要求する第2ビットストリーム適合制約を適用する、
ことを含む動作を前記符号化装置にさらに実行させる請求項7に記載の非一時的コンピュータ可読記録媒体。
【請求項9】
前記第1SPSレベル制御フラグが有効化されている場合、前記エンコーダが、スライスヘッダの第1制御フラグをシグナリングし、
前記第1制御フラグは前記スライスヘッダのビデオブロックに対して前記BDOFが無効化されているかどうかをシグナリングし、
前記第2SPSレベル制御フラグが有効化されている場合、前記エンコーダが、前記スライスヘッダの第2制御フラグをシグナリングし、
前記第2制御フラグは前記スライスヘッダのビデオブロックに対して前記PROFが有効化されているかどうかをシグナリングする、
ことを含む動作を前記符号化装置にさらに実行させる請求項7に記載の非一時的コンピュータ可読記録媒体。
【請求項10】
請求項1~請求項3のいずれか1項に記載の方法によって生成される、
ビデオデータを含む、ビットストリーム。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオ符号化および圧縮に関する。より具体的には、本開示は、VVC(versatile video coding)規格で調査される2つのインター予測ツールに関する方法および装置、すなわち、PROF(prediction refinement with optical flow)およびBDOF(bi-directional optical flow)に関する。
【背景技術】
【0002】
ビデオデータを圧縮するために、様々なビデオ符号化技術を使用することができる。ビデオ符号化は、一つ以上のビデオ符号化標準に従って実行される。例えば、ビデオ符号化規格は、VVC(versatile video coding)、JEM(joint exploration test model)、H.265/HEVC(high-efficiency video coding)、H.264/AVC(advanced video coding)、MPEG(moving picture expert group)符号化などを含む。ビデオ符号化は、一般に、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化技術の重要な目標は、ビデオ品質の劣化を回避または最小限に抑えながら、ビデオデータをより低いビットレートを使用する形式に圧縮することである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示の例は、ビデオ符号化におけるPROF(prediction refinement with optical flow)およびBDOF(bi-directional optical flow)の方法および装置を提供する。
【課題を解決するための手段】
【0004】
本開示の第1態様によれば、PROFの方法が提供される。この方法は、ビデオ信号でアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得するデコーダを含むことができる。また、デコーダは、ビデオブロックの第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平および垂直勾配値を得ることができる。デコーダはさらに、ビデオブロックの第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられた制御点動きベクトル(CPMV)に基づいて、第1および第2水平および垂直動きリファインメントを取得することができる。また、デコーダは、第1および第2水平および垂直勾配値、ならびに第1および第2水平および垂直動きリファインメントに基づいて、第1予測リファインメントΔI(0)(i,j)および第2予測リファインメントΔI(1)(i,j)を得ることができる。デコーダは、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、第1予測リファインメントΔI(0)(i,j)、第2予測リファインメントΔI(1)(i,j)、および予測パラメータに基づいて、ビデオブロックの最終予測サンプルをさらに取得することができる。予測パラメータは、重み付け予測(WP)のための重み付けおよびオフセットパラメータ、および符号化ユニット(CU)レベル重み(BCW)によるバイ予測のためのパラメータを含み得る。
【0005】
本開示の第2態様によれば、PROFの方法が提供される。この方法は、2つの一般制約情報(GCI)レベル制御フラグをシグナリングするエンコーダを含んでもよい。2つのGCIレベル制御フラグは、第1GCIレベル制御フラグおよび第2GCIレベル制御フラグを含むことができる。第1GCIレベル制御フラグは、BDOFが現在のビデオシーケンスに対して有効化されているか否かを示す。第2GCIレベル制御フラグは、PROFが現在のビデオシーケンスに対して有効化されているか否かを示す。エンコーダは、2つのシーケンスパラメータセット(SPS)レベル制御フラグをシグナリングすることもできる。2つのSPSレベル制御フラグは、現在のビデオシーケンス内の現在のビデオブロックについてBDOFおよびPROFが有効化されているかどうかをシグナリングする。非アフィンモードで符号化されている現在のビデオブロックについて第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいてビデオブロックの動きリファインメントを導出するために、BDOFが適用されているとの判定に基づいて、BDOFが現在のビデオブロックに対して有効化されていることを、第1SPSレベル制御フラグがシグナリングすることができる。アフィンモードで符号化されている現在のビデオブロックについて、第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいてビデオブロックの動きリファインメントを導出するために、PROFが適用されているとの判定に基づいて、PROFが現在のビデオブロックに対して有効化されていることを、第2SPSレベル制御フラグがシグナリングすることができる。
【0006】
本開示の第3態様によれば、コンピューティングデバイスが提供される。このコンピューティングデバイスは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリと、を含んでもよい。1つまたは複数のプロセッサは、ビデオ信号でアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得するように構成され得る。1つまたは複数のプロセッサはまた、ビデオブロックの第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平および垂直勾配値を取得するように構成され得る。1つまたは複数のプロセッサは、ビデオブロックの第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMVに基づいて、第1および第2水平および垂直動きリファインメントを取得するようにさらに構成され得る。1つまたは複数のプロセッサはまた、第1および第2水平および垂直勾配値と、第1および第2水平および垂直動きリファインメントとに基づいて、第1予測リファインメント△I(0)(i,j)および第2予測リファインメント△I(1)(i,j)を取得するように構成され得る。1つまたは複数のプロセッサは、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、第1予測リファインメント△I(0)(i,j)、第2予測リファインメント△I(1)(i,j)、および予測パラメータに基づいてビデオブロックの最終予測サンプルを取得するようにさらに構成され得る。予測パラメータは、WPのための重み付け及びオフセットパラメータと、BCWのためのパラメータとを含むことができる。
【0007】
本開示の第4態様によれば、命令を格納した非一時的コンピュータ可読記録媒体が提供される。命令が装置の1つまたは複数のプロセッサによって実行されるとき、命令は、装置に2つのGCIレベル制御フラグをシグナリングさせることができる。2つのGCIレベル制御フラグは、第1GCIレベル制御フラグおよび第2GCIレベル制御フラグを含むことができる。第1GCIレベル制御フラグは、BDOFが現在のビデオシーケンスに対して有効化されているかどうかを示す。第2GCIレベル制御フラグは、PROFが現在のビデオシーケンスに対して有効化されているかどうかを示す。命令は、装置に2つのSPSレベル制御フラグをシグナリングさせることもできる。2つのSPSレベル制御フラグは、現在のビデオシーケンスの現在のビデオブロックに対してBDOFおよびPROFが有効化されているかどうかをシグナリングする。非アフィンモードで符号化されている現在のビデオブロックについて、第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいてビデオブロックの動きリファインメントを導出するために、BDOFが適用されているとの判定に基づいて、現在のブロックに対してBDOFが有効化されていることを、第1SPSレベル制御フラグがシグナリングすることができる。アフィンモードで符号化されている現在のビデオブロックについて、第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、ビデオブロックの動きリファインメントを導出するために、PROFが適用されているとの判定に基づいて、現在のブロックに対してPROFが有効化されていることを、第2SPSレベル制御フラグがシグナリングすることができる。
【図面の簡単な説明】
【0008】
図1】本開示の一例によるエンコーダのブロック図である。
図2】本開示の一例によるデコーダのブロック図である。
図3A】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
図3B】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
図3C】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
図3D】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
図3E】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
図4】本開示の一例による、BDOF(bi-directional optical flow)モデルの図である。
図5A】本開示の一例によるアフィンモデルの図である。
図5B】本開示の一例によるアフィンモデルの図である。
図6】本開示の一例によるアフィンモデルの図である。
図7】本開示の一例による、PROF(prediction refinement with optical flow)の図である。
図8】本開示の一例による、BDOFのワークフローである。
図9】本開示の一例によるPROFのワークフローである。
図10】本開示の一例による、BDOFの方法である。
図11】本開示の一例による、BDOFおよびPROFの方法である。
図12】本開示の一例による、バイ予測のためのPROFのワークフローの図である。
図13】本開示による、BDOFおよびPROFプロセスのパイプラインステージの図である。
図14】本開示による、BDOFの勾配導出方法の図である。
図15】本開示による、PROFの勾配導出方法の図である。
図16A】本開示の一例による、アフィンモードのテンプレートサンプルを導出する図である。
図16B】本開示の一例による、アフィンモードのテンプレートサンプルを導出する図である。
図17A】本開示の一例による、アフィンモードのPROFおよびLICを排他的に有効化する図である。
図17B】本開示の一例による、アフィンモードのPROFおよびLICを共同で使用可能にする図である。
図18A】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
図18B】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
図18C】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
図18D】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
図19】本開示の一例による、ユーザインターフェースに接続されたコンピューティング環境を示す図である。
【発明を実施するための形態】
【0009】
上記の一般的な説明および以下の詳細な説明は、例示的かつ説明的なものにすぎず、本開示を限定することを意図するものではないことを理解されたい。
【0010】
本明細書に組み込まれ、その一部を構成する添付の図面は本開示と一致する例を示し、説明とともに、本開示の原理を説明する役割を果たす。
【0011】
次に、例示的な実施形態を詳細に参照し、その例を添付の図面に示す。以下の説明は添付の図面を参照し、異なる図面中の同じ番号は特に示さない限り、同じまたは類似の要素を表す。例示的な実施形態の以下の説明に記載される実装は、本開示と一致するすべての実装を表すわけではない。むしろ、それらは、添付の特許請求の範囲に記載されるように、本開示に関連する態様と一致する装置および方法の単なる例である。
【0012】
本開示で使用される用語は特定の実施形態を説明するためだけのものであり、本開示を限定することを意図するものではない。本開示および添付の特許請求の範囲で使用されるように、単数「1つの」などは文脈が沿わないことを明確に示さない限り、複数も含むことが意図される。また、本明細書で使用される「および/または」という用語は関連する列挙された項目のうちの1つまたは複数の任意のまたはすべての可能な組合せを意味し、含むことが意図されることを理解されたい。
【0013】
「第1」、「第2」、「第3」などの用語は様々な情報を説明するために本明細書で使用され得るが、情報はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、情報の1つのカテゴリを別のカテゴリから区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1情報を第2情報と呼ぶことができ、同様に、第2情報も第1情報と呼ぶことができる。本明細書で使用されるように、用語「もし~ならば」は、文脈に応じて、「~場合」または「~すると」または「判定に応答して」を意味すると理解されてもよい。
【0014】
HEVC規格の第1バージョンは2013年10月に完成し、これは、以前の世代のビデオ符号化規格H.264/MPEG AVCと比較して、約50%のビットレート節約または同等の知覚品質を提供する。HEVC規格はその先行技術よりも著しい符号化改善を提供するが、優れた符号化効率がHEVCに追加の符号化ツールを用いて達成され得るという証拠がある。これに基づき、VCEGとMPEGの両方が、将来のビデオ符号化標準化のための新しい符号化技術の探索作業を開始した。2015年10月、ITU-T VECGとISO/IEC MPEGによってJVET(Joint Video Exploration Team)が結成され、符号化効率の大幅な向上を可能にする高度な技術の重要な研究が開始された。JEM(joint exploration model)と呼ばれる1つの参照ソフトウェアは、HEVC試験モデル(HM)の上にいくつかの追加の符号化ツールを統合することによって、JVETによって維持される。
【0015】
2017年10月、ITU-T及びISO/IECは、HEVCを超えたビデオ圧縮に
関するCfP(joint call for proposals)を発表した。2018年4月には、第10回JVET会議で23のCfP回答を得て評価したところ、約40%のHEVCを超える圧縮効率の向上が示された。このような評価結果を踏まえ、JVETは、VVC(Versatile Video Coding)と呼ばれる新世代ビデオ符号化規格を開発するための新たなプロジェクトを立ち上げた。同月に、VTM(VVC test model)と呼ばれる1つの参照ソフトウェアコードベースが、VVC標準の参照実装を実証するために確立された。
【0016】
HEVCと同様に、VVCはブロックベースのハイブリッドビデオ符号化フレームワークに基づいて構築される。
【0017】
図1は、VVCのブロックベースのビデオエンコーダの一般的な図を示す。具体的には、図1は典型的なエンコーダ100を示す。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラモード/インターモード決定116、ブロック予測子140、加算器128、変換器130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、インループフィルタ122、エントロピー符号化138、およびビットストリーム144を有する。
【0018】
エンコーダ100において、ビデオフレームは、処理のために複数のビデオブロックに分割される。与えられた各ビデオブロックに対して、インター予測アプローチまたはイントラ予測アプローチのいずれかに基づいて予測が形成される。
【0019】
ビデオ入力110の一部である現在のビデオブロックと、ブロック予測子140の一部であるその予測子との間の差を表す予測残差は、加算器128から変換器130に送られる。次に、変換係数はエントロピー低減のために、変換130から量子化132に送られる。次に、量子化された係数がエントロピー符号化138に供給されて、圧縮ビデオビットストリームが生成される。図1に示すように、ビデオブロック分割情報、動きベクトル(MV)、参照ピクチャインデックス、およびイントラ予測モードなどのイントラ/インターモード決定116からの予測関連情報142もエントロピー符号化138を介して供給され、圧縮ビットストリーム144に保存される。圧縮ビットストリーム144は、ビデオビットストリームを含む。
【0020】
エンコーダ100では、予測の目的でピクセルを再構成するために、デコーダ関連の回路も必要である。まず、逆量子化134と逆変換136を通して予測残差を再構成する。この再構成された予測残差をブロック予測子140と組み合わせて、現在のビデオブロックについてフィルタ処理されていない再構成画素を生成する。
【0021】
空間予測(または「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された隣接ブロック(参照サンプルと呼ばれる)のサンプルからのピクセルを使用して、現在のビデオブロックを予測する。
【0022】
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構成ピクセルを使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間的冗長性を低減する。所与の符号化ユニット(CU)または符号化ブロックの時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1つまたは複数のMVによってシグナリングされる。さらに、複数の参照ピクチャがサポートされる場合、1つの参照ピクチャインデックスがさらに送信され、参照ピクチャインデックスは、参照ピクチャ記憶装置内のどの参照ピクチャから時間予測信号が来るかを識別するために使用される。
【0023】
動き推定114はビデオ入力110およびピクチャバッファ120からの信号を取り込み、動き推定信号を動き補償112に出力する。動き補償112はビデオ入力110、ピクチャバッファ120からの信号、および動き推定114からの動き推定信号を取り込み、動き補償信号をイントラモード/インターモード決定116に出力する。
【0024】
空間および/または時間予測が実行された後、エンコーダ100のイントラ/インターモード決定116は例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、ブロック予測子140は現在のビデオブロックから減算され、結果として生じる予測残差は変換130および量子化132を使用して相関解除される。得られた量子化残差係数は逆量子化134によって逆量子化され、逆変換136によって逆変換されて再構成された残差を形成し、次いで、予測ブロックに加算されて、CUの再構成された信号を形成する。デブロッキングフィルタ、SAO(sample adaptive offset)、および/またはALF(adaptive in-loop filter)などのさらなるインループフィルタ122を、再構成されたCUがピクチャバッファ120の参照ピクチャ記憶装置に入れられ、将来のビデオブロックを符号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリーム144を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニット138に送られ、さらに圧縮され、パックされてビットストリームを形成する。
【0025】
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を示す。入力ビデオ信号は、(CUと呼ばれる)ブロック毎に処理される。VTM-1.0では、CUは最大128×128ピクセルであることができる。しかしながら、VVCにおいて、4分木のみに基づいてブロックを分割するHEVCとは異なり、1つのCTU(coding tree unit)は、4分木/2分木/3分木に基づいて、変化するローカル特性に適応するようにCUに分割される。さらに、HEVCにおける多重分割ユニットタイプの概念は除去され、すなわち、CU、PU(prediction unit)、およびTU(transform unit)の分離はもはやVVCに存在せず、代わりに、各CUは、さらなる分割なしで、予測および変換の両方のための基本ユニットとして常に使用される。マルチタイプツリー構造では、まず、1つのCTUを4分木構造で分割する。次に、各4分木リーフノードは、2分木構造および3分木構造によってさらに分割することができる。図3A図3B図3C図3D、および図3Eに示すように、5つの分割タイプ、すなわち、4分割、水平2分割、垂直2分割、水平3分割、および垂直3分割がある。
【0026】
図3Aは、本開示による、マルチタイプツリー構造におけるブロック4分割を示す図である。
【0027】
図3Bは、本開示による、マルチタイプツリー構造におけるブロック垂直2分割を示す図である。
【0028】
図3Cは、本開示による、マルチタイプツリー構造におけるブロック水平2分割を示す図である。
【0029】
図3Dは、本開示による、マルチタイプツリー構造におけるブロック垂直3分割を示す図を示す。
【0030】
図3Eは、本開示による、マルチタイプツリー構造におけるブロック水平3分割を示す図である。
【0031】
図1では、空間予測および/または時間予測を行ってもよい。空間予測(または「イントラ予測」)は現在のビデオブロックを予測するために、同じビデオピクチャ/スライスの既に符号化された隣接ブロック(参照サンプルと呼ばれる)のサンプルからのピクセルを使用する。空間予測は、ビデオ信号に固有の空間冗長性を低減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構成されたピクセルを使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間的冗長性を低減する。所与のCUについての時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされる場合、1つの参照ピクチャインデックスがさらに送信され、参照ピクチャインデックスは、参照ピクチャストア内のどの参照ピクチャから時間予測信号が到来するかを識別するために使用される。空間および/または時間予測の後、エンコーダのモード決定ブロックは例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、予測ブロックは現在のビデオブロックから減算され、予測残差は変換を用いて非相関化され、量子化される。量子化残差係数を逆量子化し、逆変換して再構成残差を形成し、それを予測ブロックに再加算してCUの再構成信号を形成する。さらに、デブロッキングフィルタ、SAO(sample adaptive offset)およびALF(adaptive in-loop filter)などのインループフィルタリングを、再構成されたCUが参照ピクチャストアに入れられ、将来のビデオブロックを符号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニットに送られ、さらに圧縮され、パックされてビットストリームを形成する。
【0032】
図2は、VVC用のビデオデコーダの一般的なブロック図を示す。具体的には、図2は、典型的なデコーダ200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号化212、逆量子化214、逆変換216、加算器218、イントラ/インターモード選択220、イントラ予測222、メモリ230、インループフィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
【0033】
デコーダ200は、図1のエンコーダ100に存在する再構成関連部分に類似している。デコーダ200において、入力ビデオビットストリーム210は量子化された係数レベル及び予測関連情報を導出するために、エントロピー復号化212を介して最初に復号化される。次いで、量子化された係数レベルは、逆量子化214および逆変換216を介して処理され、再構成された予測残差を得る。イントラ/インターモード選択220で実施されるブロック予測機構は、復号化された予測情報に基づいて、イントラ予測222または動き補償224のいずれかを実行するように構成される。逆変換216からの再構成予測残差とブロック予測機構により生成された予測出力とを加算器218を用いて合計することにより、フィルタ処理されない再構成画素の集合が得られる。
【0034】
再構成されたブロックは参照ピクチャストアとして機能するピクチャバッファ226に格納される前に、インループフィルタ228をさらに通過することができる。ピクチャバッファ226の再構成されたビデオは、将来のビデオブロックを予測するために使用されるだけでなく、ディスプレイデバイスを駆動するために送信されてもよい。インループフィルタ228がオンになっている状況では、最終的な再構成ビデオ出力232を導出するために、これらの再構成画素に対してフィルタリング操作が行われる。
【0035】
図2は、ブロックベースのビデオデコーダの一般的なブロック図を与える。ビデオビッ
トストリームは、エントロピー復号化ユニットにおいて最初にエントロピー復号される。符号化モードおよび予測情報は予測ブロックを形成するために、空間予測ユニット(イントラ符号化されている場合)または時間予測ユニット(インター符号化されている場合)のいずれかに送られる。残差変換係数を逆量子化ユニットと逆変換ユニットに送り、残差ブロックを再構成する。次に、予測ブロックと残差ブロックとが加算される。再構成されたブロックは参照ピクチャ記憶装置に記憶される前に、インループフィルタリングをさらに行うことができる。次に、参照ピクチャストレージの再構成されたビデオはディスプレイデバイスを駆動するために送出されるとともに、将来のビデオブロックを予測するために使用される。
【0036】
一般に、VVCに適用される基本的なインター予測技法は、いくつかのモジュールがさらに拡張および/または強化されることを除いて、HEVCのものと同じに保たれる。特に、全ての先行するビデオ規格について、1つの符号化ブロックは、符号化ブロックが単一予測される場合には1つの単一MVにのみ関連付けられ、符号化ブロックがバイ予測される場合には2つのMVに関連付けられる。従来のブロックベース動き補償のこのような制限のために、小さな動きは、動き補償後もなお予測サンプル内にとどまることができ、従って、動き補償の全体効率に負の影響を与える。MVの粒度と精度の両方を改善するために、オプティカルフローに基づく2つのサンプルワイズリファインメント法、即ち、アフィンモードに対するPROF(prediction refinement with optical flow)およびBDOF(bi-directional optical flow)が、現在、VVC規格について検討されている。以下では、2つのインター符号化ツールの主な技術的側面を簡単に検討する。
【0037】
双方向オプティカルフロー(BDOF)
VVCにおいて、BDOFは、バイ予測符号化ブロックの予測サンプルを精密化するために適用される。具体的には図4に示すように、BDOFはバイ予測が使用されるときにブロックベースの動き補償予測上で実行される、サンプルワイズ動きリファインメントである。
【0038】
図4は、本開示によるBDOFモデルの図を示す。
【0039】
各4×4サブブロックの動きリファインメント(v,v)は、BDOFがサブブロックの周りの1つの6×6ウィンドウΩ内で適用された後、L0予測サンプルとL1予測サンプルとの間の差を最小化することによって計算される。具体的には(v,v)の値は以下のように導出される。
【数1】
【0040】
L字およびL字を左右反転させた記号はフロア関数であり、clip3(min、max、x)は[min、max]の範囲内の所与の値xをクリッピングする関数であり、記号>>はビットごとの右シフト演算を表し、記号<<はビットごとの左シフト演算を表し、thBDOFは不規則な局所的な動きによる伝播エラーを防止するための動きリファインメントしきい値であり、1<<max(5,bit-depth-7)に等しく、bi
t-depthは、内部ビット深度である。
【0041】
(1)では、以下の通りである。
【数2】
【0042】
、S、S、S、Sの値は以下のように計算される。
【数3】


ここで、以下の通りである。
【数4】


ここで、I(k)(i,j)は中間の高精度(すなわち、16ビット)で生成される、リストk,k=0,1内の予測信号の座標(i,j)におけるサンプル値であり、(∂I(k)/∂x)(i,j)および(∂I(k)/∂y)(i,j)は2つの隣接するサンプル間の差を直接計算することによって得られるサンプルの水平勾配および垂直勾配である。
【数5】
【0043】
(1)式で導出した動きリファインメントに基づいて、CUの最終バイ予測サンプルは以下のように、オプティカルフローモデルに基づいて動き軌道に沿ってL0/L1予測サンプルを補間することによって計算される。
【数6】


ここで、shiftおよびooffsetは、それぞれ15 - bit-depthおよび1<<(14 - bit-depth)+2・(1<<13)に等しい、バイ予測のためのL0およびL1予測信号を結合するために適用される右シフト値およびオフセット値である。上記のビット深度制御方法に基づいて、BDOFプロセス全体の中間パラメータの最大ビット深度が32ビットを超えず、乗算への最大入力が15ビット以内であること、すなわち、1つの15ビット乗算器がBDOF実施に十分であることが保証される。
【0044】
アフィンモード
HEVCでは、動き補償予測のために並進動きモデルのみを適用した。一方、現実世界では、ズームイン/ズームアウト、回転、遠近動き、および他の不規則な動きなど、多くの種類の動きがある。VVCでは、アフィン動き補償予測が各インター符号化ブロックに対して1つのフラグをシグナリングすることによって適用され、並進動きモデルまたはアフィン動きモデルがインター予測に適用されるかどうかを示す。現在のVVC設計では、4パラメータアフィンモードおよび6パラメータアフィンモードを含む2つのアフィンモードが1つのアフィン符号化ブロックに対してサポートされる。
【0045】
4パラメータアフィンモデルは以下のパラメータ、すなわち、それぞれ水平方向および垂直方向の並進動きのための2つのパラメータ、ズーム動きのための1つのパラメータ、および両方向の回転動きのための1つのパラメータを有する。水平ズームパラメータは、垂直ズームパラメータと同じである。水平回転パラメータは、垂直回転パラメータと同じである。動きベクトルおよびアフィンパラメータのより良好な適応を達成するために、VVCにおいて、これらのアフィンパラメータは、現在のブロックの左上隅および右上隅に位置する2つのMV(CPMV(control point motion vector)とも呼ばれる)に変換される。図5Aおよび図5Bに示すように、ブロックのアフィン動きフィールドは、2つの制御点MV(V、V)によって記述される。
【0046】
図5Aは、本開示による、4パラメータアフィンモデルの図を示す。
【0047】
図5Bは、本開示による4パラメータアフィンモデルの図を示す。
【0048】
制御点動きに基づいて、1つのアフィン符号化ブロックの動きフィールド(v,v)を以下のように記述する。
【数7】
【0049】
6パラメータアフィンモードは、それぞれ水平および垂直方向の並進動きのための2つのパラメータ、ズーム動きのための1つのパラメータおよび水平方向の回転動きのための1つのパラメータ、ズーム動きのための1つのパラメータおよび垂直方向の回転動きのための1つのパラメータを有する。6パラメータアフィン動きモデルは、3つのCPMVで3つのMVで符号化される。
【0050】
図6は、本開示による6パラメータアフィンモデルの図を示す。
【0051】
図6に示すように、1つの6パラメータアフィンブロックの3つの制御点は、ブロックの左上、右上、および左下のコーナーに位置する。左上の制御点での動きは並進動きに関連し、右上の制御点での動きは水平方向の回転とズーム動きに関連し、左下の制御点での動きは垂直方向の回転とズーム動きに関連する。4パラメータアフィン動きモデルと比較して、6パラメータの水平方向の回転及びズーム動きは、垂直方向の動きと同じでなくてもよい。(V、V、V)を図6の現在のブロックの左上、右上、左下のコーナーのMVと仮定すると、それぞれのサブブロックの動きベクトル(v,v)は、以下のように制御点で3つのMVを用いて導出される。
【数8】
【0052】
アフィンモードに対するオプティカルフローによる予測リファインメント
アフィン動き補償精度を改善するために、PROFを現在、オプティカルフローモデルに基づくサブブロックベースアフィン動き補償をリファインする現行VVCで検討する。具体的には、サブブロックベースのアフィン動き補償を行った後、1つのアフィンブロックの輝度予測サンプルを、オプティカルフロー方程式に基づいて導出された1つのサンプルリファインメント値によって修正する。詳細には、PROFの演算を以下の4つのステップとして要約することができる。
【0053】
ステップ1:サブブロックベースのアフィン動き補償は、4パラメータアフィンモデルについて(6)で導出され、6パラメータアフィンモデルについて(7)で導出されるようなサブブロックMVを使用してサブブロック予測I(i,j)を生成するために実行され
る。
【0054】
ステップ2:各予測サンプルの空間勾配g(i,j)およびg(i,j)は、以下のように算出される。
【数9】
【0055】
勾配を計算するために、予測サンプルの1つの追加の行/列が、1つのサブブロックの各サイドで生成される必要がある。メモリ帯域幅および複雑さを低減するために、拡張境界上のサンプルは追加の補間プロセスを回避するために、参照ピクチャ内の最も近い整数ピクセル位置からコピーされる。
【0056】
ステップ3:輝度予測リファインメント値は、以下によって算出される。
【数10】


ここで、Δv(i,j)は、v(i,j)で表されるサンプル位置(i,j)に対して計算される画素MVと、画素(i,j)が位置するサブブロックのサブブロックMVとの間の差である。さらに、現在のPROF設計では、予測リファインメントを元の予測サンプルに追加した後、リファインされた予測サンプルの値を15ビット以内にクリッピングするために、1つのクリッピング動作が実行される。
【数11】


ここで、I(i,j)およびI(i,j)は、それぞれ、位置(i,j)における元の予測サンプルおよびリファインされた予測サンプルである。
【0057】
図7は、本開示による、アフィンモードのためのPROFプロセスを示す。
【0058】
アフィンモデルパラメータとサブブロック中心に対する画素位置はサブブロック毎に変わらないので、Δv(i,j)は、最初のサブブロックに対して算出でき、同じCU内の他のサブブロックに対して再利用できる。サンプル位置(i,j)からサンプルが属するサブブロックの中心までの水平および垂直オフセットをΔxおよびΔyとし、Δv(i,j)を以下のように導出することができる。
【数12】
【0059】
アフィンサブブロックMV導出方程式(6)および(7)に基づいて、MV差Δv(i,j)を導出することができる。具体的には、4パラメータアフィンモデルでは以下の通
りである。
【数13】
【0060】
6パラメータアフィンモデルでは、以下の通りである。
【数14】


ここで、(v0x,v0y)、(v1x,v1y)、(v2x,v2y)は現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wおよびhは、ブロックの幅および高さである。既存のPROF設計では、MV差ΔvおよびΔvは常に1/32‐pelの精度で導出される。
【0061】
局所照明補償
LIC(local illumination compensation)は、時間的に隣接するピクチャ間に存在する局所照明変化の問題に対処するために使用される符号化ツールである。1対の重みおよびオフセットパラメータが参照サンプルに適用されて、1つの現在のブロックの予測サンプルが得られる。一般的な数学モデルは以下のように与えられる。
【数15】


[x+v]は動きベクトルvによって示される参照ブロックで、[α,β]は参照ブロックの対応する重みとオフセットパラメータの対であり、P[x]は最終予測ブロックである。重みおよびオフセットパラメータの対は現在のブロックのテンプレート(すなわち、隣接する再構成されたサンプル)およびテンプレートの参照ブロック(現在のブロックの動きベクトルを使用して導出される)に基づいて、LLMSE(least linear mean square error)アルゴリズムを使用して推定される。テンプレートサンプルとテンプレートの参照サンプルとの間の平均二乗差を最小化することによって、αおよびβの数学的表現は、以下のように導出することができる。
【数16】
【0062】
Iはテンプレート中のサンプルの数を表す。P[x]は現在のブロックのテンプレートのi番目のサンプルであり、P[x]は動きベクトルvに基づくi番目のテンプレートサンプルの参照サンプルである。
【0063】
各予測方向(L0またはL1)に対して多くとも1つの動きベクトルを含む通常のインターブロックに適用されることに加えて、LICは、1つの符号化ブロックが複数のより小さいサブブロックにさらに分割され、各サブブロックが異なる動き情報に関連付けられ得るアフィンモード符号化ブロックにも適用される。アフィンモード符号化ブロックのLICのための参照サンプルを導出するために、図16Aおよび16B(後述)に示すように、1つのアフィン符号化ブロックの最上位テンプレート内の参照サンプルは最上位サブブロック行内の各サブブロックの動きベクトルを使用してフェッチされ、一方、左側テンプレート内の参照サンプルは左側サブブロック列内のサブブロックの動きベクトルを使用してフェッチされる。その後、(12)に示すように、同じLLMSE導出方法を適用して、複合テンプレートに基づいてLICパラメータを導出する。
【0064】
図16Aは、本開示による、アフィンモードのためのテンプレートサンプルを導出するための図を示す。図は、Cur Frame1620およびCur CU1622を含む。Cur Frame1620は、現在のフレームである。Cur CU1622は、現在の符号化ユニットである。
【0065】
図16Bは、アフィンモードのためのテンプレートサンプルを導出するための図を示す。図は、Ref Frame1640、Col CU1642、A Ref1643、B
Ref1644、C Ref1645、D Ref1646、E Ref1647、F
Ref1648、およびG Ref1649を含む。Ref Frame1640は参照フレームである。Col CU1642は、並置された符号化ユニットである。A Ref1643、B Ref1644、C Ref1645、D Ref1646、E Ref1647、F Ref1648、G Ref1649は参照サンプルである。
【0066】
アフィンモードに対するオプティカルフローによる予測リファインメントの非効率性
PROFはアフィンモードの符号化効率を高めることができるが、その設計はまだ更に改善できる。特に、PROFとBDOFの両方がオプティカルフローコンセプトに基づいて構築されることを考えると、PROFがハードウェアの実装を容易にするためにBDOFの現存する論理を最大限に活用できるように、PROFとBDOFの設計をできるだけ調和させることが非常に望ましい。このような考察に基づいて、現在のPROF設計とBDOF設計との間のインタラクションに関する以下の非効率性が、本開示で識別される。
【0067】
第1に、式(8)の「アフィンモードに対するオプティカルフローによる予測リファインメント」の項で述べたように、勾配の精度は内部ビット深度に基づいて決定される。一方、MV差、すなわち、Δv,Δvは、常に1/32-pelの精度で導出される。これに対応して、式(9)に基づいて、導出されたPROFリファインメントの精度は、内部ビット深度に依存する。しかしながら、BDOFと同様に、PROFはより高いPROF導出精度を維持するために、中間の高ビット深度(すなわち、16ビット)で予測サ
ンプル値に適用される。したがって、内部符号化ビット深度にかかわらず、PROFによって導出された予測リファインメントの精度は中間予測サンプルの精度、すなわち16ビットと一致しなければならない。言い換えると、既存のPROF設計におけるMV差分と勾配の表現ビット深度は、予測サンプル精度(すなわち16ビット)と比較して正確な予測リファインメントを導出するために完全に整合していない。一方、式(1)、(4)および(8)の比較に基づいて、既存のPROFおよびBDOFは、サンプル勾配およびMV差を表すために異なる精度を使用する。先に指摘したように、このような統一されていない設計は、既存のBDOF論理を再使用することができないので、ハードウェアにとって望ましくない。
【0068】
第2に、「アフィンモードに対するオプティカルフローによる予測リファインメント」の項で議論したように、一つの現在のアフィンブロックがバイ予測されるとき、PROFをリストL0およびL1の予測サンプルに別々に適用し、それから、強化されたL0およびL1予測信号を平均化して最終バイ予測信号を生成する。反対に、各予測方向に対するPROFリファインメントを別々に導出する代わりに、BDOFは予測リファインメントを一旦導出し、それは次に結合L0およびL1予測信号を強化するために適用される。図8および図9(後述)は、バイ予測のための現在のBDOFおよびPROFのワークフローを比較する。実際のコーデックハードウェアパイプライン設計では、通常、より多くの符号化ブロックを並列に処理できるように、異なる主要な符号化/復号化モジュールを各パイプラインステージに割り当てる。しかしながら、BDOFワークフローとPROFワークフローとの間の差異のために、BDOFとPROFとによって共有されることができる1つの同じパイプライン設計を有することを困難にする可能性があり、実用的なコーデック実装には不利である。
【0069】
図8は、本開示によるBDOFのワークフローを示す。ワークフロー800は、L0動き補償810、L1動き補償820、およびBDOF830を含む。L0動き補償810は、例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャから前の参照ピクチャである。例えば、L1動き補償820は、次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。BDOF830は図4に関して上記説明したように、L1動き補償810およびL1動き補償820から動き補償サンプルを取り込み、予測サンプルを出力する。
【0070】
図9は、本開示による既存のPROFのワークフローを示す。ワークフロー900は、L0動き補償910、L1動き補償920、L0 PROF930、L1 PROF940、および平均960を含む。L0動き補償910は例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャから前の参照ピクチャである。例えば、L1動き補償920は、次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。L0 PROF930は前述の図7に関して説明したように、L0動き補償910からL0動き補償サンプルを取り込み、動きリファインメント値を出力する。L1 PROF940は上述の図7に関して説明したように、L1動き補償920からL1動き補償サンプルを取り込み、動きリファインメント値を出力する。平均960は、L0 PROF930およびL1 PROF940の動きリファインメント値出力を平均化する。
【0071】
第3に、BDOFおよびPROFの両方について、勾配は現在の符号化ブロック内の各サンプルについて計算される必要があり、これは、ブロックの各サイドで予測サンプルの1つの追加の行/列を生成することを必要とする。サンプル補間の付加的な計算の複雑さを回避するために、ブロックの周りの拡張領域内の予測サンプルは整数位置で(すなわち
、補間なしで)参照サンプルから直接コピーされる。しかし、既存の設計ではBDOFとPROFの勾配値を生成するために、異なる位置の整数サンプルが選択されている。具体的にはBDOFでは予測サンプルの左側(水平勾配の場合)および予測サンプルの上側(垂直勾配の場合)に位置する整数参照サンプルが使用され、PROFでは予測サンプルに最も近い整数参照サンプルが勾配計算に使用される。ビット深度表現問題と同様に、このような非統一勾配計算法もハードウェアコーデック実装にとって望ましくない。
【0072】
第4に、先に指摘したように、PROFの動機は、各サンプルのMVと、サンプルが属するサブブロックの中心で導出されるサブブロックMVとの間の小さいMV差を補償することである。現在のPROF設計によれば、PROFは、1つの符号化ブロックがアフィンモードによって予測されるときに常に呼び出される。しかしながら、式(6)および(7)に示すように、1つのアフィンブロックのサブブロックMVは、制御点MVから導出される。したがって、制御点MV間の差が比較的小さい場合、各サンプル位置におけるMVは一貫しているべきである。そのような場合、PROFを適用する利点は非常に限定される可能性があるので、性能/複雑さのトレードオフを考慮すると、PROFを実行する価値がない可能性がある。
【0073】
アフィンモードに対するオプティカルフローによる予測リファインメントの改良
本開示では、ハードウェアコーデック実装を容易にするために、既存のPROF設計を改善し、単純化するための方法が提供される。特に、既存のBDOFロジックをPROFと最大限に共有するために、BDOFとPROFの設計を調和させることに特に注意し、一般に、本開示で提案される技術の主な態様を以下に要約する。
【0074】
第1に、1つ以上の統一設計を達成しながらPROFの符号化効率を改善するために、BDOFとPROFによって使用されるサンプル勾配とMV差の代表ビット深さを統一する1つの方法を提案する。
【0075】
第2に、ハードウェアパイプライン設計を容易にするために、バイ予測のためにPROFのワークフローをBDOFのワークフローと調和させることが提案される。具体的にはL0およびL1に対して別々に予測リファインメントを導出する既存のPROFとは異なり、提案する方法はL0およびL1の組み合わせ予測信号に適用される予測リファインメントを一旦導出する。
【0076】
第3に、BDOFおよびPROFによって使用される勾配値を計算するために、整数参照サンプルの導出を調和させる2つの方法が提案される。
【0077】
第4に、計算量を低減するために、ある条件が満たされたときにアフィン符号化ブロックに対するPROFプロセスを適応的に無効にする早期終了法を提案する。
【0078】
PROF勾配とMV差のビット深度表現設計の改善
「問題記述」の項で分析したように、MV差の表現ビット深度と現在のPROF内のサンプル勾配は、正確な予測リファインメントを導き出すために整列されない。さらに、サンプル勾配の表現ビット深度およびMV差はBDOFとPROFとの間で一貫性がなく、これはハードウェアにとって不利である。本節ではBDOFのビット深度表現法をPROFに拡張することにより、1つの改良型ビット深度表現法を提案した。具体的には提案した方法では各サンプル位置における水平および垂直勾配を以下のように計算する。
【数17】
【0079】
加えて、1つのサンプル位置からサンプルが属するサブブロックの中心までの1/4-pel精度で表される水平および垂直オフセットをΔxおよびΔyであると仮定すると、サンプル位置での対応するPROF MV差Δv(x,y)は以下のように導出される。
【数18】


ここで、dMvBitsは、BDOFプロセスによって使用される勾配値のビット深度である。すなわち、dMvBits=max(5,(bit‐depth - 7))+1である。式(13)及び(14)において、c,d,e,fは、アフィン制御点MVに基づいて導出されるアフィンパラメータである。具体的には、4パラメータアフィンモデルでは、以下の通りである。
【数19】
【0080】
6パラメータアフィンモデルでは、以下の通りである。
【数20】


ここで、(v0x,v0y),(v1x,v1y),(v2x,v2y)は、現在の符号化ブロックの左上、右上、および左下の制御点MVであり、1/16-pel精度で表され、wおよびhは、ブロックの幅および高さである。
【0081】
上記の説明では、式(13)および(14)に示すように、一対の固定右シフトを適用して、勾配およびMV差の値を計算する。実際には、(13)および(14)に異なるビ
ット方向右シフトを適用して、中間計算精度と内部PROF導出プロセスのビット幅の間の異なるトレードオフに対する勾配とMV差の様々な表現精度を達成することができる。例えば、入力ビデオが多くのノイズを含む場合、導出された勾配は、各サンプルにおける真の局所的な水平/垂直勾配値を表すのに信頼できないことがある。このような場合、勾配値よりも多くのビットを使用してMV差を表現する方が意味がある。一方、入力ビデオが定常的な動きを示す場合、アフィンモデルによって導出されるMV差は、非常に小さくなければならない。そうであれば、高精度MV差を使用することで、派生PROFリファインメントの精度を上げるための追加の有益性を得ることはできない。言い換えると、このような場合、勾配値を表すためにより多くのビットを使用する方が有益である。上記の考察に基づいて、本開示の1つ以上の実施形態ではPROFの勾配およびMV差を計算するための1つの一般的な方法が以下で提案され、具体的には各サンプル位置における水平勾配および垂直勾配が隣接する予測サンプルの差にn右シフトを適用することによって計算されると仮定する。
【数21】


サンプル位置における対応するPROF MV差Δv(x,y)は、以下のように計算されるべきである。
【数22】


ここで、ΔxおよびΔyは、1つのサンプル位置からサンプルが属するサブブロックの中心までの1/4-pel精度で表される水平および垂直オフセットであり、c,d,e,fは、1/16-pelアフィン制御点MVに基づいて導出されるアフィンパラメータである。最後に、サンプルの最終的なPROFリファインメントは、以下のように計算される。
【数23】
【0082】
本開示のいくつかの実施形態では、別のPROFビット深度制御方法が以下のように提案される。この方法では、各サンプル位置における水平勾配および垂直勾配が隣接する予測サンプルの差分値に右シフトのnビットを適用することによって、(15)のように依然として計算される。サンプル位置における対応するPROF MV差Δv(x,y)は、以下のように計算されるべきである。
【数24】
【0083】
さらに、PROF導出全体を適切な内部ビット深度に保つために、クリッピングが、以下のように導出されたMV差に適用される。
【数25】


ここで、limitは2のn乗に等しい閾値であり、clip3(min、max、x)は、[min、max]の範囲内の所与の値xをクリッピングする関数である。一例では、nの値は、2max(5,bit-depth-7)であるように設定される。最後に、サンプルのPROFリファインメントは、以下のように計算される。
【数26】
【0084】
さらに、本開示の1つまたは複数の実施形態では、1つのPROFビット深度制御ソリューションが提案される。この方法では、各サンプル位置(i、j)での水平および垂直PROF動きリファインメントは以下のように導出される。
【数27】
【0085】
さらに、導出された水平および垂直の動きリファインメントは、以下のようにクリッピングされる。
【数28】
【0086】
ここで、上記で導出されたような動きリファインメントが与えられると、位置(i、j)における最終的なPROFサンプルリファインメントは、以下のように計算される。
【数29】
【0087】
別の実施形態では、別のPROFビット深度制御ソリューションが提案される。第2方法ではサンプル位置(i、j)における水平および垂直PROF動きリファインメントは以下のように導出される。
【数30】
【0088】
次に、導出された動きリファインメントは、次のようにクリッピングされる。
【数31】
【0089】
したがって、上記で導出されたような動きリファインメントが与えられると、位置(i、j)における最終的なPROFサンプルリファインメントは、以下のように計算される。
【数32】
【0090】
本開示の1つまたは複数の実施形態では、解の動きリファインメント精度制御方法と、第2解のPROFサンプルリファインメント導出方法とを組み合わせることが提案される。具体的にはこの方法により、各サンプル位置(i、j)における水平及び垂直PROF動きリファインメントは以下のように導出される。
【数33】
【0091】
さらに、導出された水平および垂直動きリファインメントは、以下のようにクリッピングされる。
【数34】
【0092】
最後に、上記で導出されたような動きリファインメントが与えられると、位置(i、j)における最終的なPROFサンプルのリファインメントは、以下のように計算される。
【数35】
【0093】
バイ予測のためPROFおよびBDOFの調和ワークフロー
先に論じたように、1つのアフィン符号化ブロックがバイ予測される場合、現在のPROFは一方向に適用される。より具体的には、PROFサンプルリファインメントが別々に導出され、リストL0およびL1内の予測サンプルに適用される。その後、リストL0およびL1からそれぞれリファインされた予測信号が平均化され、ブロックの最終バイ予測信号が生成される。これは、サンプルリファインメントが導出され、バイ予測信号に適用されるBDOF設計とは対照的である。BDOFおよびPROFのバイ予測ワークフロー間のこのような差は、実際のコーデックパイプライン設計には不都合である可能性がある。
【0094】
ハードウェアパイプライン設計を容易にするために、本開示による1つの単純化方法は2つの予測リファインメント方法のワークフローが調和されるように、PROFのバイ予測プロセスを修正することである。具体的には、各予測方向に対するリファインメントを
別々に適用する代わりに、提案したPROF法はリストL0およびL1の制御点MVに基づいて、予測リファインメントを一旦導出する。次に、品質を強化するために、導出した予測リファインメントを、組み合わせられたL0およびL1予測信号に適用する。具体的には、式(14)で導出したMV差に基づいて、1つのアフィン符号化ブロックの最終バイ予測サンプルを、以下のように提案した方法によって計算する。
【数36】


shiftおよびοoffsetは、(15-bit-depth)および1<<(14-bit-depth)+(2<<13)に等しい、バイ予測のためにL0およびL1予測信号を組み合わせるために適用される、右シフト値及びオフセット値である。さらに、(18)に示すように、((9)に示すような)既存のPROF設計におけるクリッピング動作は、提案した方法で除去される。
【0095】
図12は、提案されたバイ予測PROF法が適用された場合の対応するPROFプロセスを示す。PROFプロセス1200は、L0動き補償1210、L1動き補償1220、およびバイ予測PROF1230を含む。例えば、L0動き補償1210は、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャから前の参照ピクチャである。L1動き補償1220は例えば、次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。バイ予測PROF1230は上述のように、L1動き補償1210およびL1動き補償1220から動き補償サンプルを取り込み、バイ予測サンプルを出力する。
【0096】
ハードウェアパイプライン設計のための提案した方法の潜在的な利益を実証するために、図13は、BDOFと提案したPROFの両方が適用されるときのパイプラインステージを図示するための1つの例を示す。図13において、1つのインターブロックの復号化処理は、主に3つのステップを含む。
第1に、符号化ブロックのMVを構文解析/復号化し、参照サンプルをフェッチする。
第2に、符号化ブロックのL0および/またはL1予測信号を生成する。
第3に、符号化ブロックが1つの非アフィンモードによって予測される場合にはBDOFに基づいて、生成されたバイ予測サンプルのサンプルワイズリファインメントを実行し、符号化ブロックがアフィンモードによって予測される場合にはPROFを実行する。
【0097】
図13は、本開示による、BDOFおよび提案されたPROFの両方が適用される場合のパイプラインステージの例を示す。図13は、ハードウェアパイプライン設計のための提案された方法の潜在的な利点を示す。パイプラインステージ1300は、構文解析/復号化MVおよびフェッチ参照サンプル1310、動き補償1320、BDOF/PROF1330を含む。パイプラインステージ1300は、ビデオブロックBLK0、BKL1、BKL2、BKL3、およびBLK4を符号化する。各ビデオブロックはMVの構文解析/復号化を開始し、参照サンプル1310をフェッチし、動き補償1320に移動し、次に、動き補償1320、BDOF/PROF1330に順次移動する。このBLK0の手段は、BLK0が動き補正1320に移動するまで、パイプラインステージ1300の処理を開始しない。時間がT0からT1、T2、T3、およびT4になるにつれて、すべてのステージおよびビデオブロックについて同じである。
【0098】
図13において、1つのインターブロックの復号化処理は、主に3つのステップを含む。
第1に、符号化ブロックのMVを構文解析/復号化し、参照サンプルをフェッチする。
第2に、符号化ブロックのL0および/またはL1予測信号を生成する。
第3に、符号化ブロックが1つの非アフィンモードによって予測される場合にはBDOFに基づいて、生成されたバイ予測サンプルのサンプルワイズリファインメントを実行し、符号化ブロックがアフィンモードによって予測される場合にはPROFを実行する。
【0099】
図13に示すように、提案された調和方法が適用された後、BDOFおよびPROFの両方がバイ予測サンプルに直接適用される。BDOFおよびPROFが異なるタイプの符号化ブロックに適用される(すなわち、BDOFが非アフィンブロックに適用され、PROFがアフィンブロックに適用される)と仮定すると、2つの符号化ツールを同時に呼び出すことはできない。したがって、それらの対応する復号化処理は、同じパイプラインステージを共有することによって行うことができる。これは既存のPROF設計よりも効率的であり、BDOFおよびPROFの両方に同じパイプラインステージを割り当てることはバイ予測の異なるワークフローのために困難である。
【0100】
上記では、提案手法はBDOFおよびPROFのワークフローの調和のみを考慮しているが、既存の設計では2つの符号化ツールの基本的な操作単位も異なるサイズで行われている。たとえば、BDOFの場合、1つの符号化ブロックは、サイズがW×Hの複数のサブブロックに分割される。ここで、W=min(W、16)およびH=min(H、16)である。ここで、WおよびHは符号化ブロックの幅および高さである。勾配計算及びサンプルリファインメント導出のようなBODF演算は、各サブブロックに対して独立して実行される。一方、前述したように、アフィン符号化ブロックは4×4のサブブロックに分割され、各サブブロックには、4パラメータまたは6パラメータアフィンモデルのいずれかに基づいて導出された1つの個々のMVが割り当てられる。PROFはアフィンブロックにのみ適用されるため、その基本演算ユニットは4×4サブブロックである。バイ予測ワークフロー問題と同様に、BDOFからのPROFのための異なる基本演算ユニットサイズを使用することも、ハードウェア実装にとって不都合であり、BDOFおよびPROFが復号化プロセス全体の同じパイプラインステージを共有することを困難にする。このような問題を解決するために、1つ以上の実施形態では、アフィンモードのサブブロックサイズをBDOFのサブブロックサイズと同じにすることが提案される。
【0101】
提案手法によれば、1つの符号化ブロックがアフィンモードによって符号化されると、それはW×Hのサイズをもつサブブロックに分割される。ここで、W=min(W,16)およびH=min(H,16)である。ここで、WおよびHは符号化ブロックの幅および高さである。各サブブロックは、1つの個別のMVを割り当てられ、1つの独立したPROF演算ユニットと見なされる。独立したPROF演算ユニットは、その上のPROF演算が隣接するPROF演算ユニットからの情報を参照することなく実行されることを保証することに言及する価値がある。具体的には1つのサンプル位置におけるPROF MV差がサンプル位置におけるMVと、サンプルが位置するPROF演算ユニットの中心におけるMVとの間の差として計算され、PROF導出によって使用される勾配は各PROF演算ユニットに沿ってサンプルをパディングすることによって計算される。提案された方法の主張される利点は主に、以下の態様を含む:1)動き補償およびBDOF/PROF改良の両方のための統一された基本演算ユニットサイズを有する簡略化されたパイプラインアーキテクチャ;2)アフィン動き補償のための拡大されたサブブロックサイズによるメモリ帯域幅使用の低減;3)分数サンプル補間のサンプル当たりの計算複雑さの低減。
【0102】
提案した方法による計算量の削減(すなわち項目3))のために、アフィン符号化ブロ
ックに対する既存の6タップ補間フィルタ制約を除去できることに言及すべきである。代わりに、非アフィン符号化ブロックのためのデフォルトの8タップ補間は、アフィン符号化ブロックのためにも使用される。この場合の全体的な計算量は、既存のPROF設計(6タップ補間フィルタによる4x4サブブロックに基づく)と引き続き良好に比較できる。
【0103】
BDOFおよびPROFの勾配導出の調和
前述のように、BDOFおよびPROFの両方は、ブロックの各サイドの予測サンプルの1つの追加の行/列にアクセスする、現在の符号化ブロック内の各サンプルの勾配を計算する。追加の補間の複雑さを回避するために、ブロック境界の周りの拡張領域における必要な予測サンプルは、整数参照サンプルから直接コピーされる。しかし、「問題記述」の項で指摘したように、異なる位置の整数サンプルを使用して、BDOFおよびPROFの勾配値を計算する。
【0104】
もう1つの一様設計を達成するために、BDOFおよびPROFが用いる勾配導出法を統一するために、次の二つの方法を提案した。第一方法では、BDOFと同じになるようにPROFの勾配導出法を揃えることを提案する。具体的には、第1方法によって、拡張領域内の予測サンプルを生成するために使用される整数位置は分数サンプル位置をフロアダウンすることによって決定され、すなわち、選択された整数サンプル位置は分数サンプル位置(水平勾配の場合)の左に、かつ分数サンプル位置(垂直勾配の場合)の上に配置される。第2方法ではBDOFの勾配導出方法をPROFと同じにすることが提案されており、より詳細には第2方法を適用する場合、予測サンプルに最も近い整数参照サンプルが勾配計算に使用される。
【0105】
図14は、本開示による、BDOFの勾配導出方法を使用する例を示す。図14において、白円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、黒円は現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0106】
図15は、本開示による、PROFの勾配導出方法を使用する例を示す。図15において、白円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、黒円は現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0107】
図14および図15は第1方法(図14)および第2方法(図15)がそれぞれ適用される場合に、BDOFおよびPROFの勾配の導出に使用される対応する整数サンプル位置を示す。図14および図15において、白円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、パターン化された円は勾配導出のために現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0108】
さらに、既存のBDOFおよびPROF設計によれば、予測サンプルパッドは、異なる符号化レベルで行われる。具体的にはBDOFの場合、パディングは各sbWidth x sbHeightサブブロックの境界に沿って適用され、ここで、sbWidth = min(CUWidth,16)およびsbHeight = min(CUHeight,16)である。CUWidthおよびCUHeightは、1CUの幅および高さである。一方、PROFのパディングは、常に4×4サブブロックレベルで適用される。上記の説明では、パディング方法のみがBDOFとPROFとの間で統一され、パディングサブブロックサイズは依然として異なる。これはまた、BDOFおよびPROFのパディングプロセスのために異なるモジュールが実装される必要があることを考慮すると、実際のハードウェア実装にはフレンドリーではない。もう1つの統一設計を達成するため
に、BDOFおよびPROFのサブブロックパディングサイズを統一することが提案される。本開示の1つまたは複数の実施形態では、4×4レベルでBDOFの予測サンプルパディングを適用することが提案される。具体的にはこの方法によって、CUはまず、複数の4×4サブブロックに分割され、各4×4サブブロックの動き補償の後、上/下および左/右境界に沿った拡張サンプルは対応する整数サンプル位置をコピーすることによってパディングされる。図18A、18B、18C、および18Dは提案されたパディング方法が1つの16x16BDOF CUに適用される1つの例を示し、ここで、破線は4x4サブブロック境界を表し、黒帯は各4x4サブブロックのパディングされたサンプルを表す。
【0109】
図18Aは本開示による、16×16のBDOF CUに適用される提案されたパディング方法を示し、ここで、破線は、左上4×4サブブロック境界1820を表す。
【0110】
図18Bは16×16のBDOF CUに適用される提案されたパディング方法を示し、ここで、破線は、本開示による、右上4×4サブブロック境界1840を表す。
【0111】
図18Cは本開示による、16×16 BDOF CUに適用される提案されたパディング方法を示し、破線は、左下4×4サブブロック境界1860を示す。
【0112】
図18Dは本開示による、16×16のBDOF CUに適用される提案されたパディング方法を示し、破線は、右下4×4サブブロック境界1880を示す。
【0113】
BDOF、PROF、DMVRを有効/無効にするためのハイレベルシグナリング構文
既存のBDOFおよびPROF設計では、2つの異なるフラグがシーケンスパラメータセット(SPS)においてシグナリングされ、2つの符号化ツールの有効/無効を別々に制御する。しかしながら、BDOFとPROFとの間の類似性のために、1つの同じ制御フラグによってBDOFおよびPROFをハイレベルから有効および/または無効にすることがより望ましい。このような考察に基づき、表1に示すように、SPSではSPS_bdof_prof_enabled_flagと呼ばれる1つの新しいフラグが導入されている。表1に示すように、BDOFの有効化と無効化はsps_BDOF_prof_enabled_flagにのみ依存する。フラグが1に等しいとき、BDOFは、シーケンス内のビデオコンテンツを符号化するために有効になる。それ以外の場合、sps_BDOF_prof_enabled_flagが0に等しいとき、BDOFは適用されない。一方、SPS_bdof_PROF_enabled_flagに加えて、SPSレベルのアフィン制御フラグ、すなわちSPS_affine_enabled_flagも条件付きでPROFを有効化および無効化するために使用される。SPS_bdof_PROF_enabled_flagとSPS_affine_enabled_flagの両方が1に等しい場合、PROFはアフィンモードで符号化されるすべての符号化ブロックに対して有効化される。フラグsps_bdof_PROF_enabled_flagが1に等しく、sps_affine_enabled_flagが0に等しい場合、PROFは無効になる。
【表1】


【表2】


表1 提案されているBDOF/PROF有効化/無効化フラグによるSPS構文テーブルの変更
【0114】
sps_bdof_prof_enabled_flagは、オプティカルフローによる双方向オプティカルフローおよび予測リファインメントを有効にするかどうかを指定する。sps_bdof_prof_enabled_flagが0に等しい場合、オプティカルフローによる双方向オプティカルフローおよび予測リファインメントの両方が無効化される。sps_bdof_prof_enabled_flagが1に等しく、sps_affine_enabled_flagが1に等しい場合、オプティカルフローによる双方向オプティカルフローと予測リファインメントの両方が有効になる。それ以外の場合(sps_bdof_prof_enabled_flagが1に等しく、sps_affine_enabled_flagが0に等しい場合)、双方向オプティカルフローが有効になり、オプティカルフローによる予測リファインメントが無効になる。
【0115】
sps_bdof_prof_dmvr_slice_preset_flagは、フラグslice_disable_bdof_prof_dmvr_flagがいつスライスレベルで信号送信されるかを指定する。フラグが1に等しい場合、現在のシーケンスパラメータセットを参照するスライスごとに構文slice_disable_bdof_prof_dmvr_flagがシグナリングされる。それ以外の場合(sps_bd
of_prof_dmvr_slice_present_flagが0の場合)、構文slice_disabled_bdof_prof_dmvr_flagはスライスレベルでシグナリングされない。フラグがシグナリングされない場合、0であると推測される。
【0116】
さらに、提案されたSPSレベルBDOFおよびPROF制御フラグが使用される場合、一般的な制約情報構文の対応する制御フラグno_BDOF_constraint_flagも以下によって変更する必要がある。
【表3】


【表4】
【0117】
1に等しいno_bdof_prof_constraint_flagは、sps_bdof_prof_enabled_flagが0に等しいことを指定する。0に等しいno_bdof_constraint_flagは制約を課さない。
【0118】
上記のSPS BDOF/PROF構文に加えて、スライスレベルで別の制御フラグを導入することが提案されている。すなわち、BDOF、PROF、DMVRを無効にするためにslice_disable_BDOF_PROF_DMVR_flagが導入されている。SPSフラグSPS_bdof_prof_DMVR_slice_present_flagは、DMVRまたはBDOF/PROF SPSレベル制御フラグのいずれかが真の場合にSPSでシグナリングされ、slice_disable_bdof_prof_DMVR_flagの存在を示すために使用される。存在する場合、slice_disable_bdof_dmvr_flagがシグナリングされる。表2は、提案された構文が適用された後の修正されたスライスヘッダ構文テーブルを示す。別の実施形態ではスライスヘッダで2つの制御フラグを使用して、BDOFおよびDMVRの有効化/無効化およびPROFの有効化/無効化を個別に制御することが提案され、具体的にはこの方法によるスライスヘッダで2つのフラグが使用される。具体的には1つのフラグはslice_disable_BDOF_DMVR_slice_flagを使用してBDOFのオン/オフを制御し、もう1つのフラグdisable_PROF_slice_flagを使用してPROFのオン/オフを単独で制御する。
【表5】


表2 提案されている BDOF/PROF有効化/無効化フラグを使用したSPS構文テーブルの変更
【0119】
別の実施形態では、2つの異なるSPSフラグによってBDOFおよびPROFを別々に制御することが提案される。具体的には、2つのツールを個別に有効化/無効化するために、2つの個別のSPSフラグSPS_bdof_enable_flagとSPS_prof_enableフラグが導入されている。さらに、PROFツールを強制的に無効にするには、general_constrain_info()構文テーブルに1つのハイレベル制御フラグno_PROF_constraint_flagを追加する必要がある。
【表6】


【表7】
【0120】
sps_bdof_enabled_flagは、双方向オプティカルフローを有効にするかどうかを指定する。sps_bdof_enabled_flagが0の場合、双方向オプティカルフローは無効になる。sps_bdof_enabled_flagが1の場合、双方向オプティカルフローが有効になる。
【0121】
sps_prof_enabled_flagは、オプティカルフローによる予測リファインメントを有効にするかどうかを指定する。sps_prof_enabled_flagが0に等しい場合、オプティカルフローによる予測リファインメントは無効になる。sps_prof_enabled_flagが1に等しい場合、オプティカルフローによる予測リファインメントは有効になる。
【表8】

【表9】
【0122】
1に等しいno_prof_constraint_flagは、sps_prof_enabled_flagが0に等しいことを指定する。0に等しいno_prof_constraint_flagは制約を課さない。
【0123】
スライスレベルでは、開示の1つ以上の実施形態において、スライスレベルで別の制御フラグを導入することが提案され、すなわち、BDOF、PROFおよびDMVRを共に無効にするためにslice_disable_BDOF_PROF_DMVR_flagが導入される。別の実施形態では、スライスレベルで2つの別個のフラグ、即ちslice_disable_bdof_dmvr_flagとslice_disable_prof_flagを加えることが適切である。最初のフラグ(すなわちslice_disable_BDOF_DMVR_flag)は1つのスライスのBDOFとDMVRのオン/オフを適応的に切り替えるために使用され、2番目のフラグ(すなわちslice_disable_PROF_flag)はスライスレベルでのPROFツールの有効化および無効化を制御するために使用される。さらに、2番目の方法が適用されると、SPS BDOFまたはSPS DMVRフラグのいずれかが有効な場合にのみフラグslice_disable_BDOF_DMVR_flagを通知する必要があり、SPS
PROFフラグが有効な場合にのみフラグを通知する必要がある。
【0124】
図11はBDOFとPROFの方法を示しており、例えば、デコーダに適用することができる。
【0125】
ステップ1110において、デコーダは、2つのGCI(general constraint information)レベル制御フラグを受信することができる。2つのGCIレベル制御フラグは、エンコーダによってシグナリングされ、第1GCIレベル制御フラグおよび第2GCIレベル制御フラグを含むことができる。第1GCIレベル制御フラグは、現在のビデオシーケンスを復号化するためにBDOFが許可されているかどうかを示す。第2GCIレベル制御フラグは、PROFが現在のビデオシーケンスを復号化することを許可されているかどうかを示す。
【0126】
ステップ1112において、デコーダは、2つのSPSレベル制御フラグを受信することができる。2つのSPSレベル制御フラグは、SPS内のエンコーダによってシグナリングされ、BDOFおよびPROFが現在のビデオブロックに対して有効化されているかどうかをシグナリングする。
【0127】
ステップ1114において、デコーダは第1SPSレベル制御フラグが有効化されているときに、ビデオブロックがアフィンモードで符号化されていない場合の第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいてビデオブロックの動きリファインメントを導出するために、BDOFを適用することができる。
【0128】
ステップ1116において、デコーダは第2SPSレベル制御フラグが有効化されているときに、ビデオブロックがアフィンモードで符号化されている場合の第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、ビデオブロックの動きリファインメントを導出するために、PROFを適用することができる。
【0129】
ステップ1118において、デコーダは、動きリファインメントに基づいてビデオブロックの予測サンプルを取得することができる。
【0130】
コントロール点MV差に基づくPROFの早期終了
現在のPROF設計によれば、PROFは、1つの符号化ブロックがアフィンモードによって予測されるときに常に呼び出される。しかしながら、式(6)および(7)に示すように、1つのアフィンブロックのサブブロックMVは、制御点MVから導出される。したがって、制御点MV間の差が比較的小さい場合、各サンプル位置におけるMVは一貫しているべきである。このような場合、PROFを適用する利点は非常に限定され得る。従って、PROFの平均計算複雑性をさらに低減するために、1つの4x4サブブロック内でサンプルワイズMVとサブブロックワイズMVの間の最大MV差に基づいてPROFベースのサンプルリファインメントを適応的にスキップすることを提案する。1つの4x4サブブロック内部のサンプルのPROF MV差の値はサブブロック中心に対して対称であるため、最大水平および垂直PROF MV差は式(10)に基づいて以下のように計算できる。
【数37】
【0131】
本開示によれば、MV差がPROFプロセスをスキップするのに十分小さいかどうかを判定する際に、異なるメトリックを使用することができる。
【0132】
一例では、式(19)に基づいて、絶対最大水平MV差と絶対最大垂直MV差との和が1つの所定の閾値よりも小さい場合、PROFプロセスをスキップすることができる
【数38】
【0133】
別の例では、|Δv max|および|Δv max|の最大値が閾値以下である場合、PROFプロセスをスキップすることができる。
【数39】
【0134】
MAX(a、b)は、入力値aとbとの間の大きい方の値を返す関数である。
【0135】
さらに、上記の2つの例に加えて、本開示の思想は、MV差がPROFプロセスをスキップするのに十分小さいかどうかを判定する際に他のメトリックが使用される場合にも適用可能である。上記の方法では、MV差の大きさに基づいてPROFをスキップする。一方、MV差に加えて、PROFサンプルリファインメントも、1つの動き補償ブロック内の各サンプル位置における局所勾配情報に基づいて計算される。高周波数の詳細が少ない(フラットな領域など)予測ブロックでは、導出されたサンプルリファインメントの値が小さくなるように、勾配値は小さくなる傾向がある。これを考慮して、別の実施形態によれば、十分に高い周波数情報を含むブロックの予測サンプルにのみPROFを適用することが提案される。
【0136】
ブロックに対してPROFプロセスを呼び出す価値があるように、ブロックが十分に高い周波数の情報を含むかどうかを判定する際に、異なるメトリックを使用することができ
る。一例では、決定が予測ブロック内のサンプルの勾配の平均の大きさ(すなわち、絶対値)に基づいて行われる。平均の大きさが1つのしきい値よりも小さい場合、予測ブロックは平坦領域として分類され、PROFは適用されるべきではなく、そうでない場合、予測ブロックは、PROFが依然として適用可能である十分な高周波詳細を含むと考えられる。別の例では、予測ブロック内のサンプルの勾配の最大の大きさを使用することができる。最大の大きさが1つのしきい値より小さい場合、PROFはブロックについてスキップされるべきである。さらに別の例では、予測ブロックの最大サンプル値と最小サンプル値との差分Imax-Iminを使用して、PROFがブロックに適用されるかどうかを決定することができる。このような差分値がしきい値より小さい場合、PROFはブロックについてスキップされる。本開示の思想は所与のブロックが十分な高周波数情報を含むか否かを判定する際に、いくつかの他のメトリックが使用される場合にも適用可能であることに留意されたい。
【0137】
PROFとLIC間のインタラクションのアフィンモードによる処理
現在のブロックの隣接する再構成されたサンプル(すなわち、テンプレート)は線形モデルパラメータを導出するためにLICによって使用されるので、1つのLIC符号化ブロックの復号化はその隣接するサンプルの完全な再構成に依存する。このような相互依存性のために、実際のハードウェア実装では、LICが隣接する再構成サンプルがLICパラメータ導出のために利用可能になる再構成段階で実行される必要がある。ブロック再構成は連続的に(すなわち、1つずつ)実行されなければならないので、スループット(すなわち、単位時間当たりに並列に実行され得る作業量)は、LIC符号化ブロックに他の符号化方法を結合して適用するときに考慮すべき1つの重要な問題である。この項では、PROFとLICの両方がアフィンモードに対して有効である場合のインタラクションを扱うために、二つの方法を提案した。
【0138】
本開示の第1実施形態では、1つのアフィン符号化ブロックに対して、PROFモードとLICモードとを排他的に適用することが提案される。前述のように、既存の設計では、PROFがシグナリングなしにすべてのアフィンブロックに暗黙的に適用され、一方、1つのLICフラグはLICモードが1つのアフィンブロックに適用されるか否かを示すために、符号化ブロックレベルでシグナリングまたは継承される。本発明の方法によれば、1つのアフィンブロックのLICフラグの値に基づいてPROFを条件付きで適用することが提案される。フラグが1に等しい場合、LIC重みおよびオフセットに基づいて符号化ブロック全体の予測サンプルを調整することによって、LICのみが適用される。そうでない場合(すなわち、LICフラグが0に等しい場合)、PROFは、アフィン符号化ブロックに適用され、オプティカルフローモデルに基づいてそれぞれのサブブロックの予測サンプルをリファインする。
【0139】
図17Aは、PROFおよびLICが同時に適用されることを禁止されている、提案された方法に基づく復号化プロセスの1つの例示的なフローチャートを示す。
【0140】
図17Aは本開示による、PROFおよびLICが許可されない、提案された方法に基づく復号化プロセスの例示を示す。復号化プロセス1720は、LICフラグがオンか(1722、LIC1724、およびPROF1726)を含む。LICフラグがオンか?(1722)はLICフラグがセットされているか否かを判定し、その判定にしたがって次のステップをとるステップである。LIC1724は、LICのアプリケーションが、LICフラグがセットされていることを示す。LICフラグがセットされていない場合、PROF1726はPROFのアプリケーションである。
【0141】
本開示の第2実施形態では、1つのアフィンブロックの予測サンプルを生成するために、PROFの後にLICを適用することが提案される。具体的にはサブブロックベースの
アフィン動き補償が行われた後、予測サンプルはPROFサンプルリファインメントに基づいてリファインされ、次いで、LICはPROF調整された予測サンプルに(テンプレートおよびその参照サンプルから導出される)重みおよびオフセットのペアを適用することによって行われ、以下のように、ブロックの最終予測サンプルを取得する。
【数40】


[x+v]は動きベクトルvによって示される現在のブロックの参照ブロックであり、αおよびβはLIC重みおよびオフセットであり、P[x]は最終予測ブロックであり、ΔI[x]は、(15)で導出されるPROFリファインメントである。
【0142】
図17Bは、本開示による、PROFおよびLICが適用される復号化プロセスの図を示す。復号化プロセス1760は、アフィン動き補償1762、LICパラメータ導出1764、PROF1766、およびLICサンプル調整1768を含む。アフィン動き補償1762はアフィン動きを適用し、LICパラメータ導出1764およびPROF1766への入力である。LICパラメータ導出1764は、LICパラメータを導出するために適用される。PROF1766は適用されているPROFである。LICサンプル調整1768は、PROFと組み合わせられているLIC重みおよびオフセットパラメータである。
【0143】
図17Bは、第2方法を適用した場合の復号化ワークフローの一例を示す図である。図17Bに示すように、LICはテンプレート(すなわち、隣接する再構成サンプル)を使用してLIC線形モデルを計算するので、LICパラメータは、隣接する再構成サンプルが利用可能になるとすぐに導出することができる。これは、PROFリファインメントとLICパラメータ導出とを同時に実行することができることを意味する。
【0144】
LIC重みおよびオフセット(すなわち、αおよびβ)ならびにPROFリファインメント(すなわち、ΔI[x])は、一般に浮動小数点数である。フレンドリーなハードウェア実装のために、これらの浮動小数点演算は、通常、1つの整数値と、それに続く右シフト演算と、多数のビットとの乗算として実装される。現在のLICおよびPROF設計では、2つのツールが別々に設計されているため、2つの異なる右シフトがそれぞれNLICビットとNPROFビットによって、2つのステージで適用される。
【0145】
第3実施形態によれば、PROFおよびLICがアフィン符号化ブロックに結合して適用される場合の符号化利得を改善するために、高精度でLICベースおよびPROFベースのサンプル調整を適用することが提案される。これは、それらの2つの右シフト演算を1つに結合し、それを最後に適用して、現在のブロックの最終予測サンプルを((12)に示すように)導出することによって行われる。
【0146】
重み付き予測によるPROFとCUレベル重み(BCW)によるバイ予測とを組み合わせた場合の乗算オーバーフロー問題への対処
VVCワーキングドラフトにおける現行のPROF設計によれば、PROFは加重予測(WP)と結合して適用できる。具体的には、1つのアフィンCUの予測信号が合成されると、以下の手順で生成される。
【0147】
第1に、位置(x,y)にある各サンプルについて、PROFに基づいてL0予測リファインメントΔI(x,y)を計算し、リファインメントを元のL0予測サンプルI(x,y)に加える。
【数41】


’(x,y)はリファインされたサンプルであり、gh0(x,y)、gv0(x,y)、Δvx0(x,y)、Δvy0(x,y)は、位置(x,y)におけるL0水平/垂直勾配及びL0水平/垂直動きリファインメントである。
【0148】
第2に、位置(x,y)にある各サンプルについて、PROFに基づいてL1予測リファインメントΔI(x,y)を計算し、そのリファインメントを元のL1予測サンプルI(x,y)に加える。
【数42】


’(x,y)はリファインされたサンプルであり、gh1(x,y)、gv1(x,y)、Δvx1(x,y)、Δvy1(x,y)は、位置(x,y)におけるL1水平/垂直勾配およびL1水平/垂直動きリファインメントである。
【0149】
第3に、リファインされたL0およびL1予測サンプルを結合する。
【数43】


およびWは、WPおよびBCWの重みであり、shiftおよびOffsetはWPおよびBCWのバイ予測のためのL0およびL1予測信号の重み付け平均に適用されるオフセットおよび右シフトである。ここで、WPのパラメータはW、W、Offsetを含み、BCWのパラメータはW、W、shiftを含む。
【0150】
上記の式から分かるように、サンプルごとのリファインメント、すなわち、ΔI(x,y)およびΔI(x,y)により、PROF(すなわち、I’(x,y)およびI’(x,y))の後の予測サンプルは、元の予測サンプル(すなわち、I(x,y)およびI(x,y))よりも1つ大きいダイナミックレンジとなる。リファインされた予測サンプルがWP及びBCW重み係数で乗算されると仮定すると、これは必要とされる乗算器の長さを増加させる。例えば、現在の設計に基づいて、内部符号化ビット深度が8~12ビットの範囲である場合、予測信号I(x,y)およびI(x,y)のダイナミックレンジは16ビットである。しかし、PROFの後、予測信号I’(x,y)およびI’(x,y)のダイナミックレンジは17ビットである。したがって、PROFが適用されると、16ビット乗算オーバーフロー問題を引き起こす可能性がある。このようなオーバーフロー問題を解決するために、以下に複数の方法が提案される。
【0151】
第1に、第1方法では、PROFが1つのアフィンCUに適用されるときに、WPおよびBCWを無効にすることが提案される。
【0152】
第2に、第2方法では、オリジナル予測サンプルに加算する前に、導出されたサンプルリファインメントに1つのクリッピング操作を適用して、リファインされた予測サンプル
’(x,y)およびI’(x,y)のダイナミックレンジがオリジナル予測サンプルI(x,y)およびI(x,y)のダイナミックビット深度と同じダイナミックビット深度を有するようにすることが提案される。具体的にはこのような方法によって、(23)および(24)におけるサンプルリファインメントΔI(x,y)およびΔI(x,y)は以下のように1つのクリッピング操作を導入することによって修正される。
【数44】


dI=dIbase+max(0,BD-12)、ここで、BDは内部コーディングビット深度、dIbaseはベースビット深度の値である。1つ以上の実施形態では、dIbaseの値を14に設定することが提案される。別の実施形態では、値を13に設定することが提案される。1つまたは複数の実施形態では、dIの値を固定に直接設定することが提案される。一例ではdIの値を13に設定することが提案され、すなわち、サンプルリファインメントは範囲[-4096,4095]にクリッピングされる。別の例ではdIの値を14に設定することが提案され、すなわち、サンプルリファインメントは範囲[-8192、8191]にクリッピングされる。
【0153】
図10はPROFの方法を示しており、この方法は例えば、デコーダに適用することができる。
【0154】
ステップ1010において、デコーダは、ビデオ信号内のアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得することができる。
【0155】
ステップ1012では、デコーダが第1参照ピクチャI(0)(i,j)および第2参照ピクチャI(1)(i,j)に関連付けられた第1予測サンプルI(0)および第2予測サンプルI(1)に基づいて、第1および第2水平勾配値および垂直勾配値を得ることができる。
【0156】
ステップ1014において、デコーダは、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMVに基づいて、第1および第2水平および垂直動きリファインメントを取得することができる。
【0157】
ステップ1016では、デコーダが第1および第2水平および垂直勾配値、ならびに第1および第2水平および垂直動きリファインメントに基づいて、第1予測リファインメント△I(0)(i,j)および第2予測リファインメント△I(1)(i,j)を得ることができる。
【0158】
ステップ1018において、デコーダは、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、第1予測リファインメント△I(0)(i,j)、第2予測リファインメント△I(1)(i,j)、および予測パラメータに基づいて、ビデオブロックの最終予測サンプルを得ることができる。予測パラメータは、WP及びBCWのための重み及びオフセットパラメータを含むことができる。
【0159】
第1に、第3方法では、リファインされたサンプルが元の予測サンプルのダイナミック
レンジと同じダイナミックレンジを有するようにサンプルリファインメントをクリッピングする代わりに、リファインされた予測サンプルを直接クリッピングすることが提案される。具体的には第3の方法によって、リファインされたL0およびL1サンプルは以下のようになる。
【数45】


【数46】


dR=16+max(0,BD-12)(または同等にmax(16,BD+4))であり、BDは内部符号化ビット深度である。1つまたは複数の実施形態では、リファインされたPROF予測サンプルを16ビットにハードクリッピングすること、すなわち、dRの値を15に設定することが提案される。別の実施形態ではPROFのリファインされたサンプル値を、PROFの前方の初期予測サンプルIおよびIの同じダイナミックレンジ[na、nb]に切り取ることが提案され、ここで、naおよびnbは初期予測サンプルが到達することができる最小および最大の極値である。
【0160】
第2に、第4方法ではWPおよびBCWの前に、リファインされたL0およびL1予測サンプルに特定の右シフトを適用することが提案され、次いで、最終予測サンプルは追加の左シフトによって元の精度に調整される。具体的には、最終予測サンプルが以下のように導出される。
【数47】


nbは適用される追加のビットシフトの数であり、PROFサンプルリファインメントの対応するダイナミックレンジに基づいて決定されてもよい。
【0161】
第3に、第5方法では、(25)における対応するWP/BCW重みを有するL0/L1予測サンプルの各乗算を2つの乗算に分割することが提案され、2つの乗算の両方は以下に説明するように、16ビットを超えない。
【数48】
【0162】
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子コンポーネントを含む1つまたは複数の回路を含む装置を使用して実装され得る。装置は上述の方法を実行するために、他のハードウェアまたはソフトウェアコンポーネントと組み合わせて回路を使用することができる。上記で開示された各モジュール、サブモジュール、ユニット、またはサブユニットは、1つまたは複数の回路を使用して少なくとも部分的に実装され得る。
【0163】
図19は、ユーザインターフェース1960に結合されたコンピューティング環境1910を示す。計算環境1910は、データ処理サーバの一部とすることができる。コンピューティング環境1910は、プロセッサ1920、メモリ1940、およびI/Oインターフェース1950を含む。
【0164】
プロセッサ1920は、典型的にはディスプレイ、データ取得、データ通信、および画像処理に関連する動作のような、コンピューティング環境1910の全体的な動作を制御する。プロセッサ1920は上述の方法におけるステップのすべてまたは一部を実行する命令を実行するために、1つ以上のプロセッサを含んでもよい。さらに、プロセッサ1920は、プロセッサ1920と他のコンポーネントとの間のインタラクションを容易にする1つ以上のモジュールを含んでもよい。プロセッサは、セントラルプロセッシングユニット(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどである。
【0165】
メモリ1940はコンピューティング環境1910の動作をサポートするために、様々なタイプのデータを記憶するように構成される。メモリ1940は、事前決定ソフトウェア1942を含むことができる。そのようなデータの例は、コンピューティング環境1910上で動作する任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ1940は、SRAM(static random access memory)、EEPROM(electrically erasable programmable read-only memory)、EPROM(erasable programmable read-only memory)、PROM(programmable read-only memory)、ROM(read-only memory)、磁気メモリ、フラッシュメモリ、磁気ディスクまたは光ディスクなど、任意のタイプの揮発性または不揮発性メモリ装置、またはそれらの組合せを使用することによって実装され得る。
【0166】
I/Oインターフェース1950は、プロセッサ1920と、キーボード、クリックホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンはホームボタン、スタートスキャンボタン、およびストップスキャンボタンを含むことができるが、これらに限定されない。I/Oインターフェース1950は、エンコーダおよびデコーダに結合することができる。
【0167】
いくつかの実施形態では、上述の方法を実行するために、コンピューティング環境1910内のプロセッサ1920によって実行可能な、メモリ1940に含まれるような複数のプログラムを含む、非一時的コンピュータ読み取り可能記録媒体も提供される。例えば、非一時的コンピュータ可読記録媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ記憶装置等であってもよい。
【0168】
非一時的コンピュータ可読記録媒体は1つ以上のプロセッサを有するコンピューティングデバイスによって実行される複数のプログラムを記憶しており、ここで、複数のプログラムは、1つ以上のプロセッサによって実行されると、コンピューティングデバイスに上述の動き予測方法を実行させる。
【0169】
いくつかの実施形態では、コンピューティング環境1910が上記の方法を実行するために、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカルプロセッシングユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子コンポーネントを用いて実装され得る。
【0170】
本開示の説明は例示の目的で提示されており、網羅的であることも、本開示に限定されることも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正形態、変形形態、および代替実施形態が明らかになるのであろう。
【0171】
実施例は本開示の原理を説明し、他の当業者が様々な実施のための本開示を理解し、意図される特定の使用に適した様々な修正を伴う基礎となる原理および様々な実施を最良に利用することを可能にするために選択され、説明された。したがって、本開示の範囲は開示された実装の特定の例に限定されるべきではなく、修正および他の実装は本開示の範囲内に含まれることが意図されることを理解されたい。
【0172】
〔関連出願の相互参照〕
本出願は、2019年9月17日に出願された仮出願第62/901,774号および2019年9月23日に出願された仮出願第62/904,330号に基づき、それらに対する優先権を主張する。それらの全内容は、あらゆる目的のために参照によりその全体が本明細書に組み込まれる。
図1
図2
図3A
図3B
図3C
図3D
図3E
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16A
図16B
図17A
図17B
図18A
図18B
図18C
図18D
図19