(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-20
(45)【発行日】2024-10-01
(54)【発明の名称】オプティカルフローを用いる予測改善のための方法および装置
(51)【国際特許分類】
H04N 19/513 20140101AFI20240924BHJP
H04N 19/563 20140101ALI20240924BHJP
H04N 19/577 20140101ALI20240924BHJP
【FI】
H04N19/513
H04N19/563
H04N19/577
【外国語出願】
(21)【出願番号】P 2023069776
(22)【出願日】2023-04-21
(62)【分割の表示】P 2021563141の分割
【原出願日】2020-04-27
【審査請求日】2023-04-21
(32)【優先日】2019-04-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521024075
【氏名又は名称】ベイジン・ダジア・インターネット・インフォメーション・テクノロジー・カンパニー,リミテッド
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100138759
【氏名又は名称】大房 直樹
(74)【代理人】
【識別番号】100201743
【氏名又は名称】井上 和真
(72)【発明者】
【氏名】シウ,シヤオユー
(72)【発明者】
【氏名】チェン,イー-ウエン
(72)【発明者】
【氏名】ワーン,シアーンリン
(72)【発明者】
【氏名】イエ,シュイミーン
(72)【発明者】
【氏名】マ,ツン-チュアン
(72)【発明者】
【氏名】ジュ,ホーン-ジェン
【審査官】田中 純一
(56)【参考文献】
【文献】特表2022-523795(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを符号化するための、オプティカルフローを用いる予測改善(PROF)の方法であって、
前記ビデオデータの中の現在のピクチャ内のビデオブロックに関連した第1の参照ピクチャと、前記現在のピクチャ内のビデオブロックから前記第1の参照ピクチャ内の参照ブロックへの第1の動きベクトル(MV)とを取得するステップであって、前記第1の参照ピクチャが、オーバラップしない複数のビデオブロックを含み、少なくとも1つのビデオブロックが少なくとも1つのMVに関連付けられる、ステップと、
前記第1の参照ピクチャの中の前記参照ブロックのサンプルから生成されたビデオブロックの第1の予測サンプルを取得するステップと、
シフト値によるシフト演算を実行することにより内部PROFパラメータのビット深度を制御するステップであって、前記シフト値が、双方向オプティカルフロー(BDOF)処理で使用される勾配値の計算のための第1のシフト値を含み、前記内部PROFパラメータが
、第1の予測サンプルに関して導出された水平方向勾配値、垂直方向勾配値、水平方向動き差分および垂直方向動き差分を含む、ステップと、
前記水平方向勾配値および前記垂直方向勾配値ならびに前記水平方向動き差分および前記垂直方向動き差分を基に、前記第1の予測サンプルの予測改善値を取得するステップと、
第2のMVに関連した第2の予測サンプルと
、第2の予測サンプルの対応する予測改善値とを取得するステップと、
前記第1の予測サンプルと前記第2の予測サンプルと前記予測改善値とに基づいて、前記ビデオブロックの最終予測サンプルを取得するステップと
を含む方法。
【請求項2】
前記シフト値による前記シフト演算を実行することにより前記内部PROFパラメータの当該ビット深度を制御するステップが、前記ビデオブロック内の1つのサンプルについて、
前記1つのサンプルに対して水平方向に隣接する2つのサンプルの予測サンプルと前記第1のシフト値とに基づいて水平方向勾配値を取得するステップと、
前記1つのサンプルに対して垂直方向に隣接する2つのサンプルの予測サンプルと前記第1のシフト値とに基づいて垂直方向勾配値を取得するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記第1のシフト値が、6と、符号化ビット深度値から6を減じた値とのうちの大きい方に等しい、請求項2に記載の方法。
【請求項4】
前記ビデオブロック内の当該1つのサンプルについて、
前記ビデオブロックを含む符号化ブロックの制御点MVを取得するステップであって、前記制御点MVが、前記符号化ブロックの、左上
の制御点MV
、右上
の制御点MV
、および左下
の制御点MVを含む、ステップと、
前記制御点MVに基づいて導出されたアフィンモデルパラメータを取得するステップと、
前記アフィンモデルパラメータ、水平方向オフセット、および垂直方向オフセットに基づいて水平方向MV差分および垂直方向MV差分を取得するステップと、
前記水平方向MV差分を第2のシフト値だけ右シフトするステップと、
前記垂直方向MV差分を前記第2のシフト値だけ右シフトするステップと
をさらに含む、請求項2に記載の方法。
【請求項5】
前記第2のシフト値が、13から勾配値の精密なビット深度を減じたものに等しい、請求項4に記載の方法。
【請求項6】
前記勾配値の精密なビット深度が、6と、符号化ビット深度から6を減じた値とのうちの大きい方に等しい、請求項5に記載の方法。
【請求項7】
前記ビデオブロックの最
終予測サンプルを取得するステップが、
前記第1の予測サンプル用に生成され
た水平方向勾配値
、水平方向MV差分
、垂直方向勾配値、およ
び垂直方向MV差分に基づいて第1の予測改善値を取得するステップと、
前記第2の予測サンプル用に生成され
た水平方向勾配値
、水平方向動き差分
、垂直方向勾配値、およ
び垂直方向動き差分に基づいて第2の予測改善値を取得するステップと、
前記第1の予測改善値と前記第2の予測改善値との平均をとることによって前記予測改善値を取得するステップと、
前記第1の予測サンプルと、前記第2の予測サンプルと、前記予測改善値との合計に基づいて、双予測サンプルを取得するステップと、
前記合計を第3のシフト値だけ右シフトするステップと
を含む、請求項4に記載の方法。
【請求項8】
前記第1の予測サンプルの前記水平方向勾配値および前記垂直方向勾配値を取得するステップが、
前記第1の予測サンプル用の前記ビデオブロックの上境界、左境界、下境界、および右境界の各々に対して当該ビデオブロック外で隣接する予測サンプルの追加の行または列を導出するステップをさらに含む、請求項2に記載の方法。
【請求項9】
前記予測サンプルの前記追加の行または列を導出するステップが、
前記第1の参照ピクチャ内の整数参照サンプルから、当該ビデオブロック外で前記左境界および前記右境界に隣接する予測サンプルを、分数サンプル位置の左側に導出するステップと、
前記第1の参照ピクチャ内の整数参照サンプルから、当該ビデオブロック外で前記上境界および前記下境界に隣接する予測サンプルを、前記分数サンプル位置の上側に導出するステップと
をさらに含む、請求項8に記載の方法。
【請求項10】
前記予測サンプルの前記追加の行または列を導出するステップが、
当該ビデオブロック外で前記左境界および前記右境界に隣接する予測サンプルを、前記第1の参照ピクチャにおいてそれぞれの分数サンプル位置に対して水平方向に最も近い整数参照サンプルから導出するステップと、
当該ビデオブロック外で前記上境界および前記下境界に隣接する予測サンプルを、前記第1の参照ピクチャにおいて前記それぞれの分数サンプル位置に対して垂直方向に最も近い整数参照サンプルから導出するステップと
をさらに含む、請求項8に記載の方法。
【請求項11】
ビデオデータを符号化するためのコンピューティングデバイスであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体とを備え、
前記1つまたは複数のプロセッサが、
前記ビデオデータの中の現在のピクチャ内のビデオブロックに関連した第1の参照ピクチャと、前記現在のピクチャ内のビデオブロックから前記第1の参照ピクチャ内の参照ブロックへの第1の動きベクトル(MV)とを取得する処理であって、前記第1の参照ピクチャが、オーバラップしない複数のビデオブロックを含み、少なくとも1つのビデオブロックが少なくとも1つのMVに関連付けられる、処理と、
前記第1の参照ピクチャの中の前記参照ブロックのサンプルから生成されたビデオブロックの第1の予測サンプルを取得する処理と、
シフト値によるシフト演算を実行することにより内部PROF
(オプティカルフローを用いた予測改善)パラメータのビット深度を制御する処理であって、前記シフト値が、双方向オプティカルフロー(BDOF)処理で使用される勾配値の計算のための第1のシフト値を含み、前記内部PROFパラメータが
、第1の予測サンプルに関して導出された水平方向勾配値、垂直方向勾配値、水平方向動き差分および垂直方向動き差分を含む、処理と、
前記水平方向勾配値および前記垂直方向勾配値ならびに前記水平方向動き差分および前記垂直方向動き差分を基に、前記第1の予測サンプルの予測改善値を取得する処理と、
第2のMVに関連した第2の予測サンプルと
、第2の予測サンプルの対応する予測改善値とを取得する処理と、
前記第1の予測サンプルと前記第2の予測サンプルと前記予測改善値とに基づいて、前記ビデオブロックの最終予測サンプルを取得する処理と
を行うように構成されている、コンピューティングデバイス。
【請求項12】
前記シフト値による前記シフト演算を実行することにより前記内部PROFパラメータの当該ビット深度を制御するように構成されている前記1つまたは複数のプロセッサが、前記ビデオブロック内の1つのサンプルについて、
前記1つのサンプルに対して水平方向に隣接する2つのサンプルの予測サンプルと第1のシフト値とに基づいて水平方向勾配値を取得する処理と、
前記1つのサンプルに対して垂直方向に隣接する2つのサンプルの予測サンプルと前記第1のシフト値とに基づいて垂直方向勾配値を取得する処理と
を行うようにさらに構成されている、請求項11に記載のコンピューティングデバイス。
【請求項13】
前記第1のシフト値が、6と、符号化ビット深度値から6を減じた値とのうちの大きい方に等しい、請求項12に記載のコンピューティングデバイス。
【請求項14】
前記1つまたは複数のプロセッサが、前記ビデオブロック内の当該1つのサンプルについて、
前記ビデオブロックを含む符号化ブロックの制御点MVを取得する処理であって、前記制御点MVが、前記符号化ブロックの、左上
の制御点MV、右上
の制御点MV、および左下
の制御点MVを含む、処理と、
前記制御点MVに基づいて導出されたアフィンモデルパラメータを取得する処理と、
前記アフィンモデルパラメータ、水平方向オフセット、および垂直方向オフセットに基づいて水平方向MV差分および垂直方向MV差分を取得する処理と、
前記水平方向MV差分を第2のシフト値だけ右シフトする処理と、
前記垂直方向MV差分を前記第2のシフト値だけ右シフトする処理と
を行うようにさらに構成されている、請求項12に記載のコンピューティングデバイス。
【請求項15】
前記第2のシフト値が、13から勾配値の精密なビット深度を減じたものに等しい、請求項14に記載のコンピューティングデバイス。
【請求項16】
前記勾配値の精密なビット深度が、6と、符号化ビット深度から6を減じた値とのうちの大きい方に等しい、請求項15に記載のコンピューティングデバイス。
【請求項17】
前記第1の予測サンプルの前記水平方向勾配値および前記垂直方向勾配値を取得するように構成された前記1つまたは複数のプロセッサが、
前記第1の予測サンプル用の前記ビデオブロックの上境界、左境界、下境界、および右境界の各々に対して当該ビデオブロック外で隣接する予測サンプルの追加の行または列を導出するように構成されている、請求項12に記載のコンピューティングデバイス。
【請求項18】
前記予測サンプルの前記追加の行または列を導出するように構成された前記1つまたは複数のプロセッサが、
前記第1の参照ピクチャ内の整数参照サンプルから、当該ビデオブロック外で前記左境界および前記右境界に隣接する予測サンプルを、分数サンプル位置の左側に導出する処理と、
前記第1の参照ピクチャ内の整数参照サンプルから、当該ビデオブロック外で前記上境界および前記下境界に隣接する予測サンプルを、前記分数サンプル位置の上側に導出する処理と
を行うようにさらに構成されている、請求項17に記載のコンピューティングデバイス。
【請求項19】
前記予測サンプルの前記追加の行または列を導出するように構成された前記1つまたは複数のプロセッサが、
当該ビデオブロック外で前記左境界および前記右境界に隣接する予測サンプルを、前記第1の参照ピクチャにおいてそれぞれの分数サンプル位置に対して水平方向に最も近い整数参照サンプルから導出するステップと、
当該ビデオブロック外で前記上境界および前記下境界に隣接する予測サンプルを、前記第1の参照ピクチャにおいて前記それぞれの分数サンプル位置に対して垂直方向に最も近い整数参照サンプルから導出するステップと
を行うようにさらに構成されている、請求項17に記載のコンピューティングデバイス。
【請求項20】
1つまたは複数のプロセッサを有するコンピューティングデバイスにより実行されるコンピュータプログラムであって、前記1つまたは複数のプロセッサにより実行されたときに、請求項1から10のうちのいずれか一項の方法のステップを前記コンピューティングデバイスに実施させてビデオビットストリームを生成させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
【0002】
この出願は、内容の全体が参照によって本明細書に組み込まれている、2019年4月25日出願の米国仮出願第62/838,939号に基づき、優先権を主張するものである。
【0003】
この開示はビデオ符号化および圧縮に関連するものである。より具体的には、この開示は、多用途ビデオ符号化(VVC:versatile video coding)規格、すなわちオプティカルフローを用いる予測改善(PROF:prediction refinement with optical flow)および双方向オプティカルフロー(BDOF:bi-directional optical flow)にて研究されている2つのインター予測ツールに基づく方法および装置に関する。
【背景技術】
【0004】
ビデオデータを圧縮するために様々なビデオ符号化技術が使用され得る。ビデオ符号化は1つまたは複数のビデオ符号化規格に従って実行される。たとえば、ビデオ符号化規格は、多用途ビデオ符号化(VVC)、共同探索テストモデル(JEM:joint exploration test model)、高効率ビデオ符号化(H.265/HEVC)、高度ビデオ符号化(H.264/AVC)、動画エキスパートグループ(MPEG)符号化等を含む。ビデオ符号化は、一般に、ビデオピクチャまたはビデオシーケンスに存在する冗長性を活用する予測方法(たとえばインター予測、イントラ予測等)を利用するものである。ビデオ符号化技術の重点目標は、ビデオ品質の劣化の回避または最小化を行いつつ、ビデオデータを、より低いビットレートを使用する形式に圧縮することである。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の実例は、オプティカルフローを用いる予測改善のビット深度表現のための方法および装置を提供するものである。
【課題を解決するための手段】
【0006】
本開示の第1の態様によれば、ビデオ信号を復号するための、オプティカルフローを用いる予測改善(PROF)のビット深度表現方法が提供される。この方法は、ビデオ信号の中のビデオブロックに関連した第1の参照ピクチャと、現在のピクチャ内のビデオブロックから第1の参照ピクチャ内の参照ブロックへの第1の動きベクトル(MV)とを取得するステップを含み得る。第1の参照ピクチャはオーバラップしない複数のビデオブロックを含み得、少なくとも1つのビデオブロックが少なくとも1つのMVに関連付けられ得る。この方法は、第1の参照ピクチャの中の参照ブロックから生成されたビデオブロックの第1の予測サンプルI(i,j)を取得するステップをも含み得る。iおよびjは、このビデオブロックを有する1つのサンプルの座標を表し得る。この方法、内部PROFパラメータの内部ビット深度を制御するステップを含み得る。内部PROFパラメータは、予測サンプルI(i,j)に関して導出された水平方向勾配値、垂直方向勾配値、水平方向動き差分、および垂直方向動き差分を含み得る。この方法は、水平方向勾配値および垂直方向勾配値ならびに水平方向動き差分および垂直方向動き差分に基づいて第1の予測サンプルI(i,j)の予測改善値を取得するステップをさらに含み得る。この方法は、ビデオブロックが第2のMVを含み得るとき、第2のMVに関連した第2の予測サンプルI’(i,j)と、第2の予測サンプルI’(i,j)の対応する予測改善値とを取得するステップを含み得る。この方法は、第1の予測サンプルI’(i,j)と第2の予測サンプルI’(i,j)と予測改善値との組合せに基づいて、ビデオブロックの最終予測サンプルを取得するステップを含み得る。
【0007】
本開示の第2の態様によれば、映像信号を復号するための双方向オプティカルフロー(BDOF)のビット深度表現方法が提供される。この方法は、ビデオブロックに関連した第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得するステップを含み得る。表示順序では、第1の参照ピクチャI(0)は現在のピクチャの前のものでよく、第2の参照ピクチャI(1)は現在のピクチャの後のものでよい。この方法は、第1の参照ピクチャI(0)の中の参照ブロックからビデオブロックの第1の予測サンプルI(0)(i,j)を取得するステップをも含み得る。iおよびjは、現在のピクチャを有する1つのサンプルの座標を表し得る。この方法は、第2の参照ピクチャI(1)の中の参照ブロックからビデオブロックの第2の予測サンプルI(1)(i,j)を取得するステップを含み得る。この方法は、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいてビデオブロックにBDOFを適用するステップを含み得る。この方法は、パディングされた予測サンプルに基づいて第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)の水平方向勾配値および垂直方向勾配値を取得するステップを含み得る。この方法は、ビデオブロックに適用されているBDOFならびに水平方向勾配値および垂直方向勾配値に基づいてビデオブロックにおけるサンプルの動き改善を取得するステップをさらに含み得る。この方法は、動き改善に基づいてビデオブロックの双予測サンプルを取得するステップを含み得る。
【0008】
本開示の第3の態様によれば、コンピューティングデバイスが提供される。コンピューティングデバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリとを含み得る。1つまたは複数のプロセッサは、ビデオ信号の中のビデオブロックに関連した第1の参照ピクチャと、現在のピクチャ内のビデオブロックから第1の参照ピクチャ内の参照ブロックへの第1のMVとを取得するように構成され得る。第1の参照ピクチャはオーバラップしない複数のビデオブロックを含み得、少なくとも1つのビデオブロックが少なくとも1つのMVに関連付けられ得る。1つまたは複数のプロセッサは、第1の参照ピクチャの中の参照ブロックから生成されたビデオブロックの第1の予測サンプルI(i,j)を取得するようにも構成され得る。iおよびjは、このビデオブロックを有する1つのサンプルの座標を表す。1つまたは複数のプロセッサは、内部PROFパラメータの内部ビット深度を制御するように構成され得る。内部PROFパラメータは、予測サンプルI(i,j)に関して導出された水平方向勾配値、垂直方向勾配値、水平方向動き差分および垂直方向動き差分を含み得る。1つまたは複数のプロセッサは、水平方向勾配値および垂直方向勾配値ならびに水平方向動き差分および垂直方向動き差分に基づいて第1の予測サンプルI(i,j)の予測改善値を取得するようにも構成され得る。1つまたは複数のプロセッサは、ビデオブロックが第2のMVを含み得るときには、第2のMVに関連した第2の予測サンプルI’(i,j)と、第2の予測サンプルI’(i,j)の対応する予測改善値とを取得するようにも構成され得る。1つまたは複数のプロセッサは、第1の予測サンプルI(i,j)と第2の予測サンプルI’(i,j)と予測改善値との組合せに基づいて、ビデオブロックの最終予測サンプルを取得するように構成され得る。
【0009】
本開示の第4の態様によれば、コンピューティングデバイスが提供される。コンピューティングデバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリとを含み得る。1つまたは複数のプロセッサは、ビデオブロックに関連した第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得するように構成され得る。表示順序では、第1の参照ピクチャI(0)は現在のピクチャの前のものでよく、第2の参照ピクチャI(1)は現在のピクチャの後のものでよい。1つまたは複数のプロセッサは、第1の参照ピクチャI(0)の中の参照ブロックからビデオブロックの第1の予測サンプルI(0)(i,j)を取得するようにも構成され得る。iおよびjは、現在のピクチャを有する1つのサンプルの座標を表し得る。1つまたは複数のプロセッサは、第2の参照ピクチャI(1)の中の参照ブロックからビデオブロックの第2の予測サンプルI(1)(i,j)を取得するように構成され得る。1つまたは複数のプロセッサは、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいてビデオブロックにBDOFを適用するように構成され得る。1つまたは複数のプロセッサは、パディングされた予測サンプルに基づいて第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)の水平方向勾配値および垂直方向勾配値を取得するように構成され得る。1つまたは複数のプロセッサは、ビデオブロックに適用されているBDOFならびに水平方向勾配値および垂直方向勾配値に基づいて、ビデオブロックにおけるサンプルの動き改善を取得するようにさらに構成され得る。1つまたは複数のプロセッサは、動き改善に基づいてビデオブロックの双予測サンプルを取得するように構成され得る。
【0010】
上記の概要および以下の発明を実施するための形態は、例でしかなく、本開示を限定するものではないことを理解されたい。
【0011】
本明細書に組み込まれてその一部を構成する添付図面は、本開示と調和する例を示し、記述とともに本開示の原理を説明するのに役立つものである。
【図面の簡単な説明】
【0012】
【
図1】本開示の一例による符号化器のブロック図である。
【
図2】本開示の一例による復号器のブロック図である。
【
図3A】本開示の一例による複合木構造におけるブロック分割を示す図である。
【
図3B】本開示の一例による複合木構造におけるブロック分割を示す図である。
【
図3C】本開示の一例による複合木構造におけるブロック分割を示す図である。
【
図3D】本開示の一例による複合木構造におけるブロック分割を示す図である。
【
図3E】本開示の一例による複合木構造におけるブロック分割を示す図である。
【
図4】本開示の一例による双方向オプティカルフロー(BDOF)モデルを示す図である。
【
図5A】本開示の一例によるアフィンモデルを示す図である。
【
図5B】本開示の一例によるアフィンモデルを示す図である。
【
図6】本開示の一例によるアフィンモデルを示す図である。
【
図7】本開示の一例による、オプティカルフローを用いる予測改善(PROF)を示す図である。
【
図8】本開示の一例によるBDOFのワークフローである。
【
図9】本開示の一例によるPROFのワークフローである。
【
図10】本開示によるPROFのビット深度表現方法の図である。
【
図11】本開示によるBDOFのビット深度表現方法の図である。
【
図12】本開示の一例による双予測用PROFのワークフローを示す図である。
【
図13】本開示によるBDOFおよびPROFの処理のパイプラインステージを示す図である。
【
図14】本開示によるBDOFの勾配導出法を示す図である。
【
図15】本開示によるPROFの勾配導出法を示す図である。
【
図16】本開示の一例による、ユーザインタフェースと結合されたコンピューティング環境を示す図である。
【発明を実施するための形態】
【0013】
次に例示の実施形態が詳細に参照され、それらの例は添付図面に示されている。以下の説明が参照する添付図面では、異なる図面における同一の番号は、別段の表現がなければ同一または類似の要素を表す。実施形態の以下の記述で明記される実装は、本開示と調和するすべての実装を表すわけではない。むしろ、それらは、添付の特許請求の範囲において詳述される本開示に関連した態様と調和する装置および方法の例示でしかない。
【0014】
本開示で使用される専門用語は、特定の実施形態のみを説明するためのものであり、本開示を限定するように意図されたものではない。本開示および添付の特許請求の範囲で使用される単数形「1つの(a)」、「1つの(an)」、および「その(the)」は、文脈がそうでないことを明白に示さない限り複数形をも含むように意図されている。本明細書で使用される「および/または」という用語は、関連する1つまたは複数の列挙された項目のうちのいずれかまたはすべての可能な組合せを表し、かつ含むように意図されていることも理解されるものとする。
【0015】
本明細書では、様々な情報を説明するために「第1の」、「第2の」、「第3の」などの用語が使用されることがあるが、その情報はこれらの用語によって限定されるべきではないことが理解されるものとする。これらの用語は、1つのカテゴリの情報を別のものから区別するためにのみ使用される。たとえば、本開示の範囲から逸脱することなく、第1の情報は第2の情報と称されてよく、同様に、第2の情報が第1の情報と称されてもよい。本明細書で使用さる「~であれば」という用語は、状況に依拠して、「~であるとき」または「~に際して」または「~との判断に応答して」を意味するように理解されてよい。
【0016】
2013年10月に最終決定されたHEVC規格の第1のバージョンは、前の世代のビデオ符号化規格H.264/MPEG AVCに比較して約50%のビットレート節約または同等の知覚品質を提供するものである。このHEVC規格は、従来品よりも符号化を大幅に改善するが、HEVCに関する付加的な符号化ツールを用いて優れた符号化効率が達成され得ることが証明されている。それに基づいて、VCEGとMPEGの両方が、将来のビデオ符号化の規格化のために新規の符号化技術の研究作業を開始した。符号化効率の大幅な向上を可能にするはずの高度技術の有効な研究を開始するために、ITU-T VECGおよびISO/IEC MPEGによって、2015年10月に共同ビデオ探査チーム(JVET)が創設された。JVETによって、HEVCテストモデル(HM)の最上位のいくつかの追加の符号化ツールを統合することにより、共同探査モデル(JEM)と呼ばれる1つの参照ソフトウェアが維持された。
【0017】
2017年10月に、ITU-TおよびISO/IECによって、HEVCをしのぐ能力を用いるビデオ圧縮に関する提案(CfP)の共同要請が発行された。2018年4月23日に、第10回JVET会議においてCfPの返答が受領され、かつ評価されており、これはHEVCを約40%上回る圧縮効率の増加を示した。JVETは、そのような評価結果に基づいて、Versatile Video Coding(VVC)という名称の新世代ビデオ符号化規格を開発する新規プロジェクトに着手した。同じ月に、VVC規格の照合基準製品を示すために、VVCテストモデル(VTM)と呼ばれる1つの参照ソフトウェアコードベースが確立された。
【0018】
HEVCと同様に、VVCは、ブロックベースのハイブリッドビデオ符号化フレームワーク上に構築される。
図1は、VVC用のブロックベースのビデオ符号化器の一般的な図を示すものである。具体的には、
図1は一般的な符号化器100を示す。符号化器100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インターモード判定116、ブロック予測子140、加算器128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、ループ内フィルタ122、エントロピー符号化138、およびビットストリーム144を有する。
【0019】
符号化器100において、ビデオフレームは、処理のために、複数のビデオブロックに分割される。それぞれの所与のビデオブロックについて、インター予測手法またはイントラ予測手法のいずれかに基づいて予測が形成される。
【0020】
ビデオ入力110の一部である現在のビデオブロックと、ブロック予測子140の一部である現在のビデオブロックの予測値との間の差を表す予測残差が、加算器128から変換130に送られる。次いで、エントロピー低減のために、変換130から変換係数が量子化132に送られる。次いで、圧縮されたビデオビットストリームを生成するために、エントロピー符号化138に量子化係数が供給される。
図1に示されたように、イントラ/インターモード判定116からの、ビデオブロック分割情報、動きベクトル(MV)、参照ピクチャインデックス、およびイントラ予測モードなどの予測関連情報142も、エントロピー符号化138を通して供給され、圧縮されたビットストリーム144に保存される。圧縮されたビットストリーム144はビデオビットストリームを含む。
【0021】
符号化器100では、予測のために、画素を再構成するための復号器関連の回路も必要とされる。最初に、逆量子化134および逆変換136によって予測残差が再構成される。この再構成された予測残差が、ブロック予測子140と組み合わされて、現在のビデオブロックに関するフィルタリングされていない再構成された画素を生成する。
【0022】
空間予測(すなわち「イントラ予測」)は、現在のビデオブロックと同一のビデオフレームの中の既に符号化されている隣接したブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して現在のビデオブロックを予測するものである。
【0023】
時間予測(「インター予測」とも称される)は、既に符号化されているビデオピクチャから再構成された画素を使用して現在のビデオブロックを予測するものである。時間予測により、ビデオ信号に固有の時間冗長性が低下する。所与の符号化単位(CU)または符号化ブロックの時間予測信号は、通常は1つまたは複数のMVによってシグナリングされ、MVは現在のCUとその時間参照との間の動きの量および方向を指示する。さらに、複数の参照ピクチャがサポートされる場合には、1つの参照ピクチャインデックスが付加的に送られ、これは、時間予測信号が参照ピクチャ記憶領域の中のどの参照ピクチャに由来するものであるかを識別するために使用される。
【0024】
動き推定114は、ビデオ入力110とピクチャバッファ120からの信号とを取り込んで、動き推定信号を動き補償112に出力する。動き補償112は、ビデオ入力110と、ピクチャバッファ120からの信号と、動き推定114からの動き推定信号とを取り込んで、動き補償信号をイントラ/インターモード判定116に出力する。
【0025】
空間予測および/または時間予測が実行された後に、符号化器100におけるイントラ/インターモード判定116は、たとえば速度-ひずみ最適化手法に基づいて最善の予測モードを選択する。次いで、現在のビデオブロックからブロック予測子140が差し引かれ、その結果得られた予測残差は、変換130および量子化132を使用して相関除去される。その結果得られた量子化残差係数が、逆量子化134によって逆量子化され、逆変換136によって逆変換されて再構成された残差を形成し、次いで、これが予測ブロックに戻されて加算され、CUの再構成された信号を形成する。さらに、再構成されたCUは、デブロッキングフィルタなどのループ内フィルタリング122、サンプル適応オフセット(SAO)、および/または適応ループ内フィルタ(ALF)を適用されてから、ピクチャバッファ120の参照ピクチャ記憶領域に加えられ、将来のビデオブロック符号化に使用される。出力ビデオビットストリーム144を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化残差係数が、すべてエントロピー符号化ユニット138に送られて、さらに圧縮され、かつパックされてビットストリームを形成する。
【0026】
たとえば、デブロッキングフィルタは、AVC、HEVC、ならびにVVCの現行バージョンで使用可能である。HEVCでは、符号化効率をさらに改善するために、SAO(サンプル適応オフセット)と呼ばれる追加のループ内フィルタが定義されている。VVC規格の現行バージョンでは、ALF(適応ループフィルタ)と呼ばれるさらに別のループ内フィルタが積極的に研究されており、最終的な規格に含まれる可能性がある。
【0027】
これらのループ内フィルタの動作は任意選択である。これらの動作を実行すると、符号化効率および視覚品質の改善を支援する。これらのループ内フィルタは、計算の複雑性を省くために、オフになるように符号化器100によって判定されてもよい。
【0028】
これらのフィルタオプションが符号化器100によってオンにされていると、通常は、イントラ予測はフィルタリングされずに再構成された画素に基づくが、インター予測はフィルタリングして再構成された画素に基づくことに留意されたい。
【0029】
入力ビデオ信号は、ブロック(符号化単位(CU)と呼ばれる)ごとに処理される。VTM-1.0では、CUは128×128画素まであり得る。しかしながら、VVCでは、4分木に基づいてブロックを分割するのみのHEVCとは異なり、1つの符号化木単位(CTU)が、様々な局所的特性に適合するように、4分木/2分木/3分木に基づいてCUに分割される。加えて、HEVCでは、複数の分割単位タイプの概念が解消され、すなわち、VVCでは、CU、予測単位(PU)および変換単位(TU)の分離はもはや存在せず、むしろ、各CUは、さらなる分割なしで、予測と変換との両方のための基本単位として常に使用される。複合木構造では、1つのCTUが、最初に4分木構造によって分割される。次いで、各4分木のリーフノードが、2分木構造および3分木構造によってさらに分割され得る。
【0030】
図3A、
図3B、
図3C、
図3D、および
図3Eに示されるように(以下で説明される)、4分割、水平方向2分割、垂直方向2分割、水平方向3分割、および垂直方向3分割といった、5つの分割タイプがある。
【0031】
図3Aは、本開示による複合木構造におけるブロックの4分割を示す図である。
【0032】
図3Bは、本開示による複合木構造におけるブロックの垂直方向2分割を示す図である。
【0033】
図3Cは、本開示による複合木構造におけるブロックの水平方向2分割を示す図である。
【0034】
図3Dは、本開示による複合木構造におけるブロックの垂直方向3分割を示す図である。
【0035】
図3Eは、本開示による複合木構造におけるブロックの水平方向3分割を示す図である。
【0036】
図1において、空間予測および/または時間予測が実施され得る。空間予測(すなわち「イントラ予測」)は、同一のビデオピクチャ/スライスの中の既に符号化されている隣接したブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して現在のビデオブロックを予測するものである。空間予測により、ビデオ信号に固有の空間冗長性が低下する。時間予測(「インター予測」または「動き補償された予測」とも称される)は、既に符号化されているビデオピクチャから再構成された画素を使用して現在のビデオブロックを予測するものである。時間予測により、ビデオ信号に固有の時間冗長性が低下する。所与のCUの時間予測信号は、通常は1つまたは複数のMVによってシグナリングされ、MVは現在のCUとその時間参照との間の動きの量および方向を指示する。また、複数の参照ピクチャがサポートされる場合には、1つの参照ピクチャインデックスが付加的に送られ、これは、時間予測信号が参照ピクチャ記憶領域の中のどの参照ピクチャに由来するものであるかを識別するために使用される。空間予測および/または時間予測の後に、符号化器におけるモード判定ブロックは、たとえば速度-ひずみ最適化手法に基づいて最善の予測モードを選択する。次いで、現在のビデオブロックから予測ブロックが減算され、予測残差は、変換を使用して相関除去され、量子化される。量子化残差係数は、逆量子化され、逆変換されて再構成された残差を形成し、次いで、これが予測ブロックに戻されて加算され、CUの再構成された信号を形成する。さらに、再構成されたCUは、デブロッキングフィルタなどのループ内フィルタリング、サンプル適応オフセット(SAO)、および適応ループ内フィルタ(ALF:adaptive in-loop filter)を適用されてから、参照ピクチャ記憶部に加えられ、将来のビデオブロック符号化に使用される。出力ビデオビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化残差係数が、すべてエントロピー符号化ユニットに送られて、さらに圧縮され、かつパックされてビットストリームを形成する。
【0037】
図2は、VVC用のビデオ復号器の全体的なブロック図を示すものである。具体的には、
図2は一般的な復号器200のブロック図を示す。復号器200は、ビットストリーム210、エントロピー復号212、逆量子化214、逆変換216、加算器218、イントラ/インターモード選択220、イントラ予測222、メモリ230、ループ内フィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
【0038】
復号器200は、
図1の符号化器100に存在する再構成関連の部分に類似である。復号器200では、入来ビデオビットストリーム210は、量子化された係数レベルおよび予測関連情報を導出するために、最初にエントロピー復号212によって復号される。次いで、量子化された係数レベルは、再構成された予測残差を取得するために逆量子化214および逆変換216によって処理される。イントラ/インターモード選択器220に実装されるブロック予測子機構は、復号予測情報に基づいてイントラ予測222または動き補償224のいずれかを実現するように構成される。逆変換216からの再構成された予測残差と、ブロック予測子機構によって加算器218を使用して生成された予測出力とを合計することにより、フィルタリングされていない再構成された画素のセットが取得される。
【0039】
再構成されたブロックは、さらにループ内フィルタ228を通ってから、参照ピクチャ記憶部として機能するピクチャバッファ226に記憶され得る。ピクチャバッファ226の中の再構成されたビデオは、将来のビデオブロックを予測するために使用されるばかりでなく、表示デバイスを駆動するためにも送られ得る。ループ内フィルタ228がオンの状況では、最終的な再構成されたビデオ出力232を導出するために、これらの再構成された画素に対してフィルタリング動作が実行される。
【0040】
図2では、ビデオビットストリームはエントロピー復号ユニットにおいて復号された第1のエントロピーである。予測ブロックを形成するために、符号化モードおよび予測情報が、空間予測ユニット(イントラ符号化の場合)または時間予測ユニット(インター符号化の場合)のいずれかに送られる。残差ブロックを再構成するために、残差変換係数が、逆量子化ユニットおよび逆変換ユニットに送られる。次いで、予測ブロックと残差ブロックとが互いに加算される。再構成されたブロックは、さらにループ内フィルタリングを受けてから参照ピクチャ記憶領域に記憶され得る。参照ピクチャ記憶部の中の再構成されたビデオは、次いで、将来のビデオブロックを予測するために使用されるばかりでなく、表示デバイスを駆動するためにも送出され得る。
【0041】
一般に、VVCにおいて適用される基本的なインター予測技術は、いくつかのモジュールがさらに拡張され、かつ/または増強されることを除けば、HEVCのものと同一に保たれる。詳細には、すべての以前のビデオ規格について、1つの符号化ブロックが関連付けられ得るMVは、符号化ブロックが単予測されるときには1つでしかなく、符号化ブロックが双予測されるときには2つでしかない。従来のブロックベースの動き補償のそのような限界のために、動き補償の後にも予測サンプルの中に小さい動きがなお残ってしまい、したがって動き補償の全体的な効率に悪影響を及ぼす。MVの粒度と精度との両方を改善するために、VVC規格向けに、オプティカルフローに基づく、サンプルに関する2つの改善方法、すなわち双方向オプティカルフロー(BDOF)およびアフィンモード用のオプティカルフローを用いる予測改善(PROF)が現在研究されている。以下では、2つのインター符号化ツールの主要な技術的側面が簡単に再検討される。
【0042】
双方向オプティカルフロー
【0043】
VVCでは、双予測された符号化ブロックの予測サンプルを改良するためにBDOFが適用される。具体的には、BDOFを示す
図4に表されるように、BDOFは、双予測が使用されるとき、サンプルに関してブロックベースで動き補償された予測の最上位において実行される動き改善である。それぞれの4×4のサブブロックの動き改善(v
x,v
y)は、サブブロックのあたりの1つの6×6のウィンドウΩの内部にBDOFが適用された後に、L0とL1の予測サンプルの間の差を最小化することによって計算される。具体的には、(v
x,v
y)の値は次のように導出される。
【数1】
【0044】
ここで
【数2】
は床関数であり、clip3(min,max,x)は[min,max]の範囲内の所与の値xをクリップする関数であり、記号>>はビット単位の右シフト演算を表し、記号<<はビット単位の左シフト演算を表し、th
BDOFは、不規則な局所的動きによる伝搬誤差を予防するための動き改善閾値であって、1<<max(5,bit-depth-7)に等しく、bit-depthは内部ビット深度である。式(1)において次式が成立する。
【数3】
【0045】
S
1、S
2、S
3、S
5およびS
6の値は、以下のように計算される。
【数4】
【0046】
【0047】
ここで、I(k)(i,j)は、中間精度(すなわち16ビット)で生成されたリストk(k=0、1)における予測信号の、座標(i,j)におけるサンプル値である。
【0048】
【数6】
は、それぞれサンプルの水平方向勾配および垂直方向勾配であり、以下のように2つの隣接したサンプルの間の差を直接計算することによって取得される。
【数7】
【0049】
式(1)で導出された動き改善を基に、次の式によって指示されるように、オプティカルフローモデルに基づく動作軌道に沿ってL0/L1予測サンプルを補間することにより、CUの最終的な双予測サンプルが計算される。
【数8】
ここで、shiftおよびo
offsetは、双予測のためにL0予測信号とL1予測信号とを組み合わせるように適用される右シフト値およびオフセット値であって、それぞれ、15-BDおよび1<<(14-BD)+2・(1<<13)に等しい。上記のビット深度制御方法に基づき、全体のBDOF処理の中間パラメータの最大のビット深度は32ビットを超過せず、また乗算に対する最大の入力は15ビット以内であるため、BDOFを実現するためには15ビットの乗算器が1つあれば十分である。
【0050】
アフィンモード
【0051】
HEVCでは、動き補償された予測に適用されるのは並進運動モデルのみである。現実世界では、たとえばズームイン/ズームアウト、回転、視点の運動、および他の不規則運動といったいろいろな運動がある。VVCでは、各インター符号化ブロックに対して、インター予測のために並進運動モデルまたはアフィン運動モデルを適用するかどうかを指示する1つのフラグをシグナリングすることにより、アフィン動き補償された予測が適用される。現在のVVC設計では、1つのアフィン符号化ブロックについて、4パラメータのアフィンモードおよび6パラメータのアフィンモードを含む2つのアフィンモードがサポートされる。
【0052】
4パラメータ・アフィンモデルは、水平方向並進運動のパラメータ、垂直方向並進運動のパラメータ、ズーム運動のパラメータ、および両方向の回転運動のパラメータを有する。水平ズームパラメータは垂直ズームパラメータに等しい。水平回転パラメータは垂直回転パラメータに等しい。VVCでは、MVおよびアフィンパラメータのより優れた調整を達成するために、それらのアフィンパラメータは、現在のブロックの左上隅および右上隅に配置された2つのMV(制御点動きベクトル(CPMV)とも呼ばれる)に変換される。
図5Aおよび
図5Bに示されるように、ブロックのアフィン動きフィールドは2つの制御点MV(V
0,V
1)によって記述される。
【0053】
図5Aは、4パラメータ・アフィンモデルを示す図である。
図5Bは、4パラメータ・アフィンモデル示す図である。制御点の動きに基づき、1つのアフィン符号化ブロックの動きフィールド(v
x,v
y)は次のように記述される。
【数9】
【0054】
6パラメータのアフィンモードは、水平方向並進運動のパラメータ、垂直方向並進運動のパラメータ、水平方向におけるズーム運動のパラメータおよび回転運動のパラメータ、ならびに垂直方向におけるズーム運動のパラメータおよび回転運動のパラメータを有する。6パラメータのアフィン動きモデルは、3つのCPMVにおける3つのMVを用いて符号化される。
【0055】
図6は、6パラメータ・アフィンモデルを示す図である。
図6に示されるように、1つの6パラメータのアフィンブロックの3つの制御点が、ブロックの左上隅、右上隅、および左下隅に配置されている。左上制御点の動きは並進運動に関連付けられており、右上制御点の動きは、水平方向における回転運動およびズーム運動に関連付けられており、左下制御点の動きは、垂直方向における回転運動およびズーム運動に関連付けられている。4パラメータのアフィン動きモデルと比較して、6パラメータの水平方向の回転運動およびズーム運動は、垂直方向のものと同一でなくてよい。
図6における現在のブロックの左上隅、右上隅、および左下隅のMVが(V
0,V
1,V
2)であると仮定すると、各サブブロックのMV(v
x,v
y)は、制御点における3つのMVを使用して次のように導出される。
【数10】
【0056】
アフィンモード用のPROF
【0057】
アフィン動き補償の精度を改善するために、現在のVVCにおいてPROFが現在研究されおり、これは、オプティカルフローモデルに基づくサブブロックベースのアフィン動き補償を改良するものである。具体的には、サブブロックベースのアフィン動き補償を実行した後に、オプティカルフローの式を基に導出された1つのサンプル改善値によって、1つのアフィンブロックの輝度予測サンプルが修正される。詳細には、PROFの動作は以下の4つのステップとして概説され得る。
【0058】
ステップ1:4パラメータ・アフィンモデル用に式(6)で導出されたサブブロックMVおよび6パラメータ・アフィンモデル用に式(7)で導出されたサブブロックMVを使用してサブブロック予測I(i,j)を生成するために、サブブロックベースのアフィン動き補償が実行される。
【0059】
ステップ2:各予測サンプルの空間的勾配g
x(i,j)およびg
y(i,j)が次のように計算される。
【数11】
【0060】
勾配を計算するために、一つのサブブロックの両側に、予測サンプルの1つの付加的な行/列を生成する必要がある。メモリ帯域幅および複雑さを低減するために、拡張された境界上のサンプルは参照ピクチャにおける最も近い整数画素位置からコピーされ、追加の補間処理を回避する。
【0061】
ステップ3:輝度予測改善値が次式で計算される。
【数12】
ここで、Δv(i,j)は、v(i,j)で表されたサンプル位置(i,j)に関して計算された画素MVと、画素(i,j)があるサブブロックのサブブロックMVとの間の差である。
【0062】
ステップ4:現在のPROF設計において、当初の予測サンプルに対して予測改善を付加した後に、改良された予測サンプルの値が15ビット以内になるようにクリップするために、以下のようにクリップ動作が1回実行される。
【数13】
ここで、I(i,j)は、ある位置(i,j)における元の予測サンプルであり、I
r(i,j)は、その位置(i,j)における改良された予測サンプルである。
【0063】
図7は、アフィンモード用PROF処理を示す図である。
【0064】
アフィンモデルのパラメータおよびサブブロック中心に対する画素位置がサブブロックごとに変化することはないため、第1のサブブロックに関してΔv(i,j)を計算して、同一のCUの間の他のサブブロック用に再使用することができる。サンプル位置(i,j)からサンプルが属するサブブロックの中心までの水平方向オフセットをΔxとし、垂直方向オフセットをΔyとすれば、Δv(i,j)は以下のように導出され得る。
【数14】
【0065】
MV差分Δv(i,j)は、アフィンサブブロックのMVの導出式(6)および(7)に基づいて導出され得る。具体的には、4パラメータ・アフィンモデルについては、次のようになる。
【数15】
【0066】
6パラメータ・アフィンモデルについては、次のようになる。
【数16】
ここで(v
0x,v
0y)、(v
1x,v
1y)、(v
2x,v
2y)は現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wはブロックの幅であって、hはブロックの高さである。既存のPROF設計では、MV差分Δv
xおよびΔv
yは、常に32分の1画素精度で導出される。
【0067】
アフィンモードの符号化効率
【0068】
PROFはアフィンモードの符号化効率を向上させることができるが、その設計はさらに改善され得る。特に、PROFとBDOFとの両方がオプティカルフロー概念の上に成り立っているという事実を考えれば、ハードウェアの実装を助長するために、PROFがBDOFの既存の論理回路を最大限に活用し得るように、PROFの設計とBDOFの設計とをできるだけ調和させることが非常に好ましい。そのような考察に基づき、現在のPROF設計とBDOF設計との間の相互作用に関する以下の問題が、この開示において明らかにされる。
【0069】
「アフィンモード用のPROF」の段落で説明されたように、式(8)では、勾配の精度は内部ビット深度に基づいて判定される。他方では、MV差分すなわちΔvxおよびΔvyは、常に32分の1画素精度で導出される。それに応じて、式(9)に基づき、導出されるPROF改善の精度は内部ビット深度に依拠する。しかしながら、BDOFと同様に、PROFは、PROF導出のより高い精度を維持するために、中間ビット深度(すなわち16ビット)において、予測サンプル値の最上位のものに適用される。したがって、PROFによって導出される予測改善の精度は、内部符号化ビット深度には関係なく、中間の予測サンプルすなわち16ビットの精度に整合させるべきである。言い換えれば、既存のPROF設計におけるMV差分および勾配の表現のビット深度は、予測サンプル精度(すなわち16ビット)に対する正確な予測改善を導出するように完全に整合するわけではない。その一方で、式(1)、(4)、および(8)の比較に基づいて、既存のPROFおよびBDOFは、サンプル勾配およびMV差分を表すために別々の精度を使用する。以前に指摘されたように、そのような一体化されていない設計は、既存のBDOF論理を再利用することができないので、ハードウェアに関して望ましくない。
【0070】
「アフィンモード用のPROF」の段落で論じられたように、現在のアフィンブロックの1つが双予測されるとき、PROFは、リストL0およびL1における予測サンプルに個別に適用され、次いで、向上されたL0およびL1の予測信号が平均されて最終的な双予測信号を生成する。むしろ、それぞれの予測方向についてPROF改善を個別に導出する代わりに、BDOFが予測改善を1回導出し、次いで、これが、組み合わされたL0とL1の予測信号を良くするために適用される。
【0071】
図8および
図9(以下で説明される)は、現在のBDOFのワークフローと双予測用のPROFとを比較するものである。実際のコーデックのハードウェアのパイプライン設計では、より多くの符号化ブロックが並行して処理され得るように、通常はそれぞれのパイプラインステージに別々の主要な符号化モジュール/復号モジュールが割り当てられる。しかしながら、BDOFのワークフローとPROFのワークフローとの間に違いがあるので、BDOFとPROFとによる同一のパイプライン設計の共用が困難になり得、実際のコーデックの実装にとって都合が悪い。
【0072】
図8はBDOFのワークフローを示す。ワークフロー800はL0動き補償810、L1動き補償820、およびBDOF830を含む。L0動き補償810は、たとえば以前の参照ピクチャからの動き補償サンプルのリストであり得る。以前の参照ピクチャは、ビデオブロックにおける現在のピクチャよりも以前の参照ピクチャである。L1動き補償820は、たとえば次の参照ピクチャからの動き補償サンプルのリストであり得る。次の参照ピクチャは、ビデオブロックにおける現在のピクチャの後の参照ピクチャである。上記の
図4に関して説明されたように、BDOF830は、L1動き補償810およびL1動き補償820から動き補償サンプルを取り込んで予測サンプルを出力する。
【0073】
図9は既存のPROFのワークフローを示す。ワークフロー900は、L0動き補償910、L1動き補償920、L0PROF930、L1PROF940、および平均化960を含む。L0動き補償910は、たとえば以前の参照ピクチャからの動き補償サンプルのリストであり得る。以前の参照ピクチャは、ビデオブロックにおける現在のピクチャよりも以前の参照ピクチャである。L1動き補償920は、たとえば次の参照ピクチャからの動き補償サンプルのリストであり得る。次の参照ピクチャは、ビデオブロックにおける現在のピクチャの後の参照ピクチャである。L0PROF930は、上記の
図7に関して説明されたように、L0動き補償910からL0動き補償サンプルを取り込んで動き改善値を出力する。L1PROF940は、上記の
図7に関して説明されたように、L1動き補償920からL1動き補償サンプルを取り込んで動き改善値を出力する。平均化960は、L0PROF930の動き改善値出力とL1PROF940の動き改善値出力とを平均する。
【0074】
BDOFとPROFとの両方について、現在の符号化ブロックの内部の各サンプルの勾配を計算する必要があり、そのためブロックの両側に予測サンプルの1つの付加的な行/列を生成する必要がある。サンプル補間の計算がさらに複雑になるのを回避するために、ブロックのまわりの拡張領域の予測サンプルは、整数位置における参照サンプルから(すなわち補間なしで)直接コピーされる。しかしながら、既存の設計によれば、BDOFの勾配値の生成とPROFの勾配値の生成では、異なる位置における整数サンプルが選択される。具体的には、BDOFについては、予測サンプルの左にある整数参照サンプル(水平方向勾配用)、および予測サンプルの上にある整数参照サンプル(垂直方向勾配用)が勾配計算に使用され、PROFについては、予測サンプルに対して最も近い整数参照サンプルが勾配計算に使用される。ビット深度の表現問題と同様に、そのような一体化されていない勾配計算方法もハードウェアのコーデックの実装にとって望ましくない。
【0075】
以前に指摘されたように、PROFの動機は、各サンプルのMVとサンプルが属するサブブロックの中心において導出されるサブブロックのMVとの間の小さいMV差分を補償することである。現在のPROF設計によれば、アフィンモードによって1つの符号化ブロックが予測されるとき、PROFが常に呼び出される。しかしながら、式(6)および(7)において指示されるように、1つのアフィンブロックのサブブロックのMVは制御点MVから導出される。したがって、制御点MVの間の差が比較的小さいときには、各サンプル位置におけるMVは安定しているはずである。そのような場合には、PROFを適用する利益がまさに制限されてしまうので、性能/複雑さのトレードオフを考えれば、PROFを実行する価値はないであろう。
【0076】
PROFを使用したアフィンモードの効率改善
【0077】
この開示では、ハードウェアのコーデックの実装を助長するために、既存のPROF設計を改善して簡単にするための方法が提供される。詳細には、既存のBDOF論理をPROFと最大限に共用するために、BDOFの設計とPROFの設計とを調和させるように特に配慮される。一般に、この開示で提案される技術の主要な態様は、下記のように概説される。
【0078】
図10は、本開示による、ビデオ信号を復号するためのPROFのビット深度表現方法を示す。
【0079】
ステップ1010において、ビデオ信号の中のビデオブロックに関連した第1の参照ピクチャと、現在のピクチャ内のビデオブロックから第1の参照ピクチャ内の参照ブロックへの第1のMVとを取得する。第1の参照ピクチャはオーバラップしない複数のビデオブロックを含み、少なくとも1つのビデオブロックが少なくとも1つのMVに関連付けられる。たとえば、参照ピクチャは、現在符号化されるピクチャに隣接したビデオピクチャでよい。
【0080】
ステップ1012において、第1の参照ピクチャの中の参照ブロックから生成されたビデオブロックの第1の予測サンプルI(i,j)を取得する。iおよびjは、このビデオブロックを有する1つのサンプルの座標を表し得る。たとえば、予測サンプルI(i,j)は、表示順序における以前の参照ピクチャのL0のリストにおけるMVを使用する予測サンプルでよい。
【0081】
ステップ1014において、内部PROFパラメータの内部ビット深度を制御する。内部PROFパラメータは、予測サンプルI(i,j)に関して導出された水平方向勾配値、垂直方向勾配値、水平方向動き差分および垂直方向動き差分を含む。
【0082】
ステップ1016において、水平方向勾配値および垂直方向勾配値ならびに水平方向動き差分および垂直方向動き差分を基に、第1の予測サンプルI(i,j)の予測改善値を取得する。
【0083】
ステップ1018において、ビデオブロックが第2のMVを含むときには、第2のMVに関連した第2の予測サンプルI’(i,j)と、第2の予測サンプルI’(i,j)の対応する予測改善値とを取得する。
【0084】
ステップ1020において、第1の予測サンプルI(i,j)と第2の予測サンプルI’(i,j)と予測改善値との組合せに基づいて、ビデオブロックの最終予測サンプルを取得する。
【0085】
第1に、もう1つの統合設計を達成する一方でPROFの符号化効率を改善するために、BDOFおよびPROFによって使用されるサンプル勾配およびMV差分の表現のビット深度を一体化するための1つの方法が提案される。
【0086】
第2に、ハードウェアパイプライン設計を容易にするために、PROFのワークフローを双予測用のBDOFのワークフローと調和させることが提案される。具体的には、提案された方法は、L0とL1とについて予測改善を個別に導出する既存のPROFと異なり、予測改善を1回導出して、これを、組み合わされたL0およびL1の予測信号に適用する。
【0087】
第3に、BDOFおよびPROFによって使用される勾配値を計算するために整数参照サンプルの導出を調和させるための2つの方法が提案される。
【0088】
第4に、計算の複雑さを軽減するために、ある特定の条件が満たされたときアフィン符号化ブロック用のPROF処理を適応的に抑止するための早期終了方法が提案される。
【0089】
PROF勾配およびMV差分の、改善されたビット深度の表現設計
【0090】
「PROFを使用してアフィンモードの効率を改善すること」の段落で分析されたように、現在のPROFでは、MV差分およびサンプル勾配のビット深度の表現は、正確な予測改善を導出するために一致されない。その上に、サンプル勾配およびMV差分の表現のビット深度は、BDOFとPROFとの間で一貫せず、ハードウェアにとって都合が悪い。この段落では、BDOFのビット深度表現方法をPROFまで拡張することによって改善されるビット深度の表現方法が1つ提案される。具体的には、提案される方法では、各サンプル位置における水平方向勾配および垂直方向勾配は以下のように計算される。
【数17】
【0091】
加えて、1つのサンプル位置から、サンプルが属するサブブロックの中心まで4分の1画素精度で表された水平方向オフセットおよび垂直方向オフセットがΔxおよびΔyであると想定して、サンプル位置における対応するPROFのMV差分Δv(x,y)は以下のように導出される。
【数18】
【0092】
ここで、dMvBitsは、BDOF処理によって使用される勾配値のビット深度であり、すなわち、次のとおりである。
【数19】
【0093】
式(11)および(12)において、c、d、eおよびfは、アフィン制御点MVを基に導出されるアフィンパラメータである。具体的には、4パラメータ・アフィンモデルについては、次のとおりである。
【数20】
【0094】
6パラメータ・アフィンモデルについては、次のとおりである。
【数21】
ここで(v
0x,v
0y)、(v
1x,v
1y)、(v
2x,v
2y)は現在の符号化ブロックの左上、右上、および左下の制御点MVであって16分の1画素精度で表現され、wはブロックの幅であり、hはブロックの高さである。
【0095】
双予測用のBDOFおよびPROFの調和されたワークフロー
【0096】
以前に論じたように、1つのアフィン符号化ブロックが双予測されるとき、現在のPROFは単独的なやり方で適用される。より具体的には、PROFサンプル改善は個別に導出され、リストL0およびL1において予測サンプルに適用される。その後、それぞれリストL0およびL1からの改良された予測信号が平均されてブロックの最終的な双予測信号を生成する。これは、サンプル改善が導出されて双予測信号に適用されるBDOF設計と対照的である。そのため、BDOFとPROFとの双予測ワークフローの間の差が、実際のコーデックのパイプライン設計にとって不都合になり得る。
【0097】
図11は、本開示による、ビデオ信号を復号するためのBDOFのビット深度表現方法を示す。
【0098】
ステップ1110において、ビデオブロックに関連した第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得する。表示順序において、第1の参照ピクチャI(0)は現在のピクチャの前のものであり、第2の参照ピクチャI(1)は現在のピクチャの後のものである。たとえば、参照ピクチャは、現在符号化されるピクチャに隣接したビデオピクチャでよい。
【0099】
ステップ1112において、第1の参照ピクチャI(0)の中の参照ブロックからビデオブロックの第1の予測サンプルI(0)(i,j)を取得する。iおよびjは、現在のピクチャを有する1つのサンプルの座標を表し得る。
【0100】
ステップ1114において、第2の参照ピクチャI(1)の中の参照ブロックからビデオブロックの第2の予測サンプルI(1)(i,j)を取得する。
【0101】
ステップ1116において、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいてビデオブロックにBDOFを適用する。
【0102】
ステップ1118において、パディングされた予測サンプルに基づいて第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)の水平方向勾配値および垂直方向勾配値を取得する。
【0103】
ステップ1120において、ビデオブロックに適用されているBDOFならびに水平方向勾配値および垂直方向勾配値に基づいて、ビデオブロックにおけるサンプルの動き改善を取得する。
【0104】
ステップ1122において、動き改善に基づいてビデオブロックの双予測サンプルを取得する。
【0105】
現在の開示によれば、ハードウェアパイプライン設計を容易にするための簡略化方法の1つは、2つの予測改善方法のワークフローを調和させるようにPROFの双予測プロセスを修正するものである。具体的には、それぞれの予測方向に対して個別に改善を適用する代わりに、提案されたPROF方法は、リストL0およびL1の制御点MVを基に予測改善を1回導出し、次いで、導出された予測改善が、組み合わされたL0とL1との予測信号に適用されて品質を向上させる。具体的には、提案された方法により、式(12)で導出されたようなMV差分を基に、1つのアフィン符号化ブロックの最終的な双予測サンプルが以下のように計算される。
【数22】
ここで、shiftおよびo
offsetは、双予測のためにL0予測信号とL1予測信号とを組み合わせるように適用される右シフト値およびオフセット値であって、それぞれ、(15-bit-depth)および1<<(14-bit-depth)+(2<<13)に等しい。さらに、提案された方法では、式(13)に示されるように、(式(9)に示されるような)既存のPROF設計におけるクリップ動作が解消される。
【0106】
図12は、提案された双予測PROF方法が適用されるときのPROF処理を示す図である。PROF処理1200は、L0動き補償1210、L1動き補償1220、および双予測PROF1230を含む。L0動き補償1210は、たとえば以前の参照ピクチャからの動き補償サンプルのリストであり得る。以前の参照ピクチャは、ビデオブロックにおける現在のピクチャよりも以前の参照ピクチャである。L1動き補償1220は、たとえば次の参照ピクチャからの動き補償サンプルのリストであり得る。次の参照ピクチャは、ビデオブロックにおける現在のピクチャの後の参照ピクチャである。双予測PROF1230は、上記で説明されたように、L1動き補償1210およびL1動き補償1220から動き補償サンプルを取り込んで双予測サンプルを出力する。
【0107】
図13は、BDOFと提案されたPROFとの両方が適用されるときの、例示的なパイプラインステージを示す図である。
図13は、ハードウェアパイプライン設計のための提案された方法の、可能性のある利点を明示するものである。パイプラインステージ1300は、MVを解析/復号して、参照サンプル1310、動き補償1320、BDOF/PROF1330を取り込むことを含む。パイプラインステージ1300は、ビデオブロックBLK0、BKL1、BKL2、BKL3、およびBLK4を符号化する。各ビデオブロックが、MVを解析/復号して参照サンプルを取り込む1310から始まって、動き補償1320、次いで動き補償1320、BDOF/PROF1330へと順次に移る。これは、BLK0が動き補償1320に移るまで、パイプラインステージ1300の処理においてBLK0が始まらないことを意味する。T0からT1、T2、T3、およびT4までの時間において、すべてのステージおよびビデオブロックについて同様である。
【0108】
図13では、1つのインターブロックの復号処理が、主として下記の3つのステップを含む。
【0109】
第1に、符号化ブロックのMVを解析/復号し、参照サンプルを取り込む。
【0110】
第2に、符号化ブロックのL0および/またはL1の予測信号を生成する。
【0111】
第3に、符号化ブロックが、1つの非アフィンモードによって予測されるときにはBDOFを基に、アフィンモードによって予測されるときにはPROFを基に、生成された双予測サンプルのサンプルに関する改善を実施する。
【0112】
図13に示されるように、提案された調和方法が適用された後にBDOFとPROFとの両方が双予測サンプルに直接適用される。BDOFとPROFとが、異なるタイプの符号化ブロックに適用される(すなわち、BDOFが非アフィンブロックに適用され、PROFがアフィンブロックに適用される)場合には、2つの符号化ツールを同時に呼び出すことはできない。したがって、これらの対応する復号処理は、同一のパイプラインステージを共用することによって行われ得る。既存のPROF設計では、BDOFとPROFとで双予測のワークフローが異なるため、両方に同一のパイプラインステージを割り当てるのが困難であるのに対し、提案された方法はより効率的である。
【0113】
上記の議論では、提案された方法が考慮に入れるのは、BDOFのワークフローとPROFのワークフローとの調和のみである。しかしながら、既存の設計によれば、2つの符号化ツール用の基本的な作業単位も、異なるサイズで実行される。具体的には、BDOFについては、1つの符号化ブロックがWS×HSのサイズを有する複数のサブブロックに分割され、Wは符号化ブロックの幅であってWS=min(W,16)であり、Hは符号化ブロックの高さであってHS=min(H,16)である。勾配計算およびサンプル改善導出などのBODF動作は、各サブブロックに対して別々に実行される。他方では、以前に説明されたように、アフィン符号化ブロックは4×4のサブブロックに分割され、各サブブロックに、4パラメータ・アフィンモデルまたは6パラメータ・アフィンモデルに基づいて導出された個別の1つのMVが割り当てられる。PROFが適用されるのはアフィンブロックのみであるため、PROFの基本動作単位は4×4のサブブロックである。双予測のワークフローの問題と同様に、PROF用にBDOFのものと異なる基本的な作業単位サイズを使用することは、ハードウェアの実装にとって不都合であり、BDOFとPROFとで全復号処理の同一のパイプラインステージを共用するのが困難になる。一実施形態では、そのような問題を解決するために、アフィンモードのサブブロックサイズをBDOFのものと一致させることが提案される。具体的には、提案される方法によれば、1つの符号化ブロックが、アフィンモードによって符号化される場合には、WS×HSのサイズを有するサブブロックに分割されることになり、Wは符号化ブロックの幅であってWS=min(W,16)であり、Hは符号化ブロックの高さであってHS=min(H,16)である。各サブブロックが1つの個別のMVを割り当てられ、PROFの1つの独立した作業単位とみなされる。独立したPROF作業単位により、最上位のPROF動作は、隣接したPROF作業単位からの情報を参照することなく実行されることが保証されることは言及に値する。具体的には、1つのサンプル位置におけるPROFのMV差分は、サンプル位置におけるMVと、サンプルが位置するPROFの作業単位の中心におけるMVとの間の差として計算され、PROF導出によって使用される勾配は、各PROF作業単位に沿ってサンプルをパディングすることによって計算される。提案された方法は、1)動き補償およびBDOF/PROF改善の両方のための統合された基本的な作業単位サイズを用いてパイプラインアーキテクチャが簡素化され、2)アフィン動き補償用の拡大されたサブブロックサイズのために、メモリ帯域幅の使用が低減され、3)サンプルごとの、分数サンプル補間の計算の複雑さが軽減される、といった3つの態様を主に含むことの利益を主張するものである。
【0114】
提案された方法では、計算の複雑さが軽減される(すなわち3番目の態様)ので、アフィン符号化ブロック用の既存の6タップ補間フィルタの制約が解消され得る。むしろ、非アフィン符号化ブロック用のデフォルトの8タップ補間もアフィン符号化ブロックのために使用される。この場合の全体的な計算の複雑さは、6タップ補間フィルタを用いる4×4のサブブロックに基づく既存のPROF設計と比較して、なお有利であり得る。
【0115】
BDOFおよびPROF用の勾配導出の調和
【0116】
以前に説明されたように、BDOFとPROFとの両方が現在の符号化ブロックの内部の各サンプルの勾配を計算し、ブロックの両側で、予測サンプルの1つの付加的な行/列にアクセスする。追加の補間の複雑さを回避するために、ブロック境界のあたりの拡張領域において必要とされる予測サンプルは、整数参照サンプルから直接コピーされる。しかしながら、「問題の表明」の段落で指摘されたように、BDOFの勾配値およびPROFの勾配値を計算するために別々の位置における整数サンプルが使用される。
【0117】
もう1つの一律な設計を達成するために、BDOFによって使用される勾配導出法とPROFによって使用される勾配導出法とを一体化するための2つの方法が以下で開示される。第1の方法では、PROFの勾配導出法をBDOFのものと同一にすることが提案される。具体的には、第1の方法によって、拡張領域における予測サンプルを生成するために使用される整数位置は、分数サンプル位置を切り捨てることによって決定され、すなわち、(水平方向勾配用)分数サンプル位置の左の整数サンプル位置と、(垂直方向勾配用)分数サンプル位置の上の整数サンプル位置とが選択される。
【0118】
第2の方法では、BDOFの勾配導出法をPROFのものと同一にすることが提案される。より詳細には、第2の方法が適用されたとき、勾配計算のために使用されるのは、予測サンプルに対して最も近い整数参照サンプルである。
【0119】
図14は、BDOFの勾配導出法を使用する一例を示すものであり、白い円は整数位置の参照サンプル1410を表し、三角形は現在のブロックの分数の予測サンプル1430を表し、灰色の円は現在のブロックの拡張領域を埋めるために使用される整数参照サンプル1420を表す。
【0120】
図15は、PROFの勾配導出法を使用する一例を示すものであり、白い円は整数位置の参照サンプル1510を表し、三角形は現在のブロックの分数の予測サンプル1530を表し、灰色の円は現在のブロックの拡張領域を埋めるために使用される整数参照サンプル1520を表す。
【0121】
図14および
図15は、それぞれ第1の方法(
図14)および第2の方法(
図15)が適用されるとき、BDOF用の勾配およびPROF用の勾配を導出するために使用される対応する整数サンプルの位置を表すものである。
図14および
図15において、白い円は整数位置の参照サンプルを表し、三角形は現在のブロックの分数の予測サンプルを表し、灰色の円は勾配導出のために現在のブロックの拡張領域を埋めるように使用される整数参照サンプルを表す。
【0122】
制御点MV差分に基づくPROFの早期終了
【0123】
現在のPROF設計によれば、アフィンモードによって1つの符号化ブロックが予測されるとき、PROFが常に呼び出される。しかしながら、式(6)および(7)において指示されるように、1つのアフィンブロックのサブブロックのMVは制御点MVから導出される。したがって、制御点MV間の差が比較的小さいときには、各サンプル位置におけるMVは安定しているはずである。そのような場合には、PROFを適用する利点はまさに制限されるであろう。したがって、PROFの平均的な計算の複雑さをさらに軽減するために、1つの4×4のサブブロックの内部で、サンプルに関するMVとサブブロックに関するMVとの最大のMV差分を基に、PROFベースのサンプル改善を適応的にスキップすることが提案される。1つの4×4のサブブロックの内部では、サブブロック中心のまわりでサンプルのPROFのMV差分の値が対称であるため、水平方向PROFの最大MV差分および垂直方向PROFの最大MV差分は、式(10)に基づいて以下のように計算され得る。
【数23】
【0124】
現在の開示によれば、PROF処理をスキップするために、MV差分が十分に小さいかどうかを判定するのに、異なるメトリックが使用され得る。
【0125】
一例では、水平方向の最大MV差分の絶対値と垂直方向の最大MV差分の絶対値との合計が1つの所定の閾値よりも小さいとき、すなわち、次式が成立するとき、式(14)に基づいてPROF処理はスキップされ得る。
【数24】
【0126】
別の例では、以下に示すように|Δv
x
max|および|Δv
y
max|の最大値が閾値以下であれば、PROF処理はスキップされ得る。
【数25】
【0127】
MAX(a,b)は、入力値aとbのうちの大きい方の値を返す関数である。
【0128】
上記の2つの例に加えて、PROF処理をスキップするためにMV差分が十分に小さいかどうかを判定するのに他のメトリックが使用されるとき、現在の開示の趣旨はその場合にも適用可能である。
【0129】
上記の方法では、PROFはMV差分の大きさを基にスキップされる。他方では、MV差分に加えて、PROFサンプル改善はまた、1つの動き補償されたブロックの中の各サンプル位置における局所的な勾配情報を基に計算される。高周波数の細部がより少ない予測ブロック(たとえば平坦な部位)については、勾配値が小さくて、導出されるサンプル改善の値が小さくなる傾向がある。このことを考慮に入れて、現在の開示の別の態様によれば、十分に高い周波数の情報を含むブロックの予測サンプルにのみPROFを適用することが提案される。
【0130】
あるブロックがPROF処理を呼び出す価値があるほど十分に高い周波数の情報を含むかどうかを判定するのに、種々のメトリックが使用され得る。一例では、予測ブロックの中のサンプルの勾配の平均の大きさ(すなわち絶対値)に基づいて判断される。平均の大きさが1つの閾値よりも小さければ、予測ブロックは平坦な部位として分類され、PROFを適用されるべきではなく、そうでなければ、予測ブロックは十分に高い周波数の細部を含むとみなされ、PROFはなお適用可能である。別の例では、予測ブロックの中のサンプルの勾配の最大の大きさが使用され得る。最大の大きさが1つの閾値よりも小さければ、このブロックに対するPROFはスキップされる。さらに別の例では、予測ブロックの最大のサンプル値と最小のサンプル値との間の差Imax-Iminが、このブロックに対してPROFを適用するべきかどうかを判定するために使用され得る。そのような差値が閾値よりも小さければ、このブロックに対するPROFはスキップされる。本開示の趣旨は、所与のブロックが十分に高い周波数の情報を含むか否かを判定するのに何らかの他のメトリックが使用される場合にも適用可能であることに注目するべきである。
【0131】
図16は、ユーザインタフェース1660と結合されたコンピューティング環境1610を示す。コンピューティング環境1610はデータ処理サーバの一部であり得る。コンピューティング環境1610は、プロセッサ1620、メモリ1640、および入出力インタフェース1650を含む。
【0132】
プロセッサ1620は、一般的には、表示、データ収集、データ通信、および画像処理に関連した動作などのコンピューティング環境1610の全体的な動作を制御する。プロセッサ1620は、前述の方法におけるステップのすべてまたはいくつかを実施する命令を実行するための1つまたは複数のプロセッサを含み得る。その上に、プロセッサ1620は、プロセッサ1620と他の構成要素との間の相互作用を容易にする1つまたは複数のモジュールを含み得る。プロセッサは、中央処理装置(CPU)、マイクロプロセッサ、単一チップマシン、GPU等でよい。
【0133】
メモリ1640は、コンピューティング環境1610の動作をサポートするために様々なタイプのデータを記憶するように構成されている。メモリ1640は所定のソフトウェア1642を含み得る。そのようなデータの例は、コンピューティング環境1610、ビデオデータセット、画像データなどに対して動作する任意のアプリケーションまたは方法のための命令を含む。メモリ1640は、静的ランダムアクセスメモリ(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)、磁気メモリ、フラッシュメモリ、磁気ディスクまたは光ディスクなどの、任意のタイプの揮発性もしくは不揮発性のメモリデバイスまたはその組合せを使用することによって実現され得る。
【0134】
入出力インタフェース1650は、プロセッサ1620と、キーボード、クリックホイール、ボタンなどの周辺インタフェースモジュールとの間のインタフェースをもたらす。ボタンは、限定はしないが、ホームボタン、走査開始ボタン、および走査停止ボタンを含み得る。入出力インタフェース1650は符号化器および復号器と結合され得る。
【0135】
一実施形態では、前述の方法を実施するために、メモリ1640に含まれるものなど、コンピューティング環境1610においてプロセッサ1620によって実行可能な複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。たとえば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光学データ記憶デバイス等でよい。
【0136】
非一時的コンピュータ可読記憶媒体には、1つまたは複数のプロセッサを有するコンピューティングデバイスによって実行するための複数のプログラムが記憶されており、複数のプログラムは、1つまたは複数のプロセッサによって実行されたとき、コンピューティングデバイスに、動き予測のための前述の方法を実施させる。
【0137】
一実施形態では、コンピューティング環境1610は、上記方法を実施するために、1つまたは複数の特定用途向け集積回路(ASIC:application-specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、デジタル信号処理デバイス(DSPD:digital signal processing device)、プログラマブル論理デバイス(PLD:programmable logic device)、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、グラフィック処理ユニット(GPU:graphical processing unit)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品を用いて実現され得る。
【0138】
本開示の説明は解説のために提供されたものであり、網羅的であることまたは本開示を限定することを意図するものではない。上記の説明および関連する図面において提供された教示の利益を有する当業者には、多くの修正形態、変形形態、および代替的な実装が明らかになるはずである。
【0139】
上記の例が選択されて説明されたのは、本開示の原理について説明するとともに、当業者が、本開示の様々な実装を理解すること、ならびに根本原理および様々な実装を、企図された特定の用途に適する様々な修正形態を用いて最も良く利用することを可能にするためである。したがって、本開示の範囲は開示された実装の具体例に限定されるものではなく、修正形態および他の実装は本開示の範囲内に含まれるように意図されていることを理解されたい。