(57)【要約】ある実施形態の方法は、時間的動きベクタをスライスのために使用するか否かを制御するフラグが符号化ビットストリーム内に存在するか否かを判断し、フラグが存在する場合にフラグ用の値を決定し、フラグが存在しない場合にフラグ用の値がデフォルト値であると推測し、フラグの値に基づいて、スライスの復号の際のコロケーテド参照画像を符号化ビットストリームの中から決定すべきか否かを判断する。【選択図】図６Ａ
2015516758.tif 000002
【特許請求の範囲】
【請求項１】
スライスのために時間的動きベクタを使用するか否かを制御するフラグが符号化ビットストリーム内に存在するか否かをコンピュータ装置によって判断し、
前記フラグが存在する場合に、前記コンピュータ装置によって前記フラグ用の値を決定し、
前記フラグが存在しない場合に、前記コンピュータ装置によって前記フラグ用の前記値がデフォルト値であると推測し、
前記フラグの前記値に基づいて、前記スライスの復号の際のコロケーテド参照画像を前記符号化ビットストリームの中から決定するか否かを、前記コンピュータ装置によって判断する、ことを特徴とする方法。
【請求項２】
前記デフォルト値は、前記スライスのための前記時間的動きベクタの使用をイネーブルすることを特徴とする請求項１に記載の方法。
【請求項３】
前記デフォルト値は１であることを特徴とする請求項２に記載の方法。
【請求項４】
さらに、前記符号化ビットストリーム内に前記フラグ用の値を符号化するか否かを判断するエンコーダから前記符号化ビットストリームを受信することを特徴とする請求項１に記載の方法。
【請求項５】
前記フラグの前記値が前記時間的動きベクタの使用をイネーブルする場合に、参照画像のリストから前記コロケーテド参照画像を決定することを特徴とする請求項１に記載の方法。
【請求項６】
前記フラグは第１フラグを含み、
前記方法は、さらに、
前記第１フラグ用の前記値を前記コンピュータ装置によって決定することと、
前記第１フラグの前記値が第１値の場合に下記（ａ）、（ｂ）、（ｃ）及び（ｄ）を実行することと、
（ａ）参照画像の第１のリストを含む第１リスト又は参照画像の第２のリストを含む第２リストをコロケーテド参照画像の決定のために使用すべきか否かを示す第２フラグを復号すべきか否かを判断するための第１条件を、前記コンピュータ装置によって評価し、
（ｂ）前記第１条件が、前記第２フラグを復号すべきと示す場合に、前記コンピュータ装置によって、１以上のブロックの復号時に前記第２フラグを復号し、
（ｃ）前記第１リスト又は前記第２リストのいずれかの中の前記コロケーテド参照画像の位置を示す位置情報を復号すべきか否かを判断するための第２条件を、前記コンピュータ装置によって評価し、
（ｄ）前記第２条件が、前記位置情報を復号すべきと示す場合に、前記コンピュータ装置によって、前記スライスの復号時に前記位置情報を復号する、
前記第１フラグが第２値の場合に、前記第２フラグ及び前記位置情報を前記スライスの復号時に前記コンピュータ装置によって復号しないことと、を特徴とする請求項１に記載の方法。
【請求項７】
前記第１条件の評価において、前記スライスに関連するスライス・タイプを決定し、前記スライス・タイプがＢタイプである場合に、前記スライスの復号時に前記第２フラグを復号することを特徴とする請求項６に記載の方法。
【請求項８】
前記スライス・タイプがＢタイプでない場合に、前記スライスの復号時に前記第２フラグを復号しないことを特徴とする請求項７に記載の方法。
【請求項９】
前記第２条件の評価において、前記スライスに関連するスライス・タイプを決定し、前記スライス・タイプがＩタイプでない場合に、前記位置情報を復号するか否かを判断するための第３条件を評価し、前記第３条件が前記位置情報を復号すべきと示す場合に、前記スライスの復号時に前記位置情報を復号することを特徴とする請求項６に記載の方法。
【請求項１０】
第１値は、前記スライスの符号化又は復号時の時間的予測処理において前記時間的動きベクタを使用すべきであると示し、
第２値は、前記スライスの復号時の時間的予測処理において前記時間的動きベクタを使用すべきでないと示すことを特徴とする請求項１に記載の方法。
【請求項１１】
前記スライスが少なくとも１つのブロックを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
１つ以上のコンピュータプロセッサと、非一時的コンピュータ可読記憶媒体を含み、
前記非一時的コンピュータ可読記憶媒体に含まれる命令を実行すると、前記命令は、
スライスのために時間的動きベクタを使用するか否かを制御するフラグが符号化ビットストリーム内に存在するか否かを判断し、
前記フラグが存在する場合に、前記フラグ用の値を決定し、
前記フラグが存在しない場合に、前記フラグ用の前記値がデフォルト値であると推測し、
前記フラグの前記値に基づいて、前記スライスの復号の際のコロケーテド参照画像を前記符号化ビットストリームの中から決定するか否かを評価する、
ように前記１つ以上のコンピュータプロセッサを制御することを特徴とするデコーダ。
【請求項１３】
前記デフォルト値は、前記スライスのための前記時間的動きベクタの使用をイネーブルすることを特徴とする請求項１２に記載のデコーダ。
【請求項１４】
スライスの符号化に時間的動きベクタを使用すべきか否かを、コンピュータ装置によって判断し、
前記時間的動きベクタを制御するフラグを前記スライスの符号化に使用すべきか否かを、前記コンピュータ装置によって判断し、
前記フラグを使用すべきである場合に、前記スライスのために、前記フラグ用の値を符号化ビットストリーム内に前記コンピュータ装置によって符号化し、
前記フラグを使用すべきでない場合に、前記フラグ用の前記値を前記符号化ビットストリーム内に前記コンピュータ装置によって符号化せず、
前記コンピュータ装置によって前記符号化ビットストリームをデコーダに送信し、
前記フラグ用の前記値が前記符号化ビットストリームに存在しないときに、前記デコーダは前記フラグの前記値がデフォルト値であると推測する、ことを特徴とする方法。
【請求項１５】
前記デフォルト値は、前記スライスのための前記時間的動きベクタの使用をイネーブルすることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記デフォルト値は１であることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記フラグの前記値が、前記時間的動きベクタの使用をイネーブルする第１値である場合に、参照画像のリストからコロケーテド参照画像を決定することを特徴とする請求項１４に記載の方法。
【請求項１８】
前記フラグは第１フラグを含み、
前記方法は、さらに、
前記第１フラグ用の前記値を前記コンピュータ装置によって決定することと、
前記第１フラグ用の前記値が第１値の場合に下記（ａ）、（ｂ）、（ｃ）及び（ｄ）を実行することと、
（ａ）参照画像の第１のリストを含む第１リスト又は参照画像の第２のリストを含む第２リストをコロケーテド参照画像の決定のために使用すべきか否かを示す第２フラグを復号すべきか否かを判断するための第１条件を、前記コンピュータ装置によって評価し、
（ｂ）前記第１条件が、前記第２フラグを符号化すべきと示す場合に、前記コンピュータ装置によって、１以上のブロックの符号化時に前記第２フラグを符号化し、
（ｃ）前記第１リスト又は前記第２リストのいずれかの中の前記コロケーテド参照画像の位置を示す位置情報を符号化すべきか否かを判断するための第２条件を、前記コンピュータ装置によって評価し、
（ｄ）前記第２条件が、前記位置情報を符号化すべきと示す場合に、前記コンピュータ装置によって、前記スライスの符号化時に前記位置情報を符号化する、
前記第１フラグが第２値の場合に、前記第２フラグ及び前記位置情報を前記スライスの符号化時に前記コンピュータ装置によって符号化しないことと、を特徴とする請求項１４に記載の方法。
【請求項１９】
１つ以上のコンピュータプロセッサと、非一時的コンピュータ可読記憶媒体を含み、
前記非一時的コンピュータ可読記憶媒体に含まれる命令を実行すると、前記命令は、
スライスの符号化に時間的動きベクタを使用すべきか否かを判断し、
前記時間的動きベクタを制御するフラグを前記スライスの符号化に使用すべきか否かを判断し、
前記フラグを使用すべきである場合に、前記スライスのために、前記フラグ用の値を符号化ビットストリーム内に符号化し、
前記フラグを使用すべきでない場合に、前記フラグ用の前記値を前記符号化ビットストリーム内に符号化せず、
前記符号化ビットストリームをデコーダに送信するように前記１つ以上のコンピュータプロセッサを制御し、
前記フラグ用の前記値が前記符号化ビットストリームに存在しないときに、前記デコーダは前記フラグの前記値がデフォルト値であると推測する、
ことを特徴とするエンコーダ。
【請求項２０】
前記デフォルト値は、前記スライスのための前記時間的動きベクタの使用をイネーブルすることを特徴とする請求項１９に記載のエンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についてのクロス・リファレンス）
本出願は、２０１２年４月３０日に出願され"Modification for Signaling Collocated Picture for HEVC"という名称の米国仮出願第６１／６４０，５３８号及び２０１２年４月１１日に出願され"Modification for Signaling Collocated Picture for HEVC"という名称の米国仮出願第６１／６２３，０３６号の利益を主張する。これらの内容の全体は参照によって、本明細書に組み込まれる。
【背景技術】
【０００２】
ビデオ圧縮システムは、大部分の圧縮演算にブロック処理を使用する。ブロックとは、隣接ピクセルのグループであって、圧縮演算に関する１つのコーディングユニット（coding unit）とみなしてよい。理論的には、より大きなコーディングユニットは、直近の隣接ピクセル間の相関を利用することが好ましい。さまざまなビデオ圧縮標準（例えばMotion Picture Expert Group(MPEG)-l、MPEG-2及びMPEG-4)は、４×４、８×８及び１６×１６のブロック・サイズ（マクロブロック（MB）と呼ばれる）を使用する。
【０００３】
高効率ビデオ符号化（ＨＥＶＣ:High Efficiency Video Coding）もまた、ブロック・ベースのハイブリッド時空予測符号化方式である。ＨＥＶＣは、図１に示すように入力画像を符号化ツリーユニット（ＣＴＵ:coding tree unit）と呼ばれる正方形のブロックに分割する。従来のコーディング規約とは異なり、ＣＴＵは、１２８×１２８ピクセルであってよい。各ＣＴＵは、コーディングユニット（ＣＵ:coding unit）と呼ばれているより少ない正方形のブロックに分割してよい。図２には、ＣＵのＣＴＵ分割の一例を示す。まずＣＴＵ１００は、４つのＣＵ１０２に分割される。さらに、各ＣＵ１０２を、より小さな４つのＣＵ１０２に分割してよく、これらは元のＣＵ１０２の４分の１のサイズである。この分割処理は、ある基準（例えばＣＵを分割できる回数に対する限度）に基づいて繰り返してよい。図示するようにＣＵ１０２―１、１０２―３及び１０２―４は、ＣＴＵ１００の４分の１のサイズである。さらに、ＣＵ１０２―２が、４つのＣＵ１０２―５、１０２―６、１０２―７及び１０２―８に分割されている。
【０００４】
各ＣＵ１０２は１つ以上のブロックを含むことができる。これらは、予測ユニット（ＰＵ:prediction unit）と呼ばれることがある。図３には、ＰＵのＣＵ分割の一例を示す。ＰＵは、空間予測又は時間的予測を実行するために使用されてよい。ＣＵは、空間的に又は時間的に予測符号化されてよい。ＣＵがイントラ・モードで符号化される場合、ＣＵの各ＰＵはそれ自身の空間予測方向を持つことができる。ＣＵがインター・モードで符号化される場合、ＣＵの各ＰＵは、それ自身の動きベクトルと、関連する参照画像を持つことができる。
【０００５】
ＨＥＶＣでは、動きベクトル（ＭＶ）は時空間予測処理で予測符号化される。１つのカレント動きベクトル（current motion vector）及び関連する参照インデックスを有するカレントＰＵ（current prediction unit）に対して、カレントＰＵに空間的に隣接する又は時間的にコロケートされた（temporally collocated）ＰＵの動きベクトルから動きベクトル予測子（ＭＶＰ: Motion Vector Predictor）が生成される。そして、カレント動きベクトルとＭＶＰとの差分が決定され符号化される。カレント動きベクトルの情報の代わり差分だけを送信するのでオーバヘッドが減少する。また、マージモードでは、空間的に隣接する又は時間的にコロケートされたＰＵのグループに単一の動きベクトルを適用することができる。
【０００６】
カレント画像（current picture）にカレントＰＵが与えられると、関連するコロケーテド参照画像（collocated reference picture）内に関連するコロケーテドＰＵ（collocated prediction unit）が存在する。コロケーテドＰＵは、ＭＶＰの候補の１つとして使用されるか、又はマージ／スキップモードにおいてカレントＰＵのために使用される。エンコーダは、通常、時間的動きベクトルが復号処理で用いられるべきか否かを示すために、フラグのための情報を符号化する。フラグのための情報の符号化は、符号化ビットストリームのオーバヘッドを発生する。
【図面の簡単な説明】
【０００７】
【図１】符号化ツリーユニット（ＣＴＵ）と呼ばれる正方形のブロックに分割される入力画像を示す。
【図２】ＣＵのＣＴＵ分割の一例を示す。
【図３】ＰＵのＣＵ分割の一例を示す。
【図４】実施形態によるビデオコンテンツの符号化及び復号のためのシステムの一例を示す。
【図５Ａ】フラグenable_temporal_mvp_flagが存在しない場合の実施形態による符号化処理の一例を示す。
【図５Ｂ】フラグenable_temporal_mvp_flagを使用する実施形態による符号化処理のための第２例を示す。
【図６Ａ】実施形態によるビデオの符号化方法の簡略フローチャートを示す。
【図６Ｂ】実施形態によるビデオの復号方法の簡略フローチャートを示す。
【図７Ａ】フラグcollocated_from_l0_flag及びシンタックスcollocated_ref_idxを使用するか否かを評価するための実施形態によるシンタックスの一例を示す。
【図７Ｂ】実施形態によるエンコーダ及びデコーダの一例を示す。
【図７Ｃ】実施形態によるエンコーダ及びデコーダの第２例を示す。
【図８】実施形態によるカレントブロックを符号化又は復号する方法の簡略フローチャートを示す。
【図９】実施形態による符号化処理のより詳細なフローチャートを示す。
【図１０】実施形態によるカレントブロックの復号方法の簡略フローチャートを示す。
【図１１Ａ】実施形態によるエンコーダの一例を示す。
【図１１Ｂ】実施形態によるデコーダの一例を示す。
【発明を実施するための形態】
【０００８】
本願明細書において、ビデオ圧縮システムの技術が記載される。以下の記述では、本発明を説明するために、多数の実施例及び具体的な詳細が特定の実施形態の完全な理解を提供するために記載される。請求項より定められる特定の実施形態は、これらの例の単独の特徴の一部若しくは全て、又は後述する他の特徴と組み合わせたものを含んでもよく、本明細書に記載される特徴及び概念の変形形態及び均等物をさらに含んでもよい。
【０００９】
ある実施形態において、方法は、スライスのために時間的動きベクトルを使用するか否かを制御するフラグが、符号化ビットストリーム内に存在するか否かを判断する。フラグが存在する場合、方法はフラグ用の値を決定する。フラグが存在しない場合、方法はフラグ用の値がデフォルト値であると推測する。方法は、フラグの値に基づいてスライスの復号の際のコロケーテド参照画像を符号化ビットストリームの中から決定するべきか否かを評価する。
【００１０】
ある実施形態において、デコーダは、１つ以上のコンピュータプロセッサと、非一時的なコンピュータ可読記憶媒体を含む。コンピュータ可読記憶媒体に含まれる命令を実行すると、この命令は、スライスのために時間的動きベクトルを使用するか否かを制御するフラグが符号化ビットストリーム内に存在するかどうか判断し、フラグが存在する場合にフラグ用の値を決定し、フラグが存在しない場合にフラグ用の値がデフォルト値であると推測し、フラグの値に基づいて、スライスの復号の際のコロケーテド参照画像を符号化ビットストリームの中から決定するべきか否かを評価するように、１つ以上のコンピュータプロセッサを制御する。
【００１１】
ある実施形態において、方法は、スライスの符号化に時間的動きベクトルを使用すべきか否かをコンピュータ装置によって判断することと、時間的動きベクトルを制御するフラグをスライスの符号化に使用すべきか否かをコンピュータ装置によって判断することと、フラグを使用すべきである場合に、スライスのために、フラグ用の値を符号化ビットストリーム内にコンピュータ装置によって符号化することと、フラグを使用すべきでない場合に、フラグ用の値を符号化ビットストリーム内にコンピュータ装置によって符号化しないことと、コンピュータ装置によって符号化ビットストリームをデコーダに送ることを含み、フラグ用の値が符号化ビットストリームに存在しないときに、デコーダはフラグの値がデフォルト値であると推測する。
【００１２】
ある実施形態において、エンコーダは、１つ以上のコンピュータプロセッサと、非一時的コンピュータ可読記憶媒体を含む。コンピュータ可読記憶媒体に含まれる命令を実行すると、この命令は、スライスの符号化に時間的動きベクトルを使用すべきか否かを判断し、時間的動きベクトルを制御するフラグをスライスの符号化に使用すべきか否かを判断し、フラグを使用すべきである場合、スライスのために、フラグ用の値を符号化ビットストリーム内に符号化し、フラグを使用すべきでない場合、フラグ用の値を符号化ビットストリーム内に符号化せず、符号化ビットストリームをデコーダに送るように、１つ以上のコンピュータプロセッサを制御する。フラグ用の値が符号化ビットストリームに存在しないときに、デコーダはフラグの値がデフォルト値であると推測する。
【００１３】
（概要）
図４は、実施形態によるビデオコンテンツの符号化及び復号のためのシステム４００の一例を示す。エンコーダ４０２及びデコーダ４０３は、ＨＥＶＣを使用するビットストリームを符号化及び復号してよい。ただし、他のビデオ圧縮標準を使用してもよい。
【００１４】
エンコーダ４０２は、コロケーテド参照画像マネージャ４０４―１を含む、デコーダ４０３は、コロケーテド参照画像マネージャ４０４―２を含む。コロケーテド参照画像マネージャ４０４は、カレント画像のためのコロケーテド参照画像として使用する参照画像を決定する。コロケーテド参照画像は、時間的予測処理で使用可能な動きベクトル（ＭＶ: Motion Vector）情報を含む。例えば、コロケーテド参照画像の分割のための時間的動きベクトルは、ＡＭＶＰ（Advanced Motion Vector Prediction）における時間的動きベクトル予測子（ＭＶＰ: Motion Vector Predictor）として使用でき、又はマージ処理における時間的マージ／スキップ候補動きベクトルとして使用できる。コロケーテドブロック（collocated block）の動きベクトルが時間的ＭＶＰとして使用される場合、コロケーテドブロックの動きベクトルとカレントブロックのカレント動きベクトルとの差分は符号化されて、エンコーダ４０２からデコーダ４０３へ送信される。コロケーテドブロックの動きベクトルがマージ／スキップ処理で使用される場合、カレントブロックとコロケーテドブロックはマージされて、コロケーテドブロックと同じ動きベクトルを使用する。
【００１５】
時間的ＭＶＰ、又は時間的マージ／スキップ候補ＭＶは、選択されたコロケーテドブロックのＭＶとして定められ、参照画像内に存在し、カレント画像のカレントブロックと同じ幾何学的な位置を有する。ある例では、カレント画像のＰＵが与えられると、関連するコロケーテドＰＵは、時間的に先行するＰＵ内又は時間的に次に続くＰＵ内に存在してよい。コロケーテドＰＵは、カレントＰＵに対するＭＶＰ又はマージ／スキップモードを可能にする候補として使用できる。ＰＵと同様に、コロケーテドブロックが、変換ユニット（ＴＵ: Transform unit）、ＣＵ又は画像自体のために提供されてよい。以下の説明では、画像（picture）について言及するが、列挙された画像又はスライスのサブコンポーネントのいずれかについても同様にあてはまる。加えてブロックについて言及するが、これはＰＵでもよく、ＴＵ、ＣＵ、画像又はスライスでもよい。
【００１６】
フラグcollocated_from_lO_flagは、どのリスト（例えばlistO及びlist1）がコロケーテド参照画像を含むかについて特定するために用いる。例えば、フラグcollocated_from_lO_flagが１である場合にコロケーテド参照画像はlistOから得られる。さもなければ、フラグcollocated_from_lO_flagが０に設定される場合のように、コロケーテド参照画像はリスト１から得られる。フラグcollocated_from_lO_flagが符号化ビットストリームに存在しない場合には、デコーダ４０３は、フラグcollocated_from_lO_flagが１に等しいと推測するか、フラグcollocated_from_lO_flagを１に設定してよい。
【００１７】
シンタックス（syntax）collocated_ref_idxは、listO内若しくはlist1内のいずれかの（又は組み合わせたリスト内）のコロケーテド参照画像のためのインデックスを特定する。例えば、シンタックスcollocated_ref_idxは、listO内又はlist1内の位置を示してよい。フラグcollocated_from_lO_flagの値に応じて、フラグcollocated_from_lO_flagが１に等しい場合、シンタックスcollocated_ref_idxはlistOを参照してよい。さもなければ、シンタックスcollocated_ref_idxは、list1を参照する。ある実施形態では、特定の条件が満たされる場合、エンコーダ４０２は符号化ビットストリームにおいて、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのための情報をデコーダ４０３に明確に送信する。しかしながら、他の条件が満たされる場合、エンコーダ４０２は符号化ビットストリームにおいて、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのための情報をデコーダ４０３に明確に送信しなくてよく、その結果、ビットが節約されオーバヘッドが減少する。これらの条件については、以下においてさらに詳細に記載されている。
【００１８】
enable_temporal_mvp_flagと呼ばれるフラグは、時間的動きベクトルがカレントブロック（又はカレントスライス若しくは画像）の符号化（又は復号）に使用するか否かを制御するために使用される。例えば、フラグenable_temporal_mvp_flagがイネーブルされた（例えば１に等しい）場合、時間的動きベクトル予測子は、カレントブロック（又はスライス若しくは画像のブロック）の符号化（又は復号）に使用されてよい。時間的ＭＶＰが使われる場合、コロケーテドブロックからの動きベクトルが動きベクトル候補のグループに含まれてよく、このグループには、空間的に配置されたブロックからの動きベクトルも含まれてよい。動きベクトルは、カレントブロックの符号化又は復号に使用するために候補グループから選択される。他の場合ではマージ／スキップモードにおいて、時間的動きベクトルを、ブロックのグループのための動きベクトルとして使用してもよい。さもなければ、フラグenable_temporal_mvp_flagがイネーブルでない（例えば０に等しい）場合、時間的動きベクトルは、カレントブロック（又はブロック／画像のスライス）の符号化（又は復号）に用いられない。
【００１９】
フラグenable_temporal_mvp_flagは、スライス、画像、一連の画像又は単一ブロックに対して設定できる。例えば、フラグenable_temporal_mvp_flagがスライスに対して設定されると、フラグはスライスの範囲内で符号化される全てのブロックに適用される。
【００２０】
以下、フラグ用の値が符号化ビットストリームに存在しないときにフラグがデフォルト値であると推定される処理について説明する。そして、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのシンタックス要素を使用するべきか否か評価する処理について説明する。
【００２１】
（時間的予測のための時間的動きベクトル予測子（ＭＶＰ）フラグのシグナリング）
特定の実施形態では、フラグenable_temporal_mvp_flag用の値を符号化ビットストリーム内に符号化しなくてもよい。フラグenable_temporal_mvp_flagが符号化ビットストリームに存在しないとデコーダ４０３が判断する場合、デコーダ４０３は、フラグenable_temporal_mvp_flag用の値がデフォルト値に等しいと推測する。例えば、デコーダ４０３は、フラグenable_temporal_mvp_flagがイネーブルされているか、１に等しいと判断してよい。enable_temporal_mvp_flagがディスエーブルされているか、０と等しいといった他の値を推定してもよい。
【００２２】
図５Ａは、フラグenable_temporal_mvp_flagが存在しない場合の実施形態による符号化処理の一例を示す。エンコーダ４０２は、デコーダ４０３に送信される符号化ビットストリームにビデオを符号化する。この例では、符号化ビットストリームはフラグenable_temporal_mvp_flagを含まない。
【００２３】
デコーダ４０３が符号化ビットストリームを受信すると、デコーダ４０３のコロケーテド参照画像マネージャ４０４―２は、フラグenable_temporal_mvp_flagが符号化ビットストリームに存在しないと判断する。例えば、フラグenable_temporal_mvp_flagが復号される１つ以上のブロック（例えば、カレントブロック、複数ブロックからなるスライス、画像又は一連の画像）に関連する場合、コロケーテド参照画像マネージャ４０４―２は、ヘッダ（例えば、スライス・ヘッダ、画像パラメータ・セット（ＰＰＳ: Picture Parameter Set）ヘッダ又は他のヘッダ）からフラグenable_temporal_mvp_flagを探してよい。適用可能なヘッダにフラグenable_temporal_mvp_flagが存在しない場合、コロケーテド参照画像マネージャ４０４―２は、フラグenable_temporal_mvp_flag用の値がデフォルト値であると推測する。例えば、コロケーテド参照画像マネージャ４０４―２は、フラグenable_temporal_mvp_flag用の値が１に等しいと推測する。この場合、デコーダ４０３は、フラグenable_temporal_mvp_flag用の値を１に設定してよい。そして、時間的動きベクトルは、カレントブロック（又は、フラグenable_temporal_mvp_flagに関連するいずれかのブロック（例えば、複数ブロックからなるスライス））のためのマージ／スキップモードのためのＭＶＰ又はＭＶの決定に使用される。
【００２４】
図５Ｂは、フラグenable_temporal_mvp_flagを使用する実施形態による符号化処理のための第２例を示す。図示するように、エンコーダ４０２は、フラグenable_temporal_mvp_flagを含む符号化ビットストリームを送信する。例えば、エンコーダ４０２は、画像内の複数ブロックからなるスライスのためのスライス・ヘッダに含めてフラグenable_temporal_mvp_flagを送信する。しかしながら、フラグenable_temporal_mvp_flagを、他のレベル、例えば、一連の画像のための画像パラメータ・セット（ＰＰＳ）レベル又はブロック・レベルで送信してもよい。
【００２５】
デコーダ４０３のコロケーテド参照画像マネージャ４０４―２が符号化ビットストリームを受信して、フラグenable_temporal_mvp_flagが存在する（例えば、スライス・ヘッダに存在する）と判断するときに、コロケーテド参照画像マネージャ４０４―２は、フラグenable_temporal_mvp_flagの値を決定する。例えば、フラグの値は、時間的動きベクトルの使用をイネーブル又はディスエーブルすべきか（例えば、０又は１）を示してよい。コロケーテド参照画像マネージャ４０４―２は、フラグenable_temporal_mvp_flag用の値を設定して、この値を符号化ビットストリームの復号に使用する。例えば、この値に応じて、時間的動きベクトルをカレントブロックの復号に使用し、又は使用しなくてよい。この場合、符号化ビットストリームにおいてフラグenable_temporal_mvp_flagを０に設定してよい。そして、コロケーテド参照画像マネージャ４０４―２は値を０に設定してよい。
【００２６】
以下、符号化及び復号処理をさらに詳細に記載する。図６Ａは、実施形態によるビデオの符号化方法の簡略フローチャート６００を示す。６０２において、エンコーダ４０２は、カレントブロックを符号化する。例えば、カレントブロックを、画像内の複数ブロックからなるスライス内に符号化してよい。６０４において、エンコーダ４０２は、フラグenable_temporal_mvp_flag用の値を決定する。例えば、ビデオの特性に応じて、コロケーテド参照画像マネージャ４０４―１は、時間的動きベクトルを使用すべきか使用すべきでないかを判断してよい。画像間の時間的類似点が大きくない場合には、時間的動きベクトルが用いられないことがある。誤り耐性能力の増加のために、エンコーダがある画像についての時間的動きベクトルの使用を嫌うこともある。
【００２７】
６０６において、エンコーダ４０２は、フラグenable_temporal_mvp_flag用の値を符号化するか否かを判断する。例えば、エンコーダ４０２は、フラグenable_temporal_mvp_flag用の値がデフォルト値に対応すると判断した場合には、エンコーダ４０２はフラグ用の値を符号化しない。
【００２８】
６０８において、エンコーダ４０２がフラグenable_temporal_mvp_flag用の値を符号化すべきでないと判断する場合、エンコーダ４０２は、フラグenable_temporal_mvp_flag用の値を符号化ビットストリーム内に符号化しない。例えば、フラグenable_temporal_mvp_flag用の値は、スライス・ヘッダに（又は、他のいかなるレベルにも）含まれない。６１０において、値を符号化すべきとエンコーダ４０２が判断する場合、エンコーダ４０２は、フラグenable_temporal_mvp_flag用の値を符号化ビットストリーム内に符号化する。上記のように、フラグenable_temporal_mvp_flag用の値は、スライス・ヘッダに（又は、他のいかなるレベルに）符号化してよい。６１２では、エンコーダ４０２は、デコーダ４０３に符号化ビットストリームを送信する。
【００２９】
図６Ｂは、実施形態によるビデオを復号方法の簡略フローチャート６５０を示す。６５２において、デコーダ４０３は、エンコーダ４０２から符号化ビットストリームを受信する。６５４において、デコーダ４０３は、フラグenable_temporal_mvp_flagが符号化ビットストリームに存在するか否かを判断する。例えば、デコーダ４０３は、フラグenable_temporal_mvp_flagの値をスライス・ヘッダから探してよい。６５６において、フラグenable_temporal_mvp_flagが存在しない場合、デコーダ４０３は、フラグenable_temporal_mvp_flag用の値がデフォルト値に等しいと推定する。例えば、デコーダ４０３は、フラグenable_temporal_mvp_flagが存在しない場合に、フラグenable_temporal_mvp_flag用の値を１に設定するようにプログラムされてよい。６５８において、フラグenable_temporal_mvp_flagが存在する場合、デコーダ４０３は、符号化ビットストリームからフラグの値を決定し、その値をフラグenable_temporal_mvp_flagに設定する。
【００３０】
６６０において、デコーダ４０３は、フラグenable_temporal_mvp_flagの値に基づいて、符号化ビットストリームを復号する。例えば、フラグの値が０である場合、カレントブロックの復号に時間的動きベクトルを使用しない。しかしフラグenable_temporal_mvp_flagの値が１である場合には、カレントブロックの復号に時間的動きベクトルを使用する。
【００３１】
したがって、フラグenable_temporal_mvp_flagの値がデフォルト値に等しいと推測することによって、符号化ビットストリームにおいてビットを節約することができる。例えば、エンコーダ４０２がフラグenable_temporal_mvp_flag用の値がデフォルト値に等しいと判断すると、エンコーダ４０２は、フラグenable_temporal_mvp_flag用のビットを符号化ビットストリームに含めて送信する必要はない。これは、フラグenable_temporal_mvp_flagが符号化ビットストリーム内に存在しない場合には、フラグenable_temporal_mvp_flag用の値がデフォルト値であると推測するようにデコーダ４０３が構成されるからである。この場合、デコーダ４０３は、エンコーダ４０２とのやり取りなしでフラグenable_temporal_mvp_flag用の値を暗示的に決定する。
【００３２】
特定の実施形態では、所望の符号化特性に基づいてデフォルト値を設定してよい。例えば、デフォルト値を１に設定すると、フラグenable_temporal_mvp_flagが符号化ビットストリーム内に存在しない場合に時間的動きベクトルが用いられる。この場合は、カレントブロックを復号するための計算の複雑性が増加することがある。しかし、カレントブロックの復号がより効率的になる。しかし、デフォルト値を０に設定すると、フラグenable_temporal_mvp_flagが符号化ビットストリーム内に存在しないときに、時間的ＭＶＰがデフォルトで使用されない。これは、カレントブロックを復号する際の複雑さを減少させることがある。また、ビデオ圧縮の効率が低下する恐れがある。
【００３３】
ある実施形態では、フラグenable_temporal_mvp_flagがデフォルト値であると推測する上記の処理を使用して、以下のシンタックスを評価してよい。例えば、デコーダ４０３が符号化ビットストリーム内のフラグenable_temporal_mvp_flagを決定する場合に、フラグenable_temporal_mvp_flagの値の設定に基づいて下記のシンタックスを評価してよい。
【００３４】
（時間的予測のためのコロケーテド参照画像のシグナリングの評価）
ある実施形態において、フラグenable_temporal_mvp_flagが０に等しい場合、コロケーテド参照画像に関連するシンタックス要素を無視してよい。これは、フラグenable_temporal_mvp_flagに関連するブロックのいずれか、例えば、enable_temporal_mvp_flagと関連するスライスのブロックや画像のブロックの符号化又は復号に、時間的動きベクトル予測子が使用される予定ではないからである。このように、ある実施形態においては、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのシンタックス要素は不要である。この場合には、エンコーダ４０２は、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのためのいかなる情報も、符号化ビットストリーム内に符号化しなくてよい。さらに、フラグenable_temporal_mvp_flagが０であることをコロケーテド参照画像マネージャ４０４―２が検出する場合には、デコーダ４０３は、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのための符号化ビットストリーム内のいかなる情報も復号しようとしない。従来は、フラグenable_temporal_mvp_flagが０であっても、デコーダ４０３は、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのための情報を復号していた。
【００３５】
特定の実施形態では、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを使用するべきか否かを判断する条件を評価するために、シンタックスを使用できる。図７Ａは、フラグcollocated_from_l0_flag及びシンタックスcollocated_ref_idxを使用するか否かを評価するための実施形態によるシンタックス７００の一例を示す。７０２において、シンタックスは、７０４に示すcollocated_from_lO_flagを使用するべきか否かを調べる。シンタックスは、予測タイプ（prediction type）、例えば、シンタックスslice_type）がＢタイプに等しいか否か、及びフラグenable_temporal_mvp_flagはイネーブルされているか否か、例えば「１」に等しいか否かを調べる。この場合、予測タイプは、スライス・タイプである。値「１」は、時間的動きベクトルを使用すべきであることを示してよい。ここでは値「１」を記載したが、他の値が使用してもよい。シンタックスslice_typeは、画像内の一連のブロック（例えばスライス）に割り当てられる予測タイプでもよい。ここではスライス・タイプを記載したが、シンタックスslice_typeは、ブロック、画像又は一連の画像を参照してもよい。
【００３６】
画像内の複数ブロックからなるスライスのためのシンタックスslice_typeは、Ｉタイプ、Ｐタイプ、又はＢタイプのスライス（例えばスライス・タイプ）の予測タイプであってよい。Ｉスライスは、イントラ予測のみを使用して時間的ＭＶＰを使用しない。Ｉスライスは、イントラ予測を使用するブロックを含むだけである。また、ＰスライスはＩタイプ・ブロック及びＰタイプ・ブロックの両方を含んでよい。Ｐスライス内のブロックは、１個の動きベクトルのみを使用する。Ｂスライスは、Ｂ、Ｐ及びＩタイプ・ブロックを含んでよい。Ｂタイプ・ブロックは、２個の動きベクトルを使用してよい。このように、７０２において、シンタックスはシンタックスslice_typeがＢタイプであるか否かを調べる。slice_typeがＢタイプである場合、スライス内のブロックがコロケーテド参照画像を決定するためにlistO及びlist1のうちの１つを使用することを意味する。この場合、エンコーダ４０２が、どちらのリストを使用するかフラグcollocated_from_lO_flagで示す必要がなることがある。また、７０２においてシンタックスは、フラグenable_temporal_mvp_flagがイネーブルされたか（例えば、１に設定されか）否かを調べる。これらの状況の両方とも真（true）のときに、エンコーダ４０２はフラグcollocated_from_lO_flag用の値を符号化ビットストリーム内に符号化してよい。例えば、エンコーダ４０２は、listO又はlist1のいずれのリストが使用されるか示すために、フラグcollocated_from_lO_flagにある値を設定してよい。デコーダ４０３は、カレントブロックを復号するときに、listO及びlist1の中でどのリストを使用するべきかを判断するために、符号化ビットストリーム内のフラグcollocated_from_lO_flagを復号してよい。
【００３７】
７０２におけるシンタックスでは、フラグcollocated_from_lO_flagは、フラグcollocated_from_lO_flagが必要な場合にのみ設定される。すなわち、slice_typeがＩタイプ又はＰタイプの場合、スライスのブロックが、コロケーテド参照画像（例えば、Ｉタイプの場合）を使用しないか、又はlistO（例えばＰタイプ）だけからコロケーテド参照画像を使用する。予測タイプがＰタイプでありフラグcollocated_from_lO_flagが符号化ビットストリームに含まれていない場合には、デコーダ４０３は、フラグcollocated_from_lO_flagの値が１であると仮定し、デフォルトでフラグcollocated_from_lO_flagの値を１に設定する。さらに、フラグenable_temporal_mvp_flagがイネーブルされていない場合（それは時間的ＭＶＰが使われないことを意味する）には、使用しない時間的ＭＶＰのためにデコーダ４０３がlistO又はlist1から参照画像を決定する必要はないので、listO及びlist1のうちいずれのリストを使用するべきか示すフラグは必要でない。
【００３８】
７０６において、シンタックスは、７０８で示すシンタックスcollocated_ref_idxを使用するべきかどうか調べる。７０６のシンタックスにおいて、コロケーテド参照画像マネージャ４０４は、カレントブロックに関連するシンタックスslice_typeがＩタイプでない（すなわち、シンタックスslice_typeは、Ｂタイプ又はＰタイプに等しい）か否かを判断する。また、コロケーテド参照画像マネージャ４０４は、フラグenable_temporal_mvp_flagがイネーブルされる（例えば、１に等しい）か否かを判断する。７０６における上記シンタックスにて、コロケーテド参照画像マネージャ４０４は、符号化又は復号処理においてlistOかlist1のうちの１つを使用するか否かを判断する。すなわち、slice_typeがＰタイプ又はＢタイプであり、時間的ＭＶＰを使用する予定の場合、listO又はlist1のコロケーテド参照画像が使われる。そして、コロケーテド参照画像マネージャ４０４は、listOかlist1の参照画像を特定するためにシンタックスcollocated_ref_idxを使用すべきか否かを判断する。例えば、listO又はlist1のいずれか（すなわち、フラグcollocated_from_lO_flagに基づいて使用されるいずれか一方）において、１つの参照画像だけがlistO又はlist1のいずれかで見つかる場合には、シンタックスcollocated_ref_idxを使用する必要はない。むしろ、listO又はlistのいずれかにおいて、エンコーダ４０２又はデコーダ４０３には、listO又はlist1のいずれかの唯一の利用可能な参照画像を使用することが分かる。しかしながら、１つ以上の参照画像がlistO又はlist1のいずれかで見つかる場合には、特定の実施形態では、listO又はlist1のどちらかの中の使用する参照画像を特定するためにシンタックスcollocated_ref_idxを使用してよい。
【００３９】
したがって、ある実施形態において、コロケーテド参照画像マネージャ４０４は、フラグcollocated_from_listO_flagが１（例えば、listOを使用すべきである）に等しい否か、及びシンタックスnum_ref_idx_lO_active_minusl＞０が真であるか否かをチェックする。これは、listOが使用され、カレントブロックに適用されるlistOの参照画像の数が１より大きい（又は、（listOの参照画像の数−１）＞０である）ことを意味する。これが真であると評価される場合、コロケーテド参照画像マネージャ４０４はシンタックスcollocated_ref_idxを使用する。例えば、エンコーダ４０２は、シンタックスcollocated_ref_idxをlistO内のある位置に設定する。そして、デコーダ４０３は、シンタックスcollocated_ref_idxを復号してlistO内の位置を決定する。上記のように、位置は、コロケーテド参照画像として使用される参照画像を特定する。
【００４０】
また、コロケーテド参照画像マネージャ４０４は、フラグcollocated_from_lO_flagが１に等しくないか否か（例えば、０に等しくlist1が使用すべきことを示しているか否か）、及びシンタックスnum_ref_idx_l1_active_minuslが０より大きいか否かを判断する。この場合、コロケーテド参照画像マネージャ４０４は、list1を使用すべきか否か及びカレントブロックに適用されるlist1の参照画像の数が１より大きいか（又は、（list1の参照画像の数−１）＞０である）否かを評価する。上記ステートメントが真であると評価される場合には、シンタックスはlist1内の位置を示す箇所でシンタックスcollocated_ref_idxが使用される。例えば、エンコーダ４０２は、シンタックスcollocated_ref_idxをlist1内のある位置に設定する。デコーダ４０３は、シンタックスcollocated_ref_idxを復号してlist1内の位置を決定する。上記のように、位置は、コロケーテド参照画像として使用される参照画像を特定する。
【００４１】
したがって、７０６におけるシンタックスが示すように、スライス・タイプがＩタイプに等しくない場合、及び、listOが使用されlistOの参照画像の数が１より大きい場合はいつでも、又はlist1が使用されlist1の参照画像の数が１より大きい場合に、シンタックスcollocated_ref_idxが使用される。
【００４２】
図６は、実施形態によるエンコーダ４０２及びデコーダ４０３の一例を示す。フラグenable_temporal_mvp_flagがイネーブルされ（１に等しく）、他の条件が上記の通りに当てはまる場合に、符号化ビットストリームは、フラグenable_temporal_mvp_flag、フラグcollocated_from_lO_flag、及びシンタックスcollocated_ref_idxを含む。この場合、エンコーダ４０２は、フラグenable_temporal_mvp_flag、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを含む符号化ビットストリームをデコーダ４０３に送信する。ある実施形態において、エンコーダ４０２は、符号化ビットストリームのスライス・ヘッダにフラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを含めてデコーダ４０３に送信する。他の実施態様において、エンコーダ４０２は、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを、例えば、一連の画像のための画像パラメータ・セットに含めて送信する。
なお、この説明は簡略化されており、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを含めるべきか否かを定める上述及び後述の決定において、他の条件も適用できる点に留意されたい。
【００４３】
図７は、実施形態によるエンコーダ４０２及びデコーダ４０３の第２例を示す。図示のとおり、フラグenable_temporal_mvp_flagは、イネーブルされておらず（０に等しく）。カレントブロックのための符号化処理に時間的ＭＶＰが使用されないことを意味する。この場合、エンコーダ４０２は、フラグenable_temporal_mvp_flagを含み、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを含まない符号化ビットストリームを送信する。デコーダ４０３は、符号化ビットストリームを受信して、フラグenable_temporal_mvp_flagがイネーブルされていないと判断し、このため、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxが符号化ビットストリームに含まれず、カレントブロックの復号に使用しないことを知る。
【００４４】
以下、カレントブロックを符号化又は復号する全体の方法を説明し、それから、カレントブロックを符号化及び復号する個別の方法を記載する。図８は、実施形態によるカレントブロックを符号化又は復号する方法の簡略フローチャート８００を示す。あるカレントブロックについて記載するが、複数のブロックについて処理を実行してよい。例えば、フラグenable_temporal_mvp_flagは、スライス内の複数のブロックに関連してもよい。８０２において、コロケーテド参照画像マネージャ４０４は、符号化又は復号するカレントブロックを決定する。例えば、カレント画像内のブロックを符号化又は復号してよい。
【００４５】
８０４において、コロケーテド参照画像マネージャ４０４は、カレントブロックの符号化又は復号に時間的動きベクトルを使用するか否かを制御するフラグenable_temporal_mvp_flag用の値を決定する。例えば、コロケーテド参照画像マネージャ４０４は、カレントブロックに関連するフラグenable_temporal_mvp_flag用の値を決定する。ある実施形態ではカレントブロックはスライスと関連し、スライスがフラグenable_temporal_mvp_flagの値と関連してよい。
【００４６】
８０６において、コロケーテド参照画像マネージャ４０４は、enable_temporal_mvp_flagが第１値又は第２値のどちらであるかを判断する。第１値は、時間的動きベクトルがカレントブロックのために使用されることを示す「１」でよく、第２値は、時間的動きベクトルがカレントブロックのために使用されないことを意味する「０」でよい。
【００４７】
８０８において、コロケーテド参照画像マネージャ４０４は、フラグcollocated_from_lO_flagを使用すべきか否かを判断する。例えば、フラグenable_temporal_mvp_flagが０に等しい場合、コロケーテド参照画像マネージャ４０４はフラグcollocated_from_lO_flagを使用しない。また、符号化又は復号するカレントブロックと関連するシンタックスslice_typeがＰタイプ又はＩタイプである場合、フラグcollocated_from_lO_flagを使用しなくてよい。しかしながら、符号化又は復号するカレントブロックと関連するシンタックスslice_typeがＢタイプであり、フラグenable_temporal_mvp_flagが１である場合には、コロケーテド参照画像マネージャ４０４は、フラグcollocated_from_lO_flagを使用する。
【００４８】
８１０において、コロケーテド参照画像マネージャ４０４は、シンタックスcollocated_ref_idxを使用すべきか否かを判断する。ある実施形態では、シンタックスslice_typeがＩタイプでなく、使用されるlistO又はlist1のいずれかがリスト内に１つ以上の参照画像を有する場合、コロケーテド参照画像マネージャ４０４はシンタックスcollocated_ref_idxを使用する。
【００４９】
図９は、実施形態による符号化処理のより詳細なフローチャート９００を示す。９０２において、エンコーダ４０２は、スライス・タイプ及びフラグenable_temporal_mvp_flagの値を決定する。９０４において、エンコーダ４０２は、条件「if(slice_type==B && enable_temporal_mvp_flag)」を評価する。この条件が真である場合、９０６においてエンコーダ４０２は、フラグcollocated_from_lO_flagを、カレントブロックの符号化にlistO又はlist1を使用するべきか否かに応じた値に設定する。９０４で評価される条件が真でない場合、９０８においてエンコーダ４０２は、フラグcollocated_from_lO_flagをデフォルト値（例えば１）に設定する。しかし、エンコーダ４０２は、まだフラグの値を符号化ビットストリーム内に符号化しなくてよい。
【００５０】
９１０において、エンコーダ４０２は、フラグcollocated_from_lO_flagの値及びlistO又はlist1の画像数を決定する。９１２において、エンコーダ４０２は、条件「(slice_type!=I && enable_temporal_mvp_flag && (collocated_from_lO_flag && num_ref_idx_lO_active_minusl>0) || (!collocated_from_lO_flag && num_ref_idx_l1_active_minusl>0)」を評価する。上記条件が真であると評価される場合、９１４においてエンコーダ４０２は、シンタックスcollocated_ref_idxをある値に設定する。例えば、シンタックスcollocated_ref_idxは、使用されるlistO又はlist1のいずれかのリスト内の位置に設定される。上記の条件が真であると評価されない場合、９１６においてエンコーダ４０２は、シンタックスcollocated_ref_idxをデフォルト値（例えば０）に設定する。しかし、エンコーダ４０２は、まだシンタックスcollocated_ref_idxの値を符号化ビットストリーム内に符号化しなくてよい。
【００５１】
９１８で、エンコーダ４０２は、上記評価に基づいてカレントブロックを符号化する。例えば、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxは、上記評価に応じて、符号化されたブロックと共にビットストリーム内に符号化され、又は符号化されない。
【００５２】
図１０は、実施形態によるカレントブロックの復号方法の簡略フローチャート１０００を示す。１００２において、デコーダ４０３は、エンコーダ４０２から受信した符号化ビットストリームにおいて、復号するカレントブロックのためのスライス・タイプ及びフラグenable_temporal_mvp_flag用の値を決める。
【００５３】
１００４において、デコーダ４０３は、第１条件「if(slice_type==B && enable_temporal_mvp_flag)」を評価する。第１条件が真であると評価される場合、１００６においてデコーダ４０３は、符号化ビットストリーム内のフラグcollocated_from_lO_flagを復号する。上記条件が真であると評価されない場合、１００８においてデコーダ４０３は、フラグcollocated_from_lO_flagが符号化ビットストリーム内に存在しないと判断する。この場合、デコーダ４０３は、フラグcollocated_from_lO_flagをデフォルト値（例えば１）に設定するか又はフラグcollocated_from_lO_flagを使用しなくてよい。
【００５４】
１０１０において、デコーダ４０３は、フラグcollocated_from_lO_flagの値及びlistO又はlist1の画像の数を決定する。１０１２で、デコーダ４０３は、第２条件「(slice_type!=I && enable_temporal_mvp_flag && (collocated_from_lO_flag && num_ref_idx_lO_active_minusl>0) || (!collocated_from_lO_flag && num_ref_idx_l1_active_minusl>0)」を評価する。第２条件が真である場合、１０１４においてデコーダ４０３は、符号化ビットストリーム内のシンタックスcollocated_ref_idxを復号する。第２条件が真でない場合、１０１６においてデコーダ４０３は、シンタックスcollocated_ref_idxが符号化ビットストリーム内に符号化されなかったと判断する。この場合、デコーダ４０３は、インデックスが第１位置である（例えば、位置は０である）と仮定してよい。
【００５５】
１０１８において、デコーダ４０３は、カレントブロックを復号する。このとき、該当する場合はフラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを使用する。
【００５６】
このように、特定の条件に該当する場合、特定の実施形態は、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxのための情報を送信しないことによって、オーバヘッドを節約する。例えば、時間的ＭＶＰが使われる予定でない場合、フラグcollocated_from_lO_flag及びシンタックスcollocated_ref_idxを使用する必要はない。
【００５７】
（エンコーダ及びデコーダの例）
各実施形態において、記載されているエンコーダ４０２は、前処理工程のトランスコーダ又は符号化装置に組み込まれ又は結合してよい。デコーダ４０３は、下流装置、例えば、モバイル機器、セットトップボックス又はトランスコーダに組み込まれ又は結合してよい。図１１Ａは、実施形態によるエンコーダ４０２の一例を示す。エンコーダ４０２の全体的動作を以下に示す。しかし、当業者は本開示及び教示に基づいて、記載されている符号化処理の変形を認識すると理解される。
【００５８】
カレントＰＵ（ｘ）に対して、空間予測又は時間的予測のいずれかによって予測ＰＵ（ｘ’）が得られる。その後、予測ＰＵをカレントＰＵから減算し、残余ＰＵ（ｅ）を得る。空間予測は、イントラ・モード画像に関連する。イントラ・モード符号化は、現在の入力画像（input image）からのデータを使用して、他の画像（other image）を参照せずにＩピクチャを符号化できる。空間予測ブロック１１０４は、ＰＵについて異なる空間予測方向（例えば、水平、垂直、４５度斜め方向、１３５度斜め方向、ＤＣ（平坦な平均化（flat averaging））、及び平面方向又は任意の他の方向）を含んでよい。ＰＵのための空間予測方向は、シンタックス要素として符号化できる。ある実施形態では、ＰＵのための輝度情報（Ｌｕｍａ）及び色情報（彩度）を別に予測してよい。ある実施形態では、全てのブロック・サイズのためのＬｕｍａイントラ予測モードの数は３５である。Ｃｈｒｏｍａイントラ予測モードのために追加のモードを使用しても良い。ある実施形態では、Ｃｈｒｏｍａ予測モードは「IntraFromLuma」と呼ばれる。
【００５９】
時間的予測ブロック１１０６は、時間的予測を実行する。インター・モード符号化は、現在の入力画像（input image）及び１つ以上の参照画像（reference image）を使用して、「Ｐ」ピクチャ及び／又は「Ｂ」ピクチャを符号化できる。ある条件及び／又はある実施形態では、インター・モード符号化は、イントラ・モード符号化よりも高圧縮を得ることができる。インター・モードでは、ＰＵ２０４は時間的予測符号化されてよく、そして、ＣＵ２０２の各ＰＵ２０４は１つ以上の動きベクトルと、関連する１つ以上の参照画像（reference image）を有してよい。時間的予測は動き評価演算（motion estimation operation）により実行され、動き評価演算では、関連する参照画像（reference image）上のＰＵのベストマッチ予測（best match prediction）が探索される。ベストマッチ予測は、動きベクトル及び関連する参照画像（reference image）により表される。Ｐピクチャは、現在の入力画像（input image）及び１つ以上の参照画像（reference image）からのデータを使用し、１本までの動きベクトルを有することができる。Ｂピクチャは、現在の入力画像（input image）及び１つ以上の参照画像（reference image）からのデータを使用することができて、２本までの動きベクトルを有することができる。動きベクトル及び参照画像（reference picture）は、符号化ビットストリーム内に符号化されてよい。いくつかの実施形態では、動きベクトルは、シンタックス要素「MV」であってよく、参照画像（reference picture）はシンタックス要素「refldx」であってよい。いくつかの実施形態では、インター・モードは空間予測符号化及び時間的予測符号化の両方を行ってもよい。ベストマッチ予測は、動きベクトル（MV）及び関連する参照画像インデックス（refldx）により表される。動きベクトル及び関連する参照画像インデックスは、符号化ビットストリームに含まれる。
【００６０】
変換ブロック１１０７は、残余ＰＵ（ｅ）の変換演算を実行する。１つのＣＵに対して異なるサイズの一組のブロック変換が実行され、いくつかのＰＵがより小さなＴＵに分割され、他のＰＵはＰＵと同じサイズのＴＵを有してもよい。ＣＵ及びＰＵからＴＵ２０への分割は、四分木表現により示されることができる。変換ブロック１１０７は、変換領域の残余ＰＵ（Ｅ）を出力する。
【００６１】
量子化器１１０８は、残余ＰＵ（Ｅ）の変換係数を量子化する。量子化器１１０８は、変換係数を、有限な数の取り得る値に変換する。いくつかの実施形態では、これは、量子化により失われるデータが回復不能なことがある損失を伴う演算（lossy operation）である。変換係数が量子化されたあと、エントロピー符号化ブロック１１１０は、量子化係数をエントロピー符号化し、送信される最終的な圧縮ビットを得る。コンテキスト適応型可変長符号化（ＣＡＶＬＣ: context-adaptive variable length coding）又はコンテキスト適応型２値算術符号化（ＣＡＢＡＣ: context-adaptive binary arithmetic coding）のような、異なるエントロピー符号化方法を使用してよい。
【００６２】
また、エンコーダ４０２内の復号処理において、逆量子化器１１１２は、量子化された残余ＰＵの変換係数を非量子化する。そして、逆量子化器１１１２は、非量子化された残余ＰＵの変換係数（Ｅ’）を出力する。逆変換ブロック１１１４は、非量子化された変換係数を受信する。逆変換ブロック１１１４は、逆変換して残余のＰＵ（ｅ’）を再現する。再現されたＰＵ（ｅ’）は、対応する予測（ｘ’）に空間的又は時間的に加えられて、新たに再現したＰＵ（ｘ’’）が形成される。特定の実施形態（例えば、使用するコロケーテド参照画像を決定する予測処理で使用されるコロケーテド参照画像マネージャ４０４）が、予測の決定に使用されてよい。ループフィルタ１１１６は、再現されたＰＵ（ｘ’’）上で非ブロック化（de-blocking）を実行し、ブロッキングアーティファクトを低減してよい。さらに、ループフィルタ１１１６は、復号画像のデブロッキング・フィルタ処理の完了後、サンプル適応オフセット処理（sample adaptive offset process）を実行してよい。サンプル適応オフセット処理は、再現されたピクセル及びオリジナル画素との間に画素値オフセットを補償する。また、ループフィルタ１１１６は、再現されたＰＵ上で、適応ループフィルタリングを実行してよい。そして、適応ループフィルタリングは、入出力画像の間の符号化歪曲（coding distortion）を最小化する。また、再現された画像が参照画像である場合、参照画像は、将来の時間的予測のための参照バッファ１１１８に格納される。イントラ・モード符号化画像（intra mode coded image）は、追加の再現画像（reconstructed image）を要せずに復号を始めることが可能な点になることができる。
【００６３】
図１１Ｂは、実施形態によるデコーダ４０３の一例を示す。デコーダ４０３の全体的な動作を以下に説明する。しかし、当業者は本開示及び教示に基づいて、記載されている復号処理の変形を認識すると理解される。
デコーダ４０３は、符号化されたビデオコンテンツのためのエンコーダ４０２から、入力ビットを受信する。
【００６４】
エントロピー復号ブロック１１３０は、入力ビットストリーム上でエントロピー復号を実行して、残余ＰＵの量子化された変換係数を生成する。逆量子化器１１３２は、量子化された残余ＰＵの変換係数を逆量子化する。逆量子化器１１３２は、非量子化された残余ＰＵの変換係数（Ｅ’）を出力する。逆変換ブロック１１３４は、非量子化された変換係数を受信し、逆変換して再現された残余ＰＵ（ｅ’）を得る。
【００６５】
再現されたＰＵ（ｅ’）は、対応する予測（ｘ’）に空間又は時間的に加えられて、新らたに再建されたＰＵ（ｘ’’）が形成される。ループフィルタ１１３６は、再建されたＰＵ（ｘ’’）で非ブロック化（de-blocking）を実行し、ブロッキングアーティファクトを低減してよい。ループフィルタ１１３６は、復号画像のデブロッキング・フィルタ処理の完了後、サンプル適応オフセット処理を実行してよい。サンプル適応オフセット処理は、再現されたピクセル及びオリジナル画素との間に画素値オフセットを補償する。また、ループフィルタ１１３６は、再現されたＰＵ上で、適応ループフィルタリングを実行してよい。適応ループフィルタリングは、入出力画像の間の符号化歪曲を最小化する。再現された画像が参照画像である場合、参照画像は、将来の時間的予測のための参照バッファ１１３８に格納される。
【００６６】
予測ＰＵ（ｘ’）は、空間予測又は時間的予測のいずれかから得られる。空間予測ブロック１１４０は、ＰＵについて、例えば、水平、垂直、４５度斜め方向、１３５度斜め方向、ＤＣ（平坦な平均化（flat averaging））、及び平面方向のような、復号された空間予測方向を受信する。空間予測方向は、予測ＰＵ（ｘ’）を決定するために使用される。
【００６７】
時間的予測ブロック１１０６は、動き評価演算によって時間的予測を実行する。特定の実施形態（例えば、使用するコロケーテド参照画像を決定する予測処理で使用されるコロケーテド参照画像マネージャ４０４）が、予測の決定に使用されてよい。復号動きベクトルは、予測ＰＵ（ｘ’）を決定するために使用される。動き評価演算において補間処理を使用してもよい。
【００６８】
特定の実施形態は、具体例は、命令実行システム、装置、システム又は機械によって、又は、これらと関連して使用される非一時的なコンピュータ可読記憶媒体として実施されてよい。コンピュータ可読記憶媒体は、コンピュータシステムを制御して特定の実施形態で記載された方法を実行させるための命令を含む。命令は、１つ以上のコンピュータプロセッサによって実行されることにより、実施形態に記載されている方法を実行するように動作可能であってよい。
【００６９】
本願明細書及び以下に続く請求項の全体にわたり使用されるように、用語「ある（a, an）」及び「その（the）」は、別段の明確な記載がない限り複数の対象を含む。また、本願明細書及び以下に続く請求項の全体にわたり使用されるように、「〜において（in）」の意味は、別段の明確な記載がない限り「〜において(in)」及び「〜上で（on）」含む。
【００７０】
上記の説明は、特定の実施形態の態様がどのようにして実施できるかの例と一緒に様々な実施形態を例示する。上記の例および実施形態は、実施形態にすぎないと見なすべきでなく、以下に続く特許請求の範囲によって定義されるような特定の実施形態の柔軟性および利点を例示するために提示される。上記の開示および以下に続く特許請求の範囲に基づくと、他の配置、実施形態、実装形態および等価物は、特許請求の範囲によって定義されるような本開示の範囲から逸脱することなく用いられてもよい。
【図１】
2015516758.tif 000003
【図２】
2015516758.tif 000004
【図３】
2015516758.tif 000005
【図４】
2015516758.tif 000006
【図５Ａ】
2015516758.tif 000007
【図５Ｂ】
2015516758.tif 000008
【図６Ａ】
2015516758.tif 000009
【図６Ｂ】
2015516758.tif 000010
【図７Ａ】
2015516758.tif 000011
【図７Ｂ】
2015516758.tif 000012
【図７Ｃ】
2015516758.tif 000013
【図８】
2015516758.tif 000014
【図９】
2015516758.tif 000015
【図１０】
2015516758.tif 000016
【図１１Ａ】
2015516758.tif 000017
【図１１Ｂ】
2015516758.tif 000018
【国際調査報告】
2015516758.tif 000019
2015516758.tif 000020