(57)【要約】フレームレートアップコンバージョンコーディングモードについての方法、装置、およびコンピュータ可読媒体が提供され、それにおいて、両方向マッチングが行われるときにアフィン動きモデルが適用される。フレームレートアップコンバージョンコーディングモードは、ビットストリーム中で提供されるフレームからの生成された追加のフレームを含むことができる。様々なインプリメンテーションでは、両方向マッチングは、生成されているフレーム中の現在のブロックについて、第１の参照ピクチャ中の第１のブロック、第２の参照ピクチャ中の第２のブロックを識別することを含む。アフィン（例えば、非線形）動き情報は、第１のブロックと第２のブロックとの間であるとして決定されることができる。現在のブロックは、アフィン動き情報を使用して予測されることができる。【選択図】図１８
2019534622.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを処理する方法であって、
前記ビデオデータを取得することと、
前記ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することと、ここにおいて、前記フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、前記ブロックにアフィン動きモデルを適用することを含む、
前記ブロックへの前記アフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定することと、
前記第１のアフィン動き情報と前記第２のアフィン動き情報とを使用して、前記ブロックについての少なくとも１つの予測を決定することと、
を備える、方法。
【請求項２】
前記ブロックについての第１の予測を決定することと、ここにおいて、前記第１の予測は、前記第１の参照ピクチャと前記第１のアフィン動き情報とを使用して決定される、
前記ブロックについての第２の予測を決定することと、ここにおいて、前記第２の予測は、前記第２の参照ピクチャと前記第２のアフィン動き情報とを使用して決定される、
をさらに備える、請求項１に記載の方法。
【請求項３】
前記アフィン動きモデルは、平行移動動きモデルの代わりに適用される、請求項１に記載の方法。
【請求項４】
前記アフィン動きモデルは、平行移動動きモデルに加えて適用される、請求項１に記載の方法。
【請求項５】
前記ブロックに平行移動動きモデルを適用することと、ここにおいて、前記ブロックの平行移動動き情報は、前記平行移動動きモデルを使用して導出される、
前記ブロックに前記アフィン動きモデルを適用することと、ここにおいて、前記平行移動動き情報は、前記第１のアフィン動き情報と前記第２のアフィン動き情報とを導出するために前記アフィン動きモデルによって入力として使用される、
をさらに備える、請求項１に記載の方法。
【請求項６】
前記アフィン動きモデルのマッチングコストが前記平行移動動きモデルのマッチングコストより低いと決定することと、
ビットストリーム中で前記アフィン動きモデルの適用をシグナリングすることと、
をさらに備える、請求項５に記載の方法。
【請求項７】
前記アフィン動きモデルのマッチングコストが前記平行移動動きモデルのマッチングコストより高いと決定することと、
ビットストリーム中で前記平行移動動きモデルの適用をシグナリングすることと、
をさらに備える、請求項５に記載の方法。
【請求項８】
前記ブロックのサイズがしきい値サイズより大きいと決定すること、ここにおいて、前記アフィン動きモデルは、前記ブロックの前記サイズが前記しきい値サイズより大きいと決定することに応答して前記ブロックに適用される、
をさらに備える、請求項１に記載の方法。
【請求項９】
前記アフィン動きモデルを適用することは、前記ブロックに関連付けられたズーミング動き、回転動き、または遠近動きのうちの少なくとも１つを決定することを含む、請求項１に記載の方法。
【請求項１０】
前記ブロックについての前記少なくとも１つの予測を精緻化するために１次テイラー展開最適化を実行すること、
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記１次テイラー展開最適化を実行することは、前記第１の参照ピクチャと前記第２の参照ピクチャとの時間的位置における前記ブロックの１次テイラー展開間の２乗誤差の和を最小化することによって動きベクトルを導出することを含む、請求項１０に記載の方法。
【請求項１２】
前記少なくとも１つの予測に基づいて前記ブロックを復号すること、
をさらに備える、請求項１に記載の方法。
【請求項１３】
前記少なくとも１つの予測に基づいて前記ブロックを符号化すること、
をさらに備える、請求項１に記載の方法。
【請求項１４】
装置であって、
ビデオデータを記憶するように構成されたメモリと、
プロセッサと、を備え、前記プロセッサは、
前記ビデオデータを取得することと、
前記ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することと、ここにおいて、前記フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、前記ブロックにアフィン動きモデルを適用することを含む、
前記ブロックへの前記アフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定することと、
前記第１のアフィン動き情報と前記第２のアフィン動き情報とを使用して前記ブロックについての少なくとも１つの予測を決定することと、
を行うように構成された、装置。
【請求項１５】
前記プロセッサは、
前記ブロックについての第１の予測を決定することと、ここにおいて、前記第１の予測は、前記第１の参照ピクチャと前記第１のアフィン動き情報とを使用して決定される、
前記ブロックについての第２の予測を決定することと、ここにおいて、前記第２の予測は、前記第２の参照ピクチャと前記第２のアフィン動き情報とを使用して決定される、
を行うようにさらに構成される、請求項１４に記載の装置。
【請求項１６】
前記アフィン動きモデルは、平行移動動きモデルの代わりに適用される、請求項１４に記載の装置。
【請求項１７】
前記アフィン動きモデルは、平行移動動きモデルに加えて適用される、請求項１４に記載の装置。
【請求項１８】
前記プロセッサは、
前記ブロックに平行移動動きモデルを適用することと、ここにおいて、前記ブロックの平行移動動き情報は、前記平行移動動きモデルを使用して導出される、
前記ブロックに前記アフィン動きモデルを適用することと、ここにおいて、前記平行移動動き情報は、前記第１のアフィン動き情報と前記第２のアフィン動き情報とを導出するために前記アフィン動きモデルによって入力として使用される、
を行うようにさらに構成される、請求項１４に記載の装置。
【請求項１９】
前記プロセッサは、
前記アフィン動きモデルのマッチングコストが前記平行移動動きモデルのマッチングコストより低いと決定することと、
ビットストリーム中で前記アフィン動きモデルの適用をシグナリングすることと、
を行うようにさらに構成される、請求項１８に記載の装置。
【請求項２０】
前記プロセッサは、
前記アフィン動きモデルのマッチングコストが前記平行移動動きモデルのマッチングコストより高いと決定することと、
ビットストリーム中で前記平行移動動きモデルの適用をシグナリングすることと、
を行うようにさらに構成される、請求項１８記載の装置。
【請求項２１】
前記プロセッサは、
前記ブロックのサイズがしきい値サイズより大きいと決定すること、ここにおいて、前記アフィン動きモデルは、前記ブロックの前記サイズが前記しきい値サイズより大きいと決定することに応答して前記ブロックに適用される、
を行うようにさらに構成される、請求項１４に記載の装置。
【請求項２２】
前記アフィン動きモデルを適用することは、前記ブロックに関連付けられたズーミング動き、回転動き、または遠近動きのうちの少なくとも１つを決定することを含む、請求項１４に記載の装置。
【請求項２３】
前記プロセッサは、
前記ブロックについての前記少なくとも１つの予測を精緻化するために１次テイラー展開最適化を実行すること、
を行うようにさらに構成される、請求項１４に記載の装置。
【請求項２４】
前記１次テイラー展開最適化を実行することは、前記第１の参照ピクチャと前記第２の参照ピクチャとの時間的位置における前記ブロックの１次テイラー展開間の２乗誤差の和または絶対差分の和を最小化することによって動きベクトルを導出することを含む、請求項２３に記載の装置。
【請求項２５】
前記装置は、復号デバイスを含む、請求項１４に記載の装置。
【請求項２６】
前記装置は、符号化デバイスを含む、請求項１４に記載の装置。
【請求項２７】
前記ビデオデータを表示するためのディスプレイ、
をさらに備える、請求項１４に記載の装置。
【請求項２８】
前記装置は、ピクチャをキャプチャするためのカメラを有するモバイルデバイスを含む、請求項１４に記載の装置。
【請求項２９】
１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
ビデオデータを取得することと、
前記ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することと、ここにおいて、前記フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、前記ブロックにアフィン動きモデルを適用することを含む、
前記ブロックへの前記アフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定することと、
前記第１のアフィン動き情報と前記第２のアフィン動き情報とを使用して、前記ブロックについての少なくとも１つの予測を決定することと、
を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
【請求項３０】
ビデオデータを処理するための装置であって、
前記ビデオデータを取得するための手段と、
前記ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用するための手段と、ここにおいて、前記フレームレートアップコンバージョン両方向マッチングコーディングモードを前記使用するための手段は、前記ブロックにアフィン動きモデルを適用することを含む、
前記ブロックへの前記アフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定するための手段と、
前記第１のアフィン動き情報と前記第２のアフィン動き情報とを使用して、前記ブロックについての少なくとも１つの予測を決定するための手段と、
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ビデオコーディングおよび圧縮に関する。例えば、フレームレートアップコンバージョン（ＦＲＵＣ）を改善するためのシステムおよび方法が説明される。
【背景技術】
【０００２】
[0002]ビデオコーディング規格は、ＩＴＵ−Ｔ Ｈ．２６１、ＩＳＯ／ＩＥＣ ＭＰＥＧ−１ Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ．２６２またはＩＳＯ／ＩＥＣ ＭＰＥＧ−２ Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ．２６３、ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ Ｖｉｓｕａｌおよび（ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ ＡＶＣとしても知られている）ＩＴＵ−Ｔ Ｈ．２６４、および高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ Ｈ．２６５を含む。２０１６年に、ＭＰＥＧとＩＴＵ−Ｔ ＶＣＥＧとは、次世代のビデオコーディング規格のための新しいコーディングツールを調査するために、ＪＶＥＴ（共同調査ビデオチーム：a joint exploration video team）を結成した。参照ソフトウェアは、ＪＥＭ（共同調査モデル：joint exploration model）と呼ばれる。
【発明の概要】
【０００３】
[0003]フレームレートアップコンバージョン（ＦＲＵＣ）技法は、低フレームレートビデオから高フレームレートビデオを生成するために使用されることができる。良い結果を生むフレームレートアップコンバージョンのためのある１つの方法は、両方向（bilateral）マッチングである。両方向マッチングと併せた、局所照明補償（local illumination compensation）の適用は、しかしながら、ビットリームサイズを低減するという観点からいかなる利得も生むことなしに、計算の複雑性を増大させる可能性がある。
【０００４】
[0004]フレームレートアップコンバージョン技法は、アップコンバートされたフレーム中のどこにブロックを配置するかを決定するときに平行移動（translational）動きを使用することができる。オブジェクション（Objection）の動きは、しかしながら、厳密には線形でないことがありえ、回転、ズームインまたはズームアウト、および他の非線形動きを含む可能性がある。これらの状況では、アフィン動きモデルは、平行移動動きモデルが適用される場合よりコンパクトなビットストリームを作り出しうる。
【０００５】
[0005]少なくとも一例によると、ビデオデータを取得することを含む、ビデオデータを処理する方法が提供される。方法はさらに、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することを含み、ここで、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されるときには、局所照明補償が当該ブロックに対して使用されることは許可されない。方法はさらに、当該ブロックについての動き情報を決定することを含み、ここで、動き情報は、当該ブロックに対して使用されるフレームレートアップコンバージョン両方向マッチングコーディングモードに基づいて決定される。
【０００６】
[0006]別の例では、ビデオデータを記憶するように構成されたメモリと、プロセッサとを含む装置が提供される。プロセッサは、ビデオデータを取得するように構成され、且つ取得することができる。プロセッサは、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用するように構成され、且つ使用することができ、ここで、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されるときには、局所照明補償が当該ブロックに対して使用されることは許可されない。プロセッサは、当該ブロックについての動き情報を決定するように構成され、且つ決定することができ、ここで、動き情報は、当該ブロックに対して使用されるフレームレートアップコンバージョン両方向マッチングコーディングモードに基づいて決定される。
【０００７】
[0007]別の例では、プロセッサによって実行されると、ビデオデータを取得することを含む方法を実行する命令を記憶したコンピュータ可読媒体が提供される。方法はさらに、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することを含み、ここで、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されるときには、局所照明補償が当該ブロックに対して使用されることは許可されない。方法はさらに、当該ブロックについての動き情報を決定することを含み、ここで、動き情報は、当該ブロックに対して使用されるフレームレートアップコンバージョン両方向マッチングコーディングモードに基づいて決定される。
【０００８】
[0008]別の例では、ビデオデータを取得するための手段を含む装置が提供される。装置はさらに、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用するための手段を備え、ここにおいて、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されるときには、局所照明補償が当該ブロックに対して使用されることは許可されない。装置はさらに、当該ブロックについての動き情報を決定するための手段を備え、ここにおいて、動き情報は、当該ブロックに対して使用されるフレームレートアップコンバージョン両方向マッチングコーディングモードに基づいて決定される。
【０００９】
[0009]いくつかの態様では、局所照明補償フラグは、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されることに基づいて、当該ブロックに対してシグナリングされない。
【００１０】
[0010]いくつかの態様では、動き情報は、少なくとも１つの動きベクトルを含む。
【００１１】
[0011]いくつかの態様では、フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、第１の参照フレーム中の第１のブロックを決定することと、第２の参照フレーム中の第２のブロックを決定することとを含み、ここにおいて、第２のブロックは、第１のブロックに関連付けられている。フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することはさらに、第１のブロックから第２のブロックまでの動き軌道を決定することと、当該動き軌道の経路に沿って当該ブロックを生成することとを含むことができる。
【００１２】
[0012]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体は、復号デバイスによって実行されることができる、および／または復号デバイス中に含まれることができる。
【００１３】
[0013]いくつかの態様では、フレームレートアップカンバセーション（up-conversation）両方向マッチングは、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されることに基づいて、当該ブロックに対してシグナリングされる。これらの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対してシグナリングされることに応答して、偽（false）となるように局所照明補償フラグの値を導出することを含むことができる。これらの態様では、局所照明補償は、局所照明補償フラグが偽となるように導出されるときには使用されない。
【００１４】
[0014]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体は、符号化デバイスによって使用されることができる、および／または符号化デバイス中に含まれることができる。
【００１５】
[0015]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、動き情報を精緻化する(refine)ために１次テイラー展開最適化（a first-order Taylor expansion optimization）を実行することを含む。いくつかの態様では、１次テイラー展開最適化を実行することは、第１の参照ピクチャと第２の参照ピクチャとの時間的位置における当該ブロックの１次テイラー展開間の２乗誤差の和（a sum of squared error）（または絶対差分の和（a sum of absolute difference））を最小化することによって動きベクトルを導出することを含む。
【００１６】
[0016]いくつかの態様では、上述されたような装置は、ビデオデータを表示するためのディスプレイを含むことができる。
【００１７】
[0017]いくつかの態様では、上述されたような装置は、ピクチャをキャプチャするためのカメラを有するモバイルデバイスを含むことができる。
【００１８】
[0018]少なくとも一例によると、ビデオデータを取得することを含む、ビデオを処理する方法が提供される。方法はさらに、ビデオデータのブロックに対して局所照明補償を使用することを含み、ここで、局所照明補償が当該ブロックに対して使用されるときには、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されることは許可されない。方法はさらに、当該ブロックについての動き情報を決定することを含み、ここにおいて、動き情報は、局所照明補償が当該ブロックに対して使用された後に決定される。
【００１９】
[0019]別の例では、ビデオデータを記憶するように構成されたメモリと、プロセッサとを含む装置が提供される。プロセッサは、ビデオデータを取得するように構成され、且つ取得することができる。プロセッサは、ビデオデータのブロックに対して局所照明補償を使用するように構成され、且つ使用することができ、ここにおいて、局所照明補償が当該ブロックに対して使用されるときには、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されることは許可されない。プロセッサは、当該ブロックについての動き情報を決定するように構成され、且つ決定することができ、ここにおいて、動き情報は、局所照明補償が当該ブロックに対して使用された後に決定される。
【００２０】
[0020]別の例では、プロセッサによって実行されると、ビデオデータを取得することを含む方法を実行する命令を記憶したコンピュータ可読媒体が提供される。方法はさらに、ビデオデータのブロックに対して局所照明補償を使用することを含み、ここで、局所照明補償が当該ブロックに対して使用されるときには、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されることは許可されない。方法はさらに、当該ブロックについての動き情報を決定することを含み、ここにおいて、動き情報は、局所照明補償が当該ブロックに対して使用された後に決定される。
【００２１】
[0021]別の例では、ビデオデータを取得するための手段を含む装置が提供される。装置はさらに、ビデオデータのブロックに対して局所照明補償を使用するための手段を備え、ここにおいて、局所照明補償が当該ブロックに対して使用されるときには、フレームレートアップコンバージョン両方向マッチングコーディングモードが当該ブロックに対して使用されることは許可されない。装置はさらに、当該ブロックについての動き情報を決定するための手段を備え、ここにおいて、動き情報は、局所照明補償が当該ブロックに対して使用された後に決定される。
【００２２】
[0022]いくつかの態様では、フレームレートアップコンバージョン両方向マッチングコーディングモードフラグは、局所照明補償が当該ブロックに対して使用されることに基づいて、当該ブロックに対してシグナリングされない。
【００２３】
[0023]いくつかの態様では、局所照明補償を使用することは、スケーリングファクタとオフセットとを導出するために最小２乗法（a least square method）を使用することを含む。
【００２４】
[0024]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体は、復号デバイスによって使用されることができる、および／または復号デバイス中に含まれることができる。
【００２５】
[0025]いくつかの態様では、局所照明補償は、局所照明補償が当該ブロックに対して使用されることに基づいて、当該ブロックに対してシグナリングされる。これらの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、局所照明補償が当該ブロックに対してシグナリングされることに応答して、偽（false）となるようにフレームレートアップコンバージョン両方向マッチングコーディングモードフラグについての値を導出することを含むことができ、ここで、フレームレートアップコンバージョン両方向マッチングコーディングモードは、フレームレートアップコンバージョン両方向マッチングコーディングモードフラグが偽となるように導出されるときには使用されない。
【００２６】
[0026]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体は、符号化デバイスによって使用されることができる、および／または符号化デバイス中に含まれることができる。
【００２７】
[0027]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、動き情報を精緻化する（refine）ために１次テイラー展開最適化を使用することを含むことができる。いくつかの態様では、１次テイラー展開最適化を使用することは、第１の参照ピクチャと第２の参照ピクチャとの時間的位置における当該ブロックの１次テイラー展開間の２乗誤差の和（または絶対差分の和）を最小化することによって動きベクトルを導出することを含む。
【００２８】
[0028]いくつかの態様では、上述されたような装置は、ビデオデータを表示するためのディスプレイを含むことができる。
【００２９】
[0029]いくつかの態様では、上述されたような装置は、ピクチャをキャプチャするためのカメラを有するモバイルデバイスを含むことができる。
【００３０】
[0030]少なくとも一例によると、ビデオデータビデオを取得することを含む、ビデオデータを取得する方法が提供される。方法はさらに、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することを含み、ここで、フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、当該ブロックにアフィン動きモデルを適用することを含む。方法はさらに、当該ブロックへのアフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定することを含む。方法はさらに、第１のアフィン動き情報と第２のアフィン動き情報とを使用して当該ブロックについての少なくとも１つの予測を決定することを含む。
【００３１】
[0031]別の例では、ビデオデータを記憶するように構成されたメモリと、プロセッサとを含む装置が提供される。プロセッサは、ビデオデータを取得するように構成され、且つ取得することができる。プロセッサは、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用するように構成され、且つ使用することができ、ここにおいて、フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、当該ブロックにアフィン動きモデルを適用することを含む。プロセッサは、当該ブロックへのアフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定するように構成され、且つ決定することができる。プロセッサは、第１のアフィン動き情報と第２のアフィン動き情報とを使用して当該ブロックについての少なくとも１つの予測を決定するように構成され、且つ決定することができる。
【００３２】
[0032]別の例では、プロセッサによって実行されると、ビデオデータのビデオを取得することを含む方法を実行する命令を記憶したコンピュータ可読媒体が提供される。方法はさらに、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することを含み、ここで、フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、当該ブロックにアフィン動きモデルを適用することを含む。方法はさらに、当該ブロックへのアフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定することを含む。方法はさらに、第１のアフィン動き情報と第２のアフィン動き情報とを使用して当該ブロックについての少なくとも１つの予測を決定することを含む。
【００３３】
[0033]別の例では、ビデオデータを取得するための手段を含む装置が提供される。装置はさらに、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用するための手段を備え、ここにおいて、フレームレートアップコンバージョン両方向マッチングコーディングモードを使用することは、当該ブロックにアフィン動きモデルを適用することを含む。装置はさらに、当該ブロックへのアフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定するための手段を備える。装置はさらに、第１のアフィン動き情報と第２のアフィン動き情報とを使用して当該ブロックについての少なくとも１つの予測を決定するための手段を備える。
【００３４】
[0034]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、当該ブロックについての第１の予測を決定することを含み、ここで、第１の予測は、第１の参照ピクチャと第１のアフィン動き情報とを使用して決定される。これらの態様はさらに、当該ブロックについての第２の予測を決定することを含むことができ、ここで、第２の予測は、第２の参照ピクチャと第２のアフィン動き情報とを使用して決定される。
【００３５】
[0035]いくつかの態様では、アフィン動きモデルは、平行移動（translation）動きモデルの代わりに適用される。
【００３６】
[0036]いくつかの態様では、アフィン動きモデルは、平行移動動きモデルに加えて適用される。
【００３７】
[0037]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、当該ブロックに平行移動動きモデルを適用することを含み、ここで、当該ブロックの平行移動動き情報は、平行移動動きモデルを使用して導出される。これらの態様はさらに、当該ブロックにアフィン動きモデルを適用することを含むことができ、ここで、平行移動動き情報は、第１のアフィン動き情報と第２のアフィン動き情報とを導出するためにアフィン動きモデルによって入力として使用される。
【００３８】
[0038]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、アフィン動きモデルのマッチングコストが平行移動動きモデルのマッチングコストより低いと決定することを含む。これらの態様はさらに、ビットストリーム中でアフィン動きモデルの適用をシグナリングすることを含むことができる。
【００３９】
[0039]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、アフィン動きモデルのマッチングコストが平行移動動きモデルのマッチングコストより高いと決定することを含む。これらの態様はさらに、ビットストリーム中で平行移動動きモデルの適用をシグナリングすることを含むことができる。
【００４０】
[0040]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、当該ブロックのサイズがしきい値サイズより大きいと決定することを含み、ここで、アフィン動きモデルは、当該ブロックのサイズがしきい値サイズより大きいと決定することに応答して当該ブロックに適用される。
【００４１】
[0041]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体はさらに、当該ブロックについての少なくとも予測をリファイン（精緻化）する（refine）ために１次テイラー展開最適化を実行することを含む。いくつかの態様では、１次テイラー展開最適化を実行することは、第１の参照ピクチャと第２の参照ピクチャとの時間的位置におけるブロックの１次テイラー展開間の２乗誤差の和（または絶対差分の和）を最小化することによって動きベクトルを導出することを含む。
【００４２】
[0042]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体は、復号デバイスによって実施されることができる、および／または復号デバイス中に含まれることができる。
【００４３】
[0043]いくつかの態様では、上述された方法、装置、およびコンピュータ可読媒体は、符号化デバイスによって実施されることができる、および／または符号化デバイス中に含まれることができる。
【００４４】
[0044]いくつかの態様では、上述されたような装置は、ビデオデータを表示するためのディスプレイを含むことができる。
【００４５】
[0045]いくつかの態様では、上述されたような装置は、ピクチャをキャプチャするためのカメラを有するモバイルデバイスを含むことができる。
【００４６】
[0046]この発明の概要は、特許請求される主題の基幹的または本質的な特徴を識別することを意図されてはおらず、特許請求される主題の範囲を決定するために単独で使用されることも意図されてはいない。主題は、この特許の明細書全体の適切な部分、任意または全ての図面、および各請求項を参照することによって理解されるべきである。
【００４７】
[0047]前述は、他の特徴および実施形態とともに、後続の明細書、特許請求の範囲、および添付の図面を参照するとより明らかとなるであろう。
【００４８】
[0048]様々なインプリメンテーションの例が、次の図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【００４９】
【図１】符号化デバイスおよび復号デバイスの例を例示するブロック図である。
【図２Ａ】マージモードについての空間的ＭＶ候補を導出するための方法の例を例示する。
【図２Ｂ】ＡＶＭＰモードについての空間的近隣ＭＶ候補を導出するための方法の例を例示する。
【図３Ａ】ＴＭＶＰ候補の実例的な導出を例示する
【図３Ｂ】動きベクトル（ＭＶ）スケーリングの例を例示する。
【図４】フレームレートアップコンバージョンにおける一方向（unilateral）動き推定の例を例示する。
【図５】フレームレートアップコンバージョンのための両方向動き推定の例を例示する。
【図６】テンプレートマッチングベースの復号器側動きベクトル導出の例を例示する。
【図７】ミラーベースの双方向（bi-directional）動きベクトル導出の例を例示する。
【図８】ｐｕ＿ｄｍｖｄ＿ｆｌａｇを含むＰＵを復号するためのプロセスの例を例示する。
【図９】両方向マッチングの例を例示する。
【図１０】テンプレートマッチングの例を例示する。
【図１１】照明補償パラメータを導出するために近隣サンプルを使用する例を例示する。
【図１２】現在のブロックについての簡略化されたアフィン動きモデルの例を例示する。
【図１３】ブロックのサブブロックを使用して決定される動きベクトルフィールドの例を例示する。
【図１４】ＡＦ＿ＩＮＴＥＲモードでの動きベクトル予測の例を例示する。
【図１５Ａ】ＡＦ＿ＭＥＲＧＥモードでの動きベクトル予測の例を例示する。
【図１５Ｂ】ＡＦ＿ＭＥＲＧＥモードでの動きベクトル予測の例を例示する。
【図１６】フレームレートアップコンバージョンのためのプロセスの例を例示する。
【図１７】フレームレートアップコンバージョンのためのプロセスの例を例示する。
【図１８】フレームレートアップコンバージョンのためのプロセスの例を例示する。
【図１９】実例的な符号化デバイスを例示するブロック図である。
【図２０】実例的なビデオ復号デバイスを例示するブロック図である。
【詳細な説明】
【００５０】
[0071]ある特定の態様およびインプリメンテーションが以下に提供される。当業者に明らかであるように、これらの態様およびインプリメンテーションのうちのいくつかは、独立して適用されえ、およびそれらのうちのいくつかは、組み合わせて適用されうる。以下の説明では、説明を目的として、特定の詳細が様々なインプリメンテーションの完全な理解を提供するために記載される。しかしながら、様々なインプリメンテーションがこれらの特定の詳細なしに実施されうることは明らかであろう。図面および説明は、制限的であるとは意図されない。
【００５１】
[0072]次に続く説明は、実例的なインプリメンテーションのみを提供しており、本開示の範囲、適用可能性、または構成を限定することを意図されてはいない。むしろ、実例的なインプリメンテーションの次に続く説明は、ある例をインプリメントすることを可能にする説明を当業者に提供するであろう。添付された特許請求の範囲中に記載されているような本発明の精神および範囲から逸脱することなしに、要素の機能および配列において様々な変更がなされうることは理解されるべきである。
【００５２】
[0073]特定の詳細は、異なるインプリメンテーションの完全な理解を提供するために、以下の説明中で与えられる。しかしながら、それらのインプリメンテーションがこれらの特定の詳細なしに実施されうることは、当業者によって理解されるであろう。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、不必要な詳細で例を曖昧にしないために、ブロック図形式のコンポーネントとして示されうる。他の事例では、よく知られている回路、プロセス、アルゴリズム、構造、および技法が、例を曖昧にすることを避けるために、不必要な詳細なしに示されうる。
【００５３】
[0074]また、個々のインプリメンテーションが、フローチャート、フロー図、データフロー図、構造図、またはブロック図として図示されるプロセスとして説明されうることに留意されたい。フローチャートは、順次的なプロセスとして動作を説明しうるが、動作の多くは、並行してまたは同時に実行されることができる。加えて、動作の順序は再配列されうる。プロセスは、その動作が完了すると終了されるが、図面に含まれていない追加のステップを有する可能性がある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム、等に対応しうる。プロセスが関数に対応するとき、その終了は、その関数のｃａｌｌｉｎｇ関数またはｍａｉｎ関数への戻りに対応する可能性がある。
【００５４】
[0075]「コンピュータ可読媒体」という用語は、ポータブルまたは非ポータブル記憶デバイスと、光記憶デバイスと、命令（１つ以上）および／またはデータを記憶、包含、あるいは搬送することが可能である様々な他の媒体とを含むが、それらに限定されない。コンピュータ可読媒体は、データが記憶されることができ、且つワイヤレスにあるいはワイヤード接続を通して伝搬する搬送波および／または一時的電子信号を含まない、非一時的媒体を含みうる。非一時的媒体の例は、磁気ディスクまたはテープ、コンパクトディスク（ＣＤ）またはデジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、メモリまたはメモリデバイスのような光記憶媒体を含みうるが、それらに限定されない。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラム文の任意の組み合わせを表しうるコードおよび／または機械実行可能命令を記憶していることがありうる。コードセグメントは、情報、データ、引き数、パラメータ、またはメモリコンテンツを渡すおよび／または受け取ることによって別のコードセグメントまたはハードウェア回路に結合されうる。情報、引き数、パラメータ、データ、等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、または同様のものを含む任意の適した手段を介して渡されうるか、転送されうるか、または送信されうる。
【００５５】
[0076]さらに、様々な例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによってインプリメントされうる。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいてインプリメントされたとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント（例えば、コンピュータプログラム製品）は、コンピュータ可読または機械可読媒体中に記憶されうる。プロセッサ（１つ以上）は、必要なタスクを実行しうる。
【００５６】
[0077]より多くのデバイスおよびシステムがデジタルビデオデータを消費する能力を消費者に提供するにつれて、効率的なビデオコーディング技法の必要性がより重要になる。ビデオコーディングは、デジタルビデオデータ中に存在する大量のデータを扱うのに必要な記憶および送信要件を低減するために必要とされる。様々なビデオコーディング技法は、ビデオデータをより低いビットレートを使用する形態へと圧縮しつつ、高いビデオ品質を維持するために使用されうる。ここに使用される場合、「コーディング」は、「符号化」または「復号」を指す。
【００５７】
[0078]図１は、符号化デバイス１０４および復号デバイス１１２を含むビデオコーディングシステム１００の例を例示するブロック図である。符号化デバイス１０４は、ソースデバイスの一部であり得、および復号デバイス１１２は、受信デバイスの一部でありうる。ソースデバイスおよび／または受信デバイスは、モバイルまたは固定の電話ハンドセット（例えば、スマートフォン、セルラ電話、または同様のもの）、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、インターネットプロトコル（ＩＰ）カメラのような電子デバイス、または任意の他の適した電子デバイスを含みうる。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信のための１つまたは複数のワイヤレストランシーバを含みうる。ここに説明されるコーディング技法は、（例えば、インターネットを通した）ストリーミングビデオ送信、テレビブロードキャストまたは送信、データ記憶媒体上での記憶のためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用を含む、様々なマルチメディア適用におけるビデオコーディングに適用可能である。いくつかの例では、システム１００は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーミング、および／またはビデオ電話通信のような適用をサポートするために、１方向（one-way）または２方向（two-way）のビデオ送信をサポートすることができる。
【００５８】
[0079]符号化デバイス１０４（または符号化器）は、符号化されたビデオビットストリームを生成すべく、ビデオコーディング規格またはプロトコルを使用してビデオデータを符号化するために使用されることができる。ビデオコーディング規格の例は、ＩＴＵ−Ｔ Ｈ．２６１、ＩＳＯ／ＩＥＣ ＭＰＥＧ−１ Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ．２６２またはＩＳＯ／ＩＥＣ ＭＰＥＧ−２ Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ．２６３、ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ Ｖｉｓｕａｌ、そのスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ ＡＶＣとしても知られている）ＩＴＵ−Ｔ Ｈ．２６４、および高効率ビデオコーディング（ＨＥＶＣ）またはＩＴＵ−Ｔ Ｈ．２６５を含む。範囲およびスクリーンコンテンツコーディング拡張、３Ｄビデオコーディング（３Ｄ−ＨＥＶＣ）およびマルチビュー拡張（ＭＶ−ＨＥＶＣ）およびスケーラブル拡張（ＳＨＶＣ）を含む、マルチレイヤビデオコーディングを扱うＨＥＶＣへの様々な拡張が存在する。ＨＥＶＣおよびその拡張は、ＩＴＵ−Ｔ ビデオコーディングエキスパートグループ（ＶＣＥＧ）およびＩＳＯ／ＩＥＣモーションピクチャエキスパートグループ（ＭＰＥＧ）のビデオコーディングに関する共同コラボレーションチーム（ＪＣＴ−ＶＣ：the Joint Collaboration Team on Video Coding）ならびに３Ｄビデオコーディング拡張開発に関する共同コラボレーションチーム（ＪＣＴ−３Ｖ：Joint Collaboration Team on 3D Video Coding Extension Development）によって開発されてきた。ＭＰＥＧとＩＴＵ−Ｔ ＶＣＥＧとはまた、次世代のビデオコーディング規格のための新しいコーディングツールを調査するために、共同調査ビデオチーム（ＪＶＥＴ）を結成した。参照ソフトウェアは、ＪＥＭ（共同調査モデル）と呼ばれる。
【００５９】
[0080]ここに説明される多くの例は、ＪＥＭモデル、ＨＥＶＣ規格、および／またはそれらの拡張を使用した例を提供する。しかしながら、ここに説明される技法およびシステムはまた、ＡＶＣ、ＭＰＥＧ、それらの拡張のような他のコーディング規格、あるいは現在存在する他の適したコーディング規格または将来のコーディング規格に適用可能でありうる。それ故に、ここに説明される技法およびシステムは、特定のビデオコーディング規格を参照して説明されうるが、当業者は、その説明がその特定の規格にしか適用されないと解釈されるべきではないことを認識するであろう。
【００６０】
[0081]図１を参照すると、ビデオソース１０２は、符号化デバイス１０４にビデオデータを提供しうる。ビデオソース１０２は、ソースデバイスの一部でありうるか、またはソースデバイス以外のデバイスの一部でありうる。ビデオソース１０２は、ビデオキャプチャデバイス（例えば、ビデオカメラ、カメラ電話、ビデオ電話、または同様のもの）、記憶されたビデオを包含するビデオアーカイブ、ビデオデータを提供するビデオサーバまたはコンテンツプロバイダ、ビデオサーバまたはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組み合わせ、または任意の他の適したビデオソースを含みうる。
【００６１】
[0082]ビデオソース１０２からのビデオデータは、１つまたは複数の入力ピクチャまたはフレームを含みうる。ビデオのピクチャまたはフレームは、あるシーンの静止画像である。符号化デバイス１０４の符号化器（エンコーダ）エンジン１０６（または符号化器）は、符号化されたビデオビットストリームを生成するためにビデオデータを符号化する。いくつかの例では、符号化されたビデオビットストリーム（あるいは、「ビデオビットストリーム」または「ビットストリーム」）は、一連の１つまたは複数のコーディングされたビデオシーケンスである。コーディングされたビデオシーケンス（ＣＶＳ）は、ベースレイヤ中のランダムアクセスポイントピクチャを有し、且つある特定の特性を有するアクセスユニット（ＡＵ）から開始し、ベースレイヤ中のランダムアクセスポイントピクチャを有し、且つある特定の特性を有する次のＡＵまでの、およびそれを含まない一連のＡＵを含む。例えば、ＣＶＳを開始するランダムアクセスポイントピクチャのある特定の特性は、１に等しいＲＡＳＬフラグ（例えば、ＮｏＲａｓｌＯｕｔｐｕｔＦｌａｇ）を含みうる。そうでない場合は、（０に等しいＲＡＳＬフラグを有する）ランダムアクセスポイントピクチャは、ＣＶＳを開始しない。アクセスユニット（ＡＵ）は、１つまたは複数のコーディングされたピクチャ、および同じ出力時間を共有するそのコーディングされたピクチャに対応する制御情報を含む。ピクチャのコーディングされたスライスは、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットと呼ばれるデータユニットへとビットストリームレベルでカプセル化される。例えば、ＨＥＶＣビデオビットストリームは、ＮＡＬユニットを含む１つまたは複数のＣＶＳを含みうる。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを有する。一例では、ヘッダは、（マルチレイヤ拡張を除き）Ｈ．２６４／ＡＶＣの場合は１バイト、およびＨＥＶＣの場合は２バイトである。ＮＡＬユニットヘッダ中のシンタックス要素は、指定されたビットを取り、したがって、とりわけ、トランスポートストリーム、リアルタイムトランスポート（ＲＴＰ）プロトコル、ファイルフォーマットのような、全ての種類のシステムおよびトランスポートレイヤに対して可視である。
【００６２】
[0083]ビデオコーディングレイヤ（ＶＣＬ）ＮＡＬユニットおよび非ＶＣＬ ＮＡＬユニットを含む、２つのクラスのＮＡＬユニットがＨＥＶＣ規格中に存在する。ＶＣＬ ＮＡＬユニットは、コーディングされたピクチャデータの１つのスライスまたはスライスセグメント（以下に説明される）を含み、および非ＶＣＬ ＮＡＬユニットは、１つまたは複数のコーディングされたピクチャに関連する制御情報を含む。いくつかのケースでは、ＮＡＬユニットは、パケットと呼ばれることができる。１つのＨＥＶＣ ＡＵは、コーディングされたピクチャデータを包含するＶＣＬ ＮＡＬユニットと、コーディングされたピクチャデータに対応する非ＶＣＬ ＮＡＬユニット（ある場合には）とを含む。
【００６３】
[0084]ＮＡＬユニットは、ビデオ中のピクチャのコーディングされた表現のような、ビデオデータのコーディングされた表現を形成するビットのシーケンス（例えば、符号化されたビデオビットストリーム、ビットストリームのＣＶＳ、または同様のもの）を包含しうる。符号化器エンジン１０６は、各ピクチャを複数のスライスへと区分化することによってピクチャのコーディングされた表現を生成する。スライスは、同じピクチャ内の他のスライスからのデータへの依存なしにスライス中の情報がコーディングされるように、他のスライスとは独立している。スライスは、独立スライスセグメントと、存在する場合は、以前のスライスセグメントに従属する１つまたは複数の従属スライスセグメントとを含む１つまたは複数のスライスセグメントを含む。スライスはその後、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック（ＣＴＢ）へと区分化される。ルーマサンプルの１つのＣＴＢおよびクロマサンプルの１つまたは複数のＣＴＢは、サンプルのためのシンタックスとともに、コーディングツリーユニット（ＣＴＵ）と呼ばれる。ＣＴＵは、ＨＥＶＣ符号化のための基本処理ユニットである。ＣＴＵは、変動するサイズの複数のコーディングユニット（ＣＵ）へと分けられることができる。ＣＵは、コーディングブロック（ＣＢ）と呼ばれるルーマおよびクロマサンプルアレイを包含する。
【００６４】
[0085]ルーマおよびクロマＣＢはさらに、予測ブロック（ＰＢ）へとさらに分けられることができる。ＰＢは、（利用可能であるか、または使用のためにイネーブルにされるときに）インター予測またはイントラブロックコピー予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。１つのルーマＰＢおよび１つまたは複数のクロマＰＢは、関連するシンタックスとともに、予測ユニット（ＰＵ）を形成する。インター予測の場合、動きパラメータのセット（例えば、１つまたは複数の動きベクトル、参照インデックス、または同様のもの）は、各ＰＵについてビットストリーム中でシグナリングされ、１つのルーマＰＢおよび１つまたは複数のクロマＰＢのインター予測のために使用される。動きパラメータはまた、動き情報と呼ばれることができる。ＣＢはまた、１つまたは複数の変換ブロック（ＴＢ）へと区分化されることができる。ＴＢは、同じ２次元変換が予測残差信号をコーディングするために適用される色成分のサンプルの正方形（square）ブロックを表す。変換ユニット（ＴＵ）は、ルーマおよびクロマサンプルのＴＢ、および対応するシンタックス要素を表す。
【００６５】
[0086]ＣＵのサイズは、コーディングモードのサイズに対応し、および形状が正方形でありうる。例えば、ＣＵのサイズは、８×８サンプル、１６×１６サンプル、３２×３２サンプル、６４×６４サンプル、または最大で対応するＣＴＵのサイズまでの任意の他の適切なサイズでありうる。「Ｎ×Ｎ」というフレーズは、垂直および水平寸法の観点からビデオブロックのピクセル寸法（例えば、８ピクセル×８ピクセル）を指すためにここでは使用されうる。ブロック中のピクセルは、行と列中に配列されうる。いくつかの例では、ブロックは、水平方向に、垂直方向と同じ数のピクセルを有さないことがありうる。ＣＵに関連付けられたシンタックスデータは、例えば、ＣＵの１つまたは複数のＰＵへの区分化を記述しうる。区分化モードは、ＣＵがイントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なりうる。ＰＵは、形状が非正方形になるように区分化されうる。ＣＵに関連付けられたシンタックスデータはまた、例えば、ＣＴＵにしたがったＣＵの１つまたは複数のＴＵへの区分化を記述しうる。ＴＵは、形状が正方形または非正方形であることができる。
【００６６】
[0087]ＨＥＶＣ規格によると、変換は、変換ユニット（ＴＵ）を使用して実行されうる。ＴＵは、ＣＵによって異なりうる。ＴＵは、所与のＣＵ内のＰＵのサイズに基づいてサイジングされうる。ＴＵは、ＰＵと同じサイズでありうるか、またはより小さくありうる。いくつかの例では、ＣＵに対応する残差サンプルは、残差四分木（ＲＱＴ）として知られる四分木構造を使用してより小さいユニットへと再分割されうる。ＲＱＴのリーフノードは、ＴＵに対応しうる。ＴＵに関連付けられたピクセル差分値は、変換係数を作り出すために変換されうる。変換係数はその後、符号化器エンジン１０６によって量子化されうる。
【００６７】
[0088]ビデオデータのピクチャがＣＵへと区分化されると、符号化器エンジン１０６は、予測モードを使用して各ＰＵを予測する。予測ユニットまたは予測ブロックはその後、残差を得るために元のビデオデータから減算される（以下に説明される）。各ＣＵについて、予測モードは、シンタックスデータを使用してビットストリーム内部でシグナリングされうる。予測モードは、イントラ予測（またはイントラピクチャ予測）あるいはインター予測（またはインターピクチャ予測）を含みうる。イントラ予測は、ピクチャ内の空間的に近隣するサンプル間の相関を利用する。例えば、イントラ予測を使用して、各ＰＵは、例えば、ＰＵについての平均値を見出すためのＤＣ予測、平面表面（planar surface）をＰＵに合わせるための平面予測、隣接データから補外する（extrapolate）ための方向予測、または任意の他の適したタイプの予測を使用して、同じピクチャ中の隣接画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するために、ピクチャ間の時間的相関を使用する。例えば、インター予測を使用して、各ＰＵは、（出力順序で現在のピクチャの前または後の）１つまたは複数の参照ピクチャ中の画像データからの動き補償予測を使用して予測される。ピクチャエリアを、インターピクチャ予測を使用してコーディングするか、またはイントラピクチャ予測を使用してコーディングするかの決定は、例えば、ＣＵレベルでなされうる。
【００６８】
[0089]いくつかの例では、ピクチャの１つまたは複数のスライスは、スライスタイプを割り当てられる。スライスタイプは、Ｉスライス、Ｐスライス、およびＢスライスを含む。Ｉスライス（イントラフレーム、独立して復号可能）は、イントラ予測によってのみコーディングされるピクチャのスライスであり、およびしたがって、Ｉスライスがスライスの任意の予測ユニットまたは予測ブロックを予測するためにフレーム内のデータしか必要としないことから、独立して復号可能である。Ｐスライス（単方向（uni-directional）予測フレーム）は、イントラ予測で、および単方向インター予測でコーディングされうるピクチャのスライスである。Ｐスライス内の各予測ユニットまたは予測ブロックは、イントラ予測でコーディングされるか、またはインター予測でコーディングされるかのいずれかである。インター予測が適用されると、予測ユニットまたは予測ブロックは、１つの参照ピクチャによってのみ予測され、およびしたがって、参照サンプルは、１つのフレームの１つの参照領域からのもののみである。Ｂスライス（双方向予測フレーム）は、イントラ予測で、およびインター予測で（例えば、双予測（bi-prediction）または単予測（uni-prediction）のいずれかで）コーディングされうるピクチャのスライスである。Ｂスライスの予測ユニットまたは予測ブロックは、２つの参照ピクチャから双方向に予測されえ、ここで、各ピクチャは、１つの参照領域を与え（contributes）、２つの参照領域のサンプルセットは、双方向予測ブロックの予測信号を作り出すために（例えば、等しい重みで、または異なる重みで）重み付けされる。上述されたように、１つのピクチャのスライスは、独立してコーディングされる。いくつかのケースでは、ピクチャは、単に１つのスライスとしてコーディングされることができる。
【００６９】
[0090]ＰＵは、予測プロセスに関連するデータ（例えば、動きパラメータまたは他の適したデータ）を含みうる。例えば、ＰＵがイントラ予測を使用して符号化されるとき、ＰＵは、ＰＵに対するイントラ予測モードを記述するデータを含みうる。別の例として、ＰＵがインター予測を使用して符号化されるとき、ＰＵは、ＰＵについての動きベクトルを定義するデータを含みうる。ＰＵについての動きベクトルを定義するデータは、例えば、動きベクトルの水平成分（Δｘ）、動きベクトルの垂直成分（Δｙ）、動きベクトルについての解像度（例えば、整数精度、４分の１ピクセル精度、または８分の１ピクセル精度）、動きベクトルが指し示す参照ピクチャ、参照インデックス、動きベクトルについての参照ピクチャリスト（例えば、リスト０、リスト１、またはリストＣ）、あるいはそれらの任意の組み合わせを記述しうる。
【００７０】
[0091]符号化デバイス１０４はその後、変換および量子化を実行しうる。例えば、予測に続いて、符号化器エンジン１０６は、ＰＵに対応する残差値を算出しうる。残差値は、コーディングされるピクセルの現在のブロック（ＰＵ）と、現在のブロックを予測するために使用される予測ブロック（例えば、予測されたバージョンの現在ブロック）との間のピクセル差分値を備えうる。例えば、予測ブロックを生成した（例えば、インター予測またはイントラ予測を出した）後に、符号化器エンジン１０６は、現在のブロックから予測ユニットによって作り出される予測ブロックを減算することによって残差ブロックを生成することができる。残差ブロックは、現在のブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、２次元ブロックフォーマット（例えば、ピクセル値の２次元行列または配列）で表されうる。そのような例では、残差ブロックは、ピクセル値の２次元表現である。
【００７１】
[0092]予測が実行された後に残りうる任意の残差データは、ブロック変換を使用して変換され、それは、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の適した変換関数、またはそれらの任意の組み合わせに基づきうる。いくつかのケースでは、１つまたは複数のブロック変換（例えば、サイズ３２×３２、１６×１６、８×８、４×４、または同様のもの）が、各ＣＵ中の残差データに適用されうる。いくつかの例では、ＴＵが、符号化器エンジン１０６によってインプリメントされる変換および量子化プロセスのために使用されうる。１つまたは複数のＰＵを有する所与のＣＵはまた、１つまたは複数のＴＵを含みうる。以下にさらに詳細に説明されるように、残差値は、ブロック変換を使用して変換係数へと変換されえ、およびその後、エントロピーコーディングのための直列化された（serialized）変換係数を作り出すために、ＴＵを使用して量子化および走査されうる。
【００７２】
[0093]いくつかの例では、ＣＵのＰＵを使用するイントラ予測またはインター予測コーディングに続いて、符号化器エンジン１０６は、ＣＵのＴＵについての残差データを算出しうる。ＰＵは、空間的ドメイン（またはピクセルドメイン）中のピクセルデータを備えうる。ＴＵは、ブロック変換の適用後の変換ドメイン中の係数を備えうる。前述されたように、残差データは、ＰＵに対応する予測値および符号化されていないピクチャのピクセル間のピクセル差分値に対応しうる。符号化器エンジン１０６は、ＣＵについての残差データを含むＴＵを形成しえ、およびその後、ＣＵについての変換係数を作り出すためにＴＵを変換しうる。
【００７３】
[0094]符号化器エンジン１０６は、変換係数の量子化を実行しうる。量子化は、係数を表すために使用されるデータの量を低減するために、変換係数を量子化することによって、さらなる圧縮を提供する。例えば、量子化は、係数のうちのいくつかまたは全てに関連付けられたビット深度を低減しうる。一例では、ｎビット値を有する係数は、量子化中にｍビット値に切り捨てられえ、ｎは、ｍよりも大きい。
【００７４】
[0095]量子化が実行されると、コーディングされたビデオビットストリームは、量子化された変換係数、予測情報（例えば、予測モード、動きベクトル、ブロックベクトル、または同様のもの）、区分化情報、および他のシンタックスデータのような任意の他の適したデータを含む。コーディングされたビデオビットストリームの異なる要素はその後、符号化器エンジン１０６によってエントロピー符号化されうる。いくつかの例では、符号化器エンジン１０６は、エントロピー符号化されることができる直列化されたベクトルを作り出すために、量子化された変換係数を走査するための予め定義された走査順序を利用しうる。いくつかの例では、符号化器エンジン１０６は、適応走査を実行しうる。ベクトル（例えば、１次元ベクトル）を形成するために、量子化された変換係数を走査した後に、符号化器エンジン１０６は、ベクトルをエントロピー符号化しうる。例えば、符号化器エンジン１０６は、コンテキスト適応可変長コーディング（context adaptive variable length coding）、コンテキスト適応バイナリ算術コーディング（context adaptive binary arithmetic coding）、シンタックスベースのコンテキスト適応バイナリ算術コーディング（syntax-based context-adaptive binary arithmetic coding）、確率間隔区分化エントロピーコーディング（probability interval partitioning entropy coding）、または別の適したエントロピー符号化技法を使用しうる。
【００７５】
[0096]前述されたように、ＨＥＶＣビットストリームは、ＶＣＬ ＮＡＬユニットおよび非ＶＣＬ ＮＡＬユニットを含む、ＮＡＬユニットのグループを含む。ＶＣＬ ＮＡＬユニットは、コーディングされたビデオビットストリームを形成するコーディングされたピクチャデータを含む。例えば、コーディングされたビデオビットストリームを形成するビットのシーケンスは、ＶＣＬ ＮＡＬユニット中で再び送られる。非ＶＣＬ ＮＡＬユニットは、他の情報に加えて、符号化されたビデオビットストリームに関連する高レベル情報を有するパラメータセットを包含しうる。例えば、パラメータセットは、ビデオパラメータセット（ＶＰＳ）、シーケンスパラメータセット（ＳＰＳ）、およびピクチャパラメータセット（ＰＰＳ）を含みうる。パラメータセットの目的の例は、ビットレート効率、誤り耐性、およびシステムレイヤインターフェースを提供することを含む。各スライスは、スライスを復号するために復号デバイス１１２が使用しうる情報にアクセスすべく、単一のアクティブＰＰＳ、ＳＰＳ、およびＶＰＳを参照する。識別子（ＩＤ）は、ＶＰＳ ＩＤ、ＳＰＳ ＩＤ、およびＰＰＳ ＩＤを含むパラメータセットごとにコーディングされうる。ＳＰＳは、ＳＰＳ ＩＤおよびＶＰＳ ＩＤを含む。ＰＰＳは、ＰＰＳ ＩＤおよびＳＰＳ ＩＤを含む。各スライスヘッダは、ＰＰＳ ＩＤを含む。ＩＤを使用して、アクティブパラメータセットは、所与のスライスについて識別されることができる。
【００７６】
[0097]ＰＰＳは、所与の１ピクチャ中の全てのスライスに適用される情報を含む。このことから、１ピクチャ中の全てのスライスは、同じＰＰＳを参照する。異なるピクチャ中のスライスもまた、同じＰＰＳを参照しうる。ＳＰＳは、同じコーディングされたビデオシーケンス（ＣＶＳ）またはビットストリーム中の全てのピクチャに適用される情報を含む。前述されたように、コーディングされたビデオシーケンスは、（上述された）ある特定のプロパティを有し、ベースレイヤ中のランダムアクセスポイントピクチャ（例えば、瞬時復号参照（ＩＤＲ：instantaneous decode reference）ピクチャまたはブロークンリンクアクセス（ＢＬＡ）ピクチャ、あるいは他の適切なランダムアクセスポイントピクチャ）から開始し、ベースレイヤ中にランダムアクセスポイントピクチャを有し、且つある特定のプロパティを有する次のアクセスユニット（ＡＵ）（またはビットストリームの終了）までの、およびそれを含まない一連のＡＵである。ＳＰＳ中の情報は、コーディングされたビデオシーケンス内のピクチャごとに変化しないことがありうる。コーディングされたビデオシーケンス中のピクチャは、同じＳＰＳを使用しうる。ＶＰＳは、コーディングされたビデオシーケンスまたはビットストリーム内の全てのレイヤに適用される情報を含む。ＶＰＳは、コーディングされたビデオシーケンス全体に適用されるシンタックス要素を有するシンタックス構造を含む。いくつかの例では、ＶＰＳ、ＳＰＳ、またはＰＰＳは、符号化されたビデオビットストリームで帯域内で送信されうる。いくつかの例では、ＶＰＳ、ＳＰＳ、またはＰＰＳは、コーディングされたビデオデータを包含するＮＡＬユニットとは別個の送信中で帯域外で送信されうる。
【００７７】
[0098]ビデオビットストリームはまた、補足エンハンスメント情報（ＳＥＩ：Supplemental Enhancement Information）メッセージを含むことができる。例えば、ＳＥＩ ＮＡＬユニットは、ビデオビットストリームの一部であることができる。いくつかのケースでは、ＳＥＩメッセージは、復号プロセスによって必要とされない情報を包含することができる。例えば、ＳＥＩメッセージ中の情報は、復号器がビットストリームのビデオピクチャを復号するのに不可欠ではないことがありうるが、復号器は、ピクチャの表示または処理を改善するためにその情報を使用することができる（例えば、復号された出力）。ＳＥＩメッセージ中の情報は、埋め込まれたメタデータであることができる。１つの例示的な例では、ＳＥＩメッセージ中の情報は、コンテンツの見易さを改善するために復号器側エンティティによって使用されることができる。いくつかの事例では、ある特定の適用規格は、品質の改善が適用規格に適合する全てのデバイスにもたらされることができるように、ビットストリーム中におけるそのようなＳＥＩメッセージの存在を義務付けうる（例えば、フレーム互換平面立体３ＤＴＶビデオフォーマット（frame-compatible plano-stereoscopic 3DTV video format）のためのフレームパッキングＳＥＩメッセージ（the frame-packing SEI message）の搬送、ここで、ＳＥＩメッセージは、ビデオのフレームごとに搬送され、多くの他の例に加えて、回復ポイントＳＥＩメッセージ（a recovery point SEI message）の処理、ＤＶＢにおけるパンスキャン走査矩形ＳＥＩメッセージ（pan-scan scan rectangle SEI message）の使用のために搬送される）。
【００７８】
[0099]符号化デバイス１０４の出力１１０は、受信デバイスの復号デバイス１１２に通信リンク１２０を通して、符号化されたビデオデータを構成するＮＡＬユニットを送りうる。復号デバイス１１２の入力１１４は、ＮＡＬユニットを受信しうる。通信リンク１２０は、ワイヤレスネットワーク、ワイヤードネットワーク、またはワイヤードネットワークとワイヤレスネットワークとの組み合わせによって提供されるチャネルを含みうる。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組み合わせを含みえ、および任意の適したワイヤレスネットワーク（例えば、インターネットまたは他のワイドエリアネットワーク、パケットベースのネットワーク、ＷｉＦｉ（登録商標）、無線周波数（ＲＦ）、ＵＷＢ、ＷｉＦｉ−Ｄｉｒｅｃｔ、セルラ、ロングタームエボリューション（ＬＴＥ（登録商標））、ＷｉＭａｘ（登録商標）、または同様のもの）を含みうる。ワイヤードネットワークは、任意のワイヤードインターフェース（例えば、ファイバ、イーサネット（登録商標）、電力線イーサネット、同軸ケーブルを通したイーサネット、デジタル信号線（ＤＳＬ）、または同様のもの）を含みうる。ワイヤードおよび／またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチ、または同様のもののような様々な機器を使用してインプリメントされうる。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格にしたがって変調され、および受信デバイスに送信されうる。
【００７９】
[0100]いくつかの例では、符号化デバイス１０４は、記憶装置（storage）１０８中に符号化されたビデオデータを記憶しうる。出力１１０は、符号化器エンジン１０６から、または記憶装置１０８から、符号化されたビデオデータを取り出しうる。記憶装置１０８は、多様な分散されたまたは局所的にアクセスされるデータ記憶媒体のうちの任意のものを含みうる。例えば、記憶装置１０８は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の適したデジタル記憶媒体を含みうる。
【００８０】
[0101]復号デバイス１１２の入力１１４は、符号化されたビデオビットストリームを受信し、および復号器（デコーダ）エンジン１１６に、または復号器エンジン１１６による後の使用のために記憶装置（storage）１１８にビデオビットストリームデータを提供しうる。復号器エンジン１１６は、（例えば、エントロピー復号器を使用した）エントロピー復号、および符号化されたビデオデータを構成する１つまたは複数のコーディングされたビデオシーケンスの要素を抽出することによって、符号化されたビデオビットストリームデータを復号しうる。復号器エンジン１１６はその後、符号化されたビデオビットストリームデータを再スケーリングし、それに対して逆変換を実行しうる。残差データはその後、復号器エンジン１１６の予測段に渡される。復号器エンジン１１６はその後、ピクセルのブロック（例えば、ＰＵ）を予測する。いくつかの例では、予測は、逆変換の出力に追加される（残差データ）。
【００８１】
[0102]復号デバイス１１２は、ビデオ宛先デバイス１１２に復号されたビデオを出力しえ、それは、コンテンツの消費者に復号されたビデオデータを表示するためのディスプレイまたは他の出力デバイスを含みうる。いくつかの態様では、ビデオ宛先デバイス１２２は、復号デバイス１１２を含む受信デバイスの一部でありうる。いくつかの態様では、ビデオ宛先デバイス１２２は、受信デバイス以外の別個のデバイスの一部でありうる。
【００８２】
[0103]いくつかの例では、ビデオ符号化デバイス１０４および／またはビデオ復号デバイス１１２は、それぞれ、オーディオ符号化デバイスおよびオーディオ復号デバイスと一体化されうる。ビデオ符号化デバイス１０４および／またはビデオ復号デバイス１１２はまた、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組み合わせのような、上述されたコーディング技法をインプリメントするのに必要な他のハードウェアまたはソフトウェアを含みうる。ビデオ符号化デバイス１０４およびビデオ復号デバイス１１２は、それぞれのデバイス中で、組み合わされた符号化器／復号器（コーデック）の一部として一体化されうる。符号化デバイス１０４の特定の詳細の例は、図１９を参照して以下に説明される。復号デバイス１１２の特定の詳細の例は、図２０を参照して以下に説明される。
【００８３】
[0104]ＨＥＶＣ規格への拡張は、ＭＶ−ＨＥＶＣと呼ばれるマルチビュービデオコーディング拡張と、ＳＨＶＣと呼ばれるスケーラブルビデオコーディング拡張とを含む。ＭＶ−ＨＥＶＣおよびＳＨＶＣ拡張は、レイヤードコーディングの概念を共有しており、異なるレイヤが、符号化されたビデオビットストリーム中に含まれる。コーディングされたビデオシーケンス中の各レイヤは、一意のレイヤ識別子（ＩＤ）によってアドレスされる。レイヤＩＤは、ＮＡＬユニットが関連付けられるレイヤを識別するために、ＮＡＬユニットのヘッダ中に存在しうる。ＭＶ−ＨＥＶＣでは、異なるレイヤは通常、ビデオビットストリーム中の同じシーンの異なるビューを表す。ＳＨＶＣでは、ビデオビットストリームを、異なる空間的解像度（またはピクチャ解像度）で、あるいは異なる再構築忠実度（reconstruction fidelities）で表す、異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、（レイヤＩＤ＝０の）ベースレイヤと、（レイヤＩＤ＝１、２、．．．ｎの）１つまたは複数のエンハンスメントレイヤとを含みうる。ベースレイヤは、第１のバーションのＨＥＶＣのプロファイルに適合しえ、およびビットストリーム中の最下位の利用可能レイヤを表す。エンハンスメントレイヤは、ベースレイヤと比較して、増大された空間的解像度、時間的解像度またはフレームレート、および／または再構築忠実性（または品質）を有する。エンハンスメントレイヤは、階層的に編成され、およびより下位のレイヤに従属することも（またはしないことも）ありうる。いくつかの例では、異なるレイヤは、単一の標準コーデックを使用してコーディングされうる（例えば、全てのレイヤは、ＨＥＶＣ、ＳＨＶＣ、または他のコーディング規格を使用して符号化される）。いくつかの例では、異なるレイヤは、マルチ標準コーデックを使用してコーディングされうる。例えば、ベースレイヤは、ＡＶＣを使用してコーディングされえ、その一方で、１つまたは複数のエンハンスメントレイヤは、ＨＥＶＣ規格へのＳＨＶＣおよび／またはＭＶ−ＨＥＶＣ拡張を使用してコーディングされうる。
【００８４】
[0105]上述されたように、各ブロックについて、（ここでは動きパラメータとも呼ばれる）動き情報のセットが利用可能であることができる。動き情報のセットは、前方（forward）および後方（backward）予測方向についての動き情報を包含することができる。ここでは、前方および後方予測方向は、双方向予測モードの２つの予測方向であり、「前方」および「後方」という用語は、必ずしも幾何学的意味を有してはいない。代わりに、前方および後方は、現在ピクチャの参照ピクチャリスト０（ＲｅｆＰｉｃＬｉｓｔ０）と参照ピクチャリスト１（ＲｅｆＰｉｃＬｉｓｔ１）とに対応することができる。いくつかの例では、１つの参照ピクチャリストしかピクチャまたはスライスに対して利用可能でないとき、ＲｅｆＰｉｃＬｉｓｔ０のみが利用可能であり、およびスライスの各ブロックの動き情報は、常に前方である。いくつかの例では、ＲｅｆＰｉｃＬｉｓｔ０は、時間的に現在のピクチャに先行する参照ピクチャを含み、およびＲｅｆＰｉｃＬｉｓｔ１は、時間的に現在のピクチャに後続する参照ピクチャを含む。
【００８５】
[0106]いくつかのケースでは、関連する参照インデックスとともに動きベクトルは、復号プロセスにおいて使用されることができる。関連する参照インデックスを有するそのような動きベクトルは、動き情報の単予測セットとして表される。
【００８６】
[0107]各予測方向について、動き情報は、参照インデックスおよび動きベクトルを包含することができる。いくつかのケースでは、簡潔さのために、動きベクトルは、関連する情報を有することができ、それから、動きベクトルが関連する参照インデックスを有する方法が想定されることができる。参照インデックスは、現在の参照ピクチャリスト（ＲｅｆＰｉｃＬｉｓｔ０またはＲｅｆＰｉｃＬｉｓｔ１）中の参照ピクチャを識別するために使用されることができる。動きベクトルは、現在のピクチャ中の座標位置から参照インデックスによって識別される参照ピクチャ中の座標へのオフセットを提供する水平および垂直成分を有することができる。例えば、参照インデックスは、現在のピクチャ中のブロックに対して使用されるべき特定の参照ピクチャを示すことができ、および動きベクトルは、参照ピクチャ中で、最もマッチするブロック（現在のブロックに最もマッチするブロック）が参照ピクチャ中のどこにあるかを示すことができる。
【００８７】
[0108]ピクチャ順序カウント（ＰＯＣ）は、ピクチャの表示順序を識別するためにビデオコーディング規格において使用されることができる。１つのコーディングされたビデオシーケンス内の２つのピクチャが同じＰＯＣ値を有しうるケースが存在するが、１つのコーディングされたビデオシーケンス内において、同じＰＯＣ値を有する２つのピクチャは、頻繁には生じない。複数のコーディングされたビデオシーケンスが１つのビットストリーム中に存在するとき、同じＰＯＣ値を有するピクチャは、復号順序の観点から互いにより近いことがありうる。ピクチャのＰＯＣ値は、とりわけ、ＨＥＶＣにおけるようなピクチャセットの導出、参照ピクチャリスト構築、および／または動きベクトルスケーリングのために使用されることができる。
【００８８】
[0109]Ｈ．２６４／ＡＶＣでは、各インターマクロブロック（ＭＢ）は、中でもとりわけ、１つの１６×１６マクロブロック区分、２つの１６×８マクロブロック区分、２つの８×１６マクロブロック区分、および４つの８×８マクロブロック区分を含む、４つの異なる方法へと区分化されうる。
【００８９】
[0110]１つのマクロブロック中の異なるマクロブロック区分は、予測方向ごとに異なる参照インデックス値を有しうる（例えば、ＲｅｆＰｉｃＬｉｓｔ０およびＲｅｆＰｉｃＬｉｓｔ１についての異なる参照インデックス値）。
【００９０】
[0111]いくつかのケースでは、マクロブロックが４つの８×８マクロブロック区分へと区分化されないとき、マクロブロックは、各予測方向に、各マクロブロック区分について１つの動きベクトルしか有することができない。
【００９１】
[0112]いくつかのケースでは、マクロブロックが４つの８×８マクロブロック区分へと区分化されるとき、各８×８マクロブロック区分は、サブブロックへとさらに区分化されることができ、それらの各々は、各予測方向に異なる動きベクトルを有することができる。８×８マクロブロック区分は、中でもとりわけ、１つの８×８サブブロック、２つの８×４サブブロック、２つの４×８サブブロック、および４つの４×４サブブロックを含む、異なる方法でサブブロックへと分割されることができる。
【００９２】
[0113]各サブブロックは、各予測方向に異なる動きベクトルを有することができる。したがって、動きベクトルは、サブブロックに等しいか、またはそれより高いレベルで存在することができる。
【００９３】
[0114]ＡＶＣでは、時間的直接（temporal dirct）モードが、Ｂスライス中でのスキップまたは直接（direct）モードのためのマクロブロックまたはマクロブロック区分レベルのいずれかでイネーブルにされることができる。各マクロブロック区分について、現在のブロックのＲｅｆＰｉｃＬｉｓｔ１  [０］中の現在のマクロブロック区分とコロケートされるブロックの動きベクトルは、動きベクトルを導出するために使用されることができる。コロケートされたブロック中の各動きベクトルは、ＰＯＣ距離に基づいてスケーリングされることができる。
【００９４】
[0115]空間的直接（spatial direct）モードはまた、ＡＶＣにおいて実行されることができる。例えば、ＡＶＣでは、直接モードはまた、空間的隣接物から動き情報を予測することができる。
【００９５】
[0116]ＨＥＶＣでは、スライス中の最も大きいコーディングユニットは、コーディングツリーブロック（ＣＴＢ）と呼ばれる。ＣＴＢは、四分木を包含し、それのノードは、コーディングユニットである。ＣＴＢのサイズは、ＨＥＶＣメインプロファイルにおいて１６×１６ピクセルから６４×６４ピクセルまでの範囲であることができる。いくつかのケースでは、８×８ピクセルＣＴＢサイズがサポートされることができる。コーディングユニット（ＣＵ）は、ＣＴＢと同じサイズであることができ、且つ８×８ピクセルほどに小さくあることができる。いくつかのケースでは、各コーディングユニットは、１つの予測モードでコーディングされる。ＣＵがインターコーディングされるとき、ＣＵは、２つまたは４つの予測ユニット（ＰＵ）へとさらに区分化されうるか、またはさらなる区分化が適用されないときには１つのＰＵとして扱われうる。２つのＰＵが１つのＣＵ中に存在するとき、２つのＰＵは、半分のサイズの矩形、またはＣＵの１／４または３／４のサイズである２つの矩形であることができる。
【００９６】
[0117]ＣＵがインターコーディングされるとき、動き情報の１つのセットが、各ＰＵについて存在することができる。加えて、各ＰＵは、動き情報のセットを導出するために、一意のインター予測モードでコーディングされることができる。
【００９７】
[0118]ＨＥＶＣにおける動き予測の場合、マージモード（スキップは特殊なケースのマージと見なされることに留意されたい）と高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）とを含む、予測ユニットに対する２つのインター予測モードが存在することができる。
【００９８】
[0119]ＡＭＶＰまたはマージモードのいずれでも、動きベクトル（ＭＶ）候補リストが、複数の動きベクトル予測子（predictors）のために維持されることができる。現在のＰＵの、（１つまたは複数の）動きベクトル、ならびにマージモードにおける参照インデックスは、ＭＶ候補リストから１つの候補を取ることによって生成されることができる。
【００９９】
[0120]いくつかの例では、ＭＶ候補リストは最大で、マージモードについては５つまでの候補を、およびＡＭＶＰモードについては２つまでの候補を包含することができる。他の例では、異なる数の候補が、マージモードまたはＡＭＶＰモードについてのＭＶ候補リスト中に含まれることができる。マージ候補は、動き情報のセット（例えば、両方の参照ピクチャリスト（リスト０およびリスト１）に対応する動きベクトル）と参照インデックスとを包含しうる。マージ候補がマージインデックスによって識別される場合、参照ピクチャは、現在ブロックの予測のために使用されることができる。参照ピクチャはまた、関連する動きベクトルを決定するために使用されることができる。ＡＶＭＰ候補は、動きベクトルしか包含せず、このことから、ＡＶＭＰモードにおいて、参照インデックスは、リスト０またはリスト１のいずれかからの各潜在的な予測方向について、ＭＶ候補リストに対するＭＶＰインデックスとともに、明示的にシグナリングされる必要がありうる。ＡＭＶＰモードでは、予測動きベクトルは、さらに精緻化（リファインrefine）されることができる。
【０１００】
[0121]上記に見られることができるように、マージ候補は、動き情報のフルセットに対応するが、その一方でＡＭＶＰ候補は、特定の予測方向および参照インデックスについての単に１つの動きベクトルを包含する。
【０１０１】
[0122]両方のモードについての候補は、同じ空間的および／または時間的隣接ブロックから同様に導出されることができる。
【０１０２】
[0123]図２Ａおよび図２Ｂは、空間的隣接ＭＶ候補の実例的な導出を例示している。特定のＰＵ（ＰＵ０ ２０２）についての空間的ＭＶ候補は、ＰＵ０ ２０２の右にロケートされた隣接ＰＵ（ＰＵ１ ２０４）に対するものを含め、隣接ブロックから導出されることができる。
【０１０３】
[0124]図２Ａは、マージモードについての空間的ＭＶ候補を導出するための方法の例を例示する。マージモードでは、最大で５つまでの空間的ＭＶ候補が、例えば、次の順番で導出されることができる：左候補２１０（ブロック０）、上候補２１２（ブロック１）、右上候補２１４（ブロック２）、左下候補２１６（ブロック３）、および左上候補２１８（ブロック４）。ＰＵ０ ２０２に対する空間的ＭＶ候補のロケーションが、図２Ａに例示されている。具体的には、左候補２１０が、ＰＵ０ ２０２の左下コーナーに隣接して且つその左にロケートされ、上候補２１２が、ＰＵ０ ２０２の右上コーナーに隣接して且つその上にロケートされ、右上候補２１４が、隣接ＰＵ１ ２０４の左上コーナーに隣接して且つその上にロケートされ、左下候補２１６が、左候補２１０の下にロケートされ、および左上候補２１８が、ＰＵ０ ２０２の左上コーナーの上且つその左にロケートされている。
【０１０４】
[0125]図２Ｂは、ＡＶＭＰモードについての空間的隣接ＭＶ候補を導出するための方法の例を例示している。ＡＶＭＰモードでは、隣接ブロックは、例えば、２つのグループへと分割される。左グループと呼ばれることができる第１のグループは、ＰＵ０ ２０２の下且つその左にロケートされた第１のブロック２２０（ブロック０）と、ＰＵ０ ２０２の左下コーナーの左且つそれに隣接してロケートされた第２のブロック２２２（ブロック１）とを含むことができる。上グループと呼ばれることができる第２のグループは、隣接ＰＵ１ ２０４の左上コーナーの上且つそれに隣接してロケートされた第３のブロック２２４（ブロック２）と、ＰＵ０ ２０２の右上コーナーの上且つそれに隣接してロケートされた第４のブロック２２６（ブロック３）と、ＰＵ０ ２０２の左上コーナーの左且つその上にロケートされた第５のブロック２２８（ブロック４）とを含むことができる。各グループについて、候補隣接ブロックは、当該候補隣接ブロックがシグナリングされた参照インデックスによって示されるのと同じ参照ピクチャを参照するとき、グループの最終候補を形成するために選ばれるべきブロックの中で最も高い優先度を有することができる。いくつかのケースでは、全ての隣接ブロックが同じ参照ピクチャを指し示す動きベクトルを包含するわけではない可能性がある。したがって、そのような候補が見出されることができない場合、第１の利用可能な候補が、最終候補を形成するためにスケーリングされることができるため、時間的距離差は、補償されることができる。
【０１０５】
[0126]時間的動きベクトル予測は、ＨＥＶＣにおいて動きベクトルを決定するための別の方法である。時間的動きベクトル予測子（ＴＭＶＰ）候補は、イネーブルにされ且つ利用可能であるとき、例えば、空間的動きベクトル候補の後にＭＶ候補リストに追加されることができる。ＴＭＶＰ候補に対する動きベクトル導出のプロセスは、マージモードとＡＭＶＰモードとの両方について同じであることができる。いくつかのケースでは、しかしながら、マージモードにおけるＴＭＶＰ候補に対するターゲット参照インデックスは、常に０に設定されることができる。
【０１０６】
[0127]図３Ａは、ＴＭＶＰ候補の実例的な導出を例示している。ＴＭＶＰ候補導出のためのプライマリ（primary）ブロックロケーションは、ブロック３１０として図３Ａに示されているような、コロケートされたＰＵ３０２の外の右下ブロックである。ブロック３１０の右下ロケーションは、空間的隣接候補を生成するために使用されるブロックについて上且つ左方向のバイアスを補償することができる。右下ロケーション中のブロックが（ブロック３１２によって例示されているように）現在のＣＴＢ行３０６の外にロケートされるか、または動き情報が利用可能でないとき、ブロックは、ＰＵ３０２の中心ブロック３１４で代用される（substituted with）。
【０１０７】
[0128]図３Ｂは、動きベクトル（ＭＶ）スケーリングの例を例示している。現在のピクチャ３３０中のブロック３３８に対して、ＴＭＶＰ候補３３６についての動きベクトルは、コロケートされたピクチャ３２０のコロケートされたＰＵ３２８から導出されることができる。コロケートされたピクチャ３２０は、例えば、スライスレベルで示されることができる。具体的には、現在のピクチャ３３０中のブロック３３８に対して、コロケートされたピクチャ３２０中のコロケートされたＰＵ３２８が決定されることができる。コロケートされたＰＵ３２８は、コロケートされた動きベクトル３２６を有することができ、それは、コロケートされた参照ピクチャ３２２を参照する。コロケートされた動きベクトル３２６は、ＴＭＶＰ候補として使用されることができる。
【０１０８】
[0129]ＡＶＣにおける時間的直接モードと同様に、いくつかのケースでは、ＴＭＶＰ候補３３６は、スケーリングされることができる。例えば、現在のピクチャ３３０と現在の参照ピクチャ３３２との間の現在の時間的距離３３４は、コロケートされたピクチャ３２０とコロケートされた参照ピクチャ３２２との間のコロケートされた時間的距離３２４とは異なる可能性がある。この例では、ＴＭＶＰは、時間的距離における差分を正規化する（normalize）ためにスケーリングされることができる。
【０１０９】
[0130]マージおよびＡＭＶＰモードは、動きベクトルスケーリング、人工的動きベクトル候補生成、および候補挿入のための刈り込み（プルーニングpruning）プロセスのような他の態様を含むことができる。
【０１１０】
[0131]動きベクトルスケーリングに関して、動きベクトルの値が、表示時間中のピクチャの距離に比例することが想定されることができる。動きベクトルは２つのピクチャ：参照ピクチャと、動きベクトルを包含するピクチャ（包含ピクチャと呼ばれることができる）と、を関連付ける。動きベクトルが別の動きベクトルを予測するために使用されるとき、包含ピクチャと参照ピクチャとの距離は、ピクチャ順序カウント（ＰＯＣ）値に基づいて算出されることができる。
【０１１１】
[0132]予測される動きベクトルの場合、予測動きベクトルに関連付けられた包含ピクチャおよび参照ピクチャとは、予測動きベクトルがそれから予測される動きベクトルに関連付けられた包含ピクチャおよび参照ピクチャとは異なりうる。このことから、予測動きベクトルの場合、（例えば、ＰＯＣに基づく）新しい距離が決定されることができる。予測動きベクトルはその後、新しい距離と、予測のために使用される動きベクトルに関連付けられた距離とを使用してスケーリングされることができる。空間的隣接候補の場合、２つの動きベクトルについての包含ピクチャは同じであるが、その一方で参照ピクチャは異なりうる。ＨＥＶＣでは、動きベクトルスケーリングは、空間的および時間的隣接候補に対するＴＭＶＰとＡＭＶＰとの両方に適用される。
【０１１２】
[0133]人工的動きベクトル候補生成に関して、動きベクトル候補リストが完全でないとき、リストが候補の完全なセットを有するまで、人工的動きベクトル候補が生成され、且つ、例えば、リストの末尾に挿入されることができる。
【０１１３】
[0134]マージモードでは、２つのタイプの疑似（artificial）ＭＶ候補：Ｂスライスのためにのみ導出される合成（combined）候補と、合成候補タイプが十分な疑似候補を提供しないときにＡＭＶＰのためにのみ使用されるゼロ候補と、が存在することができる。
【０１１４】
[0135]既に候補リスト中にあり、且つ動き情報を有する候補の各ペアについて、双方向の合成動きベクトル候補が導出されることができる。双方向の合成動きベクトル候補は、第１の候補の動きベクトル、ここで、第１の候補はリスト０中のピクチャである、と、第２の候補の動きベクトル、ここで、第２の候補はリスト１中のピクチャである、との組み合わせ（combination）から導出されることができる。
【０１１５】
[0136]候補挿入のためのプルーニングプロセスに関して、異なるブロックからの候補は同じでありえ、それは、マージおよび／またはＡＭＶＰ候補リストの効率を低下させる可能性がある。プルーニングプロセスは、重複候補を取り除くために適用されることができる。プルーニングプロセスは、例えば、少なくともいくつかのケースについて、同一候補を挿入することを避けるために、ある１つの候補を現在の候補リスト中の他の複数の候補と比較することができる。処理の複雑性を低減するために、いくつかのケースでは、限定されたプルーニングプロセスが適用されえ、それにおいて、全ての候補がリスト中の全ての候補と比較されるわけではない。
【０１１６】
[0137]フレームレートアップコンバージョン（ＦＲＵＣ）技法は、低フレームレートビデオから高フレームレートビデオを生成するために使用されることができる。ＦＲＵＣは、ディスプレイ産業において幅広く使用されている。ＦＲＵＣ技法は、２つのタイプに分けられることができる。ある１つの技法は、フレーム反復または平均化によって中間フレームを補間する。この技法は、しかしながら、多くの動きを包含するビデオにおいて貧弱な結果を提供しうる。動き補償ＦＲＵＣ（ＭＣ−ＦＲＵＣ）と呼ばれる第２の技法は、中間フレームを生成しているときにオブジェクトの移動を考慮に入れることができる。ＭＣ−ＦＲＵＣは、２つのステップ、すなわち第１に、動き推定（ＭＥ）、および第２に、動き補償補間（ＭＣＩ：motion-compensated interpolation）、を含むことができる。動き推定は、動きベクトル（ＭＶ）を生成することができ、それは、ベクトルを使用してオブジェクトの動きを表し、および動き補償補間は、動きベクトル生成中間フレーム（motion vectors generate intermediate frames）を使用することができる。
【０１１７】
[0138]ブロックマッチングアルゴリズム（ＢＭＡ;block-matching algorithm）は、それがインプリメントするのに単純であることから、ＭＣ−ＦＲＵＣにおける動き推定のために広く使用されている。ブロックマッチングアルゴリズムは、画像をブロックへと分割し、およびそれらのブロックの移動を検出する。一方向動き推定および両方向動き推定を含む、様々な種類の動き推定が、ブロックマッチングアルゴリズムのために使用されることができる。
【０１１８】
[0139]図４は、フレームレートアップコンバージョンにおける一方向動き推定の例を例示している。図４の例によって例示されているように、一方向動き推定は、現在のフレーム４０２中の所与のブロック４１２に対して、現在のフレーム４０２の参照フレーム４０４中のベストマッチングブロック４１４を探索することによって動きベクトル４１０を取得することができる。現在のフレーム４０２と参照フレーム４０４との間に時間的にロケートされる補間フレーム４０６は、動きベクトル４１０を使用して生成されることができる。具体的には、補間ブロック４１６は、動きベクトル４１０の経路に沿ってロケートされることができるため、一貫した動きが、現在のフレーム４０２と参照フレーム４０４との間で生じることができる。この例では、３つのフレームからの３つのブロックが動き軌道をたどっている。
【０１１９】
[0140]現在のフレーム４０２中のブロック４１２は、コーディングされたブロックに属しうるが、参照フレーム４０４中のベストマッチングブロック４１４は、コーディングされたブロックに完全には属さないことがありうる。いくつかのケースでは、補間フレーム４０６中の補間ブロック４１６も、コーディングされたブロックに属さないことがありうる。その結果として、ブロックの重なり合った領域と、満たされていない（穴）領域とが、補間フレーム４０６中に生じうる。重なり合う領域に対処する単純な方法は、重なり合ったピクセルの平均化および上書きを伴う。穴は、参照フレーム４０４または現在のフレーム４０２からのピクセル値によってカバーされることができる。これらの方法は、しかしながら、ブロッキングアーティファクト（blocking artifacts）および／またはぼやけ（blurring）をもたらす可能性がある。代替として、動きフィールドセグメント化（motion field segmentation）、離散ハートレー変換を使用する連続補外（successive extrapolation）、および画像インペインティング（image in-painting）が、ブロッキングアーティファクトおよびぼやけを増大させることなしに、補間フレーム中の重なり合いおよび穴に対して使用されることができる。
【０１２０】
[0141]図５は、フレームレートアップコンバージョンのための両方向動き推定の例を例示している。両方向動き推定は、補間フレーム５０６中の重なり合いおよび穴を避けるために、動き補償ＦＲＵＣとともに使用されることができる別の技法である。一方向動き推定と同様に、現在のフレーム５０２中の所与のブロック５１２に対して、両方向動き推定は、現在のフレーム５０２の参照フレーム５０４中のベストマッチングブロック５１４を使用して動きベクトル５１０を取得する。両方向動き推定はその後、補間フレーム５０６と現在のフレーム５０２および参照フレーム５０４の両方との間の時間的対称性を想定し、それにより、動きベクトル５１０は、補間ブロック５１６と現在のフレーム５０２との間の第１の動きベクトル５２０と、補間ブロックと参照フレーム５０４との間の第２の動きベクトル５２２とへと分割されることができる。
【０１２１】
[0142]両方向動き推定が補間フレーム５０６中の各ブロックに対して使用されるとき、重なり合いおよび穴は、補間フレーム５０６をもたらすべきではない。ビデオコーディングでは、現在のブロック５１２は、ほとんどのケースでは、現在のフレーム５０２中の他のブロックに対してある特定の順序で（例えば、復号順序で）コーディングされる。現在のフレーム５０２中のブロックがシーケンスで処理されることから、そのシーケンスは、重なり合いまたは穴のいかなる発生もなしに生成される補間フレーム５０６をもたらすべきである。
【０１２２】
[0143]動き情報をシグナリングすること（例えば、動き情報を記述することができるデータをビデオビットストリーム中へと挿入すること）は、ビットストリーム中に含まれる必要がありうるビットの量を増大させるという観点からするとコストが掛かる可能性がある。動き情報のビットコストを低減するために、復号器側動きベクトル導出（ＤＭＶＤ）が、復号デバイスによって使用されることができる。
【０１２３】
[0144]テンプレートマッチングベースの復号器側動きベクトル導出は、動き情報のビットコストを低減することと、コーディング効率を増大させるための１つの方法である。図６は、テンプレートマッチングベースの復号器側動きベクトル導出の例を例示している。現在のフレーム６０２中の現在のブロック（例えば、予測ターゲット６１８）に対して、現在のブロックに対するベストマッチを探索する代わりに、テンプレート６１６のベストマッチ６１４が参照フレーム６０４中で探索される。テンプレート６１６と予測ターゲット６１８とが同じオブジェクトからのものであると想定すると、テンプレート６１６の変位６１２（参照フレーム６０４中のコロケートされたテンプレート６１０から導出され、ここで、コロケートされたテンプレート６１０は、参照フレーム６０４中のテンプレート６１６のロケーションに対応する）は、予測ターゲット６１８の動きベクトルとして使用されることができる。テンプレートマッチングは、符号化器と復号器との両方において行われることから、動きベクトルは、シグナリングコストを避けるために復号器側において導出されることができる。
【０１２４】
[0145]復号器側動きベクトル導出のための別の方法は、ミラーベースの双方向動きベクトル導出である。図７は、ミラーベースの双方向動きベクトル導出の例を例示している。ミラーベースの双方向動きベクトル導出は、分数サンプル正確度で、探索中心（search centers）の周囲の中心対称（centro-symmetric）動き推定を使用することを含む。探索ウィンドウのサイズおよび／またはロケーションは、復号器に対して予め定義されることができる、および／または、ビットストリーム中でシグナリングされることができる。
【０１２５】
[0146]図７の例に例示されているように、中心対称動き推定は、逆方向（reverse）ベストマッチングブロック７１４と前方ベストマッチングブロック７１６について、Ｌ０参照ピクチャ７０４（例えば、ＲｅｆＰｉｃＬｉｓｔ０から選択された参照フレーム）とＬ１参照ピクチャ７０６（例えば、ＲｅｆＰｉｃＬｉｓｔ１から選択された参照フレーム）との両方を探索することを含む。逆方向ベストマッチングブロック７１４と前方ベストマッチングブロックとはその後、逆方向動きベクトル、ＭＶ０ ７２０と、前方動きベクトル、ＭＶ１ ７２２とをそれぞれ決定するために使用されることができる。ＭＶ０ ７２０とＭＶ１ ７２２とはその後、現在のピクチャ７０２中の現在のブロック７１２についてのロケーションを予測するために使用されることができる。いくつかのケースでは、現在のピクチャ７０２は、フレームレートアップコンバージョンコーディングモードを適用するプロセスにおいて生成される。
【０１２６】
[0147]逆方向ベストマッチングブロック７１４と前方ベストマッチングブロック７１６とを決定するために、プロセスは、開始点として、逆方向予測動きベクトル、ＰＭＶ０ ７３０と、前方予測動きベクトル、ＰＭＶ１ ７３２とを使用することができる。ＰＭＶ０ ７３０とＰＭＶ１とは、Ｌ０参照ピクチャ７０４とＬ１参照ピクチャ７０６とをそれぞれ提供されることができるか、または、Ｌ０参照ピクチャ７０４とＬ１参照ピクチャ７０６とを使用して導出されることができる。Ｌ０参照ピクチャ７０４では、探索ウィンドウ７４０は、ＰＭＶ０ ７３０によって示される予測ブロック７４４からのオフセット、＋ｄＭＶ７５０、の様々な値をテストすることによって、ベストマッチング逆方向ブロック７１４を探索されることができる。同時に、Ｌ１参照ピクチャ７０６中の探索ウィンドウ７４２は、ＰＭＶ１ ７３２によって示される予測ブロック７４６からのオフセット、−ｄＭＶ７５２、を使用して探索されることができる。いくつかの例では、＋ｄＭＶ７５０と−ｄＭＶ７５２との全ての値がチェックされることができる。オフセット値はその後、ＭＶ０ ７２０とＭＶ１ ７２２とを決定するために、ＰＭＶ０ ７３０とＰＭＶ１ ７３２とに追加されることができる。いくつかのケースでは、＋ｄＭＶ７５０および／または−ｄＭＶ７５２は、１つまたは複数の負の成分を含むことができる。
【０１２７】
[0148]いくつかの例では、Ｌ０参照ピクチャ７０４およびＬ１参照ピクチャ７０６中のベストマッチングブロック間の絶対差分の和（ＳＡＤ）は、中心対称動き推定（centro-symmetric motion estmatation）を決定するために使用されることができる。最小ＳＡＤ値を有する動きベクトルペア（例えば、ＭＶ０ ７２０およびＭＶ１ ７２２）は、中心対称動き推定の出力として選択されることができる。
【０１２８】
[0149]図７に例示されている例は、ＳＡＤマッチングのために将来の参照（例えば、現在のフレームより後の時間的位置における参照）とより前の参照（例えば、現在のフレームより前の時間的位置における参照）とを使用している。この方法はこのことから、将来の参照のみが利用可能である、Ｐフレームおよび低遅延Ｂフレームのようなフレームに対して適用可能でないことがありえる。
【０１２９】
[0150]いくつかのケースでは、ミラーベースの双方向動きベクトル導出は、ＨＥＶＣにおけるマージモードと組み合わされることができる。例えば、ｐｕ＿ｄｍｖｄ＿ｆｌａｇと呼ばれるフラグは、復号器側動きベクトル導出モードが現在のＰＵに適用されることができるかどうかを示すために、ＢスライスのＰＵに対して追加されることができる。図８は、ｐｕ＿ｄｍｖｄ＿ｆｌａｇを含むＰＵを復号するためのプロセス８００の例を例示している。復号器側動きベクトル導出モードでは、復号されるビットストリームは、明示的な動きベクトル情報を含まない。ｐｕ＿ｄｍｖ＿ｆｌａｇを含むことは、復号器が復号器側動きベクトル導出プロセスに従事すべきであると復号器にシグナリングすることができる。
【０１３０】
[0151]ステップ８０２において、プロセス８００は、ＰＵを復号することを開始する。ステップ８０４において、プロセス８００は、ＰＵがマージＰＵであるかどうかを決定する。ＰＵがマージＰＵでないとき、プロセス８００は、ステップ８０６に進み、および非マージＰＵに対する標準的プロセスを使用してＰＵを復号する。
【０１３１】
[0152]ステップ８０４において、プロセス８００が、ＰＵはマージＰＵであると決定すると、プロセスは、ステップ８０８に進む。ステップ８０８において、プロセス８００は、ｐｕ＿ｄｍｖｄ＿ｆｌａｇの値を決定する。ｐｕ＿ｄｍｖｄ＿ｆｌａｇは、復号器が復号器側動き導出プロセスを使用すべきかどうかを示すことができる。ｐｕ＿ｄｍｖｄ＿ｆｌａｇが、復号器は復号器側動き導出プロセスを使用すべきでないと示すと、プロセス８００は、ステップ８１０に進み、およびマージＰＵを復号するための標準的プロセスに従事する。
【０１３２】
[0153]ステップ８０８において、ｐｕ＿ｄｍｖｄ＿ｆｌａｇが、復号器は復号器側動き導出プロセスを使用すべきであると示すと、プロセスは、ステップ８１２に進む。ステップ８１２において、プロセス８００は、ＰＵを復号するために復号器側動きベクトル導出プロセスを使用する。
【０１３３】
[0154]ステップ８０６、８１０、および８１２の各々は、ステップ８１４に進み、ここで、ＰＵの復号は終了される。
【０１３４】
[0155]ブロックの動きベクトルを見出すために、高速動き探索方法（fast motion search methods）が、動きベクトル導出の計算コストを最小化するために使用されることができる。高速動き探索方法の例は、ブロックベースの勾配降下探索（ＢＢＧＤＳ：Block-Based Gradient Descent Search）、無制限中心バイアスダイアモンド探索（ＵＣＢＤＳ：Unrestricted Center-Biased Diamond Search）、六角形ベースの探索（ＨＥＢＳ：HEXagon-Based Search）、および他のものを含む。これらおよび他の方法は、予め定義された探索パターンを使用して、探索ウィンドウ内部のある特定の数の位置を探索する。ビデオにおける動きが小さく穏やかであるとき、これらの方法は、うまく機能することができる。
【０１３５】
[0156]全ての目的のためにその全体が参照によってここに組み込まれる米国特許出願公開第２０１６／０２８６２３０号では、ここではＦＲＵＣモッド（mod）と呼ばれるフレームレートアップコンバージョンに基づくコーディングモードが説明された。参照中で論述されているように、ＦＲＵＣモードは、特殊マージモードであり、それにおいて、ブロックの動き情報はシグナリングされない（例えば、ビットストリーム中に含まれない）が、代わりに復号器によっておいて（at by）導出される。
【０１３６】
[0157]いくつかの例では、ＦＲＵＣフラグは、マージフラグがＣＵについて真であるときに、ＣＵに対してシグナリングされる（例えば、フラグは、ビットストリーム中に含まれる）。ＦＲＵＣフラグが偽であるとき、マージインデックスがシグナリングされ得、および標準的マージモードが使用されることができる。ＦＲＵＣフラグが真であるとき、追加のＦＲＵＣモードフラグが、ＣＵ中のブロックについての動き情報を導出するためにどの方法（例えば、両方向マッチングまたはテンプレートマッチング）が使用されるべきかを示すためにシグナリングされる。
【０１３７】
[0158]動き導出プロセス中に、初期動きベクトルがまず、両方向マッチングまたはテンプレートマッチングを使用してＣＵ全体について導出されることができる。まず、ＣＵのマージリストがチェックされ、および最小マッチングコストをもたらす候補が、開始点として選択されることができる。その後、開始点の周囲での両方向マッチングまたはテンプレートマッチングに基づく局所探索が実行されることができ、および最小マッチングコストをもたらす動きベクトルが、ＣＵ全体についての動きベクトルとして見なされる（taken）ことができる。その結果として、動き情報は、開始点として導出されたＣＵ動きベクトルを用いてサブブロックレベルでさらにリファイン（精緻化）される（refined）ことができる。
【０１３８】
[0159]図９は、両方向マッチングの例を例示している。両方向マッチングでは、現在のフレーム９０２中の現在のブロック９１２についての動き情報が導出されることができ、ここで、現在のフレーム９０２は、フレームレートアップコンバージョンコーディングモードの使用を通じて生成される。具体的には、連続的動き軌道９１０が、第１の参照フレーム（参照フレーム０ ９０４）中の第１のブロック９１４と、第２の参照フレーム（参照フレーム１ ９０６）中の第２のブロック９１６との間で想定されることができる。参照フレーム０ ９０４に対する動きベクトル（ＭＶ０ ９２０）は、現在のブロック９１２について決定されることができる。例えば、現在のブロック９１２の中心に据えられた直交軸９３０によって決定されるような参照フレーム０ ９０４中の現在のブロックの位置は、ＭＶ０ ９２０を決定するために使用されることができる。同様に、参照フレーム１ ９０６に対する動きベクトル（ＭＶ１ ９２２）は、直交軸９３０によって与えられるような参照フレーム１ ９０６中の現在のブロックの位置を使用して決定されることができる。動き軌道９１０が連続的であると想定されることから、ＭＶ０ ９２０とＭＶ１ ９２２とは、現在のフレーム９０２と２つの参照フレームとの間の時間的距離（それぞれ、ＴＤ０ ９３２とＴＤ１ ９３４と）に比例することができる。すなわち、ＭＶ０ ９２０は、ＴＤ０ ９３２に基づいてスケーリングされることができ、ＭＶ１は、ＴＤ１ ９３４に基づいてスケーリングされることができる。
【０１３９】
[0160]いくつかのケースでは、ＴＤ０ ９３２とＴＤ１とは同じであることができる。これらのケースでは、両方向マッチングからの結果が、ミラーベースの双方向動きベクトル導出からの結果と同じであることができる。
【０１４０】
[0161]図９の例では、連続的動き軌道９１０は、非線形であると想定されることができ、そのケースにおいては、アフィン動きモデルが適用されることができる。アフィン動きモデルを使用すると、アフィン動き情報が、参照フレーム０ ９０４と参照フレーム１ ９０６とについて導出されることができる。
【０１４１】
[0162]現在のブロック９１２を決定するためのアフィン動きの実例的な適用が続く。現在のブロック９１２についての予測がＰであると想定すると、Ｐは、参照フレーム０ ９０４と参照フレーム１ ９０６とから予測されることができる。現在のブロック９１２は、ＭＶ０ ９２０とＭＶ１とによってそれぞれ記述されている、参照フレーム０ ９０４と参照フレーム１ ９０６とに対するアフィン動きを有する。次の式は、Ｐが参照フレーム０ ９０４と参照フレーム１ ９０６とから予測されることができる方法を記述している。
【０１４２】
【数１】
2019534622.tif 000003
【０１４３】
[0163]上記の式では、Ｐ0は、参照フレーム０ ９０４中の第１のブロック９１４を表し、Ｐ1は、参照フレーム１ ９０６中の第２のブロック９１６を表している。
【０１４４】
[0164]参照フレーム０ ９０４中のＰの時間的位置は、Ｔ０と指定されることができる。Ｔ０におけるＰの１次テイラー展開は、次の式を使用して決定されることができる。
【０１４５】
【数２】
2019534622.tif 000004
【０１４６】
[0165]式（２）を解くために、
【０１４７】
【数３】
2019534622.tif 000005
【０１４８】
は、それぞれ、Ｐ0におけるｘ方向およびｙ方向の勾配を表すことができる。加えて、
【０１４９】
【数４】
2019534622.tif 000006
【０１５０】
は、アフィン動きモデルによって定義されるような、Ｔ０における動きを表すことができる。これらの表現を使用すると、式（２）は、次のようになることができる。
【０１５１】
【数５】
2019534622.tif 000007
【０１５２】
[0166]いくつかの例では、アフィン動き（Ｖx0，Ｖy0）は、次のように、４パラメータアフィンモデルによって表されることができる。
【０１５３】
【数６】
2019534622.tif 000008
【０１５４】
[0167]上記の式では、Ｓは、同次（homogenous）スケーリングファクタを表し、Φは、回転を表し、およびｃとｄとは、平行移動動きベクトルである。他の例では、６パラメータまたは８パラメータアフィンモデルが使用されることができる。
【０１５５】
[0168]便宜上、ａ＝ｃｏｓΦおよびｂ＝ｓｉｎΦとし、そのケースでは、上記の式は、次のようになる。
【０１５６】
【数７】
2019534622.tif 000009
【０１５７】
[0169]現在のブロック９１２が参照フレーム０ ９０４と参照フレーム１ ９０６とから時間的に等距離であるとき、動き（Ｖx0，Ｖy0）は、次の式を使用して決定されることができる。
【０１５８】
【数８】
2019534622.tif 000010
【０１５９】
[0170]上記では、回転角度および平行移動動きは、参照フレーム０ ９０４と参照フレーム１ ９０６との間でミラーされる（mirrored）と想定され、その一方でスケーリングファクタは、相反的である（reciprocal）と想定される。
【０１６０】
[0171]同様に、参照フレーム１ ９０６中のＰの時間的位置は、Ｔ１と指定されることができる。Ｔ１におけるＰの１次テイラー展開は、次の式を使用して決定されることができる。
【０１６１】
【数９】
2019534622.tif 000011
【０１６２】
[0172]上記の式が両方向マッチングにおいて適用されることから、アフィンパラメータＳ、ａ、ｂ、ｃおよびｄは、式（３）と式（５）との間の２乗誤差の和を最小化することによって導出されることができ、それは、次のように数学的に表されることができる。
【０１６３】
【数１０】
2019534622.tif 000012
【０１６４】
[0173]数学的に、Ｓは、解くのが難しい可能性がある。実際には、Ｓの値は、ある特定の範囲に制限されることができ、Ｓの所与の値におけるａ、ｂ、ｃ、およびｄは、解かれることかできる。最小の２乗誤差の和をもたらす｛Ｓ，ａ，ｂ，ｃ，ｄ｝の組み合わせは、ブロックについてのアフィン動きを記述するために使用されることができる。代替として、（スケーリングファクタの初期推定値を提供するための特徴点ベースの方法に関して）以下に説明される方法は、Ｓについての近似値を見出すために使用されることができる。
【０１６５】
[0174]図１０は、テンプレートマッチングの例を例示している。テンプレートマッチングでは、テンプレート１０１６は、参照フレーム（参照フレーム０ １００４）から動き情報を導出するために使用されることができる。例えば、テンプレート１０１６は、現在のフレーム１００２中に現在のブロック１０１２の上部および／または左隣接ブロックを含むことができる。この例では、ブロックのセットは、テンプレート１０１６と最もマッチする参照フレーム０ １００４中に見出されることができ、ここで、ブロックのセットは、テンプレート１０１６０と同じサイズおよび／または構成である。動きベクトル１０２０はその後、ブロックのセットのロケーションと、参照フレーム０ １００４中の現在のブロック１０１２の相対的ロケーションとを使用して決定されることができる。現在のブロック１０１２の相対的ロケーションは、例えば、現在のブロック１０１２の中心を通る直交軸１０３０から決定されることができる。
【０１６６】
[0175]符号化器において、ＣＵに対してＦＲＵＣマージモードを使用するかどうかは、例えば、通常のマージ候補に対してなされるようなレート歪みコスト選択（a rate distortion cost selection）に基づくことができる。すなわち、レート歪みコストは、所与のＣＵに対する２つのマッチングモード（例えば、両方向マッチングおよびテンプレートマッチング）の各々について決定されることができる。最も低いコストを有するマッチングモードはさらに、他のＣＵモードと比較されることができる。ＦＲＵＣマッチングモードが最も低いコストを有するとき、ＦＲＵＣフラグは、ＦＲＵＣマージモードがＣＵに対して使用されるべきであると示すように設定されることができる。加えて、使用されるべきマッチングモードもまた示されることができる。
【０１６７】
[0176]局所照明補償（ＬＩＣ：Local Illumination Compensation）は、１つのフレームと後続のフレームとの間の照明における変化（change in illumination）が、参照ブロックを決定するときに調整される（accommodated）ことができるプロセスである。例えば、ビデオでは、カメラフラッシュが生じていることがありえ、それにより、第１のフレーム中のオブジェクトは、第２のフレーム中でより明るく照らされる。この例では、照明変化（例えば、カメラフラッシュ）は、同じオブジェクトについてのピクセル値差分を引き起こす可能性がある。照明変化が調整されないとき、第２のフレーム中に参照ブロックをロケートすることは、難しいことがありうる。ＬＩＣは、例えば、一定のピクセル値が第２のフレームに追加されたと想定する。この想定下では、参照ブロックは、より容易に見出されることができる。
【０１６８】
[0177]ＬＩＣは、照明変化についての線形モデルに基づくことができ、スケーリングファクタａとオフセットｂとを使用することができる。例えば、スケーリングファクタとオフセットとは、ピクチャ中の照明変化によって誘発される不一致を補償するために使用されることができる。スケーリングファクタは、例えば、参照ブロックについてのピクセル値をスケーリングするために使用されることができる。例えば、スケーリングファクタは、参照ブロックから生成される予測サンプルによって乗算されることができる。オフセットは、例えば、スケーリングファクタを決定するために使用されたピクセルのセットを示すために使用されることができる。いくつかのケースでは、オフセットは、照らされていないバージョンのピクチャからの平均輝度変化を示すことができる。ＬＩＣは、インターコーディングされたＣＵごとに適応的にイネーブルまたはディセーブルにされることができる。
【０１６９】
[0178]次の式は、インタービュー予測において使用されることができる線形照明補償モデルの例を提供する。
【０１７０】
【数１１】
2019534622.tif 000013
【０１７１】
[0179]上記の式では、ＰＵcは、現在の予測ユニットであり、（ｉ，ｊ）は、ＰＵc中のピクセルの座標であり、（ｄｖｘ，ｄｖｙ）は、ＰＵcの視差ベクトル（the disparity vector）である。ｐ（ｉ，ｊ）の結果は、ＰＵcの予測であり、ここで、ｒは、隣接ビューからの予測ユニットの参照ピクチャである。ａおよびｂは、線形ＩＣモデルのパラメータである。
【０１７２】
[0180]ＬＩＣがＣＵに適用されるとき、最小２乗誤差法（a least square error method）が、ａおよびｂを導出するために使用されることができる。例えば、最小２乗法は、現在のＣＵの隣接サンプルと、当該隣接サンプルに対応する参照サンプルとを使用することができる。
【０１７３】
[0181]図１１は、照明補償パラメータを導出するために近隣サンプルを使用する例を例示している。例示されている例では、現在のＣＵ１１０６の隣接サンプル１１１０が決定されることができる。いくつかの例では、隣接サンプル１１１０は、例えば、２：１のサブサンプリングを使用してサブサンプリングされる。対応するサンプル１１１２（例えば、参照ブロック１１０８の隣接サンプル）は、照明補償パラメータを決定するために使用されることができる。照明補償パラメータは、予測方向ごとに別個に導出および適用されることができる。
【０１７４】
[0182]例示されている例では、現在のＣＵ１１０６は、２つのＰＵ、ＰＵ１ １１０２とＰＵ２ １１０４とに再分割されている。またこの例では、参照ブロック１１０８は、ＰＵ１ １１０２についての参照ブロックであり、現在のＣＵ１１０６についての、またはサブＣＵについての動き情報を使用してリスト０について決定される。
【０１７５】
[0183]ＰＵについてのパラメータａおよびｂを推定するために、ピクセルの２つのセット：現在のＣＵ（現在のＰＵを包含するＣＵ）の左列および上行中の第１の利用可能な再構築された隣接ピクセルと、現在のＣＵの参照ブロックの第２の対応する隣接ピクセルと、が使用されることができる。現在のＣＵの参照ブロックは、現在のＰＵの視差ベクトルを使用することによって見出されることができる。例として図１１を使用すると、現在のＣＵ１１０６の隣接サンプル１１１０は、Ｒｅｃneighと指定されることができ、および参照ブロック１１０８の隣接サンプル１１１２は、Ｒｅｃrefneighと指定されることができ、加えて、２Ｎは、ＲｅｃneighとＲｅｃreneighにおけるピクセル数を表すことができる。パラメータａおよびｂはその後、次の式を使用して算出されることができる。
【０１７６】
【数１２】
2019534622.tif 000014
【０１７７】
[0184]ＣＵがマージモードでコーディングされるとき、ＬＩＣフラグは、隣接ブロックからコピーされることができる。例えば、動き情報がマージモードでコピーされる方法が使用されることができる。ＣＵがマージモードでコーディングされないとき、ＬＩＣフラグは、ＬＩＣがＣＵに適用されるかどうかを示すために、ＣＵに対してシグナリングされることができる。
【０１７８】
[0185]いくつかのケースでは、ＬＩＣおよびＦＲＵＣプロセスは、両方がイネーブルにされると、コンフリクトしうるか、または不必要な計算的な複雑性を引き起こしうる。例えば、（例えば、図９に例示されている）両方向マッチングコーディングモードがフレームレートアップコンバージョンコーディングモードについての動きベクトル導出のために使用されるとき、照明変化が、そのより後の参照フレーム中で生じていることがありうる。この例では、照明変化は、フレームレートアップコンバージョンコーディングモードの結果として生成されるフレーム中で正確には補償されないことがありうる。例えば、生成されるフレームには、照明変化前からのピクセル値がより適しているか、または照明変化後からのピクセル値がより適しているかは、明白でないことがありうる。
【０１７９】
[0186]様々なインプリメンテーションでは、ＬＩＣおよびＦＲＵＣ両方向マッチングの両方をイネーブルにすることによって引き起こされるコンフリクトおよび／または複雑性は、一方または他方のプロセスのみをブロックまたはＣＵに対して使用されることを可能にすることによって解消されることができる。ＦＲＵＣ両方向マッチングコーディングモードがイネーブルにされるか、またはＬＩＣがイネーブルにされるかは、ビットストリーム中に含まれる関連するフラグの順序に依存する可能性がある。例えば、いくつかのインプリメンテーションでは、ＦＲＵＣがイネーブルにされたことを示すフラグが、ＬＩＣがイネーブルにされるかどうかを示すフラグより前に現れ、およびＦＲＵＣ両方向マッチングコーディングモードもまたイネーブルにされるとき、ＬＩＣフラグは、符号化器によって「ディセーブルにされる」ように設定される、および／または復号器によって無視される、のいずれかである。代替としてまたは加えて、ＬＩＣフラグは、シグナリングされない可能性があり、それは、ビットストリームから完全に除外されることを意味する。別の例として、いくつかのインプリメンテーションでは、ＬＩＣがイネーブルにされることを示すフラグが、ＦＲＵＣがイネーブルにされることを示すフラグより前に現れるとき、ＦＲＵＣ両方向マッチングコーディングモードをイネーブルにされるフラグは、符号化器によって「無効にされる」ように設定されうる、および／または、復号器は、ＦＲＵＣ両方向マッチングコーディングモードは使用されることができないと想定する可能性がある。代替としてまたは加えて、ＦＲＵＣ両方向マッチングコーディングモードフラグは、ビットストリーム中でシグナリングされない可能性がある。
【０１８０】
[0187]ＨＥＶＣでは、いくつかのケースでは、平行移動（translational）モデルのみが、動き補償予測のために適用されうる。平行移動モデルは、線形動きを想定する。多くのケースでは、しかしながら、ビデオは、ズームイン、ズームアウト、回転、遠近（perspective）動きのような多くの非線形動き、および／または他の不規則な非線形動きを含むことができる。共同調査モデル（ＪＥＭ：Joint Exploration Model）では、簡略化されたアフィン変換動き補償予測が、非線形動きを調整し、およびコーディング効率を改善するために適用されることができる。ＪＥＭは、国際電気通信連合ビデオコーディングエキスパートグループ（ＩＴＵ−ＶＣＥＧ：the International Telecommunications Union Video Coding Experts Group）と、国際標準化機構／国際電気標準会議モーションピクチャエキスパートグループ（ＩＳＯ／ＩＥＣ ＭＰＥＧ：the International Standards Organization/International Electrotechnical Commission Motion Picture Experts Group）とのプロジェクトである。ＪＥＭは、ＨＥＶＣより良い圧縮能力を有するビデオコーディング技術を研究および潜在的に標準化するためのプラットフォームを提供する。
【０１８１】
[0188]図１２は、現在のブロック１２０２についての簡略化されたアフィン動きモデルの例を例示している。現在のブロック１２０２は、例えば、フレームレートアップコンバージョンコーディングモードの使用を通じて生成されるフレーム中にあることができる。
【０１８２】
[0189]図１２に例示されている例では、現在のブロック１２０２のアフィン動きは、２つの制御点ベクトル、ｖ0 １２１０とｖ1 １２１２とによって記述されることができる。例示されている例では、ｖ0 １２１０は、現在のブロック１２０２の左上コーナーから決定され、およびｖ1 １２１２は、現在のブロック１２０２の右上コーナーから決定される。各制御点ベクトルは、２つの値、水平値と垂直値とを含むことができ、このことから、各制御点ベクトルは、２つの制御点を提供することができる。追加の制御点（例えば、６つの制御点または８つの制御点あるいは何らかの他の数の制御点）は、例えば、現在のブロック１２０２のより下部のコーナーおよび／または現在のブロック１２０２の中心に追加の制御点ベクトルを追加することによって定義されることができる。
【０１８３】
[0190]制御点ベクトルは、例えば、両方向マッチングを使用して決定されることができ、非線形動きの可能性を想定する。例えば、第１の参照フレームと第２の参照フレームとの間で、オブジェクトが、１０度回転していることがありうる。この例では、連続的動きを想定して、現在のブロック１２０２についての回転の度合いは、５度であると想定することができる。この例では、制御点ベクトルは、それに応じて生成されることができる。
【０１８４】
[0191]様々な例では、２つの制御点ベクトルは、現在のブロック１２０２についての動きベクトルフィールド（ＭＶＦ）を決定するために使用されることができる。式（１）は、動きベクトルフィールドが決定されることができる方法を例示している。
【０１８５】
【数１３】
2019534622.tif 000015
【０１８６】
[0192]式（１）では、（ｖ0x，ｖ0y）は、左上部コーナー制御点についての動きベクトル（例えば、ベクトルｖ0 １２１０を記述している動きベクトル）であり、および（ｖ1x，ｖ1y）は、右上部制御点についての動きベクトル（例えば、ベクトルｖ1 １２１２を記述している動きベクトル）である。式（１）は、位置（ｘ，ｙ）におけるピクセルについての動きベクトル（ｖx，ｖy）を計算するために使用されることができる。２つよりも多くの制御点ベクトルが使用される例では、式（１）は、それに応じて展開されることができる。
【０１８７】
[0193]現在のブロック１２０２中の各ピクセルについての動きベクトルを計算することは、より詳細な動き情報をキャプチャすることができ、およびこのことから、より良いフレームレートアップコンバージョン結果を生むことができる。例えば、ビデオは、徒競走（foot race）をキャプチャしえ、それにおいて、数多くの人々が、同じ全体的な（the same general）方向に移動している。この例では、グループの全体的な動きは、制御点ベクトルによって、および／またはボック（bock）全体についての平行移動動きベクトルによって、キャプチャされることができる。グループ内では、しかしながら、個々の人々は、グループの全体的な方向に対してやや異なる方向に移動していることがありうる。動きベクトルがブロックの各ピクセルについて計算される動きベクトルフィールドは、動きにおけるこれらのバリエーションをキャプチャすることができる。
【０１８８】
[0194]ブロック中の各ピクセルについての動きベクトルを計算することは、しかしながら、計算的に労力を要する可能性がある。計算を簡略化するために、ブロックベースのアフィン変換予測が適用されることができる。図１３は、ブロック１３０２のサブブロックを使用して決定される動きベクトルフィールドの例を例示している。ブロック１３０２は、例えば、フレームレートアップコンバージョンコーディングモードの使用を通じて生成されるフレーム中にあることができる。
【０１８９】
[0195]図１３の例では、ブロック１３０２は、４×４サブブロックへと分割されている。各サブブロックの動きベクトルは、第１の制御点ベクトル、ｖ0 １３１０と、第２の制御点ベクトル、ｖ1 １３１２とを使用して決定されている。この例では、ｖ0 １３１０は、ブロック１３０２の左上コーナーに基づき、およびｖ1 １３１２は、ブロック１３０２の右上コーナーに基づく。例示されている例では、各サブブロックについての動きベクトルは、式（１）を使用して、各サブブロックの中心サンプルについて計算されている。いくつかの例では、結果として生じる（ｖx，ｖy）値は、１／１６の分数正確度に丸められることができる。各サブブロックの動きベクトルは、各サブブロックについての予測を生成するために使用されることができる。
【０１９０】
[0196]いくつかの例では、動き補償予測の後に、各サブブロックの高正確度の動きベクトルは、通常の動きベクトルと同じ正確度で丸められ、および保存されることができる。
【０１９１】
[0197]ＪＥＭを含むいくつかの例では、アフィン動きモデルは、２つのモード：（ここではＡＦ＿ＩＮＴＥＲモードと呼ばれる）アフィンインターモードと、（ここではＡＦ＿ＭＥＲＧＥモードと呼ばれる）アフィンマージモードと、を含むことができる。
【０１９２】
[0198]図１４は、ＡＦ＿ＩＮＴＥＲモードでの動きベクトル予測の例を例示している。いくつかの例では、ＣＵが８ピクセルより大きい幅および高さを有するとき、ＡＦ＿ＩＮＴＥＲモードが適用されることができる。アフィンフラグは、ＡＦ＿ＩＮＴＥＲモードがＣＵに適用されたかどうかを示すために、ＣＵレベルでビットストリーム中に配置されることができる。
【０１９３】
[0199]図１４の例に例示されているように、ＡＦ＿ＩＮＴＥＲモードでは、動きベクトルペアの候補リストは、隣接ブロックを使用して構築されることができる。例えば、現在のブロック１４０２の左上コーナー中にロケートされたサブブロック、Ｖ０ １４１０に対して、動きベクトルｖ0が、それぞれ左上、上、および左方向の隣接ブロックＡ１４２０、Ｂ１４２２、およびＣ１４２４から選択されることができる。さらなる例として、現在のブロック１４０２の右上コーナー中にロケートされたサブブロック、Ｖ１ １４１２は、動きベクトルｖ1が、それぞれ上、および右上方向の隣接ブロックＤ１４２６およびＥ１４２８から選択されることができる。ブロックＡ１４２０、Ｂ１４２２、Ｃ１４２４、Ｄ１４２６、およびＥ１４２８に対応する動きベクトルｖA、ｖB、ｖC、ｖD、およびｖEを与えられると、動きベクトルペアの候補リストは、{（ｖ0，ｖ1）｜ｖ0＝｛ｖA，ｖB，ｖC｝，ｖ1＝｛ｖD，ｖE｝}として表されることができる。いくつかの例では、１つの隣接ブロックからの動きベクトルは、当該隣接ブロックについての参照ピクチャのＰＯＣと、現在のＣＵについての参照ピクチャのＰＯＣと、現在のＣＵのＰＯＣとの間の関係に基づいてスケーリングされることができる。これらの例では、ＰＯＣのうちのいくつかは、参照リストから決定されることができる。
【０１９４】
[0200]いくつかの例では、候補リスト中の候補の数が２つ未満であるとき、候補リストは、ＡＭＶＰ候補の各々を複製することによって構成される動きベクトルペアでパディングされることができる。候補リストが２つより多いとき、いくつかの例では、候補リスト中の候補は、候補についての動きベクトルの一貫性にしたがって（例えば、候補に関連付けられた動きベクトルのペアの２つの動きベクトル間の類似性の度合いにしたがって）ソートされることができる。これらの例では、第１の２つの候補は保持され、および残りは破棄されうる。
【０１９５】
[0201]いくつかの例では、レート歪みコストチェックは、リスト中の候補の中から動きベクトルペア候補を選択するために使用されることができる。選択される動きベクトルペア候補は、現在のブロック１４０２についての制御点動きベクトル予測（ＣＰＭＶＰ）に関して使用されることができる。いくつかのケースでは、選択される動きベクトルペア候補の位置を示すインデックスは、ビットストリーム中で示されることができる。動きベクトルペア候補が現在のブロック１４０２について選択されると、アフィン動き推定が適用されることができ、および制御点動きベクトル（ＣＰＭＶ）が見出されることができる。いくつかのケースでは、制御点動きベクトルと制御点動きベクトル予測との間の差分は、ビットストリーム中でシグナリングされることができる。
【０１９６】
[0202]図１５Ａおよび図１５Ｂは、ＡＦ＿ＭＥＲＧＥモードでの動きベクトル予測の例を例示している。ＡＦ＿ＭＥＲＧＥモードが現在のブロック１５０２に適用されるとき、動きベクトルは、有効な隣接する再構成されたブロックから取得されることができる。図１５Ａに例示されているように、隣接ブロックは、ここではＡ１５２０、Ｂ１５２２、Ｃ１５２４、Ｄ１５２６、およびＥ１５２８とラベル付けされた隣接ブロックのセットの中から選択されることができる。隣接ブロックは、例えば、左隣接物（ブロックＡ１５２０）、それに続く上隣接物（ブロックＢ１５２２）、そして右上隣接物（ブロックＣ１５２４）、そして左下隣接物（ブロックＤ１５２６）、およびそして左上隣接物（ブロックＥ１５２８）のような特定の順序で検討されうる。
【０１９７】
[0203]選択される隣接ブロックは、アフィンモードでコーディングされている第１のものである。例えば、ブロックＡ１５２０は、アフィンモードでコーディングされていることがありうる。図１５Ｂに例示されているように、ブロックＡ１５２０は、隣接ＣＵ１５０４中に含まれることができる。隣接ＣＵ１５０４の場合、左上部コーナー（ｖ2 １５３０）、右上コーナー（ｖ3 １５３２）、および左下コーナー（ｖ4 １５３４）についての動きベクトルが導出されていることがありうる。この例では、現在のブロック１５０２の左上部コーナーについての制御点動きベクトル、ｖ0 １５４０と、現在のブロック１５０２の右上部コーナーについての制御点動きベクトル、ｖ1 １５４２とは、アフィン動き公式で決定されることができ、その例は、次の通りである。
【０１９８】
【数１４】
2019534622.tif 000016
【０１９９】
[0204]上記の式は、ｖ0 １５４０およびｖ1 １５４２を計算するために、ｖ2 １５３０、ｖ3 １５３２、およびｖ4 １５３４を使用するための実例的な方法を例示している。
【０２００】
[0205]制御点動きベクトル、ｖ0 １５４０およびｖ1 １５４２が決定されると、式（１）は、現在のブロック１５０２についての動きベクトルフィールドを決定するために適用されることができる。
【０２０１】
[0206]現在のブロック１５０２がＡＦ＿ＭＥＲＧＥモードでコーディングされているかどうかを識別するために、アフィンフラグは、少なくとも１つの隣接ブロックがアフィンモードでコーディングされたときに、ビットストリーム中に含まれることができる。
【０２０２】
[0207]フレームレートアップコンバージョンコーディングモードの様々なインプリメンテーションでは、平行移動（translation）動きが、動き推定を決定するときに検討される。例えば、ＪＥＭのいくつかのインプリメンテーションは、平行移動（translational）動きモデルのみを使用する。平行移動動きモデルは、しかしながら、より複雑な動きをキャプチャすることが可能ではないことがありうるか、または効率的にそのような動きをキャプチャすることが可能ではないことがありうる。例えば、平行移動動きモデルのみを使用して、ビットストリーム中で複雑な動きをシグナリングする（例えば、記述する）ことは、とても大きいビットストリームを生成しうる。信号は、復号器が、フレームレートアップコンバージョンを実行し、および最小グリッチまたはアーティファクトを有するビデオシーケンスを作り出すことが可能であるために必要でありうる。大きいビットストリームは、しかしながら、記憶およびトランスポートするにはコストが掛かる可能性がある。
【０２０３】
[0208]様々なインプリメンテーションでは、フレームレートアップコンバージョン両方向マッチングコーディングモードを使用するとき、アフィン動きモデルは、平行移動動きモデルの代わりに、またはそれに加えて適用されることができる。いくつかのケースでは、アフィン動きモデルは、フレームから次のフレームへのオブジェクトの移動をより良く反映（reflect）し、およびこのことから、より良いフレームレートアップコンバージョン結果をもたらすことができる。
【０２０４】
[0209]いくつかの例では、ブロック全体に対して両方向マッチングを使用するとき、平行移動動きモデルがまず、平行移動動き情報を導出するために使用されることができる。例えば、図２Ａおよび図２Ｂに関して、例えば、論述されたような動き推定および動き予測は、参照フレームに対する参照インデックスおよび動きベクトルを決定するために使用されることができる。平行移動動き情報はその後、アフィン動き情報を導出するために、アフィン動きモデルへの入力として使用されることができる。例えば、平行移動動き情報は、現在のブロックについての単一の動きベクトルを提供することができる。この例では、上述されたようなアフィン動きモデルは、ブロックについての動きベクトルフィールドを作り出すために、動きベクトルに適用されることができる。
【０２０５】
[0210]いくつかのインプリメンテーションでは、マッチングコストは、どちらの情報をビットストリーム中に含めるかを決定するために、平行移動動き情報とアフィン動き情報との両方について決定されることができる。マッチングコストは、各モデルの正確度の度合いに相関することができる。マッチングコストを決定することは、例えば、第１の参照フレームからのブロックを第２の参照フレームからのブロックと比較することを含むことができ、ここで、２つのブロックは、動きモデルに基づいて選択される。平行移動動きモデルの場合、オブジェクトの移動は、線形であると想定されることができ、およびこのことから、第２のブロックは、第１のブロックに対して連続的軌道に沿っていると想定されることができる。アフィン動きモデルの場合、オブジェクトの移動は、非線形であると想定されえ、およびこのことから、第２のブロックは、平行移動動きモデルを使用して選択されるブロックとは異なる、第２の参照フレームの部分中にありうる。第１のブロックと第２のブロックとの間の差分が大きいとき、マッチングコストは高い。反対に、差分が少ないとき、マッチングコストは低い。様々なインプリメンテーションでは、より小さいマッチングコストをもたらす動き情報が使用される。
【０２０６】
[0211]いくつかのインプリメンテーションでは、アフィン動きモデルは、いくつかのブロックについてのみチェックされる。例えば、しきい値サイズ（例えば、４×４ピクセル、１６×１６ピクセル、または何らかの他のサイズ）より大きいブロックがチェックされうる。いくつかのケースでは、アフィン動きモデルは、より大きいブロックに対してより良い結果（例えば、より効率的なコーディング）を提供することができる。いくつかの例では、しきい値は、機械学習技法を使用して決定されることができ、それにおいて、符号化システムは、トレーニングサンプルを提供されることができ、そのシステムは、最適条件（an optimum）が決定されるまで、異なるしきい値を試すことができる。いくつかのインプリメンテーションでは、しきい値は、予め定義されることができるか、またはしきい値は、ビットストリーム中でシグナリングされることができる。例えば、しきい値は、ＳＰＳ、ＰＰＳ、スライスヘッダ中、補足エンハンスメント情報（ＳＥＩ：a Supplemental Enhanced Information）メッセージ中、またはビットストリーム中の何らかの他の構造中で示されうる。
【０２０７】
[0212]様々なインプリメンテーションでは、符号化器は、任意の特定のコーディングユニットに対して、平行移動動き情報が使用されるべきか、アフィン動き情報が使用されるべきかを決定することができる。これらのインプリメンテーションでは、符号化器は、動き情報を導出するために使用される方法をビットストリーム中で示すか、またはシグナリングすることができる。様々なインプリメンテーションでは、復号器は、動き情報を導出するために、ビットストリーム中の情報を使用することができる。
【０２０８】
[0213]様々なインプリメンテーションでは、および上述されたように、フレームレートアップコンバージョンモードでコーディングされたブロックを復号するとき、生成されるブロックは、サブブロックへと再分割されることができる。これらのインプリメンテーションでは、ブロックについての動きベクトルは、各サブブロックについての動きベクトルを生成するために使用されることができる。サブブロックについての動きベクトルを生成することは、ブロック全体におけるより複雑な移動をキャプチャし、およびこのことから、より良いコーディング効率を生むことができる。ブロックについての動きベクトルは、平行移動動きモデルまたはアフィン動きモデルを使用して決定されることができる。各サブブロックについての動きベクトルは、平行移動動きモデルまたはアフィン動きモデルを使用して決定されることができる。例えば、上記の式（１）は、各サブブロックについての動きベクトルを決定するために使用されることができる。
【０２０９】
[0214]様々なインプリメンテーションでは、特徴点ベースの方法は、初期スケーリングファクタを決定するために使用されることができ、ここで、スケーリングファクタは、サブブロックについての動きベクトルを決定するために使用されることができる。例えば、４点アフィンモデルが使用される例では、ハリスコーナー検出器（a Harris corner detector）または何らかの他のコンピュータビジョンシステムが、ブロック中の最も顕著な２つの特徴点を抽出するために使用されることができる。特徴点は、ブロック中のピクセルの特有の（distinctive）セットであることができ、ここで、ピクセルは、ピクセルが周囲とは異なる色または光度を有する、および／または特有の形状を有することから、特有である。
【０２１０】
[0215]様々なインプリメンテーションでは、特徴点は、動きベクトル予測中にベストマッチングブロックを探索しているときに使用されることができる。例えば、正規化相互相関（normalized cross correlation）のような探索方法は、第１の参照ピクチャおよび第２の参照ピクチャ中の対応する特徴点を見出すために使用されることができる。スケーリングファクタは、例えば、第１の参照ピクチャおよび第２の参照ピクチャ中の２つの特徴点のユークリッド距離の比を算出することによって決定されることができる。代替として、例えば、顕著な特徴点の数が２つより大きいとき、比は、距離ベクトルに適合する最小２乗値を見出すことによって見出されることができ、ここで、距離ベクトルは、各特徴点から平均点までの距離（例えば、質量中心（the center of mass）までの距離）の和を算出することによって生成されることができる。算出されるスケーリングファクタは、全てのサブブロックについての動きベクトルを精緻化する（リファインするrefine）ために使用されることができる。
【０２１１】
[0216]様々なインプリメンテーションでは、システムは、フレームレートアップコンバージョン両方向マッチングコーディングモードを行うときに、ピクセルレベルアフィン動き推定を行うように構成されうる。これらのインプリメンテーションでは、特徴点のセットは、抽出されることができ、線形方程式系（a system of linear equations）に対する最小２乗の解は、アフィンパラメータを導出するために使用されることができる。代替としてまたは加えて、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ：Random Sample Consensus）のようなアルゴリズムは、アフィンパラメータを見出すために使用されうる。ＲＡＮＳＡＣのようなアルゴリズムは、アフィンパラメータの探索中に外れ値(outliers)を自動的に取り除くことができ、ここで、最小２乗の解のような方法は、外れ値を含みうる。ＲＡＮＳＡＣのようなアルゴリズムはまた、追加の計算的な複雑性を犠牲にしてよりロバストな結果を生むことができる。
【０２１２】
[0217]様々なインプリメンテーションでは、ビデオシステムは、重み付けされた双補間（weighted bi-interpolation）をサポートしうる。重み付けされていない双補間では、予測される逆方向動きベクトルは、予測される前方動きベクトルと同じ重みを与えられる。重み付けされた双補間では、前方および逆方向動きベクトルは、異なる重みを与えられることができる。重みを決定するために、システムは、反復探索を行うことができ、ここで、その探索は、安定した結果が達成されるか、または所定の最大数の反復が達せられたときに終了する。復号器は、例えば、重みがビットストリーム中で提供されないときに反復探索を行いうる。いくつかのケースでは、重みは、ビットストリーム中で提供されえ、および動きベクトルを導出するために復号器によって使用されることができる。
【０２１３】
[0218]ビデオのコンテンツについての何らかの情報がないと、しかしながら、反復探索のための開始重みを決定することは、難しい可能性がある。このことから、様々なインプリメンテーションでは、平行移動動き探索は、最適重みを見出すために使用されることができる。これらおよび他のインプリメンテーションでは、重みは、両方向マッチングにおけるアフィン動き探索に適用されることができる。
【０２１４】
[0219]いくつかのインプリメンテーションでは、サブブロック動きベクトル精緻化(refinement)のためにフレームレートアップコンバージョン両方向マッチングコーディングモードを使用するときに、１次テイラー展開が、ＳＡＤベースのマッチングの代わりに、動きベクトルを最適化するために使用されることができる。例えば、現在のブロックに対する１次テイラー展開は、第１の参照フレームについて計算されることができ、および現在のブロックに対する１次テイラー展開はまた、第２の参照フレームについて計算されることができ、ここで、第１および第２の参照フレームは、異なる時間的位置にある。動きベクトルはその後、２乗誤差の和（または絶対差分の和）を最小化することによって導出されることができ、ここで、誤差は、２つの参照フレームの各々についての計算の結果の間である。この計算は、上述された式（６）に類似している。
【０２１５】
[0220]図１６は、フレームレートアップコンバージョンコーディングモードのためのプロセス１６００の例を例示している。実例的なプロセス１６００は、符号化デバイスまたは復号デバイスによって実行されることができる。
【０２１６】
[0221]１６０２において、プロセス１６００は、ビデオデータを取得することを含む。ビデオデータは、例えば、カメラのようなビデオキャプチャデバイスから取得されることができる。別の例として、ビデオデータは、符号化されたビットストリームから取得されることができる。別の例として、ビデオデータは、ファイルから、またはネットワークデータから取得されることができ、ここで、ビデオデータは、特定のフォーマットにしたがってパッケージ化される。
【０２１７】
[0222]１６０４において、プロセス１６００は、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することを含み、ここにおいて、フレームレートアップコンバージョン両方向マッチングコーディングモードがブロックに対して使用されるときには、局所照明補償がブロックに対して使用されることは許可されない。いくつかのインプリメンテーションでは、フレームレートアップコンバージョン両方向マッチングコーディングモードがブロックに対して使用されるとき、局所照明補償フラグは、ブロックについてのデータがビットストリームに書き込まれるときには、ブロックに対してシグナリングされない。
【０２１８】
[0223]１６０６において、プロセス１６００は、ブロックについての動き情報を決定することを含み、ここにおいて、動き情報は、ブロックに対して使用されるフレームレートアップコンバージョン両方向マッチングコーディングモードに基づいて決定される。動き情報は、例えば、動きベクトルを含むことができる。フレームレートアップコンバージョン両方向マッチングを使用することは、例えば、第１の参照フレーム中の第１のブロックを決定することと、第２の参照フレーム中の第２のブロックを決定することとを含むことができ、ここで、第２のブロックは、第１のブロックに関連付けられている。プロセス１６００はさらに、第１のブロックから第２のブロックまでの動き軌道を決定することを含むことができる。プロセス１６００はさらに、動き軌道の経路に沿ってブロックを生成することを含むことができる。
【０２１９】
[0224]いくつかのインプリメンテーションでは、プロセス１６００が復号器によって実行されるとき、プロセス１６００は、フレームレートアップコンバージョン両方向マッチングコーディングモードがブロックに対してシグナリングされることに応答して、偽となるように局所照明補償フラグの値を導出することを含むことができ、ここにおいて、局所照明補償は、局所照明補償フラグが偽となるように導出されるときには使用されない。
【０２２０】
[0225]いくつかのインプリメンテーションでは、プロセス１６００はさらに、動き情報を精緻化するために１次テイラー展開最適化を実行することを含むことができる。１次テイラー展開最適化を実行することは、第１の参照ピクチャと第２の参照ピクチャとの時間的位置におけるブロックの１次テイラー展開間の２乗誤差の和（または絶対デイファーンス（differnce）の和）を最小化することによって動きベクトルを導出することを含むことができる。
【０２２１】
[0226]図１７は、フレームレートアップコンバージョンのためのプロセス１７００の例を例示している。実例的なプロセス１７００は、符号化デバイスまたは復号デバイスによって実行されることができる。
【０２２２】
[0227]１７０２において、プロセス１７００は、ビデオデータを取得することを含む。ビデオデータは、例えば、カメラのようなビデオキャプチャデバイスから取得されることができる。別の例として、ビデオデータは、符号化されたビットストリームから取得されることができる。別の例として、ビデオデータは、ファイルから、またはネットワークデータから取得されることができ、ここで、ビデオデータは、特定のフォーマットにしたがってパッケージ化される。
【０２２３】
[0228]１７０４において、プロセス１７００は、ビデオデータのブロックに対して局所照明補償を使用することを含み、ここにおいて、局所照明補償がブロックに対して実行されるときには、フレームレートアップコンバージョンがブロックに対して使用されることは許可されない。いくつかのインプリメンテーションでは、局所照明補償がブロックに対して使用されるとき、フレームレートアップコンバージョン両方向マッチングコーディングモードフラグは、ブロックについてのデータがビットストリームに書き込まれるときには、ブロックに対してシグナリングされない。
【０２２４】
[0229]１７０６において、プロセス１７００は、ブロックについての動き情報を決定することを含み、ここにおいて、動き情報は、局所照明補償がブロックに対して使用された後に決定される。いくつかのインプリメンテーションでは、局所照明補償を使用することは、スケーリングファクタとオフセットとを導出するために最小２乗方を使用することを含むことができる。
【０２２５】
[0230]いくつかのインプリメンテーションでは、プロセス１７００が復号器によって実行されるとき、プロセス１７００は、局所照明補償がブロックに対してシグナリングされることに応答して、偽となるようにフレームレートアップコンバージョン両方向マッチングコーディングモードフラグの値を導出することを含むことができ、ここにおいて、フレームレートアップコンバージョン両方向マッチングは、局所照明補償フラグが偽となるように導出されるときには使用されない。
【０２２６】
[0231]いくつかのインプリメンテーションでは、プロセス１７００は、動き情報を精緻化する（refine）ために１次テイラー展開を実行することを含むことができる。
【０２２７】
[0232]図１８は、フレームレートアップコンバージョンのためのプロセス１８００の例を例示している。実例的なプロセス１８００は、符号化デバイスまたは復号デバイスによって実行されることができる。
【０２２８】
[0233]１８０２において、プロセス１８００は、ビデオデータを取得することを含む。ビデオデータは、例えば、カメラのようなビデオキャプチャデバイスから取得されることができる。別の例として、ビデオデータは、符号化されたビットストリームから取得されることができる。別の例として、ビデオデータは、ファイルから、またはネットワークデータから取得されることができ、ここで、ビデオデータは、特定のフォーマットにしたがってパッケージ化される。
【０２２９】
[0234]１８０４において、プロセス１８００は、ビデオデータのブロックに対してフレームレートアップコンバージョン両方向マッチングコーディングモードを使用することを含み、ここにおいて、フレームレートアップコンバージョン両方向マッチングを使用することは、ブロックにアフィン動きモデルを適用することを含む。いくつかのケースでは、アフィン動きモデルは、平行移動動きモデルの代わりに適用される。いくつかのケースでは、アフィン動きモデルは、平行移動動きモデルに加えて適用される。
【０２３０】
[0235]１８０６において、プロセス１８００は、ブロックへのアフィン動きモデルの適用に基づいて、第１の参照ピクチャについての第１のアフィン動き情報と第２の参照ピクチャについての第２のアフィン動き情報とを決定することを含む。
【０２３１】
[0236]１８０８において、プロセス１８００は、第１のアフィン動き情報と第２のアフィン動き情報とを使用してブロックについての少なくとも１つの予測を決定することを含む。
【０２３２】
[0237]いくつかのインプリメンテーションでは、プロセス１８００はさらに、ブロックについての第１の予測を決定することを含むことができ、ここで、第１の予測は、第１の参照ピクチャと第１のアフィン動き情報とを使用して決定される。プロセス１８００はさらに、ブロックについての第２の予測を決定することを含むことができ、ここで、第２の予測は、第２の参照ピクチャと第２のアフィン動き情報とを使用して決定される。
【０２３３】
[0238]いくつかのインプリメンテーションでは、プロセス１８００はさらに、ブロックに平行移動動きモデルを適用することを含むことができる。平行移動動きモデルの適用は、平行移動動き情報をもたらす。これらのインプリメンテーションでは、ブロックにアフィン動きモデルを適用することは、第１のアフィン動きと第２のアフィン動き情報とを導出するために、入力として平行移動動き情報を使用することを含むことができる。
【０２３４】
[0239]いくつかのインプリメンテーションでは、プロセス１８００はさらに、アフィン動きモデルのマッチングコストが平行移動動きモデルのマッチングコストより低いと決定することを含むことができる。マッチングコストがより低いとき、アフィン動きモデルの使用は、ビットストリーム中でシグナリングされることができる。
【０２３５】
[0240]いくつかのインプリメンテーションでは、プロセス１８００はさらに、アフィン動きモデルのマッチングコストが平行移動動きモデルのマッチングコストより高いと決定することを含むことができる。コストがより高いとき、平行移動動きモデルの使用は、ビットストリーム中でシグナリングされることができる。
【０２３６】
[0241]いくつかのインプリメンテーションでは、プロセス１８００はさらに、ブロックのサイズがしきい値サイズより大きいと決定することを含むことができる。これらのインプリメンテーションでは、アフィン動きモデルは、ブロックのサイズがしきい値サイズより大きいと決定することに応答してブロックに適用される。
【０２３７】
[0242]いくつかのインプリメンテーションでは、プロセス１８００はさらに、ブロックについての少なくとも予測を精緻化するために１次テイラー展開最適化を実行することを含むことができる。１次テイラー展開最適化を実行することは、第１の参照ピクチャと第２の参照ピクチャとの時間的位置におけるブロックの１次テイラー展開間の２乗誤差の和（または絶対差分の和）を最小化することによって動きベクトルを導出することを含むことができる。
【０２３８】
[0243]ここに論述されるコーディング技法は、実例的なビデオ符号化および復号システム（例えば、システム１００）においてインプリメントされうる。いくつかの例では、システムは、宛先デバイスによって後の時間に復号されることになる符号化されたビデオデータを提供するソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、または同様のものを含む、幅広い範囲のデバイスのうちの任意のものを備えうる。いくつかのケースでは、ソースデバイスおよび宛先デバイスは、ワイヤレス通信のために装備されうる。
【０２３９】
[0244]宛先デバイスは、コンピュータ可読媒体を介して復号されることになる符号化されたビデオデータを受信しうる。コンピュータ可読媒体は、ソースデバイスから宛先デバイスに符号化されたビデオデータを移動させることが可能である任意のタイプの媒体またはデバイスを備えうる。一例では、コンピュータ可読媒体は、ソースデバイスがリアルタイムで宛先デバイスに直接符号化されたビデオデータを送信することを可能にするための通信媒体を備えうる。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格にしたがって変調され、および宛先デバイスに送信されうる。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理送信線のような任意のワイヤレスまたはワイヤード通信媒体を備えうる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークのような、パケットベースのネットワークの一部を形成しうる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするのに役立ちうる任意の他の機器を含みうる。
【０２４０】
[0245]いくつかの例では、符号化されたデータは、出力インターフェースから記憶デバイスに出力されうる。同様に、符号化されたデータは、入力インターフェースによって記憶デバイスからアクセスされうる。記憶デバイスは、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または非揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の適したデジタル記憶媒体のような、多様な分散されたまたは局所的にアクセスされるデータ記憶媒体のうちの任意のものを含みうる。さらなる例では、記憶デバイスは、ファイルサーバ、またはソースデバイスによって生成される符号化されたビデオを記憶しうる別の中間記憶デバイスに対応しうる。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスしうる。ファイルサーバは、符号化されたビデオデータを記憶することと、宛先デバイスにその符号化されたビデオデータを送信することとが可能である任意のタイプのサーバでありうる。実例的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む、任意の標準データ接続を通じて符号化されたビデオデータにアクセスしうる。これは、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデム、等）、またはその両方の組み合わせを含みうる。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせでありうる。
【０２４１】
[0246]この開示の技法は、ワイヤレス適用または設定に必ずしも限定されない。本技法は、無線テレビブロードキャスト、ケーブルテレビ送信、衛星テレビ送信、ＨＴＴＰを通した動的適応型ストリーミング（ＤＡＳＨ）のようなインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用のような、多様なマルチメディア適用のうちの任意のものをサポートするビデオコーディングに適用されうる。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティングおよび／またはビデオ電話通信のような適用をサポートするために、１方向または２方向ビデオ送信をサポートするように構成されうる。
【０２４２】
[0247]一例では、ソースデバイスは、ビデオソース、ビデオ符号化器、および出力インターフェースを含む。宛先デバイスは、入力インターフェース、ビデオ復号器、およびディスプレイデバイスを含みうる。ソースデバイスのビデオ符号化器は、ここに開示されている技法を適用するように構成されうる。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは配列を含みうる。例えば、ソースデバイスは、外部カメラのような外部ビデオソースからビデオデータを受信しうる。同様に、宛先デバイスは、一体化されたディスプレイデバイスを含むというよりはむしろ、外部ディスプレイデバイスとインターフェースしうる。
【０２４３】
[0248]上記の実例的なシステムは単に一例に過ぎない。平行してビデオデータを処理するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行されうる。概して、この開示の技法は、ビデオ符号化デバイスによって実行されるが、本技法はまた、典型的に「ＣＯＤＥＣ」と呼ばれるビデオ符号化器／復号器によって実行されうる。その上、この開示の技法はまた、ビデオプリプロセッサによって実行されうる。ソースデバイスおよび宛先デバイスは単に、ソースデバイスが宛先デバイスへの送信のためのコード化されたビデオデータを生成するそのようなコーディングデバイスの例に過ぎない。いくつかの例では、ソースデバイスおよび宛先デバイスは、それらデバイスの各々がビデオ符号化および復号コンポーネントを含むような実質的に対称的な方法で動作しうる。故に、実例的なシステムは、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話通信のために、ビデオデバイス間の１方向または２方向ビデオ送信をサポートしうる。
【０２４４】
[0249]ビデオソースは、ビデオカメラのようなビデオキャプチャデバイス、以前にキャプチャされたビデオを包含するビデオアーカイブ、および／またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含みうる。さらなる代替として、ビデオソースは、ソースビデオとしてコンピュータグラフィックスベースのデータを、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組み合わせを生成しうる。いくつかのケースでは、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラ電話またはビデオ電話を形成しうる。上述されたように、しかしながら、この開示において説明される技法は、概してビデオコーディングに適用可能でありえ、ワイヤレスおよび／またはワイヤード適用に適用されうる。各ケースでは、キャプチャされた、事前にキャプチャされた、またはコンピュータ生成されたビデオは、ビデオ符号化器によって符号化されうる。符号化されたビデオ情報はその後、コンピュータ可読媒体上に出力インターフェースによって出力されうる。
【０２４５】
[0250]述べられたように、コンピュータ可読媒体は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信のような一過性媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙディスク、もしくは他のコンピュータ可読媒体のような記憶媒体（すなわち、非一時的記憶媒体）を含みうる。いくつかの例では、ネットワークサーバ（図示せず）は、例えば、ネットワーク送信を介して、ソースデバイスから符号化されたビデオデータを受信し、および宛先デバイスに符号化されたビデオデータを提供しうる。同様に、ディスクスタンピング設備のような媒体製造設備のコンピューティングデバイスは、ソースデバイスから符号化されたビデオデータを受信し、および符号化されたビデオデータを包含するディスクを製造しうる。したがって、コンピュータ可読媒体は、様々な例において、様々な形態の１つまたは複数のコンピュータ可読媒体を含むことが理解されうる。
【０２４６】
[0251]宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロックおよび他のコーディングユニット、例えば、ピクチャのグループ（ＧＯＰ：group of pictures）の特性および／または処理を記述するシンタックス要素を含む、ビデオ符号化器によって定義されるシンタックス情報を含みえ、それはまた、ビデオ復号器によって使用される。ディスプレイデバイスは、ユーザに復号されたビデオデータを表示し、およびブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスのような多様なディスプレイデバイスのうちの任意のものを備えうる。本発明の様々な実施形態が、説明されてきた。
【０２４７】
[0252]符号化デバイス１０４および復号デバイス１１２の特定の詳細は、それぞれ図１９および図２０に示されている。図１９は、この開示において説明される技法のうちの１つまたは複数をインプリメントしうる実例的な符号化デバイス１０４を例示するブロック図である。符号化デバイス１０４は、例えば、ここに説明されるシンタックス構造（例えば、ＶＰＳ、ＳＰＳ、ＰＰＳ、または他のシンタックス要素のシンタックス構造）を生成しうる。符号化デバイス１０４は、ビデオスライス内のビデオブロックのイントラ予測およびインター予測コーディングを実行しうる。前述されたように、イントラコーディングは、所与のビデオフレームまたはピクチャ内の空間的冗長性を低減または取り除くために空間的予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接または周囲フレーム内の時間的冗長性を低減または取り除くために時間的予測に少なくとも部分的に依拠する。イントラ（Ｉ）モードは、いくつかの空間ベースの圧縮モードのうちの任意のものを指しうる。単方向予測（Ｐモード）または双予測（Ｂモード）のようなインターモードは、いくつかの時間ベースの圧縮モードのうちの任意のものを指しうる。
【０２４８】
[0253]符号化デバイス１０４は、区分化ユニット３５、予測処理ユニット４１、フィルタユニット６３、ピクチャメモリ６４、加算器５０、変換処理ユニット５２、量子化ユニット５４、およびエントロピー符号化ユニット５６を含む。予測処理ユニット４１は、動き推定ユニット４２、動き補償ユニット４４、およびイントラ予測処理ユニット４６を含む。ビデオブロック再構築のために、符号化デバイス１０４はまた、逆量子化ユニット５８、逆変換処理ユニット６０、および加算器６２を含む。フィルタユニット６３は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ：an adaptive loop filter）、およびサンプル適応オフセット（ＳＡＯ：sample adaptive offset）フィルタのような１つまたは複数のループフィルタを表すことを意図されている。フィルタユニット６３はインループフィルタ（an in loop filter）として図１９に示されているが、他の構成では、フィルタユニット６３は、ポストループフィルタ（a post loop filter）としてインプリメントされうる。後処理デバイス（A post processing device）５７は、符号化デバイス１０４によって生成される符号化されたビデオデータに対して追加の処理を実行しうる。この開示の技法は、いくつかの事例では、符号化デバイス１０４によってインプリメントされうる。他の事例では、しかしながら、この開示の技法のうちの１つまたは複数は、後処理デバイス５７によってインプリメントされうる。
【０２４９】
[0254]図１９に示されているように、符号化デバイス１０４は、ビデオデータを受信し、および区分化ユニット３５は、データをビデオブロックへと区分化する。その区分化はまた、スライス、スライスセグメント、タイル、または他のより大きなユニットへの区分化、ならびに、例えば、ＬＣＵおよびＣＵの四分木構造にしたがったビデオブロック区分化を含みうる。符号化デバイス１０４は概して、符号化されることになるビデオスライス内のビデオブロックを符号化するコンポーネントを例示している。スライスは、複数のビデオブロックへと（およびことによると、タイルと呼ばれるビデオブロックのセットへと）分割されうる。予測処理ユニット４１は、誤差結果（例えば、コーディングレートおよび歪みのレベル、または同様のもの）に基づいて、現在のビデオブロックに対して、複数のイントラ予測コーディングモードのうちの１つまたは複数のインター予測コーディングモードのうちの１つのような複数の可能なコーディングモードのうちの１つを選択しうる。予測処理ユニット４１は、残差ブロックデータを生成するために加算器５０に、および参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器６２に、結果として生じるイントラまたはインターコーディングされたブロックを提供しうる。
【０２５０】
[0255]予測処理ユニット４１内のイントラ予測処理ユニット４６は、空間的圧縮を提供するためにコード化されるべき現在のブロックと同じフレームまたはスライス中の１つまたは複数の近隣ブロックに対して、現在のビデオブロックのイントラ予測コーディングを実行しうる。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、時間的圧縮を提供するために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対して、現在のビデオブロックのインター予測コーディングを実行する。
【０２５１】
[0256]動き推定ユニット４２は、ビデオシーケンスについての所定のパターンにしたがって、ビデオスライスに対するインター予測モードを決定するように構成されうる。所定のパターンは、Ｐスライス、Ｂスライス、またはＧＰＢスライスとして、シーケンス中のビデオスライスを指定しうる。動き推定ユニット４２および動き補償ユニット４４は、高度に一体化されうるが、概念的な目的のために別個に例示されている。動き推定ユニット４２によって実行される動き推定は、動きベクトルを生成するプロセスであり、それは、ビデオブロックについての動きを推定する。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックの予測ユニット（ＰＵ）の変位を示しうる。
【０２５２】
[0257]予測ブロックは、ピクセル差分の観点からコーディングされるべきビデオブロックのＰＵと密接にマッチすることを見出されるブロックであり、それは、絶対差分の和（ＳＡＤ）、２乗差分の和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定されうる。いくつかの例では、符号化デバイス１０４は、ピクチャメモリ６４中に記憶された参照ピクチャのサブ整数ピクセル位置についての値を算出しうる。例えば、符号化デバイス１０４は、参照ピクチャの４分の１ピクセル位置、８分の１ピクセル位置、または他の分数ピクセル位置の値を補間しうる。したがって、動き推定ユニット４２は、全ピクセル位置および分数ピクセル位置に対して動き探索を実行し、および分数ピクセル精度で動きベクトルを出力しうる。
【０２５３】
[0258]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのＰＵについての動きベクトルを算出する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択されえ、それらの各々は、ピクチャメモリ６４中に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、エントロピー符号化ユニット５６および動き補償ユニット４４に算出された動きベクトルを送る。
【０２５４】
[0259]動き補償ユニット４４によって実行される動き補償は、動き推定によって決定される動きベクトルに基づいて予測ブロックをフェッチするまたは生成することを伴いえ、ことによるとサブピクセル精度に対する補間を実行する。現在のビデオブロックのＰＵについての動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリスト中に、動きベクトルが指し示す予測ブロックをロケートしうる。符号化デバイス１０４は、コーディングされる現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、ピクセル差分値を形成する。ピクセル差分値は、ブロックについての残差データを形成し、ルーマおよびクロマ差分成分の両方を含みうる。加算器５０は、この減算演算を実行する１つまたは複数のコンポーネントを表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス１１２によって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成しうる。
【０２５５】
[0260]イントラ予測処理ユニット４６は、上述されたように、動き推定ユニット４２および動き補償ユニット４４によって実行されるインター予測の代替として、現在のブロックをイントラ予測しうる。特に、イントラ予測処理ユニット４６は、現在のブロックを符号化するために使用するためのイントラ予測モードを決定しうる。いくつかの例では、イントラ予測処理ユニット４６は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化しえ、およびイントラ予測ユニット処理４６は、テストされたモードから使用するための適切なイントラ予測モードを選択しうる。例えば、イントラ予測処理ユニット４６は、様々なテストされたイントラ予測モードについてのレート歪み分析を使用してレート歪み値を算出しえ、およびテストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択しうる。レート歪み分析は概して、符号化されたブロックと、符号化されたブロックを作り出すために符号化された元の符号化されていないブロックとの間の歪み（または誤差）の量、ならびに符号化されたブロックを作り出すために使用されたビットレート（すなわち、ビットの数）を決定する。イントラ予測処理ユニット４６は、どのイントラ予測モードがブロックについての最良のレート歪み値を示すかを決定するために、様々な符号化されたブロックについての歪みおよびレートからの比を算出しうる。
【０２５６】
[0261]いずれのケースでも、ブロックに対するイントラ予測モードを選択した後に、イントラ予測処理ユニット４６は、エントロピー符号化ユニット５６にブロックに対する選択されたイントラ予測モードを示す情報を提供しうる。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化しうる。符号化デバイス１０４は、様々なブロックについての符号化コンテキストの定義、ならびに最確（most probable）イントラ予測モードのインジケーション、イントラ予測モードインデックステーブル、およびコンテキストの各々に対して使用するための修正されたイントラ予測モードインデックステーブルを、送信されたビットストリーム構成データ中に含めうる。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルと、複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）とを含みうる。
【０２５７】
[0154]予測処理ユニット４１がインター予測またはイントラ予測のいずれかを介して現在のビデオブロックについての予測ブロックを生成した後に、符号化デバイス１０４は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、および変換処理ユニット５２に適用されうる。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換のような変換を使用して、残差ビデオデータを残差変換係数へと変換する。変換処理ユニット５２は、ピクセルドメインから周波数ドメインのような変換ドメインへと残差ビデオデータをコンバートしうる。
【０２５８】
[0262]変換処理ユニット５２は、量子化ユニット５４に結果として生じる変換係数を送りうる。量子化ユニット５４は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数のうちのいくつかまたは全てに関連付けられたビット深度を低減しうる。量子化の度合いは、量子化パラメータを調節することによって修正されうる。いくつかの例では、量子化ユニット５４はその後、量子化された変換係数を含む行列の走査を実行しうる。代替として、エントロピー符号化ユニット５６が走査を実行しうる。
【０２５９】
[0263]量子化に続いて、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースのコンテキスト適応バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分化エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コーディング、または別のエントロピー符号化技法を実行しうる。エントロピー符号化ユニット５６によるエントロピー符号化に続いて、符号化されたビットストリームは、復号デバイス１１２に送信されうるか、または復号デバイス１１２による後の送信または取り出しのためにアーカイブされうる。エントロピー符号化ユニット５６はまた、コーディングされる現在のビデオスライスについての動きベクトルおよび他のシンタックス要素をエントロピー符号化しうる。
【０２６０】
[0264]逆量子化ユニット５８および逆変換処理ユニット６０は、参照ピクチャの参照ブロックとして後に使用するためのピクセルドメイン中の残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、参照ピクチャリスト内の参照ピクチャのうちの１つの予測ブロックに残差ブロックを追加することによって、参照ブロックを算出しうる。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を算出するために、再構築された残差ブロックに１つまたは複数の補間フィルタを適用しうる。加算器６２は、ピクチャメモリ６４中での記憶のための参照ブロックを作り出すために、動き補償ユニット４４によって作り出された動き補償予測ブロックに再構築された残差ブロックを追加する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、参照ブロックとして動き推定ユニット４２および動き補償ユニット４４によって使用されうる。
【０２６１】
[0265]このように、図１９の符号化デバイス１０４は、符号化されたビデオビットストリームについてのシンタックスを生成するように構成されたビデオ符号化器の例を表している。符号化デバイス１０４は、例えば、上述されたように、ＶＰＳ、ＳＰＳ、およびＰＰＳパラメータセットを生成しうる。符号化デバイス１０４は、図１７、１８、および図１９に関して上述されたプロセスを含む、ここに説明される技法のうちの任意のものを実行しうる。この開示の技法は概して、符号化デバイス１０４に関して説明されてきたが、上述されたように、この開示の技法のうちのいくつかはまた、後処理デバイス５７によってインプリメントされうる。
【０２６２】
[0266]図２０は、実例的な復号デバイス１１２を例示するブロック図である。復号デバイス１１２は、エントロピー復号ユニット８０、予測処理ユニット８１、逆量子化ユニット８６、逆変換処理ユニット８８、加算器９０、フィルタユニット９１、およびピクチャメモリ９２を含む。予測処理ユニット８１は、動き補償ユニット８２およびイントラ予測処理ユニット８４を含む。復号デバイス１１２は、いくつかの例では、図２０からの符号化デバイス１０４に関して説明された符号化パスとは概して相補的な復号パスを実行しうる。
【０２６３】
[0267]復号プロセス中に、復号デバイス１１２は、符号化デバイス１０４によって送られる符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス１１２は、符号化デバイス１０４から符号化されたビデオビットストリームを受信しうる。いくつかの実施形態では、復号デバイス１１２は、サーバ、媒体認識ネットワーク要素（ＭＡＮＥ：a media-aware network element）、ビデオエディタ／スプライサ、または上述された技法のうちの１つまたは複数をインプリメントするように構成された他のそのようなデバイスのようなネットワークエンティティ７９から符号化されたビデオビットストリームを受信しうる。ネットワークエンティティ７９は、符号化デバイス１０４を含むことも含まないこともありうる。この開示において説明される技法のうちのいくつかは、ネットワークエンティティ７９が復号デバイス１１２に符号化されたビデオビットストリームを送信するより前にネットワークエンティティ７９によってインプリメントされうる。いくつかのビデオ復号システムでは、ネットワークエンティティ７９および復号デバイス１１２は、別個のデバイスの一部でありうるが、その一方で、他の事例では、ネットワークエンティティ７９に関して説明される機能は、復号デバイス１１２を備える同じデバイスによって実行されうる。
【０２６４】
[0268]復号デバイス１１２のエントロピー復号ユニット８０は、量子化された係数、動きベクトル、および他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測処理ユニット８１に動きベクトルおよび他のシンタックス要素を転送する。復号デバイス１１２は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信しうる。エントロピー復号ユニット８０は、ＶＰＳ、ＳＰＳ、およびＰＰＳのような、または複数のパラメータセット中の固定長シンタックス要素と可変長シンタックス要素との両方を処理および構文解析（parse）しうる。
【０２６５】
[0269]ビデオスライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるとき、予測処理ユニット８１のイントラ予測処理ユニット８４は、現在のフレームまたはピクチャの以前に復号されたブロックからのデータおよびシグナリングされたイントラ予測モードに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成しうる。ビデオフレームがインターコーディングされた（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを作り出す。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの１つから作り出されうる。復号デバイス１１２は、ピクチャメモリ９２中に記憶された参照ピクチャに基づいて、デフォルト構築技法を使用して参照フレームリスト、リスト０およびリスト１を構築しうる。
【０２６６】
[0270]動き補償ユニット８２は、動きベクトルおよび他のシンタックス要素を構文解析することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、および復号される現在のビデオブロックについての予測ブロックを作り出すために予測情報を使用する。例えば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（例えば、イントラまたはインター予測）と、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスについての１つまたは複数の参照ピクチャリストについての構築情報と、スライスの各インター符号化されたビデオブロックについての動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、パラメータセット中の１つまたは複数のシンタックス要素を使用しうる。
【０２６７】
[0271]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行しうる。動き補償ユニット８２は、参照ブロックのサブ整数ピクセルについての補間された値を算出するためにビデオブロックの符号化中に、符号化デバイス１０４によって使用されるような補間フィルタを使用しうる。このケースでは、動き補償ユニット８２は、受信されたシンタックス要素から符号化デバイス１０４によって使用される補間フィルタを決定しえ、および予測ブロックを作り出すために補間フィルタを使用しうる。
【０２６８】
[0272]逆量子化ユニット８６は、ビットストリーム中で提供され、且つエントロピー復号ユニット８０によって復号された、量子化された変換係数を逆量子化（inverse quantizes）、すなわち逆量子化（de-quantizes）する。逆量子化プロセスは、量子化の度合い、および同様に、適用されるべき逆量子化の度合いを決定するために、ビデオスライス中の各ビデオブロックについて符号化デバイス１０４によって算出される量子化パラメータの使用を含みうる。逆変換処理ユニット８８は、ピクセルドメイン中に残差ブロックを作り出すために、変換係数に逆変換（例えば、逆ＤＣＴまたは他の適した逆変換）、逆整数変換、あるいは概念的に同様の逆変換プロセスを適用する。
【０２６９】
[0273]動き補償ユニット８２が動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックについての予測ブロックを生成した後に、復号デバイス１１２は、逆変換処理ユニット８８からの残差ブロックを、動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数のコンポーネントを表す。所望される場合、（コーディングループ中またはコーディングループ後のいずれかの）ループフィルタはまた、ピクセル遷移を平滑化にするために、またはそうでない場合にはビデオ品質を改善するために使用されうる。フィルタユニット９１は、デブロッキングフィルタ、適応ループフィルタ（ＡＬＦ）、およびサンプル適応オフセット（ＳＡＯ）フィルタのような１つまたは複数のループフィルタを表すことを意図されている。フィルタユニット９１はインループフィルタとして図２０に示されているが、他の構成では、フィルタユニット９１は、ポストループフィルタとしてインプリメントされうる。所与のフレームまたはピクチャ中の復号されたビデオブロックはその後、ピクチャメモリ９２中に記憶され、それは、後続する動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ９２はまた、図１に示されているビデオ宛先デバイス１２２のようなディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
【０２７０】
[0274]前述の説明では、本願の態様は、その特定の実施形態に関して説明されているが、当業者は、本発明はそれに限定されないと認識するであろう。このことから、本願の例示的な実施形態がここに詳細に説明されてきたが、発明の概念は、他の方法で様々に具現化および用いられえ、および添付された特許請求の範囲は、先行技術によって限定される場合を除いて、そのような様々な変形を含むように解釈されることを意図されていることが理解されるべきである。上述された本発明の様々な特徴および態様は、個々にまたは一緒に使用されうる。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなしに、ここに説明されたものを超えたあらゆる数の環境および適用において利用されることができる。本明細書および図面は、それ故に、制限的というよりはむしろ例示的であると見なされるべきである。例示を目的として、方法は、特定の順序で説明された。代替の実施形態では、方法は、説明されたものとは異なる順序で実行されうることが認識されるべきである。
【０２７１】
[0275]コンポーネントがある特定の動作を実行する「ように構成される」ものとして説明される場合、そのような構成は、例えば、動作を実行するように電子回路または他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路（例えば、マイクロプロセッサ、または他の適した電子回路）をプログラミングすることによって、またはそれらの任意の組み合わせで、達成されることができる。
【０２７２】
[0276]ここに開示されている実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組み合わせとしてインプリメントされうる。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、概してそれらの機能の観点から上述されてきた。そのような機能がハードウェアとしてインプリメントされるか、またはソフトウェアとしてインプリメントされるかは、特定の適用とシステム全体に課せられた設計制約とに依存する。当業者は、特定の適用ごとに様々な方法で、説明された機能をインプリメントしうるが、そのようなインプリメンテーションの決定は、本発明の範囲からの逸脱を引き起こしていると解釈されるべきではない。
【０２７３】
[0277]ここに説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいてインプリメントされうる。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用を含む複数の用途を有する集積回路デバイスのような多様なデバイスのうちの任意のものにおいてインプリメントされうる。モジュールまたはコンポーネントとして説明されたどの特徴も、集積ロジックデバイスにおいてともに、またはディスクリートではあるが相互動作可能なロジックデバイスとして別個に、インプリメントされうる。ソフトウェアにおいてインプリメントされる場合、本技法は、実行されると、上述された方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって少なくとも部分的に実現されうる。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成しえ、それは、パッケージング材料を含みうる。コンピュータ可読媒体は、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、不揮発ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ（登録商標））、ＦＬＡＳＨメモリ、磁気または光データ記憶媒体、および同様のもののようなメモリまたはデータ記憶媒体を備えうる。本技法は加えて、または代替として、伝搬される信号または波のような、命令またはデータ構造の形態でプログラムコードを搬送または通信し、且つコンピュータによってアクセス、読取、および／または実行されることができるコンピュータ可読通信媒体によって少なくとも部分的に実現されうる。
【０２７４】
[0278]プログラムコードは、プロセッサによって実行されえ、それは、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、あるいは他の同等の集積回路またはディスクリートロジック回路のような１つまたは複数のプロセッサを含みうる。そのようなプロセッサは、この開示において説明された技法のうちの任意のものを実行するように構成されうる。汎用プロセッサは、マイクロプロセッサでありうるが、代替では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでありうる。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連携した１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成としてインプリメントされうる。それ故に、「プロセッサ」という用語は、ここに使用される場合、前述の構造のうちの任意のもの、前述の構造の任意の組み合わせ、あるいはここに説明された技法のインプリメンテーションに適した任意の他の構造または装置を指しうる。加えて、いくつかの態様では、ここに説明された機能は、符号化および復号のために構成された専用ソフトウェアモジュールまたはハードウェアモジュール内で提供されうるか、あるいは組み合わされたビデオ符号化器−復号器（ＣＯＤＥＣ）中に組み込まれうる。
【図１】
2019534622.tif 000017
【図２Ａ】
2019534622.tif 000018
【図２Ｂ】
2019534622.tif 000019
【図３Ａ】
2019534622.tif 000020
【図３Ｂ】
2019534622.tif 000021
【図４】
2019534622.tif 000022
【図５】
2019534622.tif 000023
【図６】
2019534622.tif 000024
【図７】
2019534622.tif 000025
【図８】
2019534622.tif 000026
【図９】
2019534622.tif 000027
【図１０】
2019534622.tif 000028
【図１１】
2019534622.tif 000029
【図１２】
2019534622.tif 000030
【図１３】
2019534622.tif 000031
【図１４】
2019534622.tif 000032
【図１５Ａ】
2019534622.tif 000033
【図１５Ｂ】
2019534622.tif 000034
【図１６】
2019534622.tif 000035
【図１７】
2019534622.tif 000036
【図１８】
2019534622.tif 000037
【図１９】
2019534622.tif 000038
【図２０】
2019534622.tif 000039
【国際調査報告】
2019534622.tif 000040
2019534622.tif 000041