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