(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023098965
(43)【公開日】2023-07-11
(54)【発明の名称】複雑性の低いフレームレートアップ変換
(51)【国際特許分類】
H04N 19/57 20140101AFI20230704BHJP
【FI】
H04N19/57
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023062310
(22)【出願日】2023-04-06
(62)【分割の表示】P 2020562084の分割
【原出願日】2019-01-28
(31)【優先権主張番号】62/623,143
(32)【優先日】2018-01-29
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
(71)【出願人】
【識別番号】514041959
【氏名又は名称】ヴィド スケール インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】シウ、シャオユウ
(72)【発明者】
【氏名】フ、ユーウェン
(72)【発明者】
【氏名】ユー、ヤン
(57)【要約】
【課題】ビデオのブロックのフレームレートアップ変換のシステム、方法を提供する。
【解決手段】ビデオのブロックのフレームレートアップ変換(FRUC)符号化において使用される動きベクトル(MV)を選択するシステムおよび方法が述べられる。一実施形態では、動きベクトル候補の第1のセットが、ブロックのFRUC予測のために識別される。探索中心が、動きベクトル候補の第1のセットに基づいて画定され、また選択された幅を有し、探索中心に中心がある探索ウィンドウが決定される。選択されるMVを求める探索は、探索ウィンドウ内で実施される。いくつかの実施形態では、MVの初期セットは、クラスタリングアルゴリズムを用いて処理されて、第1のセットとして使用されるより少ない数のMVを生成する。選択されたMVは、動き精緻化探索を受けることができ、制約された探索範囲にわたって実施され得る。別の実施形態では、探索反復が制約される。
【選択図】
図9
【特許請求の範囲】
【請求項1】
ビデオを符号化する方法であって、前記ビデオにおける少なくとも1つの現在のブロックに対して、
前記ブロックのフレームレートアップ変換(FRUC)予測のための動きベクトル候補の第1のセットを識別するステップと、
動きベクトル候補の第1のセットに基づいて探索中心を画定するステップであって、前記探索中心は、動きベクトル候補の前記第1のセットにおける1つまたは複数の動きベクトルの平均である、ステップと、
選択された幅を有し、前記探索中心に中心が置かれる探索ウィンドウを決定するステップと、
前記探索ウィンドウ内に含まれるように、前記探索ウィンドウの外側にある前記第1のセット中のいずれの動きベクトルもクリップすることによって、動きベクトル候補の前記第1のセットを処理するステップと、
動きベクトル候補の前記処理された第1のセットの中から、選択される動きベクトルを求める探索を実施するステップと
を備える方法。
【請求項2】
前記選択された動きベクトル候補に基づいて動き精緻化探索を実施して、精緻化された動きベクトルを生成するステップと、
前記精緻化された動きベクトルを使用し、フレームレートアップ変換を用いて前記ブロックを予測するステップと
をさらに備える請求項1に記載の方法。
【請求項3】
動きベクトル候補の前記第1のセットを識別するステップは、
動きベクトル候補の初期セットを複数のクラスタへとクラスタ化することと、
各クラスタに対して、前記それぞれのクラスタの重心を計算し、前記それぞれのクラスタの前記重心を表す重心動きベクトルを、動きベクトル候補の前記第1のセットに付与することと
を含む方法により実施される請求項1または2に記載の方法。
【請求項4】
動きベクトル候補の前記第1のセットを識別するステップは、動きベクトル候補の前記第1のセットを、動きベクトルの選択された最大数に制限することを含む請求項3に記載の方法。
【請求項5】
前記探索中心は、動きベクトル候補の前記第1のセットにおける前記動きベクトルのうちの1つである請求項1乃至4のいずれかに記載の方法。
【請求項6】
前記探索中心は、動きベクトル候補の前記第1のセットの平均である請求項1乃至4のいずれに記載の方法。
【請求項7】
前記探索中心は、大部分の動きベクトル候補を有する前記クラスタの中心である請求項3に記載の方法。
【請求項8】
動きベクトル候補の前記処理された第1のセットの中から、選択される動きベクトルを求める探索を実施するステップは、動きベクトル候補の前記処理された第1のセットの中から、最も低いマッチングコストを達成する動きベクトルを選択することを含む請求項1乃至7のいずれかに記載の方法。
【請求項9】
前記現在のブロックは符号化ユニット(CU)であり、
前記選択された動きベクトル候補に基づき動き精緻化探索を実施して、精緻化されたCUレベル動きベクトルを生成するステップと、
前記符号化ユニットにおける各サブCUに対して、
選択されるサブCUレベル動きベクトルを求めるサブCUレベル動きベクトル探索において、動きベクトル候補として前記精緻化されたCUレベル動きベクトルを使用するステップと、
前記サブCUレベル動きベクトルを精緻化するステップと、
前記精緻化されたサブCUレベル動きベクトルを用いて前記サブCUを予測するステップと
をさらに備える請求項1乃至8のいずれかに記載の方法。
【請求項10】
前記現在のブロックは符号化ユニット(CU)であり、
前記選択された動きベクトル候補に基づいて動き精緻化探索を実施し、精緻化されたCUレベル動きベクトルを生成するステップと、
前記符号化ユニット内の各サブCUレベルブロックに対して、
前記精緻化されたCUレベル動きベクトルを含むサブCU初期動きベクトルのセットを識別するステップと、
前記サブCU初期動きベクトルを、関連付けられた重心動きベクトルをそれぞれが有する複数のクラスタへとクラスタ化するステップと、
サブCU探索ウィンドウ内に含まれるように、前記サブCU探索ウィンドウの外側にある前記セットのいずれの重心動きベクトルもクリップすることにより、前記重心動きベクトルを処理するステップと、
重心動きベクトルの前記処理されたセットの中から、選択されるサブCU動きベクトルを求める探索を実施するステップと、
前記探索ウィンドウ内で動き精緻化探索を実施して、精緻化されたサブCU動きベクトルを生成するステップと、
前記精緻化されたサブCU動きベクトルを使用して、フレームレートアップ変換(FRUC)を用いて前記サブCUレベルブロックを予測するステップと
をさらに備える請求項1乃至8のいずれかに記載の方法。
【請求項11】
前記サブCU探索ウィンドウは、前記CUレベル動きベクトルを決定するのに使用された前記探索ウィンドウと同じである請求項10に記載の方法。
【請求項12】
前記ブロックのフレームレートアップ変換(FRUC)予測に対して少なくとも1つの参照ピクチャを選択するステップをさらに備え、前記現在のピクチャに対して選択される幅は、前記現在のピクチャと前記少なくとも1つの参照ピクチャの間のPOC距離に少なくとも部分的に基づいて決定される請求項1乃至11のいずれかに記載の方法。
【請求項13】
前記選択された動きベクトル候補に基づいて動き精緻化探索を実施して、精緻化された動きベクトルを生成するステップをさらに備え、前記動き精緻化探索は、選択された最大反復数に制限される請求項1乃至12のいずれかに記載の方法。
【請求項14】
前記方法は、デコーダによって実施される請求項1乃至13のいずれかに記載の方法。
【請求項15】
プロセッサと、ビデオを符号化する方法を実施するように動作可能な命令を記憶する非一時的なコンピュータ可読媒体とを備えたシステムであって、前記方法は、前記ビデオにおける少なくとも1つの現在のブロックに対して、
前記ブロックのフレームレートアップ変換(FRUC)予測のための動きベクトル候補の第1のセットを識別することと、
動きベクトル候補の第1のセットに基づいて探索中心を画定することであって、前記探索中心は、動きベクトル候補の前記第1のセットにおける1つまたは複数の動きベクトルの平均である、画定することと、
選択された幅を有し、前記探索中心に中心が置かれる探索ウィンドウを決定することと、
前記探索ウィンドウ内に含まれるように、前記探索ウィンドウの外側にある前記第1のセットのいずれの動きベクトルもクリップすることによって、動きベクトル候補の前記第1のセットを処理することと、
動きベクトル候補の前記処理された第1のセットの中から選択される動きベクトルを求める探索を実施することと
を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複雑性の低いフレームレートアップ変換に関する。
【0002】
関連出願の相互参照
本出願は、参照により本明細書にその全体が組み込まれる、2018年1月29日に出願された「FRAME-RATE UP CONVERSION WITH LOW COMPLEXITY」と題する米国特許仮出願第62/623,143号明細書の非仮特許出願であり、その米国特許法第119条(e)下における利益を主張するものである。
【背景技術】
【0003】
ビデオ符号化システムは、デジタルビデオ信号を圧縮して、このような信号の記憶する必要性および/または送信帯域幅を低減するために広く使用される。ブロックベース、ウェーブレットベース、およびオブジェクトベースのシステムなど、ビデオ符号化システムの様々なタイプの中で、最近は、ブロックベースのハイブリッドビデオ符号化システムが、最も広く使用され、かつ展開されている。ブロックベースのビデオ符号化システムの例は、MPEG1/2/4パート2、H.264/MPEG-4パート10AVC、VC-1、および高効率ビデオ符号化(HEVC)と呼ばれる最新のビデオ符号化規格など、国際的なビデオ符号化規格を含み、HEVCは、ITU-T/SG16/Q.6/VCEGおよびISO/IEC/MPEGのJCT-VC(ビデオ符号化に対する共同作業部会)により開発された。
【0004】
2013年10月に最終決定されたHEVC規格の第1のバージョンは、前世代のビデオ符号化規格H.264/MPEG AVCと比較して、約50%のビットレートの節約、または同等の知覚品質を提供する。HEVC規格は、その前のモデルに対して大幅な符号化の向上を提供するが、HEVCに対してさらなる符号化ツールを用いると、より優れた符号化効率が得られるという根拠がある。それに基づいて、VCEGとMPEGは共に、将来のビデオ符号化の規格化に向けて、新しい符号化技術の調査作業を開始した。2015年10月に、ITU-T VCEGおよびISO/IEC MPEGは、共同ビデオ調査チーム(JVET)を形成して、HEVCに対して符号化効率を実質的に高めることのできる進んだ技術の重要な研究を開始した。同じ月に、将来のビデオ符号化調査作業に向けて、共同調査モデル(JEM)と呼ばれるソフトウェアコードベースが確立された。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許仮出願第62/599,238号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
JEM基準ソフトウェアは、HEVCのためにJCT-VCにより開発されたHEVCテストモデル(HM)に基づいている。さらに提案される符号化ツールは、JEMソフトウェアに統合され、かつJVET共通テスト条件(CTC)を用いてテストされ得ることが好ましい。
【課題を解決するための手段】
【0007】
例示的な実施形態は、ビデオエンコーディングおよびデコーディング(符号化および復号化、総称的に「符号化」)で使用される方法を含む。一例では、方法は、現在のピクチャを含む複数のピクチャを備えるビデオを符号化するための方法が提供される。現在のピクチャにおける少なくとも1つの現在のブロック(例えば、符号化ユニット、またはサブ符号化ユニットブロックとすることができる)に対して、動きベクトル候補の第1のセットが、ブロックのフレームレートアップ変換(FRUC)予測に対して識別される。動きベクトル候補の第1のセットは、主動きベクトルとすることができ、ここで、各主動きベクトルは、1つまたは複数(1つ以上)の初期動きベクトルのクラスタに関連付けられる。探索中心は、動きベクトル候補の第1のセットに基づいて画定(define)される。探索中心は、第1のセットにおける動きベクトル候補の1つまたは複数のものの平均により決定された位置とすることができる。
【0008】
探索ウィンドウが決定される、探索ウィンドウは、選択された幅を有し、探索中心に中心が置かれる。動きベクトル候補の第1のセットは、探索ウィンドウ内に含まれるように、探索ウィンドウの外側にある第1のセット中のいずれの動きベクトルもクリップすることによって処理される。選択される動きベクトルを求める探索を実施することができ、探索は、処理された動きベクトル候補の第1のセットの中から動きベクトルを選択する。
【0009】
いくつかの例示的な実施形態では、探索ウィンドウ幅は、外部メモリへのいくつかのアクセスを制限しながら、メモリキャッシュを用いて探索を実施できるように選択される。
【0010】
選択された動きベクトルで開始する動き精緻化探索を実施することができる。いくつかの実施形態では、精緻化探索の探索範囲は、精緻化探索が、メモリキャッシュを使用し、かつ、主メモリがアクセスされる回数を制限して実施され得るように制約される。いくつかの実施形態では、探索の反復数は、符号化の複雑さを制限するように制約される。
【0011】
いくつかの実施形態では、動きベクトル候補の第1のセットは、進んだ動きベクトル予測、または別の技法を用いて識別された候補の初期セット(initial set)である。いくつかの実施形態では、クラスタリングアルゴリズムが、動きベクトル候補の初期セットをクラスタ化するために実施され、また各クラスタに対する代表的な動きベクトル(例えば、重心)が第1のセットに付与(contribute)される。いくつかの実施形態では、クラスタの数は、符号化の複雑さを制限するために制約される。
【0012】
選択された(またいくつかの場合、精緻化された)動きベクトルが、現在のブロックを予測するために使用され得る。エンコーダによって実施される方法においては、現在のブロックの予測は、入力ブロックと比較され、残差が決定され、また残差は、ビットストリームにエンコードされる。デコーダにより実施される方法では、残差は、ビットストリームからデコードされて予測に加えられ、再構成されたブロックを生成し、それは、おそらくフィルタリングの後、表示する(display)ことができる。
【0013】
開示される実施形態は、プロセッサと、本明細書で述べられる方法を実施するように動作可能な命令を記憶する非一時的なコンピュータ可読記憶媒体とを有するエンコーダおよびデコーダをさらに含む。開示される実施形態は、本明細書で述べられる方法のいずれかを用いて生成されたビットストリームを記憶する非一時的なコンピュータ可読記憶媒体をさらに含む。
【発明の効果】
【0014】
複雑性の低いフレームレートアップ変換を提供する。
【図面の簡単な説明】
【0015】
【
図1】ブロックベースのビデオエンコーダの機能的なブロック図である。
【
図2】ビデオデコーダの機能的なブロック図である。
【
図3A】テンプレートマッチング用いるフレームレートアップ変換(FRUC)を示す図である。
【
図3B】双方向マッチングを用いるフレームレートアップ変換を示す図である。
【
図4】JEMの実装でFRUCに対する動き導出プロセスのフロー図である。
【
図5】マージモードにおける空間動きベクトル候補の位置を示す図である。
【
図6】FRUCにおいて使用される動きフィールド補間を示す図である。
【
図7】MVクラスタリングがFRUCに適用後の参照サンプルアクセスの例を示す図である。
【
図8】サブCUレベル動き探索に対するメモリアクセスの図である。
【
図9】いくつかの実施形態によるCUレベル/サブCUレベル初期動き探索に対する制約された探索範囲を用いたFRUC動き探索プロセスのフロー図である。
【
図10A】実施形態における探索中心選択法の例であり、多数決ベースの選択を示す図である。
【
図10B】実施形態における探索中心選択法の例であり、平均ベースの選択を示す図である。
【
図11】制約された探索範囲が、初期CUレベル/サブCUレベル動き探索に適用後の例示的実施形態におけるメモリアクセスを示す図である。
【
図12】制約された探索範囲が、CUレベル動き精緻化、サブCUレベル初期動き探索、CUレベル動き精緻化に適用後の、例示的実施形態におけるFRUC探索プロセスのフロー図である。
【
図13】統一された探索範囲がFRUCプロセス全体に適用後の例示的FRUC動き探索プロセスのフロー図である。
【
図14】符号化されたビットストリーム構造の例を示す図である。
【
図16】例示的な無線送受信ユニット(WTRU)を示す図である
【発明を実施するための形態】
【0016】
ブロックベースのビデオ符号化
HEVCテストモデル(HM)および共同調査モデル(JEM)ソフトウェアは共に、ブロックベースのハイブリッドビデオ符号化フレームワークに基づいて構築される。
図1は、ブロックベースのハイブリッドビデオ符号化システムのブロック図である。入力ビデオ信号102は、ブロックごとに処理される。HEVCでは、拡張されたブロックサイズ(符号化ユニット(CU)と呼ばれる)が、高解像度(1080p以上)ビデオ信号を効率的に圧縮するために使用される。HEVCでは、CUは、最高で64×64画素とすることができる。CUは、予測ユニット(PU)へとさらに区分することができ、それに対して別々の予測方法が適用される。各入力ビデオブロック(MBまたはCU)に対して、空間予測(160)、および/または時間予測(162)を実施することができる。空間予測(または「イントラ予測」)は、同じビデオピクチャ/スライスにおけるすでに符号化された近傍ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。空間予測は、ビデオ信号に固有の空間冗長性を低減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、すでに符号化されたビデオピクチャから再構成された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号において固有の時間的な冗長性を低減する。所与のビデオブロックに対する時間予測信号は、通常、現在のブロックとその参照ブロックの間の動きの量および方向を示す1つまたは複数の動きベクトル(MV)によって信号送りされる。さらに、複数の参照ピクチャがサポートされる場合(H.264/AVCまたはHEVCなどの最近のビデオ符号化規格の場合そうであるが)、各ビデオブロックに対して、その参照ピクチャインデックスがさらに送られ、参照インデックスは、参照ピクチャ記憶装置(164)におけるどの参照ピクチャから時間予測信号が来たかを識別するために使用される。空間および/または時間予測の後、エンコーダにおけるモード決定ブロック(180)は、例えば、レート-歪み最適化法に基づいて、最適な予測モードを選択する。予測ブロックは、次いで、現在のビデオブロックから減算され(116)、予測残差は、変換(104)および量子化(106)を用いて非相関にされる。量子化された残差係数は、逆量子化(110)および逆変換(112)されて、再構成された残差を形成し、それは次いで、予測ブロックへと戻して加えられ(126)て、再構成されたビデオブロックを形成する。デブロッキングフィルタおよび適応型ループフィルタなどのさらなるループ内フィルタリングが、再構成されたビデオブロックに対して、それが参照ピクチャ記憶装置(164)に入る前に適用され(166)、将来のビデオブロックを符号化するために使用され得る。出力されるビデオビットストリーム120を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニット(108)へと送られ、ビットストリームを形成するようにさらに圧縮され、パックされる。
【0017】
図2は、ブロックベースのビデオデコーダのブロック図である。ビデオビットストリーム202は、まず、エントロピー復号化ユニット208でアンパックされ、エントロピーデコードされる。符号化モードおよび予測情報は、空間予測ユニット260(イントラ符号化の場合)、または時間予測ユニット262(インター符号化の場合)のいずれかに送られて予測ブロックを形成する。残差変換係数は、逆量子化ユニット210および逆変換ユニット212に送られて、残差ブロックを再構成する。予測ブロックおよび残差ブロックは、次いで、226で共に加算される。再構成されたブロックは、参照ピクチャ記憶装置264に記憶される前に、ループ内フィルタリングをさらに通すことができる。参照ピクチャ記憶装置における再構成されたビデオは、表示デバイスを駆動するために送出されるが、同様に、将来のビデオブロックを予測するためにも使用される。
【0018】
HEVCでは、動き情報(MVおよび参照ピクチャインデックスを含む)は、エンコーダにより決定され、かつデコーダに明示的に送信される。したがって、インター符号化されたブロックの場合、かなりの量のオーバヘッドが、動きパラメータの符号化に使われる。動き情報のシグナリングのオーバヘッドを節約するために、フレームレートアップ変換(FRUC)と呼ばれる符号化モードが、現在のJEMにおいて、インター符号化に対してサポートされる。このモードがCUに対して使用可能である場合、MVと参照ピクチャインデックスの両方は信号送りされず、それに代えて、情報は、テンプレートマッチングまたは双方向マッチング技法のいずれかにより、デコーダ側で導出される。
図3A~
図3Bは、FRUCにおいて使用されるMV導出プロセスを示す。
図3Aの例では、現在のピクチャ306における現在のCU304のテンプレート302(上および/または左の隣接サンプル)と、参照ピクチャ310における参照ブロックのテンプレート308との間で最適な一致を見出すことにより、テンプレートマッチングが使用されて、現在のCUのMVを導出する。最適な一致は、現在のテンプレートと参照テンプレートの間で、例えば、最低の絶対差分和(SAD)など、最低のマッチングコストを達成するMVとして選択することができる。
図3Bは、2つの異なる参照ピクチャにおいて、現在のブロックの動き軌道に沿った2つのブロック354、356の間の最適な一致を見出すことにより、双方向マッチングが、現在のブロック352の動き情報を導出するために使用される。双方向マッチングの動き探索プロセスは、動き軌道に基づいており、したがって、2つの参照ブロック354、356を指す動きベクトルMV
0およびMV
1はそれぞれ、現在のピクチャと、2つの参照ピクチャのそれぞれとの間の時間的距離(T
0およびT
1)に比例すべきである。双方向FRUCモードにおいて使用される動きベクトルMV
0およびMV
1の対を決定するために、動きベクトル候補が調べられる。各候補に対して、動き探索は、リスト0動きベクトル、およびリスト1動きベクトルを別個に使用して実施され、最低のマッチングコスト(例えば、SAD)を有する動きベクトルの対が選択される。テンプレートマッチングモードを使用すべきか、それとも双方向マッチングモードを使用すべきかの決定は、レート-歪み(R-D)コスト最適化に基づく。現在のCUに対するFRUCモードとして、最小のレート-歪みコストへと導くモードが選択される。
【0019】
テンプレートマッチングモードと双方向マッチングモードの両方の動き導出プロセスは、4つのステップを含む、すなわち、CUレベル動き探索、CUレベル動き精緻化、サブCUレベル動き探索、およびサブCUレベル動き精緻化である。CUレベルの動き探索では、初期の動き(MVおよび参照ピクチャインデックスを含む)は、テンプレートマッチングまたは双方向マッチングに基づいて、CU全体に対して導出される。具体的には、MV候補のリストがまず生成され、最小のマッチングコストを導く候補が、CUに対する開始MVとして選択される。次いで、CUレベル動き精緻化段階において、開始点付近のテンプレートマッチングまたは双方向マッチングに基づく局所的な探索が実施され、最小のマッチングコストを有するMVが、CU全体に対するMVとして得られる。その後に、動き情報の粒度と精度の両方が、現在のCUを複数のサブCUに分割することにより、かつ開始探索点としてCUレベルから導出されたMVを有する各サブCUの動き情報を導出することにより、サブCUレベル動き探索段階、およびサブCUレベル動き精緻化段階においてさらに精緻化される。
図4は、現在のJEMにおけるFRUCモードの動き導出プロセスのフロー図である。
【0020】
フレームレートアップ変換
CUレベルの動き探索
CUレベルの動き探索においては、現在のCUの初期MVを導出するために、候補ベースの探索方法が適用される。それは、テンプレートマッチングまたは双方向マッチングのコスト測定(現在のCUに適用されるFRUCモードに応じて)が計算される一意のMV候補のセットを選択することにより行われる。コストを最小化するMV候補が、CU全体の初期MVとして選択される。具体的には、以下で論じられるMV候補が、CUレベルの動き探索で評価される。
【0021】
1)FRUCが高度動きベクトル予測(AMVP)モードにおいて現在のCUのMVを予測するために適用されたとき、JEMにおけるAMVPから導出されるMV予測子、
2)5個の空間候補A1、B1、B0、A0、およびB2(
図5で示される)と、時間的な動きベクトル予測(TMVP)により時間的に隣接するピクチャにおいて同一位置に配置(collocated)されたブロックのMVから導出された時間的な候補とを含む通常のマージ候補のMV、
3)セクション「ピクチャレベルのMVフィールド補間」において述べられるピクチャレベルのMVフィールド補間プロセスにより生成された位置(0、0)、(W/2、0)、(0、H/2)、および(W/2、H/2)における4個の補間されたMV、式中、WおよびFは、現在のCUの幅および高さである、また
4)現在のCUの上および左隣りのMV。
【0022】
さらにCUレベルでMV候補リストを生成するとき、プル-ニング演算が実施され、したがって、MV候補は、それが冗長である場合(すなわち、MV候補が、リスト中の既存のMV候補のものと同じ動きを有する場合)、MV候補に加えられることはない。候補リスト生成するためのこのような技法は、以下で述べるステップ904、1204、および1304で使用することができる。
【0023】
さらに、双方向マッチングモードが適用される場合、各有効な候補のMVは、2つのMVが現在のCUの同じ動き軌道上にあるという仮定に基づき、MVの対を生成するための入力として使用される。例えば、1つの有効なMVは、参照リストa(a=0、1)において、(MVa、refa)である。次いで、refaおよびrefbが、現在のピクチャに対して時間的に対称であるように、その対になった双方向MVの参照ピクチャrefbが他の参照リストbにおいて見出される。refaに対称な参照リストbにおいて、このような参照ピクチャrefbがない場合、refbは、refaとは異なる参照ピクチャを選択することにより決定され、また現在のピクチャに対するその時間的な距離は、リストBにおいて最小化される。refbが決定された後、以下のように、現在のピクチャとrefaおよびrefbとの間の時間的距離に従ってMVaをスケーリングすることによって、MVbが導出される、
【0024】
【0025】
式中、
【0026】
【0027】
および
【0028】
【0029】
は、MVaおよびMVbの水平および垂直な動き成分であり、τaおよびτbは、現在のピクチャに対する参照ピクチャrefaおよびrefbの時間的な距離である。既存の設計に基づいて、最高で15MVを、CUレベルの動き探索段階に含めることができる。
【0030】
サブCUレベルの動き探索
CUレベルの動き探索においては、対応するMVは、CUレベルで導出される(導出されたMVは、CU全体の動きを表すために使用される)。しかし、このような粒度は、現在のCUが、別々の動きに関連付けられた異なるオブジェクトに対応するエリアをカバーできると仮定すると、十分良好であるとはいえない可能性がある。したがって、導出されるMVの精度を向上させるために、FRUCモード(テンプレートマッチングまたは双方向マッチングのいずれか)により符号化された各CUは、M×MサブCUへとさらに分割され、各サブCUに対する個々のMVは、別個に導出される。Mの値は、式2で計算され、式中、DはJEMにおいては3に設定される事前定義の分割深さ制約である。
【0031】
【0032】
さらにCUレベルの動き探索と同様に、各サブCUのMVが、MV候補のリストをまず生成し、かつサブCUのMVとしてマッチングコストを最小化するMV候補を選択することにより導出される。いくつかの実施形態では、サブCUレベルにおけるMV候補リストは、
1)CUレベルの動き探索で決定されたMV、
2)上、左、上部左、および上部右の空間で隣接するCUからのMV、
3)時間的な参照ピクチャから照合されたMVのスケーリングされたバージョン、
4)高度時間動きベクトル予測(ATMVP)により導出された候補から取得された最高4MV、および
5)空間-時間動きベクトル予測(STMVP)により導出された候補から取得された最高4MV
を含む。
【0033】
さらに、サブCU動き探索中に、特定のMV候補を、そのMV候補が、開始CUレベルMVにより示されたものと同じ参照ピクチャを指し示す場合に限って、MV候補リストの中に含めることができるが、そうではない場合、そのMV候補は、マッチングコスト計算から除外される。こうすることは、CUの内側のすべてのサブCUのMVが同じ参照ピクチャ(開始CUレベルMVに関連付けられた参照ピクチャ)を指し示す(point)ため、FRUCをハードウェアで実装する場合、メモリ帯域幅消費を低減する可能性がある。したがって、これらの参照ピクチャは、サブCUレベルにおいて最適なMVを見出すためにアクセスされるに過ぎない。既存の設計に基づき、最高で17MVを、サブCUレベル動き探索段階において含めることができる。サブCUレベルのMV候補リスト生成に対するこのような技法は、以下で述べるステップ918、1218、および1318で使用することができる。
【0034】
ピクチャレベルMVフィールド補間
FRUCが使用可能である場合、各インターピクチャが符号化される前に、一方向MV投影(projection)に基づいて、ピクチャ内のすべての4×4ブロックに対して、補間された動きフィールドが生成される。次いで、補間されたMVは、CUレベル動き探索において、最適なMVを探索するために使用されることになる。
図6は、現在のピクチャにおいて、補間されたMVを生成するプロセスを示す。具体的には、現在のピクチャ(curPic)の両方の参照ピクチャリストにおいて、各参照ピクチャ(curRefPic)の動きフィールドが、4×4ブロックレベルにおいて調べられる。参照ピクチャにおける各4×4ブロックに対して、そのMVが現在のブロックにおける4×4ブロックを通過し、かつ4×4ブロックが補間されたMVに割り当てられていない場合、4×4参照ブロックのMVは、現在のピクチャと参照ピクチャの間の時間的距離(TD
0)と、参照ピクチャとそれ自体の参照ピクチャの間の時間的距離(TD
1)との間の比に従って、現在のピクチャに対してスケーリングされる。またスケーリングされたMVは、現在のピクチャの4×4ブロックに割り当てられることになる。4×4ブロックに割り当てられるスケーリングされたMVが存在しない場合、そのブロックに対する動きは、補間された動きフィールドにおいて利用可能ではないとマーク付けされる。
【0035】
CUレベルおよびサブCUレベル動き精緻化
探索候補の限定された数に起因して、CUレベル動き探索およびサブCUレベル動き探索から導出されたMVは、常に、現在のCUの真の動きを表すのに十分正確ではない可能性があり、したがって、動き補償予測の効率を損なうおそれがある。導出されたMVの精度をさらに向上させるために、CUレベル動き探索およびサブCUレベル動き探索の後、MV精緻化プロセスがさらに適用される。MV精緻化は、テンプレートマッチングまたは双方向マッチングのコスト測定を最小化することによるパターンベースの局所的なMV探索プロセスである。具体的には、2つの探索パターンが、現在のJEMにおいてサポートされる、すなわち、それぞれ、CUレベル動き精緻化におけるダイヤモンド探索パターンと、サブCUレベル動き精緻化における横断探索パターンとである。CUレベル動き精緻化とサブCUレベル動き精緻化の両方に対して、MV探索は、まず4分の1のサンプル精度で、その後に、8分の1のサンプル精度でさらなる局所的な動き精緻化(最適な4分の1サンプルMV付近で)行われる。さらにMVが、小部分のサンプル位置を指す場合、HEVCにおける8タップの補間フィルタを用いるのではなく、符号化/復号化の複雑さを低減させるために、テンプレートマッチングと双方向マッチングモードの両方に対して、双一次補間フィルタが使用される。さらに、CUレベル動き精緻化とサブCUレベル動き精緻化の両方において、探索中心が事前定義の探索範囲(現在のJEMにおいて8整数ルマサンプルに等しく設定される)において更新されなくなるまで精緻化探索が繰り返されるという意味で、探索プロセスは制限されないことも述べられるべきである。
【0036】
MVクラスタリングに基づくFRUC CU/サブCU動き探索
上記で述べたように、既存のFRUCにおけるCUレベルの動き探索とサブCUレベルの動き探索の両方において、一意のMV候補のセットから最適なMVが選択される。例えば、CUレベルの動き探索およびサブCUレベルの動き探索のそれぞれで調べられる必要のある最高で15および17MV候補が存在する。これは、各MV候補に対して、予測信号を生成するために、動き補償予測が複数回実施されるので、エンコーダとデコーダの両方において、大幅な複雑さの増加を生ずる。さらに、コスト測定を計算するために、時間的な参照ピクチャから参照サンプルを取り込むことに起因して、このような候補ベースの探索プロセスは、ハードウェア実装に対してメモリ帯域幅を大幅に増加させる。このようなメモリ帯域幅問題は、MV候補が、異なる参照ピクチャから得られる可能性のあるCUレベル動き探索に対して、より重大なものになる可能性がある。したがって、エンコーダ/デコーダは、高い頻度で、メモリアクセスを、異なる参照ピクチャに切り換えることになる。こうすることは、キャッシュ読取りミスの可能性を増加させるおそれがあり、したがって、外部のメモリアクセスを大幅に増加させることになる。
【0037】
複雑さを低減させて、メモリ帯域幅利用を向上させるために、CUレベルとサブCUレベルの両方における動き探索プロセスに対して、MVクラスタリング法が提案されてきた。具体的には、提案される方法は3つのステップを含む、すなわち、1)参照ピクチャ選択、2)MVスケーリングおよびプル-ニング、ならびに3)MVクラスタリングである。
【0038】
参照ピクチャ選択
複数の参照ピクチャへのメモリアクセスの頻繁な切換えを回避するために、MVクラスタリングベースの動き探索においては、CUレベルおよびサブCUレベルの動き探索において、所与の参照ピクチャリストに対して、単一の参照ピクチャが選択される。参照ピクチャを選択するために、候補リストにおけるMV候補によって最も高い頻度で使用されている所与の参照ピクチャリストに対する参照ピクチャインデックスを選択するために、多数決原理が適用される。より具体的には、参照ピクチャリストLX(X=0、1)において、K個のMV候補とM個の参照ピクチャが存在すると仮定する。さらに、K個のMV候補は、LXにおけるインデックスr0、r1、・・・、rK-1を有する参照ピクチャの集合体に関連付けられ、式中、ri∈[0、M-1]であり、選択された参照ピクチャインデックスは、
【0039】
【0040】
として決定され、式中、1n(ri)は、
【0041】
【0042】
と定義される指示関数(indicator function)である。
【0043】
さらに、上記の参照ピクチャ選択法は、所与の参照ピクチャユニットリスト(すなわち、L0またはL1)に対して最適な参照ピクチャインデックスを決定するために使用されるので、それらは、一方向ベースの動き導出(例えば、テンプレートマッチングモード)に直接適用することができ、その場合、L0およびL1におけるMVは、個々に導出される。双方向マッチングモードが適用される場合、MVは、2つのMVが、現在のブロックの同じ動き軌道上にあるという仮定に基づいて対で導出される。したがって、双方向マッチングモードに対して提案される参照ピクチャ選択法を適用する場合、L0およびL1において選択された参照ピクチャが、双方向マッチングを可能にするための条件を確実に満たすように、さらなる制約を適用することもできる(2つの参照ピクチャは、現在のピクチャに対して時間的に対称である、または現在のピクチャへの時間的な距離は、参照ピクチャリストにおいて最小化される)。このような参照ピクチャ選択法は、以下で述べるステップ906、1206、および1306で使用され得る。
【0044】
MVスケーリングおよびプル-ニング
参照ピクチャインデックスが決定された後、MV候補リストは、初期のMV候補を、選択された参照ピクチャインデックスにより示されたものと同じ参照ピクチャへとスケーリングすることによって更新される。一般性を失うことなく、参照ピクチャリストL0は、MVスケーリングプロセスを示すための例として使用される。例えば、i番目のMV候補MViが与えられたとき、その元のL0参照ピクチャインデックス(すなわち、
【0045】
【0046】
)が、選択されたL0参照ピクチャインデックス
【0047】
【0048】
に等しい場合、更新されたMV候補MVi’は、直接MViに直接設定され、そうではない場合、(
【0049】
【0050】
が
【0051】
【0052】
に等しくない)、MVi’は、
【0053】
【0054】
として計算されるように、MViのスケーリングされたバージョンになるように設定され、式中、τiは、
【0055】
【0056】
により示される参照ピクチャと、現在のピクチャの間の時間的距離であり、τ*は、
【0057】
【0058】
により示される参照ピクチャと、現在のピクチャの間の時間的距離である。さらに、MVスケーリング演算の後、異なるMV候補の値が正確に同じ値になり得るので(例えば、精度損失により)、一意のMV候補だけが、最終リストに維持されるように、何らかの複製されたエントリを除去するために、プル-ニングが実施される。
【0059】
MVクラスタリング
初期の動き探索の複雑さをさらに低減するために、CUレベル動き探索とサブCUレベル動き探索の両方においてコスト測定が計算されるMV候補の全体数を低減するように、MVクラスタリング法が使用される。概して、MVクラスタリング法は、同じグループに含まれるすべてのMV候補の平均距離が最小化され得るように、候補リストにおるMVをL個のグループに分割することを目的とし、ここで、Lは、最終的な候補リストにおけるMV要素の数である。参照ピクチャ選択およびMVスケーリング/プル-ニングの後、MV候補リストにおけるMVを{MV0’、MV1’、・・・、MVN-1’}と表す、ここで、Nは、MV候補リストにおける要素の合計数である。提案されるMVクラスタリング法の目標は、クラスタ内距離を最小化するために、N個のMVをL個(L≦N)のグループS={S0、S1、・・・、SL-1}へと区分することであり、
【0060】
【0061】
として公式化され、式中、μiは、Siの重心である。式6におけるクラスタリング最適化問題を解くために、古典的なk平均精緻化アルゴリズム(Lloydのアルゴリズムとも呼ばれる)を、初期の候補リストにおけるMVをクラスタ化するために適用することができる。具体的には、アルゴリズムは、すべてのMV候補を通して行う場合、交互に以下の2つのステップを繰り返すことにより進行する。
【0062】
1)割当てステップ:各MVクラスタの重心に対するMV候補の距離を計算し、最小の距離を生ずるクラスタを見出す。最適な距離が事前定義の距離閾値よりも小さい場合、MV候補はクラスタへと追加され、そうではない場合、新しいクラスタが作成されて、MV候補はその新しいクラスタに追加される。
【0063】
2)更新ステップ:新しいMV候補がクラスタに追加されたとき、次に示されるように、新しい平均を、クラスタ内のすべてのMV候補(新規に追加されたものも含む)の重心になるように更新する、
【0064】
【0065】
式中、
【0066】
【0067】
は、t番目のクラスタリング反復におけるMVグループSiの要素数を表し、
【0068】
【0069】
は、Siの更新された重心を表す。
【0070】
導出されたMVクラスタが得られると、得られたクラスタの重心のMVが、コスト測定を比較するための最終的なMV候補として使用されて、CUレベルおよびサブCUレベルにおける初期MVを導出することができる。いくつかの実施形態では、割当てステップおよび更新ステップは、初期MV候補のそれぞれに対して1回実施される。このような一実施形態では、第1の動きベクトル候補は、第1のクラスタの重心として最初に設定される。第2の動きベクトル候補が、その第1の重心から閾値距離未満である場合、第2の動きベクトル候補は、第1のクラスタに加えられ、第1のクラスタの重心が再計算される。そうではない場合、その重心として第2の動きベクトルを有する第2のクラスタが生成される。プロセスは、各後続する候補動きベクトルが、最も近い重心を有する既存のクラスタに割り当てられる(その後に重心は更新される)か、新しいクラスタを生成するために使用されるかのいずれかで進行する。候補MVは、プロセスが、エンコーダおよびデコーダ側において、確実に同じクラスタリング結果を与えるように、所定の順序で処理することができる。このようなクラスタリング法は、以下で述べられるステップ908、920、1208、1220、1308、および1320において使用され得る。
【0071】
さらなる詳細および代替的クラスタリング法は、2017年12月15日に出願された「Frame Rate Up Conversion with Reduced Complexity」と題する米国特許仮出願第62/599,238号明細書に記載のように実施することができる。
【0072】
いくつかの実施形態で対処される問題
上記で述べられたように、クラスタリングベースの動き探索は、初期のMV候補をいくつかのセットへとグループ化し、各MVグループに対して1つの主MV(例えば、MV重心)を決定するだけである。このように、コスト測定に対してテストされるMV候補の合計数を低減させることができる。MVクラスタリング法は、FRUC動き導出(CUレベルとサブCUレベルの両方で)の複雑さを効率的に低減することができるが、既存のFRUC設計におけるいくつかの側面が、まだ実際のエンコーダ/デコーダのハードウェアにおいて実施されるのを困難にしている。具体的には、現在のFRUCにおける以下の複雑性問題が、本開示において識別される。
【0073】
1つの問題は、クラスタリングベースの動き探索の開始時において、初期候補リストにおけるMVの参照ピクチャインデックスに基づき、各参照ピクチャリストに対して最適な参照ピクチャを決定するように、参照ピクチャ選択が適用されることである(CUレベルまたはサブCUレベルにおいて)。異なる参照ピクチャに対するメモリアクセスを高い頻度で切り換える必要のあるMV探索法とは異なり、参照ピクチャ選択は、すべてのMV候補を、選択された参照ピクチャ(L0とL1の両方における)へとスケーリングする。したがって、MVクラスタリングプロセスへと送られるすべてのMV候補は、同じ参照ピクチャに関連付けられる。しかし、MVクラスタリング法は、クラスタ内距離を最小化することにより、初期候補リストにおけるMVをグループ化する。したがって、初期候補リストが特有の特性を有するMVからなる場合、多数のクラスタが生成されることになり、それらのクラスタの重心は、互いに大きく離れる可能性がある。このような場合、エンコーダ/デコーダは、メモリアクセスを選択された参照ピクチャ内の様々な領域に高い頻度で切り換える。こうすることは、キャッシュ読取りミスを生ずる可能性を高めるおそれがあり、したがって、外部メモリアクセスの大幅な増加を生ずることになり得る。
図7は、MVクラスタリングが、FRUC CU/サブCUレベル動き初期探索に適用された後における、メモリアクセス帯域幅を示す一例を示している。
図7の例では、MVクラスタリングの後、合計5個の特有の主MV候補(MVクラスタの重心)が存在している。これらのMV候補の差分特性に起因して、現在のCU/サブCUの初期MVを導出するために、選択された参照ピクチャに対して5回の別々のメモリアクセスを実施する。こうすることは、実際のエンコーダ/デコーダ実装において、大幅なメモリ帯域幅が必要になり得る。
【0074】
各FRUC CU(テンプレートマッチングまたは双方向マッチング)に対して、向上させたMV精度のために、それ自体の動きをそれぞれが導出できる複数のサブCUへとさらに分割できることから別の問題が生ずる。加えて、開始点としてサブCUレベル初期探索で決定されたMVを用いることにより、以下の各サブCUのMV精緻化が実施される。各サブCUのMV精緻化は、対応する開始点付近の事前定義の探索ウィンドウに制限されるが(例えば、8整数ルマサンプル)、CUの内部のサブCUの初期MVは、拘束されないので、全体のサブCUレベル動き探索の探索範囲は制限されない。
図8は、サブCUレベル動き探索段階で行われるメモリアクセスプロセスを示す例を示しており、ここで、現在のCUは、4個のサブCUへと分割され、破線の正方形が、各サブCUに対して対応する局所的な探索ウィンドウを囲む(例えば、開始MVからの8整数ルマサンプル)。
図8から分かるように、各サブCUのそれぞれの探索開始点を設定した後、参照ピクチャにおける異なるエリアのアクセスを高い頻度で切り替える(
図8における4つの異なるメモリアクセス)。このような設計はまた、実務上、エンコーダ/デコーダのハードウェアに対して、大幅なメモリ帯域幅使用量を要求する可能性がある。
【0075】
さらなる問題は、FRUC動き精緻化(CUレベル動き精緻化、またはサブCUレベル動き精緻化)に関し、それは、初期MVから開始するパターンベースの動き探索(例えば、ダイヤモンド形状探索および横断形状探索)を繰り返して反復することにより、導出されるMVの精度を向上させるための局所的なMV探索プロセスである。FRUC動き精緻化に対して行われる反復の最大値は、既存の設計では指定されていない。言い換えると、探索中心が、2つの連続する探索反復が変化しないで維持される限り、精緻化プロセスは継続することになる。デコードされたビットストリームの解析に基づき、統計は、探索の反復数を、最高で約100回とすることができることを示している。各FRUC CUの計算の複雑さに制限がないので、このような設計は、実際のハードウェア実装に適切とはいえない。FRUCが、現在のブロックの動き情報を導出するために、近傍の再構成されたサンプルを使用するものとすると、このような制約のない動き探索プロセスは、実際のエンコーダ/デコーダハードウェアの実装に対して、並列な処理機能および複雑なパイプライン設計を低減することになる。
【0076】
これらの問題に対処するために、本開示で提案される様々な方法は、FRUCの複雑さの平均と最悪の場合の両方を低減するように動作する。本明細書で述べられる様々な実施形態は以下の態様を含む。いくつかの実施形態では、方法は、様々なFRUC動き探索段階において、最適なMVを導出するために探索範囲を制約するように提供される。例示的な方法は、FRUCに関連する動き探索プロセスを統一された探索領域において行うことができ、したがって、外部メモリアクセスの合計数は、最小化することができる。いくつかの実施形態では、FRUC動き精緻化プロセスにおいて実施される最大の探索反復を限定し、かつMVクラスタリングにより生成される主MV候補の合計数を限定する制限が提案される。このような実施形態は、FRUCの最悪の場合の複雑さを低減することを目的としている。
【0077】
制約された探索範囲を用いるFRUC動き探索
上記で指摘したように、例えば、MVクラスタリングの後の主MV候補、および初期サブCUレベル動き探索の後の各サブCUの初期MVなど、複数の初期MV候補が、様々なFRUC動き探索プロセスで生成され得る。これらの初期MVは、大きな距離だけ離れている可能性があり、現在のCU/サブCUに対する最適なMVを導出するためには、対応する参照ピクチャに対する複数の外部メモリアクセスが必要になり得る。これは、ハードウェアのコーデック実装を行うために、大幅なメモリ帯域幅増加を生ずるおそれがある。このようなメモリ帯域幅問題に対処するために、以下では、所与のFRUC動き探索に必要なすべての参照サンプルが、外部メモリへの1回のアクセスにより取得され得るように、様々なFRUC動き探索段階において、制約された探索範囲が提案される。
【0078】
CUレベルの初期動き探索に対する制約された探索範囲
いくつかの実施形態では、制約された探索範囲は、MVクラスタリングの後に生成された主MV候補のメモリ帯域幅使用量を低減するためにCU/サブCUレベルの初期動き探索に対して使用される。
図9は、提案される制約された探索範囲が、CU/サブCUレベルの初期動き探索プロセスに適用された後の修正されたFRUC動き探索プロセスを示す。
【0079】
図9では、CUレベルの初期動き探索(902)において、初期CUレベルMV候補リストが生成され(904)、参照ピクチャが選択される(906)。MV候補リストにおけるMVはクラスタ化され(908)、主MVは、各クラスタを表す。クラスタの主MVは、クラスタ内のMV候補の重心とすることができる。主MVに基づいて、探索中心および探索範囲が決定される(910)。主MVは、それらが探索範囲内に含まれるように適切に、主MVをクリップする(911)ことにより処理され、探索は、最適に処理された主MVを選択するように実施される(912)。CUレベルの動き精緻化(914)が、選択されたMVに対して実施される。CUレベルの動き精緻化の後、サブCUレベルの初期動き探索(916)が実施される。CUにおける各サブCUに対して、初期のサブCUレベルMV候補リストが生成され(918)、サブCUレベルMVがクラスタ化され(920)、各クラスタは、主MVにより表される。サブCUレベルの初期動き探索に対する探索中心および探索範囲が決定され(922)、サブCUレベル探索範囲に含まれるように、主MVはクリッピングにより処理される(923)。最適に処理された主MVが、探索領域内で選択され(924)、サブCUレベルの動き精緻化が実施される(926)。
【0080】
より詳細には、
図9で示されるように、主MV候補(例えば、MVクラスタの重心)がMVクラスタリング(908)により生成された後、初期CU/サブCUレベルのMVを選択するために、探索中心が決定される(910)。探索中心を選択するために、いくつかの実施形態では、多数決の原理が適用されて、CU/サブCUレベルの動き候補リストにおける大部分の初期MV候補を含むMVクラスタの重心を選択する。具体的には、初期MV候補リストにおけるM個のMV候補(MV
0、MV
1、・・・、MV
M-1)から生成されたK個のMVクラスタ(C
0、C
1、・・・、C
K-1)が存在すると考えると、選択される探索中心は、
【0081】
【0082】
として決定され、式中、1n(MVi)は、
【0083】
【0084】
である指示関数(indicator function)である。
【0085】
図10Aは、上記の探索中心選択法を示す一例を示している。
図10Aでは、初期のMV候補リスト内に合計29個のMV候補(すなわち、M=29)が存在し、またそれらは、3つのMVクラスタ(すなわち、K=3)、クラスタ1002、1004、1006へと分類される。さらにこの例では、各MVクラスタによりカバーされる初期MV候補の数は、上のクラスタで20、下方左のクラスタでは6、下方右のクラスタで3である。クラスタ1002、1004、および1006の重心は、それぞれ、1003、1005、および1007で示される。式8における多数決に基づく選択法に基づき、選択される探索中心は、20個の初期MV候補を有するMVクラスタの重心1003(五角形で示される)であるように設定される。初期MV候補が散在している場合、様々なMVクラスタに含まれる初期MV候補の数が比較的同様なものであることも可能である。このような場合、様々なMVクラスタは、現在のCU/サブCUに対して最適な動きを導出するために、等しい役割を果たすことになり得る。
【0086】
本開示の別の実施形態では、生成されたクラスタが、初期MV候補リストにおけるMV候補の同様のカバー範囲を示す場合(例えば、他のものに対して有力なMVクラスタが存在しないなど)、すべてのMVクラスタの重心を平均し、その後のCU/サブCUレベルの初期動き探索に対する探索中心としてその平均を使用することが提案される。
図10Bは、平均ベースの探索中心選択法を示す一例を示しており、ここで、3つのMVクラスタ1010、1012、1014は、同じ数の初期MV候補を含む。MVクラスタのそれぞれの重心は、三角形1016、1018、1020により示される。生成されたクラスタが、初期MV候補の同様のカバー範囲を有するかどうかを決定するために、様々な方法を適用することができる。一例では、(i)最大のカバー範囲を有するMVクラスタに含まれるMV候補の数と、(ii)最小のカバー範囲を有するMVクラスタに含まれる数との間の差を使用することができる。その差が、事前に定義された閾値より小さい場合、生成されたクラスタは、同様のカバー範囲を有するものと見なされる(すなわち、平均ベースの探索中心決定が適用されるべきである)が、そうではない場合、様々なクラスタのそれぞれのカバー範囲は、不均衡であると見なされて、多数決ベースの探索中心決定が適用されるべきである。
図10Bの例では、クラスタ1010、1012、1014は、初期MV候補の同様なカバー範囲を有すると決定されることに応じて、選択される探索中心は、重心1016、1018、1020の平均である。選択された探索中心は、1022で、五角形により示される。
【0087】
図10Aおよび
図10Bは共に、選択された探索中心が、1つまたは複数の主MV候補の平均である実施形態を示していることに留意されたい。具体的には、
図10Aの実施形態では、選択された探索中心は、1つだけの主MV候補の平均であり、したがって、候補それ自体に等しいが、
図10Bの実施形態では、選択された探索中心は、複数のMV候補の平均である。
【0088】
図9を再度参照すると、探索中心が計算された後、探索ウィンドウが決定され、その中心は、選択された探索中心に設定され、また幅は選択された範囲(例えば、事前に定義された、または信号送りされた範囲)に設定される。その後、主MV(例えば、MVクラスタの重心)は、各主MVを探索ウィンドウの中へとクリップすることにより(911)更新される。
図7における同じ例に基づいて、
図11は、提案の探索制約が、CU/サブCUレベルの初期動き探索に適用された後の外部メモリアクセスを示す。
図7と
図11の間の比較に基づき、制約されない動き探索(この例では、参照ピクチャに対する5つの別々のメモリアクセスを使用する)と比較して、対応する領域(探索ウィンドウ1102により示される)への1回だけの単一の外部メモリアクセスが、制約された動き探索により使用されて、初期のCU/サブCUレベルの動き探索に対する最適なMV(912)を決定するために必要なすべての参照サンプルを取り込むことが分かる。こうすることは、エンコーダ/デコーダのハードウェアに対してFRUCにより使用されるメモリ帯域幅を効率的に低減することができる。
【0089】
上記の記述において、同じ探索範囲が、CUレベルの初期動き探索とサブCUレベルの初期動き探索との両方に適用される。しかし、サブCUレベル動き探索は、CUレベルの動き探索から導出されるMVに基づくことを考えると、各サブCUに対して生成された初期MV動き候補は、通常、CUレベルで生成された初期MV候補よりもさらに相関がある。したがって、CUレベル動き探索に使用されたものよりも、サブCU動き探索用には、より小さい探索範囲を使用するのが適切である。これは、参照ピクチャからアクセスされる領域のサイズをさらに低減することができる。
【0090】
上記では、提案される制約されたCU/サブCUレベル初期動き探索が、MVクラスタリングが適用される場合において述べられている。しかし、実際には、制約された動き探索は、独立して使用され得る。すなわち、制約された動き探索は、MVクラスタリングを用いる、または用いない場合にも適用することができる。MVクラスタリングが適用されない場合、制約された動き探索は、初期MV候補が得られた参照ピクチャをさらに検討し、同じ参照ピクチャからのMV候補のセットに別々に適用することができる。
【0091】
CUレベル動き精緻化、サブCUレベル初期動き探索、およびサブCUレベル動き精緻化に対する制約された探索範囲
上記で述べたように、現在のCUの内部の各サブCUが、互いに遠く離れて存在し得るそれ自体の初期MVを導出できることを考えると、サブCUレベル動き探索の探索範囲は、一般に制限されない。このような設計はまた、実際のハードウェア実装に対して大幅なメモリ帯域幅使用量を要求する可能性がある。このような問題に対処するために、いくつかの実施形態では、CUレベル動き精緻化、サブCUレベル初期動き探索、およびサブCUレベル動き精緻化を含む、CUレベル動き探索後のすべてのFRUCに関連する動き探索プロセスに対して探索範囲制約を加えることが提案される。
【0092】
図12は、CUレベル動き精緻化、サブCUレベル初期動き探索、およびサブCUレベル動き精緻化に対して、提案の探索範囲が適用された後の修正されたFRUC動き探索プロセスを示す。具体的には、
図12において、CUレベル初期MVを探索中心として設定することによるCUレベル初期動き探索後に、探索ウィンドウが決定される(1212)、次いで、その後のCUレベル動き精緻化は、探索ウィンドウ内で実施されるだけである。サブCUレベルにおいて、各サブCUに対して取得されたすべてのMV候補は、探索ウィンドウの領域へとクリップされ(1221)、また各サブCUの動き精緻化はまた、探索ウィンドウ内で可能であるに過ぎない。このようにすることにより、CUレベル初期MVが得られた後、外部の参照ピクチャに対しては、1回のメモリアクセスが使用され得るに過ぎない。比較すると、他のFRUC設計は、各サブCUの動き探索に対して外部メモリアクセスを必要とする可能性があり、CUの内部には最高で64個のサブCUが存在し得る。したがって、CUレベルの初期MVが決定された後、他のFRUC法は、CUの動き情報を生成するために、64も多くの別々のメモリアクセスを使用する可能性がある。この意味で、例示的な実施形態は、FRUCのためのメモリ帯域幅使用量を低減することができる。
【0093】
図12による方法では、CUレベル初期動き探索(1202)において、初期CUレベルMV候補リストが生成され(1204)、参照ピクチャが選択される(1206)。MV候補リストにおけるMVがクラスタ化され(1208)、主MVが各クラスタを代表する。クラスタの主MVは、クラスタにおけるMV候補の重心とすることができ、探索は、最適な主MVを選択するように実施される(1210)。CUレベルの動き精緻化に対して、探索範囲が決定され(1212)、CUレベル動き精緻化が、探索範囲内で実施される(1214)。CUレベル動き精緻化の後、サブCUレベル初期動き探索(1216)が実施される。CUにおける各サブCUに対して、初期サブCUレベルMV候補リストが生成され(1218)、サブCUレベルMVはクラスタ化され(1220)、各クラスタは、主MVによって代表される。主MVは、主MVが探索ウィンドウ内に含まれるように、必要に応じてクリッピングにより処理される(1221)。最適なMVが、定義された探索範囲に含まれる処理された主MVから選択される(1222)。サブCUレベル動き探索(1216)の後、サブCUレベル動き精緻化が、定義された探索範囲内で実施される(1224)。
【0094】
1つの統一された探索範囲におけるFRUC動き探索
上記で述べられた制約された動き探索法は、他のFRUC法と比較して、大幅なメモリ帯域幅低減を提供できるが、いくつかのこのような実施形態はまだ、参照ピクチャの外部バッファへの少なくとも2つの別々のメモリアクセスを使用しており、1つは、CUレベル初期MVを生成するためのCUレベル初期動き探索に使用され、他のものは、現在のCUの内部のサブCUのMVを生成するための他のFRUC動き探索プロセスに使用される。FRUCメモリ帯域幅をさらに低減するために、外部の参照ピクチャへのただ1回の単一メモリアクセスが、FRUCプロセス全体に使用されるように、統一された探索範囲が、すべてのFRUC関連の動き探索プロセスに対して提案される。
図13は、統一された探索範囲が、FRUC動き探索プロセス全体に適用された後の、修正されたFRUC動き導出を示す。より具体的には、MVクラスタリング(1308)の後、探索中心が、式8および式9に基づいて、主MV候補から決定され、かつ探索ウィンドウが決定され(1310)、その中心は、選択された探索中心に設定され、幅は、選択された範囲に設定される。
【0095】
その後のCUレベル動き精緻化(1314)およびサブCUレベル動き探索-サブCUレベル初期動き探索(1316)およびサブCUレベル動き精緻化(1324)を含む-は、定義された探索ウィンドウ内のMV候補を探索できるだけである。
図13の例では、提案の統一された探索範囲の場合、選択される参照ピクチャへの1回だけの外部メモリアクセスが使用されて、探索ウィンドウのサイズ内の参照サンプルを取込み、CU全体の動き情報を生成する。さらに、上記で述べた統一された探索法は、外部メモリアクセスの数を減らすので、符号化性能とメモリ帯域幅使用量の間の良好なトレードオフとして、上記で述べた実施形態における制約された探索法に使用されるものよりも大きな探索範囲を使用することが適切である。
【0096】
図13で示されるように、CUレベル初期動き探索(1302)において、初期CUレベルMV候補リストが生成され(1304)、かつ参照ピクチャが選択される(1306)。MV候補リストにおけるMVはクラスタ化され(1308)、主MVが各クラスタを代表する。クラスタの主MVは、クラスタにおけるMV候補の重心とすることができる。主MVに基づき、探索中心および探索範囲が決定される(1310)。主MVは、探索範囲内に含まれるように適切に主MVをクリップする(1311)ことにより処理され、探索は、最適な処理されたMVを選択するように実施される(1312)。CUレベル動き精緻化(1314)が、選択されたMVに対して実施される。CUレベル動き精緻化の後、サブCUレベル初期動き探索(1316)が実施される。CUにおける各サブCUに対して、初期サブCUレベルMV候補リストが生成され(1318)、かつサブCUレベルMVがクラスタ化され(1320)、各クラスタは、主MVによって代表される。主MVは、探索範囲内に含まれるように適切にクリップされる(1321)ことにより処理される。最適に処理された主MVが、探索領域内で選択され(1322)、サブCUレベル動き精緻化(1324)が実施される。
【0097】
FRUC動き探索に対する適応型探索範囲
上記で述べられた制約されたFRUC動き探索法のいくつかの実施形態では、同じ探索範囲が、1つのビデオシーケンスにおけるすべてのピクチャに適用される。しかし、代替的実施形態では、探索範囲は、例えば、シーケンスレベル、ピクチャレベル、およびブロックレベルなど、異なるレベルにおいて適応的に調整することができ、また各適応レベルは、異なる性能/複雑さのトレードオフを提供することができる。加えて、適応型探索範囲が適用される場合、最適な探索範囲を決定するために、異なる方法が適用され得る。例えば、探索範囲が、現在のピクチャとその参照ピクチャの間の相関性に応じて、ピクチャレベルで適応される場合、いくつかのピクチャにおけるビデオブロックは、安定した動き示すことができる(例えば、ランダムアクセス構成の上位時間レイヤにおけるピクチャ)が、例えば、ランダムアクセス構成の下位時間レイヤにおけるピクチャなど、いくつかのピクチャにおけるビデオブロックの動きは、比較的不安定である。このような場合、符号化性能を維持しながら大きなメモリアクセス低減を達成するために、不安定な動きを有するピクチャに使用されるものよりも、安定した動きを有するピクチャに対して小さな探索範囲を使用することがより有益であり得る。別の例では、探索範囲が、ブロックレベルで適用される場合、ブロックの最適な探索範囲は、現在のブロックの空間的な近傍のMVの相関性に基づいて決定することができる。動きの相関性を測定するための一方法は、現在のブロックの近傍のMVの分散を計算することである。動き分散が、事前定義の閾値よりも小さい場合、現在のブロックの動きは、その近傍のものと高い相関があり、小さな探索範囲を安全に適用できると考えるのが適切であり、そうではない場合、現在のブロックの動きは、その近傍との相関性が少ないものと見なされ、現在のブロックの最適なMVが、探索ウィンドウ内で確実に識別され得るように、大きな探索範囲を適用すべきである。別の方法では、ブロックサイズに基づいて探索範囲を適応的に調整することが提案される。この方法の背後にある考えは、現在のブロックのサイズが大きい場合、現在のブロックがより多くの複雑な内容(例えば、豊富なテクスチャおよび/または指向性のエッジ)を含む可能性がより高く、したがって、大きな探索範囲を適用することができ、それは、現在のブロックが参照ピクチャから良好な一致を見出すのに役立つ。そうではなく、現在のブロックは比較的小さなサイズを有する場合、現在のブロックは、少ないテクスチャ情報を含む可能性があり、したがって、この場合、小さな探索ウィンドウで十分よいと考えるのが適切である。本開示の別の実施形態では、現在のピクチャとその参照ピクチャの間のPOC距離に基づいて、探索範囲を適応的に調整することが提案される。具体的には、本方法によれば、現在のピクチャと、その最も近い参照ピクチャとの間のPOC距離が、事前定義の閾値よりも小さい場合、現在のピクチャにおけるブロックは、安定した動きを示すことができ、より小さな探索範囲を適用することができ、そうではない場合(現在のピクチャと、その最も近い参照ピクチャとの間のPOC距離が、事前定義の閾値以上である場合)、現在のピクチャ内のブロックの動きは、不安定である可能性があり、大きな探索範囲を適用すべきである。
【0098】
適応型探索範囲がFRUCに適用される場合、対応する探索範囲は、ビットストリームで(例えば、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびスライスセグメントヘッダで)信号送りされるか、シグナリングではなくエンコーダとデコーダの両方において導出されるかのいずれかとすることができる。
【0099】
FRUCに対する複雑さの制限された動き探索
FRUC動き精緻化のための探索反復数に対する制限
知られたFRUC設計において、CUレベル動き精緻化とサブCUレベル動き精緻化の両方は、探索中心が、2つの連続する探索ループの間で更新されない限り、精緻化探索が続くという意味において、計算に関して制限されない。FRUCブロックの符号化/復号化の複雑さは無制限であるため、このような設計は、実際のエンコーダ/デコーダのハードウェア実装のパイプライン設計にとって実際的ではない。したがって、FRUC設計を、ハードウェア実装にとってより扱いやすいものにするために、CU/サブCUレベル動き精緻化段階において実施される探索反復の最大数に対して制限を設けることが提案される。上記で述べたCUレベル初期動き探索に対する制約された探索範囲と同様に、シーケンスレベル、ピクチャレベル、およびブロックレベルなど、様々な符号化レベルにおいて、探索反復の最大数が適用される、または信号送りされ得る。さらに、同じ最大の探索反復数が、CUレベル動き精緻化、およびサブCUレベル動き精緻化に適用することができる。しかし、サブCUレベル動き候補は、通常、CUレベル動き候補よりも強い相関性を示すので、少なくともいくつかの実施形態では、最大探索反復の値を、サブCUレベル動き精緻化に対するものよりも、CUレベル動き精緻化に対して大きくなるように設定することも提案される。
【0100】
MVクラスタリングに対する主MVの数に対する制限
上記で述べたものなど、MVクラスタリング法は、初期MV導出(CUレベルとサブCUレベルの両方で)の平均的な計算の複雑さを大幅に低減することができるが、それは、テストする必要のあるMV候補の最大値を必ずしも変更しない。例えば、最悪の場合、CUレベル動き探索とサブCUレベル動き探索において、それぞれ、最高で15個および17個の調査すべきMV候補がまだ存在する可能性がある。実務において、最悪の場合のシナリオは、実際のエンコーダ/デコーダ実装に対して重大な考慮事項であり、それは、ハードウェア設計により満たされるべき処理機能/条件を直接決定する。したがって、いくつかの実施形態では、MVクラスタリングから生成された主MVの数に対して制約を加えて、試験されるMV候補の平均と最大値の両方を低減することが提案される。主MVの最大数(例えば、L)が与えられると、どの主MVをFRUC動き探索に選択すべきかを決定するために、異なる基準を利用することができる。
【0101】
いくつかの実施形態で使用される1つの基準は、MV候補カバー範囲に基づいて主MVを選択することである。この基準を用いるいくつかの実施形態では、エンコーダ/デコーダは、各MVクラスタ(CUレベルまたはサブCUレベル)に含まれる初期MV候補リスト(MV候補カバー範囲)内の初期MVの数を数え、次いで、エンコーダ/デコーダは、より多くのカバー範囲を有する主MVをリストの最初に置くことにより、MV候補カバー範囲に従って生成された主MVの順序付けを行い、かつ最初のL個の主MVを、後続するCU/サブCUレベル動き探索プロセスに対してさらに使用される出力として維持するだけである。
【0102】
いくつかの実施形態で使用される別の基準は、MV候補分散に基づいてMVを選択することである。このような基準を用いるいくつかの実施形態では、エンコーダ/デコーダは、MVクラスタリングプロセス中に、各MVクラスタに含まれる初期MVの分散を計算し、次いで、エンコーダ/デコーダは、生成された主MVを、MV候補分散の昇順で順序付けし、後続するCUレベルまたはサブCUレベル動き探索プロセスに対する出力として、最小のMV候補分散を有する最初の主MVを維持するだけである。
【0103】
主MVの最大数は、シーケンスレベル、ピクチャレベル、およびブロックレベルなど、様々な符号化レベルにおいて適用される、または信号送りされ得る。加えて、異なる最大値は、CUレベル動き探索およびサブCUレベル動き探索において適用されるMVクラスタリングプロセスに使用することができる。
【0104】
CUレベル初期動き探索に対して制約された探索範囲を用いる方法
いくつかの実施形態では、現在のピクチャを含む複数のピクチャを備えるビデオを符号化する方法が提供される。方法は、現在のピクチャにおける少なくとも1つの現在のブロックに対して、ブロックのフレームレートアップ変換(FRUC)予測のための動きベクトル候補の第1のセットを識別するステップと、動きベクトル候補の第1のセットに基づいて探索中心を画定(define)するステップと、選択された幅を有し、探索中心に中心が置かれる探索ウィンドウを決定するステップと、探索ウィンドウ内に含まれるように、探索ウィンドウの外側にある第1のセット中のいずれの動きベクトルもクリップすることによって、動きベクトル候補の第1のセットを処理するステップと、動きベクトル候補の処理された第1のセットの中から、選択される動きベクトルを求める探索を実施するステップとを含む。探索中心は、例えば、動きベクトル候補の第1のセットの平均とすることができる。
【0105】
いくつかのこのような実施形態は、選択された動きベクトル候補に基づいて動き精緻化探索を実施し、精緻化された動きベクトルを生成するステップと、精緻化された動きベクトルを用いてブロックを予測するステップとをさらに含む。
【0106】
現在のブロックは、例えば、符号化ユニットまたはサブ符号化ユニットブロックとすることができる。
【0107】
選択された動きベクトルは、最低のマッチングコスト、または最低の絶対差分和(SAD)を達成するように選択することができる。
【0108】
いくつかの実施形態では、動きベクトル候補の第1のセットは、動きベクトル候補の初期セットを複数のクラスタへとクラスタ化するステップと、各クラスタに対して、それぞれのクラスタの重心を計算するステップと、それぞれのクラスタの重心を表す重心動きベクトルを、動きベクトル候補の第1のセットに付与するステップとを含む方法により生成される。このような実施形態では、探索中心は、大部分の動きベクトル候補を有するクラスタの中心とすることができる。
【0109】
選択された幅は、例えば、VPS、SPS、PPS、スライスセグメントヘッダにおいて、またはブロックレベルで信号送りすることができる。いくつかの実施形態では、現在のピクチャに対して選択される幅は、少なくとも部分的に、現在のピクチャにおける動きの安定性レベルに基づいて決定される。いくつかの実施形態では、現在のブロックに対して選択される幅は、少なくとも部分的に、現在のブロックの空間的近傍の動きベクトルの相関性レベルに基づいて決定される。いくつかの実施形態では、現在のブロックに対して選択される幅は、少なくとも部分的に、現在のブロックのサイズに基づいて決定される。いくつかの実施形態では、現在のピクチャに対して選択される幅は、少なくとも部分的に、現在のピクチャとその参照ピクチャの間のPOC距離に基づいて決定される。
【0110】
CUレベル動き精緻化、サブCUレベル初期動き探索、およびサブCUレベル動き精緻化に対して制約された探索範囲を用いる方法
いくつかの実施形態では、現在のピクチャを含む複数のピクチャを備えるビデオを符号化する方法が提供される。方法は、現在のピクチャにおける少なくとも1つの現在の符号化ユニット(CU)に対して、符号化ユニットのフレームレートアップ変換(FRUC)予測のための動きベクトル候補の第1のセットを識別するステップと、動きベクトル候補の第1のセットの中から、選択されるCUレベル動きベクトルを求める探索を実施するステップと、選択された幅を有し、選択されたCUレベル動きベクトルに中心のある探索ウィンドウを決定するステップと、探索ウィンドウ内で動き精緻化探索を実施して、精緻化されたCUレベル動きベクトルを生成するステップとを含む。符号化ユニットは、精緻化されたCUレベル動きベクトルを用いて予測することができる。
【0111】
いくつかの実施形態では、方法は、符号化ユニット内の各サブCUに対して、サブCU初期動きベクトルのセットを識別するステップと、探索ウィンドウ内に含まれるように、探索ウィンドウの外側にあるセット内のいずれの動きベクトルもクリップすることによって、サブCU初期動きベクトルのセットを処理するステップと、サブCU初期動きベクトルの処理されたセットの中から選択されるサブCU動きベクトルを求める探索を実施するステップと、探索ウィンドウ内で動き精緻化探索を実施して、精緻化されたサブCU動きベクトルを生成するステップとをさらに含む。サブCUは、精緻化されたサブCUレベル動きベクトルを用いて予測することができる。
【0112】
選択される幅は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスセグメントヘッダにおいて、またはブロックレベルで信号送りされ得る。現在のピクチャに対して選択される幅は、少なくとも部分的に、現在のピクチャにおける動きの安定性レベルに基づいて決定することができる。現在のブロックに対して選択される幅は、少なくとも部分的に、現在のブロックの空間的な近傍の動きベクトルの相関性レベルに基づいて決定することができる。現在のブロックに対して選択される幅は、少なくとも部分的に、現在のブロックのサイズに基づいて決定することができる。現在のピクチャに対して選択される幅は、少なくとも部分的に、現在のピクチャとその参照ピクチャの間のPOC距離に基づいて決定することができる。
【0113】
統一化された探索範囲でFRUC動き探索を用いる方法
いくつかの実施形態では、現在のピクチャを含む複数のピクチャを備えるビデオを符号化する方法が提供される。方法は、現在のピクチャにおける少なくとも1つの符号化ユニット(CU)に対して、符号化ユニットのフレームレートアップ変換(FRUC)予測のためのCUレベル動きベクトル候補の第1のセット識別するステップと、CUレベル動きベクトル候補の第1のセットに基づき(例えば、CUレベル動きベクトル候補の第1のセットの平均として)探索中心を画定(define)するステップと、選択された幅を有し、探索中心に中心のある探索ウィンドウを決定するステップと、探索ウィンドウ内に含まれるように、探索ウィンドウの外側にある第1のセットにおけるいずれかの動きベクトルもクリップすることによって、CUレベル動きベクトル候補の第1のセットを処理するステップと、動きベクトル候補の処理された第1のセットの中から選択されたCUレベル動きベクトルを求める探索を実施するステップと、探索ウィンドウ内で動き精緻化探索を実施して、精緻化されたCUレベル動きベクトルを生成するステップと、サブCU初期動きベクトルのセットを識別するステップと、符号化ユニット内の各サブCUに対して、探索ウィンドウ内に含まれるように、探索ウィンドウの外側にある、セットにおけるいずれかの動きベクトルをクリップすることによって、サブCU初期動きベクトルのセットを処理するステップと、サブCU初期動きベクトルの処理されたセットの中から選択されたサブCU動きベクトルを求める探索を実施するステップと、探索ウィンドウ内で動き精緻化探索を実施して、精緻化されたサブCU動きベクトルを生成するステップとを含む。
【0114】
いくつかのこのような実施形態では、CUレベル動きベクトル候補の第1のセットは、CUレベル動きベクトル候補の初期セットを複数のクラスタにクラスタ化するステップと、各クラスタに対して、それぞれのクラスタの重心を計算するステップと、それぞれのクラスタの重心を表す重心動きベクトルを動きベクトル候補の第1のセットに付与するステップとにより生成される。探索中心は、大部分のCUレベル動きベクトル候補を有するクラスタの中心とすることができる。
【0115】
選択された幅は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスセグメントヘッダにおいて、またはブロックレベルで信号送りされ得る。現在のピクチャに対して選択される幅は、少なくとも部分的に、現在のピクチャにおける動きの安定性レベルに基づいて決定することができる。現在のブロックに対して選択される幅は、少なくとも部分的に、現在のブロックの空間的な近傍の動きベクトルの相関性レベルに基づいて決定することができる。現在のブロックに対して選択される幅は、少なくとも部分的に、現在のブロックのサイズに基づいて決定することができる。現在のピクチャに対して選択される幅は、少なくとも部分的に、現在のピクチャとその参照ピクチャの間のPOC距離に基づいて決定することができる。
【0116】
FRUC動き精緻化に対する探索反復数の制限を用いる方法
いくつかの実施形態では、現在のピクチャを含む複数のピクチャを備えるビデオを符号化する方法が提供される。方法は、現在のピクチャにおける少なくとも1つのブロックに対して、ブロックのフレームレートアップ変換(FRUC)予測のための動きベクトル候補の第1のセットを識別するステップと、動きベクトル候補の第1のセットの中から、選択される動きベクトルを求める探索を実施するステップと、選択された動きベクトル候補に基づき動き精緻化探索を実施して、精緻化された動きベクトルを生成するステップであって、動き精緻化探索は、選択された最大反復数に制限されるステップとを含む。ブロックは、符号化ユニットまたはサブ符号化ユニットブロックとすることができる。
【0117】
選択された最大の反復数は、少なくとも部分的に、ブロックが符号化ユニットブロックであるか、それともサブ符号化ユニットブロックであるかに依存することができる。選択された最大の反復数は、シーケンスレベルで、ピクチャレベルで、ブロックレベルで、またはスライスセグメントヘッダにおいて信号送りされ得る。
【0118】
MVクラスタリングに対する主MVの数に対する制限を用いる方法
いくつかの実施形態では、現在のピクチャを含む複数のピクチャを備えるビデオを符号化する方法が提供される。方法は、現在のピクチャにおける少なくとも1つのブロック(例えば、符号化ユニットまたはサブ符号化ユニットブロック)に対して、動きベクトル候補の初期セットを複数のクラスタにクラスタ化するステップと、各クラスタに対して、それぞれのクラスタの重心を計算し、それぞれのクラスタの重心を表す重心動きベクトルを主動きベクトルのセットに付与するステップと、主動きベクトルのセットから動きベクトルの選択された最大数未満のものを選択して、動きベクトルの制約されたセットを生成するステップと、動きベクトル候補の制約されたセットの中から選択される動きベクトルを求める探索を実施するステップとを含む。
【0119】
いくつかの実施形態では、動きベクトルの選択された最大数未満のものを選ぶステップは、主動きベクトルのセットから、初期動きベクトル候補の最大数を有するクラスタを表す主動きベクトルを選ぶステップを含む。いくつかの実施形態では、動きベクトルの選択された最大数未満のものを選ぶステップは、主動きベクトルのセットから、動きベクトル候補の中から最小の分散を有するクラスタを表す主動きベクトルを選ぶステップを含む。
【0120】
動きベクトルの選択された最大数は、少なくとも部分的に、ブロックが、符号化ユニットブロックであるか、それともサブ符号化ユニットブロックであるかに依存することができる。動きベクトルの選択された最大数は、シーケンスレベル、ピクチャレベル、ブロックレベルで、またはスライスセグメントレベルにおいて信号送りすることができる。
【0121】
符号化されたビットストリーム構造
図14は、符号化されたビットストリーム構造の例を示す図である。符号化されたビットストリーム1300は、いくつかのNAL(ネットワーク抽象化レイヤ)ユニット1301からなる。NALユニットは、符号化されたスライス1306などの符号化されたサンプルデータ、またはパラメータセットデータ、スライスヘッダデータ1305、もしくは補助的な拡張情報データ1307(SEIメッセージと呼ぶことができる)などの高水準のシンタックスメタデータを含むことができる。パラメータセットは、複数のビットストリームレイヤ(例えば、ビデオパラメータセット1302(VPS))に適用できる、または1つのレイヤ内の符号化されたビデオシーケンスに適用できる(例えば、シーケンスパラメータセット1303(SPS))、または1つの符号化されたビデオシーケンス内のいくつかの符号化されたピクチャに適用できる(例えば、ピクチャパラメータセット1304(PPS))基本的なシンタックス要素を含む高レベルのシンタックス構造である。パラメータセットは、ビデオビットストリームの符号化されたピクチャと共に送られる、または他の手段(信頼性のあるチャネルを用いた帯域外送信、ハードコーディングなどを含む)により送ることができる。スライスヘッダ1305はまた、比較的小さい、またはいくつかのスライスもしくはピクチャタイプに対してだけに関連する何らかのピクチャ関連情報を含むことのできる高水準シンタックス構造である。SEIメッセージ1307は、復号化プロセスでは必要ではない可能性があるが、ピクチャ出力タイミングまたは表示、ならびに損失検出およびコンシールメントなど様々な他の目的に使用することのできる情報を搬送する。
【0122】
通信デバイスおよびシステム
図15は、通信システムの例を示す図である。通信システム1400は、エンコーダ1402、通信ネットワーク1404、およびデコーダ1406を備えることができる。エンコーダ1402は、有線接続または無線接続とすることのできる接続1408を介してネットワーク1404と通信することができる。エンコーダ1402は、
図1のブロックベースのビデオエンコーダと同様のものとすることができる。エンコーダ1402は、シングルレイヤコーデック(例えば、
図1)、またはマルチレイヤコーデックを含むことができる。デコーダ1406は、有線接続または無線接続とすることのできる接続1410を介して、ネットワーク1404と通信することができる。デコーダ1406は、
図2のブロックベースのビデオデコーダと同様であり得る。デコーダ1406は、シングルレイヤコーデック(例えば、
図2)、またはマルチレイヤコーデックを含むことができる。
【0123】
エンコーダ1402および/またはデコーダ1406は、これだけに限らないが、デジタルテレビジョン、無線同報通信システム、ネットワーク要素/端末、コンテンツもしくはウェブサーバ(例えば、ハイパーテキスト転送プロトコル(HTTP)サーバ)などのサーバ、携帯情報端末(PDA)、ラップトップもしくはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録システム、ビデオゲームデバイス、ビデオゲーム機、セルラ式もしくは衛星無線電話、デジタルメディアプレイヤ、および/または同様のものなど、広範囲の無線通信デバイスおよび/または無線送受信ユニット(WTRU)に組み込むことができる。
【0124】
通信ネットワーク1404は、適切なタイプの通信ネットワークとすることができる。例えば、通信ネットワーク1404は、複数の無線ユーザに、音声、データ、ビデオ、メッセージング、同報通信などのコンテンツを提供する複数のアクセスシステムとすることができる。通信ネットワーク1404は、無線帯域幅を含むシステムリソースの共用を介して、複数の無線ユーザにこのようなコンテンツにアクセスできるようにする。例えば、通信ネットワーク1404は、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交FDMA(OFDMA)、シングルキャリアFDMA(SC-FDMA)、および/または同様のものなど、1つまたは複数のチャネルアクセス方法を使用することができる。通信ネットワーク1404は、複数の接続された通信ネットワークを含むことができる。通信ネットワーク1404は、インターネット、および/またはセルラネットワーク、WiFiホットスポット、インターネットサービスプロバイダ(ISP)ネットワーク、および/または同様のものなどの1つまたは複数のプライベート商用ネットワークを含むことができる。
【0125】
図16は、例示的なWTRUのシステム図である。図示のように、例示的なWTRU1500は、プロセッサ1518、送受信機1520、送信/受信素子1522、スピーカ/マイクロフォン1524、キーパッドもしくはキーボード1526、ディスプレイ/タッチパッド1528、取外し不能メモリ1530、取外し可能メモリ1532、電源1534、全地球測位システム(GPS)チップセット1536、および/または他の周辺装置1538を含むことができる。WTRU1500は、実施形態との一貫性を維持しながら前述の要素の任意の下位の組合せを含み得ることが理解されよう。さらにエンコーダ(例えば、エンコーダ100)、および/またはデコーダ(例えば、デコーダ200)が組み込まれる端末は、
図16のWTRU1500を参照して本明細書で示され、かつ述べられた要素のいくつかまたはすべてを含むことができる。
【0126】
プロセッサ1518は、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタル信号プロセッサ(DSP)、グラフィック処理ユニット(GPU)、複数のマイクロプロセッサ、DSPコアに関連する1つまたは複数のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、書替え可能ゲートアレイ(FPGA)回路、任意の他のタイプの集積回路(IC)、状態機械、および同様のものとすることができる。プロセッサ1518は、信号符号化、データ処理、電力制御、入出力処理、ならびに/またはWTRU1500が有線および/または無線環境で動作できるようにする任意の他の機能を実施することができる。プロセッサ1518は、送信/受信素子1522に結合され得る送受信機1520に結合することができる。
図16は、プロセッサ1518および送受信機1520を別の構成要素として示しているが、プロセッサ1518および送受信機1520は、電子パッケージおよび/またはチップへと共に一体化できることが理解されよう。
【0127】
送信/受信素子1522は、無線インターフェース1515を介して、別の端末に信号を送信し、かつ/またはそこから信号を受信するように構成することができる。例えば、1つまたは複数の実施形態では、送信/受信素子1522は、RF信号を送信し、かつ/または受信するように構成されたアンテナとすることができる。1つまたは複数の実施形態では、送信/受信素子1522は、例えば、IR、UV、または可視光信号を送信し、および/または受信するように構成された発光体/検出器とすることができる。1つまたは複数の実施形態では、送信/受信素子1522は、RF信号と光信号の両方を送信および/または受信するように構成することができる。送信/受信素子1522は、無線信号の任意の組合せを送信し、かつ/または受信するように構成され得ることが理解されよう。
【0128】
加えて、送信/受信素子1522は、
図16で単一の素子として示されているが、WTRU1500は、任意の数の送信/受信素子1522を含むことができる。より具体的には、WTRU1500は、MIMO技術を使用することができる。したがって、一実施形態では、WTRU1500は、無線インターフェース1515を介して無線信号を送信おおび受信するために、2つ以上の送信/受信素子1522(例えば、複数のアンテナ)を含むことができる。
【0129】
送受信機1520は、送信/受信素子1522により送信される信号を変調し、かつ/または送信/受信素子1522により受信される信号を復調するように構成することができる。上記で述べたように、WTRU1500は、マルチモード機能を有することができる。したがって、送受信機1520は、WTRU1500に、例えば、UTRAおよびIEEE802.11などの複数のRATを介して通信できるようにするための複数の送受信機を含むことができる。
【0130】
WTRU1500のプロセッサ1518は、スピーカ/マイクロフォン1524、キーパッド1526、および/またはディスプレイ/タッチパッド1528(例えば、液晶ディスプレイ(LCD)表示ユニット、または有機発光ダイオード(OLED)表示ユニット)に結合され、かつそこからユーザ入力データを受け取ることができる。プロセッサ1518はまた、ユーザデータを、スピーカ/マイクロフォン1524、キーパッド1526、および/またはディスプレイ/タッチパッド1528に出力することができる。さらにプロセッサ1518は、取外し不能メモリ1530および/または取外し可能メモリ1532など、任意のタイプの適切なメモリからの情報にアクセスし、データをそこに記憶することができる。取外し不能メモリ1530は、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、ハードディスク、または任意の他のタイプのメモリ記憶デバイスを含むことができる。取外し可能メモリ1532は、加入者識別モジュール(SIM)カード、メモリスティック、セキュアデジタル(SD)メモリカード、および同様のものを含むことができる。1つまたは複数の実施形態では、プロセッサ1518は、サーバまたはホームコンピュータ(図示せず)など、WTRU1500上に物理的に位置していないメモリからの情報にアクセスし、かつそこにデータを記憶することができる。
【0131】
プロセッサ1518は、電源1534から電力を受け取ることができ、またその電力をWTRU1500における他の構成要素に配布し、かつ/または制御するように構成することができる。電源1534は、WTRU1500に電力を供給するための任意の適切なデバイスとすることができる。例えば、電源1534は、1つまたは複数の乾電池(例えば、ニッケルカドミウム(NiCd)、ニッケル亜鉛(NiZn)、ニッケル水素(NiMH)、リチウムイオン(Li-ion)など)、太陽電池、燃料電池、および同様のものを含むことができる。
【0132】
プロセッサ1518は、GPSチップセット1536に結合することができ、それは、WTRU1500の現在位置に関する位置情報(例えば、経度および緯度)を提供するように構成することができる。GPSチップセット1536からの情報に加えて、またはそれに代えて、WTRU1500は、端末(例えば、基地局)から無線インターフェース1515を介して位置情報を受信し、かつ2つ以上の近くの基地局から受信した信号のタイミングに基づいてその位置を決定することができる。WTRU1500は、実施形態との一貫性を維持しながら、任意の適切な位置決定法により、位置情報を取得できることが理解されよう。
【0133】
プロセッサ1518は、他の周辺装置1538にさらに結合することができ、それは、さらなる構成、機能、および/または有線もしくは無線接続性を提供する1つまたは複数のソフトウェアおよび/またはハードウェアモジュールを含むことができる。例えば、周辺装置1538は、加速度計、方向センサ、動きセンサ、近接センサ、電子コンパス、衛星送受信機、デジタルカメラおよび/またはビデオレコーダ(例えば、写真および/またはビデオ用)、ユニバーサルシリアルバス(USB)ポート、振動デバイス、テレビジョン送受信機、手を使用しないヘッドセット、Bluetooth(登録商標)モジュール、周波数変調(FM)無線ユニット、およびデジタルミュージックプレイヤ、メディアプレイヤ、ビデオゲームプレイヤモジュール、インターネットブラウザなどのソフトウェアモジュール、ならびに同様のものを含むことができる。
【0134】
例として、WTRU1500は、無線信号を送信および/または受信するように構成することができ、またユーザ機器(UE)、移動局、固定または移動加入者ユニット、ページャ、セルラ式電話、携帯情報端末(PDA)、スマートフォン、ラップトップ、ネットブック、タブレットコンピュータ、パーソナルコンピュータ、無線センサ、家庭用電子機器、または圧縮されたビデオ通信を受信し、かつ処理できる任意の他の端末を含むことができる。
【0135】
WTRU1500および/または通信ネットワーク(例えば、通信ネットワーク804)は、広帯域CDMA(WCDMA)を用いて無線インターフェース1515を確立できるユニバーサル移動体通信システム(UMTS)地上無線アクセス(UTRA)など、無線技術を実施することができる。WCDMAは、高速パケットアクセス(HSPA)、および/または進化型HSPA(HSPA+)などの通信プロトコルを含むことができる。HSPAは、高速ダウンリンクパケットアクセス(HSDPA)、および/または高速アップリンクパケットアクセス(HSUPA)を含むことができる。WTRU1500および/または通信ネットワーク(例えば、通信ネットワーク804)は、進化型UMTS地上無線アクセス(E-UTRA)などの無線技術を実施することができ、それは、ロングタームエボリューション(LTE)、および/またはLTEアドバンスト(LTE-A)を用いて無線インターフェース1515を確立することができる。
【0136】
WTRU1500および/または通信ネットワーク(例えば、通信ネットワーク804)は、IEEE802.16(例えば、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX))、CDMA2000、CDMA2000 1X、CDMA2000EV-DO、暫定基準2000(IS-2000)、暫定基準95(IS-95)、暫定基準856(IS-856)、グローバルシステムフォーモバイル通信(GSM)、GSMエボリューション拡張データレート(EDGE)、GSM EDGE(GERAN)、および同様のものなどの無線技術を実施することができる。WTRU1500および/または通信ネットワーク(例えば、通信ネットワーク804)は、IEEE802.11、IEEE802.15、または同様のものなどの無線技術を実施することができる。
【0137】
述べられた実施形態のうちの1つまたは複数のものの様々なハードウェア要素は、それぞれのモジュールに関して本明細書で述べられた様々な機能を行う(すなわち、実施する、実行する、および同様のものなど)「モジュール」と呼ばれることに留意されたい。本明細書で使用される場合、モジュールは、所与の実装形態に対して当業者が適切であると考えるハードウェア(例えば、1つまたは複数のプロセッサ、1つまたは複数のマイクロプロセッサ、1つまたは複数のマイクロコントローラ、1つまたは複数のマイクロチップ、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数の書替え可能ゲートアレイ(FPGA)、1つまたは複数のメモリデバイスなど)を含む。各述べられたモジュールはまた、それぞれのモジュールによって実行されるものとして述べられた1つまたは複数の機能を実行するための実行可能な命令を含むことができ、またこれらの命令は、ハードウェア(すなわち、ハードワイヤード)命令、ファームウェア命令、ソフトウェア命令、および/または同様のものの形をとる、または含むことができ、かつ一般に、RAM、ROMなどと呼ばれるものなど、任意の適切な、1つまたは複数の非一時的なコンピュータ可読媒体に記憶され得る。
【0138】
特徴および要素が、特定の組合せで上記において述べられているが、当業者であれば、各特徴または要素は、単独で、または他の特徴および要素との任意の組合せで使用できることが理解されよう。さらに、本明細書で述べられる方法は、コンピュータまたはプロセッサにより実行するために、コンピュータ可読媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアで実施することができる。コンピュータ可読記憶媒体の例は、これだけに限らないが、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよび取外し可能ディスクなどの磁気媒体、光磁気媒体、ならびにCD-ROMディスク、およびデジタル多用途ディスク(DVD)などの光媒体を含む。ソフトウェアに関連するプロセッサは、WTRU、UE、端末、基地局、RNC、または任意のホストコンピュータで使用される無線周波数送受信機を実施するために使用することができる。
【符号の説明】
【0139】
1402 エンコーダ
1404 通信ネットワーク
1406 デコーダ
1500 WTRU
1518 プロセッサ
1520 トランシーバ(送受信機)
1522 アンテナ
【手続補正書】
【提出日】2023-05-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデコーダによって、サブブロックを予測する方法であって、
現在のブロックに対するブロックレベル初期動きベクトルを取得するステップと、
前記ブロックレベル初期動きベクトルの上の中心を置いている探索ウィンドウを決定するステップと、
前記探索ウィンドウ内のみにおいて、サブブロック動き精緻化探索を実施して、第1の精緻化された動きベクトルを生成するステップと、
少なくとも前記第1の精緻化された動きベクトルを使用して、前記サブブロックを予測するステップと
を備える方法。
【請求項2】
サブブロック動き精緻化探索を実施することは、
2つの異なる参照ピクチャにおける2つの参照ブロックの間の最適な一致を見出すことを含み、前記2つの参照ブロックは、前記第1の精緻化された動きベクトルおよび第2の精緻化された動きベクトルによって、それぞれポイントされている、請求項1に記載の方法。
【請求項3】
2つの異なる参照ピクチャにおける2つの参照ブロックの間の前記最適な一致を見出すことは、前記2つの参照ブロックの間の絶対差分の和を最小化することを含む請求項2に記載の方法。
【請求項4】
前記サブブロック動き精緻化探索は、選択された反復の最大数に制限される請求項1乃至3のいずれかに記載の方法。
【請求項5】
ビデオエンコーダによって、サブブロックを予測する方法であって、
現在のブロックに対するブロックレベル初期動きベクトルを取得するステップと、
前記ブロックレベル初期動きベクトルの上の中心を置いている探索ウィンドウを決定するステップと、
前記探索ウィンドウ内のみにおいて、サブブロック動き精緻化探索を実施して、第1の精緻化された動きベクトルを生成するステップと、
少なくとも前記第1の精緻化された動きベクトルを使用して、前記サブブロックを予測するステップと
を備える方法。
【請求項6】
サブブロック動き精緻化探索を実施することは、
2つの異なる参照ピクチャにおける2つの参照ブロックの間の最適な一致を見出すことを含み、前記2つの参照ブロックは、前記第1の精緻化された動きベクトルおよび第2の精緻化された動きベクトルによって、それぞれポイントされている、請求項5に記載の方法。
【請求項7】
2つの異なる参照ピクチャにおける2つの参照ブロックの間の前記最適な一致を見出すことは、前記2つの参照ブロックの間の絶対差分の和を最小化することを含む請求項6に記載の方法。
【請求項8】
前記サブブロック動き精緻化探索は、選択された反復の最大数に制限される請求項5乃至7のいずれかに記載の方法。
【請求項9】
現在のブロックに対するブロックレベル初期動きベクトルを取得することと、
前記ブロックレベル初期動きベクトルの上の中心を置いている探索ウィンドウを決定することと、
前記探索ウィンドウ内のみにおいて、サブブロック動き精緻化探索を実施して、第1の精緻化された動きベクトルを生成することと、
少なくとも前記第1の精緻化された動きベクトルを使用して、サブブロックを予測することと
を少なくとも実施するよう構成されたビデオデコーダ装置。
【請求項10】
サブブロック動き精緻化探索を実施することは、
2つの異なる参照ピクチャにおける2つの参照ブロックの間の最適な一致を見出すことを含み、前記2つの参照ブロックは、前記第1の精緻化された動きベクトルおよび第2の精緻化された動きベクトルによって、それぞれポイントされている、請求項9に記載の装置。
【請求項11】
2つの異なる参照ピクチャにおける2つの参照ブロックの間の前記最適な一致を見出すことは、前記2つの参照ブロックの間の絶対差分の和を最小化することを含む請求項10に記載の装置。
【請求項12】
前記サブブロック動き精緻化探索は、選択された反復の最大数に制限される請求項9乃至11のいずれかに記載の装置。
【請求項13】
現在のブロックに対するブロックレベル初期動きベクトルを取得することと、
前記ブロックレベル初期動きベクトルの上の中心を置いている探索ウィンドウを決定することと、
前記探索ウィンドウ内のみにおいて、サブブロック動き精緻化探索を実施して、第1の精緻化された動きベクトルを生成することと、
少なくとも前記第1の精緻化された動きベクトルを使用して、サブブロックを予測することと
を少なくとも実施するよう構成されたビデオエンコーダ装置。
【請求項14】
サブブロック動き精緻化探索を実施することは、
2つの異なる参照ピクチャにおける2つの参照ブロックの間の最適な一致を見出すことを含み、前記2つの参照ブロックは、前記第1の精緻化された動きベクトルおよび第2の精緻化された動きベクトルによって、それぞれポイントされている、請求項13に記載の装置。
【請求項15】
2つの異なる参照ピクチャにおける2つの参照ブロックの間の前記最適な一致を見出すことは、前記2つの参照ブロックの間の絶対差分の和を最小化することを含む請求項14に記載の装置。
【請求項16】
前記サブブロック動き精緻化探索は、選択された反復の最大数に制限される請求項13乃至15のいずれかに記載の装置。
【請求項17】
1つ以上のプロセッサに、請求項1乃至8いずれかの方法を実施させる命令を含むコンピュータ読取り可能媒体。