(57)【要約】  特定の実装形態において、ビデオ復号器が現在のブロックについてビットストリームから復号される初期動きベクトル予測因子を精緻化させることができる。シグナリングのオーバヘッドを減らすために、復号器は既に利用可能な情報に基づいて、例えば動きフィールドが現在のブロックの周りで均一かどうかや隣接ブロック内に一定レベルのテクスチャネスがあるかどうかに基づいて動き精緻化を使用するかどうかを決定することができる。ビットストリーム内で明確なシグナリングを受信することなしに動き精緻化を自動的に活性化し又は非活性化するために、ビットストリームから復号される動きベクトル差を使用することができる。例えば動きベクトル差が或る閾値を下回る場合は動き精緻化を自動的に活性化し、動きベクトル差が別の閾値を上回る場合は動き精緻化を自動的に非活性化する。対応するビデオ符号器が、符号器の決定に基づいて動き精緻化を使用するかどうか及びシグナリングするかどうかを決めることができる。
2019519998.tif 000002
【特許請求の範囲】
【請求項１】
ビデオの現在のブロックに関する動きベクトル予測因子及び動きベクトル差にアクセスすること（１１１０）であって、前記動きベクトル予測因子は第１の動き分解能に関連する、アクセスすること、及び
前記動きベクトル差に基づいて前記動きベクトル予測因子を精緻化するかどうかを判定すること（１１２５、１１３０）を含む、ビデオを復号するための方法（１１００）であって、
前記動きベクトル予測因子を精緻化すること（１１７０）が、
動き探索に基づいて精緻化された動きベクトル予測因子を形成することであって、前記精緻化された動きベクトル予測因子は第２の動き分解能に関連し、前記第２の動き分解能は前記第１の動き分解能よりも高い、形成すること、及び
前記精緻化された動きベクトル予測因子及び前記動きベクトル差に基づいて前記現在のブロックに関する動きベクトルを形成すること（１１７０）であって、前記現在のブロックは前記形成される動きベクトルに基づいて復号される、形成すること（１１７０）
を含む、方法（１１００）。
【請求項２】
少なくとも１つのメモリと１個又は複数個のプロセッサとを含む機器（１４００）であって、前記１個又は複数個のプロセッサが、
ビデオの現在のブロックに関する動きベクトル予測因子及び動きベクトル差にアクセスすることであって、前記動きベクトル予測因子は第１の動き分解能に関連する、アクセスすること、及び
前記動きベクトル差に基づいて前記動きベクトル予測因子を精緻化するかどうかを判定すること
を行うように構成され、
動き探索に基づいて精緻化された動きベクトル予測因子を形成することであって、前記精緻化された動きベクトル予測因子は第２の動き分解能に関連し、前記第２の動き分解能は前記第１の動き分解能よりも高い、形成すること、及び
前記精緻化された動きベクトル予測因子及び前記動きベクトル差に基づいて前記現在のブロックに関する動きベクトルを形成することであって、前記現在のブロックは前記形成される動きベクトルに基づいて復号される、形成すること
を行うことによって前記動きベクトル予測因子を精緻化するように前記１個又は複数個のプロセッサが構成された、
機器（１４００）。
【請求項３】
前記動きベクトル差の大きさが第１の閾値を下回る場合は前記動きベクトル予測因子を精緻化すると判定する、請求項１に記載の方法又は請求項２に記載の機器。
【請求項４】
前記動きベクトル差の大きさが第２の閾値を上回る場合は前記動きベクトル予測因子を精緻化しないと判定し、前記動きベクトル予測因子及び前記動きベクトル差に基づいて前記現在のブロックを復号することを更に含む、請求項１若しくは３に記載の方法又は請求項２若しくは３に記載の機器。
【請求項５】
前記動きベクトル差の大きさが第１の閾値を上回る場合、ビットストリームからフラグを復号することを更に含み、前記動きベクトル予測因子を精緻化するかどうかは前記復号されるフラグに基づく、請求項１及び３乃至４の何れか一項に記載の方法又は請求項２乃至４の何れか一項に記載の機器。
【請求項６】
隣接する復号済みブロックの少なくとも１つの動きベクトルにアクセスすることであって、前記現在のブロックに関する前記動きベクトル予測因子と前記少なくとも１つの動きベクトルとの差が第３の閾値を下回る場合は前記動きベクトル予測因子を精緻化すると判定する、アクセスすること
を更に含む、請求項１及び３乃至５の何れか一項に記載の方法又はそれを行うように前記１個又は複数個のプロセッサが更に構成された、請求項２乃至５の何れか一項に記載の機器。
【請求項７】
隣接する復号済みブロックの複数のピクセルにアクセスすることであって、前記複数のピクセルのテクスチャレベルが第４の閾値を上回る場合は前記動きベクトル予測因子を精緻化すると判定する、アクセスすること
を更に含む、請求項１及び３乃至６の何れか一項に記載の方法又はそれを行うように前記１個又は複数個のプロセッサが更に構成された、請求項２乃至６の何れか一項に記載の機器。
【請求項８】
ビデオを符号化するための方法（１２００）であって、
動きベクトル予測因子にアクセスすること（１２２０）であって、前記動きベクトル予測因子は第１の動き分解能に関連する、アクセスすること（１２２０）、
前記動きベクトル予測因子に対応する動きベクトル差を決定すること（１２２５）、
前記動きベクトル予測因子を精緻化するかどうかを判定すること（１２２５）であって、前記精緻化は第２の動き分解能に関連し、前記第２の動き分解能は前記第１の動き分解能よりも高い、判定すること（１２２５）、
前記決定した動きベクトル差に基づき、前記動きベクトル予測因子の前記精緻化を明確にシグナリングするかどうかを判定すること（１２８０、１２６０、１２６５）、及び
前記動きベクトル差を符号化すること（１２９０）
を含む、方法（１２００）。
【請求項９】
少なくとも１つのメモリと１個又は複数個のプロセッサとを含む機器（１４００）であって、前記１個又は複数個のプロセッサが、
動きベクトル予測因子にアクセスすることであって、前記動きベクトル予測因子は第１の動き分解能に関連する、アクセスすること、
前記動きベクトル予測因子に対応する動きベクトル差を決定すること、
前記動きベクトル予測因子を精緻化するかどうかを判定することであって、前記精緻化は第２の動き分解能に関連し、前記第２の動き分解能は前記第１の動き分解能よりも高い、判定すること、
前記決定した動きベクトル差に基づき、前記動きベクトル予測因子の前記精緻化を明確にシグナリングするかどうかを判定すること、及び
前記動きベクトル差を符号化すること
を行うように構成された、機器（１４００）。
【請求項１０】
前記動きベクトル差の大きさが第１の閾値を下回る場合は前記動きベクトル予測因子の前記精緻化を明確にシグナリングしない、請求項８に記載の方法又は請求項９に記載の機器。
【請求項１１】
前記動きベクトル差の大きさが第２の閾値を上回る場合、前記動きベクトル予測因子の前記精緻化を明確なシグナリングなしに非活性化する、請求項８若しくは１０に記載の方法又は請求項９若しくは１０に記載の機器。
【請求項１２】
前記動きベクトル差の大きさが第１の閾値を上回る場合、前記動きベクトル予測因子を精緻化するかどうかを明確にシグナリングするためにビットストリーム内にフラグを符号化することを更に含む、請求項８及び１０乃至１１の何れか一項に記載の方法又は請求項９乃至１１の何れか一項に記載の機器。
【請求項１３】
隣接する再構築済みブロックの少なくとも１つの動きベクトルにアクセスすることであって、前記現在のブロックに関する前記動きベクトル予測因子と前記少なくとも１つの動きベクトルとの差が第３の閾値を下回る場合は前記動きベクトル予測因子を精緻化すると判定する、アクセスすること
を更に含む、請求項８及び１０乃至１２の何れか一項に記載の方法又はそれを行うように前記１個又は複数個のプロセッサが更に構成された、請求項９乃至１２の何れか一項に記載の機器。
【請求項１４】
隣接する再構築済みブロックの複数のピクセルにアクセスすることであって、前記複数のピクセルのテクスチャレベルが第４の閾値を上回る場合は前記動きベクトル予測因子を精緻化すると判定する、アクセスすること
を更に含む、請求項８及び１０乃至１３の何れか一項に記載の方法又はそれを行うように前記１個又は複数個のプロセッサが更に構成された、請求項９乃至１３の何れか一項に記載の機器。
【請求項１５】
請求項１、３乃至８、及び１０乃至１４の何れか一項に記載の方法を実装するための命令を記憶している、非一時的コンピュータ可読記憶媒体。
【請求項１６】
請求項８及び１０乃至１４の何れか一項に記載の方法によって生成される、ビットストリーム。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本原理は、一般にビデオの符号化及び復号のための方法及び機器に関し、より詳細には、動き情報の精緻化（refinement）を伴うビデオの符号化及び復号のための方法及び機器に関する。
【背景技術】
【０００２】
背景
高い圧縮効率を実現するために、画像及びビデオのコード化方式は通常、予測及び変換を使用してビデオコンテンツ内の空間的及び時間的な冗長性を活用する。概して、フレーム内の又はフレーム間の相関を利用するためにイントラ予測又はインター予測が使用され、その後、予測誤差又は予測残差として示されることが多い元の画像と予測画像との差が変換され、量子化され、エントロピー符号化される。ビデオを再構築するために、その予測、変換、量子化、及びエントロピー符号化に対応する逆のプロセスによって圧縮データが復号される。
【発明の概要】
【０００３】
概要
全般的な態様によれば、ビデオの現在のブロックに関する初期動きベクトル予測因子にアクセスすることであって、初期動きベクトル予測因子は第１の動き分解能に関連する、アクセスすること、動きベクトル差に基づいて初期動きベクトル予測因子を精緻化する（refine）かどうかを判定すること、及び初期動きベクトル予測因子を精緻化させると判定する場合、動き探索に基づいて初期動きベクトル予測因子を精緻化し、精緻化された動きベクトル予測因子を形成し、精緻化された動きベクトル予測因子に基づいて現在のブロックを復号することであって、精緻化された動きベクトル予測因子は第２の動き分解能に関連し、第２の動き分解能は第１の動き分解能よりも高い、復号することを含む、ビデオを復号するための方法が提示される。
【０００４】
動きベクトル差の大きさが第１の閾値を下回る場合、初期動きベクトル予測因子を精緻化すると判定することができる。動きベクトル差の大きさが第２の閾値を上回る場合、初期動きベクトル予測因子を精緻化しないと判定することができ、現在のブロックは初期動きベクトル予測因子に基づいて復号される。ここでは、動き精緻化の活性化又は非活性化が明確なシグナリングなしに自動的に行われる。
【０００５】
動きベクトル差の大きさが第１の閾値を上回るが第２の閾値は上回らない場合はビットストリームからフラグを復号することができ、初期動きベクトル予測因子を精緻化するかどうかは復号したフラグに基づく。
【０００６】
動き精緻化を行うかどうかを判定するために隣接する復号済みブロックの動きベクトルを使用することもできる。例えば、現在のブロックに関する初期動きベクトル予測因子と隣接する復号済みブロックの少なくとも１つの動きベクトルとの差が第３の閾値を下回る場合、初期動きベクトル予測因子を精緻化すると判定する。加えてテクスチャレベルも使用することができる。例えば隣接する復号済みブロックの複数のピクセルのテクスチャレベルが第４の閾値を上回る場合、初期動きベクトル予測因子を精緻化すると判定する。
【０００７】
別の全般的な態様によれば、初期動きベクトル予測因子にアクセスすることであって、初期動きベクトル予測因子は第１の動き分解能に関連する、アクセスすること、初期動きベクトル予測因子に対応する動きベクトル差に基づいて初期動きベクトル予測因子の精緻化を明確にシグナリングするかどうかを判定することであって、精緻化は第２の動き分解能に関連し、第２の動き分解能は第１の動き分解能よりも高い、判定すること、及び動きベクトル差を符号化することを含む、ビデオを符号化するための方法が提示される。
【０００８】
動きベクトル差の大きさが第１の閾値を下回るが第２の閾値は下回らない場合、初期動きベクトル予測因子の精緻化は明確にシグナリングされない。動きベクトル差の大きさが第２の閾値を上回る場合、明確にシグナリングすることなしに初期動きベクトル予測因子の精緻化が非活性化される。
【０００９】
動きベクトル差の大きさが第１の閾値を上回る場合、初期動きベクトル予測因子を精緻化するかどうかを明確にシグナリングするためにビットストリーム内にフラグが符号化される。
【００１０】
動き精緻化を行うかどうかを判定するために隣接する再構築済みブロックの動きベクトルを使用することもできる。例えば、現在のブロックに関する初期動きベクトル予測因子と隣接する再構築済みブロックの少なくとも１つの動きベクトルとの差が第３の閾値を下回る場合、初期動きベクトル予測因子を精緻化すると判定する。加えてテクスチャレベルも使用することができる。例えば複数のピクセルのテクスチャレベルが第４の閾値を上回る場合、初期動きベクトル予測因子を精緻化すると判定する。
【００１１】
本明細書の実施形態はこれらの方法を実行するための機器も提供する。
【００１２】
本明細書の実施形態は、上記の方法の何れかを実行するための命令を記憶している非一時的コンピュータ可読記憶媒体も提供する。
【００１３】
本明細書の実施形態は上記の方法に従って生成されるビットストリームも提供する。
【図面の簡単な説明】
【００１４】
図面の簡単な説明
【図１】例示的なＨＥＶＣ（High Efficiency Video Coding）符号器を示す。
【図２Ａ】現在のブロックに関する５個の空間的候補｛ａ１、ｂ１、ｂ０、ａ０、ｂ２｝の位置を示す図形による例である。
【図２Ｂ】ＡＭＶＰ（高度動きベクトル予測）を使用する例示的な動きベクトル表現を示す図形による例である。
【図２Ｃ】動き補償予測を示す図形による例である。
【図３】例示的なＨＥＶＣビデオ復号器のブロック図を示す。
【図４】本原理の一実施形態による、復号器において動きベクトルの精緻化を行うための例示的方法を示す。
【図５】整数のピクセル、２分の１のピクセル、４分の１のピクセル、及び８分の１のピクセルのピクセル位置を示す図形による例である。
【図６Ａ】復号される例示的なＰＵを示す。
【図６Ｂ】不連続性を測定するためのＬ字型の１組の隣接する再構築済みサンプル及びＬ字型の１組の予測サンプルを示す図形による例である。
【図７Ａ】局所勾配を示す図形による例である。
【図７Ｂ】勾配の二次モーメントを示す図形による例である。
【図８】本原理の一実施形態による、符号器において動きベクトルの精緻化を行うための例示的方法を示す。
【図９】本原理の一実施形態による、復号器において動きベクトル予測因子の精緻化を行うための例示的方法を示す。
【図１０】本原理の一実施形態による、符号器において動きベクトル予測因子の精緻化を行うための例示的方法を示す。
【図１１】本原理の一実施形態による、復号器における自動的な動き精緻化の活性化を用いて動きベクトル予測因子の精緻化を行うための例示的方法を示す。
【図１２】本原理の一実施形態による、符号器における自動的な動き精緻化の活性化を用いて動きベクトル予測因子の精緻化を行うための例示的方法を示す。
【図１３】本原理の一実施形態による、特定のＭＶＰについて適応動き精緻化を使用するかどうかを判定するための例示的方法を示す。
【図１４】本原理の例示的実施形態の様々な側面を実装することができる例示的システムのブロック図を示す。
【発明を実施するための形態】
【００１５】
詳細な説明
図１は、例示的なＨＥＶＣ（High Efficiency Video Coding）符号器１００を示す。１つ又は複数のピクチャを有するビデオシーケンスを符号化するためにピクチャが１つ又は複数のスライスに分割され、各スライスは１つ又は複数のスライスセグメントを含み得る。スライスセグメントは、コード化単位、予測単位、及び変換単位で構成される。
【００１６】
ＨＥＶＣ仕様は「ブロック」と「単位」とを区別し、「ブロック」はサンプルアレイ内の特定の領域（例えばルマ、Ｙ）を扱い、「単位」は全ての符号化済み色成分（Ｙ、Ｃｂ、Ｃｒ、又はモノクロ）、構文要素、及びブロックに関連する予測データ（例えば動きベクトル）のコロケーテッドブロックを含む。
【００１７】
コード化するために、構成可能なサイズを有する正方形のコード化ツリーブロック（ＣＴＢ）へとピクチャが分割され、１組の連続したコード化ツリーブロックがスライスへとグループ化される。コード化ツリー単位（ＣＴＵ）は符号化済みの色成分のＣＴＢを含む。ＣＴＢはコード化ブロック（ＣＢ）への４分木分割の根であり、コード化ブロックは１つ又は複数の予測ブロック（ＰＢ）へと分割され、変換ブロック（ＴＢ）への４分木分割の根を形成する。コード化ブロック、予測ブロック、及び変換ブロックに対応して、コード化単位（ＣＵ）は予測単位（ＰＵ）及び１組の木構造の変換単位（ＴＵ）を含み、ＰＵは全ての色成分に関する予測情報を含み、ＴＵは色成分ごとの残差コード化構文構造を含む。ルマ成分のＣＢ、ＰＢ、及びＴＢのサイズは対応するＣＵ、ＰＵ、及びＴＵに当てはまる。本願では、「ブロック」という用語はＣＴＵ、ＣＵ、ＰＵ、ＴＵ、ＣＢ、ＰＢ、及びＴＢの何れかを指すために使用され得る。加えて「ブロック」は、Ｈ．２６４／ＡＶＣ又は他のビデオコード化規格内で規定されるマクロブロック、パーティション、及びサブブロックを指すために、より広くは様々なサイズのデータのアレイを指すために使用することもできる。
【００１８】
例示的な符号器１００では、以下で説明するようにピクチャが符号器の要素によって符号化される。符号化されるピクチャはＣＵの単位で処理される。各ＣＵはイントラモード又はインターモードを使用して符号化される。ＣＵがイントラモードを使用して符号化される場合、符号器はイントラ予測（１６０）を行う。インターモードでは、動き推定（１７５）及び動き補償（１７０）が行われる。符号器は、ＣＵを符号化するためにイントラモード又はインターモードのどちらを使用するのかを決定し（１０５）、イントラ／インターの決定を予測モードフラグによって示す。元の画像ブロックから予測済みブロックを減算すること（１１０）によって予測残差を計算する。
【００１９】
イントラモードでのＣＵは、同じスライス内の再構築済みの隣接サンプルから予測される。ＨＥＶＣでは、ＤＣ、planar、及び３３個のangular予測モードを含む３５個のイントラ予測モードの組を利用することができる。現在のブロックに隣接する行及び列からイントラ予測の参照が再構築される。過去に再構築されたブロックからの使用可能なサンプルを使用し、この参照は水平方向及び垂直方向にブロックサイズの２倍に及ぶ。イントラ予測にangular予測モードが使用される場合、angular予測モードによって示される方向に沿って参照ピクセルを複製することができる。
【００２０】
現在のブロックに関する適用可能なルマイントラ予測モードは２つの異なる選択肢を使用してコード化することができる。適用可能なモードが３つの最確モード（ＭＰＭ）の構築リスト内に含まれる場合、モードはＭＰＭリスト内のインデックスによってシグナリングされる。さもなければ、モードはモードインデックスの固定長の２値化によってシグナリングされる。３つの最確モードは上の隣接ブロック及び左の隣接ブロックのイントラ予測モードから導出される。
【００２１】
インターＣＵでは、対応するコード化ブロックが１つ又は複数の予測ブロックに更に分割される。インター予測はＰＢレベルで行われ、対応するＰＵはインター予測がどのように行われるのかに関する情報を含む。
【００２２】
動き情報（即ち動きベクトル及び参照インデックス）は２つの方法、つまり「マージモード」及び「高度動きベクトル予測（ＡＭＶＰ）」によってシグナリングすることができる。
【００２３】
マージモードでは、ビデオ符号器又は復号器が既にコード化されたブロックに基づいて候補リストをアセンブルし、候補リスト内の候補の１つに関するインデックスをビデオ符号器がシグナリングする。復号器側では、シグナリングされる候補に基づいて動きベクトル（ＭＶ）及び参照ピクチャインデックスが再構築される。
【００２４】
マージモード内の１組のあり得る候補は、空間的隣接候補、時間的候補、及び生成される候補で構成される。図２Ａは、現在のブロック２１０に関する５個の空間的候補｛ａ１、ｂ１、ｂ０、ａ０、ｂ２｝の位置を示す。候補位置ごとにａ１、ｂ１、ｂ０、ａ０、ｂ２の順に従って可用性を確認し、次いで候補の冗長性を除去する。
【００２５】
マージ候補の最大数Ｎはスライスヘッダ内で規定される。マージ候補の数がＮを上回る場合、最初のＮ−１個の空間的候補及び時間的候補だけを使用する。そうではなくマージ候補の数がＮを下回る場合、最大数Ｎまで候補の組を埋める。
【００２６】
ＡＭＶＰでは、ビデオ符号器又は復号器が既にコード化されたブロックから決定される動きベクトルに基づいて候補リストをアセンブルする。次いでビデオ符号器が、動きベクトル予測因子（ＭＶＰ）を識別するための候補リスト内のインデックスをシグナリングし、動きベクトル差（ＭＶＤ）をシグナリングする。復号器側で、動きベクトル（ＭＶ）がＭＶＰ＋ＭＶＤとして再構築される。
【００２７】
ＡＭＶＰでは空間的動き候補が２つしか選択されない。２つの組の中で示される探索順序を保ちながら、第１の空間的動き候補が左の位置｛ａ０、ａ１｝から選択され、第２の空間的動き候補が上の位置｛ｂ０、ｂ１、ｂ２｝から選択される。動きベクトル予測因子の数が２に等しくない場合、時間的なＭＶ予測候補が含まれ得る。時間的候補を入手できない場合、ゼロ動きベクトルを使用して候補の組を埋める。
【００２８】
図２Ｂは、ＡＭＶＰを使用する例示的な動きベクトル表現を示す。符号化される現在のブロック（２４０）に関して、動き推定によって動きベクトル（ＭＶｃｕｒｒｅｎｔ）を得ることができる。左のブロック（２３０）からの動きベクトル（ＭＶｌｅｆｔ）及び上のブロック（２２０）からの動きベクトル（ＭＶａｂｏｖｅ）を使用し、動きベクトル予測因子をＭＶＰｃｕｒｒｅｎｔとして選択することができる。次いで、動きベクトル差をＭＶＤｃｕｒｒｅｎｔ＝ＭＶｃｕｒｒｅｎｔ−ＭＶＰｃｕｒｒｅｎｔとして計算することができる。
【００２９】
ＨＥＶＣでは、動き補償のための動き情報の精度はルマ成分では４分の１サンプル（４分の１ｐｅｌ又は１／４ｐｅｌとも呼ばれる）であり、クロマ成分では８分の１サンプル（１／８ｐｅｌとも呼ばれる）である。分数サンプルピクセル位置を補間するために７タップ又は８タップ補間フィルタが使用され、即ちルマに関して水平方向及び垂直方向の両方で最大ピクセル位置の１／４、１／２、及び３／４を扱うことができる。
【００３０】
次いで予測残差を変換し（１２５）、量子化する（１３０）。量子化した変換係数、並びに動きベクトル及び他の構文要素をエントロピー符号化して（１４５）ビットストリームを出力する。符号器は変換をスキップし、非変換残差信号に対して４ｘ４ＴＵベースで量子化を直接適用することもできる。符号器は変換及び量子化の両方をバイパスすることもでき、即ち変換プロセス又は量子化プロセスを適用することなしに残差が直接コード化される。直接のＰＣＭコード化では予測が適用されず、コード化単位サンプルがビットストリーム内に直接コード化される。
【００３１】
符号器は符号化済みブロックを復号して更なる予測のための参照を提供する。予測残差を復号するために量子化済みの変換係数を逆量子化し（１４０）、逆変換する（１５０）。復号済みの予測残差と予測済みブロックとを結合し（１５５）、画像ブロックを再構築する。例えばデブロッキング／ＳＡＯ（サンプル適応オフセット）フィルタリングを実行して濃淡のむらがあるアーティファクトを減らすために、再構築したピクチャにフィルタ（１６５）を適用する。フィルタ済みの画像を参照ピクチャバッファ（１８０）に記憶する。
【００３２】
図３は、例示的なＨＥＶＣビデオ復号器３００のブロック図を示す。例示的な復号器３００では、以下で説明するようにビットストリームが復号器の要素によって復号される。ビデオ復号器３００は、ビデオデータを符号化する一環としてビデオの復号を行う、図１に示した符号化経路と逆の復号経路を概して実行する。
【００３３】
具体的には、復号器の入力はビデオ符号器１００によって生成され得るビデオビットストリームを含む。変換係数、動きベクトル、及び他のコード化情報を得るためにこのビットストリームを最初にエントロピー復号する（３３０）。予測残差を復号するために変換係数を逆量子化し（３４０）、逆変換する（３５０）。復号した予測残差と予測済みブロックとを結合し（３５５）、画像ブロックを再構築する。予測済みブロックはイントラ予測（３６０）又は動き補償予測（即ちインター予測）（３７５）から得ることができる（３７０）。上記のように、参照ブロックのサブ整数ピクセルのための補間値を計算するために補間フィルタを使用する場合がある動き補償のための動きベクトルを導出するために、ＡＭＶＰ及びマージモード技法が使用され得る。再構築した画像にフィルタ（３６５）を適用する。フィルタ済みの画像を参照ピクチャバッファ（３８０）に記憶する。
【００３４】
ビデオ圧縮では、インター予測モードは、過去に再構築され／復号されたピクチャからの少なくとも１つの動き補償ブロックを使用して１つのブロック（例えば予測単位）を予測することを可能にする。例えば図２Ｃに示すように、現在のブロック（２５５）がインター予測モードを使用して符号化され、ブロック２２５及び２４５は参照ピクチャ内のコロケーテッドブロックであり、ブロック２１５及び２３５は動き補償予測に使用されるブロックである。復号器において少なくとも１つの動きベクトル（ＭＶ、例えばｍｖ０）を再構築できるようにするために、復号済みピクチャバッファ（ＤＰＢ）内の再構築済みピクチャを識別する少なくとも１つの参照インデックス（例えばｒｅｆＩｄｘ０）及び１つの動き情報（動きベクトル差、ＭＶＤ）を符号化する。双方向予測を使用する場合、動きベクトル（例えばｍｖ０およびｍｖ１）を再構築するために追加参照インデックス（例えばｒｅｆＩｄｘ１）及び動き情報を符号化する。一部の事例では、過去に復号されたデータから動きベクトルを推論することができる（例えばＨＥＶＣのマージモード）。
【００３５】
ＭＶ値の再構築は次式：
ＭＶＸ＝ＭＶＰＸ＋ＭＶＤＸ、ＭＶＹ＝ＭＶＰＹ＋ＭＶＤＹ  （１）
のように行うことができ、但しＭＶＸ及びＭＶＹはそれぞれ水平の及び垂直の動きベクトル成分であり、ＭＶＰ（ＭＶＰＸ、ＭＶＰＹ）は過去に再構築されたデータから構築される動きベクトル予測因子であり、ＭＶＤ（ＭＶＤＸ、ＭＶＤＹ）は符号化されビットストリーム内で伝送される動きベクトル差である。
【００３６】
ＭＶＤ値は通常、復号されるＭＶ値に対応する精度で符号化される。例えばＨＥＶＣは、動きベクトル分解能として４分の１ピクセル（即ち１／４ｐｅｌ）を使用する。
【００３７】
ＭＶ分解能を例えば１／４ｐｅｌから１／８ｐｅｌに高めることは予測を全般的に改善することができる。しかし低ビットレートでは、ＭＶＤデータのコード化がブロックごとに符号化される他のデータに対して相対的に高いビットレートコストを有し得る。従って、ＭＶ分解能に比例して全体的な圧縮効率が改善するとは限らない可能性がある。
【００３８】
圧縮効率を改善するために、適応動き分解能を使用すること、例えば動き分解能を整数ｐｅｌ又は１／４ｐｅｌの中から選択すること、または１／４ｐｅｌ及び１／６ｐｅｌの中から選択することに関する幾つかの既存の研究がある。しかし、ビットストリーム内で送信する必要がある追加のサイド情報が原因で、どの動きベクトル分解能を使用するのかを示すことは圧縮効率の低下を引き起こす可能性がある。
【００３９】
オーバヘッドを減らすために、「Conditional motion vector refinement for improved prediction」Picture Coding Symposium (PCS), 2012. IEEEと題されたLakshman, Haricharanらによる論文（以下「Lakshman」）は、如何なるブロックごとの明確なフォワードシグナリングもなしに４分の１サンプルＭＶ分解能と１／６サンプルＭＶ分解能との間でＭＶ分解能を推論するために符号器及び復号器の両方に知られている１組の規則を定める。高分解能のＭＶは、４分の１サンプル分解能からサンプルの６分の１まで動きベクトルの分解能を高める精緻化情報によって増強される規則的な４分の１サンプルＭＶとして伝送される。整数又は２分の１サンプル位置を示す再構築済みＭＶ成分は変えられないままにされる。４分の１又は４分の３の位置を示すＭＶ成分では、復号器は以下の条件を使用して精緻化の有無を推論する：
−Ｐスライスの場合、ＭＶ精緻化情報を常に送信する。
−双方向予測の場合、高テクスチャを含む参照ピクチャからのサンプルにアクセスする予測についてＭＶ精緻化を送信する。
−高テクスチャの参照ピクチャにアクセスしない双方向予測の場合、既定の参照ピクチャリストからのピクチャについてのみＭＶ精緻化を送信する。
−Ｂスライスにおける単一仮説予測ではＭＶ精緻化を使用しない。
【００４０】
「Further improvements to HMKTA-1.0」VCEG-AZ07, ITU-T/SG16 Video Coding Experts Group (VCEG) 52nd Meeting: 19-26 June 2015, Warsaw, Polandと題されたChen, Jianleらによる論文（以下「Chen」）は、高度動きベクトル分解能（ＡＭＶＲ）モードについて記載する。具体的には、ＰＵの動きベクトルと予測動きベクトルとの間のＭＶＤは４分の１ｐｅｌの分解能又は整数ｐｅｌの分解能でコード化することができる。ＭＶＤの分解能はコード化単位（ＣＵ）レベルで制御され、少なくとも１つの非ゼロＭＶＤ成分を有するＣＵごとに整数ＭＶＤ分解能フラグが条件付きでシグナリングされる。整数ＭＶＤ分解能フラグが偽の場合、又はＣＵについてコード化されない場合、ＣＵに属する全てのＰＵについて既定の４分の１ｐｅｌＭＶ分解能を使用する。さもなければ、ＣＵに属するＡＭＶＰモードでコード化される全てのＰＵが整数のＭＶ分解能を使用する一方、マージモードでコード化されるＰＵは引き続き４分の１ｐｅｌＭＶ分解能を使用する。ＰＵが整数のＭＶ分解能を使用する場合、４分の１ｐｅｌＭＶを整数ｐｅｌＭＶに丸めることによりＡＭＶＰ候補リストが整数のＭＶで埋められる。
【００４１】
本原理は、ビデオの符号化及び復号における動きベクトルの精緻化を対象とする。一実施形態では、第１の分解能のＭＶＤ（例えば１／４ｐｅｌ）がビットストリーム内で受信され、復号器がそのＭＶＤに基づいて初期動きベクトルを取得し、既に復号されている隣接サンプルを使用して初期動きベクトルを精緻化して第１の分解能よりも高い第２の動き分解能（例えば１／８ｐｅｌ）を得る。不一致を避けるために、動き情報の精緻化は符号器においても行われる。動き精緻化が符号器及び復号器の両方で行われるので、動き精緻化を指示するための追加情報がビットストリーム内で伝送されず、例えば１／４ｐｅｌから１／８ｐｅｌへの動きベクトルの精緻化を指示するための明確なシグナリングが使用されない。改変形態では、現在のブロックについてマージモードが使用され（即ちビットストリーム内でＭＶＤが受信されず）、第２の動き分解能を得るために（ことによると第１の分解能に丸められる）候補リスト内の動きベクトル予測因子が精緻化されるとき初期動きベクトルが得られる。
【００４２】
動き情報の精緻化は、符号器又は復号器における動き推定を使用して行われ得る。動き分解能の精緻化なしに第１の動き分解能（例えば１／４ｐｅｌ）を使用する手法と比較し、提案する実施形態は精緻化動き情報を伝送するオーバヘッドなしに動き精度を改善することができる。復号器における動き分解能の精緻化なしに第２の動き分解能（例えば１／８ｐｅｌ）を使用する手法と比較し、提案する実施形態は動き精緻化情報を伝送するオーバヘッドを減らすことができる。本原理による復号器は動き探索も行うことができ、従って動き探索を必要としない復号器よりも複雑であり得ることに留意すべきである。
【００４３】
図４は、本原理の一実施形態による、復号器において動きベクトルの精緻化を行うための例示的方法４００を示す。この例では、復号器が動きベクトル分解能を１／４ｐｅｌから１／８ｐｅｌに精緻化させることができると想定する。本原理は他の動き分解能間の精緻化、例えばこれだけに限定されないが整数ｐｅｌから１／４ｐｅｌへの精緻化、１／４ｐｅｌから１／６ｐｅｌへの精緻化に適用できることに留意すべきである。
【００４４】
復号されるブロックについて、復号器は例えば上記のようにビットストリーム内のフラグを使用して又は既存の方法を使用して適応動きベクトル分解能が有効にされているかどうかを確認する（４１０）。適応動きベクトル分解能が有効である場合、復号器は例えばＨＥＶＣのＡＭＶＰモードを使用してＭＶ予測因子（ＭＶＰ）を１／４ｐｅｌの分解能で生成する（４２０）。予測因子が１／８ｐｅｌの場合は１／４ｐｅｌに丸める。次いで復号器は１／４ｐｅｌの分解能でＭＶＤを復号する（４３０）。初期動きベクトルをＭＶ０＝ＭＶＰ＋ＭＶＤとして得ることができる（４４０）。次いで、初期動きベクトル（ＭＶ０）を１／８ｐｅｌの分解能に精緻化させ（４５０）、動き補償予測に使用することができる。
【００４５】
４２０で、ＭＶ予測因子を１／８ｐｅｌで生成することもできる。ＭＶ予測因子を１／４ｐｅｌで生成するのか１／８ｐｅｌで生成するのかは、符号器が何を使用したのかと一致すべきである。
【００４６】
動き補償予測ブロックのサンプルは、参照ピクチャインデックスによって識別される参照ピクチャ内の動きベクトルによって変位される位置における対応するブロックのものから得られる。動きベクトルが整数ではない場合、予測サンプルを生成するために分数サンプル補間を使用する。
【００４７】
ＨＥＶＣは１／４ｐｅｌにおける動きベクトルをサポートする。動きベクトルをＭＶ＝ｉＭＶ＋ｓＭＶとして表し、但しｉＭＶはＭＶの整数部分であり、ｓＭＶは１／４ｐｅｌ部分（第１の動き分解能）であり、ｓＭＶ＝ｐ／４、ｐ＝０、１、２、３とすると、補間サンプル値は
【数１】
2019519998.tif 000003
として計算することができ、但しｘはピクセル位置であり、ｃ［ｐ］［ｉ］、ｉ＝０，．．．，Ｎ−１はｐ／４ｐｅｌ位置に対応するフィルタ係数であり、Ｎはフィルタタップ数である。ＨＥＶＣにおける１／４ｐｅｌ補間のためのフィルタ係数は以下の通りである：
ｃ［ｐ＝０］［］＝｛０，０，０，６４，０，０，０，０｝、整数位置に対応しスケーリングだけがある
ｃ［ｐ＝１］［］＝｛−１，４，−１０，５８，１７，−５，１，０｝、１／４ｐｅｌ位置及び７タップフィルタに対応する
ｃ［ｐ＝２］［］＝｛−１，４，−１１，４０，４０，−１１，４，−１｝、１／２ｐｅｌ位置及び８タップフィルタに対応する
ｃ［ｐ＝３］［］＝｛０，１，−５，１７，５８，−１０，４，−１｝、１／４ｐｅｌ位置及び７タップフィルタに対応する
【００４８】
更に高分解能の１／８ｐｅｌを使用する場合、ｓＭＶ＝ｐ／８、ｐ＝０、１、２、３、４、５、６、７、８を含む１／８ｐｅｌ部分を補間するために１／８ｐｅｌ補間フィルタを使用する。例えば以下の１／８ｐｅｌ補間フィルタ（Ｎ＝４）を使用することができる：
ｃ［ｐ＝０］［］＝｛０，６４，０，０｝
ｃ［ｐ＝１］［］＝｛−２，５８，１０，−２｝
ｃ［ｐ＝２］［］＝｛−４，５４，１６，−２｝
ｃ［ｐ＝３］［］＝｛−６，４６，２８，−４｝
ｃ［ｐ＝４］［］＝｛−４，３６，３６，−４｝
ｃ［ｐ＝５］［］＝｛−４，２８，４６，−６｝
ｃ［ｐ＝６］［］＝｛−２，１６，５４，−４｝
ｃ［ｐ＝７］［］＝｛−２，１０，５８，−２｝
【００４９】
動き精緻化プロセスは、精緻化前の動き分解能に関係する範囲を有する動き推定と見なすことができる。例えば、１／４ｐｅｌの第１の分解能から１／８ｐｅｌの第２の分解能に動きベクトルを精緻化させる場合、動き探索の範囲は初期動きベクトルあたりの候補を含む。より広くは、動き精緻化のための探索候補は、水平方向及び垂直方向それぞれにＭＶＸ０−ΔＭＶＸ〜ＭＶＸ０＋ΔＭＶＸ、ＭＶＹ０−ΔＭＶＹ〜ＭＶＹ０＋ΔＭＶＹとすることができ、但しＭＶＸ０及びＭＶＹ０はそれぞれ初期動きベクトルＭＶ０の水平成分及び垂直成分であり、ΔＭＶＸ及びΔＭＶＹは水平方向及び垂直方向それぞれの探索範囲を定める。
【００５０】
例えば水平方向の精緻化候補は（ＭＶＸ０−ｋ×ｓｔｅｐ２、ＭＶＸ０＋ｋ×ｓｔｅｐ２とすることができ、但しｋは整数であり
−ｓｔｅｐ１＜（ｋ＊ｓｔｅｐ２）＜ｓｔｅｐ１  （３）
として定められ、ｓｔｅｐ１は第１の分解能であり、ｓｔｅｐ２は第２の分解能である。ｓｔｅｐ１＝１／４であり且つｓｔｅｐ２＝１／８である場合、−２＜ｋ＜２が成立する。図５は、整数のピクセル、２分の１のピクセル、４分の１のピクセル、及び８分の１のピクセルのピクセル位置を示す。表記を簡単にするために、それらの候補を動き精緻化候補と呼ぶ場合もあり、動き精緻化候補と共に動き補償によって構築される予測済みブロックを動き精緻化予測済みブロックとして示し、動き精緻化予測済みブロック内のサンプルを動き精緻化予測サンプルとして示す。
【００５１】
（ＭＶＸ０，ＭＶＹ０）が位置５１０に対応する場合、探索候補の例示的な組はボックス５２０内の位置を含む。探索範囲、より広くは１組の探索候補は図５に示すものと異なり得る。符号器及び復号器において同じ探索候補の組が使用されるべきである。
【００５２】
適応動きベクトル分解能が有効ではない場合、復号器は復号済みの動きベクトルに使用される動き分解能においてＭＶＰ及びＭＶＤを取得し、復号器における動き精緻化は行われない。図４に示すように、復号器はＭＶＰ及びＭＶＤの両方を１／８ｐｅｌの分解能で取得し（４６０、４７０）、ＭＶ＝ＭＶＰ＋ＭＶＤとして動きベクトルを１／８ｐｅｌの分解能で復号することができる（４８０）。改変形態では、復号器はＭＶＰ及びＭＶＤの両方を１／４ｐｅｌの分解能で取得し（４６０、４７０）、ＭＶ＝ＭＶＰ＋ＭＶＤとして動きベクトルを１／４ｐｅｌの分解能で復号することができる（４８０）。
【００５３】
以下、動きベクトルの精緻化（４５０）を行うために使用することができる幾つかの実施形態を更に詳細に説明する。
【００５４】
動きベクトルを復号器において精緻化させるために、ピクチャ信号が通常は平滑且つ連続的であるという特性を使用する。従って復号器側において、動きベクトルが正確である場合、復号済みブロックは典型的には隣接ブロックに対して連続的になるべきである。一実施形態では、再構築済みの隣接サンプルを使用してＭＶを精緻化させる。具体的には、動き精緻化候補と共に動き補償によって構築される予測済みブロックと過去に再構築されたサンプル、例えば図６Ａに示す上の隣接ブロック及び左の隣接ブロックのサンプルとの間の不連続性を測定することによって上記の１組の探索候補を評価する。
【００５５】
図６Ａは、復号される例示的なＰＵ（６５０）を示す。現在のＰＵの上の又は左の他のＰＵ（６１０、６２０、６３０、６４０）は既に復号されており、現在のＰＵを復号するために使用することができる。具体的には、現在のＰＵ（６５０）に関する動きベクトルを精緻化させるために隣接ブロック（６１０、６２０、６４０）内のＬ字型の１組の復号済みサンプル（６７０）を使用することができる。ＰＵは図６Ａに示すのと異なるサイズ又は形状でも良く、現在のＰＵに関する動きベクトルを精緻化させるために隣接する再構築済みサンプルの更に大きい又は小さい組を使用できることに留意すべきである。本願では、Ｌ字型の１組のサンプルを動き精緻化のために使用する。より広くは、動き精緻化のために様々な組のサンプルを使用することができ、精緻化はブロックに適用され得る。
【００５６】
一実施形態では、隣接ブロック内のＬ字型の１組の復号済みサンプル（「隣接するＬ字型」と呼ぶ）及び現在の予測ブロック内のＬ字型の１組のサンプル（６８０）に基づく不連続性を使用する。不連続性は、図６Ｂに示す再構築済みサンプル（ｎ）と最も近い動き精緻化予測サンプル（ｐ）とのＳＡＤ（Sum of Absolute Difference）として測定することができる。数学的に、精緻化された動きベクトル差は：
【数２】
2019519998.tif 000004
として計算することができ、但しｐは（ｘｐ，ｙｐ）における位置を有するＰＵのＬ字型の中の動き精緻化予測サンプルであり、Σｐ｜｜はＰＵのＬ字型の組にわたる合計であり、ＭＶ０＝ＭＶＰ＋ＭＶＤは精緻化させる動きベクトルであり、ｎは（ｘｎ，ｙｎ）における位置を有するｐの隣のＬ字型の中の再構築済みサンプルであり（例えばｐがＰＵの左の境界に属する場合はｘｎ＝ｘｐ−１、ｙｎ＝ｙｐであり、ｐがＰＵの上の境界に属する場合はｘｎ＝ｘｐ、ｙｎ＝ｙｐ−１であり）、Ｉｒｅｃ（ｎ）は現在のピクチャの再構築済み（又は復号済み）サンプル値であり、Ｉｒｅｆ（ｐ＋ＭＶＰ＋ＭＶＤ＋ＭＶＤｒｅｆｉｎｅ）はＭＶＤｒｅｆｉｎｅｄが選択される場合の動き補償予測値である。
【００５７】
改変形態では、残差と動き補償予測ブロックとの和を検討し、Ｉｒｅｆ（ｐ＋ＭＶ０＋ＭＶＤｒｅｆｉｎｅ）＋Ｒｅｓ（ｐ）はＭＶＤｒｅｆｉｎｅが選択される場合のサンプルｐの再構築済みの値になる。すると精緻化された動きベクトル差を：
【数３】
2019519998.tif 000005
として計算することができ、但しＲｅｓ（ｐ）はサンプルｐにおける残差である。
【００５８】
本原理による動きベクトルの精緻化を含むようにＨＥＶＣ復号器が修正される場合、ＭＶ０はＡＭＶＰではＭＶＤ＋ＭＶＰに又はマージモードでは候補リスト内でシグナリングされるものに設定することができ、ＭＶＤ及びＭＶＰはＨＥＶＣで規定されるように得られる。概して、ＭＶ０は復号器における動き探索を行うことなしに復号器が得た動きベクトルである。
【００５９】
動き精緻化は、初期動きベクトルあたりから選択されるより高い動き分解能の１組の候補動きベクトルを伴う、復号器における動き探索と見なすことができる。最良の動きベクトルの選択は一定の基準、例えば等式（４）又は（５）に記載の不連続性の測度を最小化するものであり得る。つまり、初期動きベクトルＭＶ０を得た後、初期動きベクトルを精緻化させるために動き探索を更に行う。初期動きベクトルあたりのごく少数の探索候補の組しか確認する必要がないので、復号器内の追加の複雑さは通常少ない。
【００６０】
数学的に、導出される精緻化されたＭＶは：
【数４】
2019519998.tif 000006
として表すことができる。次いで、例えば上記のように補間フィルタを使用しＰＵを復号するための予測ブロックとして参照ピクチャ内の精緻化されたＭＶに対応するブロックを使用する。典型的には、動き精緻化は符号器が低分解能でＭＶＤを符号化することを可能にし、従って最大分解能でＭＶＤを符号化することと比較して動き情報を符号化するコストを減らす一方、復号器は依然として最大分解能でＭＶを回復することができる。
【００６１】
本願では、様々な実施形態で差の測度としてＳＡＤを使用する。それ以外の差の測度、例えばこれだけに限定されないが誤差平方和（ＳＳＥ）をＳＡＤの代わりに使用しても良いことに留意すべきである。
【００６２】
別の実施形態では、隣接ピクセルにおける勾配が通常は同様である特性を使用し、不連続性を測定するために位置（ｎ）及び（ｐ）における局所勾配を計算する。信号（即ちピクチャサンプル）が空間的に固定されていると仮定し、線形項に切り捨てされたテイラー級数として信号を局所的にモデリングすることができ：
Ｉ（ｘ＋ｄ）＝Ｉ（ｘ）＋ｇ（ｘ）．ｄ  （７）
但しＩ（ｘ）は位置ｘにおけるピクチャサンプル値であり、ｇは局所勾配と共に推定される２ｘ２行列である。
【００６３】
等式（７）を使用し、隣接する再構築済みサンプルＲ（ｘ）と動き精緻化予測ブロックＰ（ｘ）との間の関係は：
Ｒ（ｎ）＝Ｐ（ｐ）＋ｇ（ｐ）．（ｎ−ｐ）  （８）
になり、Ｐ（ｐ）＝Ｉｒｅｆ（ｐ＋ＭＶ０＋ＭＶＤｒｅｆｉｎｅ）であり、Ｒ（ｎ）＝Ｉｒｅｃ（ｎ）である。改変形態では、Ｐ（ｐ）を計算する際に残差を含めることができる。位置ｐ＝（ｘｐ，ｙｐ）における局所勾配は図７Ａに示すように表すことができる：
Ｇ１１（ｐ）＝Ｒ（ｎ）−Ｐ（ｐ）、但しｎ＝（ｘｐ−１，ｙｐ−１）
Ｇ１２（ｐ）＝Ｒ（ｎ）−Ｐ（ｐ）、但しｎ＝（ｘｐ−１，ｙｐ）
Ｇ１３（ｐ）＝Ｒ（ｎ）−Ｐ（ｐ）、但しｎ＝（ｘｐ−１，ｙｐ＋１）
【００６４】
次いで、不連続性を計算するために局所勾配の絶対値の和を使用することができ、不連続性を最小化する動きベクトルの精緻化が選ばれる：
【数５】
2019519998.tif 000007
【００６５】
位置ｐ＝（ｘｐ，ｙｐ）における二次モーメントを図７Ｂに示すように表すことができる（ｎ及びｐがＬ字型の垂直方向の左の境界に位置する場合）：
Ｇ２１（ｐ）＝Ｒ（ｎ２）−Ｒ（ｎ）−Ｇ１１、但しｎ＝（ｘｐ−１，ｙｐ−１）及びｎ２＝（ｘｐ−２，ｙｐ−２）
Ｇ２２（ｐ）＝Ｒ（ｎ２）−Ｒ（ｎ）−Ｇ１２、但しｎ＝（ｘｐ−１，ｙｐ）及びｎ２＝（ｘｐ−２，ｙｐ）
Ｇ２３（ｐ）＝Ｒ（ｎ２）−Ｒ（ｎ）−Ｇ１３、但しｎ＝（ｘｐ−１，ｙｐ＋１）及びｎ２＝（ｘｐ−２，ｙｐ＋２）
Ｇ２４（ｐ）＝Ｒ（ｎ２）−Ｒ（ｎ）−Ｐ（ｐ）＋Ｐ（ｐ２）、但しｎ＝（ｘｐ−１，ｙｐ）、ｎ２＝（ｘｐ−１，ｙｐ＋１）、及びｐ２＝（ｘｐ，ｙｐ＋１）
サンプルｐがＰＵの上の境界にある場合も勾配を同様に導出することができる。左上角では、サンプルｐは左の境界若しくは上の境界にあるものとして処理することができ、又は２回（境界として１回、上方として１回）処理することができる。
【００６６】
次いで、不連続性を計算するために勾配の二次モーメントの絶対値の和を使用することができ、不連続性を最小化する動きベクトルの精緻化が選ばれる：
【数６】
2019519998.tif 000008
【００６７】
不連続性は、局所勾配及び二次モーメントの絶対値の和としても計算することができる：
【数７】
2019519998.tif 000009
本原理は他の形式の勾配計算にも適用できることに留意すべきである。
【００６８】
図８は、本原理の一実施形態による、符号器において動きベクトルの精緻化を行うための例示的方法８００を示す。方法８００の出力は方法４００への入力ビットストリームとして使用することができる。初期設定ステップ（８０５）で、符号器は符号化されるビデオシーケンスに入力としてアクセスすることができる。加えて、符号器はパラメータを初期値に設定する、例えばＢｅｓｔ＿ｆｌａｇ＝１に設定し、Ｂｅｓｔ＿ＲＤｃｏｓｔを大きい値に設定することができる。
【００６９】
動き推定（８１０）を１／８の分解能で実行して動きベクトル（ＭＶ）を得る。次いで符号器は、適応動き精緻化を使用して動きベクトルを符号化した方が効率的かどうかを確認する。ステップ８２０〜８４０で、符号器は例えばＲＤ（レート歪み）コストを使用して動き精緻化ありのＭＶ符号化コストを確認する。ステップ８４５〜８７５で、符号器は動き精緻化なしのＭＶ符号化コストを確認する。次いで最終的なＭＶ（Ｂｅｓｔ＿ＭＶ）に基づいて動き補償を実行し、残差を計算することができる（８８５）。残差、最終的なＭＶＤ（Ｂｅｓｔ＿ＭＶＤ）、及び適応動き精緻化フラグ（Ｂｅｓｔ＿ｆｌａｇ）をビットストリーム内に符号化する（８９０）。
【００７０】
より具体的には、ステップ８１５で、対応する復号器が動きベクトル予測因子のリストをどのように構築するのかと一致して、例えばＡＭＶＰからの動きベクトル予測因子の候補リスト、１／８ｐｅｌの初期動きベクトル予測因子の丸められたバージョン、又は隣接する動きベクトルの平均を使用し、動きベクトル予測因子のリストを１／４ｐｅｌの分解能で構築する。分解能を下げることは動きベクトル予測因子をより「相関性がある」ものにし（即ち予測する動きベクトルを正確に予測することができ、そのため動きベクトル予測因子を示すためにインデックスだけを伝送することができる）、動き精緻化が高分解能の部分（即ちより「相関性がない」部分）を得ることを可能にし得る。一部の事例では、ＭＶＰリストがＭＶＰを１つしか含まない場合がある。ＭＶＰリスト内のＭＶＰごとに、動きベクトル差（ＭＶＤ）をＭＶＤ＝ＭＶ−ＭＶＰとして計算し（８２０）、初期動きベクトルをＭＶ０＝ＭＶＰ＋ＭＶＤとして計算することができる。
【００７１】
改変形態では、ステップ８１５で動きベクトル予測因子の候補リストを１／８ｐｅｌの分解能で構築することができ、ステップ８２０で、動きベクトル差ＭＶＤを１／４ｐｅｌに丸める。ＭＶＰ又はＭＶＤに適用される丸めにより、ＭＶ０はＭＶと異なり得ることに留意されたい。
【００７２】
精緻化を行い（８２５）、ＭＶＤｒｅｆｉｎｅを例えば等式（４）又は（５）に記載したように取得し、精緻化された動きベクトルをＭＶ＊＝ＭＶ０＋ＭＶＤｒｅｆｉｎｅとして得る。次いで、ＭＶ＊に基づいて残差を計算することができる（８２７）。ステップ８３０で、ＲＤ（レート歪み）コストを使用して調節済みの動きベクトル（ＭＶ＊）の符号化コストを推定することができる。ステップ８３５で、現在の調節済みの動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有するかどうかを符号器が確認する。現在の調節済みの動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有する場合、パラメータＢｅｓｔ＿ＲＤｃｏｓｔ、Ｂｅｓｔ＿ＭＶ、Ｂｅｓｔ＿ＭＶＤを現在のＲＤコスト、現在の調節済みの動きベクトル、及び現在のＭＶＤに設定し、他の幾らかの関連する符号化情報も記憶することができる。
【００７３】
ステップ８４５で、例えばＡＭＶＰからの動きベクトル予測因子の候補リストを使用して動きベクトル予測因子のリストを１／８ｐｅｌの分解能で構築する。ステップ８４５は、符号器が動き分解能を１／４ｐｅｌに調節しないことを除いてステップ８１５と同様である。ＭＶＰリスト内のＭＶＰごとに、１／８ｐｅｌの分解能におけるＭＶＰに基づいてＭＶＤを計算する（８５０）。動きベクトルＭＶ１＝ＭＶＰ＋ＭＶＤについて残差を計算することができ（８５２）、ステップ８５５で、ＲＤコストを使用して動きベクトルＭＶ１の符号化コストを推定することができる。ステップ８６５で、現在の動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有するかどうかを符号器が確認する。現在の動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有する場合、パラメータＢｅｓｔ＿ＲＤｃｏｓｔ、Ｂｅｓｔ＿ＭＶ、及びＢｅｓｔ＿ＭＶＤを現在のＲＤコスト、現在の動きベクトル、及び現在のＭＶＤに設定し、適応動き精緻化フラグを偽（０）に設定する。他の関連する符号化情報も記憶することができる。
【００７４】
ＭＶＤが０の場合、例えばマージモードが使用される場合、ステップ８２０及び８５０が不要であり、ステップ８４０及び８７５においてＢｅｓｔ＿ＭＶＤを計算する必要がなく、ステップ８９０でＢｅｓｔ＿ＭＶＤを符号化する必要がない。
【００７５】
動き精緻化は動きベクトル予測因子に対応する全ての動きベクトルに適用することができ、又はサブセットに適用することができる。例えば動き精緻化は、ＡＭＶＰの動きベクトル予測因子にだけ使用され、又はマージモードにだけ使用される。
【００７６】
方法８００では、符号器が符号化コストに基づいて適応動き精緻化を使用するかどうかを決定し、ビットストリーム内のフラグによって選択をシグナリングする。例えば以下で更に説明するように又はLakshman及びChenの中で説明されているように、他の実施形態では、符号器が符号化コストを確認することなしにビデオ特性に基づいて適応動き精緻化を使用するかどうかを決定し得る。その結果、符号器は方法８００の一部（例えば動き精緻化ありの部分または動き精緻化なしの部分）だけを実行すれば良い場合がある。
【００７７】
方法８００に従って追加の構文要素Ｂｅｓｔ＿ｆｌａｇを送信する必要があり得ることに留意されたい。但し、Ｂｅｓｔ＿ｆｌａｇを送信することは１／８ｐｅｌの分解能においてＭＶＤを送信するよりも依然として効率的である場合があり、それは動きベクトルの高分解能部分が通常は無作為であり符号化するコストが高いからである。
【００７８】
動きベクトルを精緻化させることにより、動きベクトル差ＭＶＤが１／４ｐｅｌの動き分解能においてビットストリーム内で伝送される一方、符号器は１／８ｐｅｌの動き分解能に達することができる。従って、ＭＶＤは一層少ないビットが符号化されることを必要とし得る。例えば表１に示すように、動き推定（８１０）からの現在のブロックに関する動きベクトル（ＭＶ）は３．６２５であり、動きベクトル予測因子のリストは｛３．０，．．．｝を含む。動きベクトル予測因子ＭＶＰ０＝３．０では、動き精緻化が有効にされない場合、ＭＶＤ（８５０）はＭＶ−ＭＶＰ＝０．６２５である（１／８ｐｅｌにおいてコード化される）。他方で動き精緻化が有効にされる場合、ＭＶＤは０．５（１／４ｐｅｌ）に丸められ、初期動きベクトル（８２０）ＭＶ０＝ＭＶＰ＋ＭＶＤ＝３．５になる。次いで、動きベクトルＭＶ０をＭＶ＊＝３．６２５に精緻化させる（８２５）。この例では、精緻化済みの動きが動き推定から得られるＭＶと同じであり、ＭＶＤが１／４ｐｅｌにおいて伝送され、従って動き精緻化を使用しない（即ちＭＶＤが１／８ｐｅｌにおいて伝送される）場合よりも少ないビットが必要とされ得る。その結果、符号器は動き精緻化を有効にすることに決める可能性が高い。
【００７９】
【表１】
2019519998.tif 000010
【００８０】
上記の例では、精緻化済みの動きベクトルが動き推定からの動きベクトルと同じである。精緻化済みの動きベクトルは、動き推定から得られる動きベクトルと異なっても良いことに留意すべきである。
【００８１】
ＭＶＰの精緻化
上記では、動きベクトル予測因子ＭＶＰ及び動きベクトル差ＭＶＤに基づいて生成される初期動きベクトルに対する精緻化を解説した。別の実施形態では、（ＭＶＤを含むことなしに）動きベクトル予測因子に対して精緻化を行うことができる。再び図６を参照し、例えばＨＥＶＣによって規定されているようにＡＭＶＰを使用して初期動きベクトル予測因子（ＭＶＰ０）を得た後、再構築済みのＬ字型を使用して動きベクトル予測因子を精緻化させることができる（６７０）。
【００８２】
具体的には、復号器は初期動きベクトル予測因子の周りの動きベクトル予測因子に対応するＭＣ  Ｌ字型（６８０）を形成することができ、例えば次式：
【数８】
2019519998.tif 000011
が成立する。次いで復号器は再構築済みのＬ字型（６７０）と別のＭＣ  Ｌ字型（６８０）との差、例えば上記の不連続性または勾配を比較し、最も小さい差をもたらす動き精緻化（ΔＭＶ＊）を初期動きベクトル予測因子に対する精緻化として選択することができ、つまり精緻化された動きベクトル予測因子をＭＶＰ＊＝ＭＶＰ０＋ΔＭＶ＊として計算することができる。再構築済みのＬ字型（６７０）及びＭＣ  Ｌ字型（６８０）の両方が復号済みサンプルに基づき、そのため符号器側及び復号器側の両方で同じプロセスを実行できることに留意されたい。
【００８３】
概して、動きベクトル予測因子に関する動き精緻化は、最大動き分解能における幾つかのサブサンプルの変位を初期動きベクトル予測因子の周りで探索範囲が含む動き探索と見なすことができる。例えば図５に示すように、５１０にある動きベクトル予測因子ＭＶＰ０は５２０内の探索候補を使用して精緻化させることができる。動きベクトルを（ＭＶＤを用いて）精緻化させるのと同様に、図５に示したのと異なる探索候補の組を使用することができる。
【００８４】
改変形態では、初期動きベクトル予測因子の丸められたバージョン（ｒｏｕｎｄ（ＭＶＰ０））に対して動き精緻化を行うことができ、動き精緻化の探索範囲は丸められた動きベクトル予測因子の周りの最大動き分解能におけるサブサンプルの変位を含む。例えば精緻化された動き分解能が１／８ｐｅｌである場合、ＭＶＰ０の丸められたバージョンは整数ｐｅｌ、２分の１ｐｅｌ、又は４分の１ｐｅｌの分解能にあり得る。その理由は、実際の動きベクトルが低分解能の動きベクトルのあたりに集中する可能性が高く、初期動きベクトル予測因子の丸められたバージョンは探索を行うためのより優れた開始点を提供し得るからである。
【００８５】
別の改変形態では、ＭＶＰ候補リスト内で使用される隣接する動きベクトルの平均値に対して動き精緻化を行うことができる。例えば動き精緻化は、初期動きベクトル予測因子として左の動きベクトルと上の動きベクトルとの平均（ＭＶｌｅｆｔ＋ＭＶａｂｏｖｅ）／２を使用し、その初期動きベクトル予測因子のあたりの動き探索を行うことができる。動き精緻化は通常、ほぼ又は相対的に均一な動き領域内で選択されることが観察される。現在のブロックに隣接する動きベクトルを平均することによって探索を行うためのより優れた開始点を提供することができる。動き精緻化が選択される場合、即ち動きフィールドが均一な場合、リスト内の候補を１つだけ（左又は上）使用するように予測因子の候補リストを減じることができ、従ってあり得る候補の数が減る。ＡＭＶＰリストのインデックスをビットストリーム内に符号化し又はビットストリーム内で伝送する必要がないので、そのことは圧縮効率を改善し得る。
【００８６】
図９は、本原理の一実施形態による、復号器において動きベクトル予測因子の精緻化を行うための例示的方法９００を示す。この例では、復号器が動きベクトル予測因子の分解能を１／４ｐｅｌから１／８ｐｅｌに精緻化させることができると想定する。
【００８７】
ブロックについて、復号器は例えば上記のようにビットストリーム内のフラグを使用して又は既存の方法を使用して適応動きベクトル分解能が有効にされているかどうかを確認する（９１０）。適応動きベクトル分解能が有効である場合、復号器はＭＶ予測因子（ＭＶＰ）を１／４ｐｅｌの分解能で生成する（９２０）。初期動きベクトル予測因子は、例えばこれだけに限定されないがＨＥＶＣのＡＭＶＰモードを使用して、隣接する動きベクトルの平均を使用して、又は動きベクトル予測因子の丸められたバージョンを使用して生成することができる。次いで、例えば上記の実施形態を使用して動きベクトル予測因子を１／８ｐｅｌの分解能に精緻化させることができる（９３０）。復号器がＭＶＤを１／８ｐｅｌの分解能において復号する（９４０）。次いで、動きベクトルをＭＶ＝ＭＶＰ＊＋ＭＶＤとして取得し（９５０）、動き補償予測に使用することができる。
【００８８】
適応動きベクトル分解能が有効ではない場合、復号器は復号済みの動きベクトルに使用される動き分解能においてＭＶＰ及びＭＶＤを取得し、復号器における動き精緻化は行われない。図９に示すように、復号器はＭＶＰ及びＭＶＤの両方を１／８ｐｅｌの分解能で取得し（９６０、９７０）、ＭＶ＝ＭＶＰ＋ＭＶＤとして動きベクトルを１／８ｐｅｌの分解能で復号することができる（９８０）。改変形態では、復号器がＭＶＰ及びＭＶＤの両方を１／４ｐｅｌの分解能で取得し（９６０、９７０）、ＭＶ＝ＭＶＰ＋ＭＶＤとして動きベクトルを１／４ｐｅｌの分解能で復号することができる（９８０）。
【００８９】
図１０は、本原理の一実施形態による、符号器において動きベクトル予測因子の精緻化を行うための例示的方法１０００を示す。方法１０００の出力は方法９００への入力ビットストリームとして使用することができる。初期設定ステップ（１００５）で、符号器は符号化されるビデオシーケンスに入力としてアクセスすることができる。加えて、符号器はパラメータを初期値に設定する、例えばＢｅｓｔ＿ｆｌａｇ＝１に設定し、Ｂｅｓｔ＿ＲＤｃｏｓｔを大きい値に設定することができる。
【００９０】
動き推定（１０１０）を１／８の分解能で実行して動きベクトルＭＶを得る。次いで符号器は、適応動き精緻化を使用して動きベクトルを符号化した方が効率的かどうかを確認する。ステップ１０２０〜１０４０で、符号器は例えばＲＤ（レート歪み）コストを使用して動き精緻化ありのＭＶ符号化コストを確認する。ステップ１０４５〜１０７５で、符号器は動き精緻化なしのＭＶ符号化コストを確認する。次いで最終的なＭＶ（Ｂｅｓｔ＿ＭＶ）に基づいて動き補償を実行し、残差を計算することができる（１０８５）。残差、最終的なＭＶＤ（Ｂｅｓｔ＿ＭＶＤ）、及び適応動き精緻化フラグ（Ｂｅｓｔ＿ｆｌａｇ）をビットストリーム内に符号化する（１０９０）。
【００９１】
より具体的には、ステップ１０１５で、対応する復号器が動きベクトル予測因子のリストをどのように構築するのかと一致して、例えばＡＭＶＰからの動きベクトル予測因子の候補リスト、初期動きベクトル予測因子の（例えば所望の分解能においてクロゼット整数に）丸められたバージョン、又は隣接する動きベクトルの平均を使用し、動きベクトル予測因子のリストを１／４ｐｅｌの分解能で構築する。一部の事例では、ＭＶＰリストがＭＶＰを１つしか含まない場合がある。ステップ１０１５では、動きベクトル予測因子のリストを１／８ｐｅｌの分解能で構築することもできる。但し、低分解能（１／４ｐｅｌ）を使用する１つの利点は、１／８ｐｅｌの分解能又は１／４ｐｅｌの分解能におけるＭＶをＲＤの最適化が区別できない平らな領域内のドリフトを回避できることである。引き下げた分解能を使用することは、ＭＶ予測因子の或る程度の平滑化を可能にし、そのことはＭＶの雑音を減らし得る。更に、精緻化のための探索窓のサイズが相対的に小さい場合（１／８の精緻化では±１／４）、探索窓のための開始／中心ＭＶの精度が結果を変える可能性がある。
【００９２】
例えば復号器に関して上記で説明したように、ＭＶＰリスト内のＭＶＰごとにＭＶＰの精緻化を行う（１０２０）。精緻化されたＭＶＰ（ＭＶＰ＊）に基づいてＭＶＤを計算し（１０２５）、動き補償に使用することができる調節済みの動きベクトル（ＭＶ＊）（ＭＶ＊＝ＭＶＤ＋ＭＶＰ＊）も計算することができる。ステップ１０３０で、ＲＤコストを使用して調節済みの動きベクトル（ＭＶ＊）の符号化コストを推定することができる。ステップ１０３５で、現在の調節済みの動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有するかどうかを符号器が確認する。現在の調節済みの動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有する場合、パラメータＢｅｓｔ＿ＲＤｃｏｓｔ、Ｂｅｓｔ＿ＭＶ、及びＢｅｓｔ＿ＭＶＤを現在のＲＤコスト、現在の調節済みの動きベクトル、及び現在のＭＶＤに設定し（１０４０）、Ｂｅｓｔ＿ｆｌａｇは真（１）のままになる。
【００９３】
ステップ１０４５で、例えばＡＭＶＰからの動きベクトル予測因子の候補リストを使用して動きベクトル予測因子のリストを１／８ｐｅｌの分解能で構築する。ＭＶＰリスト内のＭＶＰごとに、１／８ｐｅｌの分解能におけるＭＶＰに基づいてＭＶＤを計算する（１０５０）。ステップ１０５５で、ＲＤコストを使用して動きベクトル（ＭＶ）の符号化コストを推定することができる。ステップ１０６５で、現在の動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有するかどうかを符号器が確認する。現在の動きベクトルが現在のＢｅｓｔ＿ＲＤｃｏｓｔよりも小さいＲＤコストを有する場合、パラメータＢｅｓｔ＿ＲＤｃｏｓｔ、Ｂｅｓｔ＿ＭＶ、及びＢｅｓｔ＿ＭＶＤを現在のＲＤコスト、現在の動きベクトル、及び現在のＭＶＤに設定し（１０７５）、適応動き精緻化フラグ（Ｂｅｓｔ＿ｆｌａｇ）を偽（０）に設定する。
【００９４】
方法１０００では、符号器が符号化コストに基づいて適応動き精緻化を使用するかどうかを決定し、ビットストリーム内のフラグによって選択をシグナリングする。例えば以下で更に説明するように又はLakshman及びChenの中で説明されているように、他の実施形態では、符号器が符号化コストを確認することなしにビデオ特性に基づいて適応動き精緻化を使用するかどうかを決定し得る。その結果、符号器は方法１０００の一部（例えば動き精緻化ありの部分または動き精緻化なしの部分）だけを実行すれば良い場合がある。
【００９５】
動きベクトル予測因子を精緻化させることにより、ＭＶ予測因子がより正確になり得る。従ってＭＶＤが統計的に低い値を有することができ、コード化のコストを減らすことができる。例えば表２に示すように、動き推定（１０１０）からの現在のブロックに関する動きベクトル（ＭＶ）は３．６２５であり、動きベクトル予測因子のリスト（１０１５）は｛３．０，．．．｝を含む。動きベクトル予測因子ＭＶＰ０＝３．０では、動きベクトル予測因子ＭＶＰ０を動き精緻化によってＭＶＰ＊＝３．５に精緻化させる（１０２０）。その後、動きベクトル差はＭＶＤ＝ＭＶ−ＭＶＰ＊＝０．１２５である。動き精緻化を使用しない動きベクトル差ＭＶ−ＭＶＰ０＝０．６２５と比較し、符号化されるＭＶＤがより小さく、一層少ないビットが符号化されることを必要とし得る。この例では、動き精緻化を使用することが圧縮効率を改善することができ、従って符号器は適応動き精緻化を有効にすることに決める可能性が高い。動き補償に使用される動きベクトルはＭＶＰ＊＋ＭＶＤ＝３．６２５である。
【００９６】
【表２】
2019519998.tif 000012
【００９７】
ＭＶＤが０の場合、例えばマージモードが使用される場合、ステップ１０２５及び１０５０が不要であり、ステップ１０４０及び１０７５においてＢｅｓｔ＿ＭＶＤを計算する必要がなく、ステップ１０９０でＢｅｓｔ＿ＭＶＤを符号化する必要がない。ＭＶＤが０の場合、方法１０００は方法８００と同じになり得ることに留意されたい。動き精緻化は動きベクトル予測因子に対応する全ての動きベクトルに適用することができ、又はサブセットに適用することができる。例えば動き精緻化は、ＡＭＶＰの動きベクトル予測因子にだけ使用され、又はマージモードにだけ使用される。
【００９８】
自動的な動き精緻化の活性化
上記の実施形態では、適応動きベクトル分解能が有効にされているかどうかを示すためにフラグ（例えば図８又は図１０に示すＢｅｓｔ＿ｆｌａｇ）を使用できると説明した。以下、動きベクトル分解能の精緻化を自動的に活性化し又は非活性化する様々な実施形態を説明する。従って、符号器は適応動きベクトル分解能が有効にされているかどうかを明確なフラグなしに示すことができ、復号器も明確なフラグを参照することなしに適応動きベクトル分解能かどうかを決定することができる。
【００９９】
一実施形態では、以下の基準の１つ又は複数に基づいて適応動き精緻化を自動的に活性化することを提案する：
−動きの類似性：現在のブロックの動きが周囲のブロックの動きと同様であり、そのため符号器又は復号器は周囲のブロックの動きベクトルを動き精緻化に使用することができる。
−テクスチャネス（又はテクスチャレベル）：ロバストなサブピクセル動き精緻化を可能にし得る幾らかのテクスチャを現在のブロック及び周囲のブロックが含む。
−動きベクトル差（ＭＶＤ）：ＭＶＤは符号器及び復号器の両方で得ることができ、自動的な適応動き精緻化を使用するか、または適応動き精緻化を明確にシグナリングするかを決定するために使用することができる。
【０１００】
動きの類似性の基準は以下の条件の１つ又は複数を使用して測定することができる：
１）ＭＶＰｌｅｆｔ及びＭＶＰａｂｏｖｅ（任意選択的にＭＶＰａｂｏｖｅ−ｌｅｆｔ）が存在し、つまり現在のブロックの周りに動きフィールドが存在する。より広くは、動きベクトルを有する１つ又は複数の隣接ブロックがある。
２）｜ＭＶＰｌｅｆｔ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２、｜ＭＶＰａｂｏｖｅ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２、及び｜ＭＶＰｌｅｆｔａｂｏｖｅ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２。この条件は、これらの３つのサブコンビネーション、つまり｜ＭＶＰｌｅｆｔ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２、｜ＭＶＰａｂｏｖｅ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２、及び｜ＭＶＰｌｅｆｔａｂｏｖｅ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２の異なる論理的な組合せとすることもできる。つまり周囲のブロックの動きベクトルが同様であり、現在のブロックの周りの動きフィールドが或る程度均一である。ここでは、ＭＶＰｌｅｆｔとＭＶＰｃｕｒｒｅｎｔとの差、ＭＶＰａｂｏｖｅとＭＶＰｃｕｒｒｅｎｔとの差、及びＭＶＰｌｅｆｔａｂｏｖｅとＭＶＰｃｕｒｒｅｎｔとの差を確認するために同じＴ２を使用する。これらの差について異なる閾値を使用できることに留意すべきである。
【０１０１】
テクスチャネスの基準は以下の条件の１つ又は複数を使用して測定することができる：
１）Ｔｅｘｔｕｒｅ（Ｌ）＞Ｔ３、但しＬは動き精緻化を行うのに使用される隣接領域、例えば図６Ａに示す６７０であり、ｔｅｘｔｕｒｅ（Ｘ）はテクスチャリング、例えばＸの輝度のバリアンスの測度である。つまり、隣接領域が幾らかのテクスチャを有する。
２）Ｅｒｒ（ｍｃ（Ｌ，ＭＶＰ，Ｉｒｅｆ），Ｌ）＜Ｅｒｒ（ｍｃ（Ｌ，ＭＶＰ＋ＭＶｒ，Ｉｒｅｆ），Ｌ）＋Ｔ４、但しＭＶＰはビットストリーム内でシグナリングされるＭＶＤに対応する選択された動きベクトル予測因子であり、そのため符号器及び復号器の両方がこの条件を確認するために同じＭＶＰを使用することができ、Ｅｒｒ（Ｘ，Ｙ）はピクセル群Ｘとピクセル群Ｙとの間の誤りの測度、例えばＳＡＤ、ＨＡＤ、又はＳＳＥであり、ｍｃ（Ｘ，ｖ，Ｉ）は参照画像Ｉ内の動きベクトルｖを用いたピクセル群Ｘの動き補償であり、Ｉｒｅｆは動きベクトル予測因子ＭＶＰに関連する参照画像であり、Ｔ４は誤りの類似性に関する閾値であり、ＭＶＰ＋ＭＶｒは精緻化後の動きベクトル予測因子である。先に説明したように、ＭＶＰは例えば整数に丸められた低い動き分解能にあり得る。
【０１０２】
自動的な動き精緻化の活性化は、動きの類似性又はテクスチャネス基準の両方の下で全ての条件に基づくことができ、又は条件のサブセットを使用することもできる。動き精緻化の活性化又は非活性化をシグナリングするかどうかは動きベクトル差（ＭＶＤ）に基づき得る。｜ＭＶＤ｜≦Ｔ１が成立し、ＭＶＤがビットストリーム内で指示される動きベクトル差でありＴ１が動き閾値である場合、典型的な例ではＴ１＝
【数９】
2019519998.tif 000013
であり、明確なシグナリングなしに動きベクトルの精緻化を活性化することに決めることができる。つまり動きベクトル差が小さく、現在の動きベクトルが現在の動きベクトル予測因子に近い場合、符号器及び復号器が動き精緻化を自動的に活性化することができる。加えて、符号器及び復号器の両方がＭＶＤを入手することができ、符号器と復号器とを同期させるためにＭＶＤを使用して動き精緻化の活性化を同じやり方で決定することができる。他方で、｜ＭＶＤ｜が大きくなる場合、符号器及び復号器は明確なシグナリングなしに動き精緻化を自動的に非活性化することができる。
【０１０３】
別の例では、動きベクトル予測因子のリストを構築するために時間的候補が使用される場合、つまりＭＶＰｌｅｆｔ及びＭＶＰａｂｏｖｅが同時に存在しない又は同じである場合、動きの類似性の基準の条件１）及び２）は使用されない。符号器は自動精緻化に時間的候補を使用するかどうかを決めることができる。
【０１０４】
図１１は、本原理の一実施形態による、復号器における自動的な動き精緻化の活性化又は非活性化を用いて動きベクトル予測因子の精緻化を行うための例示的方法１１００を示す。
【０１０５】
復号されるブロックについて、復号器はＭＶ予測因子（ＭＶＰｃｕｒｒｅｎｔ）を生成し（１１１０）、ＭＶ差（ＭＶＤ）を復号する（１１２０）。｜ＭＶＤ｜≦Ｔ１（１１２５）が真の場合、復号器は他の条件を確認して動き精緻化を活性化すべきかどうかを確かめる。そうではなく｜ＭＶＤ｜＞Ｔ１の場合、復号器は
【数１０】
2019519998.tif 000014
が成立するかどうかを確認する。一例ではＳ＝１／２であり、精緻化のための動き探索が［−１／２，１／２］の中にあることを示す。
【数１１】
2019519998.tif 000015
が成立する場合、復号器はビットストリームから復号されるフラグ（１１４０）に基づいて動き精緻化を使用するかどうかを決定する。そうではなく
【数１２】
2019519998.tif 000016
が成立する場合、復号器は動き精緻化を行わず（即ち動き精緻化が自動的に非活性化され）、ＭＶＰ及びＭＶＤに基づいて動きベクトルを復号する（１１８０）（即ちＭＶ＝ＭＶＰ＋ＭＶＤ）。
【０１０６】
より具体的には、復号器は｜ＭＶＰｌｅｆｔ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２、且つ｜ＭＶＰａｂｏｖｅ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２が成立するかどうかを確認する（１１５５）。成立する場合、復号器はＴｅｘｔｕｒｅ（Ｌ）＞Ｔ３が成立するかどうかを確認する（１１６５）。１１５５及び１１６５における両方の条件が満たされる場合、復号器は例えば上記の様々な実施形態を使用して動きベクトル予測因子の精緻化を行い、精緻化された動きベクトル予測因子（ＭＶＰ＊）及びＭＶＤに基づいて動きベクトルを復号する（１１７０）（即ちＭＶ＝ＭＶＰ＊＋ＭＶＤ）。ここでは動き精緻化がフラグなしに自動的に活性化される。
【０１０７】
【数１３】
2019519998.tif 000017
が成立する場合、復号器は動き精緻化を使用できるかどうかを示すフラグ（例えばＲｅｆｉｎｅ＿ｆｌａｇ）を復号する（１１４０）。フラグが真の場合（１１４５）、復号器はステップ１１５５に進む。そうではなくフラグが偽の場合（１１４５）、ＭＶＰ及びＭＶＤに基づいて動きベクトルを得る（１１８０）。
【０１０８】
図１１では、復号器が幾つかの条件において動き精緻化を自動的に非活性化し又は活性化し、他の条件では動き精緻化を非活性化し又は活性化するためにフラグを利用する。符号器と復号器との間の同期を確実にするために対応する符号器によって同じ条件が使用される。
【０１０９】
ＭＶＤが０の場合、例えばマージモードが使用される場合、ステップ１１２５における条件は常に真であり、除去することができ、ステップ１１２０、１１３０、１１４０、１１４５、及び１１８０は必要ない。或いはマージモードでは、マージによって推論される動きベクトル予測因子に対して雑音を加えるのを避けるために動き精緻化を無効にすることができる。
【０１１０】
図１１に示している内容と異なり、方法１１００はステップ１１３０〜１１４５を飛ばすこともできる。つまり｜ＭＶＤ｜＞Ｔ１が成立する場合、復号器は動き精緻化なしにステップ１１８０を実行する。他の改変形態、例えばこれだけに限定されないがステップ１１５５及び／又はステップ１１６５を飛ばすこと、またはステップ１１５５において２つの条件のうちの一方を確認することを実装することもできる。
【０１１１】
図１２は、本原理の一実施形態による、符号器における自動的な動き精緻化を行うための例示的方法１２００を示す。方法１２００の出力は方法１１００への入力ビットストリームとして使用することができる。初期設定ステップ（１２０５）で、符号器は符号化されるビデオシーケンスに入力としてアクセスすることができる。加えて、符号器はパラメータを初期値に設定する、例えばＢｅｓｔ＿ＲＤｃｏｓｔを大きい値に設定することができる。
【０１１２】
動き推定（１２１０）を１／８ｐｅｌの分解能で実行して動きベクトルＭＶを得る。ステップ１２２０で、例えばＡＭＶＰからの動きベクトル予測因子の候補リストを使用して動きベクトル予測因子のリストを構築する。対応する復号器が動きベクトル予測因子のリストをどのように構築するのかと一致して、初期動きベクトル予測因子の（例えば所望の分解能においてクロゼット整数に）丸められたバージョン又は隣接する動きベクトルの平均を使用することができる。一部の事例では、ＭＶＰリストがＭＶＰを１つしか含まない場合がある。ステップ１２２０では、動きベクトル予測因子のリストを他の分解能で構築することもできる。
【０１１３】
ステップ１２２５で、特定のＭＶＰについて、符号器は適応動き精緻化を使用して動きベクトルを符号化した方が効率的かどうかを確認し、Ｒｅｆｉｎｅ＿ｆｌａｇを０または１に設定する。動き精緻化の方が効率的である場合、Ｒｅｆｉｎｅ＿ｆｌａｇを１に設定し、そうでなければ０に設定する。ステップ１２２５では対応するＭＶＤも計算する。
【０１１４】
図１３は、本原理の一実施形態による、特定のＭＶＰについて適応動き精緻化を使用するかどうかを判定するための例示的方法１３００を示す。方法１３００は、方法１２００のステップ１２２５を実装するために使用することができる。
【０１１５】
具体的には、復号器は｜ＭＶＰｌｅｆｔ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２、｜ＭＶＰａｂｏｖｅ−ＭＶＰｃｕｒｒｅｎｔ｜＜Ｔ２、且つＴｅｘｔｕｒｅ（Ｌ）＞Ｔ３が成立するかどうかを確認する（１３０５）。１３０５における条件が満たされる場合、符号器は例えば上記の様々な実施形態を使用して動きベクトル予測因子の精緻化を行い（１３３０）、精緻化された動きベクトル予測因子（ＭＶＰ＊）に基づいて動きベクトル差を計算する（１３４０）（即ちＭＶＤ＝ＭＶ−ＭＶＰ＊）。動き精緻化が使用される場合はＲＤコスト（ＲＤＣｏｓｔ１）を推定する（１３５０）。符号器は、精緻化された動きベクトル予測因子なしの動きベクトル差も計算する（１３６０）（即ちＭＶＤ＝ＭＶ−ＭＶＰ）。動き精緻化が使用されない場合はＲＤコスト（ＲＤＣｏｓｔ２）を推定する（１３７０）。動き精緻化ありのＲＤコストと動き精緻化なしのＲＤコストとを比較する（１３７５）。ＲＤＣｏｓｔ１の方が小さい場合はＲｅｆｉｎｅ＿ｆｌａｇを１に設定し（１３８０）、ＭＶＤをＭＶ−ＭＶＰ＊に設定する。さもなければＲｅｆｉｎｅ＿ｆｌａｇを０に設定し（１３９０）、ＭＶＤをＭＶ−ＭＶＰに設定する。
【０１１６】
１３０５における条件が満たされない場合、動きベクトル予測因子（ＭＶＰ）に基づいて動きベクトル差を計算し（１３１０）（即ちＭＶＤ＝ＭＶ−ＭＶＰ）、Ｒｅｆｉｎｅ＿ｆｌａｇを０に設定する（１３２０）。
【０１１７】
ステップ１２２５でＭＶＤ及びＲｅｆｉｎｅ＿ｆｌａｇを決定した後、ステップ１２３０で符号器は｜ＭＶＤ｜≦Ｔ１が成立するかどうかを確認する。成立する場合、符号器はＲｅｆｉｎｅ＿ｆｌａｇが１に等しいかどうかを更に確認する（１２３５）。Ｒｅｆｉｎｅ＿ｆｌａｇが１に設定される場合、符号器はＲＤコストを推定する（１２７０）。ＲＤコストが現在のＢｅｓｔ＿ＲＤＣｏｓｔよりも小さい場合（１２７５）、パラメータＢｅｓｔ＿ＲＤｃｏｓｔ及びＢｅｓｔ＿ＭＶＤを現在のＲＤコスト及び現在のＭＶＤに設定し（１２８０）、Ｗｒｉｔｅ＿ｆｌａｇをいいえに設定する（適応動き精緻化を指示するために明確なシグナリングを使用しないことを示す）。つまり、符号化のために現在のＭＶＰが選択される場合、フラグを送信する必要なしに動き精緻化が自動的に活性化される。
【０１１８】
｜ＭＶＤ｜＞Ｔ１が成立する場合（１２３０）、符号器がＲＤコストを推定する（１２４０）。ＲＤコストがＢｅｓｔ＿ＲＤＣｏｓｔよりも小さい場合（１２４５）、パラメータＢｅｓｔ＿ＲＤｃｏｓｔ及びＢｅｓｔ＿ＭＶＤを現在のＲＤコスト及び現在のＭＶＤに設定する（１２５０）。次いで、符号器は
【数１４】
2019519998.tif 000018
が成立するかどうかを確認する（１２５５）。成立する場合、Ｗｒｉｔｅ＿ｆｌａｇをはい、に設定する。ここで条件付き分岐１２６０に対応する動きベクトル予測因子が選択される場合、動き精緻化を活性化させるかどうかはＲｅｆｉｎｅ＿ｆｌａｇに基づいて明確にシグナリングされる。
【０１１９】
そうではなく１２５５における条件が満たされない場合、Ｗｒｉｔｅ＿ｆｌａｇをいいえに設定する（１２６５）。つまり条件付き分岐１２６５に対応する動きベクトル予測因子が選択される場合、フラグを送信する必要なしに動き精緻化が自動的に非活性化される。
【０１２０】
符号器はＭＶＰリストの終わりに達したかどうかを確認する（１２８５）。ＭＶＰリストの終わりに達している場合、符号器はＢｅｓｔ＿ＭＶＤ、選択されたＭＶＰのインデックス、及びもしある場合は対応する残差を符号化する。Ｗｒｉｔｅ＿ｆｌａｇがはいに設定される場合、Ｒｅｆｉｎｅ＿ｆｌａｇも符号化される。そうではなく１２８５における条件が満たされない場合、制御がステップ１２２５に返される。マージモードが選択される場合、ステップ１２９０でＢｅｓｔ＿ＭＶＤを符号化する必要がない。方法１１００に対応して、方法１２００も図１２に示す内容から変えることができ、例えばステップ１２４０〜１２６０を飛ばすことができる。
【０１２１】
上記では、動き精緻化の非活性化の自動的な活性化について動きベクトル予測因子に関して論じた。自動的な活性化又は非活性化は他の種類の動き情報、例えばこれだけに限定されないが動きベクトル差を既に含む動きベクトルに適用できることに留意すべきである。
【０１２２】
本願では、例えば閾値に基づいて動きの類似性またはテクスチャネスを決定するために様々な数値を使用した。それらの具体的な値は例示目的であり、本原理はそれらの具体的な値に限定されないことに留意すべきである。
【０１２３】
上記では様々な実施形態をＨＥＶＣ規格に関して説明した。例えば上記の様々な動き精緻化または自動的な活性化の方法は、図１に示すＨＥＶＣ符号器の動き推定モジュール（１７５）又は図３に示すＨＥＶＣ復号器の動き補償モジュール（３７５）を修正するために使用することができる。但し、本原理はＨＥＶＣに限定されず、他の規格、勧告、及びその拡張に適用することができる。
【０１２４】
上記では１／４ｐｅｌから１／８ｐｅｌへの動き精緻化について論じた。本原理は他の動き分解能間の精緻化、例えばこれだけに限定されないが整数ｐｅｌから１／４ｐｅｌへの精緻化、１／４ｐｅｌから１／６ｐｅｌへの精緻化に適用できることに留意すべきである。
【０１２５】
図１４は、本原理の例示的実施形態の様々な側面を実装することができる例示的システムのブロック図を示す。システム１４００は、以下に記載の様々なコンポーネントを含む装置として実装することができ、上記のプロセスを実行するように構成される。かかる装置の例は、これだけに限定されないが、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、デジタルマルチメディアセットトップボックス、デジタルテレビ受信機、パーソナルビデオ録画システム、接続された家庭用電化製品、及びサーバを含む。上記の例示的ビデオシステムを実装するために、システム１４００は図１４に示し且つ当業者によって知られている通信チャネルを介して他の同様のシステム及びディスプレイに通信可能に結合され得る。
【０１２６】
システム１４００は、上記の様々なプロセスを実施するために自らの中にロードされた命令を実行するように構成される少なくとも１個のプロセッサ１４１０を含み得る。プロセッサ１４１０は、内蔵メモリ、入出力インタフェース、及び当技術分野で知られている他の様々な回路を含み得る。システム１４００は、少なくとも１つのメモリ１４２０（例えは揮発性メモリ装置、不揮発性メモリ装置）も含み得る。システム１４００は、これだけに限定されないが、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ、磁気ディスクドライブ、及び／又は光ディスクドライブを含む不揮発性メモリを含み得る記憶装置１４４０を追加で含むことができる。記憶装置１４４０は、非限定的な例として内蔵記憶装置、付加記憶装置、及び／又はネットワークアクセス可能記憶装置を含み得る。システム１４００は、符号化済みビデオ又は復号済みビデオを提供するためにデータを処理するように構成される符号器／復号器モジュール１４３０も含み得る。
【０１２７】
符号器／復号器モジュール１４３０は、符号化及び／又は復号機能を実行するために装置内に含まれ得るモジュールを表す。知られているように、装置は符号化モジュール及び復号モジュールの一方又は両方を含み得る。加えて、符号器／復号器モジュール１４３０はシステム１４００の別個の要素として実装することができ、又は当業者に知られているようにハードウェアとソフトウェアとの組合せとしてプロセッサ１４１０内に組み込まれても良い。
【０１２８】
上記の様々なプロセスを実行するためにプロセッサ１４１０上にロードされるプログラムコードは記憶装置１３４０内に記憶され、その後プロセッサ１４１０によって実行するためにメモリ１４２０上にロードされ得る。本原理の例示的実施形態によれば、プロセッサ１４１０、メモリ１４２０、記憶装置１４４０、及び符号器／復号器モジュール１４３０の１つ又は複数が、上記で論じたプロセスの実行中にこれだけに限定されないが入力ビデオ、ビットストリーム、等式、公式、行列、変数、演算、及び演算ロジックを含む様々なアイテムの１つ又は複数を記憶し得る。
【０１２９】
システム１４００は、通信チャネル１４６０を介して他の装置と通信することを可能にする通信インタフェース１４５０も含み得る。通信インタフェース１４５０は、これだけに限定されないが、通信チャネル１４６０からのデータを送受信するように構成されるトランシーバを含み得る。通信インタフェースは、これだけに限定されないがモデム又はネットワークカードを含むことができ、通信チャネルは有線媒体及び／又は無線媒体内に実装することができる。システム１４００の様々なコンポーネントは、これだけに限定されないが内部バス、配線、及びプリント回路基板を含む様々な適切な接続を使用して接続し又は通信可能に結合することができる。
【０１３０】
本原理による例示的実施形態は、プロセッサ１４１０により実装されるコンピュータソフトウェアによって、ハードウェアによって、又はハードウェアとソフトウェアとの組合せによって実行することができる。非限定的な例として、本原理による例示的実施形態は１つ又は複数の集積回路によって実装され得る。メモリ１４２０は技術的環境に適した任意の種類のものとすることができ、非限定的な例として光メモリ装置、磁気メモリ装置、半導体ベースのメモリ装置、固定メモリ、脱着可能メモリ等、任意の適切なデータ記憶技術を使用して実装することができる。プロセッサ１４１０は技術的環境に適した任意の種類のものとすることができ、非限定的な例としてマイクロプロセッサ、汎用コンピュータ、専用コンピュータ、及びマルチコアアーキテクチャに基づくプロセッサのうちの１つ又は複数を包含し得る。
【０１３１】
本明細書に記載した実装形態は、例えば方法またはプロセス、機器、ソフトウェアプログラム、データストリーム、又は信号によって実装することができる。単一形式の実装形態の脈絡でしか論じられていなくても（例えば方法としてしか論じられていなくても）、論じられた特徴の実装形態は他の形式（例えば機器またはプログラム）でも実装することができる。機器は、例えば適切なハードウェア、ソフトウェア、及びファームウェアによって実装することができる。方法は例えばプロセッサ等の機器によって実装することができ、プロセッサは例えばコンピュータ、マイクロプロセッサ、集積回路、プログラム可能論理装置を含む処理装置全般を指す。プロセッサは、例えばコンピュータ、携帯電話、ポータブル／携帯情報端末（「ＰＤＡ」）、エンドユーザ間の情報の通信を助ける他の装置等の通信装置も含む。
【０１３２】
本原理の「一実施形態」、「或る実施形態」、「一実装形態」、又は「或る実装形態」並びにそれらの他の異体に言及することは、実施形態に関連して記載される特定の特徴、構造、特性等が本原理の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書の全体を通して様々な場所に登場する「一実施形態では」、「或る実施形態では」、「一実装形態では」、又は「或る実装形態では」という語句並びに他の任意の異体の登場は必ずしも全て同じ実施形態を指すものではない。
【０１３３】
加えて本願又は本願の特許請求の範囲は、様々な情報片を「決定すること」に言及する場合がある。情報を決定することは、例えば情報を推定すること、情報を計算すること、情報を予測すること、又は情報をメモリから取り出すことの１つ又は複数を含み得る。
【０１３４】
更に本願又は本願の特許請求の範囲は、様々な情報片に「アクセスすること」に言及する場合がある。情報にアクセスすることは、例えば情報を受信すること、（例えばメモリから）情報を取り出すこと、情報を記憶すること、情報を処理すること、情報を伝送すること、情報を移動すること、情報を複製すること、情報を消去すること、情報を計算すること、情報を決定すること、情報を予測すること、又は情報を推定することの１つ又は複数を含み得る。
【０１３５】
加えて本願又は本願の特許請求の範囲は、様々な情報片を「受信すること」に言及する場合がある。受信することは、「アクセスすること」と同様に広義語であることを意図する。情報を受信することは、例えば情報にアクセスすること、又は情報を（例えばメモリから）取り出すことの１つ又は複数を含み得る。更に、「受信すること」は、典型的には例えば情報を記憶する操作、情報を処理する操作、情報を伝送する操作、情報を移動する操作、情報を複製する操作、情報を消去する操作、情報を計算する操作、情報を決定する操作、情報を予測する操作、情報を推定する操作等の操作中に何らかの形で関与する。
【０１３６】
当業者に明らかなように、実装形態は例えば記憶され又は伝送され得る情報を運ぶようにフォーマットされる多岐にわたる信号を作り出し得る。かかる情報は、例えば方法を実行するための命令または、記載した実装形態の１つによって作り出されるデータを含み得る。例えば信号は、記載した実施形態のビットストリームを運ぶようにフォーマットされ得る。かかる信号は、例えば電磁波として（例えばスペクトルの無線周波数部分を用いて）、又はベースバンド信号としてフォーマットされ得る。フォーマットすることは、例えばデータストリームを符号化し、符号化データストリームで搬送波を変調することを含み得る。信号が運ぶ情報は、例えばアナログ情報又はデジタル情報とすることができる。信号は、知られているように様々な異なる有線リンク又は無線リンク上で伝送され得る。信号はプロセッサ可読媒体上に記憶され得る。
【図１】
2019519998.tif 000019
【図２Ａ】
2019519998.tif 000020
【図２Ｂ】
2019519998.tif 000021
【図２Ｃ】
2019519998.tif 000022
【図３】
2019519998.tif 000023
【図４】
2019519998.tif 000024
【図５】
2019519998.tif 000025
【図６Ａ】
2019519998.tif 000026
【図６Ｂ】
2019519998.tif 000027
【図７Ａ】
2019519998.tif 000028
【図７Ｂ】
2019519998.tif 000029
【図８】
2019519998.tif 000030
【図９】
2019519998.tif 000031
【図１０】
2019519998.tif 000032
【図１１】
2019519998.tif 000033
【図１２】
2019519998.tif 000034
【図１３】
2019519998.tif 000035
【図１４】
2019519998.tif 000036
【国際調査報告】
2019519998.tif 000037
2019519998.tif 000038
2019519998.tif 000039