(57)【要約】  デコーダのためのビデオ復号方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含み、ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットの複数のブロックはグリッドとして配置されている。方法は、ユニットのうちの１つについて、履歴運動ベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップを更に含む。方法は、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップを更に含む。方法は、現在のブロックが、ユニットのうちの１つのグリッド内に含まれる行の先頭にあるかどうかを判断するステップを更に含む。方法は、現在のブロックが行の先頭にあると判断したことに応じて、ＨＭＶＰバッファをリセットするステップを更に含む。
2021516509.tif 000002
【特許請求の範囲】
【請求項１】
デコーダが実行するビデオ復号の方法であって：
符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、前記現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける前記複数のブロックはグリッド状を形成する、ステップと；
前記複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、前記複数のブロックからの現在のブロックを復号するステップと；
前記復号された現在のブロックの動きベクトルで前記ＨＭＶＰバッファを更新するステップと；
前記現在のブロックが前記複数のユニットの前記１つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと；
前記現在のブロックが前記行の先頭であると判断したことに応答して、前記ＨＭＶＰバッファをリセットするステップと；
を含む、方法。
【請求項２】
前記現在のブロックが前記行の第１ユニットの最後のブロックであるかどうかを判断するステップと；
前記現在のブロックが前記行の前記第１ユニットの最後のブロックであると判断したことに応答して、前記ＨＭＶＰバッファの内容を行バッファにコピーするステップと；
を更に含む、請求項１に記載の方法。
【請求項３】
前記現在のブロックが前記行の先頭であると判断したことに応答して、前記ＨＭＶＰバッファの各エントリがリセットされた後に、前記行バッファの内容を前記ＨＭＶＰバッファにコピーするステップ、
を更に含む、請求項２に記載の方法。
【請求項４】
前記ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、前記動きベクトルで前記ＨＭＶＰバッファを更新するステップは、前記ＨＭＶＰバッファの最後のエントリに前記動きベクトルを格納するステップと、前記ＨＭＶＰバッファの最初のエントリを削除するステップとを含む、
請求項１に記載の方法。
【請求項５】
前記ユニットは、符号化ツリーユニット（ＣＴＵ）である、
請求項１に記載の方法。
【請求項６】
前記ユニットはタイルであり、前記ユニットのうち前記復号された１つは第１タイルであり、前記複数のユニットからの前記第１タイル及び第２タイルは並行に復号される、
請求項２に記載の方法。
【請求項７】
ビデオ復号のためのビデオデコーダであって：
符号化されたビデオビットストリームから現在のピクチャを取得し、前記現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける前記複数のブロックはグリッド状を形成し、
前記複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、前記複数のブロックからの現在のブロックを復号し、
前記復号された現在のブロックの動きベクトルで前記ＨＭＶＰバッファを更新し、
前記現在のブロックが前記複数のユニットの前記１つのグリッドに含まれる行の先頭にあるかどうかを判断し、
前記現在のブロックが前記行の先頭であると判断したことに応答して、前記ＨＭＶＰバッファをリセットする、
ように構成された処理回路；
を含む、ビデオデコーダ。
【請求項８】
前記処理回路は、
前記現在のブロックが前記行の第１ユニットの最後のブロックであるかどうかを判断し、
前記現在のブロックが前記行の前記第１ユニットの最後のブロックであると判断したことに応答して、前記ＨＭＶＰバッファの内容を行バッファにコピーする、
ように更に構成される、請求項７に記載のビデオデコーダ。
【請求項９】
前記処理回路は、
前記現在のブロックが前記行の先頭であると判断したことに応答して、前記ＨＭＶＰバッファの各エントリがリセットされた後に、前記行バッファの内容を前記ＨＭＶＰバッファにコピーする、
ように更に構成される、請求項８に記載のビデオデコーダ。
【請求項１０】
前記ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、前記動きベクトルで前記ＨＭＶＰバッファを更新することは、前記ＨＭＶＰバッファの最後のエントリに前記動きベクトルを格納することと、前記ＨＭＶＰバッファの最初のエントリを削除することを含む、
請求項７に記載のビデオデコーダ。
【請求項１１】
前記ユニットは、符号化ツリーユニット（ＣＴＵ）である、
請求項７に記載のビデオデコーダ。
【請求項１２】
前記ユニットはタイルであり、前記ユニットのうち前記復号された１つは第１タイルであり、前記複数のユニットからの前記第１タイル及び第２タイルは並行に復号される、
請求項８に記載のビデオデコーダ。
【請求項１３】
ビデオデコーダ内のプロセッサによって実行されると、該プロセッサに、
符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、前記現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける前記複数のブロックはグリッド状を形成する、ステップと；
前記複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、前記複数のブロックからの現在のブロックを復号するステップと；
前記復号された現在のブロックの動きベクトルで前記ＨＭＶＰバッファを更新するステップと；
前記現在のブロックが前記複数のユニットの前記１つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと；
前記現在のブロックが前記行の先頭であると判断したことに応答して、前記ＨＭＶＰバッファをリセットするステップと；
を実行させるコンピュータプログラム。
【請求項１４】
前記プロセッサに、
前記現在のブロックが前記行の第１ユニットの最後のブロックであるかどうかを判断するステップと；
前記現在のブロックが前記行の前記第１ユニットの最後のブロックであると判断したことに応答して、前記ＨＭＶＰバッファの内容を行バッファにコピーするステップと；
を更に実行させる、請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記プロセッサに、
前記現在のブロックが前記行の先頭であると判断したことに応答して、前記ＨＭＶＰバッファの各エントリがリセットされた後に、前記行バッファの内容を前記ＨＭＶＰバッファにコピーするステップ、
を更に実行させる、請求項１４に記載のコンピュータプログラム。
【請求項１６】
前記ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、前記動きベクトルで前記ＨＭＶＰバッファを更新するステップは、前記ＨＭＶＰバッファの最後のエントリに前記動きベクトルを格納するステップと、前記ＨＭＶＰバッファの最初のエントリを削除するステップとを含む、
請求項１３に記載のコンピュータプログラム。
【請求項１７】
前記ユニットは、符号化ツリーユニット（ＣＴＵ）である、
請求項１３に記載のコンピュータプログラム。
【請求項１８】
前記ユニットはタイルであり、前記ユニットのうち前記復号された１つは第１タイルであり、前記複数のユニットからの前記第１タイル及び第２タイルは並行に復号される、
請求項１４に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［参照による組み込み］
本願は、２０１８年１１月２８日に出願された米国特許出願第１６／２０３，３６４号「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＨＩＳＴＯＲＹ−ＢＡＳＥＤ  ＭＯＴＩＯＮ  ＶＥＣＴＯＲ  ＰＲＥＤＩＣＴＩＯＮ」の優先権の利益を主張する。同出願は、２０１８年７月１６日に出願された米国仮出願第６２／６９８，５５９号「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＨＩＳＴＯＲＹ−ＢＡＳＥＤ  ＭＯＴＩＯＮ  ＶＥＣＴＯＲ  ＰＲＥＤＩＣＴＩＴＩＯＮ」の優先権の利益を主張している。これらの全内容は参照により明細書に組み込まれる。
【０００２】
［技術分野］
本開示は、一般的にビデオ符号化に関連する実施形態を説明する。
【背景技術】
【０００３】
本明細書で提供される背景の説明は、本開示の文脈を一般的に提示するためのものである。現在の発明者の作業は、その作業がこの背景セクションに記載されている範囲で、並びに出願時に他の方法では先行技術として適格でない可能性がある説明の側面では、本開示に対する先行技術として明示的にも暗示的にも認められていない。
【０００４】
動き補償を用いるインターピクチャ予測を使用するビデオ符号化及び復号は、数十年も知られている。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば１９２０×１０８０の輝度サンプル及び関連するクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば６０ピクチャ／秒又は６０Ｈｚの固定又は可変のピクチャレート（略式に、フレームレートとしても知られる）を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えばサンプル当たり８ビットの１０８０ｐ６０  ４：２：０ビデオ（６０Ｈｚフレームレートで１９２０×１０８０の輝度サンプル解像度）は１．５Ｇｂｉｔ／ｓに近い帯域幅を必要とする。このようなビデオの１時間は、６００Ｇバイトを超える記憶領域を必要とする。
【０００５】
ビデオ符号化及び復号の１つの目的は、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅又は記憶領域の必要性を、場合によっては２桁以上減らすのに役立つ可能性がある。可逆圧縮及び非可逆圧縮の両方、並びにそれらの組合せを用いることができる。可逆圧縮は、元の信号の正確なコピーを、圧縮された元の信号から再構築することができる技術をいう。非可逆圧縮を使用するとき、再構築された信号は、元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みは、再構築された信号を意図された用途に役立たせるために十分小さい。ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量は、用途に依存し、例えば特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン寄与アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い許可／許容可能な歪みが、より高い圧縮比をもたらすことができることを反映し得る。
【０００６】
動き補償は、非可逆圧縮技術とすることができ、以前に再構築されたピクチャ又はその一部（参照ピクチャ）からのサンプルデータのブロックが、動きベクトル（以下、ＭＶ）によって示される方向に空間的にシフトされた後に、新たに再構築されたピクチャ又はその一部の予測のために使用される技術に関連付けることができる。場合によっては、参照ピクチャは、現在再構築中のピクチャと同じものとすることができる。ＭＶは、Ｘ及びＹの２次元又は３次元を有することができ、３次元は、使用中の参照ピクチャの表示である（後者は間接的に、時間次元とすることができる）。
【０００７】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なＭＶを、他のＭＶから、例えば再構築中の領域に空間的に隣接し、復号順でそのＭＶに先行するサンプルデータの別の領域に関連するＭＶから、予測することができる。そのようにすることにより、ＭＶを符号化するために必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増加させることができる。ＭＶ予測は、例えばカメラから導出された入力ビデオ信号（ナチュラルビデオとして知られる）を符号化する際に、単一のＭＶが適用可能な領域よりも大きな領域が同様の方向に移動する統計的可能性があり、したがって、場合によっては、隣接領域のＭＶから導出される同様の動きベクトルを使用して予測することができるので、効果的に機能することができる。その結果、所与の領域について見つかったＭＶは、周囲のＭＶから予測されるＭＶと類似又は同一になり、そして、これは、エントロピー符号化の後、ＭＶを直接符号化する場合に使用されるであろうものよりも少ないビット数で表現することができる。場合によっては、ＭＶ予測は、元の信号（すなわち、サンプルストリーム）から導出された信号（すなわち、ＭＶ）の可逆圧縮の例であり得る。他の場合には、ＭＶ予測それ自体は、例えばいくつかの周囲のＭＶから予測子を計算する際の丸め誤差のために、非可逆的であり得る。
【０００８】
様々なＭＶ予測機構が、Ｈ．２６５／ＨＥＶＣ（ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６５、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」、２０１６年１２月）で説明されている。Ｈ．２６５が提供する多くのＭＶ予測機構のうち、ここで説明されるのは、これから「空間マージ」と呼ばれる技術である。
【０００９】
動作ベクトル予測子の履歴バッファが、符号化又は復号を実行するために使用されることがある。一般に、履歴バッファの維持は、各ブロックの後に行われ、符号化又は復号の順序で完了する。このブロックがＭＶ情報のセットとインターモードで符号化される場合、このブロックのＭＶは、バッファを更新するためにＨＭＶＰバッファに入れられる。現在のブロックを符号化又は復号するとき、現在のブロックに対するＭＶ予測子は、以前に符号化された空間的／隣接ブロックから来る可能性がある。これらのブロックのいくつかは、依然としてＨＭＶＰバッファ内にある可能性がある。新たに復号／符号化されたＭＶをＨＭＶＰバッファに入れるとき、新たなＭＶがＨＭＶＰバッファ内のすべての以前のＭＶと異なることを確認するために、いくつかの比較が行われることがある。バッファ内に同じ値を有するＭＶが既に存在する場合、古いＭＶはバッファから削除されることになり、新しいＭＶが最後のエントリとしてバッファに入れられる。履歴バッファのこれらの一般的な維持手順は、符号化又は復号されている現在のブロックに関連しない可能性がある情報を履歴バッファから除去する必要があるときに、履歴バッファを適切にリセットしない。
【発明の概要】
【００１０】
本開示の例示的な実施形態は、デコーダのためのビデオ復号の方法を含む。方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含み、ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の複数のブロックはグリッドとして配置されている。方法は、ユニットのうちの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップを更に含む。方法は、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップを更に含む。方法は、現在のブロックがユニットのうちの１つのグリッド内に含まれる行の先頭（ｂｅｇｉｎｎｉｎｇ）にあるかどうかを判断するステップを更に含む。方法は、現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファをリセットするステップを更に含む。
【００１１】
本開示の例示的実施形態は、ビデオ復号のためのビデオデコーダを含む。ビデオデコーダは、符号化されたビデオビットストリームから現在のピクチャを取得するように構成された処理回路を含み、ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の前記複数のブロックはグリッドとして配置されている。処理回路は更に、ユニットのうちの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するように構成される。処理回路は更に、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するように構成される。処理回路は更に、現在のブロックがユニットのうちの１つのグリッド内に含まれる行の先頭にあるかどうかを判断するように構成される。処理回路は更に、現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファをリセットするように構成される。
【００１２】
本開示の例示的実施形態は、ビデオデコーダ内のプロセッサによって実行されると、プロセッサに方法を実行させる命令を有する非一時的なコンピュータ読取可能媒体を含む。方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含み、ここで現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の複数のブロックはグリッドとして配置されている。方法は、ユニットのうちの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップを更に含む。方法は、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップを更に含む。方法は、現在のブロックがユニットのうちの１つのグリッド内に含まれる行の先頭にあるかどうかを判断するステップを更に含む。方法は、現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファをリセットするステップを更に含む。
【図面の簡単な説明】
【００１３】
開示される主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう： 
【００１４】
【図１】一実施形態による通信システム（１００）の簡略化されたブロック図の概略図である。
【００１５】
【図２】一実施形態による通信システム（２００）の簡略化されたブロック図の概略図である。
【００１６】
【図３】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【００１７】
【図４】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【００１８】
【図５】別の実施形態によるエンコーダのブロック図を示す。
【００１９】
【図６】別の実施形態によるデコーダのブロック図を示す。
【００２０】
【図７】現在のブロックと周囲の空間マージ候補の概略図である。
【００２１】
【図８】マージ候補リスト構成の概略図である。
【００２２】
【図９】拡張マージモードの概略図である。
【００２３】
【図１０Ａ】履歴ベースの動きベクトル予測バッファの実施形態を示す図である。
【図１０Ｂ】履歴ベースの動きベクトル予測バッファの実施形態を示す図である。
【００２４】
【図１１】符号化ツリーユニットに分割された例示のピクチャを示す図である。
【００２５】
【図１２】タイルに分割された例示のピクチャを示す図である。
【００２６】
【図１３】エンコーダ又はデコーダによって実行されるプロセスの一実施形態を示す図である。
【００２７】
【図１４】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【００２８】
図１は、本開示の一実施形態による通信システム（１００）の簡略化されたブロック図を示している。通信システム（１００）は、例えばネットワーク（１５０）を介して互いに通信することができる複数の端末デバイスを含む。例えば通信システム（１００）は、ネットワーク（１５０）を介して相互接続される第１ペアの端末デバイス（１１０）及び（１２０）を含む。図１の例では、第１ペアの端末デバイス（１１０）及び（１２０）は、データの一方向送信を行う。例えば端末デバイス（１１０）は、ネットワーク（１５０）を介して他の端末デバイス（１２０）へ伝送するために、ビデオデータ（例えば端末デバイス（１１０）によってキャプチャされるビデオピクチャのストリーム）を符号化してよい。符号化されたビデオデータを、１つ以上の符号化されたビデオビットストリームの形態で送信することができる。端末デバイス（１２０）は、ネットワーク（１５０）から符号化されたビデオデータを受け取り、符号化されたビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してよい。一方向性データ伝送は、媒体提供アプリケーション等において一般的であり得る。
【００２９】
別の例では、通信システム（１００）は、例えばビデオ会議中に起こり得る符号化されたビデオデータの双方向伝送を行う、第２ペアの端末デバイス（１３０）及び（１４０）を含む。データの双方向伝送のために、端末デバイス（１３０）及び（１４０）の各端末デバイスは、ネットワーク（１５０）を介して端末デバイス（１３０）及び（１４０）のうちの他の端末デバイスへ伝送するために、ビデオデータ（例えば端末デバイスによってキャプチャされるビデオピクチャのストリーム）を符号化してよい。また、端末デバイス（１３０）及び（１４０）の各端末デバイスは、端末デバイス（１３０）及び（１４０）のうちの他の端末デバイスによって送信された符号化されたビデオデータを受け取ってよく、符号化されたビデオデータを復号してビデオピクチャを復元してよく、復元されたビデオデータに従って、アクセス可能なディスプレイデバイス上にビデオピクチャを表示してよい。
【００３０】
図１の例では、端末デバイス（１１０）、（１２０）、（１３０）及び（１４０）は、サーバ、パーソナルコンピュータ及びスマートフォンとして図示されているが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ及び／又は専用のビデオ会議機器での用途を見つける。ネットワーク（１５０）は、符号化されたビデオデータを端末デバイス（１１０）、（１２０）、（１３０）及び（１４０）の中で伝達する任意の数のネットワークを表し、例えばワイヤ線（有線）及び／又は無線通信ネットワークを含む。通信ネットワーク（１５０）は、回路切替及び／又はパケット切替チャネルでデータを交換してよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び／又はインターネットを含む。本議論の目的のために、ネットワーク（１５０）のアーキテクチャ及びトポロジは、以下で説明されない限り、本開示の動作には重要ではないことがある。
【００３１】
図２は、本開示の主題の適用の例示として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を図示している。開示される主題は、例えばビデオ会議、デジタルテレビ、ＣＤ、ＤＶＤ、メモリスティック等を含むデジタルメディア上における圧縮ビデオの格納を含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
【００３２】
ストリーミングシステムは、キャプチャサブシステム（２１３）を含んでよい。キャプチャサブシステム（２１３）は、例えば圧縮されていないビデオピクチャのストリーム（２０２）を作成するビデオソース（２０１）、例えばデジタルカメラを含むことができる。一例では、ビデオピクチャのストリーム（２０２）は、デジタルカメラによって撮られたサンプルを含む。ビデオピクチャのストリーム（２０２）は、符号化されたビデオデータ（２０４）（又は符号化されたビデオビットストリーム）と比べると、高データボリュームを強調するために、太線で示されており、ビデオソース（２０１）に結合されるビデオエンコーダ（２０３）を含む電子デバイス（２２０）によって処理することができる。ビデオエンコーダ（２０３）は、以下でより詳細に説明される開示される主題の態様を可能に又は実装するために、ハードウェア、ソフトウェア又はそれらの組合せを含むことができる。符号化されたビデオデータ（２０４）（又は符号化されたビットストリーム（２０４））は、ビデオピクチャのストリーム（２０２）と比べると、より低いデータボリュームを強調するために、細線で示されており、将来の使用のために、ストリーミングサーバ（２０５）上に格納され得る。図２のクライアントサブシステム（２０６）及び（２０８）のような１つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ（２０５）にアクセスして、符号化されたビデオデータ（２０４）のコピー（２０７）及び（２０９）を取り出すことができる。クライアントサブシステム（２０６）は、例えば電子デバイス（２３０）内にビデオデコーダ（２１０）を含むことができる。ビデオデコーダ（２１０）は、符号化されたビデオデータの入ってきたコピー（２０７）を復号し、ディスプレイ（２１２）（例えばディスプレイ画面）又は他のレンダリングデバイス（図示せず）上にレンダリングすることができるビデオピクチャの出力ストリーム（２１１）を作成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ（２０４）（２０７）及び（２０９）（例えばビデオストリーム）を、特定のビデオ符号化／圧縮規格に従って符号化することができる。これらの規格の例は、ＩＴＵ−Ｔ推奨のＨ．２６５を含む。一例では、開発中のビデオ符号化規格は、略式に、Ｖｅｒｓａｔｉｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ又はＶＶＣとして知られている。開示される主題は、ＶＶＣのコンテキストで使用されてよい。
【００３３】
電子デバイス（２２０）及び（２３０）は他のコンポーネント（図示せず）を含むことができることに留意されたい。例えば電子デバイス（２２０）はビデオデコーダ（図示せず）を含むことができ、同様に電子デバイス（２３０）はビデオエンコーダ（図示せず）を含むことができる。
【００３４】
図３は、本開示の実施形態によるビデオデコーダ（３１０）のブロック図を示している。ビデオデコーダ（３１０）を電子デバイス（３３０）に含めることができる。電子デバイス（３３０）は、レシーバ（３３１）（例えば受信回路）を含むことができる。ビデオデコーダ（３１０）を、図２の例のビデオデコーダ（２１０）の代わりに使用することができる。
【００３５】
レシーバ（３３１）は、ビデオデコーダ（３１０）によって復号されるべき１つ以上の符号化されたビデオシーケンスを受け取ってよく；同じ又は別の実施形態では、一度に１つの符号化されたビデオシーケンスであってよく、この場合、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスとは独立である。符号化されたビデオシーケンスは、チャネル（３０１）から受け取られてよく、該チャネル（３０１）は、符号化されたビデオデータを格納するストレージデバイスへのハードウェア／ソフトウェアリンクであってよい。レシーバ（３３１）は、エンティティ（図示せず）を使用してそれらのそれぞれに転送され得る他のデータ、例えば符号化されたオーディオデータ及び／又は補助データストリームとともに、符号化されたビデオデータを受け取ってよい。レシーバ（３３１）は、符号化されたビデオストリームを他のデータとは分離してよい。ネットワークジッタと戦うために、バッファメモリ（３１５）は、レシーバ（３３１）とエントロピーデコーダ／パーサ（３２０）（以後、「パーサ（３２０）」）の間に結合されてよい。特定の適用では、バッファメモリ（３１５）は、ビデオデコーダ（３１０）の一部である。他の例では、バッファメモリ（３１５）は、ビデオデコーダ（３１）（図示せず）の外部とすることができる。また他の例では、ビデオデコーダ（３１０）の内部の、例えば再生タイミングを扱う別のバッファメモリ（３１５）に加えて、例えばネットワークジッタと戦うバッファメモリ（図示せず）がビデオデコーダ（３１０）の外部に存在する可能性もある。レシーバ（３３１）が、十分な帯域幅及び制御可能性の格納／転送デバイスから又は同期ネットワーク（ｉｓｏｓｙｎｃｈｒｏｎｏｕｓ  ｎｅｔｗｏｒｋ）からデータを受け取っているとき、バッファメモリ（３１５）は必要とされないことがあるか又は小さい可能性がある。そのようなベストエフォートのパケットネットワークにおける使用のために、バッファメモリ（３１５）は必要とされることがあり、比較的大きいものとすることができ、有利には適応サイズとすることができ、少なくとも部分的に、ビデオデコーダ（３１０）の外部でオペレーティングシステム内又は同様の要素（図示せず）内で実装されてよい。
【００３６】
ビデオデコーダ（３１０）は、符号化されたビデオシーケンスからシンボル（３２１）を再構築するためにパーサ（３２０）を含んでよい。これらのシンボルのカテゴリは、ビデオデコーダ（３１０）の動作を管理するために使用される情報と、潜在的に図３に示したように電子デバイス（３３）の一体部分ではないが、電子デバイス（３３０）と結合することができるレンダリングデバイス（３１２）（例えばディスプレイ画面）等のレンダリングデバイスを制御する情報を含む。レンダリングデバイスのための制御情報は、補足強調情報（ＳＥＩ：Ｓｕｐｐｌｅｍｅｎｔａｒｙ  Ｅｎｈａｎｃｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ）メッセージ又はビデオユーザビリティ情報（ＶＵＩ：Ｖｉｄｅｏ  Ｕｓａｂｉｌｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ）パラメータセットフラグメント（図示せず）の形であってよい。パーサ（３２０）は、受け取った符号化されたビデオシーケンスを解析／エントロピー復号してよい。符号化されるビデオシーケンスの符号化は、ビデオ符号化技術又は規格によるものとすることができ、可変長符号化、ハフマン符号化、文脈依存を伴うか又は伴わない算術符号化等を含む、様々な原理に従うことができる。パーサ（３２０）は、符号化されたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも１つについての１組のサブグループパラメータを、グループの少なくとも１つのパラメータに基づいて抽出し得る。サブグループは、グループオブピクチャ（ＧＯＰ）、ピクチャ、タイル、スライス、マイクロブロック、符号化ユニット（ＣＵ）、ブロック、変換ユニット（ＴＵ）、予測ユニット（ＰＵ）等を含むことができる。パーサ（３２０）は、符号化されたビデオシーケンスから、例えば変換係数、量子化気パラメータ値、動きベクトル等の情報も抽出し得る。
【００３７】
パーサ（３２０）は、シンボル（３２１）を作成するよう、バッファメモリ（３１５）から受け取ったビデオシーケンスに対してエントロピー復号／解析操作を実行し得る。
【００３８】
シンボル（３２１）の再構築は、符号化されたビデオピクチャ又はその一部（例えばインター及びイントラピクチャ、インター及びイントラブロック）のタイプ及び他の因子に応じて、複数の異なるユニットを要する可能性がある。どのユニットが及びどのように関与するかは、符号化されたビデオシーケンスからパーサ（３２０）によって解析されたサブグループ制御情報によって制御できる。以下、パーサ（３２０）と複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確性のために示されない。
【００３９】
すでに述べた機能ブロックの他に、ビデオデコーダ（３１０）を、以下で説明されるように複数の機能ユニットに概念的に細分することができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは、相互に密接に相互作用し、少なくとも部分的に相互に統合される可能性がある。しかしながら、開示される主題を説明する目的のために、以下、機能ユニットへの概念的細分は適切である。
【００４０】
第１ユニットは、スカラー／逆変換ユニット（３５１）である。スカラー／逆変換ユニット（３５１）は、量子化された変換係数、並びに使用すべき変換、ブロックサイズ、量子化因子、量子化スケーリングメトリクス等を含む制御情報を、パーサ（３２）からのシンボル（３２１）として受け取る。スカラー／逆変換ユニット（３５１）は、アグリゲータ（３５５）に入力することができるサンプル値を含むブロックを出力することができる。
【００４１】
場合によって、スカラー／逆変換ユニット（３５１）の出力サンプルは、イントラ符号化ブロック、すなわち、以前に再構築されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックに関係する可能性がある。そのような予測情報を、イントラピクチャ予測ユニット（３５２）によって提供することができる。いくつかの場合では、イントラピクチャ予測ユニット（３５２）は、現在のピクチャバッファ（３５８）からフェッチされた、周囲の既に再構築された情報を使用して、同じサイズのブロック及び再構築中のそのブロックの形状を生成する。現在のピクチャバッファ（３５８）は、例えば部分的に再構築された現在のピクチャ及び／又は完全に再構築された現在のピクチャをバッファする。アグリゲータ（３５５）は、場合によって、サンプルごとに、予測ユニット（３５２）によって生成された予測情報を、スカラー／逆変換ユニット（３５１）によって提供されるような出力サンプル情報に追加する。
【００４２】
他の場合には、スカラー／逆変換ユニット（３５１）の出力サンプルは、インター符号化された、潜在的には動き補償されたブロックに関係する可能性がある。そのような場合、動き補償予測ユニット（３５３）は、参照ピクチャメモリ（３５７）にアクセスして、予測のために使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル（３２１）に従って、フェッチされたサンプルを動き補償した後、出力サンプル情報を生成するために、これらのサンプルを、アグリゲータ（３５５）によって、（この場合、残差サンプル又は残差信号と呼ばれる）スカラー／逆変換ユニット（３５１）の出力に追加することができる。動き補償予測ユニット（３５３）が予測サンプルをフェッチする参照ピクチャメモリ（３５７）内のアドレスを、例えばＸ、Ｙ及び参照ピクチャコンポーネントを有することができるシンボル（３２１）の形態で動き補償予測ユニット（３４３）に利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用されているときに、参照ピクチャメモリ（３５７）からフェッチされるサンプル値の補間、動きベクトル予測機構等も含むことができる。
【００４３】
アグリゲータ（３５５）の出力サンプルは、ループフィルタユニット（３５６）において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、符号化されたビデオシーケンス（符号化されたビデオビットストリームとも呼ばれる）に含まれるパラメータによって制御され、パーサ（３２０）からのシンボル（３２１）としてループフィルタユニット（３５６）に利用可能にされるインループフィルタ技術を含むことができるが、符号化されたピクチャ又は符号化されたビデオシーケンスの（復号順で）以前の部分の復号の間に取得されるメタ情報に応じるだけでなく、以前に再構築されてループフィルタされたサンプル値にも応じたものとすることができる。
【００４４】
ループフィルタユニット（３５６）の出力は、レンダリングデバイス（３１２）に出力することができ、将来のインターピクチャ予測での使用のために参照ピクチャメモリ（３５７）に格納することができ、サンプルストリームとすることができる。
【００４５】
特定の符号化されたピクチャは、いったん十分に再構築されると、将来の予測のために参照ピクチャとして使用することができる。例えば現在のピクチャに対応する符号化されたピクチャが十分に再構築されて、符号化されたピクチャが参照ピクチャとして（例えばパーサ（３２０）によって）識別されると、現在のピクチャバッファ（３５８）は、参照ピクチャメモリ（３５７）の一部になることができ、続く符号化されたピクチャの再構築を開始する前にフレッシュな現在のピクチャバッファを再割り当てすることができる。
【００４６】
ビデオデコーダ（３１０）は、ＩＴＵ−Ｔ  Ｒｅｃ．  Ｈ２６５等の規格の所定のビデオ圧縮技術に従って復号動作を実行してよい。符号化されたビデオシーケンスは、該符号化されたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックスと、ビデオ圧縮技術又は規格のドキュメントとしてのプロファイルの双方に固着するという意味で、使用されているビデオ圧縮技術又は規格によって指定されるシンタックスに準拠し得る。具体的に、プロファイルは、特定のツールを、ビデオ圧縮技術又は規格で利用可能なツールのすべてから、そのプロファイルの下で使用するための利用可能な唯一のツールとして選択することができる。また、準拠のために必要なことは、符号化されたビデオシーケンスの複雑性が、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることである。場合によって、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート（例えば毎秒メガサンプルで測定される）、最大参照ピクチャサイズ等を制約する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ（ＨＲＤ：Ｈｙｐｏｔｈｅｔｉｃａｌ  Ｒｅｆｅｒｅｎｃｅ  Ｄｅｃｏｄｅｒ）の仕様と、符号化されたビデオシーケンスでシグナリングされるＨＲＤバッファ管理のためのメタデータを通して更に制約される可能性がある。
【００４７】
実施形態において、レシーバ（３３１）は、符号化されたビデオとともに追加の（冗長）データを受け取ってよい。追加のデータは、符号化されたビデオシーケンスの一部として含まれてよい。追加のデータは、ビデオデコーダ（３１０によって、データを適切に復号し、かつ／又は元のビデオデータをより正確に再構築するために使用されてよい。追加のデータは、例えば時間的、空間的又は信号雑音比（ＳＮＲ）強化層、冗長スライス、冗長ピクチャ、前方エラー訂正コード等の形態とすることができる。
【００４８】
図４は、本開示の実施形態によるビデオエンコーダ（４０３）のブロック図を示している。ビデオエンコーダ（４０３）は電子デバイス（４２０）に含まれる。電子デバイス（４２０）はトランスミッタ（４４０）（例えば送信回路）を含む。ビデオエンコーダ（４０３）を、図２の例のビデオエンコーダ（２０３）の代わりに使用することができる。
【００４９】
ビデオエンコーダ（４０３）は、ビデオソース（４０１）（図４の例では、電子デバイス（４２０）の一部ではない）からビデオサンプルを受け取ってよく、ビデオソース（４０１）は、ビデオエンコーダ（４０３）によって符号化されるべきビデオイメージをキャプチャし得る。別の例では、ビデオソース（４０１）は、電子デバイス（４２０）の一部である。
【００５０】
ビデオソース（４０１）は、任意の適切なビット深度（例えば８ビット、１０ビット、１２ビット、．．．）、任意の色空間（例えばＢＴ．６０１  Ｙ  ＣｒＣＢ、ＲＧＢ、．．．）及び任意の適切なサンプリング構造（例えばＹ  ＣｒＣｂ  ４：２：０、Ｙ  ＣｒＣｂ  ４：４：４）とすることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ（４０３）によって符号化されるべきソースビデオシーケンスを提供してよい。メディアサービングシステムでは、ビデオソース（４０１）は、以前に準備されたビデオを格納しているストレージデバイスであってよい。ビデ会議システムでは、ビデオソース（４０１）は、ローカルイメージ情報をビデオシーケンスとしてキャプチャするカメラであってよい。ビデオデータは、シーケンスとして見られるときに動きを伝える、複数の個々のピクチャとして提供されてよい。ピクチャそれ自体が、ピクチャの空間アレイとして構成されてもよく、この場合、各ピクチャは、使用中のサンプリング構造、色空間等に応じて１つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【００５１】
実施形態によると、ビデオエンコーダ（４０３）は、ソースビデオシーケンスのピクチャを、リアルタイムで又は適用によって要求される任意の他の時間制約下で、符号化されたビデオシーケンス（４４３）に符号化して圧縮することができる。適切な符号化スピードを実施することは、コントローラ（４５０）の１つの機能である。いくつかの実施形態において、コントローラ（４５０）は、以下で説明される他の機能ユニットを制御し、それらの他の機能ユニットに機能的に結合される。結合は明確性のために示されていない。コントローラ（４５０）によって設定されたパラメータは、レート制御関連パラメータ（ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、．．．）、ピクチャサイズ、グループオブピクチャ（ＧＯＰ）レイアウト、最大動きベクトル検索範囲等を含むことができる。コントローラ（４５）は、特定のシステム設計のために最適化されたビデオエンコーダ（４０３）に関連する、他の適切な機能を有するように構成され得る。
【００５２】
いくつかの実施形態において、ビデオエンコーダ（４０３）は、符号化ループで動作するように構成される。過剰に単純化された説明として、一例において、符号化ループは、（例えば符号化されるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボルを作成することに関与する）ソースコーダ（４３０）と、ビデオエンコーダ（４０３）に組み込まれた（ローカル）デコーダ（４３３）を含むことができる。デコーダ（４３３）は、（リモート）デコーダが作成する方法と同様の方法で（シンボルと、符号化されたビデオビットストリームとの間の任意の圧縮が、開示される主題で考慮されるビデオ圧縮技術で可逆であるように）シンボルを再構築してサンプルデータを作成する。再構築されたサンプルストリーム（サンプルデータ）は、参照ピクチャメモリ（４３４）に入力される。シンボルストリームの復号は、デコーダの位置（ローカル又はリモート）に依存しないビット正確な結果（ｂｉｔ−ｅｘａｃｔ  ｒｅｓｕｌｔｓ）をもたらすので、参照ピクチャメモリ（４３４）の内容も、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」ものと全く同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本的原理（及び例えばチャネルエラーのために同期生を維持できない場合に結果として生じるドリフト）は、いくつかの関連技術において同様に使用される。
【００５３】
「ローカル」デコーダ（４３３）の動作は、図３に関連して上記で既に詳述した、ビデオデコーダ（３１０）のような「リモート」デコーダのものと同じにすることができる。しかしながら、簡潔に図３も参照すると、シンボルが利用可能であり、エントロピーコーダ（４４５）及びパーサ（３２０）による符号化ビデオシーケンスへのシンボルの符号化／復号は可逆とすることができ、バッファメモリ（３１５）を含むビデオデコーダ（３１０）のエントロピー復号部分及びパーサ（３２０）は、ローカルデコーダ（４３３）では完全に実装されないことがある。
【００５４】
この時点で行うことができる観察は、デコーダ内に存在する構文解析／エントロピー復号を除く任意のデコーダ技術も必ず、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があることである。この理由のために、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に説明されるデコーダ技術の反対であるので、省略することができる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【００５５】
動作中に、いくつかの例において、ソースコーダ（４３０）は、「参照ピクチャ」として指定されたビデオシーケンスからの１つ以上の以前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する、動き補償予測符号化を実行してよい。このようにして、符号化エンジン（４３２）は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差を符号化する。
【００５６】
ローカルビデオデコーダ（４３３）は、ソースコーダ（４３０）によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号してよい。符号化エンジン（４３２）の動作は有利には、非可逆プロセスであり得る。符号化されたビデオデータがビデオデコーダ（図４では図示せず）で復号され得るとき、再構築されたビデオシーケンスは、典型的に、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってよい。ローカルビデオデコーダ（４３３）は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構築された参照ピクチャを参照ピクチャキャッシュ（４３４）に記憶させてよい。このようにして、ビデオエンコーダ（４０３）は、共通のコンテンツを有する再構築された参照ピクチャのコピーを、遠端のビデオデコーダによって得られることになる（送信エラーのない）再構築された参照ピクチャとしてローカルに記憶してよい。
【００５７】
予測子（４３５）は、符号化エンジン（４３２）について予測探索を実行してよい。すなわち、符号化されるべき新しいピクチャに対して、予測子（４３５）は、サンプルデータ（候補参照ピクセルブロックとして）又は参照ピクチャ動きベクトル、ブロック形状等のような特定のメタデータについて、参照ピクチャメモリ（４３４）を検索してよく、これらは、新たなピクチャについて適切な予測参照として機能し得る。予測子（４３５）は、適切な予測参照を見つけるために、ピクセルブロックバイサンプルブロックベース（ｓａｍｐｌｅ  ｂｌｏｃｋ−ｂｙ−ｐｉｘｅｌ  ｂｌｏｃｋ  ｂａｓｉｓ）で作用し得る。場合によっては、予測子（４３５）によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ（４３４）に記憶された複数の参照ピクチャから引き出された予測参照を有してよい。
【００５８】
コントローラ（４５０）は、例えばビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ（４３０）の符号化動作を管理してよい。
【００５９】
前述の機能ユニットのすべての出力は、エントロピーコーダ（４４５）におけるエントロピー符号化を受けてよい。エントロピーコーダ（４４５）は、例えばハフマン符号化、可変長符号化、算術符号化等の当業者に公知の技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【００６０】
トランスミッタ（４４０）は、エントロピーコーダ（４４５）によって作成された符号化されたビデオシーケンスをバッファリングして、通信チャネル（４６０）を介した送信の準備を行ってよく、通信チャネル（４６０）は、符号化されたビデオデータを記憶するストレージデバイスへのハードウェア／ソフトウェアリンクであってよい。トランスミッタ（４４０）は、ビデオコーダ（４０３）からの符号化されたビデオデータを、例えば符号化されたオーディオデータ及び／又は補助データストリーム（図示されないソース）のような、送信されるべき他のデータとマージしてよい。
【００６１】
コントローラ（４５０）は、ビデオエンコーダ（４０３）の動作を管理してよい。符号化の間、コントローラ（４５０）は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当ててよく、該符号化ピクチャタイプは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得る。例えばピクチャは、しばしば、次のピクチャタイプの１つとして割り当てられてよい：
【００６２】
イントラピクチャ（Ｉピクチャ）は、予測のソースとしてシーケンス内のいずれの他のピクチャも使用することなく、符号化されて復号され得るものであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ（「ＩＤＲ」：Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｅｃｏｄｅｒ  Ｒｅｆｒｅｓｈ）ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Ｉピクチャのこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【００６３】
予測ピクチャ（Ｐピクチャ）は、各ブロックのサンプル値を予測するために、最大で１つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して符号化されて復号され得るものであり得る。
【００６４】
双方向予測ピクチャ（Ｂピクチャ）は、各ブロックのサンプル値を予測するために、最大で２つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して符号化されて復号され得るものであり得る。同様に、複数の予測ピクチャは、単一ブロックの再構築のために、２つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【００６５】
ソースピクチャは一般に、空間的に複数のサンプルブロック（例えば各々４×４、８×８、４×８又は１６×１６サンプルのブロック）に分割され、ブロック毎に符号化されてよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるように、他の（既に符号化された）ブロックを参照して予測的に符号化され得る。例えばＩピクチャのブロックは、非予測的に符号化されてもよく、あるいはこれらは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい（空間予測又はイントラ予測）。Ｐピクチャのピクセルブロックは、１つの以前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して、予測的に符号化され得る。Ｂピクチャのブロックは、１つ又は２つの以前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して、予測的に符号化され得る。
【００６６】
ビデオエンコーダ（４０３）は、ＩＴＵ−Ｔ  Ｒｅｃ．  Ｈ．２６５等の所定のビデオ符号化技術又は規格に従って符号化動作を実行してよい。その動作において、ビデオエンコーダ（４０３）は、入力ビデオシーケンスにおける時間的及び空間的冗長性を悪用する予測符号化動作を含む、様々な圧縮動作を実行してよい。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術又は規格によって指定された構文に準拠し得る。
【００６７】
一実施形態では、トランスミッタ（４４０）は、符号化されたビデオとともに追加データを送信してもよい。ソースコーダ（４３０）は、そのようなデータを、符号化されたビデオシーケンスの一部として含んでよい。追加データは、時間的／空間的／ＳＮＲ強調層、冗長ピクチャ及びスライスのような他の形式の冗長データ、ＳＥＩ（Ｓｕｐｐｌｅｍｅｎｔａｒｙ  Ｅｎｈａｎｃｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ）メッセージ、視覚的ユーザビリティ情報（ＶＵＩ：Ｖｉｓｕａｌ  Ｕｓａｂｉｌｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ）パラメータセットフラグメント等を含んでもよい。
【００６８】
ビデオは、時間シーケンスにおいて複数のソースピクチャ（ビデオピクチャ）としてキャプチャされ得る。イントラピクチャ予測（しばしばイントラ予測と略される）は、所与のピクチャの空間相関の使用し、インターピクチャ予測は、ピクチャ間の（時間的又は他の）相関を使用する。一例では、現在のピクチャと呼ばれる符号化／復号中の特定のピクチャは、ブロックに分割される。現在のピクチャ内のブロックが、ビデオ内の、以前に符号化されて依然としてバッファリングされている参照ピクチャ内の参照ブロックに類似するとき、現在のピクチャ内のブロックを、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合は、参照ピクチャを識別する三次元（ｔｈｉｒｄ  ｄｉｍｅｎｓｉｏｎ）を有することができる。
【００６９】
いくつかの実施形態において、双予測技術（ｂｉ−ｐｒｅｄｉｃｔｉｏｎ  ｔｅｃｈｎｉｑｕｅ）を、インターピクチャ予測において使用することができる。双予測技術によれば、ビデオ内の現在のピクチャに対して復号順で両方とも先にある（しかし、それぞれ、表示順では、過去及び将来であり得る）第１及び第２参照ピクチャのような２つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第１参照ピクチャ内の第１参照ブロックを指す第１動きベクトルと、第２参照ピクチャ内の第２参照ブロックを指す第２動きベクトルとによって符号化できる。該ブロックは、第１参照ブロックと第２参照ブロックの組合せによって予測できる。
【００７０】
さらに、符号化効率を改善するために、マージモード技法をインターピクチャ予測で使用することができる。
【００７１】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックのユニットで実行される。例えばＨＥＶＣ規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット（ＣＴＵ：ｃｏｄｉｎｇ  ｔｒｅｅ  ｕｎｉｔｓ）に分割され、ピクチャ内のＣＴＵは、６４×６４ピクセル、３２×３２ピクセル又は１６×１６ピクセルのような同じサイズを有する。一般に、ＣＴＵは、１つのルマＣＴＢと２つのクロミナンスＣＴＢである３つの符号化ツリーブロック（ＣＴＢ）を含む。各ＣＴＵを、１つ又は複数の符号化ユニット（ＣＵ）に再帰的に４分木分割することができる。例えば６４×６４ピクセルのＣＴＵを、６４×６４ピクセルの１つの符号化ユニット（ＣＵ）、３２×３２ピクセルの４つのＣＵ又は１６×１６ピクセルの１６個のＣＵに分割することができる。一例では、各ＣＵを分析して、インター予測タイプ又はイントラ予測タイプのような、ＣＵの予測タイプを決定する。ＣＵは時間的及び／又は空間的予測可能性に依存して１つ以上の予測ユニット（ＰＵ）に分割される。一般に、各ＰＵは、１つのルマ予測ブロック（ＰＢ）と２つのクロミナンスＰＢを含む。一実施形態では、符号化（符号化／復号）における予測動作は、予測ブロックのユニットにおいて実行される。予測ブロックの例としてルマ予測ブロックを用いると、予測ブロックは、８×８ピクセル、１６×１６ピクセル、８×１６ピクセル、１６×８ピクセル等のピクセルに対する値（例えばルマ値）の行列を含む。
【００７２】
図５は、本開示の別の実施形態によるビデオエンコーダ（５０３）の図を示す。ビデオエンコーダ（５０３）は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック（例えば予測ブロック）を受け取り、処理ブロックを、符号化されたビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一実施形態では、ビデオエンコーダ（５０３）は、図２の例のビデオエンコーダ（２０３）の代わりに使用される。
【００７３】
ＨＥＶＣの例では、ビデオエンコーダ（５０３）は、８×８サンプルの予測ブロック等の処理ブロックのサンプル値のマトリックスを受け取る。ビデオエンコーダ（５０３）は、処理ブロックが、イントラモード、インターモード、あるいは例えばレート歪み最適化を用いる双予測モードを使用して、最も良く符号化されるかどうかを決定する。処理ブロックがイントラモードで符号化されるとき、ビデオエンコーダ（５０３）は、イントラ予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよく；処理ブロックがインターモード又は双予測モードで符号化されるとき、ビデオエンコーダ（５０３）は、それぞれ、インター予測又は双予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよい。ある種のビデオ符号化技術では、マージモードは、インターピクチャ予測サブモードとすることができ、この場合、動きベクトルは、１つ以上の動きベクトル予測子から、該予測子の外部の符号化された動きベクトル構成要素の利益なしに導出される。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル構成要素が存在してもよい。一実施形態では、ビデオエンコーダ（５０３）は、処理ブロックのモードを決定するためのモード決定モジュール（図示せず）等の他の構成要素を含む。
【００７４】
図５の例では、ビデオエンコーダ（５０３）は、図５に示されるように一緒に結合される、インターエンコーダ（５３０）、イントラエンコーダ（５２２）、残差計算機（５２３）、スイッチ（５２６）、残差エンコーダ（５２４）、一般コントローラ（５２１）及びエントロピーエンコーダ（５２５）を含む。
【００７５】
インターエンコーダ（５３０）は、現在のブロック（例えば処理ブロック）のサンプルを受け取り、ブロックを参照ピクチャ内の１つ以上の参照ブロックと比較し（例えば以前のピクチャ及び後のピクチャ内のブロック）、インター予測情報（例えばインター符号化技術による冗長情報の説明、動きベクトル、マージモード情報）を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果（例えば予測ブロック）を計算するように構成される。
【００７６】
イントラエンコーダ（５２２）は、現在のブロック（例えば処理ブロック）のサンプルを受け取り、場合によっては、ブロックを、同じピクチャ内の既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報（例えば１つ以上のイントラ符号化技術によるイントラ予測方向情報）も生成するように構成される。
【００７７】
一般コントローラ（５２１）は、一般制御データを決定し、一般制御データに基づいてビデオエンコーダ（５０３）の他の構成要素を制御するように構成される。一例では、一般コントローラ（５２１）は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ（５２６）に提供する。例えばモードがイントラのとき、一般コントローラ（５２１）は、残差計算機（５２３）による使用のためにイントラモードの結果を選択するようにスイッチ（５２６）を制御し、イントラ予測情報を選択してビットストリームにイントラ予測情報を含めるようにエントロピーエンコーダ（５２５）を制御し、モードがインターモードのとき、一般コントローラ（５２１）は、残差計算機（５２３）による使用のためにインター予測結果を選択するようにスイッチ（５２６）を制御し、インター予測情報を選択してビットストリームにインター予測情報を含めるようにエントロピーエンコーダ（５２５）を制御する。
【００７８】
残差計算機（５２３）は、受け取ったブロックと、イントラエンコーダ（５２２）又はインターエンコーダ（５３０）から選択された予測結果との間の差（残差データ）を計算するように構成される。残差エンコーダ（５２４）は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ（５２４）は、周波数領域の残差データを変換し、変換係数を生成するように構成される。変換係数は、次いで、量子化処理を受けて、量子化された変換係数を得る。
【００７９】
エントロピーエンコーダ（５２５）は、符号化されたブロックを含むようにビットストリームをフォーマットするよう構成される。エントロピーエンコーダ（５２５）は、ＨＥＶＣ規格等の適切な規格に従った様々な情報を含むように構成される。一例では、エントロピーエンコーダ（５２５）は、一般制御データ、選択された予測情報（例えばイントラ予測情報又はインター予測情報）、残差情報及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題に従って、インターモード又は双予測モードのいずれかのマージサブモードでブロックを符号化するとき、残差情報は存在しないことに留意されたい。
【００８０】
図６は、本開示の別の実施形態によるビデオデコーダ（６１０）の図を示す。ビデオデコーダ（６１０）は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受け取り、符号化されたピクチャを復号して、再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ（６１０）は、図２の例のビデオデコーダ（２１０）の代わりに使用される。
【００８１】
図６の例では、ビデオデコーダ（６１０）は、図６に図示されるように一緒に結合される、エントロピーデコーダ（６７１）、インターデコーダ（６８０）、残差デコーダ（６７３）、再構築モジュール（６７４）及びイントラデコーダ（６７２）を含む。
【００８２】
エントロピーデコーダ（６７１）は、符号化されたピクチャから、該符号化されたピクチャが構成される構文要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えばブロックが符号化されるモード（例えばイントラ、インター、双予測、マージサブモード又は別のサブモードにおける後者の２つ等）、それぞれイントラデコーダ（６７２）又はインターデコーダ（６８０）によって予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報（例えばイントラ予測情報又はインター予測情報）、例えば量子化された変換係数等の形態の残差情報を含むことができる。一例では、予測モードがインター又は双予測モードのとき、インター予測情報がインターデコーダ（６８０）に提供され；予測タイプがイントラ予測タイプのとき、イントラ予測情報がイントラデコーダ（６７２）に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ（６７３）に提供される。
【００８３】
インターデコーダ（６８０）は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成される。
【００８４】
イントラデコーダ（６７２）は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成される。
【００８５】
残差デコーダ（６７３）は、逆量子化を実行して非量子化（ｄｅ−ｑｕａｎｔｉｚｅｄ）変換係数を抽出し、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ（６７３）はまた、特定の制御情報（量子化器パラメータＱＰを含む）も必要とすることがあり、その情報は、エントロピーデコーダ（６７１）（低ボリューム制御情報のみであり得るので、データ経路は図示されない）によって提供されてもよい。
【００８６】
再構築モジュール（６７４）は、空間領域において、残差デコーダ（６７３）による出力としての残差と、（場合によっては、インター又はイントラ予測モジュールによる出力としての）予測結果とを組み合わせて、再構築ブロックを形成するように構成され、再構築ブロックは再構築ピクチャの一部であってもよく、再構築ピクチャは再構築ビデオの一部であってもよい。デブロッキング操作等の他の適切な操作を行って、視覚品質を改善することができることに留意されたい。
【００８７】
ビデオエンコーダ（２０３）、（４０３）及び（５０３）、並びにビデオデコーダ（２１０）、（３１０）及び（６１０）は、任意の適切な技術を使用して実装できることに留意されたい。一実施形態では、ビデオエンコーダ（２０３）、（４０３）及び（５０３）、並びにビデオデコーダ（２１０）、（３１０）及び（６１０）を、１つ以上の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ（２０３）、（４０３）及び（４０３）、並びにビデオデコーダ（２１０）、（３１０）及び（６１０）を、ソフトウェア命令を実行する１つ以上のプロセッサを使用して実装することができる。
【００８８】
マージ候補は、現在のブロックの空間的又は時間的隣接ブロックからの動き情報をチェックすることによって形成されてもよい。図７を参照すると、現在のブロック（７０１）は、空間的にシフトされた同じサイズの前のブロックから予測可能である、動き検索プロセス中にエンコーダ／デコーダによって見つけられたサンプルを含む。いくつかの実施形態では、その動きベクトルを直接符号化する代わりに、動きベクトルを、１つ以上の参照ピクチャに関連付けられるメタデータから、（復号順で）最新の参照ピクチャから、例えばＤ、Ａ、Ｃ、Ｂ及びＥ（それぞれ７０２〜７０６）で示される５つの周囲のサンプルのいずれかに関連付けられる動きベクトルを使用して、導出することができる。ブロックＡ、Ｂ、Ｃ、Ｄ及びＥは、空間マージ候補と呼ばれてよい。これらの候補は、連続的にチェックされてマージ候補リストに入ってよい。重複する候補がリストから除去されることを確実にするために、プルーニング操作が実行されてもよい。
【００８９】
いくつかの実施形態では、空間的候補をマージリストに入れた後、時間的候補もチェックしてリストにする。例えば指定された参照ピクチャ内の現在のブロックの並置ブロック（ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋ）を見つける。参照ピクチャ内のＣ０位置（７０７）における動き情報は、時間マージ候補として使用される。Ｃ０位置は、このブロックの左上の角が、現在のブロック７０１の参照ピクチャ内の並置ブロックの右下の角である参照ピクチャ内のブロックであってよい。参照ピクチャ内の並置ブロックは、現在のブロック７０１と同じ位置座標（例えばｘ及びｙ座標）を含んでよい。Ｃ０位置（７０７）のブロックがインターモードで符号化されていない又は利用可能でない場合、Ｃ１位置のブロックを使用してもよい。Ｃ１位置のブロックは、参照ピクチャ内の並置ブロック内のブロックの中心位置（例えばｗ／２、ｈ／２）に左上の角を有してよい。特に、位置Ｃ１のブロックは、参照ピクチャの並置ブロックのサブブロックであってよい。上記の例では、ｗ及びｈはそれぞれ、ブロックの幅及び高さである。いくつかの実施形態によれば、追加のマージ候補は、組み合わされた双予測候補及びゼロ動きベクトル候補を含む。
【００９０】
スキップモードは、動きデータが、明示的にシグナリングされる代わりに推定されることと、予測残差がゼロであること（すなわち、変換係数が送信されないこと）とをブロックに対して示すために使用されてもよい。インターピクチャ予測スライス内の各ＣＵの開始時に、（ｉ）ＣＵが１つのＰＵのみを含むこと（例えば２Ｎｘ２Ｎ）、（ｉｉ）マージモードを使用して動きデータを導出すること又は（ｉｉｉ）ビットストリーム内に残差データが存在しないこと、のうちの１つ以上を暗示する、スキップフラグ（例えばｓｋｉｐ_ｆｌａｇ）がシグナリングされることがある。
【００９１】
いくつかの実施形態によれば、サブＣＵモードは、追加のマージ候補として有効にされる。いくつかの実施形態では、サブＣＵモードをシグナリングするために追加の構文要素は使用されない。いくつかの実施形態では、２つの追加のマージ候補を各ＣＵのマージ候補リストに追加して、代替の時間的動きベクトル予測（ＡＴＭＶＰ：ａｌｔｅｒｎａｔｉｖｅ  ｔｅｍｐｏｒａｌ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ）モード及び空間的−時間的動きベクトル予測（ＳＴＭＶＰ：ｓｐａｔｉａｌ−ｔｅｍｐｏｒａｌ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ）モードを表す。
【００９２】
シーケンスパラメータセットは、マージリスト内の候補の数を示してよい。例えばシーケンスパラメータセットがＡＴＭＶＰ及びＳＴＭＶＰが有効であることを示す場合、最大７つのマージ候補をマージリストで使用してよい。追加マージ候補の符号化ロジックは、マージ候補リスト内の他のマージ候補と同じであってもよく、その結果、Ｐスライス又はＢスライス内のＣＵ毎に、２つの追加マージ候補に対して２つ以上のレート歪み（ＲＤ：ｒａｔｅ−ｄｉｓｔｏｒｔｉｏｎ）チェックが実行される。マージ候補の順序は、Ａ、Ｂ、Ｃ、Ｄ、ＡＴＭＶＰ、ＳＴＭＶＰ、Ｅ（リスト内のマージ候補が６未満のとき）、時間的候補、結合された双予測候補及びゼロ動きベクトル候補であってよい。マージ候補リストは、マージインデックスによって参照されてよい。いくつかの実施形態では、マージインデックスのすべてのビンは、コンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ：ｃｏｎｔｅｘｔ−ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ）によってコンテキスト符号化される。他の実施形態では、最初のビンのみがコンテキスト符号化され、残りのビンはコンテキストバイパス符号化される。
【００９３】
いくつかの実施形態によれば、候補動きベクトルは、８×８ブロックのステップサイズで、以前に符号化されたブロックから探索される。図８は、８×８ブロックで囲まれた現在のブロック８００を示す。最も近い空間的隣接はカテゴリ１の候補であり、すぐ上の行（すなわち、ブロックｍｖ０及びｍｖ１を含む行）、左側の列（すなわち、ｍｖ２を含む列）及び右上の角（すなわち、ｍｖ２）をカテゴリ１として含む。カテゴリ２候補は、現在のブロック境界から離れており、以前に符号化されたフレーム内に並置されている、外側領域のブロックを含んでよい。カテゴリ２の候補は、最大３つの候補を含んでよい。図８において、カテゴリ２の候補は、外側の上の行（すなわち、ブロックｍｖ４及びｍｖ５を含む行）及び外側の左の列（すなわち、ブロックｍｖ５及びｍｖ６を含む列）から選択され得る。異なる参照フレームから予測されるか又はイントラ符号化された隣接ブロックは、リストからプルーニングされてよい。残りの参照ブロックには、各々重みが割り当てられてよい。重みは、現在のブロックまでの距離に関係してもよい。一例として、図８を参照すると、候補リストは、以下のカテゴリ１候補：すなわちｍｖ１、ｍｖ０、ｍｖ２及びｍｖ３を含んでよい。候補リストは更に、以下のカテゴリ２候補：すなわち、ｍｖ５、ｍｖ６及びｍｖ４を含んでよい。
【００９４】
いくつかの実施形態によれば、拡張マージモードは、現在のブロックにすぐ隣接しないブロックを含む追加のマージ候補を含む。これらの候補は、左、上、左下、右上及び左上の方向であり得る。マージ候補の最大数は１０個であってよい。図９は、参照ブロック（すなわち、対角線パターンを有するブロック）によって左、左上、上及び右上で囲まれた現在のブロック９００を示す。参照ブロックは、図７のブロックＡ、Ｂ、Ｃ、Ｄ及びＥにそれぞれ対応する隣接ブロックＡ、Ｂ、Ｃ、Ｄ及びＥを含んでもよい。図９において、参照ブロックの左上の角は、現在のブロック９００に対して（−９６、−９６）のオフセットを有してもよい。各候補ブロックＢ（ｉ、ｊ）又はＣ（ｉ、ｊ）は、それぞれ、その以前のＢ又はＣ候補ブロックと比較して、垂直方向に１６のオフセットを有してよい。各候補ブロックＡ（ｉ、ｊ）又はＤ（ｉ、ｊ）は、それぞれ、以前のＡ又はＤ候補ブロックと比較して、水平方向に１６のオフセットを有してよい。各Ｅ（ｉ、ｊ）ブロックは、その以前のＥ候補と比較して、水平方向及び垂直方向の両方において１６のオフセットを有してよい。候補は、現在のブロック９００に最も近い参照ブロックから、現在のブロック９００から最も遠い参照ブロックまでの方向でチェックされ得る。チェックされる候補の順序は、Ａ（ｉ、ｊ）、Ｂ（ｉ、ｊ）、Ｃ（ｉ、ｊ）、Ｄ（ｉ、ｊ）及びＥ（ｉ、ｊ）であり得る。
【００９５】
図９では、拡張された隣接位置は、現在のブロック９００に対して又は現在のブロック９００を含む現在のピクチャに対して決定されてよい。いくつかの実施形態によれば、これらの拡張された隣接位置から値をフェッチする代わりに、Ｎ個の以前に符号化されたブロックの動き情報を履歴動きベクトル予測（ＨＭＶＰ：ｈｉｓｔｏｒｙ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ）バッファに記憶して、より多くの動きベクトル予測候補を提供する。ＨＭＶＰバッファは、複数のＨＭＶＰ候補を含んでもよく、符号化／復号プロセスの間に維持されてもよい。いくつかの実施形態において、ＨＭＶＰバッファは、このＨＭＶＰバッファが、マージモード又はＡＭＶＰモード等の動きベクトル予測プロセスの間に使用されるときに、最新の符号化された動き情報が最初に考慮され得るように、先入れ先出し（ＦＩＦＯ）原理で動作してよい。
【００９６】
本開示の実施形態は、インターピクチャ予測符号化のための動きベクトル予測子を得るいくつかの方法を開示する。これらの方法は、履歴ベースのＭＶバッファからのＭＶ予測子を使用することと、バッファ管理を実行することを含む。これらの方法は、マージモードと、差分符号化を用いる動きベクトル予測（ＡＭＶＰモード）の両方に適用されてよい。本開示の実施形態は、マージ及び一般的なＭＶ予測概念を使用する任意のビデオ符号化方法に拡張されてもよい。また、本開示の実施形態は、スキップモードがマージモードを使用して動き情報を導出するので、スキップモードに適用されてもよい。
【００９７】
図１０Ａ及び図１０Ｂは、それぞれ、候補が挿入される前と後のＨＭＶＰバッファを示している。図１０Ａ及び図１０Ｂに示されるように、ＨＭＶＰバッファは、インデックス［０］〜［４］を有する５つのエントリを含む。図１０Ｂでは、エントリＣＬ_０は、インデックス［４］に挿入され、これにより、他のエントリが１つずつ左に移動し、その結果、エントリＨＭＰＶ_０がバッファから除去されることになる。エントリＣＬ_０は、以前に符号化又は復号されたブロックの動きベクトル予測子情報を含んでよい。
【００９８】
いくつかの実施形態によれば、ＨＭＶＰバッファ内の各エントリは、ブロックがインター符号化モードで符号化されている場合、以前に符号化されたブロックからの動き情報である。このブロックは、２つの動きベクトルを有する双方向予測モード又は１つの動きベクトルを有する単方向モードで符号化されてよい。ＨＭＶＰバッファ内の各エントリについて、双方向モードで符号化されている場合、そのエントリは、ＭＶ_Ｌ０（その参照インデックスを有する）及びＭＶ_Ｌ１（その参照インデックスを有する）としてのＭＶのペアを含む。いくつかの実施形態によれば、双方向モードに対応する２つの単方向動きベクトルは、（ｉ）Ｌ０の参照インデックスを元の予測子として使用する、Ｌ０予測のためのＭＶ_Ｌ０と、（ｉｉ）Ｌ１の参照インデックスを元の予測子として使用する、Ｌ１予測のためのＭＶ_Ｌ１を含む。
【００９９】
いくつかの実施形態において、ＨＭＶＰバッファ内の各元の双方向ＭＶ予測子について、元のＭＶ予測子から導出された２つの単方向ＭＶ予測子も、元の双方向ＭＶ予測子がマージ候補リストに入れられたときに、マージリスト内の新しい候補として考慮される。一実施形態では、ＭＶ_Ｌ０及びＭＶ_Ｌ１は、対応する元の双方向ＭＶがリストに入れられるたびに、それらの対応する元の双方向ＭＶ予測子の後にリストに入れられる。別の実施形態では、ＭＶ_Ｌ０及びＭＶ_Ｌ１は、ＨＭＶＰバッファからのＮ個の元のＭＶ予測子がリストに入れられた後に入れられ、ここで、Ｎは整数値である。Ｎは、ＨＭＶＰバッファからマージリストに入れることを許容されるＭＶ候補の数であってもよく、あるいはＮは、ＨＭＶＰバッファからマージリストにコピーされる最大許容数よりも小さい固定数であってもよい。いくつかの実施形態によれば、ＨＭＶＰバッファ内のエントリが、ＡＭＶＰモードにおいてＭＶ予測子を生成するために使用されるとき、ＨＭＶＰバッファ内の各元の双方向予測子について、上述の方法と同様の方法を使用して、単方向予測子ＭＶ_Ｌ０及びＭＶ_Ｌ１を生成してよい。これらの２つの予測因子は、ＡＭＶＰ  ＭＶ予測候補リストが満杯でない場合、該ＡＭＶＰ  ＭＶ予測候補リスト内で追加の予測因子として使用されてよい。
【０１００】
いくつかの実施形態によれば、ＨＭＶＰバッファは、条件が満たされると、空にされるか又はゼロ状態にリセットされる。条件は、（ｉ）現在のＣＵがＣＴＵの先頭であること、（ｉｉ）現在のＣＵがタイルの先頭であること、（ｉｉｉ）現在のＣＵがＣＴＵ行の先頭であること又は（ｉｖ）現在のＣＵがスライスの先頭であることであってよい。
【０１０１】
いくつかの実施形態によれば、すべてのＣＴＵ行の第１ＣＴＵ（ｆｉｒｓｔ  ＣＴＵ）が完了した後、同じサイズのＨＭＶＰバッファを有するＨＭＶＰ_ｒｏｗバッファを使用して、ＨＭＶＰバッファのエントリを格納する。したがって、新しいＣＴＵ行の開始時に、ＨＭＶＰバッファは、ＨＭＶＰ_ｒｏｗバッファ内の情報で満たされ得る。ＣＴＵ行の最後にＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、復号されている第１ＣＴＵのブロックは、第１ＣＴＵの真上のＣＴＵからの情報で復号され得る。
【０１０２】
いくつかの実施形態において、ピクチャ内の各タイルについて、ＨＭＶＰ_ｒｏｗバッファを使用して、各タイル行の第１ＣＴＵが終了した後にＨＭＶＰ情報を格納する。したがって、新たなタイル行の第１ＣＴＵについて、ＨＭＶＰバッファは、ＨＭＶＰ_ｒｏｗバッファからの情報を使用して満たされ得る。いくつかの実施形態において、ＨＭＶＰ_ｒｏｗバッファは、タイル又はスライスの第１ＣＴＵ行の開始時にゼロ状態に開始される。
【０１０３】
図１１は、ＣＴＵ_００〜ＣＴＵ_２３に分割された例示的なピクチャ１１００を示す。ＣＴＵ_００〜ＣＴＵ_０３は、第１ＣＴＵ行  ＣＴＵ_Ｒｏｗ_［０］にある。ＣＴＵ_１０〜ＣＴＵ_１３は、第２ＣＴＵ行  ＣＴＵ_Ｒｏｗ_［１］にある。ＣＴＵ_２０〜ＣＴＵ_２３は、第３ＣＴＵ_行にある。ピクチャ１１００内の各ＣＴＵは、複数のブロックに更に分割されてもよい。ブロックは、ＣＵ又は符号化ブロック（ＣＢ）であってよい。
【０１０４】
いくつかの実施形態では、ピクチャ１１００の第１ＣＴＵ（例えばＣＴＵ_００）内の最初のブロックが復号される前に、ＨＭＶＰバッファに初期値がロードされる。初期値は、エンコーダ又はデコーダのメモリに格納されてよい。別の例では、ＨＭＶＰバッファは、ゼロ状態（例えばバッファ内の有効なエントリがない）に初期化されてもよい。加えて、ＨＭＶＰ_ｒｏｗバッファは、ピクチャ１１００の第１ＣＴＵ（例えばＣＴＵ_００）内の最初のブロックが符号化又は復号される前に、ゼロ状態に初期化されてもよい。ＣＴＵ_００の最後のブロック（例えばＣＴＵ_Ｒｏｗ_［０］の最初のＣＴＵ）が符号化又は復号されると、ＨＭＶＰバッファの内容がＨＭＶＰ_ｒｏｗバッファにコピーされる。ＣＴＵ_０３の最後のブロックが符号化又は復号されると（例えばＣＴＵ_Ｒｏｗ_［０］の最後のＣＴＵ）、ＣＴＵ_１０の最初のブロックが符号化又は復号される前に（例えばＣＴＵ_Ｒｏｗ_［１］の最初のＣＴＵ）、ＨＭＶＰバッファが空にされ、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。したがって、ＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、ＣＴＵ_１０のブロックの符号化又は復号は、ＣＴＵ_０３からの情報よりもＣＴＵ_１０の符号化又は復号により関連し得る、ＣＴＵ_００からの情報（例えばＣＴＵ_１０より上のブロック）で実行され得る。
【０１０５】
ＨＭＶＰバッファの内容をＨＭＶＰ_ｒｏｗにコピーする同様のプロセスは、ＣＴＵ_１０及びＣＴＵ_２０の最後のブロックが符号化又は復号された後に実行されてもよい。さらに、ＨＭＶＰバッファをクリアする内容をコピーし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＶＭＰバッファにコピーする同様のプロセスは、ＣＴＵ_１３の最後のブロックが符号化又は復号された後に実行されてもよい。
【０１０６】
図１２は、２つのタイルＴｉｌｅ_１及びＴｉｌｅ_２に分割されたピクチャ１１００の例を示す。いくつかの実施形態において、Ｔｉｌｅ_１の第１ＣＴＵ（例えばＣＴＵ_００）の最初のブロックが符号化又は復号される前に、ＨＭＶＰバッファに初期値がロードされる。初期値は、エンコーダ又はデコーダのメモリに記憶されてよい。ＨＭＶＰバッファはまた、ゼロ状態に初期化されてもよい。加えて、ＨＭＶＰ_ｒｏｗバッファは、ピクチャ１１００の第１ＣＴＵ（例えばＣＴＵ_００）における最初のブロックが符号化又は復号される前に、ゼロ状態に初期化されてもよい。ＣＴＵ_００の最後のブロック（例えばＴｉｌｅ_１のＣＴＵ_Ｒｏｗ_［０］の最初のＣＴＵ）が符号化又は復号されると、ＨＭＶＰバッファの内容がＨＭＶＰ_ｒｏｗバッファにコピーされる。ＣＴＵ_０１の最後のブロックが符号化又は復号されると（例えばＴｉｌｅ_１のＣＴＵ_Ｒｏｗ_［０］の最後のＣＴＵ）、ＣＴＵ_１０の最初のブロックが符号化又は復号される前に（例えばＴｉｌｅ_１のＣＴＵ_Ｒｏｗ_［１］の最初のＣＴＵ）、ＨＭＶＰバッファが空にされ、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。したがって、ＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、ＣＴＵ_１０のブロックの符号化又は復号は、ＣＴＵ_０１からの情報よりもＣＴＵ_１０の符号化又は復号により関連し得る、ＣＴＵ_００からの情報で実行され得る。
【０１０７】
Ｔｉｌｅ_２は、Ｔｉｌｅ_１と並行に符号化又は復号されてもよく、別個のＨＭＶＰ及びＨＭＶＰ_ｒｏｗバッファを有してよく、それぞれ、Ｔｉｌｅ_１と同様に初期化されてもよい。ＣＴＵ_０２の最後のブロック（例えばＴｉｌｅ_２のＣＴＵ_Ｒｏｗ_［０］の最初のＣＴＵ）が符号化又は復号されると、ＨＭＶＰバッファの内容がＨＭＶＰ_ｒｏｗバッファにコピーされる。ＣＴＵ_０３の最後のブロックが符号化又は復号されると（例えばＴｉｌｅ_２のＣＴＵ_Ｒｏｗ_［０］の最後のＣＴＵ）、ＣＴＵ_１２の最初のブロックが符号化又は復号される前に（例えＴｉｌｅ_２のＣＴＵ_Ｒｏｗ_［１］の最初のＣＴＵ）、ＨＭＶＰバッファが空にされ、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。したがって、ＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、ＣＴＵ_１２のブロックの符号化又は復号は、ＣＴＵ_０３からの情報よりもＣＴＵ_１２の復号により関連し得る、ＣＴＵ_０２からの情報で実行され得る。
【０１０８】
図１３は、エンコーダ５０３等のエンコーダ又はデコーダ６１０等のデコーダによって実行されるプロセスの一実施形態を示す。プロセスは、ステップＳ１３００で開始してよく、ステップＳ１３００において、現在のピクチャがビデオビットストリームから取得される。例えばピクチャ１１００（図１１）は、この取得されたピクチャであってもよい。プロセスは、ステップＳ１３０２に進み、ステップＳ１３０２において、現在のブロックが、ＨＭＶＰバッファからの１つ以上のエントリを使用して符号化／復号される。例えばピクチャ１１００を参照すると、ＣＴＵ_００の最初のブロックが符号化／復号されている場合、ＨＭＶＰバッファは初期状態に初期化されてよく、最初のブロックは、ＨＭＶＰバッファが初期化された後に、ＨＭＶＰバッファからの１つ以上のエントリで符号化／復号されてもよい。プロセスは、ステップＳ１３０４に進み、ステップＳ１３０４において、ＨＭＶＰバッファは、符号化／復号された現在のブロックの動きベクトル情報で更新される。
【０１０９】
プロセスは、ステップＳ１３０６に進み、現在の符号化／復号されたブロックがＣＴＵ行の末尾にあるかどうかを判断する。例えばピクチャ１１００を参照すると、符号化／復号される現在のブロックがＣＴＵ_０３の最後のブロックである場合、符号化／復号されるべき次のブロックは、次の行であるＣＴＵ_１０の最初のブロックである。現在の符号化／復号されたブロックがＣＴＵ行の末尾にある場合、プロセスはステップＳ１３０８に進み、ステップＳ１３０８において、ＨＭＶＰバッファがリセットされ（例えば空にされ）、次のブロックが符号化／復号される前に、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。プロセスは、ステップＳ１３０８からステップＳ１３１４に進み、これは、以下に更に詳細に説明される。
【０１１０】
現在の符号化／復号されたブロックがＣＴＵ行の末尾でない場合、プロセスはステップＳ１３１０に進み、現在の符号化／復号されたブロックがＣＴＵ行の第１ＣＴＵの最後のブロックであるかどうかを判断する。現在の符号化／復号されたブロックがＣＴＵ行内の第１ＣＴＵの最後のブロックである場合、プロセスはステップＳ１３１２に進み、ステップＳ１３１２において、ＨＭＶＰバッファの内容がＨＶＭＰ_ｒｏｗバッファにコピーされる。例えばピクチャ１１００を参照すると、現在の符号化／復号されたブロックがＣＴＵ_００の最後のブロックである場合、ＨＶＭＰバッファの内容は、ＣＴＵ_０１の最初のブロックが符号化／復号される前に、ＨＭＶＰ_ｒｏｗバッファの内容にコピーされる。プロセスは、ステップＳ１３１２からステップＳ１３１４に進み、これは、以下で更に詳細に説明される。
【０１１１】
現在の符号化／復号されたブロックがＣＴＵ行内の第１ＣＴＵの最後のブロックでない場合、プロセスはステップＳ１３１４に進み、現在の符号化／復号されたブロックが取得されたピクチャ内の最後のブロックであるかどうかを判断する。現在の符号化／復号されたブロックが、取得されたピクチャ内の最後のブロックである場合、図１３のプロセスは終了する。例えば現在の符号化／復号されたブロックがＣＴＵ_２３の最後のブロックである場合、図１３のプロセスは完了する。現在の符号化／復号されたブロックが取得されたピクチャ内の最後のブロックでない場合、プロセスはステップＳ１３１４からステップＳ１３０２に戻る。
【０１１２】
上述の技術は、コンピュータ読取可能な命令を使用してコンピュータソフトウェアとして実装でき、１つ以上のコンピュータ読取可能な媒体に物理的に格納できる。例えば図１４は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム（１４００）を示す。
【０１１３】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク又は類似のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコード化されて、１つ以上のコンピュータ中央処理ユニット（ＣＰＵ）、グラフィクス処理ユニット（ＧＰＵ）等によって直接的に、あるいは翻訳、マイクロコード実行等を通して実行され得る命令を含むコードを作成し得る。
【０１１４】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行され得る。
【０１１５】
コンピュータシステム（１４００）の図１４に示される構成要素は、性質上例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関していかなる限定も示唆するように意図されていない。また、構成要素の構成も、コンピュータシステム（１４００）の例示的な実施形態で図示される構成要素の任意の１つ又は組合せに関するいかなる従属性又は要件も有するものとして解釈されるべきではない。
【０１１６】
コンピュータシステム（１４００）は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力（例えばキーストローク、スワイプ、データグローブの動き）、オーディオ入力（例えば音声、拍手）、視覚入力（例えばジェスチャ）、嗅覚入力（図示せず）を通して、１人以上の人間のユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスを使用して、オーディオ（例えばスピーチ、音楽、周囲音）、画像（例えばスキャンされた画像、静止画像カメラから得られる写真画像）、ビデオ（例えば２次元ビデオ、立体ビデオを含む３次元ビデオ）といった、人間による意識的入力に必ずしも直接関係しない特定の媒体をキャプチャすることができる。
【０１１７】
入力ヒューマンインタフェースデバイスは：キーボード（１４０１）、マウス（１４０２）、トラックパッド（１４０３）、タッチスクリーン（１４１０）、データグローブ（図示せず）、ジョイスティック（１４０５）、マイクロホン（１４０６）、スキャナ（１４０７）、カメラ（１４０８）、のうちの（図示されているものの１つのみの）１つ以上を含んでもよい。
【０１１８】
コンピュータシステム（１４００）は、特定のヒューマンインタフェース出力デバイスも含んでもよい。そのようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音、光及び嗅覚／味覚を通して、１人以上の人間のユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力デバイスは、触覚出力デバイス（例えばタッチスクリーン（１４１０）、データグローブ（図示せず）又はジョイスティック（１４０５）による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在する可能性がある）、オーディオ出力デバイス（例えばスピーカ（１４０９）、ヘッドフォン（図示せず））、視覚出力デバイス（例えばＣＲＴ画面、ＬＣＤ画面、プラズマ画面、ＯＬＥＤ画面を含む画面（１４１０）であり、各々タッチスクリーン入力機能を有するか又は有さず、各々触覚フィードバック機能を有するか有さず、その一部は、二次元視覚出力を出力するか、例えば立体出力、仮想現実グラス（図示せず）、ホログラフィックディスプレイ及びスモークタンク（図示せず）のような手段を通して三次元超の出力を出力する能力を有する可能性がある）及びプリンタ（図示せず）を含んでよい。
【０１１９】
コンピュータシステム（１４００）は、ＣＤ／ＤＶＤ又は同様の媒体（１４２１）を有するＣＤ／ＤＶＤ  ＲＯＭ／ＲＷ（１４２０）、サムドライブ（１４２２）、取り外し可能ハードドライブ又はソリッドステートドライブ（１４２３）、テープ及びフロッピーディスク（図示せず）のようなレガシー磁気媒体、セキュリティドングル（図示せず）のような特別なＲＯＭ／ＡＳＩＣ／ＰＬＤベースのデバイスのような、人間がアクセス可能なストレージデバイス及びその関連する媒体も含むことができる。
【０１２０】
当業者はまた、「コンピュータ読取可能媒体」という用語が、現在開示されている主題に関連して使用されるとき、伝送媒体、搬送波又は他の一時的信号を包含しないことも理解すべきである。
【０１２１】
コンピュータシステム（１４００）は、１つ以上の通信ネットワークへのインタフェースも含むことができる。ネットワークは、例えば無線、有線、光であり得る。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット（登録商標）、無線ＬＡＮ、ＧＳＭ（登録商標）、３Ｇ、４Ｇ、５Ｇ、ＬＴＥ等を含むセルラネットワーク、ケーブルＴＶ、衛星ＴＶ及び地上放送ＴＶを含むＴＶ有線又は無線ワイドエリアデジタルネットワーク、ＣＡＮＢｕｓを含む車両及び産業等を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス（１４４９）（例えばコンピュータシステム（１４００）のＵＳＢポート）に取り付けられる外部ネットワークインタフェースアダプタを必要とするが、他のものは、一般に、以下で説明されるシステムバスへの取り付けによって、コンピュータシステム（１４００）のコアに統合される（例えばＰＣコンピュータシステムへのイーサネット（登録商標）インタフェース又はスマートフォンコンピュータシステムへのセルラネットワークインタフェース）。これらのネットワークのいずれかを使用して、コンピュータシステム（１４００）は、他のエンティティと通信することができる。このような通信は、単指向性、受信専用（例えば放送ＴＶ）、単指向性送信専用（例えば特定のＣＡＮＢｕｓデバイスへのＣＡＮＢｕｓ）又は例えばローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双指向性とすることができる。特定のプロトコル及びプロトコルスタックを、上述のように、それらのネットワーク及びネットワークインタフェースの各々において使用することができる。
【０１２２】
前述のヒューマンインタフェースデバイス、人間がアクセス可能なストレージデバイス及びネットワークインタフェースを、コンピュータシステム（１４００）のコア（１４４０）に取り付けることができる。
【０１２３】
コア（１４４０）は、１つ以上の中央処理ユニット（ＣＰＵ）（１４４１）、グラフィクス処理ユニット（ＧＰＵ）（１４４２）、フィールドプログラマブルゲートエリア（ＦＰＧＡ）（１４４３）の形の特別なプログラマブル処理ユニット、特定のタスクのハードウェアアクセラレータ（１４４４）等を含むことができる。これらのデバイスは、読取専用メモリ（ＲＯＭ）（１４４５）、ランダムアクセスメモリ（１４４６）、内部非ユーザアクセス可能ハードドライブ、ＳＳＤ（１４４７）等の内部大容量ストレージとともに、システムバス（１４４８）を介して接続されてよい。いくつかのコンピュータシステムでは、システムバス（１４４８）は、追加のＣＰＵ、ＧＰＵ等による拡張を可能にするために、１つ以上の物理プラグの形でアクセス可能であり得る。周辺デバイスは、コアのシステムバス（１４４８）に直接取り付けられることも、周辺バス（１４４９）を介して取り付けられることもできる。周辺バスのアーキテクチャは、ＰＣＩ、ＵＳＢ等を含む。
【０１２４】
ＣＰＵ（１４４１）、ＧＰＵ（１４４２）、ＦＰＧＡ（１４４３）及びアクセラレータ（１４４４）は、組み合わせて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ＲＯＭ（１４４５）又はＲＡＭ（１４４６）に記憶することができる。移行データは、ＲＡＭ（１４４６）に記憶することもできるが、永久データは、例えば内部大容量ストレージ（１４４７）に記憶することができる。１つ以上のＣＰＵ（１４４１）、ＧＰＵ（１４４２）、大容量ストレージ（１４４７）、ＲＯＭ（１４４５）、ＲＡＭ（１４４６）等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【０１２５】
コンピュータ読取可能媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものとすることができ、あるいはそれらは、コンピュータソフトウェア分野の当業者に周知かつ入手可能な種類のものとすることができる。
【０１２６】
限定ではなく一例として、アーキテクチャ（１４００）、具体的にはコア（１４４０）を有するコンピュータシステムは、１つ以上の有形のコンピュータ読取可能媒体に具現化されたソフトウェアを実行するプロセッサ（ＣＰＵ、ＧＰＵ、ＦＰＧＡ、アクセラレータ等を含む）の結果として機能を提供することができる。そのようなコンピュータ読取可能媒体は、上述のようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ（１４４７）又はＲＯＭ（１４４５）のように、非一時的な性質のコア（１４４０）の特定のストレージに関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアを、そのようなデバイスに格納してコア（１４４０）によって実行することができる。コンピュータ読取可能媒体は、特定のニーズに応じて、１つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア（１４４０）及び特にその中のプロセッサ（ＣＰＵ、ＧＰＵ、ＦＰＧＡ等を含む）に、ＲＡＭ（１４４６）に格納されるデータ構造を定義し、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することを含め、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、回路（例えばアクセラレータ（１４４４））内にハードワイヤードされた又は他の方法で具体化されたロジックの結果として機能を提供することができ、これは、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行するためのソフトウェアの代わりに又はそれとともに動作することができる。ソフトウェアへの参照はロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ読取可能媒体への参照は、実行のためのソフトウェアを格納する回路（例えば集積回路（ＩＣ））、実行のためのロジックを具体化する回路又は適切な場合にはその双方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
付録Ａ：頭字語
ＭＶ：動きベクトル
ＨＥＶＣ：高効率ビデオ符号化
ＳＥＩ：補足強調情報
ＶＵＩ：ビデオユーザビリティ情報
ＧＯＰ：グループオブピクチャ
ＴＵ：変換ユニット
ＰＵ：予測ユニット
ＣＴＵ：符号化ツリーユニット
ＣＴＢ：符号化ツリーブロック
ＰＢ：予測ブロック
ＨＲＤ：仮想参照デコーダ
ＳＮＲ：信号雑音比
ＣＰＵ：中央処理ユニット
ＧＰＵ：グラフィクス処理ユニット
ＣＲＴ：陰極線管
ＬＣＤ：液晶ディスプレイ
ＯＬＥＤ：有機発光ダイオード
ＣＤ：コンパクトディスク
ＤＶＤ：デジタルビデオディスク
ＲＯＭ：読取専用メモリ
ＲＡＭ：ランダムアクセスメモリ
ＡＳＩＣ：特定用途向け集積回路
ＰＬＤ：プログラマブルロジックデバイス
ＬＡＮ：ローカルエリアネットワーク
ＧＳＭ：モバイル通信用グローバルシステム
ＬＴＥ：ロングタームエボリューション
ＣＡＮＢｕｓ：コントローラエリアネットワークバス
ＵＳＢ：ユニバーサルシリアルバス
ＰＣＩ：周辺コンポーネント相互接続
ＦＰＧＡ：フィールドプログラマブルゲートエリア
ＳＳＤ：ソリッドステートドライブ
ＩＣ：集積回路
ＣＵ：符号化ユニット
【０１２７】
本開示では、いくつかの例示的な実施形態を記載してきたが、本開示の範囲内にある変更、置換及び様々な代替等価物がある。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具体化し、したがって、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されるであろう。
【０１２８】
（１）デコーダが実行するビデオ復号の方法であって、当該方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成する、ステップと；前記複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップと；復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップと；現在のブロックが複数のユニットの１つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと；現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファをリセットするステップと；を含む。
【０１２９】
（２）現在のブロックが行の第１ユニット（ｆｉｒｓｔ  ｕｎｉｔ）の最後のブロックであるかどうかを判断するステップと；現在のブロックが行の第１ユニットの最後のブロックであると判断したことに応答して、ＨＭＶＰバッファの内容を行バッファにコピーするステップと；を更に含む、特徴（１）に記載の方法。
【０１３０】
（３）現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファの各エントリがリセットされた後に、行バッファの内容をＨＭＶＰバッファにコピーするステップを更に含む、特徴（２）に記載の方法。
【０１３１】
（４）ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、動きベクトルでＨＭＶＰバッファを更新するステップは、ＨＭＶＰバッファの最後のエントリに動きベクトルを格納するステップと、ＨＭＶＰバッファの最初のエントリを削除するステップとを含む、特徴（１）〜（３）のいずれか１つに記載の方法。
【０１３２】
（５）ユニットは、符号化ツリーユニット（ＣＴＵ）である、特徴（１）〜（４）のいずれか１つに記載の方法。
【０１３３】
（６）ユニットはタイルであり、ユニットのうち復号された１つは第１タイルであり、複数のユニットからの第１タイル及び第２タイルは並行に復号される、特徴（２）〜（５）のいずれか１つに記載の方法。
【０１３４】
（７）ビデオ復号のためのビデオデコーダであって：符号化されたビデオビットストリームから現在のピクチャを取得し、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成し、複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号し、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新し、現在のブロックが複数のユニットの１つのグリッドに含まれる行の先頭にあるかどうかを判断し、現在のブロックが行の先頭にあると判断したことに応答して、ＨＭＶＰバッファをリセットする、ように構成された処理回路を含む、ビデオデコーダ。
【０１３５】
（８）処理回路は、現在のブロックが行の第１ユニットの最後のブロックであるかどうかを判断し、現在のブロックが行の第１ユニットの最後のブロックであると判断したことに応答して、ＨＭＶＰバッファの内容を行バッファにコピーするように更に構成される、特徴（７）に記載のビデオデコーダ。
【０１３６】
（９）処理回路は、現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファの各エントリがリセットされた後に、行バッファの内容をＨＭＶＰバッファにコピーするように更に構成される、特徴（８）に記載のビデオデコーダ。
【０１３７】
（１０）ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、動きベクトルでＨＭＶＰバッファを更新することは、ＨＭＶＰバッファの最後のエントリに動きベクトルを格納することと、ＨＭＶＰバッファの最初のエントリを削除することを含む、特徴（７）〜（９）のいずれか１つに記載のビデオデコーダ。
【０１３８】
（１１）ユニットは、符号化ツリーユニット（ＣＴＵ）である、特徴（７）〜（１０）のいずれか１つに記載のビデオデコーダ。
【０１３９】
（１２）ユニットはタイルであり、ユニットのうち復号された１つは第１タイルであり、複数のユニットからの第１タイル及び第２タイルは並行に復号される、特徴（８）〜（１１）のいずれか１つに記載のビデオデコーダ。
【０１４０】
（１３）ビデオデコーダ内のプロセッサによって実行されると、該プロセッサに、符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成する、ステップと；複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップと；復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップと；現在のブロックが複数のユニットの１つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと；現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファをリセットするステップと；を含む方法を実行させる命令を有する、非一時的コンピュータ読取可能媒体。
【０１４１】
（１４）方法は、現在のブロックが行の第１ユニットの最後のブロックであるかどうかを判断するステップと；現在のブロックが行の第１ユニットの最後のブロックであると判断したことに応答して、ＨＭＶＰバッファの内容を行バッファにコピーするステップと；を更に含む、特徴（１３）に記載の非一時的コンピュータ読取可能媒体。
【０１４２】
（１５）方法は、現在のブロックが行の先頭であると判断したことに応答して、ＨＭＶＰバッファの各エントリがリセットされた後に、行バッファの内容をＨＭＶＰバッファにコピーするステップ、を更に含む、特徴（１４）に記載の非一時的コンピュータ読取可能媒体。
【０１４３】
（１６）ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、動きベクトルでＨＭＶＰバッファを更新するステップは、ＨＭＶＰバッファの最後のエントリに動きベクトルを格納するステップと、ＨＭＶＰバッファの最初のエントリを削除するステップとを含む、特徴（１３）〜（１５）のいずれか１つに記載の非一時的コンピュータ読取可能媒体。
【０１４４】
（１７）ユニットは、符号化ツリーユニット（ＣＴＵ）である、特徴（１３）〜（１６）のいずれか１つに記載の非一時的コンピュータ読取可能媒体。
【０１４５】
（１８）ユニットはタイルであり、ユニットのうち復号された１つは第１タイルであり、複数のユニットからの第１タイル及び第２タイルは並行に復号される、特徴（１４）〜（１７）のいずれか１つに記載の非一時的コンピュータ読取可能媒体。
【図１】
2021516509.tif 000003
【図２】
2021516509.tif 000004
【図３】
2021516509.tif 000005
【図４】
2021516509.tif 000006
【図５】
2021516509.tif 000007
【図６】
2021516509.tif 000008
【図７】
2021516509.tif 000009
【図８】
2021516509.tif 000010
【図９】
2021516509.tif 000011
【図１０Ａ】
2021516509.tif 000012
【図１０Ｂ】
2021516509.tif 000013
【図１１】
2021516509.tif 000014
【図１２】
2021516509.tif 000015
【図１３】
2021516509.tif 000016
【図１４】
2021516509.tif 000017
【手続補正書】
【提出日】令和2年10月14日(2020.10.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
［参照による組み込み］
本願は、２０１８年１１月２８日に出願された米国特許出願第１６／２０３，３６４号「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＨＩＳＴＯＲＹ−ＢＡＳＥＤ  ＭＯＴＩＯＮ  ＶＥＣＴＯＲ  ＰＲＥＤＩＣＴＩＯＮ」の優先権の利益を主張する。同出願は、２０１８年７月１６日に出願された米国仮出願第６２／６９８，５５９号「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＨＩＳＴＯＲＹ−ＢＡＳＥＤ  ＭＯＴＩＯＮ  ＶＥＣＴＯＲ  ＰＲＥＤＩＣＴＩＴＩＯＮ」の優先権の利益を主張している。これらの全内容は参照により明細書に組み込まれる。
【０００２】
［技術分野］
本開示は、一般的にビデオ符号化に関連する実施形態を説明する。
【背景技術】
【０００３】
本明細書で提供される背景の説明は、本開示の文脈を一般的に提示するためのものである。現在の発明者の作業は、その作業がこの背景セクションに記載されている範囲で、並びに出願時に他の方法では先行技術として適格でない可能性がある説明の側面では、本開示に対する先行技術として明示的にも暗示的にも認められていない。
【０００４】
動き補償を用いるインターピクチャ予測を使用するビデオ符号化及び復号は、数十年も知られている。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば１９２０×１０８０の輝度サンプル及び関連するクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば６０ピクチャ／秒又は６０Ｈｚの固定又は可変のピクチャレート（略式に、フレームレートとしても知られる）を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えばサンプル当たり８ビットの１０８０ｐ６０  ４：２：０ビデオ（６０Ｈｚフレームレートで１９２０×１０８０の輝度サンプル解像度）は１．５Ｇｂｉｔ／ｓに近い帯域幅を必要とする。このようなビデオの１時間は、６００Ｇバイトを超える記憶領域を必要とする。
【０００５】
ビデオ符号化及び復号の１つの目的は、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅又は記憶領域の必要性を、場合によっては２桁以上減らすのに役立つ可能性がある。可逆圧縮及び非可逆圧縮の両方、並びにそれらの組合せを用いることができる。可逆圧縮は、元の信号の正確なコピーを、圧縮された元の信号から再構築することができる技術をいう。非可逆圧縮を使用するとき、再構築された信号は、元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みは、再構築された信号を意図された用途に役立たせるために十分小さい。ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量は、用途に依存し、例えば特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン寄与アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い許可／許容可能な歪みが、より高い圧縮比をもたらすことができることを反映し得る。
【０００６】
動き補償は、非可逆圧縮技術とすることができ、以前に再構築されたピクチャ又はその一部（参照ピクチャ）からのサンプルデータのブロックが、動きベクトル（以下、ＭＶ）によって示される方向に空間的にシフトされた後に、新たに再構築されたピクチャ又はその一部の予測のために使用される技術に関連付けることができる。場合によっては、参照ピクチャは、現在再構築中のピクチャと同じものとすることができる。ＭＶは、Ｘ及びＹの２次元又は３次元を有することができ、３次元は、使用中の参照ピクチャの表示である（後者は間接的に、時間次元とすることができる）。
【０００７】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なＭＶを、他のＭＶから、例えば再構築中の領域に空間的に隣接し、復号順でそのＭＶに先行するサンプルデータの別の領域に関連するＭＶから、予測することができる。そのようにすることにより、ＭＶを符号化するために必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増加させることができる。ＭＶ予測は、例えばカメラから導出された入力ビデオ信号（ナチュラルビデオとして知られる）を符号化する際に、単一のＭＶが適用可能な領域よりも大きな領域が同様の方向に移動する統計的可能性があり、したがって、場合によっては、隣接領域のＭＶから導出される同様の動きベクトルを使用して予測することができるので、効果的に機能することができる。その結果、所与の領域について見つかったＭＶは、周囲のＭＶから予測されるＭＶと類似又は同一になり、そして、これは、エントロピー符号化の後、ＭＶを直接符号化する場合に使用されるであろうものよりも少ないビット数で表現することができる。場合によっては、ＭＶ予測は、元の信号（すなわち、サンプルストリーム）から導出された信号（すなわち、ＭＶ）の可逆圧縮の例であり得る。他の場合には、ＭＶ予測それ自体は、例えばいくつかの周囲のＭＶから予測子を計算する際の丸め誤差のために、非可逆的であり得る。
【０００８】
様々なＭＶ予測機構が、Ｈ．２６５／ＨＥＶＣ（ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６５、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」、２０１６年１２月）で説明されている。Ｈ．２６５が提供する多くのＭＶ予測機構のうち、ここで説明されるのは、これから「空間マージ」と呼ばれる技術である。
【０００９】
動作ベクトル予測子の履歴バッファが、符号化又は復号を実行するために使用されることがある。一般に、履歴バッファの維持は、各ブロックの後に行われ、符号化又は復号の順序で完了する。このブロックがＭＶ情報のセットとインターモードで符号化される場合、このブロックのＭＶは、バッファを更新するためにＨＭＶＰバッファに入れられる。現在のブロックを符号化又は復号するとき、現在のブロックに対するＭＶ予測子は、以前に符号化された空間的／隣接ブロックから来る可能性がある。これらのブロックのいくつかは、依然としてＨＭＶＰバッファ内にある可能性がある。新たに復号／符号化されたＭＶをＨＭＶＰバッファに入れるとき、新たなＭＶがＨＭＶＰバッファ内のすべての以前のＭＶと異なることを確認するために、いくつかの比較が行われることがある。バッファ内に同じ値を有するＭＶが既に存在する場合、古いＭＶはバッファから削除されることになり、新しいＭＶが最後のエントリとしてバッファに入れられる。履歴バッファのこれらの一般的な維持手順は、符号化又は復号されている現在のブロックに関連しない可能性がある情報を履歴バッファから除去する必要があるときに、履歴バッファを適切にリセットしない。
【発明の概要】
【００１０】
本開示の例示的な実施形態は、デコーダのためのビデオ復号の方法を含む。方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含み、ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の複数のブロックはグリッドとして配置されている。方法は、ユニットのうちの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップを更に含む。方法は、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップを更に含む。方法は、現在のブロックがユニットのうちの１つのグリッド内に含まれる行の先頭（ｂｅｇｉｎｎｉｎｇ）にあるかどうかを判断するステップを更に含む。方法は、現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファをリセットするステップを更に含む。
【００１１】
本開示の例示的実施形態は、ビデオ復号のためのビデオデコーダを含む。ビデオデコーダは、符号化されたビデオビットストリームから現在のピクチャを取得するように構成された処理回路を含み、ここで、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の前記複数のブロックはグリッドとして配置されている。処理回路は更に、ユニットのうちの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するように構成される。処理回路は更に、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するように構成される。処理回路は更に、現在のブロックがユニットのうちの１つのグリッド内に含まれる行の先頭にあるかどうかを判断するように構成される。処理回路は更に、現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファをリセットするように構成される。
【００１２】
本開示の例示的実施形態は、ビデオデコーダ内のプロセッサによって実行されると、プロセッサに方法を実行させる命令を有する非一時的なコンピュータ読取可能媒体を含む。方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップを含み、ここで現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニット内の複数のブロックはグリッドとして配置されている。方法は、ユニットのうちの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップを更に含む。方法は、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップを更に含む。方法は、現在のブロックがユニットのうちの１つのグリッド内に含まれる行の先頭にあるかどうかを判断するステップを更に含む。方法は、現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファをリセットするステップを更に含む。
【図面の簡単な説明】
【００１３】
開示される主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう： 
【００１４】
【図１】一実施形態による通信システム（１００）の簡略化されたブロック図の概略図である。
【００１５】
【図２】一実施形態による通信システム（２００）の簡略化されたブロック図の概略図である。
【００１６】
【図３】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【００１７】
【図４】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【００１８】
【図５】別の実施形態によるエンコーダのブロック図を示す。
【００１９】
【図６】別の実施形態によるデコーダのブロック図を示す。
【００２０】
【図７】現在のブロックと周囲の空間マージ候補の概略図である。
【００２１】
【図８】マージ候補リスト構成の概略図である。
【００２２】
【図９】拡張マージモードの概略図である。
【００２３】
【図１０Ａ】履歴ベースの動きベクトル予測バッファの実施形態を示す図である。
【図１０Ｂ】履歴ベースの動きベクトル予測バッファの実施形態を示す図である。
【００２４】
【図１１】符号化ツリーユニットに分割された例示のピクチャを示す図である。
【００２５】
【図１２】タイルに分割された例示のピクチャを示す図である。
【００２６】
【図１３】エンコーダ又はデコーダによって実行されるプロセスの一実施形態を示す図である。
【００２７】
【図１４】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【００２８】
図１は、本開示の一実施形態による通信システム（１００）の簡略化されたブロック図を示している。通信システム（１００）は、例えばネットワーク（１５０）を介して互いに通信することができる複数の端末デバイスを含む。例えば通信システム（１００）は、ネットワーク（１５０）を介して相互接続される第１ペアの端末デバイス（１１０）及び（１２０）を含む。図１の例では、第１ペアの端末デバイス（１１０）及び（１２０）は、データの一方向送信を行う。例えば端末デバイス（１１０）は、ネットワーク（１５０）を介して他の端末デバイス（１２０）へ伝送するために、ビデオデータ（例えば端末デバイス（１１０）によってキャプチャされるビデオピクチャのストリーム）を符号化してよい。符号化されたビデオデータを、１つ以上の符号化されたビデオビットストリームの形態で送信することができる。端末デバイス（１２０）は、ネットワーク（１５０）から符号化されたビデオデータを受け取り、符号化されたビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してよい。一方向性データ伝送は、媒体提供アプリケーション等において一般的であり得る。
【００２９】
別の例では、通信システム（１００）は、例えばビデオ会議中に起こり得る符号化されたビデオデータの双方向伝送を行う、第２ペアの端末デバイス（１３０）及び（１４０）を含む。データの双方向伝送のために、端末デバイス（１３０）及び（１４０）の各端末デバイスは、ネットワーク（１５０）を介して端末デバイス（１３０）及び（１４０）のうちの他の端末デバイスへ伝送するために、ビデオデータ（例えば端末デバイスによってキャプチャされるビデオピクチャのストリーム）を符号化してよい。また、端末デバイス（１３０）及び（１４０）の各端末デバイスは、端末デバイス（１３０）及び（１４０）のうちの他の端末デバイスによって送信された符号化されたビデオデータを受け取ってよく、符号化されたビデオデータを復号してビデオピクチャを復元してよく、復元されたビデオデータに従って、アクセス可能なディスプレイデバイス上にビデオピクチャを表示してよい。
【００３０】
図１の例では、端末デバイス（１１０）、（１２０）、（１３０）及び（１４０）は、サーバ、パーソナルコンピュータ及びスマートフォンとして図示されているが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ及び／又は専用のビデオ会議機器での用途を見つける。ネットワーク（１５０）は、符号化されたビデオデータを端末デバイス（１１０）、（１２０）、（１３０）及び（１４０）の中で伝達する任意の数のネットワークを表し、例えばワイヤ線（有線）及び／又は無線通信ネットワークを含む。通信ネットワーク（１５０）は、回路切替及び／又はパケット切替チャネルでデータを交換してよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び／又はインターネットを含む。本議論の目的のために、ネットワーク（１５０）のアーキテクチャ及びトポロジは、以下で説明されない限り、本開示の動作には重要ではないことがある。
【００３１】
図２は、本開示の主題の適用の例示として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を図示している。開示される主題は、例えばビデオ会議、デジタルテレビ、ＣＤ、ＤＶＤ、メモリスティック等を含むデジタルメディア上における圧縮ビデオの格納を含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
【００３２】
ストリーミングシステムは、キャプチャサブシステム（２１３）を含んでよい。キャプチャサブシステム（２１３）は、例えば圧縮されていないビデオピクチャのストリーム（２０２）を作成するビデオソース（２０１）、例えばデジタルカメラを含むことができる。一例では、ビデオピクチャのストリーム（２０２）は、デジタルカメラによって撮られたサンプルを含む。ビデオピクチャのストリーム（２０２）は、符号化されたビデオデータ（２０４）（又は符号化されたビデオビットストリーム）と比べると、高データボリュームを強調するために、太線で示されており、ビデオソース（２０１）に結合されるビデオエンコーダ（２０３）を含む電子デバイス（２２０）によって処理することができる。ビデオエンコーダ（２０３）は、以下でより詳細に説明される開示される主題の態様を可能に又は実装するために、ハードウェア、ソフトウェア又はそれらの組合せを含むことができる。符号化されたビデオデータ（２０４）（又は符号化されたビットストリーム（２０４））は、ビデオピクチャのストリーム（２０２）と比べると、より低いデータボリュームを強調するために、細線で示されており、将来の使用のために、ストリーミングサーバ（２０５）上に格納され得る。図２のクライアントサブシステム（２０６）及び（２０８）のような１つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ（２０５）にアクセスして、符号化されたビデオデータ（２０４）のコピー（２０７）及び（２０９）を取り出すことができる。クライアントサブシステム（２０６）は、例えば電子デバイス（２３０）内にビデオデコーダ（２１０）を含むことができる。ビデオデコーダ（２１０）は、符号化されたビデオデータの入ってきたコピー（２０７）を復号し、ディスプレイ（２１２）（例えばディスプレイ画面）又は他のレンダリングデバイス（図示せず）上にレンダリングすることができるビデオピクチャの出力ストリーム（２１１）を作成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ（２０４）（２０７）及び（２０９）（例えばビデオストリーム）を、特定のビデオ符号化／圧縮規格に従って符号化することができる。これらの規格の例は、ＩＴＵ−Ｔ推奨のＨ．２６５を含む。一例では、開発中のビデオ符号化規格は、略式に、Ｖｅｒｓａｔｉｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ又はＶＶＣとして知られている。開示される主題は、ＶＶＣのコンテキストで使用されてよい。
【００３３】
電子デバイス（２２０）及び（２３０）は他のコンポーネント（図示せず）を含むことができることに留意されたい。例えば電子デバイス（２２０）はビデオデコーダ（図示せず）を含むことができ、同様に電子デバイス（２３０）はビデオエンコーダ（図示せず）を含むことができる。
【００３４】
図３は、本開示の実施形態によるビデオデコーダ（３１０）のブロック図を示している。ビデオデコーダ（３１０）を電子デバイス（３３０）に含めることができる。電子デバイス（３３０）は、レシーバ（３３１）（例えば受信回路）を含むことができる。ビデオデコーダ（３１０）を、図２の例のビデオデコーダ（２１０）の代わりに使用することができる。
【００３５】
レシーバ（３３１）は、ビデオデコーダ（３１０）によって復号されるべき１つ以上の符号化されたビデオシーケンスを受け取ってよく；同じ又は別の実施形態では、一度に１つの符号化されたビデオシーケンスであってよく、この場合、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスとは独立である。符号化されたビデオシーケンスは、チャネル（３０１）から受け取られてよく、該チャネル（３０１）は、符号化されたビデオデータを格納するストレージデバイスへのハードウェア／ソフトウェアリンクであってよい。レシーバ（３３１）は、エンティティ（図示せず）を使用してそれらのそれぞれに転送され得る他のデータ、例えば符号化されたオーディオデータ及び／又は補助データストリームとともに、符号化されたビデオデータを受け取ってよい。レシーバ（３３１）は、符号化されたビデオストリームを他のデータとは分離してよい。ネットワークジッタと戦うために、バッファメモリ（３１５）は、レシーバ（３３１）とエントロピーデコーダ／パーサ（３２０）（以後、「パーサ（３２０）」）の間に結合されてよい。特定の適用では、バッファメモリ（３１５）は、ビデオデコーダ（３１０）の一部である。他の例では、バッファメモリ（３１５）は、ビデオデコーダ（３１）（図示せず）の外部とすることができる。また他の例では、ビデオデコーダ（３１０）の内部の、例えば再生タイミングを扱う別のバッファメモリ（３１５）に加えて、例えばネットワークジッタと戦うバッファメモリ（図示せず）がビデオデコーダ（３１０）の外部に存在する可能性もある。レシーバ（３３１）が、十分な帯域幅及び制御可能性の格納／転送デバイスから又は同期ネットワーク（ｉｓｏｓｙｎｃｈｒｏｎｏｕｓ  ｎｅｔｗｏｒｋ）からデータを受け取っているとき、バッファメモリ（３１５）は必要とされないことがあるか又は小さい可能性がある。そのようなベストエフォートのパケットネットワークにおける使用のために、バッファメモリ（３１５）は必要とされることがあり、比較的大きいものとすることができ、有利には適応サイズとすることができ、少なくとも部分的に、ビデオデコーダ（３１０）の外部でオペレーティングシステム内又は同様の要素（図示せず）内で実装されてよい。
【００３６】
ビデオデコーダ（３１０）は、符号化されたビデオシーケンスからシンボル（３２１）を再構築するためにパーサ（３２０）を含んでよい。これらのシンボルのカテゴリは、ビデオデコーダ（３１０）の動作を管理するために使用される情報と、潜在的に図３に示したように電子デバイス（３３）の一体部分ではないが、電子デバイス（３３０）と結合することができるレンダリングデバイス（３１２）（例えばディスプレイ画面）等のレンダリングデバイスを制御する情報を含む。レンダリングデバイスのための制御情報は、補足強調情報（ＳＥＩ：Ｓｕｐｐｌｅｍｅｎｔａｒｙ  Ｅｎｈａｎｃｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ）メッセージ又はビデオユーザビリティ情報（ＶＵＩ：Ｖｉｄｅｏ  Ｕｓａｂｉｌｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ）パラメータセットフラグメント（図示せず）の形であってよい。パーサ（３２０）は、受け取った符号化されたビデオシーケンスを解析／エントロピー復号してよい。符号化されるビデオシーケンスの符号化は、ビデオ符号化技術又は規格によるものとすることができ、可変長符号化、ハフマン符号化、文脈依存を伴うか又は伴わない算術符号化等を含む、様々な原理に従うことができる。パーサ（３２０）は、符号化されたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも１つについての１組のサブグループパラメータを、グループの少なくとも１つのパラメータに基づいて抽出し得る。サブグループは、グループオブピクチャ（ＧＯＰ）、ピクチャ、タイル、スライス、マイクロブロック、符号化ユニット（ＣＵ）、ブロック、変換ユニット（ＴＵ）、予測ユニット（ＰＵ）等を含むことができる。パーサ（３２０）は、符号化されたビデオシーケンスから、例えば変換係数、量子化気パラメータ値、動きベクトル等の情報も抽出し得る。
【００３７】
パーサ（３２０）は、シンボル（３２１）を作成するよう、バッファメモリ（３１５）から受け取ったビデオシーケンスに対してエントロピー復号／解析操作を実行し得る。
【００３８】
シンボル（３２１）の再構築は、符号化されたビデオピクチャ又はその一部（例えばインター及びイントラピクチャ、インター及びイントラブロック）のタイプ及び他の因子に応じて、複数の異なるユニットを要する可能性がある。どのユニットが及びどのように関与するかは、符号化されたビデオシーケンスからパーサ（３２０）によって解析されたサブグループ制御情報によって制御できる。以下、パーサ（３２０）と複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確性のために示されない。
【００３９】
すでに述べた機能ブロックの他に、ビデオデコーダ（３１０）を、以下で説明されるように複数の機能ユニットに概念的に細分することができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは、相互に密接に相互作用し、少なくとも部分的に相互に統合される可能性がある。しかしながら、開示される主題を説明する目的のために、以下、機能ユニットへの概念的細分は適切である。
【００４０】
第１ユニットは、スカラー／逆変換ユニット（３５１）である。スカラー／逆変換ユニット（３５１）は、量子化された変換係数、並びに使用すべき変換、ブロックサイズ、量子化因子、量子化スケーリングメトリクス等を含む制御情報を、パーサ（３２）からのシンボル（３２１）として受け取る。スカラー／逆変換ユニット（３５１）は、アグリゲータ（３５５）に入力することができるサンプル値を含むブロックを出力することができる。
【００４１】
場合によって、スカラー／逆変換ユニット（３５１）の出力サンプルは、イントラ符号化ブロック、すなわち、以前に再構築されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックに関係する可能性がある。そのような予測情報を、イントラピクチャ予測ユニット（３５２）によって提供することができる。いくつかの場合では、イントラピクチャ予測ユニット（３５２）は、現在のピクチャバッファ（３５８）からフェッチされた、周囲の既に再構築された情報を使用して、同じサイズのブロック及び再構築中のそのブロックの形状を生成する。現在のピクチャバッファ（３５８）は、例えば部分的に再構築された現在のピクチャ及び／又は完全に再構築された現在のピクチャをバッファする。アグリゲータ（３５５）は、場合によって、サンプルごとに、予測ユニット（３５２）によって生成された予測情報を、スカラー／逆変換ユニット（３５１）によって提供されるような出力サンプル情報に追加する。
【００４２】
他の場合には、スカラー／逆変換ユニット（３５１）の出力サンプルは、インター符号化された、潜在的には動き補償されたブロックに関係する可能性がある。そのような場合、動き補償予測ユニット（３５３）は、参照ピクチャメモリ（３５７）にアクセスして、予測のために使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル（３２１）に従って、フェッチされたサンプルを動き補償した後、出力サンプル情報を生成するために、これらのサンプルを、アグリゲータ（３５５）によって、（この場合、残差サンプル又は残差信号と呼ばれる）スカラー／逆変換ユニット（３５１）の出力に追加することができる。動き補償予測ユニット（３５３）が予測サンプルをフェッチする参照ピクチャメモリ（３５７）内のアドレスを、例えばＸ、Ｙ及び参照ピクチャコンポーネントを有することができるシンボル（３２１）の形態で動き補償予測ユニット（３４３）に利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用されているときに、参照ピクチャメモリ（３５７）からフェッチされるサンプル値の補間、動きベクトル予測機構等も含むことができる。
【００４３】
アグリゲータ（３５５）の出力サンプルは、ループフィルタユニット（３５６）において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、符号化されたビデオシーケンス（符号化されたビデオビットストリームとも呼ばれる）に含まれるパラメータによって制御され、パーサ（３２０）からのシンボル（３２１）としてループフィルタユニット（３５６）に利用可能にされるインループフィルタ技術を含むことができるが、符号化されたピクチャ又は符号化されたビデオシーケンスの（復号順で）以前の部分の復号の間に取得されるメタ情報に応じるだけでなく、以前に再構築されてループフィルタされたサンプル値にも応じたものとすることができる。
【００４４】
ループフィルタユニット（３５６）の出力は、レンダリングデバイス（３１２）に出力することができ、将来のインターピクチャ予測での使用のために参照ピクチャメモリ（３５７）に格納することができ、サンプルストリームとすることができる。
【００４５】
特定の符号化されたピクチャは、いったん十分に再構築されると、将来の予測のために参照ピクチャとして使用することができる。例えば現在のピクチャに対応する符号化されたピクチャが十分に再構築されて、符号化されたピクチャが参照ピクチャとして（例えばパーサ（３２０）によって）識別されると、現在のピクチャバッファ（３５８）は、参照ピクチャメモリ（３５７）の一部になることができ、続く符号化されたピクチャの再構築を開始する前にフレッシュな現在のピクチャバッファを再割り当てすることができる。
【００４６】
ビデオデコーダ（３１０）は、ＩＴＵ−Ｔ  Ｒｅｃ．  Ｈ２６５等の規格の所定のビデオ圧縮技術に従って復号動作を実行してよい。符号化されたビデオシーケンスは、該符号化されたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックスと、ビデオ圧縮技術又は規格のドキュメントとしてのプロファイルの双方に固着するという意味で、使用されているビデオ圧縮技術又は規格によって指定されるシンタックスに準拠し得る。具体的に、プロファイルは、特定のツールを、ビデオ圧縮技術又は規格で利用可能なツールのすべてから、そのプロファイルの下で使用するための利用可能な唯一のツールとして選択することができる。また、準拠のために必要なことは、符号化されたビデオシーケンスの複雑性が、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることである。場合によって、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート（例えば毎秒メガサンプルで測定される）、最大参照ピクチャサイズ等を制約する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ（ＨＲＤ：Ｈｙｐｏｔｈｅｔｉｃａｌ  Ｒｅｆｅｒｅｎｃｅ  Ｄｅｃｏｄｅｒ）の仕様と、符号化されたビデオシーケンスでシグナリングされるＨＲＤバッファ管理のためのメタデータを通して更に制約される可能性がある。
【００４７】
実施形態において、レシーバ（３３１）は、符号化されたビデオとともに追加の（冗長）データを受け取ってよい。追加のデータは、符号化されたビデオシーケンスの一部として含まれてよい。追加のデータは、ビデオデコーダ（３１０によって、データを適切に復号し、かつ／又は元のビデオデータをより正確に再構築するために使用されてよい。追加のデータは、例えば時間的、空間的又は信号雑音比（ＳＮＲ）強化層、冗長スライス、冗長ピクチャ、前方エラー訂正コード等の形態とすることができる。
【００４８】
図４は、本開示の実施形態によるビデオエンコーダ（４０３）のブロック図を示している。ビデオエンコーダ（４０３）は電子デバイス（４２０）に含まれる。電子デバイス（４２０）はトランスミッタ（４４０）（例えば送信回路）を含む。ビデオエンコーダ（４０３）を、図２の例のビデオエンコーダ（２０３）の代わりに使用することができる。
【００４９】
ビデオエンコーダ（４０３）は、ビデオソース（４０１）（図４の例では、電子デバイス（４２０）の一部ではない）からビデオサンプルを受け取ってよく、ビデオソース（４０１）は、ビデオエンコーダ（４０３）によって符号化されるべきビデオイメージをキャプチャし得る。別の例では、ビデオソース（４０１）は、電子デバイス（４２０）の一部である。
【００５０】
ビデオソース（４０１）は、任意の適切なビット深度（例えば８ビット、１０ビット、１２ビット、．．．）、任意の色空間（例えばＢＴ．６０１  Ｙ  ＣｒＣＢ、ＲＧＢ、．．．）及び任意の適切なサンプリング構造（例えばＹ  ＣｒＣｂ  ４：２：０、Ｙ  ＣｒＣｂ  ４：４：４）とすることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ（４０３）によって符号化されるべきソースビデオシーケンスを提供してよい。メディアサービングシステムでは、ビデオソース（４０１）は、以前に準備されたビデオを格納しているストレージデバイスであってよい。ビデ会議システムでは、ビデオソース（４０１）は、ローカルイメージ情報をビデオシーケンスとしてキャプチャするカメラであってよい。ビデオデータは、シーケンスとして見られるときに動きを伝える、複数の個々のピクチャとして提供されてよい。ピクチャそれ自体が、ピクチャの空間アレイとして構成されてもよく、この場合、各ピクチャは、使用中のサンプリング構造、色空間等に応じて１つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【００５１】
実施形態によると、ビデオエンコーダ（４０３）は、ソースビデオシーケンスのピクチャを、リアルタイムで又は適用によって要求される任意の他の時間制約下で、符号化されたビデオシーケンス（４４３）に符号化して圧縮することができる。適切な符号化スピードを実施することは、コントローラ（４５０）の１つの機能である。いくつかの実施形態において、コントローラ（４５０）は、以下で説明される他の機能ユニットを制御し、それらの他の機能ユニットに機能的に結合される。結合は明確性のために示されていない。コントローラ（４５０）によって設定されたパラメータは、レート制御関連パラメータ（ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、．．．）、ピクチャサイズ、グループオブピクチャ（ＧＯＰ）レイアウト、最大動きベクトル検索範囲等を含むことができる。コントローラ（４５）は、特定のシステム設計のために最適化されたビデオエンコーダ（４０３）に関連する、他の適切な機能を有するように構成され得る。
【００５２】
いくつかの実施形態において、ビデオエンコーダ（４０３）は、符号化ループで動作するように構成される。過剰に単純化された説明として、一例において、符号化ループは、（例えば符号化されるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボルを作成することに関与する）ソースコーダ（４３０）と、ビデオエンコーダ（４０３）に組み込まれた（ローカル）デコーダ（４３３）を含むことができる。デコーダ（４３３）は、（リモート）デコーダが作成する方法と同様の方法で（シンボルと、符号化されたビデオビットストリームとの間の任意の圧縮が、開示される主題で考慮されるビデオ圧縮技術で可逆であるように）シンボルを再構築してサンプルデータを作成する。再構築されたサンプルストリーム（サンプルデータ）は、参照ピクチャメモリ（４３４）に入力される。シンボルストリームの復号は、デコーダの位置（ローカル又はリモート）に依存しないビット正確な結果（ｂｉｔ−ｅｘａｃｔ  ｒｅｓｕｌｔｓ）をもたらすので、参照ピクチャメモリ（４３４）の内容も、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」ものと全く同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本的原理（及び例えばチャネルエラーのために同期生を維持できない場合に結果として生じるドリフト）は、いくつかの関連技術において同様に使用される。
【００５３】
「ローカル」デコーダ（４３３）の動作は、図３に関連して上記で既に詳述した、ビデオデコーダ（３１０）のような「リモート」デコーダのものと同じにすることができる。しかしながら、簡潔に図３も参照すると、シンボルが利用可能であり、エントロピーコーダ（４４５）及びパーサ（３２０）による符号化ビデオシーケンスへのシンボルの符号化／復号は可逆とすることができ、バッファメモリ（３１５）を含むビデオデコーダ（３１０）のエントロピー復号部分及びパーサ（３２０）は、ローカルデコーダ（４３３）では完全に実装されないことがある。
【００５４】
この時点で行うことができる観察は、デコーダ内に存在する構文解析／エントロピー復号を除く任意のデコーダ技術も必ず、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があることである。この理由のために、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に説明されるデコーダ技術の反対であるので、省略することができる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【００５５】
動作中に、いくつかの例において、ソースコーダ（４３０）は、「参照ピクチャ」として指定されたビデオシーケンスからの１つ以上の以前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する、動き補償予測符号化を実行してよい。このようにして、符号化エンジン（４３２）は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差を符号化する。
【００５６】
ローカルビデオデコーダ（４３３）は、ソースコーダ（４３０）によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号してよい。符号化エンジン（４３２）の動作は有利には、非可逆プロセスであり得る。符号化されたビデオデータがビデオデコーダ（図４では図示せず）で復号され得るとき、再構築されたビデオシーケンスは、典型的に、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってよい。ローカルビデオデコーダ（４３３）は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構築された参照ピクチャを参照ピクチャキャッシュ（４３４）に記憶させてよい。このようにして、ビデオエンコーダ（４０３）は、共通のコンテンツを有する再構築された参照ピクチャのコピーを、遠端のビデオデコーダによって得られることになる（送信エラーのない）再構築された参照ピクチャとしてローカルに記憶してよい。
【００５７】
予測子（４３５）は、符号化エンジン（４３２）について予測探索を実行してよい。すなわち、符号化されるべき新しいピクチャに対して、予測子（４３５）は、サンプルデータ（候補参照ピクセルブロックとして）又は参照ピクチャ動きベクトル、ブロック形状等のような特定のメタデータについて、参照ピクチャメモリ（４３４）を検索してよく、これらは、新たなピクチャについて適切な予測参照として機能し得る。予測子（４３５）は、適切な予測参照を見つけるために、ピクセルブロックバイサンプルブロックベース（ｓａｍｐｌｅ  ｂｌｏｃｋ−ｂｙ−ｐｉｘｅｌ  ｂｌｏｃｋ  ｂａｓｉｓ）で作用し得る。場合によっては、予測子（４３５）によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ（４３４）に記憶された複数の参照ピクチャから引き出された予測参照を有してよい。
【００５８】
コントローラ（４５０）は、例えばビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ（４３０）の符号化動作を管理してよい。
【００５９】
前述の機能ユニットのすべての出力は、エントロピーコーダ（４４５）におけるエントロピー符号化を受けてよい。エントロピーコーダ（４４５）は、例えばハフマン符号化、可変長符号化、算術符号化等の当業者に公知の技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【００６０】
トランスミッタ（４４０）は、エントロピーコーダ（４４５）によって作成された符号化されたビデオシーケンスをバッファリングして、通信チャネル（４６０）を介した送信の準備を行ってよく、通信チャネル（４６０）は、符号化されたビデオデータを記憶するストレージデバイスへのハードウェア／ソフトウェアリンクであってよい。トランスミッタ（４４０）は、ビデオコーダ（４０３）からの符号化されたビデオデータを、例えば符号化されたオーディオデータ及び／又は補助データストリーム（図示されないソース）のような、送信されるべき他のデータとマージしてよい。
【００６１】
コントローラ（４５０）は、ビデオエンコーダ（４０３）の動作を管理してよい。符号化の間、コントローラ（４５０）は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当ててよく、該符号化ピクチャタイプは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得る。例えばピクチャは、しばしば、次のピクチャタイプの１つとして割り当てられてよい：
【００６２】
イントラピクチャ（Ｉピクチャ）は、予測のソースとしてシーケンス内のいずれの他のピクチャも使用することなく、符号化されて復号され得るものであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ（「ＩＤＲ」：Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｅｃｏｄｅｒ  Ｒｅｆｒｅｓｈ）ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Ｉピクチャのこれらの変形例、並びにそれらのそれぞれの用途及び特徴を認識している。
【００６３】
予測ピクチャ（Ｐピクチャ）は、各ブロックのサンプル値を予測するために、最大で１つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して符号化されて復号され得るものであり得る。
【００６４】
双方向予測ピクチャ（Ｂピクチャ）は、各ブロックのサンプル値を予測するために、最大で２つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して符号化されて復号され得るものであり得る。同様に、複数の予測ピクチャは、単一ブロックの再構築のために、２つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【００６５】
ソースピクチャは一般に、空間的に複数のサンプルブロック（例えば各々４×４、８×８、４×８又は１６×１６サンプルのブロック）に分割され、ブロック毎に符号化されてよい。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるように、他の（既に符号化された）ブロックを参照して予測的に符号化され得る。例えばＩピクチャのブロックは、非予測的に符号化されてもよく、あるいはこれらは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい（空間予測又はイントラ予測）。Ｐピクチャのピクセルブロックは、１つの以前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して、予測的に符号化され得る。Ｂピクチャのブロックは、１つ又は２つの以前に符号化された参照ピクチャを参照して、空間予測又は時間予測を介して、予測的に符号化され得る。
【００６６】
ビデオエンコーダ（４０３）は、ＩＴＵ−Ｔ  Ｒｅｃ．  Ｈ．２６５等の所定のビデオ符号化技術又は規格に従って符号化動作を実行してよい。その動作において、ビデオエンコーダ（４０３）は、入力ビデオシーケンスにおける時間的及び空間的冗長性を悪用する予測符号化動作を含む、様々な圧縮動作を実行してよい。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術又は規格によって指定された構文に準拠し得る。
【００６７】
一実施形態では、トランスミッタ（４４０）は、符号化されたビデオとともに追加データを送信してもよい。ソースコーダ（４３０）は、そのようなデータを、符号化されたビデオシーケンスの一部として含んでよい。追加データは、時間的／空間的／ＳＮＲ強調層、冗長ピクチャ及びスライスのような他の形式の冗長データ、ＳＥＩ（Ｓｕｐｐｌｅｍｅｎｔａｒｙ  Ｅｎｈａｎｃｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ）メッセージ、視覚的ユーザビリティ情報（ＶＵＩ：Ｖｉｓｕａｌ  Ｕｓａｂｉｌｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ）パラメータセットフラグメント等を含んでもよい。
【００６８】
ビデオは、時間シーケンスにおいて複数のソースピクチャ（ビデオピクチャ）としてキャプチャされ得る。イントラピクチャ予測（しばしばイントラ予測と略される）は、所与のピクチャの空間相関の使用し、インターピクチャ予測は、ピクチャ間の（時間的又は他の）相関を使用する。一例では、現在のピクチャと呼ばれる符号化／復号中の特定のピクチャは、ブロックに分割される。現在のピクチャ内のブロックが、ビデオ内の、以前に符号化されて依然としてバッファリングされている参照ピクチャ内の参照ブロックに類似するとき、現在のピクチャ内のブロックを、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合は、参照ピクチャを識別する三次元（ｔｈｉｒｄ  ｄｉｍｅｎｓｉｏｎ）を有することができる。
【００６９】
いくつかの実施形態において、双予測技術（ｂｉ−ｐｒｅｄｉｃｔｉｏｎ  ｔｅｃｈｎｉｑｕｅ）を、インターピクチャ予測において使用することができる。双予測技術によれば、ビデオ内の現在のピクチャに対して復号順で両方とも先にある（しかし、それぞれ、表示順では、過去及び将来であり得る）第１及び第２参照ピクチャのような２つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第１参照ピクチャ内の第１参照ブロックを指す第１動きベクトルと、第２参照ピクチャ内の第２参照ブロックを指す第２動きベクトルとによって符号化できる。該ブロックは、第１参照ブロックと第２参照ブロックの組合せによって予測できる。
【００７０】
さらに、符号化効率を改善するために、マージモード技法をインターピクチャ予測で使用することができる。
【００７１】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックのユニットで実行される。例えばＨＥＶＣ規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット（ＣＴＵ：ｃｏｄｉｎｇ  ｔｒｅｅ  ｕｎｉｔｓ）に分割され、ピクチャ内のＣＴＵは、６４×６４ピクセル、３２×３２ピクセル又は１６×１６ピクセルのような同じサイズを有する。一般に、ＣＴＵは、１つのルマＣＴＢと２つのクロミナンスＣＴＢである３つの符号化ツリーブロック（ＣＴＢ）を含む。各ＣＴＵを、１つ又は複数の符号化ユニット（ＣＵ）に再帰的に４分木分割することができる。例えば６４×６４ピクセルのＣＴＵを、６４×６４ピクセルの１つの符号化ユニット（ＣＵ）、３２×３２ピクセルの４つのＣＵ又は１６×１６ピクセルの１６個のＣＵに分割することができる。一例では、各ＣＵを分析して、インター予測タイプ又はイントラ予測タイプのような、ＣＵの予測タイプを決定する。ＣＵは時間的及び／又は空間的予測可能性に依存して１つ以上の予測ユニット（ＰＵ）に分割される。一般に、各ＰＵは、１つのルマ予測ブロック（ＰＢ）と２つのクロミナンスＰＢを含む。一実施形態では、符号化（符号化／復号）における予測動作は、予測ブロックのユニットにおいて実行される。予測ブロックの例としてルマ予測ブロックを用いると、予測ブロックは、８×８ピクセル、１６×１６ピクセル、８×１６ピクセル、１６×８ピクセル等のピクセルに対する値（例えばルマ値）の行列を含む。
【００７２】
図５は、本開示の別の実施形態によるビデオエンコーダ（５０３）の図を示す。ビデオエンコーダ（５０３）は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック（例えば予測ブロック）を受け取り、処理ブロックを、符号化されたビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一実施形態では、ビデオエンコーダ（５０３）は、図２の例のビデオエンコーダ（２０３）の代わりに使用される。
【００７３】
ＨＥＶＣの例では、ビデオエンコーダ（５０３）は、８×８サンプルの予測ブロック等の処理ブロックのサンプル値のマトリックスを受け取る。ビデオエンコーダ（５０３）は、処理ブロックが、イントラモード、インターモード、あるいは例えばレート歪み最適化を用いる双予測モードを使用して、最も良く符号化されるかどうかを決定する。処理ブロックがイントラモードで符号化されるとき、ビデオエンコーダ（５０３）は、イントラ予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよく；処理ブロックがインターモード又は双予測モードで符号化されるとき、ビデオエンコーダ（５０３）は、それぞれ、インター予測又は双予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよい。ある種のビデオ符号化技術では、マージモードは、インターピクチャ予測サブモードとすることができ、この場合、動きベクトルは、１つ以上の動きベクトル予測子から、該予測子の外部の符号化された動きベクトル構成要素の利益なしに導出される。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル構成要素が存在してもよい。一実施形態では、ビデオエンコーダ（５０３）は、処理ブロックのモードを決定するためのモード決定モジュール（図示せず）等の他の構成要素を含む。
【００７４】
図５の例では、ビデオエンコーダ（５０３）は、図５に示されるように一緒に結合される、インターエンコーダ（５３０）、イントラエンコーダ（５２２）、残差計算機（５２３）、スイッチ（５２６）、残差エンコーダ（５２４）、一般コントローラ（５２１）及びエントロピーエンコーダ（５２５）を含む。
【００７５】
インターエンコーダ（５３０）は、現在のブロック（例えば処理ブロック）のサンプルを受け取り、ブロックを参照ピクチャ内の１つ以上の参照ブロックと比較し（例えば以前のピクチャ及び後のピクチャ内のブロック）、インター予測情報（例えばインター符号化技術による冗長情報の説明、動きベクトル、マージモード情報）を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果（例えば予測ブロック）を計算するように構成される。
【００７６】
イントラエンコーダ（５２２）は、現在のブロック（例えば処理ブロック）のサンプルを受け取り、場合によっては、ブロックを、同じピクチャ内の既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報（例えば１つ以上のイントラ符号化技術によるイントラ予測方向情報）も生成するように構成される。
【００７７】
一般コントローラ（５２１）は、一般制御データを決定し、一般制御データに基づいてビデオエンコーダ（５０３）の他の構成要素を制御するように構成される。一例では、一般コントローラ（５２１）は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ（５２６）に提供する。例えばモードがイントラのとき、一般コントローラ（５２１）は、残差計算機（５２３）による使用のためにイントラモードの結果を選択するようにスイッチ（５２６）を制御し、イントラ予測情報を選択してビットストリームにイントラ予測情報を含めるようにエントロピーエンコーダ（５２５）を制御し、モードがインターモードのとき、一般コントローラ（５２１）は、残差計算機（５２３）による使用のためにインター予測結果を選択するようにスイッチ（５２６）を制御し、インター予測情報を選択してビットストリームにインター予測情報を含めるようにエントロピーエンコーダ（５２５）を制御する。
【００７８】
残差計算機（５２３）は、受け取ったブロックと、イントラエンコーダ（５２２）又はインターエンコーダ（５３０）から選択された予測結果との間の差（残差データ）を計算するように構成される。残差エンコーダ（５２４）は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ（５２４）は、周波数領域の残差データを変換し、変換係数を生成するように構成される。変換係数は、次いで、量子化処理を受けて、量子化された変換係数を得る。
【００７９】
エントロピーエンコーダ（５２５）は、符号化されたブロックを含むようにビットストリームをフォーマットするよう構成される。エントロピーエンコーダ（５２５）は、ＨＥＶＣ規格等の適切な規格に従った様々な情報を含むように構成される。一例では、エントロピーエンコーダ（５２５）は、一般制御データ、選択された予測情報（例えばイントラ予測情報又はインター予測情報）、残差情報及びビットストリーム内の他の適切な情報を含むように構成される。開示された主題に従って、インターモード又は双予測モードのいずれかのマージサブモードでブロックを符号化するとき、残差情報は存在しないことに留意されたい。
【００８０】
図６は、本開示の別の実施形態によるビデオデコーダ（６１０）の図を示す。ビデオデコーダ（６１０）は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受け取り、符号化されたピクチャを復号して、再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ（６１０）は、図２の例のビデオデコーダ（２１０）の代わりに使用される。
【００８１】
図６の例では、ビデオデコーダ（６１０）は、図６に図示されるように一緒に結合される、エントロピーデコーダ（６７１）、インターデコーダ（６８０）、残差デコーダ（６７３）、再構築モジュール（６７４）及びイントラデコーダ（６７２）を含む。
【００８２】
エントロピーデコーダ（６７１）は、符号化されたピクチャから、該符号化されたピクチャが構成される構文要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えばブロックが符号化されるモード（例えばイントラ、インター、双予測、マージサブモード又は別のサブモードにおける後者の２つ等）、それぞれイントラデコーダ（６７２）又はインターデコーダ（６８０）によって予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報（例えばイントラ予測情報又はインター予測情報）、例えば量子化された変換係数等の形態の残差情報を含むことができる。一例では、予測モードがインター又は双予測モードのとき、インター予測情報がインターデコーダ（６８０）に提供され；予測タイプがイントラ予測タイプのとき、イントラ予測情報がイントラデコーダ（６７２）に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ（６７３）に提供される。
【００８３】
インターデコーダ（６８０）は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成される。
【００８４】
イントラデコーダ（６７２）は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成される。
【００８５】
残差デコーダ（６７３）は、逆量子化を実行して非量子化（ｄｅ−ｑｕａｎｔｉｚｅｄ）変換係数を抽出し、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ（６７３）はまた、特定の制御情報（量子化器パラメータＱＰを含む）も必要とすることがあり、その情報は、エントロピーデコーダ（６７１）（低ボリューム制御情報のみであり得るので、データ経路は図示されない）によって提供されてもよい。
【００８６】
再構築モジュール（６７４）は、空間領域において、残差デコーダ（６７３）による出力としての残差と、（場合によっては、インター又はイントラ予測モジュールによる出力としての）予測結果とを組み合わせて、再構築ブロックを形成するように構成され、再構築ブロックは再構築ピクチャの一部であってもよく、再構築ピクチャは再構築ビデオの一部であってもよい。デブロッキング操作等の他の適切な操作を行って、視覚品質を改善することができることに留意されたい。
【００８７】
ビデオエンコーダ（２０３）、（４０３）及び（５０３）、並びにビデオデコーダ（２１０）、（３１０）及び（６１０）は、任意の適切な技術を使用して実装できることに留意されたい。一実施形態では、ビデオエンコーダ（２０３）、（４０３）及び（５０３）、並びにビデオデコーダ（２１０）、（３１０）及び（６１０）を、１つ以上の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ（２０３）、（４０３）及び（４０３）、並びにビデオデコーダ（２１０）、（３１０）及び（６１０）を、ソフトウェア命令を実行する１つ以上のプロセッサを使用して実装することができる。
【００８８】
マージ候補は、現在のブロックの空間的又は時間的隣接ブロックからの動き情報をチェックすることによって形成されてもよい。図７を参照すると、現在のブロック（７０１）は、空間的にシフトされた同じサイズの前のブロックから予測可能である、動き検索プロセス中にエンコーダ／デコーダによって見つけられたサンプルを含む。いくつかの実施形態では、その動きベクトルを直接符号化する代わりに、動きベクトルを、１つ以上の参照ピクチャに関連付けられるメタデータから、（復号順で）最新の参照ピクチャから、例えばＤ、Ａ、Ｃ、Ｂ及びＥ（それぞれ７０２〜７０６）で示される５つの周囲のサンプルのいずれかに関連付けられる動きベクトルを使用して、導出することができる。ブロックＡ、Ｂ、Ｃ、Ｄ及びＥは、空間マージ候補と呼ばれてよい。これらの候補は、連続的にチェックされてマージ候補リストに入ってよい。重複する候補がリストから除去されることを確実にするために、プルーニング操作が実行されてもよい。
【００８９】
いくつかの実施形態では、空間的候補をマージリストに入れた後、時間的候補もチェックしてリストにする。例えば指定された参照ピクチャ内の現在のブロックの並置ブロック（ｃｏｌｌｏｃａｔｅｄ  ｂｌｏｃｋ）を見つける。参照ピクチャ内のＣ０位置（７０７）における動き情報は、時間マージ候補として使用される。Ｃ０位置は、このブロックの左上の角が、現在のブロック７０１の参照ピクチャ内の並置ブロックの右下の角である参照ピクチャ内のブロックであってよい。参照ピクチャ内の並置ブロックは、現在のブロック７０１と同じ位置座標（例えばｘ及びｙ座標）を含んでよい。Ｃ０位置（７０７）のブロックがインターモードで符号化されていない又は利用可能でない場合、Ｃ１位置のブロックを使用してもよい。Ｃ１位置のブロックは、参照ピクチャ内の並置ブロック内のブロックの中心位置（例えばｗ／２、ｈ／２）に左上の角を有してよい。特に、位置Ｃ１のブロックは、参照ピクチャの並置ブロックのサブブロックであってよい。上記の例では、ｗ及びｈはそれぞれ、ブロックの幅及び高さである。いくつかの実施形態によれば、追加のマージ候補は、組み合わされた双予測候補及びゼロ動きベクトル候補を含む。
【００９０】
スキップモードは、動きデータが、明示的にシグナリングされる代わりに推定されることと、予測残差がゼロであること（すなわち、変換係数が送信されないこと）とをブロックに対して示すために使用されてもよい。インターピクチャ予測スライス内の各ＣＵの開始時に、（ｉ）ＣＵが１つのＰＵのみを含むこと（例えば２Ｎｘ２Ｎ）、（ｉｉ）マージモードを使用して動きデータを導出すること又は（ｉｉｉ）ビットストリーム内に残差データが存在しないこと、のうちの１つ以上を暗示する、スキップフラグ（例えばｓｋｉｐ_ｆｌａｇ）がシグナリングされることがある。
【００９１】
いくつかの実施形態によれば、サブＣＵモードは、追加のマージ候補として有効にされる。いくつかの実施形態では、サブＣＵモードをシグナリングするために追加の構文要素は使用されない。いくつかの実施形態では、２つの追加のマージ候補を各ＣＵのマージ候補リストに追加して、代替の時間的動きベクトル予測（ＡＴＭＶＰ：ａｌｔｅｒｎａｔｉｖｅ  ｔｅｍｐｏｒａｌ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ）モード及び空間的−時間的動きベクトル予測（ＳＴＭＶＰ：ｓｐａｔｉａｌ−ｔｅｍｐｏｒａｌ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ）モードを表す。
【００９２】
シーケンスパラメータセットは、マージリスト内の候補の数を示してよい。例えばシーケンスパラメータセットがＡＴＭＶＰ及びＳＴＭＶＰが有効であることを示す場合、最大７つのマージ候補をマージリストで使用してよい。追加マージ候補の符号化ロジックは、マージ候補リスト内の他のマージ候補と同じであってもよく、その結果、Ｐスライス又はＢスライス内のＣＵ毎に、２つの追加マージ候補に対して２つ以上のレート歪み（ＲＤ：ｒａｔｅ−ｄｉｓｔｏｒｔｉｏｎ）チェックが実行される。マージ候補の順序は、Ａ、Ｂ、Ｃ、Ｄ、ＡＴＭＶＰ、ＳＴＭＶＰ、Ｅ（リスト内のマージ候補が６未満のとき）、時間的候補、結合された双予測候補及びゼロ動きベクトル候補であってよい。マージ候補リストは、マージインデックスによって参照されてよい。いくつかの実施形態では、マージインデックスのすべてのビンは、コンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ：ｃｏｎｔｅｘｔ−ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ）によってコンテキスト符号化される。他の実施形態では、最初のビンのみがコンテキスト符号化され、残りのビンはコンテキストバイパス符号化される。
【００９３】
いくつかの実施形態によれば、候補動きベクトルは、８×８ブロックのステップサイズで、以前に符号化されたブロックから探索される。図８は、８×８ブロックで囲まれた現在のブロック８００を示す。最も近い空間的隣接はカテゴリ１の候補であり、すぐ上の行（すなわち、ブロックｍｖ０及びｍｖ１を含む行）、左側の列（すなわち、ｍｖ２を含む列）及び右上の角（すなわち、ｍｖ２）をカテゴリ１として含む。カテゴリ２候補は、現在のブロック境界から離れており、以前に符号化されたフレーム内に並置されている、外側領域のブロックを含んでよい。カテゴリ２の候補は、最大３つの候補を含んでよい。図８において、カテゴリ２の候補は、外側の上の行（すなわち、ブロックｍｖ４及びｍｖ５を含む行）及び外側の左の列（すなわち、ブロックｍｖ５及びｍｖ６を含む列）から選択され得る。異なる参照フレームから予測されるか又はイントラ符号化された隣接ブロックは、リストからプルーニングされてよい。残りの参照ブロックには、各々重みが割り当てられてよい。重みは、現在のブロックまでの距離に関係してもよい。一例として、図８を参照すると、候補リストは、以下のカテゴリ１候補：すなわちｍｖ１、ｍｖ０、ｍｖ２及びｍｖ３を含んでよい。候補リストは更に、以下のカテゴリ２候補：すなわち、ｍｖ５、ｍｖ６及びｍｖ４を含んでよい。
【００９４】
いくつかの実施形態によれば、拡張マージモードは、現在のブロックにすぐ隣接しないブロックを含む追加のマージ候補を含む。これらの候補は、左、上、左下、右上及び左上の方向であり得る。マージ候補の最大数は１０個であってよい。図９は、参照ブロック（すなわち、対角線パターンを有するブロック）によって左、左上、上及び右上で囲まれた現在のブロック９００を示す。参照ブロックは、図７のブロックＡ、Ｂ、Ｃ、Ｄ及びＥにそれぞれ対応する隣接ブロックＡ、Ｂ、Ｃ、Ｄ及びＥを含んでもよい。図９において、参照ブロックの左上の角は、現在のブロック９００に対して（−９６、−９６）のオフセットを有してもよい。各候補ブロックＢ（ｉ、ｊ）又はＣ（ｉ、ｊ）は、それぞれ、その以前のＢ又はＣ候補ブロックと比較して、垂直方向に１６のオフセットを有してよい。各候補ブロックＡ（ｉ、ｊ）又はＤ（ｉ、ｊ）は、それぞれ、以前のＡ又はＤ候補ブロックと比較して、水平方向に１６のオフセットを有してよい。各Ｅ（ｉ、ｊ）ブロックは、その以前のＥ候補と比較して、水平方向及び垂直方向の両方において１６のオフセットを有してよい。候補は、現在のブロック９００に最も近い参照ブロックから、現在のブロック９００から最も遠い参照ブロックまでの方向でチェックされ得る。チェックされる候補の順序は、Ａ（ｉ、ｊ）、Ｂ（ｉ、ｊ）、Ｃ（ｉ、ｊ）、Ｄ（ｉ、ｊ）及びＥ（ｉ、ｊ）であり得る。
【００９５】
図９では、拡張された隣接位置は、現在のブロック９００に対して又は現在のブロック９００を含む現在のピクチャに対して決定されてよい。いくつかの実施形態によれば、これらの拡張された隣接位置から値をフェッチする代わりに、Ｎ個の以前に符号化されたブロックの動き情報を履歴動きベクトル予測（ＨＭＶＰ：ｈｉｓｔｏｒｙ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ）バッファに記憶して、より多くの動きベクトル予測候補を提供する。ＨＭＶＰバッファは、複数のＨＭＶＰ候補を含んでもよく、符号化／復号プロセスの間に維持されてもよい。いくつかの実施形態において、ＨＭＶＰバッファは、このＨＭＶＰバッファが、マージモード又はＡＭＶＰモード等の動きベクトル予測プロセスの間に使用されるときに、最新の符号化された動き情報が最初に考慮され得るように、先入れ先出し（ＦＩＦＯ）原理で動作してよい。
【００９６】
本開示の実施形態は、インターピクチャ予測符号化のための動きベクトル予測子を得るいくつかの方法を開示する。これらの方法は、履歴ベースのＭＶバッファからのＭＶ予測子を使用することと、バッファ管理を実行することを含む。これらの方法は、マージモードと、差分符号化を用いる動きベクトル予測（ＡＭＶＰモード）の両方に適用されてよい。本開示の実施形態は、マージ及び一般的なＭＶ予測概念を使用する任意のビデオ符号化方法に拡張されてもよい。また、本開示の実施形態は、スキップモードがマージモードを使用して動き情報を導出するので、スキップモードに適用されてもよい。
【００９７】
図１０Ａ及び図１０Ｂは、それぞれ、候補が挿入される前と後のＨＭＶＰバッファを示している。図１０Ａ及び図１０Ｂに示されるように、ＨＭＶＰバッファは、インデックス［０］〜［４］を有する５つのエントリを含む。図１０Ｂでは、エントリＣＬ_０は、インデックス［４］に挿入され、これにより、他のエントリが１つずつ左に移動し、その結果、エントリＨＭＰＶ_０がバッファから除去されることになる。エントリＣＬ_０は、以前に符号化又は復号されたブロックの動きベクトル予測子情報を含んでよい。
【００９８】
いくつかの実施形態によれば、ＨＭＶＰバッファ内の各エントリは、ブロックがインター符号化モードで符号化されている場合、以前に符号化されたブロックからの動き情報である。このブロックは、２つの動きベクトルを有する双方向予測モード又は１つの動きベクトルを有する単方向モードで符号化されてよい。ＨＭＶＰバッファ内の各エントリについて、双方向モードで符号化されている場合、そのエントリは、ＭＶ_Ｌ０（その参照インデックスを有する）及びＭＶ_Ｌ１（その参照インデックスを有する）としてのＭＶのペアを含む。いくつかの実施形態によれば、双方向モードに対応する２つの単方向動きベクトルは、（ｉ）Ｌ０の参照インデックスを元の予測子として使用する、Ｌ０予測のためのＭＶ_Ｌ０と、（ｉｉ）Ｌ１の参照インデックスを元の予測子として使用する、Ｌ１予測のためのＭＶ_Ｌ１を含む。
【００９９】
いくつかの実施形態において、ＨＭＶＰバッファ内の各元の双方向ＭＶ予測子について、元のＭＶ予測子から導出された２つの単方向ＭＶ予測子も、元の双方向ＭＶ予測子がマージ候補リストに入れられたときに、マージリスト内の新しい候補として考慮される。一実施形態では、ＭＶ_Ｌ０及びＭＶ_Ｌ１は、対応する元の双方向ＭＶがリストに入れられるたびに、それらの対応する元の双方向ＭＶ予測子の後にリストに入れられる。別の実施形態では、ＭＶ_Ｌ０及びＭＶ_Ｌ１は、ＨＭＶＰバッファからのＮ個の元のＭＶ予測子がリストに入れられた後に入れられ、ここで、Ｎは整数値である。Ｎは、ＨＭＶＰバッファからマージリストに入れることを許容されるＭＶ候補の数であってもよく、あるいはＮは、ＨＭＶＰバッファからマージリストにコピーされる最大許容数よりも小さい固定数であってもよい。いくつかの実施形態によれば、ＨＭＶＰバッファ内のエントリが、ＡＭＶＰモードにおいてＭＶ予測子を生成するために使用されるとき、ＨＭＶＰバッファ内の各元の双方向予測子について、上述の方法と同様の方法を使用して、単方向予測子ＭＶ_Ｌ０及びＭＶ_Ｌ１を生成してよい。これらの２つの予測因子は、ＡＭＶＰ  ＭＶ予測候補リストが満杯でない場合、該ＡＭＶＰ  ＭＶ予測候補リスト内で追加の予測因子として使用されてよい。
【０１００】
いくつかの実施形態によれば、ＨＭＶＰバッファは、条件が満たされると、空にされるか又はゼロ状態にリセットされる。条件は、（ｉ）現在のＣＵがＣＴＵの先頭であること、（ｉｉ）現在のＣＵがタイルの先頭であること、（ｉｉｉ）現在のＣＵがＣＴＵ行の先頭であること又は（ｉｖ）現在のＣＵがスライスの先頭であることであってよい。
【０１０１】
いくつかの実施形態によれば、すべてのＣＴＵ行の第１ＣＴＵ（ｆｉｒｓｔ  ＣＴＵ）が完了した後、同じサイズのＨＭＶＰバッファを有するＨＭＶＰ_ｒｏｗバッファを使用して、ＨＭＶＰバッファのエントリを格納する。したがって、新しいＣＴＵ行の開始時に、ＨＭＶＰバッファは、ＨＭＶＰ_ｒｏｗバッファ内の情報で満たされ得る。ＣＴＵ行の最後にＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、復号されている第１ＣＴＵのブロックは、第１ＣＴＵの真上のＣＴＵからの情報で復号され得る。
【０１０２】
いくつかの実施形態において、ピクチャ内の各タイルについて、ＨＭＶＰ_ｒｏｗバッファを使用して、各タイル行の第１ＣＴＵが終了した後にＨＭＶＰ情報を格納する。したがって、新たなタイル行の第１ＣＴＵについて、ＨＭＶＰバッファは、ＨＭＶＰ_ｒｏｗバッファからの情報を使用して満たされ得る。いくつかの実施形態において、ＨＭＶＰ_ｒｏｗバッファは、タイル又はスライスの第１ＣＴＵ行の開始時にゼロ状態に開始される。
【０１０３】
図１１は、ＣＴＵ_００〜ＣＴＵ_２３に分割された例示的なピクチャ１１００を示す。ＣＴＵ_００〜ＣＴＵ_０３は、第１ＣＴＵ行  ＣＴＵ_Ｒｏｗ_［０］にある。ＣＴＵ_１０〜ＣＴＵ_１３は、第２ＣＴＵ行  ＣＴＵ_Ｒｏｗ_［１］にある。ＣＴＵ_２０〜ＣＴＵ_２３は、第３ＣＴＵ_行にある。ピクチャ１１００内の各ＣＴＵは、複数のブロックに更に分割されてもよい。ブロックは、ＣＵ又は符号化ブロック（ＣＢ）であってよい。
【０１０４】
いくつかの実施形態では、ピクチャ１１００の第１ＣＴＵ（例えばＣＴＵ_００）内の最初のブロックが復号される前に、ＨＭＶＰバッファに初期値がロードされる。初期値は、エンコーダ又はデコーダのメモリに格納されてよい。別の例では、ＨＭＶＰバッファは、ゼロ状態（例えばバッファ内の有効なエントリがない）に初期化されてもよい。加えて、ＨＭＶＰ_ｒｏｗバッファは、ピクチャ１１００の第１ＣＴＵ（例えばＣＴＵ_００）内の最初のブロックが符号化又は復号される前に、ゼロ状態に初期化されてもよい。ＣＴＵ_００の最後のブロック（例えばＣＴＵ_Ｒｏｗ_［０］の最初のＣＴＵ）が符号化又は復号されると、ＨＭＶＰバッファの内容がＨＭＶＰ_ｒｏｗバッファにコピーされる。ＣＴＵ_０３の最後のブロックが符号化又は復号されると（例えばＣＴＵ_Ｒｏｗ_［０］の最後のＣＴＵ）、ＣＴＵ_１０の最初のブロックが符号化又は復号される前に（例えばＣＴＵ_Ｒｏｗ_［１］の最初のＣＴＵ）、ＨＭＶＰバッファが空にされ、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。したがって、ＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、ＣＴＵ_１０のブロックの符号化又は復号は、ＣＴＵ_０３からの情報よりもＣＴＵ_１０の符号化又は復号により関連し得る、ＣＴＵ_００からの情報（例えばＣＴＵ_１０より上のブロック）で実行され得る。
【０１０５】
ＨＭＶＰバッファの内容をＨＭＶＰ_ｒｏｗにコピーする同様のプロセスは、ＣＴＵ_１０及びＣＴＵ_２０の最後のブロックが符号化又は復号された後に実行されてもよい。さらに、ＨＭＶＰバッファをクリアする内容をコピーし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＶＭＰバッファにコピーする同様のプロセスは、ＣＴＵ_１３の最後のブロックが符号化又は復号された後に実行されてもよい。
【０１０６】
図１２は、２つのタイルＴｉｌｅ_１及びＴｉｌｅ_２に分割されたピクチャ１１００の例を示す。いくつかの実施形態において、Ｔｉｌｅ_１の第１ＣＴＵ（例えばＣＴＵ_００）の最初のブロックが符号化又は復号される前に、ＨＭＶＰバッファに初期値がロードされる。初期値は、エンコーダ又はデコーダのメモリに記憶されてよい。ＨＭＶＰバッファはまた、ゼロ状態に初期化されてもよい。加えて、ＨＭＶＰ_ｒｏｗバッファは、ピクチャ１１００の第１ＣＴＵ（例えばＣＴＵ_００）における最初のブロックが符号化又は復号される前に、ゼロ状態に初期化されてもよい。ＣＴＵ_００の最後のブロック（例えばＴｉｌｅ_１のＣＴＵ_Ｒｏｗ_［０］の最初のＣＴＵ）が符号化又は復号されると、ＨＭＶＰバッファの内容がＨＭＶＰ_ｒｏｗバッファにコピーされる。ＣＴＵ_０１の最後のブロックが符号化又は復号されると（例えばＴｉｌｅ_１のＣＴＵ_Ｒｏｗ_［０］の最後のＣＴＵ）、ＣＴＵ_１０の最初のブロックが符号化又は復号される前に（例えばＴｉｌｅ_１のＣＴＵ_Ｒｏｗ_［１］の最初のＣＴＵ）、ＨＭＶＰバッファが空にされ、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。したがって、ＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、ＣＴＵ_１０のブロックの符号化又は復号は、ＣＴＵ_０１からの情報よりもＣＴＵ_１０の符号化又は復号により関連し得る、ＣＴＵ_００からの情報で実行され得る。
【０１０７】
Ｔｉｌｅ_２は、Ｔｉｌｅ_１と並行に符号化又は復号されてもよく、別個のＨＭＶＰ及びＨＭＶＰ_ｒｏｗバッファを有してよく、それぞれ、Ｔｉｌｅ_１と同様に初期化されてもよい。ＣＴＵ_０２の最後のブロック（例えばＴｉｌｅ_２のＣＴＵ_Ｒｏｗ_［０］の最初のＣＴＵ）が符号化又は復号されると、ＨＭＶＰバッファの内容がＨＭＶＰ_ｒｏｗバッファにコピーされる。ＣＴＵ_０３の最後のブロックが符号化又は復号されると（例えばＴｉｌｅ_２のＣＴＵ_Ｒｏｗ_［０］の最後のＣＴＵ）、ＣＴＵ_１２の最初のブロックが符号化又は復号される前に（例えＴｉｌｅ_２のＣＴＵ_Ｒｏｗ_［１］の最初のＣＴＵ）、ＨＭＶＰバッファが空にされ、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。したがって、ＨＭＶＰバッファをリセットし、ＨＭＶＰ_ｒｏｗバッファの内容をＨＭＶＰバッファにコピーすることによって、ＣＴＵ_１２のブロックの符号化又は復号は、ＣＴＵ_０３からの情報よりもＣＴＵ_１２の復号により関連し得る、ＣＴＵ_０２からの情報で実行され得る。
【０１０８】
図１３は、エンコーダ５０３等のエンコーダ又はデコーダ６１０等のデコーダによって実行されるプロセスの一実施形態を示す。プロセスは、ステップＳ１３００で開始してよく、ステップＳ１３００において、現在のピクチャがビデオビットストリームから取得される。例えばピクチャ１１００（図１１）は、この取得されたピクチャであってもよい。プロセスは、ステップＳ１３０２に進み、ステップＳ１３０２において、現在のブロックが、ＨＭＶＰバッファからの１つ以上のエントリを使用して符号化／復号される。例えばピクチャ１１００を参照すると、ＣＴＵ_００の最初のブロックが符号化／復号されている場合、ＨＭＶＰバッファは初期状態に初期化されてよく、最初のブロックは、ＨＭＶＰバッファが初期化された後に、ＨＭＶＰバッファからの１つ以上のエントリで符号化／復号されてもよい。プロセスは、ステップＳ１３０４に進み、ステップＳ１３０４において、ＨＭＶＰバッファは、符号化／復号された現在のブロックの動きベクトル情報で更新される。
【０１０９】
プロセスは、ステップＳ１３０６に進み、現在の符号化／復号されたブロックがＣＴＵ行の末尾にあるかどうかを判断する。例えばピクチャ１１００を参照すると、符号化／復号される現在のブロックがＣＴＵ_０３の最後のブロックである場合、符号化／復号されるべき次のブロックは、次の行であるＣＴＵ_１０の最初のブロックである。現在の符号化／復号されたブロックがＣＴＵ行の末尾にある場合、プロセスはステップＳ１３０８に進み、ステップＳ１３０８において、ＨＭＶＰバッファがリセットされ（例えば空にされ）、次のブロックが符号化／復号される前に、ＨＭＶＰ_ｒｏｗバッファの内容がＨＭＶＰバッファにコピーされる。プロセスは、ステップＳ１３０８からステップＳ１３１４に進み、これは、以下に更に詳細に説明される。
【０１１０】
現在の符号化／復号されたブロックがＣＴＵ行の末尾でない場合、プロセスはステップＳ１３１０に進み、現在の符号化／復号されたブロックがＣＴＵ行の第１ＣＴＵの最後のブロックであるかどうかを判断する。現在の符号化／復号されたブロックがＣＴＵ行内の第１ＣＴＵの最後のブロックである場合、プロセスはステップＳ１３１２に進み、ステップＳ１３１２において、ＨＭＶＰバッファの内容がＨＶＭＰ_ｒｏｗバッファにコピーされる。例えばピクチャ１１００を参照すると、現在の符号化／復号されたブロックがＣＴＵ_００の最後のブロックである場合、ＨＶＭＰバッファの内容は、ＣＴＵ_０１の最初のブロックが符号化／復号される前に、ＨＭＶＰ_ｒｏｗバッファの内容にコピーされる。プロセスは、ステップＳ１３１２からステップＳ１３１４に進み、これは、以下で更に詳細に説明される。
【０１１１】
現在の符号化／復号されたブロックがＣＴＵ行内の第１ＣＴＵの最後のブロックでない場合、プロセスはステップＳ１３１４に進み、現在の符号化／復号されたブロックが取得されたピクチャ内の最後のブロックであるかどうかを判断する。現在の符号化／復号されたブロックが、取得されたピクチャ内の最後のブロックである場合、図１３のプロセスは終了する。例えば現在の符号化／復号されたブロックがＣＴＵ_２３の最後のブロックである場合、図１３のプロセスは完了する。現在の符号化／復号されたブロックが取得されたピクチャ内の最後のブロックでない場合、プロセスはステップＳ１３１４からステップＳ１３０２に戻る。
【０１１２】
上述の技術は、コンピュータ読取可能な命令を使用してコンピュータソフトウェアとして実装でき、１つ以上のコンピュータ読取可能な媒体に物理的に格納できる。例えば図１４は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム（１４００）を示す。
【０１１３】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク又は類似のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコード化されて、１つ以上のコンピュータ中央処理ユニット（ＣＰＵ）、グラフィクス処理ユニット（ＧＰＵ）等によって直接的に、あるいは翻訳、マイクロコード実行等を通して実行され得る命令を含むコードを作成し得る。
【０１１４】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行され得る。
【０１１５】
コンピュータシステム（１４００）の図１４に示される構成要素は、性質上例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関していかなる限定も示唆するように意図されていない。また、構成要素の構成も、コンピュータシステム（１４００）の例示的な実施形態で図示される構成要素の任意の１つ又は組合せに関するいかなる従属性又は要件も有するものとして解釈されるべきではない。
【０１１６】
コンピュータシステム（１４００）は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力（例えばキーストローク、スワイプ、データグローブの動き）、オーディオ入力（例えば音声、拍手）、視覚入力（例えばジェスチャ）、嗅覚入力（図示せず）を通して、１人以上の人間のユーザによる入力に応答し得る。また、ヒューマンインタフェースデバイスを使用して、オーディオ（例えばスピーチ、音楽、周囲音）、画像（例えばスキャンされた画像、静止画像カメラから得られる写真画像）、ビデオ（例えば２次元ビデオ、立体ビデオを含む３次元ビデオ）といった、人間による意識的入力に必ずしも直接関係しない特定の媒体をキャプチャすることができる。
【０１１７】
入力ヒューマンインタフェースデバイスは：キーボード（１４０１）、マウス（１４０２）、トラックパッド（１４０３）、タッチスクリーン（１４１０）、データグローブ（図示せず）、ジョイスティック（１４０５）、マイクロホン（１４０６）、スキャナ（１４０７）、カメラ（１４０８）、のうちの（図示されているものの１つのみの）１つ以上を含んでもよい。
【０１１８】
コンピュータシステム（１４００）は、特定のヒューマンインタフェース出力デバイスも含んでもよい。そのようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音、光及び嗅覚／味覚を通して、１人以上の人間のユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力デバイスは、触覚出力デバイス（例えばタッチスクリーン（１４１０）、データグローブ（図示せず）又はジョイスティック（１４０５）による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在する可能性がある）、オーディオ出力デバイス（例えばスピーカ（１４０９）、ヘッドフォン（図示せず））、視覚出力デバイス（例えばＣＲＴ画面、ＬＣＤ画面、プラズマ画面、ＯＬＥＤ画面を含む画面（１４１０）であり、各々タッチスクリーン入力機能を有するか又は有さず、各々触覚フィードバック機能を有するか有さず、その一部は、二次元視覚出力を出力するか、例えば立体出力、仮想現実グラス（図示せず）、ホログラフィックディスプレイ及びスモークタンク（図示せず）のような手段を通して三次元超の出力を出力する能力を有する可能性がある）及びプリンタ（図示せず）を含んでよい。
【０１１９】
コンピュータシステム（１４００）は、ＣＤ／ＤＶＤ又は同様の媒体（１４２１）を有するＣＤ／ＤＶＤ  ＲＯＭ／ＲＷ（１４２０）、サムドライブ（１４２２）、取り外し可能ハードドライブ又はソリッドステートドライブ（１４２３）、テープ及びフロッピーディスク（図示せず）のようなレガシー磁気媒体、セキュリティドングル（図示せず）のような特別なＲＯＭ／ＡＳＩＣ／ＰＬＤベースのデバイスのような、人間がアクセス可能なストレージデバイス及びその関連する媒体も含むことができる。
【０１２０】
当業者はまた、「コンピュータ読取可能媒体」という用語が、現在開示されている主題に関連して使用されるとき、伝送媒体、搬送波又は他の一時的信号を包含しないことも理解すべきである。
【０１２１】
コンピュータシステム（１４００）は、１つ以上の通信ネットワークへのインタフェースも含むことができる。ネットワークは、例えば無線、有線、光であり得る。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット（登録商標）、無線ＬＡＮ、ＧＳＭ（登録商標）、３Ｇ、４Ｇ、５Ｇ、ＬＴＥ等を含むセルラネットワーク、ケーブルＴＶ、衛星ＴＶ及び地上放送ＴＶを含むＴＶ有線又は無線ワイドエリアデジタルネットワーク、ＣＡＮＢｕｓを含む車両及び産業等を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス（１４４９）（例えばコンピュータシステム（１４００）のＵＳＢポート）に取り付けられる外部ネットワークインタフェースアダプタを必要とするが、他のものは、一般に、以下で説明されるシステムバスへの取り付けによって、コンピュータシステム（１４００）のコアに統合される（例えばＰＣコンピュータシステムへのイーサネット（登録商標）インタフェース又はスマートフォンコンピュータシステムへのセルラネットワークインタフェース）。これらのネットワークのいずれかを使用して、コンピュータシステム（１４００）は、他のエンティティと通信することができる。このような通信は、単指向性、受信専用（例えば放送ＴＶ）、単指向性送信専用（例えば特定のＣＡＮＢｕｓデバイスへのＣＡＮＢｕｓ）又は例えばローカル又はワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双指向性とすることができる。特定のプロトコル及びプロトコルスタックを、上述のように、それらのネットワーク及びネットワークインタフェースの各々において使用することができる。
【０１２２】
前述のヒューマンインタフェースデバイス、人間がアクセス可能なストレージデバイス及びネットワークインタフェースを、コンピュータシステム（１４００）のコア（１４４０）に取り付けることができる。
【０１２３】
コア（１４４０）は、１つ以上の中央処理ユニット（ＣＰＵ）（１４４１）、グラフィクス処理ユニット（ＧＰＵ）（１４４２）、フィールドプログラマブルゲートエリア（ＦＰＧＡ）（１４４３）の形の特別なプログラマブル処理ユニット、特定のタスクのハードウェアアクセラレータ（１４４４）等を含むことができる。これらのデバイスは、読取専用メモリ（ＲＯＭ）（１４４５）、ランダムアクセスメモリ（１４４６）、内部非ユーザアクセス可能ハードドライブ、ＳＳＤ（１４４７）等の内部大容量ストレージとともに、システムバス（１４４８）を介して接続されてよい。いくつかのコンピュータシステムでは、システムバス（１４４８）は、追加のＣＰＵ、ＧＰＵ等による拡張を可能にするために、１つ以上の物理プラグの形でアクセス可能であり得る。周辺デバイスは、コアのシステムバス（１４４８）に直接取り付けられることも、周辺バス（１４４９）を介して取り付けられることもできる。周辺バスのアーキテクチャは、ＰＣＩ、ＵＳＢ等を含む。
【０１２４】
ＣＰＵ（１４４１）、ＧＰＵ（１４４２）、ＦＰＧＡ（１４４３）及びアクセラレータ（１４４４）は、組み合わせて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ＲＯＭ（１４４５）又はＲＡＭ（１４４６）に記憶することができる。移行データは、ＲＡＭ（１４４６）に記憶することもできるが、永久データは、例えば内部大容量ストレージ（１４４７）に記憶することができる。１つ以上のＣＰＵ（１４４１）、ＧＰＵ（１４４２）、大容量ストレージ（１４４７）、ＲＯＭ（１４４５）、ＲＡＭ（１４４６）等と密接に関連付けることができるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索を可能にすることができる。
【０１２５】
コンピュータ読取可能媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものとすることができ、あるいはそれらは、コンピュータソフトウェア分野の当業者に周知かつ入手可能な種類のものとすることができる。
【０１２６】
限定ではなく一例として、アーキテクチャ（１４００）、具体的にはコア（１４４０）を有するコンピュータシステムは、１つ以上の有形のコンピュータ読取可能媒体に具現化されたソフトウェアを実行するプロセッサ（ＣＰＵ、ＧＰＵ、ＦＰＧＡ、アクセラレータ等を含む）の結果として機能を提供することができる。そのようなコンピュータ読取可能媒体は、上述のようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ（１４４７）又はＲＯＭ（１４４５）のように、非一時的な性質のコア（１４４０）の特定のストレージに関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアを、そのようなデバイスに格納してコア（１４４０）によって実行することができる。コンピュータ読取可能媒体は、特定のニーズに応じて、１つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア（１４４０）及び特にその中のプロセッサ（ＣＰＵ、ＧＰＵ、ＦＰＧＡ等を含む）に、ＲＡＭ（１４４６）に格納されるデータ構造を定義し、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することを含め、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、回路（例えばアクセラレータ（１４４４））内にハードワイヤードされた又は他の方法で具体化されたロジックの結果として機能を提供することができ、これは、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行するためのソフトウェアの代わりに又はそれとともに動作することができる。ソフトウェアへの参照はロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ読取可能媒体への参照は、実行のためのソフトウェアを格納する回路（例えば集積回路（ＩＣ））、実行のためのロジックを具体化する回路又は適切な場合にはその双方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
付録Ａ：頭字語
ＭＶ：動きベクトル
ＨＥＶＣ：高効率ビデオ符号化
ＳＥＩ：補足強調情報
ＶＵＩ：ビデオユーザビリティ情報
ＧＯＰ：グループオブピクチャ
ＴＵ：変換ユニット
ＰＵ：予測ユニット
ＣＴＵ：符号化ツリーユニット
ＣＴＢ：符号化ツリーブロック
ＰＢ：予測ブロック
ＨＲＤ：仮想参照デコーダ
ＳＮＲ：信号雑音比
ＣＰＵ：中央処理ユニット
ＧＰＵ：グラフィクス処理ユニット
ＣＲＴ：陰極線管
ＬＣＤ：液晶ディスプレイ
ＯＬＥＤ：有機発光ダイオード
ＣＤ：コンパクトディスク
ＤＶＤ：デジタルビデオディスク
ＲＯＭ：読取専用メモリ
ＲＡＭ：ランダムアクセスメモリ
ＡＳＩＣ：特定用途向け集積回路
ＰＬＤ：プログラマブルロジックデバイス
ＬＡＮ：ローカルエリアネットワーク
ＧＳＭ：モバイル通信用グローバルシステム
ＬＴＥ：ロングタームエボリューション
ＣＡＮＢｕｓ：コントローラエリアネットワークバス
ＵＳＢ：ユニバーサルシリアルバス
ＰＣＩ：周辺コンポーネント相互接続
ＦＰＧＡ：フィールドプログラマブルゲートエリア
ＳＳＤ：ソリッドステートドライブ
ＩＣ：集積回路
ＣＵ：符号化ユニット
【０１２７】
本開示では、いくつかの例示的な実施形態を記載してきたが、本開示の範囲内にある変更、置換及び様々な代替等価物がある。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具体化し、したがって、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されるであろう。
【０１２８】
（１）デコーダが実行するビデオ復号の方法であって、当該方法は、符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成する、ステップと；前記複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップと；復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップと；現在のブロックが複数のユニットの１つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと；現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファをリセットするステップと；を含む。
【０１２９】
（２）現在のブロックが行の第１ユニット（ｆｉｒｓｔ  ｕｎｉｔ）の最後のブロックであるかどうかを判断するステップと；現在のブロックが行の第１ユニットの最後のブロックであると判断したことに応じて、ＨＭＶＰバッファの内容を行バッファにコピーするステップと；を更に含む、特徴（１）に記載の方法。
【０１３０】
（３）現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファの各エントリがリセットされた後に、行バッファの内容をＨＭＶＰバッファにコピーするステップを更に含む、特徴（２）に記載の方法。
【０１３１】
（４）ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、動きベクトルでＨＭＶＰバッファを更新するステップは、ＨＭＶＰバッファの最後のエントリに動きベクトルを格納するステップと、ＨＭＶＰバッファの最初のエントリを削除するステップとを含む、特徴（１）〜（３）のいずれか１つに記載の方法。
【０１３２】
（５）ユニットは、符号化ツリーユニット（ＣＴＵ）である、特徴（１）〜（４）のいずれか１つに記載の方法。
【０１３３】
（６）ユニットはタイルであり、ユニットのうち復号された１つは第１タイルであり、複数のユニットからの第１タイル及び第２タイルは並行に復号される、特徴（２）〜（５）のいずれか１つに記載の方法。
【０１３４】
（７）ビデオ復号のためのビデオデコーダであって：符号化されたビデオビットストリームから現在のピクチャを取得し、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成し、複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号し、復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新し、現在のブロックが複数のユニットの１つのグリッドに含まれる行の先頭にあるかどうかを判断し、現在のブロックが行の先頭にあると判断したことに応じて、ＨＭＶＰバッファをリセットする、ように構成された処理回路を含む、ビデオデコーダ。
【０１３５】
（８）処理回路は、現在のブロックが行の第１ユニットの最後のブロックであるかどうかを判断し、現在のブロックが行の第１ユニットの最後のブロックであると判断したことに応じて、ＨＭＶＰバッファの内容を行バッファにコピーするように更に構成される、特徴（７）に記載のビデオデコーダ。
【０１３６】
（９）処理回路は、現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファの各エントリがリセットされた後に、行バッファの内容をＨＭＶＰバッファにコピーするように更に構成される、特徴（８）に記載のビデオデコーダ。
【０１３７】
（１０）ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、動きベクトルでＨＭＶＰバッファを更新することは、ＨＭＶＰバッファの最後のエントリに動きベクトルを格納することと、ＨＭＶＰバッファの最初のエントリを削除することを含む、特徴（７）〜（９）のいずれか１つに記載のビデオデコーダ。
【０１３８】
（１１）ユニットは、符号化ツリーユニット（ＣＴＵ）である、特徴（７）〜（１０）のいずれか１つに記載のビデオデコーダ。
【０１３９】
（１２）ユニットはタイルであり、ユニットのうち復号された１つは第１タイルであり、複数のユニットからの第１タイル及び第２タイルは並行に復号される、特徴（８）〜（１１）のいずれか１つに記載のビデオデコーダ。
【０１４０】
（１３）ビデオデコーダ内のプロセッサによって実行されると、該プロセッサに、符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける複数のブロックはグリッド状を形成する、ステップと；複数のユニットの１つについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、複数のブロックからの現在のブロックを復号するステップと；復号された現在のブロックの動きベクトルでＨＭＶＰバッファを更新するステップと；現在のブロックが複数のユニットの１つのグリッドに含まれる行の先頭にあるかどうかを判断するステップと；現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファをリセットするステップと；を含む方法を実行させる命令を有する、非一時的コンピュータ読取可能媒体。
【０１４１】
（１４）方法は、現在のブロックが行の第１ユニットの最後のブロックであるかどうかを判断するステップと；現在のブロックが行の第１ユニットの最後のブロックであると判断したことに応じて、ＨＭＶＰバッファの内容を行バッファにコピーするステップと；を更に含む、特徴（１３）に記載の非一時的コンピュータ読取可能媒体。
【０１４２】
（１５）方法は、現在のブロックが行の先頭であると判断したことに応じて、ＨＭＶＰバッファの各エントリがリセットされた後に、行バッファの内容をＨＭＶＰバッファにコピーするステップ、を更に含む、特徴（１４）に記載の非一時的コンピュータ読取可能媒体。
【０１４３】
（１６）ＨＭＶＰバッファは先入れ先出し（ＦＩＦＯ）バッファであり、動きベクトルでＨＭＶＰバッファを更新するステップは、ＨＭＶＰバッファの最後のエントリに動きベクトルを格納するステップと、ＨＭＶＰバッファの最初のエントリを削除するステップとを含む、特徴（１３）〜（１５）のいずれか１つに記載の非一時的コンピュータ読取可能媒体。
【０１４４】
（１７）ユニットは、符号化ツリーユニット（ＣＴＵ）である、特徴（１３）〜（１６）のいずれか１つに記載の非一時的コンピュータ読取可能媒体。
【０１４５】
（１８）ユニットはタイルであり、ユニットのうち復号された１つは第１タイルであり、複数のユニットからの第１タイル及び第２タイルは並行に復号される、特徴（１４）〜（１７）のいずれか１つに記載の非一時的コンピュータ読取可能媒体。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デコーダが実行するビデオ復号の方法であって、
前記デコーダが、
符号化されたビデオビットストリームから現在のピクチャを取得するステップであって、前記現在のピクチャは複数のユニットに分割され、各ユニットは複数のブロックに分割され、各ユニットにおける前記複数のブロックはグリッドとして配置される、ステップと、
前記複数のユニットのうちの１つのユニットについて、履歴動きベクトル（ＨＭＶＰ）バッファからのエントリを使用して、前記複数のブロックからの現在のブロックを復号するステップと、
復号された前記現在のブロックの動きベクトルで前記ＨＭＶＰバッファを更新するステップと、
前記現在のブロックが前記複数のユニットのうちの前記１つのユニットのグリッドに含まれる行の先頭にあるかどうかを判断するステップと、
前記現在のブロックが前記行の先頭であると判断したことに応じて、前記ＨＭＶＰバッファをリセットするステップと、
を含む、方法。
【請求項２】
前記デコーダが、
前記現在のブロックが前記行の第１ユニットの最後のブロックであるかどうかを判断するステップと、
前記現在のブロックが前記行の前記第１ユニットの最後のブロックであると判断したことに応じて、前記ＨＭＶＰバッファの内容を行バッファにコピーするステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記デコーダが、前記現在のブロックが前記行の先頭であると判断したことに応じて、前記ＨＭＶＰバッファの各エントリがリセットされた後に、前記行バッファの内容を前記ＨＭＶＰバッファにコピーするステップを更に含む、
請求項２に記載の方法。
【請求項４】
前記ＨＭＶＰバッファは、先入れ先出し（ＦＩＦＯ）バッファであり、
前記動きベクトルで前記ＨＭＶＰバッファを更新するステップは、
前記ＨＭＶＰバッファの最後のエントリに前記動きベクトルを格納するステップと、
前記ＨＭＶＰバッファの最初のエントリを削除するステップと、
を含む、請求項１乃至３のうちいずれか１項に記載の方法。
【請求項５】
前記ユニットは、符号化ツリーユニット（ＣＴＵ）である、
請求項１乃至４のうちいずれか１項に記載の方法。
【請求項６】
前記ユニットはタイルであり、前記複数のユニットのうちの、復号された前記１つのユニットは第１タイルであり、前記複数のユニットからの前記第１タイル及び第２タイルは並行に復号される、
請求項１乃至４のうちいずれか１項に記載の方法。
【請求項７】
コンピュータに、請求項１乃至６のうちいずれか１項に記載の方法を実行させるためのプログラム。
【請求項８】
処理回路を含むビデオデコーダであって、
前記処理回路は、請求項１乃至６のうちいずれか１項に記載の方法を実行するように構成される、ビデオデコーダ。
【国際調査報告】
2021516509.tif 000018