(57)【特許請求の範囲】
【請求項１】
ビデオデータの現在ブロックについての予測データを符号化する方法であって、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルに関連する、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを含めることと、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む第１のピクチャおよび前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択することと、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを符号化することと、を備える、方法。
【請求項２】
ビデオデータの現在ブロックについての予測データを復号する方法であって、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルに関連する、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを含めることと、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む前第１のピクチャ、および前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択することと、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを復号することと、を備える、方法。
【請求項３】
前記現在ブロックについての前記動きベクトルが時間動きベクトルでないことに基づいて、前記方法は、前記第１の動きベクトルを識別するデータが前記動きベクトル予測子候補リストに追加されないように前記第１の動きベクトルから動きベクトル予測子を決定する能力を無効化することをさらに備える、請求項１または請求項２に記載の方法。
【請求項４】
前記現在ブロックについての前記動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値と同じであるとき、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定することをさらに備える、請求項１または請求項２に記載の方法。
【請求項５】
前記現在ブロックについての前記動きベクトルの参照ピクチャのＰＯＣ値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値とは異なるとき、前記動きベクトル予測子を決定する前に、前記第１のブロックと前記現在ブロックとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化することをさらに備える、請求項１または請求項２に記載の方法。
【請求項６】
前記時間距離は、ターゲットピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との間のＰＯＣの差を備える、請求項５に記載の方法。
【請求項７】
前記現在ブロックについての前記動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化することをさらに備える、請求項１または請求項２に記載の方法。
【請求項８】
前記第１のビューの前記第１のブロックと前記現在ブロックとの間の視差に従って調整され、前記現在ブロックの位置と同一位置とされる前記第１のピクチャ中の位置を識別することによって、前記第１のブロックの位置を特定することをさらに備える、請求項１または請求項２に記載の方法。
【請求項９】
１つ以上のプロセッサを備えるビデオデータの現在ブロックについての予測データを符号化するための装置であって、前記１つ以上のプロセッサは、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別し、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルと関連し、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを符号化し、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む第１のピクチャ、および前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択し、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを符号化する、
ように構成される、装置。
【請求項１０】
１つ以上のプロセッサを備えるビデオデータの現在ブロックについての予測データを復号するための装置であって、前記１つ以上のプロセッサは、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別し、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルと関連し、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを符号化し、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む第１のピクチャ、および前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択し、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを復号する、
ように構成される、装置。
【請求項１１】
前記１つ以上のプロセッサは、前記現在ブロックについての前記動きベクトルが時間動きベクトルでないことに基づいて、前記第１の動きベクトルを識別するデータが前記動きベクトル予測子候補リストに追加されないように前記第１の動きベクトルから動きベクトル予測子を決定する能力を無効化するようにさらに構成される、請求項９または請求項１０に記載の装置。
【請求項１２】
前記１つ以上のプロセッサは、前記現在ブロックについての前記動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値と同じであるとき、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定するようにさらに構成される、請求項９または請求項１０に記載の装置。
【請求項１３】
前記１つ以上のプロセッサは、前記現在ブロックについての前記動きベクトルの参照ピクチャのＰＯＣ値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値とは異なるとき、前記動きベクトル予測子を決定する前に、前記第１のブロックと前記現在ブロックとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化するようにさらに構成される、請求項９または請求項１０に記載の装置。
【請求項１４】
前記時間距離は、ターゲットピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との間のＰＯＣの差を備える、請求項１３に記載の装置。
【請求項１５】
前記１つ以上のプロセッサは、前記現在ブロックについての前記動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化するようにさらに構成される、請求項９または請求項１０に記載の装置。
【請求項１６】
前記１つ以上のプロセッサは、前記第１のビューの前記第１のブロックと前記現在ブロックとの間の視差に従って調整され、前記現在ブロックの位置と同一位置とされる前記第１のピクチャ中の位置を識別することによって、前記第１のブロックの位置を特定するようにさらに構成される、請求項９または請求項１０に記載の装置。
【請求項１７】
ビデオデータの現在ブロックについての予測データを符号化するための装置であって、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別するための手段と、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルに関連する、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを含めるための手段と、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む第１のピクチャ、および前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択するための手段と、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを符号化するための手段と、を備える、装置。
【請求項１８】
ビデオデータの現在ブロックについての予測データを復号するための装置であって、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別するための手段と、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルに関連する、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを含めるための手段と、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む第１のピクチャ、および前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択するための手段と、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを復号するための手段と、を備える、装置。
【請求項１９】
前記現在ブロックについての前記動きベクトルが時間動きベクトルでないことに基づいて、前記第１の動きベクトルを識別するデータが前記動きベクトル予測子候補リストに追加されないように前記第１の動きベクトルから動きベクトル予測子を決定する能力を無効化するための手段をさらに備える、請求項１７または請求項１８に記載の装置。
【請求項２０】
前記現在ブロックについての前記動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値と同じであるとき、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定するための手段をさらに備える、請求項１７または請求項１８に記載の装置。
【請求項２１】
前記現在ブロックについての前記動きベクトルの参照ピクチャのＰＯＣ値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値とは異なるとき、前記動きベクトル予測子を決定する前に、前記第１のブロックと前記現在ブロックとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化するための手段をさらに備える、請求項１７または請求項１８に記載の装置。
【請求項２２】
前記時間距離は、ターゲットピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との間のＰＯＣの差を備える、請求項１８または請求項２１に記載の装置。
【請求項２３】
前記現在ブロックについての前記動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化するための手段をさらに備える、請求項１７または請求項１８に記載の装置。
【請求項２４】
前記第１のビューの前記第１のブロックと前記現在ブロックとの間の視差に従って調整され、前記現在ブロックの位置と同一位置とされる前記第１のピクチャ中の位置を識別することによって、前記第１のブロックの位置を特定するための手段をさらに備える、請求項１７または請求項１８に記載の装置。
【請求項２５】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、１つ以上のプロセッサに、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルに関連する、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを含めることと、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む第１のピクチャ、および前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択することと、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを符号化することと、を行わせる、コンピュータ可読記憶媒体。
【請求項２６】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、１つ以上のプロセッサに、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの前記第１のブロックが前記現在ブロックとは異なるビューからのものであり、第１の時間動きベクトルに関連する、
ビデオデータの前記現在ブロックに関連する動きベクトルが時間動きベクトルであることに基づいて、前記第１の時間動きベクトルに基づいて前記現在ブロックの前記動きベクトルについての動きベクトル予測子を決定し、動きベクトル予測子候補リスト中に決定された前記動きベクトル予測子を識別するデータを含めることと、決定された前記動きベクトル予測子を識別する前記データは、ビデオデータの前記第１のブロックを含む第１のピクチャ、および前記第１のピクチャ中のデータの前記第１のブロックの前記第１の時間位置を識別するデータを含み、前記動きベクトル予測子候補リストは、ビデオデータの１つ以上の他のブロックを識別するデータをさらに備える、
前記動きベクトル予測子候補リストから動きベクトル予測子を選択することと、
前記動きベクトル予測子候補リストから選択された前記動きベクトル予測子を使用して前記現在ブロックについての予測データを復号することと、を行わせる、コンピュータ可読記憶媒体。
【請求項２７】
前記現在ブロックについての前記動きベクトルが時間動きベクトルでないことに基づいて、前記１つ以上のプロセッサに、前記第１の動きベクトルを識別するデータが前記動きベクトル予測子候補リストに追加されないように前記第１の動きベクトルから動きベクトル予測子を決定する能力を無効化させる命令をさらに備える、請求項２５または請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記現在ブロックについての前記動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値と同じであるとき、前記１つ以上のプロセッサに、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定させる命令をさらに備える、請求項２５または請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記現在ブロックについての前記動きベクトルの参照ピクチャのＰＯＣ値が前記第１の動きベクトルの参照ピクチャのＰＯＣ値とは異なるとき、前記１つ以上のプロセッサに、前記動きベクトル予測子を決定する前に、前記第１のブロックと前記現在ブロックとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化させる命令をさらに備える、請求項２５または請求項２６に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記時間距離は、ターゲットピクチャのＰＯＣ値と参照ピクチャのＰＯＣ値との間のＰＯＣの差を備える、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記現在ブロックについての前記動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記１つ以上のプロセッサに、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化させる命令をさらに備える、請求項２５または請求項２６に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記１つ以上のプロセッサに、前記第１のビューの前記第１のブロックと第２のビューの前記現在ブロックとの間の視差に従って調整され、前記現在ブロックについての前記ブロックの位置と同一位置とされる前記第１のピクチャ中の位置を識別することによって、前記第１のブロックの位置を特定させる命令をさらに備える、請求項２５または請求項２６に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、その両方の内容全体が参照により組み込まれる、２０１１年４月２０日に出願された米国仮出願第６１／４７７，５６１号、及び２０１１年７月２８日に出願された米国仮出願第６１／５１２，７６５号の優先権を主張する。
【０００２】
本開示は、ビデオコード化に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、所謂「スマートフォン」、ビデオ遠隔会議機器、ビデオストリーミング機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中の高効率ビデオコード化（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。ビデオ機器は、そのようなビデオ圧縮技法を実施することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、及び／又は記憶し得る。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的（イントラピクチャ）予測及び／又は時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコード化の場合、ビデオスライス（即ち、ピクチャ又はピクチャの一部分）は、ツリーブロック、コード化単位（ＣＵ）及び／又はコード化ノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測を使用して符号化される。ピクチャのインターコード化（Ｐ又はＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測、又は他の参照ピクチャ中の参照サンプルに関する時間的予測を使用し得る。
【０００５】
空間的予測又は時間的予測は、コード化されるべきブロックのための予測ブロックを生じる。残差データは、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差をポイントする残差データとに従って符号化され得る。イントラコード化ブロックは、イントラコード化モードと残差データとに従って符号化される。更なる圧縮のために、残差データは、画素領域から変換領域に変換され得、次いで量子化され得る残差変換係数を生じる。最初に２次元アレイに構成された量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコード化が適用され得る。
【発明の概要】
【０００６】
概して、本開示では、ビデオデータをコード化するための技法について説明する。本開示では、マルチビュービデオコード化（ＭＶＣ）においてインターモードコード化する（即ち、他のピクチャのブロックに対して現在ブロックをコード化する）ときに動きベクトル予測、動き推定及び動き補償を実行するための技法について説明する。概して、ＭＶＣは、ビデオデータの複数のビューをカプセル化するためのビデオコード化規格である。各ビューは、共通のシーンの対応するビデオデータが撮影された異なる奥行き(perspective)、又は角度に対応し得る。本開示の技法は、概して、マルチビュービデオコード化のコンテキストにおいて動き予測データを予測することを含む。即ち、例えば、本開示の技法によれば、現在コード化されているブロックと同じ又は異なるビュー中のブロックからの視差（disparity）動きベクトルが、現在ブロックの動きベクトルを予測するために使用され得る。別の例では、本開示の技法によれば、現在コード化されているブロックと同じ又は異なるビュー中のブロックからの時間（temporal）動きベクトルが、現在ブロックの動きベクトルを予測するために使用され得る。
【０００７】
一例では、本開示の態様はビデオデータをコード化する方法に関し、本方法は、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、第１のブロックが第１の視差動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルについての動きベクトル予測子を決定することと、動きベクトル予測子が第１の視差動きベクトルに基づき、第２の動きベクトルが視差動きベクトルを備えるとき、動きベクトル予測子を決定することが、基準化された動きベクトル予測子(scaled motion vector predictor)を生成するために第１の視差動きベクトルを基準化することを備え、第１の視差動きベクトルを基準化することが、第１の動きベクトルのビュー距離によって除算された第２の視差動きベクトルのビュー距離を備える基準化ファクタ(scaling factor)を第１の視差動きベクトルに適用することを備える、基準化された動きベクトル予測子を使用して第２のブロックについての予測データをコード化することとを備える。
【０００８】
別の例では、本開示の態様は、１つ以上のプロセッサを備えるビデオデータをコード化するための装置に関し、１つ以上のプロセッサが、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、第１のブロックが第１の視差動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルについての動きベクトル予測子を決定することと、動きベクトル予測子が第１の視差動きベクトルに基づき、第２の動きベクトルが視差動きベクトルを備えるとき、１つ以上のプロセッサが、基準化された動きベクトル予測子を生成するために第１の視差動きベクトルを基準化することによって動きベクトル予測子を決定するように構成され、第１の視差動きベクトルを基準化することが、第１の動きベクトルのビュー距離によって除算された第２の視差動きベクトルのビュー距離を備える基準化ファクタを第１の視差動きベクトルに適用することを備える、基準化された動きベクトル予測子に基づいて第２のブロックについての予測データをコード化することとを行うように構成される。
【０００９】
別の例では、本開示の態様は、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別するための手段と、第１のブロックが第１の視差動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルについての動きベクトル予測子を決定するための手段と、動きベクトル予測子が第１の視差動きベクトルに基づき、第２の動きベクトルが視差動きベクトルを備えるとき、動きベクトル予測子を決定するための手段が、基準化された動きベクトル予測子を生成するために第１の視差動きベクトルを基準化することによって動きベクトル予測子を決定するように構成され、第１の視差動きベクトルを基準化することが、第１の動きベクトルのビュー距離によって除算された第２の視差動きベクトルのビュー距離を備える基準化ファクタを第１の視差動きベクトルに適用することを備える、基準化された動きベクトル予測子に基づいて第２のブロックについての予測データをコード化するための手段とを備える、ビデオデータをコード化するための装置に関する。
【００１０】
別の例では、本開示の態様は、実行されると、１つ以上のプロセッサに、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、第１のブロックが第１の視差動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルについての動きベクトル予測子を決定することと、動きベクトル予測子が第１の視差動きベクトルに基づき、第２の動きベクトルが視差動きベクトルを備えるとき、１つ以上のプロセッサに、基準化された動きベクトル予測子を生成するために第１の視差動きベクトルを基準化することによって動きベクトル予測子を決定させ、第１の視差動きベクトルを基準化することが、第１の動きベクトルのビュー距離によって除算された第２の視差動きベクトルのビュー距離を備える基準化ファクタを第１の視差動きベクトルに適用することを備える、基準化された動きベクトル予測子に基づいて第２のブロックについての予測データをコード化することとを行わせる命令を記憶したコンピュータ可読記憶媒体に関する。
【００１１】
別の例では、本開示の態様はビデオデータをコード化する方法に関し、本方法は、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの第１のブロックが第１の時間動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、第２のブロックが第２のビューからであるとき、第１の時間動きベクトルに基づいて第２の動きベクトルについての動きベクトル予測子を決定することと、動きベクトル予測子を使用して第２のブロックについての予測データをコード化することとを備える。
【００１２】
別の例では、本開示の態様は、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの第１のブロックが第１の時間動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、第２のブロックが第２のビューからであるとき、第１の時間動きベクトルに基づいて第２の動きベクトルについての動きベクトル予測子を決定することと、動きベクトル予測子を使用して第２のブロックについての予測データをコード化することとを行うように構成された１つ以上のプロセッサを備える、ビデオデータをコード化するための装置に関する。
【００１３】
別の例では、本開示の態様は、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別するための手段と、ビデオデータの第１のブロックが第１の時間動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、第２のブロックが第２のビューからであるとき、第１の時間動きベクトルに基づいて第２の動きベクトルについての動きベクトル予測子を決定するための手段と、動きベクトル予測子を使用して第２のブロックについての予測データをコード化するための手段とを備える、ビデオデータをコード化するための装置に関する。
【００１４】
一例では、本開示の態様は、実行されると、１つ以上のプロセッサに、第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの第１のブロックが第１の時間動きベクトルに関連する、ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、第２のブロックが第２のビューからであるとき、第１の時間動きベクトルに基づいて第２の動きベクトルについての動きベクトル予測子を決定することと、動きベクトル予測子を使用して第２のブロックについての予測データをコード化することとを行わせる命令を記憶したコンピュータ可読記憶媒体に関する。
【００１５】
本開示の１つ以上の態様の詳細について添付の図面及び以下の説明において述べる。本開示で説明する技法の他の特徴、目的、及び利点は、これらの説明及び図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】本開示で説明する技法を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】本開示で説明する技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【図３】本開示で説明する技法を実施し得る例示的なビデオデコーダを示すブロック図。
【図４】例示的なマルチビュービデオコード化（ＭＶＣ）予測パターンを示す概念図。
【図５】動きベクトル予測子候補についての例示的な位置を示すブロック図。
【図６】本開示の態様による、動きベクトル予測子を生成すること及び基準化することを示す概念図。
【図７】本開示の態様による、動きベクトル予測子を生成すること及び基準化することを示す別の概念図。
【図８】本開示の態様による、動きベクトル予測子を生成すること及び基準化することを示す別の概念図。
【図９】ビデオデータのブロックについての予測情報をコード化する例示的な方法を示す流れ図。
【図１０】現在ブロックとは異なるビュー中のブロックから動きベクトル予測子を生成することを示す概念図。
【図１１】現在ブロックとは異なるビュー中のブロックから動きベクトル予測子を生成する例示的な方法を示す流れ図。
【発明を実施するための形態】
【００１７】
幾つかのビデオコード化システムによれば、データ圧縮を達成するように、ビデオシーケンスにおける時間的冗長性を低減するために、動き推定及び動き補償が使用され得る。この場合、ビデオデータの予測ブロック、例えば、コード化されている現在ビデオブロックの値を予測するために使用され得る別のビデオピクチャ又はスライスからのブロックを識別する動きベクトルが生成され得る。残差データのブロックを生成するために、予測ビデオブロックの値が現在ビデオブロックの値から減算される。動き情報（例えば、動きベクトル、動きベクトルインデックス、予測方向、又は他の情報）が、残差データとともにビデオエンコーダからビデオデコーダに通信される。デコーダは、残差データを予測ブロックのデータと組み合わせることによって、（動きベクトルに基づいて）同じ予測ブロックの位置を特定し、符号化されたビデオブロックを再構成することができる。
【００１８】
幾つかの場合には、動きベクトルの予測コード化はまた、動きベクトルを通信するために必要とされるデータの量を更に低減するために適用される。動きベクトルが確立されるとき、動きベクトルはターゲットピクチャから参照ピクチャまでである。動きベクトルは、空間的又は時間的に予測され得る。空間的に予測される動きベクトルは、利用可能な空間ブロック（同じタイムインスタンスのブロック）に関連する。時間的に予測される動きベクトルは、利用可能な時間ブロック（異なるタイムインスタンスのブロック）に関連する。動きベクトル予測の場合、エンコーダは、動きベクトル自体を符号化及び通信するのではなく、周知の（又は知り得る）動きベクトルに対する動きベクトル差分（ＭＶＤ）を符号化し、通信する。Ｈ．２６４／ＡＶＣでは、現在動きベクトルを定義するためにＭＶＤとともに使用され得る周知の動きベクトルは、所謂動きベクトル予測子（ＭＶＰ）によって定義され得る。有効なＭＶＰであるために、動きベクトルは、ＭＶＰ及びＭＶＤによって現在コード化されている動きベクトルと同じピクチャをポイントしなければならない。
【００１９】
ビデオコーダは、ＭＶＰのための候補として空間的及び時間的方向における幾つかの隣接ブロックを含む動きベクトル予測子候補リストを構築し得る。この場合、ビデオエンコーダは、符号化レート及び歪みの分析に基づいて（例えば、レート歪みコスト分析又は他のコード化効率分析を使用して）候補セットから最も正確な予測子を選択し得る。ＭＶＰをどこに配置すべきかをデコーダに通知するために、動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）がビデオデコーダに送信され得る。ＭＶＤも通信される。デコーダは、動きベクトルを再構成するように、ＭＶＤを（動きベクトル予測子インデックスによって定義された）ＭＶＰと組み合わせ得る。
【００２０】
コード化されている現在ビデオブロックのために隣接ビデオブロックの動き情報（動きベクトル、参照ピクチャインデックス、予測方向、又は他の情報）が継承される、所謂「マージモード」も利用可能であり得る。現在ビデオブロックがそれの動き情報をそこから引き継ぐ隣接を識別するために、インデックス値が使用され得る。
【００２１】
マルチビュービデオコード化（ＭＶＣ）は、ビデオデータの複数のビューをカプセル化するためのビデオコード化規格である。概して、各ビューは、共通のシーンの対応するビデオデータが撮影された異なる奥行き、又は角度に対応する。ＭＶＣは、メタデータのセット、即ち、ビューについての記述データを集合的に、個別に与える。
【００２２】
コード化されたビューがビデオデータの３次元（３Ｄ）表示器のために使用され得る。例えば、２つのビュー（例えば、視聴者の左眼のビュー及び右眼のビュー）は、光の異なる偏光を使用して同時又はほぼ同時に表示され得、視聴者の眼の各々がビューの各々を受け取るように、視聴者は受動的偏光眼鏡を着用し得る。代替的に、視聴者は、各眼を別個に遮断する能動的眼鏡を着用し得、表示器は、眼鏡と同期して各眼の画像間を高速に交互に入れ替わる。
【００２３】
ＭＶＣでは、特定のビューの特定のピクチャはビューコンポーネントと呼ばれる。即ち、ビューのビューコンポーネントは、ビューの特定のタイムインスタンスに対応する。一般に、２つのビューの同じ又は対応する被写体は同一位置にされない。「視差ベクトル」という用語は、異なるビュー中の対応する被写体に対するあるビューのピクチャ中の被写体の変位を示すベクトルを指すために使用され得る。そのようなベクトルは「変位ベクトル」と呼ばれることもある。視差ベクトルは、ピクチャのビデオデータの画素又はブロックにも適用可能であり得る。例えば、第１のビューのピクチャ中の画素は、第１のビュー及び第２のビューがそこから撮影される異なるカメラ位置に関係する特定の視差だけ、第２のビューのピクチャ中の対応する画素に関して変位させられ得る。幾つかの例では、視差は、１つのビューから別のビューまでの動きベクトルを予測するために使用され得る。
【００２４】
ＭＶＣのコンテキストでは、１つのビューのピクチャが別のビューのピクチャから予測され得る。例えば、ビデオデータのブロックが、同じタイムインスタンスであるが、異なるビューの参照ピクチャ中のビデオデータのブロックに対して予測され得る。一例では、現在コード化されているブロックを「現在ブロック」と呼ぶことがある。異なるビュー中にあるが同じタイムインスタンス中のブロックから現在ブロックを予測する動きベクトルを、「視差動きベクトル」と呼ぶ。視差動きベクトルは、一般に、２つ以上のビューが利用可能であり得るマルチビュービデオコード化のコンテキストにおいて適用可能である。本開示によれば、視差動きベクトルについての「ビュー距離」は、参照ピクチャのビューとターゲットピクチャのビューとの間の変換差を指し得る。即ち、ビュー距離は、参照ピクチャのビュー識別子とターゲットピクチャのビュー識別子との間のビュー識別子差として表され得る。
【００２５】
別のタイプの動きベクトルは「時間動きベクトル」である。マルチビュービデオコード化のコンテキストにおいて、時間動きベクトルは、異なるタイムインスタンス中にあるが、同じビュー内のブロックから現在ブロックを予測する動きベクトルを指す。本開示によれば、時間動きベクトルの「時間距離」は、参照ピクチャからターゲットピクチャまでのピクチャ順序カウント（ＰＯＣ）距離を指し得る。
【００２６】
本開示の幾つかの技法は、マルチビュー設定におけるビデオデータのブロックに関連する動き情報（例えば、動きベクトル、動きベクトルインデックス、予測方向、又は他の情報）を使用して現在コード化されているブロックの動き情報を予測することを対象とする。例えば、本開示の態様によれば、異なるビューから予測された動きベクトルは、現在ブロックの動きベクトル予測のために使用される１つ以上の動きベクトルリストのための候補として追加され得る。幾つかの例では、ビデオコーダは、現在コード化されているブロックとは異なるビュー中のブロックに関連する視差動きベクトルを使用して現在ブロックについての動きベクトルを予測し得、予測された視差動きベクトルを候補動きベクトルリストに追加し得る。他の例では、ビデオコーダは、現在コード化されているブロックとは異なるビュー中のブロックに関連する時間動きベクトルを使用して、現在ブロックについての動きベクトルを予測し得、予測された時間動きベクトルを候補動きベクトルリストに追加し得る。
【００２７】
本開示の態様によれば、視差動きベクトルは、現在コード化されているブロックについての動きベクトル予測子として使用される前に基準化され得る。例えば、視差動きベクトルが、予測されている現在動きベクトルと同じビュー識別子を有する参照ピクチャを識別し、視差動きベクトルが、予測されている現在動きベクトルと同じビュー識別子をもつターゲットピクチャを有する場合、視差動きベクトルは、現在ブロックについての動きベクトルを予測するために使用される前に基準化され得ない。他の例では、視差動きベクトルは、現在ブロックについての動きベクトルを予測するために使用される前に基準化され得る。
【００２８】
別の例では、視差動きベクトルは、空間的に隣接するブロックに関連する視差動きベクトルから予測され得る。この例では、視差動きベクトルの参照ピクチャのビュー識別子が、予測されるべき動きベクトル（例えば、現在予測されているブロックに関連する動きベクトル）の参照ピクチャのビュー識別子と同じである場合、基準化は必要とされ得ない。そうでない場合、視差動きベクトルは、ビデオデータを撮影するために使用されたカメラのカメラ位置に基づいて基準化され得る。即ち、例えば、予測のために使用されている視差動きベクトルは、視差動きベクトルの参照ピクチャのビュー識別子と動きベクトルのターゲットピクチャのビュー識別子との間の差に応じて基準化され得る。幾つかの例では、視差動きベクトル基準化は、ビューの変換に基づいて基準化され得る。
【００２９】
別の例では、視差動きベクトルは、時間的に隣接するブロックに関連する視差動きベクトルから予測され得る。この例では、視差動きベクトルの参照ピクチャのビュー識別子が予測されるべき動きベクトルの参照ピクチャのビュー識別子と同じであり、視差動きベクトルのターゲットピクチャのビュー識別子が予測されるべき動きベクトルの参照ピクチャのビュー識別子と同じである場合、基準化は必要とされ得ない。そうでない場合、前の例に関して説明したように、視差動きベクトルは、ビュー識別子の差に基づいて基準化され得る。
【００３０】
時間動きベクトル予測に関して、本開示の態様によれば、第２の異なるビュー中にターゲットピクチャを有する時間動きベクトルを予測するために、第１のビュー中にターゲットピクチャを有する時間動きベクトルが使用され得る。幾つかの例では、予測のために使用されている時間動きベクトルのターゲットピクチャ中のブロックは、異なるビュー中の現在予測されているブロックと同一位置にされ得る。他の例では、予測のために使用されている時間動きベクトルのターゲットピクチャ中のブロックは、２つのビュー間の視差により、現在ブロックからオフセットされ得る。
【００３１】
幾つかの例では、異なるビューから予測されている動きベクトルが時間動きベクトルであるとき、動きベクトルはピクチャ順序カウント（ＰＯＣ）距離の差に基づいて基準化され得る。例えば、本開示の態様によれば、予測のために使用されている時間動きベクトルの参照ピクチャが、予測されている現在動きベクトルの参照ピクチャと同じＰＯＣ値を有し、予測のために使用されている時間動きベクトルのターゲットピクチャが、予測されている現在動きベクトルの参照ピクチャと同じＰＯＣ値を有する場合、予測のために使用されている動きベクトルは基準化され得ない。しかしながら、そうでない場合、予測のために使用されている動きベクトルは、予測のために使用されている動きベクトルの参照ピクチャと現在予測されている動きベクトルの参照ピクチャとの間のＰＯＣ値の差に基づいて基準化され得る。
【００３２】
本開示の幾つかの態様によれば、異なるビューからの時間及び／又は視差動きベクトルは、ＭＶＰ候補として使用され得る。例えば、時間及び／又は視差動きベクトルは、現在ブロックについてのＭＶＤを計算するために使用され得る。本開示の他の態様によれば、異なるビューからの時間及び／又は視差動きベクトルは、マージ候補として使用され得る。例えば、時間及び／又は視差動きベクトルは、現在ブロックのために継承され得る。そのような例では、現在ビデオブロックがそれの動き情報をそこから継承する隣接を識別するために、インデックス値が使用され得る。いずれの場合も、ＭＶＰ又はマージ候補として使用される異なるビューからの視差及び／又は時間動きベクトルは、ＭＶＰ又はマージ候補として使用される前に基準化され得る。
【００３３】
図１は、マルチビューコード化における動きベクトル予測のための技法を利用し得る例示的なビデオ符号化及び復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先機器１４によって後で復号されるべき符号化されたビデオデータを与える発信源１２を含む。特に、発信源１２は、コンピュータ可読媒体１６を介して宛先機器１４にビデオデータを与える。発信源１２及び宛先機器１４は、デスクトップコンピュータ、ノートブック（即ち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォン、所謂「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器などを含む、広範囲にわたる機器のいずれかを備え得る。場合によっては、発信源１２及び宛先機器１４は、ワイヤレス通信のために装備され得る。
【００３４】
宛先機器１４は、コンピュータ可読媒体１６を介して復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体１６は、発信源１２から宛先機器１４に符号化されたビデオデータを移動させることができる任意のタイプの媒体又は機器を備え得る。一例では、コンピュータ可読媒体１６は、発信源１２が、符号化されたビデオデータをリアルタイムで宛先機器１４に直接送信することを可能にするための通信媒体を備え得る。
【００３５】
符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先機器１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトル又は１つ以上の物理伝送線路など、任意のワイヤレス又は有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源１２から宛先機器１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【００３６】
幾つかの例では、符号化されたデータは、出力インターフェース２２から記憶装置に出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶装置からアクセスされ得る。記憶装置は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性又は不揮発性メモリ、若しくは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの様々な分散された又はローカルにアクセスされたデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶装置は、ファイルサーバ、又は発信源１２によって生成された符号化されたビデオを記憶し得る別の中間記憶装置に対応し得る。
【００３７】
宛先機器１４は、ストリーミング又はダウンロードを介して記憶装置から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先機器１４に送信することができる任意のタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）機器、又はローカルディスクドライブを含む。宛先機器１４は、インターネット接続を含む、任意の標準のデータ接続を介して符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適である、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデムなど）、又は両方の組合せを含み得る。記憶装置からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組合せであり得る。
【００３８】
本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び／又はビデオテレフォニーなどの適用例をサポートするために、単方向又は二方向のビデオ送信をサポートするように構成され得る。
【００３９】
図１の例では、発信源１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先機器１４は、入力インターフェース２８と、ビデオデコーダ３０と、表示装置３２とを含む。本開示によれば、発信源１２のビデオエンコーダ２０は、マルチビューコード化における動きベクトル予測のための技法を適用するように構成され得る。他の例では、発信源及び宛先機器は、他の構成要素又は構成を含み得る。例えば、発信源１２は、外部カメラなど、外部ビデオ発信源１８からビデオデータを受信し得る。同様に、宛先機器１４は、内蔵表示装置を含むのではなく、外部表示装置とインターフェースし得る。
【００４０】
図１の図示されたシステム１０は一例にすぎない。マルチビューコード化における動きベクトル予測のための技法は、任意のデジタルビデオ符号化及び／又は復号機器によって実行され得る。概して、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。更に、本開示の技法は、ビデオプリプロセッサによっても実行され得る。発信源１２及び宛先機器１４は、発信源１２が宛先機器１４に送信するためのコード化ビデオデータを生成するような、コード化機器の例にすぎない。幾つかの例では、機器１２、１４の各々がビデオ符号化構成要素と復号構成要素とを含むので、機器１２、１４は、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオテレフォニーのための、ビデオ機器１２とビデオ機器１４との間の一方向又は双方向のビデオ送信をサポートし得る。
【００４１】
発信源１２のビデオ発信源１８は、ビデオカメラなどの撮像装置、予め撮影されたビデオを含んでいるビデオアーカイブ、及び／又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオ発信源１８は、発信源ビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオ発信源１８がビデオカメラである場合、発信源１２及び宛先機器１４は、所謂カメラ付き携帯電話又はビデオ電話を形成し得る。但し、上述のように、本開示で説明する技法は、概してビデオコード化に適用可能であり得、ワイヤレス及び／又は有線アプリケーションに適用され得る。各場合において、撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成ビデオはビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース２２によってコンピュータ可読媒体１６上に出力され得る。
【００４２】
コンピュータ可読媒体１６は、ワイヤレスブロードキャスト又は有線ネットワーク送信などの一時媒体、又はハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、又は他のコンピュータ可読媒体などの記憶メディア（即ち、非一時的記憶媒体）を含み得る。幾つかの例では、ネットワークサーバ（図示せず）は、例えば、ネットワーク送信を介して、発信源１２から符号化されたビデオデータを受信し、宛先機器１４に符号化されたビデオデータを与え得る。同様に、ディスクスタンピング機能など、媒体生成機能のコンピューティング機器は、発信源１２から符号化されたビデオデータを受信し、符号化されたビデオデータを含んでいるディスクを生成し得る。従って、様々な例では、コンピュータ可読媒体１６は、様々な形態の１つ以上のコンピュータ可読媒体を含むと理解され得る。
【００４３】
宛先機器１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受信する。コンピュータ可読媒体１６の情報は、ブロック及び他のコード化ユニット、例えば、ＧＯＰの特性及び／又は処理を記述するシンタックス要素を含む、ビデオデコーダ３０によっても使用される、ビデオエンコーダ２０によって定義されるシンタックス情報を含み得る。表示装置３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００４４】
ビデオエンコーダ２０及びビデオデコーダ３０は、現在開発中の高効率ビデオコード化（ＨＥＶＣ）規格など、ビデオコード化規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格又は業界規格、又はそのような規格の拡張に従って動作し得る。但し、本開示の技法は特定のコード化規格に限定されない。ビデオコード化規格の他の例は、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３を含む。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４５】
ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣのＭｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−ＴのＶｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって公式化された。幾つかの態様では、本開示で説明する技法は、概してＨ．２６４規格に準拠する機器に適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」に記載されており、本明細書ではＨ．２６４規格又はＨ．２６４仕様、若しくはＨ．２６４／ＡＶＣ規格又は仕様と呼ばれ得る。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００４６】
ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコード化機器の発展的モデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存の機器に対してビデオコード化機器の幾つかの追加の能力を仮定する。例えば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００４７】
一般に、ＨＭの作業モデルは、ビデオピクチャ（又は「フレーム」）が、ルーマとクロマの両方のサンプルを含む一連のツリーブロック又は最大コード化単位（ＬＣＵ）に分割され得ることを記載する。ビットストリーム内のシンタックスデータが、画素の数に関して最大コード化単位であるＬＣＵのサイズを定義し得る。スライスは、幾つかの連続的なツリーブロックをコード化順に含む。ピクチャは、１つ以上のスライスに区分され得る。各ツリーブロックは、４分木に従ってコード化単位（ＣＵ）に分割され得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはツリーブロックに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００４８】
４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。例えば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵが更に分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しない場合でも、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶ。例えば、１６×１６サイズのＣＵが更に分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵをリーフＣＵとも呼ぶ。
【００４９】
ＣＵは、ＣＵがサイズ差異を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは、４つの子ノード（サブＣＵとも呼ぶ）に分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードと呼ばれる、最終的な、分割されていない子ノードは、コード化ノードを備え、リーフＣＵとも呼ばれる。コード化されたビットストリームに関連付けられたシンタックスデータは、最大ＣＵ深さと呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、コード化ノードの最小サイズをも定義し得る。従って、ビットストリームは最小コード化単位（ＳＣＵ）をも定義し得る。本開示では、ＨＥＶＣのコンテキストにおけるＣＵ、ＰＵ、又はＴＵのいずれか、又は他の規格のコンテキストにおける同様のデータ構造（例えば、Ｈ．２６４／ＡＶＣにおけるそれのマクロブロック及びサブブロック）を指すために、「ブロック」という用語を使用する。
【００５０】
ＣＵは、コード化ノードと、コード化ノードに関連付けられた予測単位（ＰＵ）及び変換単位（ＴＵ）とを含む。ＣＵのサイズは、コード化ノードのサイズに対応し、正方形でなければならない。ＣＵのサイズは、８×８画素から最大６４×６４以上の画素を有するツリーブロックのサイズまでに及び得る。各ＣＵは、１つ以上のＰＵと、１つ以上のＴＵとを含み得る。ＣＵに関連付けられたシンタックスデータは、例えば、ＣＵを１つ以上のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化又はダイレクトモード符号化されるか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかによって異なり得る。ＰＵは、非正方形に区分され得る。ＣＵに関連付けられたシンタックスデータは、例えば、４分木に従って、ＣＵを１つ以上のＴＵに区分することも記述し得る。ＴＵは、形状が正方形又は非正方形（例えば、矩形）であり得る。
【００５１】
ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるか又はそれよりも小さくなり得る。幾つかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られる４分木構造を使用してより小さい単位に再分割され得る。ＲＱＴのリーフノードは変換単位（ＴＵ）と呼ばれることがある。ＴＵに関連する画素差分値は、量子化され得る変換係数を生成するために変換され得る。
【００５２】
リーフＣＵは、１つ以上の予測単位（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部又は一部分に対応する空間エリアを表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。更に、ＰＵは、予測に関係するデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵについてのデータは、ＰＵに対応するＴＵについてのイントラ予測モードを記述するデータを含み得る残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵについての１つ以上の動きベクトルを定義するデータを含み得る。ＰＵについての動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４画素精度又は１／８画素精度）、動きベクトルがポイントする参照ピクチャ、及び／又は動きベクトルの参照ピクチャリスト（例えば、リスト０、又はリスト１、又はリスト０）を記述し得る。
【００５３】
１つ以上のＰＵを有するリーフＣＵは、１つ以上の変換単位（ＴＵ）をも含み得る。変換単位は、上記で説明したように、ＲＱＴ（ＴＵ４分木構造とも呼ばれる）を使用して指定され得る。例えば、分割フラグは、リーフＣＵが４つの変換単位に分割されるかどうかを示し得る。次いで、各変換単位は更にサブＴＵに分割され得る。ＴＵが更に分割されないとき、そのＴＵはリーフＴＵと呼ばれることがある。概して、イントラコード化の場合、リーフＣＵに属する全てのリーフＴＵは同じイントラ予測モードを共有する。即ち、概して、リーフＣＵの全てのＴＵの予測値を計算するために同じイントラ予測モードが適用される。イントラコード化の場合、ビデオエンコーダ２０は、イントラ予測モードを使用して各リーフＴＵの残差値をＴＵに対応するＣＵの一部と元のブロックとの間の差として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。従って、ＴＵは、ＰＵよりも大きいことも小さいこともある。イントラコード化の場合、ＰＵは、同じＣＵの対応するリーフＴＵと同一位置にされ得る。幾つかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００５４】
更に、リーフＣＵのＴＵも、残差４分木（ＲＱＴ）と呼ばれるそれぞれの４分木データ構造に関連付けられ得る。即ち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してツリーブロック（又はＬＣＵ）に対応する。分割されないＲＱＴのＴＵはリーフＴＵと呼ばれる。概して、本開示では、特に明記しない限り、リーフＣＵ及びリーフＴＵに言及するためにそれぞれＣＵ及びＴＵという用語を使用する。
【００５５】
ビデオシーケンスは、一般に一連のピクチャを含む。本明細書で説明する「ピクチャ」及び「フレーム」という用語は互換的に使用され得る。即ち、ビデオデータを含んでいるピクチャはビデオフレーム又は単に「フレーム」と呼ばれることがある。ピクチャのグループ（ＧＯＰ）は、一般に、一連の１つ以上のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれる幾つかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、１つ以上のピクチャのヘッダ中、又は他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスについての符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般的に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコード化ノードに対応し得る。ビデオブロックは、固定サイズ又は変動サイズを有し得、指定のコード化規格に応じてサイズが異なり得る。
【００５６】
例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの単方向は区分されないが、他の方向が２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、又は「Ｒｉｇｈｔ」という表示によって示される。従って、例えば「２Ｎ×ｎＵ」は、上部に２Ｎ×０．５Ｎ  ＰＵと下部に２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分される２Ｎ×２Ｎ  ＣＵを指す。
【００５７】
本開示では、「Ｎ×Ｎ（NxN）」及び「Ｎ×Ｎ（N by N）」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、１６×１６（16x16）画素又は１６×１６（16 by 16）画素を指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、Ｎは非負整数値を表す。ブロック中の画素は行と列に構成され得る。更に、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックは、Ｎ×Ｍ画素を備え得、Ｍは必ずしもＮに等しいとは限らない。
【００５８】
ＣＵのＰＵを使用したイントラ予測コード化又はインター予測コード化の後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（画素領域とも呼ばれる）空間領域において予測画素データを生成する方法又はモードを記述するシンタックスデータを備え得、ＴＵは、例えば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャの画素と、ＰＵに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵのための変換係数を生成し得る。
【００５９】
変換係数を生成するための任意の変換の後、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、更なる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、ｎはｍよりも大きい。
【００６０】
量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化された変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー（従って、より低い周波数）係数を配置し、アレイの後部により低いエネルギー（従って、より高い周波数）係数を配置するように設計され得る。幾つかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するために予め定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後、ビデオエンコーダ２０は、例えば、コンテキスト適応型可変長コード化（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型２値算術コード化（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率区間区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コード化、又は別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。また、ビデオエンコーダ２０は、ビデオデータの復号の際に、ビデオデコーダ３０によって使用するために符号化されたビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
【００６１】
ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値が非０か否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、例えば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられるコンテキストに基づき得る。
【００６２】
ビデオエンコーダ２０は、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、及びＧＯＰベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、又はＧＯＰヘッダ中でビデオデコーダ３０に更に送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中の幾つかのピクチャを記述し得、ピクチャシンタックスデータは、対応するピクチャを符号化するために使用される符号化／予測モードを示し得る。
【００６３】
ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、適用可能なとき、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ又はデコーダ回路のいずれか、又はそれらの任意の組合せとして実施され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０及び／又はビデオデコーダ３０を含む機器は、集積回路、マイクロプロセッサ、及び／又はセルラー電話などのワイヤレス通信機器を備え得る。
【００６４】
図２は、マルチビューコード化において動きベクトルを予測するための本開示で説明する技法を実施し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のピクチャ内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インターコード化は時間的予測を利用して、ビデオシーケンスの隣接ピクチャ又はピクチャ内のビデオの時間的冗長性を低減又は除去する。イントラモード（Ｉモード）は、幾つかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）又は双方向予測（Ｂモード）などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指し得る。
【００６５】
図２に示すように、ビデオエンコーダ２０は、符号化すべきビデオデータを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６と、参照ピクチャメモリ６４とを含む。次に、モード選択ユニット４０は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測ユニット４６と、区分ユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理するであろう。追加のループフィルタ（ループ内又はループ後）もデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【００６６】
符号化プロセス中に、ビデオエンコーダ２０は、コード化されるべきピクチャ又はスライスを受信する。ピクチャ又はスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２及び動き補償ユニット４４は、時間圧縮を行うために、１つ以上の参照ピクチャ中の１つ以上のブロックに対する受信したビデオブロックのインター予測コード化を実行する。イントラ予測ユニット４６は、代替的に、空間圧縮を行うために、コード化されるべきブロックと同じピクチャ又はスライス中の１つ以上の隣接ブロックに対する受信したビデオブロックのイントラ予測コード化を実行し得る。ビデオエンコーダ２０は、例えば、ビデオデータの各ブロックに適切なコード化モードを選択するために、複数のコード化パスを実行し得る。
【００６７】
更に、区分ユニット４８は、前のコード化パスにおける前の区分方式の評価に基づいてビデオデータのブロックをサブブロックに区分し得る。例えば、区分ユニット４８は、初めにピクチャ又はスライスをＬＣＵに区分し、レート歪み分析（例えば、レート歪み最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を更に生成し得る。４分木のリーフノードＣＵは、１つ以上のＰＵ及び１つ以上のＴＵを含み得る。
【００６８】
モード選択ユニット４０は、例えば、誤差結果に基づいてコード化モード、即ち、イントラ又はインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器５０に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器６２に与え得る。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、区分情報、及び他のそのようなシンタックス情報など、シンタックス要素をエントロピーコード化ユニット５６に与える。
【００６９】
動き推定ユニット４２、動きベクトル予測ユニット４３、及び動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在ピクチャ（又は他のコード化単位）内のコード化されている現在ブロックに対する参照ピクチャ（又は他のコード化単位）内の予測ブロックに対する、現在ピクチャ内のビデオブロックのＰＵの変位を示し得る。
【００７０】
予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、又は他の差分メトリックによって決定され得る画素差分に関して、コード化されるべきブロックにぴったり一致することがわかるブロックである。幾つかの例では、ビデオエンコーダ２０は、参照ピクチャバッファと呼ばれることもある参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数画素位置の値を計算し得る。例えば、ビデオエンコーダ２０は、参照ピクチャの１／４画素位置、１／８画素位置、又は他の分数画素位置の値を補間し得る。従って、動き推定ユニット４２は、フル画素位置と分数画素位置とに対する動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
【００７１】
動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのＰＵについての動きベクトルを計算する。従って、概して、動きベクトルについてのデータは、参照ピクチャリストと、参照ピクチャリストへのインデックス（ｒｅｆ＿ｉｄｘ）と、水平成分と、垂直成分とを含み得る。参照ピクチャは、第１の参照ピクチャリスト（リスト０）、第２の参照ピクチャリスト（リスト１）、又は結合された参照ピクチャリスト（リストｃ）から選択され得、それらの各々が、参照ピクチャメモリ６４に記憶された１つ以上の参照ピクチャを識別する。
【００７２】
動き推定ユニット４２は、参照ピクチャの予測ブロックを識別する動きベクトルを生成し、エントロピー符号化ユニット５６と動き補償ユニット４４とに送り得る。即ち、動き推定ユニット４２は、予測ブロックを含んでいる参照ピクチャリストを識別する動きベクトルデータと、予測ブロックのピクチャを識別する参照ピクチャリストへのインデックスと、識別されたピクチャ内の予測ブロックの位置を特定するための水平及び垂直コンポーネントとを生成し、送り得る。
【００７３】
幾つかの例では、現在のＰＵについての実際の動きベクトルを送るのではなく、動きベクトル予測ユニット４３は、動きベクトルを通信するために必要とされるデータの量を更に低減するために、動きベクトルを予測し得る。この場合、動きベクトル自体を符号化及び通信するのではなく、動きベクトル予測ユニット４３は、周知の（又は知り得る）動きベクトルに対する動きベクトル差分（ＭＶＤ）を生成し得る。現在動きベクトルを定義するためにＭＶＤとともに使用され得る周知の動きベクトルは、所謂動きベクトル予測子（ＭＶＰ）によって定義され得る。概して、有効なＭＶＰであるために、予測のために使用されている動きベクトルは、現在コード化されている動きベクトルと同じ参照ピクチャをポイントしなければならない。
【００７４】
幾つかの例では、以下の図５に関してより詳細に説明するように、動きベクトル予測ユニット４３は、ＭＶＰのための候補として空間的及び／又は時間的方向における幾つかの隣接するブロックを含む動きベクトル予測子候補リストを構築し得る。本開示の態様によれば、以下でより詳細に説明するように、動きベクトル予測子候補はまた、（例えば、マルチビューコード化において）異なるビューのピクチャにおいて識別され得る。複数の動きベクトル予測子候補が（複数の候補ブロックから）利用可能なとき、動きベクトル予測ユニット４３は、所定の選択基準に従って現在ブロックについての動きベクトル予測子を決定し得る。例えば、動きベクトル予測ユニット４３は、符号化レート及び歪みの分析に基づいて（例えば、レート歪みコスト分析又は他のコード化効率分析を使用して）、候補セットから最も正確な予測子を選択し得る。他の例では、動きベクトル予測ユニット４３は、動きベクトル予測子候補の平均を生成し得る。動きベクトル予測子を選択する他の方法も可能である。
【００７５】
動きベクトル予測子を選択するときに、動きベクトル予測ユニット４３は、ＭＶＰ候補ブロックを含んでいる参照ピクチャリスト中のどこにＭＶＰを配置すべきかを（例えば、ビデオデコーダ３０などの）ビデオデコーダに通知するために使用され得る動きベクトル予測子インデックス（ｍｖｐ＿ｆｌａｇ）を決定し得る。動きベクトル予測ユニット４３はまた、現在ブロックと選択されたＭＶＰとの間のＭＶＤを決定し得る。ＭＶＰインデックス及びＭＶＤは、動きベクトルを再構成するために使用され得る。
【００７６】
幾つかの例では、動きベクトル予測ユニット４３は、代わりに、所謂「マージモード」を実施し得、マージモードでは、動きベクトル予測ユニット４３は、予測ビデオブロックの（動きベクトル、参照ピクチャインデックス、予測方向、又は他の情報などの）動き情報を現在ビデオブロックと「マージ」し得る。従って、マージモードに関して、現在ビデオブロックは、別の周知の（又は知り得る）ビデオブロックから動き情報を引き継ぐ。動きベクトル予測ユニット４３は、マージモードのための候補として空間的及び／又は時間的方向における幾つかの隣接ブロックを含むマージモード候補リストを構築し得る。動きベクトル予測ユニット４３は、マージング候補ブロックを含んでいる参照ピクチャリスト中のどこにマージングビデオブロックを配置すべきかを（例えば、ビデオデコーダ３０などの）ビデオデコーダに通知するために使用され得るインデックス値（例えば、ｍｅｒｇｅ＿ｉｄｘ）を決定し得る。
【００７７】
本開示の態様によれば、動きベクトル予測ユニット４３は、マルチビューコード化において、例えば、ＭＶＤを生成又はマージするために、動きベクトル予測子を識別し得る。例えば、動きベクトル予測ユニット４３は、現在ブロックについての動きベクトルを予測するために、現在ブロックとは異なるビューコンポーネント中のブロックから視差動きベクトルを識別し得る。他の例では、動きベクトル予測ユニット４３は、現在ブロックについての動きベクトルを予測するために、現在ブロックとは異なるビューコンポーネント中のブロックから時間動きベクトルを識別し得る。
【００７８】
視差動きベクトル予測に関して、動きベクトル予測ユニット４３は、現在コード化されているビデオブロック（「現在ブロック」と呼ぶ）についての動きベクトルを予測するために、候補ブロックから視差動きベクトル候補を識別し得る。現在ブロックは、候補ブロックと同じピクチャ中にあり得（例えば、候補ブロックに空間的に隣接する）、又は候補ブロックと同じビュー内の別のピクチャ中にあり得る。幾つかの例では、動きベクトル予測ユニット４３は、現在ブロックについての動きベクトルとは異なるビュー中の参照ピクチャを指す動きベクトル予測子を識別し得る。そのような場合、本開示の技法によれば、動きベクトル予測ユニット４３は、２つのビュー（例えば、動きベクトル予測子によって指されたビューと現在動きベクトルによって指されたビューとの）間のカメラ位置の差に基づいて、動きベクトル予測子を基準化し得る。例えば、動きベクトル予測ユニット４３は、２つのビュー間の差に従って視差動きベクトル予測子を基準化し得る。幾つかの例では、２つのビュー間の差は、ビューに関連するビュー識別子（ｖｉｅｗ＿ｉｄ）間の差によって表され得る。
【００７９】
時間動きベクトル予測に関して、動きベクトル予測ユニット４３は、現在ブロックについての動きベクトルを予測するために、現在ブロックとは異なるビュー中の候補ブロックから時間動きベクトル候補を識別し得る。例えば、動きベクトル予測ユニット４３は、第１のビューの別の時間位置におけるピクチャ中のブロックを指す、第１のビュー中の時間動きベクトル予測子候補を識別し得る。本開示の態様によれば、動きベクトル予測ユニット４３は、識別された時間動きベクトル予測子候補を使用して第２の異なるビュー中の現在ブロックに関連する動きベクトルを予測し得る。（動きベクトル予測子候補を含む）候補ブロック及び現在ブロックは、同一位置とされ得る。しかしながら、２つのビュー間の視差により、候補ブロックの相対位置が現在ブロックからオフセットされることがある。
【００８０】
本開示の態様によれば、動きベクトル予測ユニット４３は、ＭＶＰインデックス（ｍｖｐ＿ｆｌａｇ）及びＭＶＤを生成し得るか、又はマージインデックス（ｍｅｒｇｅ＿ｉｄｘ）を生成し得る。例えば、動きベクトル予測ユニット４３は、ＭＶＰ又はマージ候補のリストを生成し得る。本開示の態様によれば、ＭＶＰ及び／又はマージ候補は、現在復号されているビデオブロックとは異なるビュー中にある１つ以上のビデオブロックを含む。
【００８１】
動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトル及び／又は動きベクトル予測ユニット４３からの情報に基づいて、予測ブロックを取り込むこと又は生成することを含み得る。この場合も、動き推定ユニット４２と、動きベクトル予測ユニット４３と、動き補償ユニット４４とは、幾つかの例では、機能的に統合され得る。現在ビデオブロックのＰＵについての動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいてポイントする予測ブロックの位置を特定し得る。
【００８２】
加算器５０は、以下で説明するように、コード化されている現在ビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット４２はルーマ成分に対する動き推定を実行し、動き補償ユニット４４はクロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。また、モード選択ユニット４０は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するための、ビデオブロック及びビデオスライスに関連付けられたシンタックス要素を生成し得る。
【００８３】
イントラ予測ユニット４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。幾つかの例では、イントラ予測ユニット４６は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット４６（又は、幾つかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【００８４】
例えば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み（又は誤差）の量、及び符号化されたブロックを生成するために使用されたビットレート（即ち、ビット数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックにとって最良のレート歪み値を呈するかを決定するために、様々な符号化されたブロックについての歪み及びレートから比を計算し得る。
【００８５】
ブロックのためにイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピーコード化ユニット５６に与え得る。エントロピーコード化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、送信されたビットストリーム中に構成データを含み得、そのデータは複数のイントラ予測モードインデックステーブル及び複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックのコンテキストを符号化する定義と、コンテキストの各々のために使用すべき最優勢イントラ予測モード、イントラ予測モードインデックステーブル、及び変更されたイントラ予測モードインデックステーブルの指示とを含み得る。
【００８６】
ビデオエンコーダ２０は、コード化されている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つ以上の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）又は概念的に同様の変換など、変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、概念的にＤＣＴと同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報を画素値領域から周波数領域などの変換領域に変換し得る。
【００８７】
変換処理ユニット５２は、量子化ユニット５４に得られた変換係数を送り得る。量子化ユニット５４は、ビットレートを更に低減するために変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。幾つかの例では、量子化ユニット５４は、次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００８８】
量子化の後、エントロピーコード化ユニット５６が量子化変換係数をエントロピーコード化する。例えば、エントロピーコード化ユニット５６は、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コード化、又は別のエントロピーコード化技法を実行し得る。コンテキストベースのエントロピーコード化の場合、コンテキストは、隣接するブロックに基づき得る。エントロピーコード化ユニット５６によるエントロピーコード化の後、符号化されたビットストリームは、別の機器（例えば、ビデオデコーダ３０）に送信されるか、あるいは後の送信又は検索のためにアーカイブされ得る。
【００８９】
逆量子化ユニット５８及び逆変換ユニット６０は、それぞれ逆量子化及び逆変換を適用して、例えば参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照ピクチャメモリ６４のピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つ以上の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のピクチャ中のブロックをインターコード化するために動き推定ユニット４２及び動き補償ユニット４４によって参照ブロックとして使用され得る。
【００９０】
図３は、マルチビューコード化において動きベクトルを予測するための本開示で説明する技法を実施し得る例示的なビデオデコーダ３０を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測ユニット８１と、逆量子化ユニット８６と、逆変換ユニット８８と、加算器９０と、参照ピクチャメモリ９２とを含む。予測ユニット８１は、動き補償ユニット８２と、イントラ予測ユニット８４とを含む。
【００９１】
復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、及び他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測ユニット８１に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベル及び／又はビデオブロックレベルでシンタックス要素を受信し得る。
【００９２】
例えば、背景として、ビデオデコーダ３０は、ネットワークを介した、所謂「ネットワークアブストラクションレイヤユニット（network abstraction layer unit）」又はＮＡＬユニットへの送信のために圧縮された圧縮ビデオデータを受信し得る。各ＮＡＬユニットは、ＮＡＬユニットに記憶されるデータのタイプを識別するヘッダを含み得る。一般にＮＡＬユニットに記憶されるデータの２つのタイプがある。ＮＡＬユニットに記憶されるデータの第１のタイプはビデオコード化レイヤ（ＶＣＬ）データであり、これは圧縮ビデオデータを含む。ＮＡＬユニットに記憶されるデータの第２のタイプは非ＶＣＬデータと呼ばれ、これは、多数のＮＡＬユニットに共通のヘッダデータを定義するパラメータセットなどの追加情報、及び補足エンハンスメント情報（ＳＥＩ）を含む。
【００９３】
例えば、パラメータセットは、（例えば、シーケンスパラメータセット（ＳＰＳ）中の）シーケンスレベルヘッダ情報と、（例えば、ピクチャパラメータセット（ＰＰＳ）中の）まれに変化するピクチャレベルヘッダ情報とを含み得る。パラメータセット中に含まれている、まれに変化する情報は、シーケンス又はピクチャごとに繰り返される必要がなく、それによりコード化効率が改善される。更に、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、それにより誤り耐性のための冗長送信の必要が回避される。
【００９４】
ビデオスライスがイントラコード化された（Ｉ）スライスとしてコード化されるとき、予測ユニット８１のイントラ予測ユニット８４は、信号伝達されたイントラ予測モードと、現在ピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックについての予測データを生成し得る。ピクチャがインターコード化された（即ちＢ、Ｐ又はＧＰＢ）スライスとしてコード化されるとき、予測ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信した動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照ピクチャリスト、リスト０及びリスト１を構成し得る。
【００９５】
動き補償ユニット８２は、動きベクトルと他のシンタックス要素とを解析することによって現在ビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。例えば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコード化するために使用される予測モード（例えば、イントラ又はインター予測）、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）、スライスのための参照ピクチャリストの１つ又は複数についての構成情報、スライスのインター符号化されたビデオブロックごとの動きベクトル、スライスのインターコード化されたビデオブロックごとのインター予測状況、及び現在ビデオスライスにおけるビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素の幾つかを使用する。幾つかの例では、動き補償ユニット８２は、動きベクトル予測ユニット８３からいくらかの動き情報を受信し得る。
【００９６】
本開示の態様によれば、動きベクトル予測ユニット８３は、現在ブロックのための動き情報を取り出すべき場所を示す予測データを受信し得る。例えば、動きベクトル予測ユニット８３は、ＭＶＰインデックス（ｍｖｐ＿ｆｌａｇ）、ＭＶＤ、マージフラグ（ｍｅｒｇｅ＿ｆｌａｇ）、及び／又はマージインデックス（ｍｅｒｇｅ＿ｉｄｘ）などの動きベクトル予測情報を受信し、そのような情報を使用して、現在ブロックを予測するために使用される動き情報を識別し得る。即ち、ビデオエンコーダ２０に関して上述したように、本開示の態様によれば、動きベクトル予測ユニット８３は、ＭＶＰインデックス（ｍｖｐ＿ｆｌａｇ）及びＭＶＤを受信し得、そのような情報を使用して、現在ブロックを予測するために使用される動きベクトルを決定し得る。動きベクトル予測ユニット８３は、ＭＶＰ又はマージ候補のリストを生成し得る。本開示の態様によれば、ＭＶＰ及び／又はマージ候補は、現在復号されているビデオブロックとは異なるビュー中にある１つ以上のビデオブロックを含み得る。
【００９７】
動きベクトル予測ユニット８３は、ＭＶＰ又はマージインデックスを使用して、現在ブロックの動きベクトルを予測するために使用される動き情報を識別し得る。即ち、例えば、動きベクトル予測ユニット８３は、ＭＶＰインデックス（ｍｖｐ＿ｆｌａｇ）を使用して参照ピクチャのリストからＭＶＰを識別し得る。動きベクトル予測ユニット８３は、現在ブロックについての動きベクトルを決定するために、識別されたＭＶＰを受信したＭＶＤと組み合わせ得る。他の例では、動きベクトル予測ユニット８３は、現在ブロックについての動き情報を決定するために、マージインデックス（ｍｅｒｇｅ＿ｉｄｘ）を使用して参照ピクチャのリストからマージ候補を識別し得る。いずれの場合も、現在ブロックについての動き情報を決定した後に、動きベクトル予測ユニット８３は、現在ブロックのための予測ブロックを生成し得る。
【００９８】
本開示の態様によれば、動きベクトル予測ユニット８３は、マルチビューコード化において、動きベクトル予測子を決定し得る。例えば、動きベクトル予測ユニット８３は、現在ブロックとは異なるビューコンポーネント中のブロックから視差動きベクトルを指定する情報を受信し得、その情報は、現在ブロックについての動きベクトルを予測するために使用される。他の例では、動きベクトル予測ユニット８３は、現在ブロックとは異なるビューコンポーネント中のブロックから時間動きベクトルを識別する情報を受信し得、その情報は現在ブロックについての動きベクトルを予測するために使用される。
【００９９】
視差動きベクトル予測に関して、動きベクトル予測ユニット８３は、候補ブロックから現在ブロックについての視差動きベクトルを予測し得る。候補ブロックは、（例えば、候補ブロックに空間的に隣接する）現在ブロックと同じピクチャ中にあり得、又は現在ブロックと同じビュー内の別のピクチャ中にあり得る。候補ブロックはまた、異なるビューのピクチャ中にあるが、現在ブロックと同じタイムインスタンス中にあり得る。
【０１００】
例えば、ＭＶＰ又はマージモードのいずれかに関して、予測されるべき現在ブロックの視差動きベクトル「Ａ」のターゲットピクチャ及び参照ピクチャは知られている（以前に決定された）。説明のために、候補ブロックからの動きベクトルは「Ｂ」であると仮定する。本開示の態様によれば、動きベクトルＢが視差動きベクトルでない場合、動きベクトル予測ユニット８３は、候補ブロックを利用不可能である（例えば、動きベクトルＡを予測するために利用可能でない）と見なし得る。即ち、動きベクトル予測ユニット８３は、動きベクトル予測のために候補ブロックを使用する能力を無効化し得る。
【０１０１】
動きベクトルＢが視差動きベクトルであり、動きベクトルＢの参照ピクチャが視差動きベクトルＡの参照ピクチャのビューと同じビューに属し、動きベクトルＢのターゲットピクチャが視差動きベクトルＡのターゲットピクチャと同じビューに属する場合、動きベクトル予測ユニット８３は、ベクトルＡの候補予測子として直接動きベクトルＢを使用し得る。そうでない場合、動きベクトル予測ユニット８３は、視差動きベクトルＢが動きベクトルＡの候補予測子として使用され得る前に視差動きベクトルＢを基準化し得る。そのような場合、本開示の技法によれば、動きベクトル予測ユニット８３は、動きベクトルＡのビュー距離と動きベクトルＢのビュー距離とに基づいて視差動きベクトルを基準化し得る。例えば、動きベクトル予測ユニット８３は、動きベクトルＢのビュー距離で除算された動きベクトルＡのビュー距離に等しい基準化ファクタによって、視差動きベクトルＢを基準化し得る。幾つかの例では、動きベクトル予測ユニット８３は、参照ピクチャ及びターゲットピクチャのビュー識別子を使用してそのような基準化を実行し得る。
【０１０２】
時間動きベクトル予測に関して、動きベクトル予測ユニット８３は、現在ブロックのビューとは異なるビュー中の候補ブロックから現在ブロックについての時間動きベクトルを予測し得る。例えば、動きベクトル予測ユニット８３は、第１のビュー中にターゲットピクチャを有する時間動きベクトル予測子候補を識別し、第１のビューの別の時間位置における参照ピクチャ中のブロックを指し得る。本開示の態様によれば、動きベクトル予測ユニット８３は、識別された時間動きベクトル予測子候補を使用して第２の異なるビュー中の現在ブロックに関連する動きベクトルを予測し得る。
【０１０３】
例えば、ＭＶＰ又はマージモードのいずれかに関して、予測されるべき現在ブロックの時間動きベクトル「Ａ」のターゲットピクチャ及び参照ピクチャは知られている（以前に決定された）。説明のために、候補ブロックからの動きベクトルは「Ｂ」であると仮定する。本開示の態様によれば、候補ブロックからの動きベクトルＢが時間動きベクトルでない場合、動きベクトル予測ユニット８３は、候補ブロックを利用不可能である（例えば、動きベクトルＡを予測するために利用可能でない）と見なし得る。即ち、幾つかの例では、動きベクトル予測ユニット８３は、動きベクトル予測のために候補ブロックを使用する能力を無効化し得る。
【０１０４】
動きベクトルＢが時間動きベクトルであり、動きベクトルＢの参照ピクチャのＰＯＣが動きベクトルＡの参照ピクチャと同じであり、動きベクトルＢのターゲットピクチャのＰＯＣが動きベクトルＢのターゲットピクチャと同じである場合、動きベクトル予測ユニット８３は、動きベクトルＡの候補予測子として直接動きベクトルＢを使用し得る。そうでない場合、動きベクトル予測ユニット８３は、時間距離に基づいて時間動きベクトルＢを基準化し得る。（動きベクトル予測子候補を含む）候補ブロックと、現在ブロックとは、異なるビュー中にコロケートされ得る。しかしながら、２つのビュー間の視差により、候補ブロックの相対位置が現在ブロックからオフセットされることがある。
【０１０５】
逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、各ビデオブロックについてビデオエンコーダ２０によって計算される量子化パラメータを使用して量子化の程度を決定し、同様に、適用すべき逆量子化の程度を決定することを含み得る。
【０１０６】
逆変換ユニット８８は、画素領域において残差ブロックを生成するために、逆変換、例えば逆ＤＣＴ、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。本開示の態様によれば、逆変換ユニット８８は、変換が残差データに適用された方法を決定し得る。即ち、例えば、逆変換ユニット８８は、変換（例えば、ＤＣＴ、整数変換、ウェーブレット変換、又は１つ以上の他の変換）が、受信したビデオデータのブロックに関連する残差ルーマサンプルと残差クロマサンプルとに適用された方法を表すＲＱＴを決定し得る。
【０１０７】
動き補償ユニット８２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つ以上の構成要素を表す。必要に応じて、ブロック歪み（blockiness artifacts）を除去するために、デブロッキングフィルタを適用して復号ブロックをフィルタ処理し得る。画素遷移を平滑化するために、又は場合によってはビデオ品質を改善するために、他のループフィルタが（コード化ループ中又はコード化ループ後のいずれかで）使用され得る。次いで、所与のピクチャ中の復号されたビデオブロックは、その後の動き補償に使用される参照ピクチャを記憶する参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１の表示装置３２などの表示装置上での後の表示のための、復号されたビデオを記憶する。
【０１０８】
図４は、例示的なＭＶＣ予測パターンを示す概念図である。図４の例では、８つのビューが示され、各ビューについて１２個の時間位置が示されている。概して、図４中の各行はビューに対応し、各列は時間位置を示す。ビューの各々は、他のビューに対する相対的なカメラ位置を示すために使用され得るビュー識別子（「ｖｉｅｗ＿ｉｄ」）を使用して識別され得る。図４に示す例では、ビューＩＤは「Ｓ０」〜「Ｓ７」として示されているが、数字のビューＩＤも使用され得る。更に、時間位置の各々は、ピクチャの表示順序を示すピクチャ順序カウント（ＰＯＣ）値を使用して識別され得る。図４に示す例では、ＰＯＣ値は「Ｔ０」〜「Ｔ１１」として示されている。
【０１０９】
ＭＶＣは、Ｈ．２６４／ＡＶＣデコーダによって復号可能である所謂ベースビューを有し、ステレオビューペアがＭＶＣによってサポートされ得るが、ＭＶＣは、３Ｄビデオ入力として３つ以上のビューをサポートし得る。従って、ＭＶＣデコーダを有するクライアントのレンダラ（renderer）は、複数のビューを用いて３Ｄビデオコンテンツを予想し得る。
【０１１０】
図４中のピクチャは、対応するピクチャがイントラコード化される（即ち、Ｉフレームである）のか、又は一方向に（即ち、Ｐフレームとして）インターコード化されるのか、複数の方向に（即ち、Ｂフレームとして）インターコード化されるのかを指定する、文字を含む影付きブロックを使用して示される。概して、予測は矢印によって示され、ここで矢印の終点のピクチャは、予測参照のために矢印の始点の被写体を使用する。例えば、時間位置Ｔ０におけるビューＳ２のＰフレームは、時間位置Ｔ０におけるビューＳ０のＩフレームから予測される。
【０１１１】
シングルビュービデオ符号化の場合と同様に、マルチビュービデオシーケンスのピクチャは、異なる時間位置におけるピクチャに関して予測符号化され得る。例えば、時間位置Ｔ１におけるビューＳ０のｂフレームは、時間位置Ｔ０におけるビューＳ０のＩフレームからそのｂフレームに向けられた矢印を有し、その矢印は、ｂフレームがＩフレームから予測されることを示す。しかしながら、更に、マルチビュービデオ符号化のコンテキストにおいて、ピクチャはビュー間予測され得る。即ち、ビューコンポーネントは、参照のために他のビュー中のビューコンポーネントを使用することができる。ＭＶＣでは、例えば、別のビュー中のビューコンポーネントがインター予測参照であるかのように、ビュー間予測が実現される。潜在的なビュー間参照は、シーケンスパラメータセット（ＳＰＳ）ＭＶＣ拡張において信号伝達され得、インター予測又はビュー間予測参照のフレキシブルな順序付けを可能にする参照ピクチャリスト構成プロセスによって変更され得る。
【０１１２】
図４は、ビュー間予測の様々な例を与える。図４の例では、ビューＳ１のピクチャは、ビューＳ１の異なる時間位置におけるピクチャから予測されるものとして、及び同じ時間位置におけるビューＳ０及びＳ２のピクチャのうちのピクチャからビュー間予測されるものとして示されている。例えば、時間位置Ｔ１におけるビューＳ１のｂフレームは、時間位置Ｔ０及びＴ２におけるビューＳ１のＢフレームの各々、並びに時間位置Ｔ１におけるビューＳ０及びＳ２のｂフレームから予測される。
【０１１３】
図４の例では、大文字の「Ｂ」及び小文字の「ｂ」は、異なる符号化方法ではなく、ピクチャ間の異なる階層関係を示すものとする。概して、大文字の「Ｂ」フレームは、小文字の「ｂ」フレームよりも予測階層が比較的高い。図４はまた、異なるレベルの陰影を使用して予測階層の変形体を示し、より大きい量の陰影の（即ち、比較的より暗い）ピクチャは、より少ない陰影を有する（即ち、比較的より明るい）それらのピクチャよりも予測階層が高い。例えば、図４中の全てのＩフレームは、完全陰影を用いて示されるが、Ｐフレームは、いくぶんより明るい陰影を有し、Ｂフレーム（及び小文字のｂフレーム）は、互いに様々なレベルの陰影を有するが、Ｐフレーム及びＩフレームの陰影よりも常に明るい。
【０１１４】
概して、階層が比較的高いそれらのピクチャが、階層が比較的低いピクチャの復号中に参照ピクチャとして使用され得るように、予測階層が比較的高いピクチャは、階層が比較的低いピクチャを復号する前に復号されるべきであるという点で、予測階層はビュー順序インデックスに関係する。ビュー順序インデックスは、アクセスユニット中のビューコンポーネントの復号順序を示すインデックスである。ビュー順序インデックスは、ＳＰＳなど、パラメータセット中で暗示され得ない。
【０１１５】
このようにして、参照ピクチャとして使用されるピクチャは、その参照ピクチャを参照して符号化されたピクチャを復号する前に復号され得る。ビュー順序インデックスは、アクセスユニット中のビューコンポーネントの復号順序を示すインデックスである。各ビュー順序インデックスｉについて、対応するｖｉｅｗ＿ｉｄが信号伝達される。ビューコンポーネントの復号は、ビュー順序インデックスの昇順に従う。全てのビューが提示された場合、ビュー順序インデックスのセットは、０からビューの全数よりも１つ少ない数までの連続的な順序付きセットを備える。
【０１１６】
ＭＶＣでは、全ビットストリームのサブセットが抽出されて、依然としてＭＶＣに準拠するサブビットストリームが形成され得る。例えば、サーバによって与えられるサービス、１つ以上のクライアントのデコーダの容量、サポート、及び能力、及び／又は１つ以上のクライアントの選好に基づいて、特定の適用例が必要とし得る、多くの可能なサブビットストリームがある。例えば、あるクライアントが３つのビューのみを必要とし得、２つのシナリオがあり得る。一例では、あるクライアントは、滑らかな視聴体験（viewing experience）を必要とし、ｖｉｅｗ＿ｉｄ値Ｓ０、Ｓ１、及びＳ２のビューを選好し得、別の他のクライアントは、ビュースケーラビリティを必要とし、ｖｉｅｗ＿ｉｄ値Ｓ０、Ｓ２、及びＳ４のビューを選好し得る。これらのサブビットストリームの両方が、独立したＭＶＣビットストリームとして復号され、同時にサポートされ得ることに留意されたい。
【０１１７】
図５は、（マージモードを含む）動きベクトル予測を実行するときに潜在的な動きベクトル予測子候補を示すブロック図である。即ち、現在コード化されているブロック１００について、隣接ブロックＡ0、Ａ1、Ｂ0、Ｂ1、及びＢ2からの動き情報（例えば、水平成分と垂直成分とを備える動きベクトル、動きベクトルインデックス、予測方向、又は他の情報）が、ブロック１００についての動き情報を予測するために使用され得る。更に、コロケートブロックＣＯＬに関連する動き情報も、ブロック１００についての動き情報を予測するために使用され得る。隣接ブロックＡ0、Ａ1、Ｂ0、Ｂ1、Ｂ2及び同一位置のブロックＣＯＬを、動きベクトル予測のコンテキストにおいて、概して、以下動きベクトル予測子候補と呼ぶ。
【０１１８】
幾つかの例では、図５に示す動きベクトル予測子候補は、動きベクトル予測を実行する（例えば、ＭＶＤを生成するかマージモードを実行する）ときに識別され得る。他の例では、マージモード及び動きベクトル予測を実行するときに、異なる候補が識別され得る。即ち、ビデオコーダは、動きベクトル予測を実行するためのものとは異なる、マージモードを実行するための動きベクトル予測子候補のセットを識別し得る。
【０１１９】
マージモードを実行するために、一例では、ビデオエンコーダ（ビデオエンコーダ２０など）は、初めに、動きベクトル予測子候補からのどの動きベクトルがブロック１００とマージするために利用可能であるかを決定し得る。即ち、幾つかの事例では、例えば、動きベクトル予測子候補がイントラコード化されているか、コード化されていないか、又は存在しない（例えば、動きベクトル予測子候補のうちの１つ以上が別のピクチャ又はスライス中にある）ために、動きベクトル予測子候補のうちの１つ以上からの動き情報が利用不可能であり得る。ビデオエンコーダ２０は、利用可能な動きベクトル予測子候補ブロックの各々を含む動きベクトル予測子候補リストを構成し得る。
【０１２０】
候補リストを構成した後に、ビデオエンコーダ２０は、現在ブロック１００についての動きベクトルとして使用されるべき動きベクトルを候補リストから選択し得る。幾つかの例では、ビデオエンコーダ２０は、ブロック１００についての動きベクトルに最もよく一致する動きベクトルを候補リストから選択し得る。即ち、ビデオエンコーダ２０は、レート歪み分析に従って動きベクトルを候補リストから選択し得る。
【０１２１】
ビデオエンコーダ２０は、ブロック１００がマージモードを使用して符号化されるという指示を与え得る。例えば、ビデオエンコーダ２０は、ブロック１００についての動きベクトルがマージモードを使用して予測されることを示すフラグ又は他のシンタックス要素を設定し得る。一例では、ビデオエンコーダ２０は、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］を設定することによって、ブロック１００についてのインター予測パラメータが動きベクトル予測子候補から推測されることを示し得る。この例では、アレイインデックスｘ０、ｙ０は、ピクチャ（又はスライス）の左上ルーマサンプルに対する予測ブロックの左上ルーマサンプルの位置（ｘ０，ｙ０）を指定し得る。
【０１２２】
更に、幾つかの例では、ビデオエンコーダ２０は、ブロック１００がそれの動きベクトルをそこから継承するマージング候補を識別するインデックスを与え得る。例えば、ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］は、マージング候補リスト中のピクチャを識別するマージング候補インデックスを指定し得、ｘ０、ｙ０は、ピクチャ（又はスライス）の左上ルーマサンプルに対する予測ブロックの左上ルーマサンプルの位置（ｘ０，ｙ０）を指定する。
【０１２３】
（ビデオデコーダ３０などの）ビデオデコーダは、ブロック１００を復号するときに適切なマージ候補を識別するために同様のステップを実行し得る。例えば、ビデオデコーダ３０は、ブロック１００がマージモードを使用して予測されるという指示を受信し得る。一例では、ビデオデコーダ３０は、ｍｅｒｇｅ＿ｆｌａｇ［ｘ０］［ｙ０］を受信し得、（ｘ０，ｙ０）は、ピクチャ（又はスライス）の左上ルーマサンプルに対する予測ブロックの左上ルーマサンプルの位置を指定する。
【０１２４】
更に、ビデオデコーダ３０はマージ候補リストを構成し得る。例えば、ビデオデコーダ３０は、動きベクトル予測のために利用可能なビデオブロックを示す１つ以上のシンタックス要素（例えば、フラグ）を受信し得る。ビデオデコーダ３０は、受信したフラグに基づいてマージ候補リストを構成し得る。幾つかの例によれば、ビデオデコーダ３０は、以下のシーケンスに従ってマージ候補リスト（例えば、ｍｅｒｇｅＣａｎｄＬｉｓｔ）を構成し得る。
【０１２５】
１  ａｖａｉｌａｂｌｅＦｌａｇＡ1が１に等しい場合、Ａ1
２  ａｖａｉｌａｂｌｅＦｌａｇＢ1が１に等しい場合、Ｂ1
３  ａｖａｉｌａｂｌｅＦｌａｇＢ0が１に等しい場合、Ｂ0
４  ａｖａｉｌａｂｌｅＦｌａｇＡ0が１に等しい場合、Ａ0
５  ａｖａｉｌａｂｌｅＦｌａｇＢ2が１に等しい場合、Ｂ2
６  ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１に等しい場合、Ｃｏｌ
幾つかのマージング候補が同じ動きベクトルと同じ参照インデックスとを有する場合、マージング候補はリストから削除され得る。
【０１２６】
ビデオデコーダ３０は、受信したインデックスに従って適切なマージ候補を識別し得る。例えば、ビデオデコーダ３０は、ブロック１００がそれの動きベクトルをそこから引き継ぐマージング候補を識別するインデックスを受信し得る。一例では、ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］は、マージング候補リスト中のピクチャを識別するマージング候補インデックスを指定し得、ｘ０、ｙ０は、ピクチャ（又はスライス）の左上ルーマサンプルに対する予測ブロックの左上ルーマサンプルの位置（ｘ０，ｙ０）を指定する。
【０１２７】
幾つかの例では、ビデオデコーダ３０は、ブロック１００に候補ブロックの動き情報をマージする前に、動きベクトル予測子を基準化し得る。例えば、時間動きベクトル予測子に関して、動きベクトル予測子が、ブロック１００によって参照された予測ブロックとは異なる時間位置にある参照ピクチャ中の予測ブロックを指す場合（例えば、ブロック１００についての実際の動きベクトル）、ビデオデコーダ３０は、動きベクトル予測子を基準化し得る。例えば、ビデオデコーダ３０は、動きベクトル予測子がブロック１００のための参照ピクチャと同じ参照ピクチャを指すように動きベクトル予測子を基準化し得る。幾つかの例では、ビデオデコーダ３０は、ピクチャ順序カウント（ＰＯＣ）値における差に従って動きベクトル予測子を基準化し得る。即ち、ビデオデコーダ３０は、候補ブロックと動きベクトル予測子によって指される予測ブロックとの間のＰＯＣ距離と、ブロック１００と（例えば、ブロック１００についての実際の動きベクトルによって指される）現在参照ピクチャとの間のＰＯＣ距離との差に基づいて、動きベクトル予測子を基準化し得る。適切な動きベクトル予測子を選択した後に、ビデオデコーダ３０は、動きベクトル予測子に関連する動き情報をブロック１００についての動き情報にマージし得る。
【０１２８】
ビデオデータの現在ブロックについての動きベクトル予測を実行するために、同様のプロセスがビデオエンコーダ２０及びビデオデコーダ３０によって実施され得る。例えば、ビデオエンコーダ２０は、初めに、動きベクトル予測子候補からのどの動きベクトルがＭＶＰとして使用されるために利用可能であるかを決定し得る。例えば、動きベクトル予測子候補がイントラコード化されているか、まだコード化されていないか、存在しないために、動きベクトル予測子候補のうちの１つ以上からの動き情報が利用不可能であり得る。
【０１２９】
動きベクトル予測子候補のうちのどれが利用可能であるかを決定するために、ビデオエンコーダ２０は、次に所定の優先度ベースの方式に従って動きベクトル予測子候補の各々を分析し得る。例えば、各動きベクトル予測子候補について、ビデオエンコーダ２０は、動きベクトル予測子がブロック１００についての実際の動きベクトルと同じ参照ピクチャを指すかどうかを決定し得る。動きベクトル予測子が同じ参照ピクチャを指す場合、ビデオエンコーダ２０は、ＭＶＰ候補リストに動きベクトル予測子候補を追加し得る。動きベクトル予測子が同じ参照ピクチャを指さない場合、動きベクトル予測子は、ＭＶＰ候補リストに追加される前に基準化され得る（例えば、上記で説明したように、ＰＯＣ距離に基づいて基準化され得る）。
【０１３０】
同一位置のブロックＣＯＬに関して、同一位置のブロックが２つ以上の動きベクトル予測子を含む（例えば、ＣＯＬがＢフレームとして予測される）場合、ビデオエンコーダ２０は、（ブロック１００のための）現在リストと現在参照ピクチャとに従って時間動きベクトル予測子のうちの１つを選択し得る。次いで、ビデオエンコーダ２０は、選択された時間動きベクトル予測子を動きベクトル予測子候補リストに追加し得る。
【０１３１】
ビデオエンコーダ２０は、ｅｎａｂｌｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｆｌａｇを設定することによって、１つ以上の動きベクトル予測子が利用可能であることを信号伝達し得る。候補リストを構築した後に、ビデオエンコーダ２０は、ブロック１００についての動きベクトル予測子として使用されるべき動きベクトルを候補から選択し得る。幾つかの例では、ビデオエンコーダ２０は、レート歪み分析に従って候補動きベクトルを選択し得る。
【０１３２】
ビデオエンコーダ２０は、候補リスト中のＭＶＰを識別するＭＶＰインデックス（ｍｖｐ＿ｆｌａｇ）を使用して、選択された動きベクトル予測子を信号伝達し得る。例えば、ビデオエンコーダ２０は、リスト０の動きベクトル予測子インデックスを指定するためにｍｖｐ＿ｌ０＿ｆｌａｇ［ｘ０］［ｙ０］を設定し得、ｘ０、ｙ０は、ピクチャの左上ルーマサンプルに対する候補ブロックの左上ルーマサンプルの位置（ｘ０，ｙ０）を指定する。別の例では、ビデオエンコーダ２０は、リスト１の動きベクトル予測子インデックスを指定するためにｍｖｐ＿ｌ１＿ｆｌａｇ［ｘ０］［ｙ０］を設定し得、ｘ０、ｙ０は、ピクチャの左上ルーマサンプルに対する候補ブロックの左上ルーマサンプルの位置（ｘ０，ｙ０）を指定する。更に別の例では、ビデオエンコーダ２０は、リストｃの動きベクトル予測子インデックスを指定するためにｍｖｐ＿ｌｃ＿ｆｌａｇ［ｘ０］［ｙ０］を設定し得、ｘ０、ｙ０は、ピクチャの左上ルーマサンプルに対する候補ブロックの左上ルーマサンプルの位置（ｘ０，ｙ０）を指定する。
【０１３３】
ビデオエンコーダ２０はまた、動きベクトル差分値（ＭＶＤ）を生成し得る。ＭＶＤは、選択された動きベクトル予測子とブロック１００についての実際の動きベクトルとの間の差を構成し得る。ビデオエンコーダ２０は、ＭＶＰインデックスを用いてＭＶＤを信号伝達し得る。
【０１３４】
ビデオデコーダ３０は、動きベクトル予測子を使用して、現在ブロックについての動きベクトルを決定するために同様の動作を実行し得る。例えば、ビデオデコーダ３０は、動きベクトル予測が１つ以上のピクチャのために使用可能であることを示す指示をパラメータセット（例えば、ピクチャパラメータセット（ＰＰＳ））中で受信し得る。即ち、一例では、ビデオデコーダ３０は、ＰＰＳ中でｅｎａｂｌｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｆｌａｇを受信し得る。特定のピクチャが、０に等しいｅｎａｂｌｅ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｆｌａｇを有するＰＰＳを参照するとき、参照ピクチャメモリ中の参照ピクチャは「時間動きベクトル予測のために未使用」としてマークされ得る。
【０１３５】
動きベクトル予測が実施される場合、ブロック１００を受信すると、ビデオデコーダ３０はＭＶＰ候補リストを構成し得る。ビデオデコーダ３０は、ビデオエンコーダ２０に関して上述した方式と同じ方式を使用してＭＶＰ候補リストを構成し得る。幾つかの事例では、ビデオデコーダ３０は、ビデオエンコーダ２０に関して上述したものと同様の動きベクトル基準化を実行し得る。例えば、動きベクトル予測子がブロック１００と同じ参照ピクチャを指さない場合、動きベクトル予測子は、ＭＶＰ候補リストに追加される前に基準化され得る（例えば、上記で説明したように、ＰＯＣ距離に基づいて基準化され得る）。ビデオデコーダ３０は、候補リスト中のＭＶＰを識別する受信したＭＶＰインデックス（ｍｖｐ＿ｆｌａｇ）を使用して、ブロック１００のための適切な動きベクトル予測子を識別し得る。次いで、ビデオデコーダ３０は、ＭＶＰと受信したＭＶＤとを使用してブロック１００についての動きベクトルを生成し得る。
【０１３６】
図５に、概して、シングルビューにおけるマージモードと動きベクトル予測とを示す。図５に示す動きベクトル予測子候補ブロックは単に例として与えたものにすぎず、より多い、より少ない、又は異なるブロックが動き情報を予測するために使用され得ることを理解されたい。本開示の態様によれば、以下で説明するように、マージモード及び動きベクトル予測はまた、（ＭＶＣにおいてなど）２つ以上のビューがコード化されるときに適用され得る。そのような場合、動きベクトル予測子及び予測ブロックは、ブロック１００とは異なるビュー中にあり得る。
【０１３７】
図６は、マルチビューコード化において動きベクトル予測子を生成及び基準化することを示す概念図である。例えば、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０又はビデオデコーダ３０など）は、現在ブロック１２６についての動きベクトル予測子１２４（ｍｖ’）を生成するために、視差動きベクトル予測子候補ブロック１２２（「候補ブロック」）からの視差動きベクトル１２０（ｍｖ）を基準化し得る。図６についてビデオデコーダ３０に関して説明するが、本開示の技法は、他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコード化ユニットなどを含む様々な他のビデオコーダによって行われ得ることを理解されたい。
【０１３８】
図６の例では、候補ブロック１２２は、ビューコンポーネント２（ｖｉｅｗ＿ｉｄ  ２）中で現在ブロック１２６に空間的に隣接する。候補ブロック１２２は、インター予測され、ビューコンポーネント０（ｖｉｅｗ＿ｉｄ  ０）中の予測ブロックを参照する（又は「指し示す」）動きベクトル１２０を含む。例えば、動きベクトル１２０は、ビュー２（ｖｉｅｗ＿ｉｄ  ２）中のターゲットピクチャと、ビュー０（ｖｉｅｗ＿ｉｄ  ０）中の参照ピクチャとを有する。現在ブロック１２６も、インター予測され、ビューコンポーネント１（ｖｉｅｗ＿ｉｄ  １）中の予測ブロックを指す実際の動きベクトル（図示せず）を含む。即ち、例えば、現在ブロック１２６についての実際の動きベクトルは、ビュー２（ｖｉｅｗ＿ｉｄ  ２）中のターゲットピクチャと、ビュー１（ｖｉｅｗ＿ｉｄ  １）中の参照ブロックとを有する。
【０１３９】
本開示の態様によれば、ビデオデコーダ３０は、動きベクトル１２０の基準化されたバージョンを使用して現在ブロック１２６についての動きベクトル予測子１２４を生成し得る。例えば、ビデオデコーダ３０は、動きベクトル１２０と現在ブロック１２６についての実際の動きベクトルとの間のビュー距離の差に基づいて動きベクトル１２０を基準化し得る。即ち、ビデオデコーダ３０は、候補ブロック１２２のための（参照ピクチャ中の）予測ブロックと、現在ブロック１２６のための（参照ピクチャ中の）予測ブロックとを撮影するために使用されたカメラのカメラ位置の差に基づいて動きベクトル１２０を基準化し得る。従って、ビデオデコーダ３０は、候補ブロック１２２についての動きベクトル１２０によって指し示されたビューコンポーネントと、現在ブロック１２６についての実際の動きベクトルによって指し示されたビューコンポーネントとの差に応じて、視差動きベクトル１２０（例えば、予測のために使用されている動きベクトル）を基準化し得る。
【０１４０】
一例では、ビデオデコーダ３０は、以下に示す式（１）に従って、現在ブロックについての基準化された動きベクトル予測子を生成し得る。
【数１】
0005805850.tif 000002
【０１４１】
式中、ＶｉｅｗＤｉｓｔａｎｃｅ（ｍｖ）は、動きベクトル１２０の参照ピクチャのビューＩＤ（例えば、ＶｉｅｗＩｄ（ＲｅｆＰｉｃ（ｍｖ））と、動きベクトル１２０のターゲットピクチャのビューＩＤ（例えば、ＶｉｅｗＩｄ（ＴａｒｇｅｔＰｉｃ（ｍｖ））との間の差に等しく、ＶｉｅｗＤｉｓｔａｎｃｅ（ｍｖ’）は、動きベクトル予測子１２４の参照ピクチャのビューＩＤ（例えば、ＶｉｅｗＩｄ（ＲｅｆＰｉｃ（ｍｖ’））と、動きベクトル予測子１２４のターゲットピクチャのビューＩＤ（例えば、ＶｉｅｗＩｄ（ＴａｒｇｅｔＰｉｃ（ｍｖ’））との間の差に等しい。従って、この例では、動きベクトル予測子１２４の参照ピクチャ、ＲｅｆＰｉｃ（ｍｖ’）は新しいターゲットビューに属し、動きベクトル予測子１２４のターゲットピクチャ、ＴａｒｇｅｔＰｉｃ（ｍｖ’）は現在ビューに属する。同様に、動きベクトル１２０の参照ピクチャ、ＲｅｆＰｉｃ（ｍｖ）は候補動きベクトルが指すビューに属し、動きベクトル１２０のターゲットピクチャ、ＴａｒｇｅｔＰｉｃ（ｍｖ）は現在ビューに属する。従って、ビデオデコーダ３０は、以下の式（２）に従って、基準化された動きベクトル予測子を生成し得る。
【数２】
0005805850.tif 000003
【０１４２】
式中、ｍｖ’は現在ブロックについての基準化された動きベクトル予測子を表し、ｍｖは候補ブロックについての動きベクトルを表し、ＶｉｅｗＩＤ（ＮｅｗＴａｒｇｅｔ）は現在ブロックについての実際の動きベクトルによって指されたビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は現在ブロックのビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃａｎｄｉｄａｔｅ）は候補ブロックのビューコンポーネントである。式（２）を図６の例に適用すると、ｍｖ’は現在ブロック１２６についての基準化された動きベクトル予測子を表し、ｍｖは動きベクトル１２０を表し、ＶｉｅｗＩＤ（ＮｅｗＴａｒｇｅｔ）は動きベクトル１２４によって指されたビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は現在ブロック１２６のビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃａｎｄｉｄａｔｅ）は候補ブロック１２２のビューコンポーネントである。従って、図４に示す例では、動きベクトル予測子１２４は、１／２倍に基準化された動きベクトル１２０である（例えば、
【数３】
0005805850.tif 000004
【０１４３】
）。即ち、ビデオデコーダ３０は、現在ブロック１２６についての動きベクトル予測子１２４を生成するために、動きベクトル１２０の水平変位成分と垂直変位成分の両方を１／２倍だけ基準化し得る。
【０１４４】
図６に関して説明する動きベクトル基準化は、マージすることと動きベクトル予測との両方のために実行され得る。即ち、例えば、ビデオデコーダ３０は、現在ブロック１２６についての動き情報に動きベクトル１２０をマージする前に動きベクトル１２０を基準化し得る。別の例では、ビデオデコーダ３０は、動きベクトル予測子１２４と現在ブロック１２６についての実際の動きベクトルとの間の差に応じて、動きベクトル差分値（ＭＶＤ）を計算する前に動きベクトル１２０を基準化し得る。
【０１４５】
図６の例に示すように、候補ブロック１２２と現在ブロック１２６とは同じビューコンポーネント中にあり得る。しかしながら、他の例では、図７及び図８に関してより詳細に説明するように、候補ブロックは、現在ブロックとは異なるビューコンポーネント中にあり得る。
【０１４６】
図７は、動きベクトル予測子を生成及び基準化することを示す別の概念図である。例えば、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０又はビデオデコーダ３０など）は、現在ブロック１３６（ｘ，ｙ）についての動きベクトル予測子１３４（ｍｖ’）を生成するために、視差動きベクトル予測子候補ブロック１３２（ｘ’，ｙ’）からの視差動きベクトル１３０（ｍｖ）を基準化し得、候補ブロック１３２は現在ブロック１３６とは異なるビューコンポーネントに属する。従って、図７に関して図示及び説明するプロセスは、概して、ビュー間視差動きベクトル予測と呼ばれることがある。図７についてビデオデコーダ３０に関して説明するが、本開示の技法は、他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコード化ユニットなどを含む様々な他のビデオコーダによって行われ得ることを理解されたい。
【０１４７】
図７に示す例では、候補ブロック１３２はビューコンポーネント１（ｖｉｅｗ＿ｉｄ  １）中にある。候補ブロック１３２は、インター予測され、ビューコンポーネント０（ｖｉｅｗ＿ｉｄ  ０）中の予測ブロックを指す動きベクトル１３０（ｍｖ）を含む。例えば、動きベクトル１３０は、ビュー１（ｖｉｅｗ＿ｉｄ  １）中のターゲットピクチャと、ビュー０（ｖｉｅｗ＿ｉｄ  ０）中の参照ピクチャとを有する。現在ブロック１３６は、候補ブロック１３２とコロケートされ、ビューコンポーネント２（ｖｉｅｗ＿ｉｄ  ２）中にある。以下でより詳細に説明するように、幾つかの例では、現在ブロック１３６は、第１の参照ビュー（ｖｉｅｗ＿ｉｄ  １）中のブロックを識別する実際の動きベクトル（図示せず）を含み得る。即ち、例えば、現在ブロック１３６についての実際の動きベクトルは、ビュー２（ｖｉｅｗ＿ｉｄ  ２）中のターゲットピクチャを有し、ビュー１（ｖｉｅｗ＿ｉｄ  １）中の参照ブロックを有し得る。他の例では、現在ブロックは、第２の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）中のブロックを識別する実際の動きベクトルを含み得る。即ち、例えば、現在ブロック１３６についての実際の動きベクトルは、ビュー２（ｖｉｅｗ＿ｉｄ  ２）中のターゲットピクチャを有し、ビュー０（ｖｉｅｗ＿ｉｄ  ０）中の参照ブロックを有し得る。従って、動きベクトル予測子１３４（ｍｖ’）は、第１の参照ビュー（ｖｉｅｗ＿ｉｄ  １）中のブロックを指し得る。別の例では、第２の動きベクトル予測子１３８（ｍｖ’’）は、第２の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）中のブロックを指し得る。
【０１４８】
幾つかの例では、第２の動きベクトル予測子１３８が動きベクトル予測のために利用可能でないことがある。例えば、第２の動きベクトル予測子１３８は、第２の参照ビュー中の予測ブロックが直接ビュー間予測のために利用可能である場合のみ生成され得る。第２の参照ビュー中の予測ブロックの利用可能性は、例えば、（シーケンスパラメータセット（ＳＰＳ）又はピクチャパラメータセット（ＰＰＳ）などの）パラメータセット又は現在ブロック１３６に関連するスライスヘッダ中で指定され得る。
【０１４９】
本開示の態様によれば、ビデオデコーダは、マージモードを使用して、又は動きベクトル予測を使用して、ビュー間視差動きベクトル予測を実行し得る。マージモードに関して、ビデオデコーダ３０は、初めに、現在ブロック１３６についての「ターゲットビュー」を選択し得る。概して、ターゲットビューは、現在ブロック１３６のための予測ブロックを含む。幾つかの例では、ターゲットビューは、（ｖｉｅｗ＿ｉｄ  １として図７に示す）第１の参照ビューであり得る。他の例では、ターゲットビューは、（ｖｉｅｗ＿ｉｄ  ０として図７に示す）第２の参照ビューであり得る。しかしながら、上述のように、幾つかの例では、ビュー間予測のために使用されるために第２の参照ビュー中の予測ブロックが利用可能である場合、第２の参照ビューはターゲットビューとしてのみ使用され得る。
【０１５０】
幾つかの例では、ビデオデコーダ３０は、第１の参照ビューをターゲットビューとして選択し得る。他の例では、ビデオデコーダ３０は、利用可能なとき、第２の参照ビューをターゲットビューとして選択し得る。ターゲットビューの選択は、例えば、予測ブロック及び／又は所定の選択アルゴリズムの利用可能性に基づいて決定され得る。現在ブロック１３６の参照インデックス（ｒｅｆ＿ｉｄｘ）は、現在ブロック１３６の参照ピクチャリストに追加されるターゲットビューの予測ブロックを含んでいるピクチャのインデックスに対応する。
【０１５１】
ターゲットビューを選択した後に、ビデオデコーダ３０は、候補ブロック１３２の位置を特定し得る。一例では、説明のために、現在ブロック１３６の左上ルーマサンプルが座標（ｘ，ｙ）のピクチャ（又はスライス）中にあると仮定する。ビデオデコーダ３０は、候補ブロック１３２についてのビューコンポーネント１中の同一位置の座標を決定し得る。更に、幾つかの例では、ビデオデコーダ３０は、現在ブロック１３６のビューコンポーネント（ビューコンポーネント２）と候補ブロック１３２のビューコンポーネント（ビューコンポーネント１）との間の視差に基づいて、座標を調整し得る。従って、ビデオデコーダ３０は、候補ブロック１３２の座標を（ｘ’，ｙ’）として決定し得、（ｘ’，ｙ’）＝（ｘ，ｙ）＋視差である。幾つかの例では、視差は、ＳＰＳ、ＰＰＳ、スライスヘッダ、ＣＵシンタックス、及び／又はＰＵシンタックス中に含まれ及び／又は計算され得る。
【０１５２】
候補ブロック１３２の位置を特定した後に、ビデオデコーダ３０は、動きベクトル１３０と現在ブロック１３６についての実際の動きベクトルとの間のビュー距離の差に基づいて、候補ブロック１３２についての動きベクトル１３０を基準化し得る。即ち、ビデオデコーダ３０は、候補ブロック１３２のための予測ブロックと、現在ブロック１３６のための予測ブロック（例えば、ターゲットビュー中の予測ブロック）とを撮影するために使用されたカメラのカメラ位置の差に基づいて、動きベクトル１３０を基準化し得る。即ち、ビデオデコーダ３０は、候補ブロック１３２についての動きベクトル１３０によって指されたビューコンポーネントと、ターゲットビューのビューコンポーネントとの間の差に応じて、視差動きベクトル１３０（例えば、予測のために使用されている動きベクトル）を基準化し得る。
【０１５３】
一例では、ビデオデコーダ３０は、以下に示す式（３）に従って、現在ブロックについての基準化された動きベクトル予測子を生成し得る。
【数４】
0005805850.tif 000005
【０１５４】
式中、ｍｖ’は現在ブロックについての基準化された動きベクトル予測子を表し、ｍｖは候補ブロックについての動きベクトルを表し、ＶｉｅｗＩＤ（Ｔａｒｇｅｔ）は選択されたターゲットビューのビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は現在ブロックのビューコンポーネントであり、ＶｉｅｗＩＤ（ＳｅｃｏｎｄＲｅｆｅｒｅｎｃｅ）は（利用可能な場合）第２の参照ビューのビューコンポーネントであり、ＶｉｅｗＩＤ（Ｒｅｆｅｒｅｎｃｅ）は第１の参照ビューのビューコンポーネントである。幾つかの例では、ＶｉｅｗＩＤ（Ｔａｒｇｅｔ）−ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は、動きベクトル予測子１３４のビュー距離と呼ばれることがあり、ＶｉｅｗＩＤ（ＳｅｃｏｎｄＲｅｆｅｒｅｎｃｅ）−ＶｉｅｗＩＤ（Ｒｅｆｅｒｅｎｃｅ）は、動きベクトル１３０のビュー距離と呼ばれることがある。即ち、動きベクトル予測子１３４のビュー距離は、動きベクトル予測子１３４のターゲットピクチャ（ｖｉｅｗ＿ｉｄ  １）と参照ピクチャ（ｖｉｅｗ＿ｉｄ  ２）との間の差であり、動きベクトル１３０のビュー距離は、動きベクトル１３０のターゲットピクチャ（ｖｉｅｗ＿ｉｄ  ０）と参照ピクチャ（ｖｉｅｗ＿ｉｄ  １）との間の差である。式（３）を図７の例に適用すると、ｍｖ’は、どのビューコンポーネントがターゲットビューのために選択されるかに応じて、基準化された動きベクトル予測子１３４又は基準化された動きベクトル予測子１３８のいずれかを表す。例えば、第１の参照ビュー（ｖｉｅｗ＿ｉｄ  １）がターゲットビューとして選択される場合、ｍｖ’は基準化された動きベクトル予測子１３４を表し、ｍｖは動きベクトル１３０を表し、ＶｉｅｗＩＤ（Ｔａｒｇｅｔ）は動きベクトル予測子１３４によって指されたビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は現在ブロック１３６のビューコンポーネントであり、ＶｉｅｗＩＤ（ＳｅｃｏｎｄＲｅｆｅｒｅｎｃｅ）は第２の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）のビューコンポーネントであり、ＶｉｅｗＩＤ（Ｒｅｆｅｒｅｎｃｅ）は第１の参照ビュー（ｖｉｅｗ＿ｉｄ  １）のビューコンポーネントである。従って、図７に示す例では、動きベクトル予測子１３４は、１倍に基準化された動きベクトル１３０である（例えば、
【数５】
0005805850.tif 000006
【０１５５】
）。即ち、動きベクトル１３０の水平変位成分及び垂直変位成分は、動きベクトル予測子１３４の水平変位成分及び垂直変位成分と同じであり得る。代替的に、第２の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）がターゲットビューのために選択される場合、ｍｖ’は基準化された動きベクトル予測子１３８を表し、ｍｖは動きベクトル１３０を表し、ＶｉｅｗＩＤ（Ｔａｒｇｅｔ）は動きベクトル予測子１３８によって指されたビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は現在ブロック１３６のビューコンポーネントであり、ＶｉｅｗＩＤ（ＳｅｃｏｎｄＲｅｆｅｒｅｎｃｅ）は第２の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）のビューコンポーネントであり、ＶｉｅｗＩＤ（Ｒｒｅｆｅｒｅｎｃｅ）は第１の参照ビュー（ｖｉｅｗ＿ｉｄ  １）のビューコンポーネントである。従って、図７に示す例では、動きベクトル予測子１３８は、２倍に基準化された動きベクトル１３０である（例えば、
【数６】
0005805850.tif 000007
【０１５６】
）。即ち、ビデオデコーダ３０は、現在ブロック１３６についての動きベクトル予測子１３８を生成するために、動きベクトル１３０の水平変位成分と垂直変位成分の両方を２倍に拡大し得る。
【０１５７】
本開示の態様によれば、ビデオデコーダ３０は、動きベクトル予測を実行する（例えば、ＭＶＰを生成する）ときに同様のステップを実行し得る。例えば、ビデオデコーダ３０は、第１の参照ビュー（ｖｉｅｗ＿ｉｄ  １）又は第２の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）であり得るターゲットビューを選択し得る。しかしながら、現在ブロックのための予測ブロックを含んでいるビュー成分の参照ピクチャがビュー間予測のために利用可能でない場合、対応する予測子は使用され得ない。従って、ターゲットビューの選択は、例えば、予測ブロック及び／又は所定の選択アルゴリズムの利用可能性に基づいて決定され得る。
【０１５８】
現在ブロック１３６のための予測ブロックが、第１の参照ビュー（ｖｉｅｗ＿ｉｄ  １）又は第２の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）のいずれかにおいて直接のビュー間予測のために使用されるために利用可能でない場合、ビデオデコーダ３０は、動きベクトル予測を実行し得ない。少なくとも１つの予測ブロックが利用可能な場合、ビデオデコーダ３０は、現在ブロック１３６についての実際の動きベクトルに関連する予測ブロックを含む参照ビューを選択し得る。
【０１５９】
ターゲットビューを選択した後、次いで、ビデオデコーダ３０は、マージモードに関して上述したステップを繰り返し得る。例えば、ビデオデコーダ３０は、候補ブロック１３２の位置を特定し得る。即ち、ビデオデコーダ３０は、候補ブロック１３２についてのビューコンポーネント１中のコロケート座標を決定し得る。更に、幾つかの例では、ビデオデコーダ３０は、現在ブロック１３６のビューコンポーネント（ビューコンポーネント２）と候補ブロック１３２のビューコンポーネント（ビューコンポーネント１）との間の視差に基づいて、座標を調整し得る。
【０１６０】
更に、候補ブロック１３２の位置を特定した後に、ビデオデコーダ３０は、候補ブロック１３２のための予測ブロックと、現在ブロック１３６のための予測ブロック（例えば、ターゲットビュー中の予測ブロック）とを撮影するために使用されたカメラのカメラ位置の差に基づいて、候補ブロック１３２についての動きベクトル１３０を基準化し得る。即ち、ビデオデコーダ３０は、候補ブロック１３２についての動きベクトル１３０によって指されたビューコンポーネントと、ターゲットビューのビューコンポーネントとの間の差に応じて、視差動きベクトル１３０（例えば、予測のために使用されている動きベクトル）を基準化し得る。幾つかの例では、ビデオデコーダ３０は、上記の式（２）を使用して動きベクトル予測子基準化を実行し得る。他の例では、以下で図８に関して説明するように、動きベクトル予測子基準化は他のビューに拡張され得る。
【０１６１】
ビデオデコーダ３０は、（例えば、上記で図５に関して説明した）マージモード及び／又は動きベクトル予測を実行するときに候補リストに候補ブロック１３２を追加し得る。本開示の態様によれば、候補ブロックは、様々な方法で（例えば、マージモード又はＭＶＰ用いた動きベクトル予測のいずれかのための）動きベクトル予測子候補リストに追加され得る。例えば、ビデオデコーダ３０は、以下の方式に従ってマージモード候補の位置を特定することによって候補リストを構成し得る。
【０１６２】
１  ａｖａｉｌａｂｌｅＦｌａｇＡ1が１に等しい場合、Ａ1
２  ａｖａｉｌａｂｌｅＦｌａｇＶが１に等しい場合、Ｖ
３  ａｖａｉｌａｂｌｅＦｌａｇＢ1が１に等しい場合、Ｂ1
４  ａｖａｉｌａｂｌｅＦｌａｇＢ0が１に等しい場合、Ｂ0
５  ａｖａｉｌａｂｌｅＦｌａｇＡ0が１に等しい場合、Ａ0
６  ａｖａｉｌａｂｌｅＦｌａｇＢ2が１に等しい場合、Ｂ2
７  ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１に等しい場合、Ｃｏｌ
式中、Ｖは候補ブロック１３２を表す。他の例では、候補ブロック１３２は、位置を特定され、候補リストの他の位置において候補リストに追加され得る。
【０１６３】
図８は、本開示の態様による、動きベクトル予測子を生成及び基準化することを示す別の概念図である。例えば、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０又はビデオデコーダ３０など）は、現在ブロック１４６についての動きベクトル予測子１４４（ｍｖ’）を生成するために、視差動きベクトル予測子候補ブロック１４２からの視差動きベクトル１４０（ｍｖ）を基準化し得、候補ブロック１４２は現在ブロック１４６とは異なるビューコンポーネントに属する。図８についてビデオデコーダ３０に関して説明するが、本開示の技法は、他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコード化ユニットなどを含む様々な他のビデオコーダによって行われ得ることを理解されたい。
【０１６４】
図８に示す例は、図７に関して図示及び説明した動きベクトル予測を４つ以上のビューを含む環境に拡張する。例えば、図８に示すように、候補ブロック１４２はビューコンポーネント２（ｖｉｅｗ＿ｉｄ  ２）中にある。候補ブロック１４２は、インター予測され、ビューコンポーネント１（ｖｉｅｗ＿ｉｄ  １）中の予測ブロックを指す動きベクトル１４０（ｍｖ）を含む。例えば、動きベクトル１４０は、ビュー２（ｖｉｅｗ＿ｉｄ  ２）中のターゲットピクチャと、ビュー１（ｖｉｅｗ＿ｉｄ  １）中の参照ピクチャとを有する。現在ブロック１４６は、候補ブロック１４２とコロケートされ、ビューコンポーネント３（ｖｉｅｗ＿ｉｄ  ３）中にある。
【０１６５】
本開示の態様によれば、ビデオデコーダ３０は、現在ブロック１４６についてのターゲットビューをビューコンポーネント０（ｖｉｅｗ＿ｉｄ  ０）として選択し得る。例えば、ターゲットビューは、概して、現在ブロックのための予測ブロックを含む。予測ブロックを含んでいるピクチャがビュー間参照ピクチャであり、現在ブロック１４６のための予測ブロックが第３の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）中にある場合、ビデオデコーダ３０は、第３の参照ビューをターゲットビューとして選択し得る。
【０１６６】
ターゲットビューを選択した後に、ビデオデコーダ３０は、候補ブロック１４２の位置を特定し得る。例えば、現在ブロック１４６の左上ルーマサンプルがビューコンポーネント３中の座標（ｘ，ｙ）にあるピクチャ（又はスライス）中にあると仮定すると、ビデオデコーダ３０は、候補ブロック１４２についてのビューコンポーネント２中の同一位置の座標を決定し得る。更に、上述のように、ビデオデコーダ３０は、現在ブロック１４６のビューコンポーネント（ビューコンポーネント３）と候補ブロック１４２のビューコンポーネント（ビューコンポーネント２）との間の視差に基づいて、座標を調整し得る。
【０１６７】
候補ブロック１４２の位置を特定した後に、ビデオデコーダ３０は、動きベクトル１４０と現在ブロック１４６についての実際の動きベクトルとの間のビュー距離の差に基づいて、候補ブロック１４２についての動きベクトル１４０を基準化し得る。即ち、ビデオデコーダ３０は、候補ブロック１４２のための予測ブロックと、現在ブロック１４６のための予測ブロック（例えば、ターゲットビュー中の予測ブロック）とを撮影するために使用されたカメラのカメラ位置の差に基づいて、動きベクトル１３０を基準化し得る。即ち、ビデオデコーダ３０は、候補ブロック１４２についての動きベクトル１４０によって指されたビューコンポーネントと、ターゲットビューのビューコンポーネント（ｖｉｅｗ＿ｉｄ  ０）との間の差に応じて、視差動きベクトル１４０（例えば、予測のために使用されている動きベクトル）を基準化し得る。
【０１６８】
一例では、ビデオデコーダ３０は、以下に示す式（４）に従って、現在ブロックについての基準化された動きベクトル予測子を生成し得る。
【数７】
0005805850.tif 000008
【０１６９】
式中、ｍｖ’は現在ブロックについての基準化された動きベクトル予測子を表し、ｍｖは候補ブロックについての動きベクトルを表し、ＶｉｅｗＩＤ（Ｔｈｉｒｄ）は第３の参照ビューのビューコンポーネントであり、ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は現在ブロックのビューコンポーネントであり、ＶｉｅｗＩＤ（ＳｅｃｏｎｄＲｅｆｅｒｅｎｃｅ）は（利用可能な場合）第２の参照ビューのビューコンポーネントであり、ＶｉｅｗＩＤ（Ｒｅｆｅｒｅｎｃｅ）は第１の参照ビューのビューコンポーネントである。幾つかの例では、ＶｉｅｗＩＤ（Ｔｈｉｒｄ）−ＶｉｅｗＩＤは、動きベクトル予測子１４４のビュー距離と呼ばれることがあり、ＶｉｅｗＩＤ（ＳｅｃｏｎｄＲｅｆｅｒｅｎｃｅ）−ＶｉｅｗＩＤ（Ｒｅｆｅｒｅｎｃｅ）は、動きベクトル１４０のビュー距離と呼ばれることがある。即ち、動きベクトル予測子１４４のビュー距離は、動きベクトル予測子１４４のターゲットピクチャ（ｖｉｅｗ＿ｉｄ  ０）と参照ピクチャ（ｖｉｅｗ＿ｉｄ  ３）との間の差であり、動きベクトル１４０のビュー距離は、動きベクトル１４０のターゲットピクチャ（ｖｉｅｗ＿ｉｄ  １）と参照ピクチャ（ｖｉｅｗ＿ｉｄ  ２）との間の差である。式（３）を図８の例に適用すると、ｍｖ’は基準化された動きベクトル予測子１４４を表す。例えば、ＶｉｅｗＩＤ（Ｔｈｉｒｄ）は第３の参照ビュー（ｖｉｅｗ＿ｉｄ  ０）を表し、ｍｖ’は基準化された動きベクトル予測子１４４を表し、ｍｖは動きベクトル１４０を表し、ＶｉｅｗＩＤ（Ｃｕｒｒｅｎｔ）は現在ブロック１４６のビューコンポーネントであり、ＶｉｅｗＩＤ（ＳｅｃｏｎｄＲｅｆｅｒｅｎｃｅ）は第２の参照ビュー（ｖｉｅｗ＿ｉｄ  １）のビューコンポーネントであり、ＶｉｅｗＩＤ（Ｒｅｆｅｒｅｎｃｅ）は第１の参照ビュー（ｖｉｅｗ＿ｉｄ  ２）のビューコンポーネントである。従って、図８に示す例では、動きベクトル予測子１４４は、３倍に基準化された動きベクトル１４０である（例えば、
【数８】
0005805850.tif 000009
【０１７０】
）。即ち、ビデオデコーダ３０は、動きベクトル予測子１４４を形成するために、動きベクトル１４０の水平変位成分と垂直変位成分とを３倍に拡大し得る。
【０１７１】
図７〜図８はビュー間視差動きベクトル予測に関する例を与えるが、そのような例は単に説明のために与えたものにすぎないことを理解されたい。即ち、視差動きベクトル予測のための技法は、図示のビューよりも多い又は少ないビューに適用され得る。追加又は代替として、視差動きベクトル予測のための技法は、ビューが異なるビュー識別子を有する状況において適用され得る。
【０１７２】
図９は、ビデオデータのブロックについての予測情報をコード化する例示的な方法を示す流れ図である。図９に示す例は、概して、ビデオコーダによって実行されるものとして説明する。幾つかの例では、図９の方法は、上述したビデオエンコーダ２０（図１及び図２）又はビデオデコーダ３０（図１及び図３）によって行われ得ることを理解されたい。他の例では、図９の方法は、様々な他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコード化ユニットなどによって実行され得る。
【０１７３】
図９に示す例示的な方法によれば、ビデオコーダは、第１のビュー中のビデオデータの第１のブロックを識別し、ビデオデータの第１のブロックは第１の視差動きベクトルに関連する（１６０）。例えば、ビデオデータの第１のブロックについて動きベクトルは、別のビューコンポーネント中の参照ブロックを識別する視差動きベクトルであり得る。次いで、ビデオコーダは、ビデオデータの第２のブロックに関連する第２の動きベクトルが視差動きベクトルであるかどうかを決定する（１６２）。
【０１７４】
第２の動きベクトルが視差動きベクトルでない場合（ステップ１６２のＮＯブランチ）、ビデオコーダは異なる動きベクトル予測子候補を識別する（１６４）。即ち、本開示の幾つかの態様によれば、時間動きベクトル（例えば、第２の動きベクトルが時間動きベクトルであるとき、第２の動きベクトル）を予測するために視差動きベクトル（例えば、第１の動きベクトル）を使用する能力は、使用不能であり得る。そのような場合、ビデオコーダは、動きベクトル予測のために使用されるために利用不可能であるものとして第１の動きベクトルを識別し得る。
【０１７５】
第２の動きベクトルが視差動きベクトルである場合（ステップ１６２のＹＥＳブランチ）、ビデオコーダは、第２の動きベクトルについての動きベクトル予測子を生成するために第１の動きベクトルを基準化する（１６６）。例えば、本開示の態様によれば、ビデオコーダは、第１の視差動きベクトルと第２の動きベクトルとに関連するビュー距離の差に基づいて、視差動きベクトル予測子を生成するために第１の動きベクトルを基準化し得る。即ち、幾つかの例では、ビデオコーダは、カメラ位置に基づいて第２のブロックについての動きベクトル予測子を基準化し得る。例えば、ビデオコーダは、図６〜図８に関して図示及び説明したように、ビュー識別子の差に応じて第２の動きベクトルを基準化し得る。
【０１７６】
次いで、ビデオコーダは、基準化された動きベクトル予測子を使用して第２のブロックについての予測データをコード化する（１６８）。例えば、ビデオコーダは、マージモードを使用して又は動きベクトル予測を使用して、第２のブロックについての予測データをコード化し得る。マージモードの場合、ビデオコーダは、基準化された第２の動きベクトル予測子を使用して第２のブロックについての予測データを直接コード化し得る。動きベクトル予測の場合、ビデオコーダは、ＭＶＤを生成することによって第２のブロックについての予測データをコード化し得る。ＭＶＤは、第１の動きベクトルと基準化された第２の動きベクトルとの間の差を含み得る。
【０１７７】
また、図９に関して図示及び説明したステップは一例として与えたものにすぎないことを理解されたい。即ち、図９の方法のステップは、必ずしも図９に示した順序で実行される必要があるとは限らず、より少数の、追加の、又は代替のステップが実行され得る。
【０１７８】
図１０は、現在ブロックとは異なるビュー中のブロックから動きベクトル予測子を生成することを示す概念図である。例えば、本開示の態様によれば、ビデオコーダ（ビデオエンコーダ２０又はビデオデコーダ３０など）は、時間動きベクトル予測子候補ブロック１８２からの時間動きベクトル１８０（ｍｖ）を使用して現在ブロック１８６についての動きベクトル予測子１８４（ｍｖ’）を生成し得、候補ブロック１８２は、現在ブロック１８６とは異なるビューコンポーネントに属する。図１０についてビデオデコーダ３０に関して説明するが、本開示の技法は、他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコード化ユニットなどを含む様々な他のビデオコーダによって行われ得ることを理解されたい。
【０１７９】
図１０に示すように、現在ブロック１８６はビューコンポーネント１（ｖｉｅｗ＿ｉｄ  １）中にある。候補ブロック１８２はビューコンポーネント０（ｖｉｅｗ＿ｉｄ  ０）中にある。候補ブロック１８２は、時間的に予測され、同じビューコンポーネント内の異なる時間位置中の予測ブロックを指す動きベクトル１８０（ｍｖ）を含む。即ち、図１０に示す例では、動きベクトル１８０は、変数ｉに等しい参照インデックス（ｒｅｆ＿ｉｄｘ＝ｉ）を有するピクチャ中の予測ブロックを識別する。
【０１８０】
現在ブロック１８６の左上ルーマサンプルが座標（ｘ，ｙ）のピクチャ（又はスライス）中にあると仮定する。ビデオデコーダ３０は、候補ブロック１８２についてのビューコンポーネント０中の同一位置の座標を決定することによって、候補ブロック１８２の位置を特定し得る。幾つかの例では、ビデオデコーダ３０は、現在ブロック１８６のビューコンポーネント（ｖｉｅｗ＿ｉｄ  １）と候補ブロック１８２のビューコンポーネント（ｖｉｅｗ＿ｉｄ  ０）との間の視差に基づいて候補ブロック１８２の座標を調整し得る。従って、ビデオデコーダ３０は、候補ブロック１８２の座標を（ｘ’，ｙ’）として決定し得、（ｘ’，ｙ’）＝（ｘ，ｙ）＋視差である。幾つかの例では、視差は、ＳＰＳ、ＰＰＳ、スライスヘッダ、ＣＵシンタックス、及び／又はＰＵシンタックス中に含まれ及び／又は計算され得る。
【０１８１】
本開示の態様によれば、ビデオデコーダ３０は、次いで、予測のために使用されている動きベクトル１８０の参照インデックスを再マッピングし得る。概して、上述のように、動きベクトルについてのデータは、参照ピクチャリストと、参照ピクチャリストへのインデックス（ｒｅｆ＿ｉｄｘと呼ぶ）と、水平成分と、垂直成分とを含む。ＨＥＶＣでは、２つの通常の参照ピクチャリスト（例えば、リスト０及びリスト１）と、合成参照ピクチャリスト（例えば、リストｃ）とがあり得る。一般性の損失なしに、現在参照ピクチャリストが（リスト０、リスト１、又はリストｃのいずれかに対応し得る）リストｔであると仮定する。図１０に示す例によれば、候補ブロック１８２についての動きベクトル１８０は、ＰＯＣ値２と、ｉに等しいｒｅｆ＿ｉｄｘとを有するビューコンポーネント０（ｖｉｅｗ＿ｉｄ  ０）中にあるピクチャ中の予測ブロックを識別し得る。本開示の態様によれば、ビデオデコーダ３０は、現在ブロック１８６と同じタイムインスタンス中の現在ブロック１８６についてのコロケート予測ブロックを識別し得る。即ち、候補ブロック１８２のための予測ブロック及び現在ブロック１８６のための予測ブロックは、同じ時間位置を有するが、２つの異なるビューのピクチャ中にある。
【０１８２】
一例では、現在ブロック１８６のための識別された予測ブロックが現在ピクチャについての参照ピクチャリストｔ中のｊ番目の参照ピクチャに対応する場合、ビデオデコーダ３０は、現在ブロック１８６についての参照インデックス（ｒｅｆ＿ｉｄｘ）をｊとして予測し得、ビデオデコーダ３０は、動きベクトル予測子１８４を動きベクトル１８０と同じ値に設定し得る。従って、ビデオデコーダ３０は、現在ブロック１８６についての参照インデックスをｒｅｆ＿ｉｄｘ  ｉからｒｅｆ＿ｉｄｘ  ｊに効果的に再マッピングする。即ち、ビデオデコーダ３０は、現在ブロック１８６についての動きベクトル予測子１８４が候補ブロック１８２と同じ参照ピクチャリストと水平成分と垂直成分とを有すると決定し、しかしながら、動きベクトル予測子１８４は、参照ピクチャリスト中のｉ番目の参照ピクチャではなく参照ピクチャリスト中のｊ番目の参照ピクチャを指す。
【０１８３】
本開示の態様によれば、幾つかの例では、ビデオデコーダはまた、動きベクトル予測子１８４を基準化し得る。例えば、現在ブロック１８６のための識別された予測ブロックを含んでいるピクチャが参照ピクチャリストｔ中に含まれない場合、ビデオデコーダ３０は、参照ピクチャリストｔ中の最も近い第２のピクチャを識別し得る。幾つかの例では、２つのピクチャが、現在ブロック１８６のための識別された予測ブロックを含んでいるピクチャまで等しい距離を有する場合、ビデオデコーダ３０は、現在ブロック１８６を含んでいるピクチャにより近いピクチャを第２のピクチャとして選択し得る。説明のために、識別されたピクチャが参照インデックスｋを有すると仮定する。この例では、ビデオデコーダ３０は、次いで、動きベクトル予測子１８４の参照インデックスをｋとして予測し得、ビデオデコーダ３０は、ピクチャ順序カウント（ＰＯＣ）における差に基づいて動きベクトル予測子１８４を基準化し得る。即ち、ビデオデコーダ３０は、現在ブロック１８６と参照インデックスｊにおけるピクチャとの間の距離と、現在ブロック１８６と参照インデックスｋにおけるピクチャとの間の距離との間の差に基づいて動きベクトル予測子１８４を基準化し得る。
【０１８４】
幾つかの例によれば、ビデオデコーダ３０は、動きベクトル予測を実行するときに同じプロセスを実行し得る。しかしながら、動きベクトル予測子１８４を決定した後に、ビデオデコーダ３０は、ＭＶＤを使用して現在ブロック１８６についての動きベクトルを生成し得る。動きベクトル予測は同じプロセスを使用し得る。別の例では、動きベクトル予測に関して、現在ブロック１８６のための予測ブロックの位置が特定され得ない（上記で参照インデックスｊにあると識別された）場合、ビデオデコーダ３０は、現在ブロック１８６についてマージモード又は動きベクトル予測を実行し得ない。即ち、ビデオデコーダ３０は、動きベクトル予測子１８４を基準化するのではなく、動きベクトル予測子１８４が利用不可能であると見なし得る。
【０１８５】
ビデオデコーダ３０は、（例えば、上記で図５に関して説明した）マージモード及び／又は動きベクトル予測を実行するための候補リストに候補ブロック１８２を追加し得る。本開示の態様によれば、候補ブロック１８２は、様々な方法で（例えば、マージモード又はＭＶＰ用いた動きベクトル予測のいずれかのための）動きベクトル予測子候補リストに追加され得る。例えば、ビデオデコーダ３０は、以下の方式に従って候補の位置を特定することによって候補リストを構成し得る。
【０１８６】
１  ａｖａｉｌａｂｌｅＦｌａｇＡ1が１に等しい場合、Ａ1
２  ａｖａｉｌａｂｌｅＦｌａｇＶが１に等しい場合、Ｖ
３  ａｖａｉｌａｂｌｅＦｌａｇＢ1が１に等しい場合、Ｂ1
４  ａｖａｉｌａｂｌｅＦｌａｇＢ0が１に等しい場合、Ｂ0
５  ａｖａｉｌａｂｌｅＦｌａｇＡ0が１に等しい場合、Ａ0
６  ａｖａｉｌａｂｌｅＦｌａｇＢ2が１に等しい場合、Ｂ2
７    ａｖａｉｌａｂｌｅＦｌａｇＣｏｌが１に等しい場合、Ｃｏｌ
式中、Ｖは候補ブロック１８２を表す。他の例では、候補ブロック１３２は、位置を特定され、候補リストの他の位置において候補リストに追加され得る。
【０１８７】
図１１は、動きベクトル予測子を生成する例示的な方法を示す流れ図である。図１１に示す例は、概して、ビデオコーダによって実行されるものとして説明する。幾つかの例では、図１１の方法は、上述したビデオエンコーダ２０（図１及び図２）又はビデオデコーダ３０（図１及び図３）によって行われ得ることを理解されたい。他の例では、図１１の方法は、様々な他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコード化ユニットなどによって実行され得る。
【０１８８】
図１１に示す例によれば、ビデオコーダは、第１のビューの第１の時間位置中のビデオデータの第１のブロックを識別し、第１のブロックは、第１の時間動きベクトルに関連する（２０２）。本開示の態様によれば、ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルであり、第２のブロックが第１のブロックとは異なる第２のビューからであるとき（ステップ２０４のＹＥＳブランチ）、ビデオコーダは、第１の動きベクトルに基づいて動きベクトル予測子を決定する（２０６）。即ち、例えば、ビデオコーダは、第１の動きベクトルから第２の動きベクトルを予測するための動きベクトル予測子を決定し得る。ビデオコーダはまた、動きベクトル予測子を使用して第２のブロックについての予測データをコード化する（２０８）。例えば、ビデオコーダは、動きベクトル予測子をマージモードで使用するか、又はＭＶＤ値を生成するために使用し得る。
【０１８９】
第２の動きベクトルが時間動きベクトルでない、及び／又はビデオデータの第２のブロックがビデオデータの第１のブロックとは異なるビューからでない場合（ステップ２０４のＮＯブランチ）、ビデオコーダは、第２の動きベクトルが視差動きベクトルであるかどうかを決定する（２１０）。本開示の態様によれば、第２の動きベクトルが視差動きベクトルでない場合（ステップ２１０のＮＯブランチ）、ビデオコーダは異なる動きベクトル予測子候補を識別する（２１２）。即ち、ビデオコーダは、幾つかの例では、第２の動きベクトルを予測するために第１の動きベクトルを使用し得ない。
【０１９０】
第２の動きベクトルが視差動きベクトルである場合（ステップ２１０のＹＥＳブランチ）、ビデオコーダは、視差動きベクトル予測が使用不能であるかどうかを決定する（２１４）。即ち、本開示の幾つかの態様によれば、視差動きベクトル（例えば、第２の動きベクトルが視差動きベクトルであるとき、第２の動きベクトル）を予測するために時間動きベクトル（例えば、第１の動きベクトル）を使用する能力は使用不能であり得る。そのような場合、ビデオコーダは、異なる動きベクトル予測子候補を識別する（２１２）（ステップ２１４のＮＯブランチ）。
【０１９１】
ビデオコーダは、視差動きベクトル予測が使用可能である（例えば、又はそのような機能を有効化／無効化する能力が存在しない）と決定した場合、ビデオコーダは、第１の動きベクトルに基づいて第２の動きベクトルについての動きベクトル予測子を決定する（２０６）（ステップ２１４のＹＥＳブランチ）。更に、ビデオコーダはまた、動きベクトル予測子を使用して第２のブロックについての予測データをコード化する（２０８）。例えば、ビデオコーダは、動きベクトル予測子をマージモードで使用するか、又はＭＶＤ値を生成するために使用し得る。
【０１９２】
また、図１１に関して図示及び説明するステップは一例として与えたものにすぎないことを理解されたい。即ち、図１１の方法のステップは、必ずしも図１１に示した順序で実行される必要があるとは限らず、より少数の、追加の、又は代替のステップが実行され得る。
【０１９３】
例に応じて、本明細書で説明した方法のうちのいずれかの幾つかの行為又はイベントは、異なるシーケンスで実行され得、互いに付加、マージ、又は除外され得る（例えば、全ての説明した行為又はイベントが、方法の実施のために必要であるとは限らない）ことを理解されたい。更に、幾つかの例では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを介して、同時に実行され得る。更に、本開示の幾つかの態様は、明快のために単一のモジュール又はユニットによって実行されるものとして説明したが、本開示の技法は、ビデオコーダに関連するユニット又はモジュールの組合せによって実行され得ることを理解されたい。
【０１９４】
１つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施される場合、機能は、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。
【０１９５】
このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、又は（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータあるいは１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１９６】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気記憶装置、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【０１９７】
但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１９８】
命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実施に好適な他の構造のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つ以上の回路又は論理要素中に十分に実施され得る。
【０１９９】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明した１つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【０２００】
本開示の様々な態様について説明した。これら及び他の態様は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコード化する方法であって、
第１のビューからの第１の時間ロケーション中のビデオデータの第１のブロックを識別することと、ビデオデータの前記第１のブロックが第１の時間動きベクトルに関連する、
ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、前記第２のブロックが第２のビューからであるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定することと、
前記動きベクトル予測子を使用して前記第２のブロックについての予測データをコード化することと、
を備える、方法。
［Ｃ２］
前記第２の動きベクトルが視差動きベクトルであるとき、前記第１の動きベクトルから前記動きベクトル予測子を決定する能力を無効化することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記第２の動きベクトルが時間動きベクトルであり、前記第２のビューが前記第１のビューと異なるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ４］
前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値と同じであるとき、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定することをさらに備える、Ｃ３に記載の方法。
［Ｃ５］
前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣとは異なるとき、前記動きベクトル予測子を決定する前に、前記第１の時間動きベクトルと前記第２の時間動きベクトルとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化することをさらに備える、Ｃ３に記載の方法。
［Ｃ６］
前記時間距離は、動きベクトルのターゲットピクチャと参照ピクチャとの間のＰＯＣの差を備える、Ｃ５に記載の方法。
［Ｃ７］
前記第２の動きベクトルの参照ピクチャが前記第２の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化することをさらに備える、Ｃ３に記載の方法。
［Ｃ８］
前記予測データをコード化することは、前記動きベクトル予測子を使用して動きベクトル差分値をコード化することを備える、Ｃ１に記載の方法。
［Ｃ９］
前記第２のビューが前記第１のビューと異なるとき、前記第１のビューの前記第１のブロックと前記第２のビューの前記第２のブロックとの間の視差に従って調整される前記第１のブロックの位置と同一位置とされる前記第２のビューのピクチャ中の位置を識別することによって、前記第２のブロックの位置を特定することをさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
ビデオデータの前記第２のブロック及びビデオデータの１つまたは複数の他のブロックを含むピクチャを識別するデータを含んでいる候補リストを構成することをさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
ビデオデータの前記第２のブロックを含む前記ピクチャを識別することは、前記候補リストへのインデックスを使用して、前記候補リスト中のビデオデータの前記第２のブロックを含む前記ピクチャの位置を特定することを備える、Ｃ１０に記載の方法。
［Ｃ１２］
ビデオデータの前記第２のブロックをコード化することは、前記第２のブロックを符号化することを備える、Ｃ１に記載の方法。
［Ｃ１３］
ビデオデータの前記第２のブロックをコード化することは、前記第２のブロックを復号することを備える、Ｃ１に記載の方法。
［Ｃ１４］
１つ以上のプロセッサを備えるビデオデータをコード化するための装置であって、前記１つ以上のプロセッサは、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別し、ビデオデータの前記第１のブロックが第１の時間動きベクトルと関連し、
ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、前記第２のブロックが第２のビューからであるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定し、
前記動きベクトル予測子を使用して前記第２のブロックについての予測データをコード化する、
ように構成される、装置。
［Ｃ１５］
前記１つ以上のプロセッサは、前記第２の動きベクトルが視差動きベクトルであるとき、前記第１の動きベクトルから前記動きベクトル予測子を決定する能力を無効化するようにさらに構成される、Ｃ１４に記載の装置。
［Ｃ１６］
前記１つ以上のプロセッサは、前記第２の動きベクトルが時間動きベクトルであり、前記第２のビューが前記第１のビューと異なるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定するようにさらに構成される、Ｃ１５に記載の装置。
［Ｃ１７］
前記１つ以上のプロセッサは、前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値と同じであるとき、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定するようにさらに構成される、Ｃ１６に記載の装置。
［Ｃ１８］
前記１つ以上のプロセッサは、前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣとは異なるとき、前記動きベクトル予測子を決定する前に、前記第１の時間動きベクトルと前記第２の時間動きベクトルとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化するようにさらに構成される、Ｃ１６に記載の装置。
［Ｃ１９］
前記時間距離は、動きベクトルのターゲットピクチャと参照ピクチャとの間のＰＯＣの差を備える、Ｃ１８に記載の装置。
［Ｃ２０］
前記１つ以上のプロセッサは、前記第２の動きベクトルの参照ピクチャが前記第２の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化するようにさらに構成される、Ｃ１６に記載の装置。
［Ｃ２１］
前記１つ以上のプロセッサは、前記動きベクトル予測子を使用して動きベクトル差分値をコード化することによって前記予測データをコード化するように構成される、Ｃ１４に記載の装置。
［Ｃ２２］
前記１つ以上のプロセッサは、前記第２のビューが前記第１のビューと異なるとき、前記第１のビューの前記第１のブロックと前記第２のビューの前記第２のブロックとの間の視差に従って調整される前記第１のブロックの位置と同一位置とされる前記第２のビューのピクチャ中の位置を識別することによって、前記第２のブロックの位置を特定するようにさらに構成される、Ｃ１４に記載の装置。
［Ｃ２３］
前記１つ以上のプロセッサは、ビデオデータの前記第２のブロック及びビデオデータの１つ以上の他のブロックを含むピクチャを識別するデータを含んでいる候補リストを構成するようにさらに構成される、Ｃ１４に記載の装置。
［Ｃ２４］
ビデオデータの前記第２のブロックを含む前記ピクチャを識別するために、前記１つ以上のプロセッサは、前記候補リストへのインデックスを使用して、前記候補リスト中のビデオデータの前記第２のブロックを含む前記ピクチャの位置を特定するように構成される、Ｃ２３に記載の装置。
［Ｃ２５］
ビデオデータの前記第２のブロックをコード化するために、前記１つ以上のプロセッサは前記第２のブロックを符号化するように構成される、Ｃ１４に記載の装置。
［Ｃ２６］
ビデオデータの前記第２のブロックをコード化するために、前記１つ以上のプロセッサは前記第２のブロックを復号するように構成される、Ｃ１４に記載の装置。
［Ｃ２７］
ビデオデータをコード化するための装置であって、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別するための手段と、ビデオデータの前記第１のブロックが第１の時間動きベクトルに関連する、
ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、前記第２のブロックが第２のビューからであるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定するための手段と、
前記動きベクトル予測子を使用して前記第２のブロックについての予測データをコード化するための手段と、
を備える、装置。
［Ｃ２８］
前記第２の動きベクトルが視差動きベクトルであるとき、前記第１の動きベクトルから前記動きベクトル予測子を決定する能力を無効化するための手段をさらに備える、Ｃ２７に記載の装置。
［Ｃ２９］
前記第２の動きベクトルが時間動きベクトルであり、前記第２のビューが前記第１のビューと異なるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定するための手段をさらに備える、Ｃ２８に記載の装置。
［Ｃ３０］
前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値と同じであるとき、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定するための手段をさらに備える、Ｃ２８に記載の装置。
［Ｃ３１］
前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣとは異なるとき、前記動きベクトル予測子を決定する前に、前記第１の時間動きベクトルと前記第２の時間動きベクトルとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化するための手段をさらに備える、Ｃ２８に記載の方法。
［Ｃ３２］
前記時間距離は、動きベクトルのターゲットピクチャと参照ピクチャとの間のＰＯＣの差を備える、Ｃ３１に記載の装置。
［Ｃ３３］
前記第２の動きベクトルの参照ピクチャが前記第２の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化するための手段をさらに備える、Ｃ２８に記載の装置。
［Ｃ３４］
前記予測データをコード化するための手段は、前記動きベクトル予測子を使用して動きベクトル差分値をコード化するための手段を備える、Ｃ２７に記載の装置。
［Ｃ３５］
前記第２のビューが前記第１のビューと異なるとき、前記第１のビューの前記第１のブロックと前記第２のビューの前記第２のブロックとの間の視差に従って調整される前記第１のブロックの位置と同一位置とされる前記第２のビューのピクチャ中の位置を識別することによって、前記第２のブロックの位置を特定するための手段をさらに備える、Ｃ２７に記載の装置。
［Ｃ３６］
ビデオデータの前記第２のブロック及びビデオデータの１つ以上の他のブロックを含むピクチャを識別するデータを含んでいる候補リストを構成するための手段をさらに備える、Ｃ２７に記載の装置。
［Ｃ３７］
前記候補リストへのインデックスを使用して、前記候補リスト中のビデオデータの前記第２のブロックを含む前記ピクチャの位置を特定するための手段をさらに備える、Ｃ３６に記載の装置。
［Ｃ３８］
ビデオデータの前記第２のブロックをコード化するための手段は、前記第２のブロックを符号化するための手段を備える、Ｃ２７に記載の装置。
［Ｃ３９］
ビデオデータの前記第２のブロックをコード化するための手段は、前記第２のブロックを復号するための手段を備える、Ｃ２７に記載の装置。
［Ｃ４０］
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、１つ以上のプロセッサに、
第１のビューからの第１の時間位置中のビデオデータの第１のブロックを識別することと、ビデオデータの前記第１のブロックが第１の時間動きベクトルに関連する、
ビデオデータの第２のブロックに関連する第２の動きベクトルが時間動きベクトルを備え、前記第２のブロックが第２のビューからであるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定することと、
前記動きベクトル予測子を使用して前記第２のブロックについての予測データをコード化することと、
を行わせる、コンピュータ可読記憶媒体。
［Ｃ４１］
前記第２の動きベクトルが視差動きベクトルであるとき、前記１つ以上のプロセッサに、前記第１の動きベクトルから前記動きベクトル予測子を決定する能力を無効化させる命令をさらに備える、Ｃ４０に記載のコンピュータ可読記憶媒体。
［Ｃ４２］
前記１つ以上のプロセッサに、前記第２の動きベクトルが時間動きベクトルであり、前記第２のビューが前記第１のビューと異なるとき、前記第１の時間動きベクトルに基づいて前記第２の動きベクトルについての動きベクトル予測子を決定させる命令をさらに備える、Ｃ４１に記載のコンピュータ可読記憶媒体。
［Ｃ４３］
前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのピクチャ順序カウント（ＰＯＣ）値と同じであるとき、前記１つ以上のプロセッサに、前記動きベクトル予測子を基準化することなく、前記動きベクトル予測子を決定させる命令をさらに備える、Ｃ４２に記載のコンピュータ可読記憶媒体。
［Ｃ４４］
前記第２の動きベクトルの参照ピクチャが前記第１の動きベクトルの参照ピクチャのＰＯＣとは異なるとき、前記１つ以上のプロセッサに、前記動きベクトル予測子を決定する前に、前記第１の時間動きベクトルと前記第２の時間動きベクトルとの間の時間距離の差に基づいて前記第１の動きベクトルを基準化させる命令をさらに備える、Ｃ４２に記載のコンピュータ可読記憶媒体。
［Ｃ４５］
前記時間距離は、動きベクトルのターゲットピクチャと参照ピクチャとの間のＰＯＣの差を備える、Ｃ４４に記載のコンピュータ可読記憶媒体。
［Ｃ４６］
前記第２の動きベクトルの参照ピクチャが前記第２の動きベクトルの参照ピクチャのＰＯＣと同じであるとき、前記１つ以上のプロセッサに、前記第１の時間動きベクトルに基づいて前記動きベクトル予測子を決定する能力を無効化させる命令をさらに備える、Ｃ４２に記載のコンピュータ可読記憶媒体。
［Ｃ４７］
前記１つ以上のプロセッサに、前記予測データをコード化させる命令は、前記１つ以上のプロセッサに、前記動きベクトル予測子を使用して動きベクトル差分値をコード化させる命令を備える、Ｃ４０に記載のコンピュータ可読記憶媒体。
［Ｃ４８］
前記１つ以上のプロセッサに、前記第２のビューが前記第１のビューと異なるとき、前記第１のビューの前記第１のブロックと前記第２のビューの前記第２のブロックとの間の視差に従って調整される前記第１のブロックの位置と同一位置とされる前記第２のビューのピクチャ中の位置を識別することによって、前記第２のブロックの位置を特定させる命令をさらに備える、Ｃ４０に記載のコンピュータ可読記憶媒体。
［Ｃ４９］
前記１つ以上のプロセッサに、ビデオデータの前記第２のブロック及びビデオデータの１つ以上の他のブロックを含むピクチャを識別するデータを含んでいる候補リストを構成させる命令をさらに備える、Ｃ４０に記載のコンピュータ可読記憶媒体。
［Ｃ５０］
前記１つ以上のプロセッサに、前記候補リストへのインデックスを使用して、前記候補リスト中のビデオデータの前記第２のブロックを含む前記ピクチャの位置を特定させる命令をさらに備える、Ｃ４９に記載のコンピュータ可読記憶媒体。
［Ｃ５１］
前記１つ以上のプロセッサにビデオデータの前記第２のブロックをコード化させる命令は、前記１つ以上のプロセッサに前記第２にブロックを符号化させる命令を備える、Ｃ４０に記載のコンピュータ可読記憶媒体。
［Ｃ５２］
前記１つ以上のプロセッサにビデオデータの前記第２のブロックをコード化させる命令は、前記１つ以上のプロセッサに前記第２にブロックを復号させる命令を備える、Ｃ４０に記載のコンピュータ可読記憶媒体。
【図１】
0005805850.tif 000010
【図２】
0005805850.tif 000011
【図３】
0005805850.tif 000012
【図４】
0005805850.tif 000013
【図５】
0005805850.tif 000014
【図６】
0005805850.tif 000015
【図７】
0005805850.tif 000016
【図８】
0005805850.tif 000017
【図９】
0005805850.tif 000018
【図１０】
0005805850.tif 000019
【図１１】
0005805850.tif 000020