(57)【要約】  現在のブロックについての視差ベクトルに基づいて、参照ビュー中の参照ピクチャ中のブロックを決定するための技法が説明される。技法は、現在のブロック内の中心２×２サブブロック中の右下画素から視差ベクトルを開始し、視差ベクトルが参照する参照ピクチャ内の位置を決定する。決定されたブロックは、現在のブロック内の中心２×２サブブロックの右下画素から開始する視差ベクトルに基づいて、視差ベクトルによって参照される位置をカバーする。
2016525319.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ復号の方法であって、
現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することと、
参照ビュー中の参照ピクチャ中のブロックを、前記現在のブロック内の中心２×２サブブロック中の右下画素から開始する前記視差ベクトルに基づいて、前記視差ベクトルが参照する前記参照ピクチャ中の位置に基づいて決定することと、
決定された前記ブロックに基づいて前記現在のブロックをインター予測復号することと
を備える方法。
【請求項２】
前記現在のブロック内の前記中心２×２サブブロック中の前記右下画素の座標は（（ｘＰ＋（ｎＰＳＷ＞＞１）），（ｙＰ＋（ｎＰＳＨ＞＞１）））に等しく、ここにおいて、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しい、請求項１に記載の方法。
【請求項３】
前記参照ビュー中の前記参照ピクチャ中の前記ブロックを決定することは、
前記参照ピクチャ中の前記位置のｘ座標及びｙ座標を決定することと、
決定された前記ｘ座標及びｙ座標をカバーする前記ブロックを決定することと
を備え、
前記参照ピクチャ中の前記位置の前記ｘ座標はｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、前記参照ピクチャ中の前記位置の前記ｙ座標はｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しく、ここにおいて、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しく、ｍｖＤｉｓｐ［０］が前記視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］が前記視差ベクトルのｙ成分に等しい、請求項１に記載の方法。
【請求項４】
前記参照ビュー中の前記参照ピクチャ中の前記ブロックを決定することは、
前記参照ピクチャ中の前記位置のｘ座標及びｙ座標を決定することと、
決定された前記ｘ座標及びｙ座標をカバーする前記ブロックを決定することと
を備え、
前記参照ピクチャ中の前記位置の前記ｘ座標はＣｌｉｐ３（０，ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL−１，ｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、前記参照ピクチャ中の前記位置の前記ｙ座標はＣｌｉｐ３（０，ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓL−１，ｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しく、ここにおいて、ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓLが前記参照ピクチャの幅に等しく、ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓLが前記参照ピクチャの高さに等しく、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しく、ｍｖＤｉｓｐ［０］が前記視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］が前記視差ベクトルのｙ成分に等しい、請求項１に記載の方法。
【請求項５】
前記現在のブロックをインター予測復号することは、決定された前記ブロックの動き情報に基づいて前記現在のブロックをインター予測復号すること、又は前記決定されたブロックの再構築に基づいて前記現在のブロックをインター予測復号すること、のうちの１つを備える、請求項１に記載の方法。
【請求項６】
前記参照ピクチャ中の前記ブロックを決定することは、前記視差ベクトルが参照する前記参照ピクチャ中の前記位置をカバーする４×４ブロックを決定することを備える、請求項１に記載の方法。
【請求項７】
決定された前記ブロックの動き情報を候補動きベクトル予測子のリストに挿入すること
を更に備え、
前記現在のブロックをインター予測復号することは、決定された前記ブロックの前記動き情報が候補動きベクトル予測子の前記リストから選択された場合に、前記決定されたブロックの前記動き情報を使用して前記現在のブロックをインター予測復号することを備える、請求項１に記載の方法。
【請求項８】
ビデオ符号化の方法であって、
現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することと、
参照ビュー中の参照ピクチャ中のブロックを、前記現在のブロック内の中心２×２サブブロック中の右下画素から開始する前記視差ベクトルに基づいて、前記視差ベクトルが参照する前記参照ピクチャ中の位置に基づいて決定することと、
決定された前記ブロックに基づいて前記現在のブロックをインター予測符号化することと
を備える方法。
【請求項９】
前記現在のブロック内の前記中心２×２サブブロック中の前記右下画素の座標は（（ｘＰ＋（ｎＰＳＷ＞＞１）），（ｙＰ＋（ｎＰＳＨ＞＞１）））に等しく、ここにおいて、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しい、請求項８に記載の方法。
【請求項１０】
前記参照ビュー中の前記参照ピクチャ中の前記ブロックを決定することは、
前記参照ピクチャ中の前記位置のｘ座標及びｙ座標を決定することと、
決定された前記ｘ座標及びｙ座標をカバーする前記ブロックを決定することと
を備え、
前記参照ピクチャ中の前記位置の前記ｘ座標はｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、前記参照ピクチャ中の前記位置の前記ｙ座標はｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しく、ここにおいて、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しく、ｍｖＤｉｓｐ［０］が前記視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］が前記視差ベクトルのｙ成分に等しい、請求項８に記載の方法。
【請求項１１】
前記参照ビュー中の前記参照ピクチャ中の前記ブロックを決定することは、
前記参照ピクチャ中の前記位置のｘ座標及びｙ座標を決定することと、
決定された前記ｘ座標及びｙ座標をカバーする前記ブロックを決定することと
を備え、
前記参照ピクチャ中の前記位置の前記ｘ座標はＣｌｉｐ３（０，ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL−１，ｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、前記参照ピクチャ中の前記位置の前記ｙ座標はＣｌｉｐ３（０，ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓL−１，ｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しく、ここにおいて、ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓLが前記参照ピクチャの幅に等しく、ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓLが前記参照ピクチャの高さに等しく、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しく、ｍｖＤｉｓｐ［０］が前記視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］が前記視差ベクトルのｙ成分に等しい、請求項８に記載の方法。
【請求項１２】
前記現在のブロックをインター予測符号化することは、決定された前記ブロックの動き情報に基づいて前記現在のブロックをインター予測符号化すること、又は前記決定されたブロックの再構築に基づいて前記現在のブロックをインター予測符号化すること、のうちの１つを備える、請求項８に記載の方法。
【請求項１３】
前記参照ピクチャ中の前記ブロックを決定することは、前記視差ベクトルが参照する前記参照ピクチャ中の前記位置をカバーする４×４ブロックを決定することを備える、請求項８に記載の方法。
【請求項１４】
決定された前記ブロックの動き情報を候補動きベクトル予測子のリストに挿入すること
を更に備え、
前記現在のブロックをインター予測符号化することは、決定された前記ブロックの前記動き情報が候補動きベクトル予測子の前記リストから選択された場合に、決定された前記ブロックの前記動き情報を使用して前記現在のブロックをインター予測符号化することを備える、請求項８に記載の方法。
【請求項１５】
ビデオコード化のための機器であって、
ビデオデータを記憶するように構成されたビデオデータメモリと、
１つ以上のプロセッサを備え、
記憶された前記ビデオデータに基づいて、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定し、
参照ビュー中の参照ピクチャ中のブロックを、前記現在のブロック内の中心２×２サブブロック中の右下画素から開始する前記視差ベクトルに基づいて、前記視差ベクトルが参照する前記参照ピクチャ中の位置に基づいて決定し、
決定された前記ブロックに基づいて前記現在のブロックをインター予測コード化する
ように構成されたビデオコーダと
を備える機器。
【請求項１６】
前記現在のブロック内の前記中心２×２サブブロック中の前記右下画素の座標は（（ｘＰ＋（ｎＰＳＷ＞＞１）），（ｙＰ＋（ｎＰＳＨ＞＞１）））に等しく、ここにおいて、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しい、請求項１５に記載の機器。
【請求項１７】
前記参照ビュー中の前記参照ピクチャ中の前記ブロックを決定するために、前記ビデオコーダは、
前記参照ピクチャ中の前記位置のｘ座標及びｙ座標を決定し、
決定された前記ｘ座標及びｙ座標をカバーする前記ブロックを決定する
ように構成され、
前記参照ピクチャ中の前記位置の前記ｘ座標はｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、前記参照ピクチャ中の前記位置の前記ｙ座標はｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しく、ここにおいて、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しく、ｍｖＤｉｓｐ［０］が前記視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］が前記視差ベクトルのｙ成分に等しい、請求項１５に記載の機器。
【請求項１８】
前記参照ビュー中の前記参照ピクチャ中の前記ブロックを決定するために、前記ビデオコーダは、
前記参照ピクチャ中の前記位置のｘ座標及びｙ座標を決定し、
決定された前記ｘ座標及びｙ座標をカバーする前記ブロックを決定する
ように構成され、
前記参照ピクチャ中の前記位置の前記ｘ座標はＣｌｉｐ３（０，ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL−１，ｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、前記参照ピクチャ中の前記位置の前記ｙ座標はＣｌｉｐ３（０，ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓL−１，ｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しく、ここにおいて、ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓLが前記参照ピクチャの幅に等しく、ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓLが前記参照ピクチャの高さに等しく、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しく、ｍｖＤｉｓｐ［０］が前記視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］が前記視差ベクトルのｙ成分に等しい、請求項１５に記載の機器。
【請求項１９】
前記現在のブロックをインター予測コード化するために、前記ビデオコーダは、決定された前記ブロックの動き情報に基づいて前記現在のブロックをインター予測コード化すること、又は前記決定されたブロックの再構築に基づいて前記現在のブロックをインター予測コード化すること、のうちの１つを行うように構成される、請求項１５に記載の機器。
【請求項２０】
前記参照ピクチャ中の前記ブロックを決定するために、前記ビデオコーダは、前記視差ベクトルが参照する前記参照ピクチャ中の前記位置をカバーする４×４ブロックを決定するように構成される、請求項１５に記載の機器。
【請求項２１】
前記ビデオコーダは、決定された前記ブロックの動き情報を候補動きベクトル予測子のリストに挿入するように構成され、
前記現在のブロックをインター予測コード化するために、前記ビデオコーダは、前記決定されたブロックの前記動き情報が候補動きベクトル予測子の前記リストから選択された場合に、前記決定されたブロックの前記動き情報を使用して前記現在のブロックをインター予測コード化するように構成される、請求項１５に記載の機器。
【請求項２２】
前記機器は、
マイクロプロセッサ、
集積回路、又は
前記ビデオコーダを含むワイヤレス通信機器
のうちの１つを備える、請求項１５に記載の機器。
【請求項２３】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は実行されたときに、ビデオコード化のための機器の１つ以上のプロセッサに、
現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することと、
参照ビュー中の参照ピクチャ中のブロックを、前記現在のブロック内の中心２×２サブブロック中の右下画素から開始する前記視差ベクトルに基づいて、前記視差ベクトルが参照する前記参照ピクチャ中の位置に基づいて決定することと、
決定された前記ブロックに基づいて前記現在のブロックをインター予測コード化することと
を行わせる、コンピュータ可読記憶媒体。
【請求項２４】
前記現在のブロック内の前記中心２×２サブブロック中の前記右下画素の座標は（（ｘＰ＋（ｎＰＳＷ＞＞１）），（ｙＰ＋（ｎＰＳＨ＞＞１）））に等しく、ここにおいて、ｙＰが前記現在のブロックの左上隅のｙ座標に等しく、ｘＰが前記現在のブロックの左上隅のｘ座標に等しく、ｎＰＳＷが前記現在のブロックの幅に等しく、ｎＰＳＨが前記現在のブロックの高さに等しい、請求項２３に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記１つ以上のプロセッサに、前記参照ピクチャ中の前記ブロックを決定することを行わせる前記命令は、前記１つ以上のプロセッサに、前記視差ベクトルが参照する前記参照ピクチャ中の前記位置をカバーする４×４ブロックを決定することを行わせる命令を備える、請求項２３に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、２０１３年７月１７日に出願された米国仮出願第６１／８４７，５２２号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコード化に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ又はデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、携帯電話又は衛星無線電話、所謂「スマートフォン」、ビデオ遠隔会議機器、ビデオストリーミング機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコード化（ＡＶＣ）、現在開発中の高効率ビデオコード化（ＨＥＶＣ）規格によって定義された規格、及びそのような規格の拡張に記載されているビデオコード化技法など、ビデオコード化技法を実装する。ビデオ機器は、そのようなビデオコード化技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、及び／又は記憶し得る。
【０００４】
[0004]ビデオコード化技法は、ビデオシーケンスに固有の冗長性を低減又は除去するための空間的（ピクチャ内）予測及び／又は時間的（ピクチャ間）予測を含む。ブロックベースのビデオコード化では、ビデオスライス（例えば、ビデオフレーム又はビデオフレームの一部分）が、ツリーブロック、コード化単位（ＣＵ）、及び／又はコード化ノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化された（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化された（Ｐ又はＢ）スライス中のビデオブロックは、同じピクチャの中の隣接ブロック中の参照サンプルに対する空間的予測、又は他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームに参照されることがある。
【０００５】
[0005]空間的予測又は時間的予測は、コード化されるべきブロックの予測ブロックをもたらす。残差データは、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。インターコード化されたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、及びコード化されたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化されたブロックは、イントラコード化モード及び残差データに従って符号化される。更なる圧縮のために、残差データは、画素領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するためにエントロピーコード化が適用され得る。
【発明の概要】
【０００６】
[0006]本開示は、ビデオコード化プロセスにおいて現在のブロックの視差ベクトルにより（対応するブロックとも呼ばれる）参照ブロックを識別するための技法について説明する。参照ブロックは、現在のブロックに含むビューとは異なるビューに位置する。幾つかの例では、技法は、現在のブロックの視差ベクトルの開始位置を定義し得る。例えば、視差ベクトルによって参照される参照ブロックの位置を決定するために、視差ベクトルのｘ成分及びｙ成分が、視差ベクトルの開始位置のｘ座標及びｙ座標に加算されること、又はｘ座標及びｙ座標から減算されることがある。本開示で説明する開始位置を有する視差ベクトルにより参照ブロックを識別することによって、ビデオコード化の効率性又は利得が実現され得る。
【０００７】
[0007]一例では、本開示は、ビデオデータを復号する方法について説明し、本方法は、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することと、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置(location)に基づいて決定することと、決定されたブロックに基づいて現在のブロックをインター予測復号することとを備える。
【０００８】
[0008]一例では、本開示は、ビデオデータを符号化する方法について説明し、本方法は、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することと、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定することと、決定されたブロックに基づいて現在のブロックをインター予測符号化することとを備える。
【０００９】
[0009]一例では、本開示は、ビデオコード化のための機器について説明し、本機器は、ビデオデータを記憶するように構成されたビデオデータメモリと、１つ又は複数のプロセッサを備え、記憶されたビデオデータに基づいて、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定し、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定し、決定されたブロックに基づいて現在のブロックをインター予測コード化するように構成されたビデオコーダとを備える。
【００１０】
[0010]一例では、本開示は、命令を記憶したコンピュータ可読記憶媒体について説明し、命令は実行されたときに、ビデオコード化のための機器の１つ又は複数のプロセッサに、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することと、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定することと、決定されたブロックに基づいて現在のブロックをインター予測コード化することとを行わせる。
【００１１】
[0011]一例では、本開示は、ビデオコード化のための機器について説明し、本機器は、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定するための手段と、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定するための手段と、決定されたブロックに基づいて現在のブロックをインター予測コード化するための手段とを備える。
【００１２】
[0012]１つ又は複数の例の詳細は、添付の図面及び以下の説明において述べられる。他の特徴、目的、及び利点は、説明、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】[0013]ブロック識別のための技法を実装又はさもなければ利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】[0014]マルチビュービデオコード化シーケンスをコード化することを示す概念図。
【図３】[0015]例示的なマルチビュービデオコード化の予測パターンを示す概念図。
【図４】[0016]参照ブロックを識別するための視差ベクトルの例示的な開始位置を示す概念図。
【図５】[0017]隣接ブロックベース視差ベクトル（ＮＢＤＶ）導出のための時間的隣接ブロックを示す概念図。
【図６】[0018]後方ビュー合成予測（ＢＶＳＰ）に関連する参照ビューからの深度ブロック導出を示す概念図。
【図７】[0019]ビュー間予測動きベクトル候補の導出を示すブロック図。
【図８】[0020]深度コード化のための動きベクトル継承（ＭＶＩ：motion vector inheritance）候補の導出を示す概念図。
【図９】[0021]先進残差予測の例示的な予測構造を示す概念図。
【図１０】[0022]先進残差予測の例示的な予測構造を示す別の概念図。
【図１１】[0023]本開示で説明する１つ又は複数の例示的な技法による、ブロック識別のための技法を実装又はさもなければ利用し得るビデオエンコーダの一例を示すブロック図。
【図１２】[0024]本開示で説明する１つ又は複数の例示的な技法による、ブロック識別のための技法を実装又はさもなければ利用し得るビデオデコーダの一例を示すブロック図。
【図１３】[0025]ビデオ復号の例示的な方法を示すフローチャート。
【図１４】[0026]ビデオ符号化の例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１４】
[0027]本開示は、テクスチャビューと深度ビューとを含む３次元（３Ｄ）ビデオコンテンツのコード化のための様々な技法について説明する。より具体的には、参照中のブロックを識別するためにビュー間動き予測が適用されるときに、異なる方法が提供される。技法は、幾つかの態様では、ビデオエンコーダによって実行され得る。他の態様では、技法は、ビデオデコーダによって実行され得る。更に、そのような方法は、トランスコーダ、メディアアウェアネットワーク要素（ＭＡＮＥ）などのような、他の機器において実行され得る。本開示では、技法は、説明のために、ビデオエンコーダ及びビデオデコーダに関して記載される。例えば、ビデオエンコーダ及びビデオデコーダは、例えば先進残差コード化又はビュー間予測コード化において、現在のブロックに関連する参照ビュー中の対応するブロックへのアクセスを必要とするコード化ツールを利用することができる。
【００１５】
[0028]ビデオコード化（例えば、符号化又は復号）の幾つかの例では、ビデオコーダ（例えば、ビデオエンコーダ又はビデオデコーダ）は、コード化される（例えば、符号化又は復号される）べき現在のブロックについての視差ベクトルを決定する。視差ベクトルは、現在のブロックを含むビュー以外のビュー中の（対応するブロックとも呼ばれる）参照ブロックを参照する。視差ベクトルは、幾つかの例として、ビュー間動き予測、ビュー間残差予測など、現在のブロックを符号化又は復号するために使用される様々なビデオコード化ツール、及び視差ベクトルが視差動きベクトルに変換されるビデオコード化ツールによって使用される。本開示で説明する技法は、現在のブロックについての視差ベクトルに基づいて参照ブロックを識別する方法について説明する。
【００１６】
[0029]参照ブロックを識別するために、ビデオコーダは、視差ベクトルの値に開始位置の座標を加算することができる。例えば、視差ベクトルはｘ成分とｙ成分とを含む。ビデオコーダは、視差ベクトルのｘ成分に開始位置のｘ座標を加算し、視差ベクトルのｙ座標に開始位置のｙ座標を加算する。得られる値は、終了位置における画素のｘ座標及びｙ座標であり得る。ビデオコーダは、得られた座標値により位置（即ち、画素）を包含するブロックを決定し、そのブロックを、現在のブロックについての参照ブロックとして識別することができる。
【００１７】
[0030]幾つかの例では、ビデオコーダは、参照ビューの参照ピクチャ中の位置Ｃ０に位置する画素を視差ベクトルが参照するように、視差ベクトルの開始位置を設定することができる。ビデオコーダは、視差ベクトルの値に基づいて（例えば、視差ベクトルのｘ成分及びｙ成分に基づいて）参照ビューの参照ピクチャ中の位置Ｃ０を決定する。
【００１８】
[0031]参照ビューの参照ピクチャ中の位置Ｃ０を視差ベクトルの値に基づいて決定するための式については、以下でより詳細に説明する。一般に、視差ベクトルの開始位置は、現在のブロックの中心サブブロック中の左上画素として、視差ベクトルが位置Ｃ０を参照するように決定される。現在のブロックの中心は、２×２サブブロック（例えば、中心サブブロック）を形成すると考えられ得る４つの画素を含む。視差ベクトルの開始位置がこの２×２サブブロック中の左上画素である場合、視差ベクトルは、参照ビューの参照ピクチャ中の位置Ｃ０を参照する（例えば、視差ベクトルの終了ポイントは、参照ピクチャ中の位置Ｃ０である）。
【００１９】
[0032]幾つかの例では、２×２中心サブブロックの位置は、ブロックの長さ及び幅を２で割ることによって計算され得る。２×２中心サブブロックの左上隅のｘ座標は、現在のブロックの左上隅のｘ座標に、幅を２で割った値を足し、１を引いた値である。２×２中心サブブロックの左上隅のｙ座標は、現在のブロックの左上隅のｙ座標に、高さを２で割った値をパルスにし、１を引いた値である。２×２中心サブブロックの右上隅は、２×２中心サブブロックの左上隅における画素のすぐ右に位置する画素であり、２×２中心サブブロックの左下隅は、２×２中心サブブロックの左上隅における画素のすぐ下に位置する画素であり、２×２中心サブブロックの右下隅は、２×２中心サブブロックの左下隅における画素のすぐ右、右上隅における画素のすぐ下、及び左上隅の対角線上の右下に位置する画素である。
【００２０】
[0033]ビデオコーダは、位置Ｃ０に位置する画素をカバーする（即ち、含む）参照ピクチャ中のブロックを決定することができる。次いでビデオコーダは、決定されたブロックを、視差ベクトルに依存するビデオコード化ツールに（例えば、幾つかの非限定的な例として、ビュー間動き予測、ビュー間残差予測、及び／又はブロックベースのビュー合成予測に）使用される現在のブロックについての（対応するブロックとも呼ばれる）参照ブロックとして識別することができる。
【００２１】
[0034]しかしながら、位置Ｃ０に位置する画素をカバーするブロックを参照ブロックとして利用することは、十分なコード化効率をもたらさないことがある。例えば、統計的傾向は、位置Ｃ０以外の位置に位置する画素をカバーするブロックが、現在のブロックについての参照ブロックとしてより良い候補であり得ることを示し得る。従って、視差ベクトルの開始位置を、現在のブロック内の２×２中心サブブロックの左上画素の位置に等しく設定すると、最適なコード化効率をもたらさないことがあるブロックを識別することになり得る。
【００２２】
[0035]本開示は、参照ビューの参照ピクチャ中の位置Ｃ０に位置する画素以外の画素の位置を決定し、当該他の画素をカバーするブロックを、現在のブロックについての参照ブロック（例えば、対応するブロック）として識別する例示的な技法について説明する。一例として、本開示は、位置Ｃ０に位置する画素の右下に位置する参照ピクチャ中の画素の位置を決定するための技法について説明する。例えば、位置Ｃ０に位置する画素の右下に位置する画素は、Ｃ０に位置する画素の位置に対して、参照ピクチャ内で絶対的ではない（１，１）に位置すると考えられ得る。
【００２３】
[0036]Ｃ０に位置する画素の右下に位置する参照ピクチャ中の画素の位置は、本開示では位置Ｃ３と呼ばれる。ビデオコーダは、視差ベクトルの値（例えば、視差ベクトルのｘ成分及びｙ成分）及び以下でより詳細に説明する位置Ｃ３を決定するための式に基づいて、位置Ｃ３を決定する。ビデオコーダが位置Ｃ３に位置する画素を決定する例では、ビデオコーダは、位置Ｃ３に位置する画素をカバーする（即ち、含む）ブロックを決定し、決定されたブロックを、現在のブロックについての参照ブロックとして識別することができる。
【００２４】
[0037]上述のように、位置Ｃ３は、位置Ｃ０の右に１画素、下に１画素進んだ所に位置する。従って、現在のブロック内の視差ベクトルの開始位置も右に１画素、下に１画素だけ変更された場合、視差ベクトルは、今度は位置Ｃ３を参照することになる。例えば、上述のように、視差ベクトルが現在のブロック内の中心２×２サブブロックの左上画素から開始する場合、視差ベクトルは、参照ビューの参照ピクチャ中の位置Ｃ０を参照する。従って、視差ベクトルの開始位置が右に１画素、下に１画素だけシフトした場合（即ち、現在のブロック内の中心２×２サブブロックの右下画素）、視差ベクトルは位置Ｃ３を参照する。
【００２５】
[0038]本開示で説明する１つ又は複数の例示的な技法では、ビデオコーダは、中心２×２サブブロックの左上画素から開始する視差ベクトルによって参照される位置をカバーするブロックを決定するのではなく、中心２×２サブブロックの右下画素から開始する視差ベクトルによって参照される位置をカバーする参照ビューの参照ピクチャ内のブロックを決定し、そのブロックを参照ブロックとして識別することができる。言い換えれば、ビデオコーダは、中心２×２サブブロックの左上画素から開始する視差ベクトルによって参照される位置Ｃ０をカバーするブロックではなく、中心２×２サブブロックの右下画素から開始する視差ベクトルによって参照される位置Ｃ３をカバーする参照ビュー中の参照ピクチャ中のブロックを、参照ブロックとして識別することができる。
【００２６】
[0039]幾つかの例では、位置Ｃ３を決定するのではなく、ビデオコーダは、中心２×２サブブロックの右上画素から視差ベクトルを開始することによって、（位置Ｃ１に位置する画素と呼ばれる）位置Ｃ０に位置する画素の右に位置する画素の位置を決定すること、又は中心２×２サブブロックの左下画素から視差ベクトルを開始することによって、（位置Ｃ２に位置する画素と呼ばれる）位置Ｃ０に位置する画素の下に位置する画素の位置を決定することができる。これらの例では、ビデオコーダは、位置Ｃ１に位置する画素又は位置Ｃ２に位置する画素をカバーする参照ビュー中の参照ピクチャ中のブロックを決定し、決定されたブロックを、現在のブロックについての参照ブロックとして識別することができる。
【００２７】
[0040]上記の例では、位置Ｃ０、Ｃ１、Ｃ２、又はＣ３のうちの１つに位置する画素を決定するために、ビデオコーダは、視差ベクトルが位置Ｃ０、Ｃ１、Ｃ２、又はＣ３のうちの１つに位置する画素を指すように、視差ベクトルの開始位置を設定することができる。例えば、ビデオコーダは、視差ベクトルの値に開始位置の座標値を加算し、得られる座標値が位置Ｃ０、Ｃ１、Ｃ２、又はＣ３のうちの１つについての座標値になるようにする。このようにして、視差ベクトルの開始位置を適切に設定することによって、ビデオコーダは視差ベクトルに、位置Ｃ０、Ｃ１、Ｃ２、又はＣ３のうちの１つに位置する画素のうちの１つを参照させることができる。
【００２８】
[0041]参照ビューの参照ピクチャ中の位置Ｃ３に位置する画素をカバーするブロックが動き情報を含まない（例えば、イントラ予測される）か、又は視差ベクトルに依存し、現在のブロックをコード化するために使用されるビデオコード化ツールに動き情報が利用不可能である場合、ビデオコーダは、このコード化ツールが現在のブロックに利用可能ではないと決定し得る。しかしながら、技法は、そのように限定されない。
【００２９】
[0042]幾つかの例では、ビデオコーダは、位置Ｃ３に位置する画素をカバーする参照ビューの参照ピクチャ中のブロックを決定することがあり、位置Ｃ３に関連するブロックについての動き情報が、（例えば、ブロックがイントラ予測されるか、又は動き情報が使用可能ではないので）視差ベクトルに依存するビデオコード化ツールのうちの１つ又は複数に利用不可能である場合、ビデオコーダは続いて、位置Ｃ０に位置する画素をカバーする参照ビューの参照ピクチャ中のブロックを決定し得る。次いでビデオコーダは、位置Ｃ０に位置する画素をカバーするブロックを参照ブロックとして識別することができる。幾つかの例では、ビデオコーダは、反対のステップを実行することができる（例えば、位置Ｃ０に位置する画素をカバーするブロックが、視差ベクトルに依存するビデオコード化ツールに使用可能な動き情報を含まない場合、ビデオコーダは、位置Ｃ３に位置する画素をカバーするブロックを参照ブロックとして識別する）。
【００３０】
[0043]位置Ｃ３に位置する画素をカバーするブロック及び位置Ｃ０に位置する画素をカバーするブロックが、視差ベクトルに依存するビデオコード化ツールに利用可能である動き情報を含まない場合、ビデオコーダは、視差ベクトルに依存するビデオコード化ツールのうちの１つ又は複数が現在のブロックに利用可能ではないと決定することができる。幾つかの例では、ビデオコード化ツールのうちの１つ又は複数が利用可能ではないと決定するのではなく、ビデオコーダは、位置Ｃ１又は位置Ｃ２に位置する画素をカバーするそれぞれのブロックが、ビデオコード化ツールのうちの１つ又は複数に利用可能な動き情報を含むかどうかを決定し、そのようなブロックを、現在のブロックについての参照ブロックとして識別することができる。
【００３１】
[0044]以下でより詳細に説明する位置ＢＲ０、ＢＲ１、又はＢＲ２に位置するブロックなどの追加のオプションもあり得る。例えば、ビデオコーダは、参照ビューの参照ピクチャ中の位置ＢＲ０、ＢＲ１、又はＢＲ２に位置するブロックについての動き情報が、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに使用可能な、又は望ましい動き情報を含むかどうかを決定し、ブロックＢＲ０、ＢＲ１、又はＢＲ２のうちの決定された１つを、現在のブロックについての参照ブロックとして識別することができる。
【００３２】
[0045]視差ベクトルが現在のブロックの左上隅から開始する場合、参照ビューの参照ピクチャ中のブロックＢＲ０の位置は、視差ベクトルによって参照されるブロックの右下にあるブロックの位置に等しい。ブロックＢＲ１の位置は、ブロックＢＲ０の右下にあり、ブロックＢＲ２の位置は、ブロックＢＲ１の右下にある。例えば、参照ピクチャ内の絶対位置ではなく、相対的に見ると、ブロックＢＲ１はブロックＢＲ０に対して（１，１）に位置し、ブロックＢＲ２はブロックＢＲ０に対して（２，２）に位置する。
【００３３】
[0046]幾つかの例では、ビデオコーダは、現在のブロックの左上隅から開始する視差ベクトルに基づいて、参照ビューの参照ピクチャ中の位置を決定することができる。ビデオコーダは、参照ビューの参照ピクチャ中の４×４ブロックの左上隅として、決定された位置が位置合わせされるように、決定された位置をシフトさせ、量子化することができる。次いでビデオコーダは更に、参照ピクチャ内の別のブロックの位置を決定するために、決定された位置を（例えば、右に、下に、又は両方の組合せの方向に）シフトさせることができる。ビデオコーダはこのブロックを、現在のピクチャについての参照ブロックとして識別することができる。
【００３４】
[0047]参照ブロックを識別するための上記の例示的な技法は、ビデオコーダが、位置Ｃ３、次いでＣ０、次いでＣ１、次いでＣ２における画素をカバーするブロック、次いで位置ＢＲ０、次いでＢＲ１、次いでＢＲ２、次いでシフトした位置におけるブロックを決定することに関して説明されている。しかしながら、本開示で説明する技法は、そのように限定されない。参照ビューの参照ピクチャ中のブロックがチェックされる他の順列も可能であり、本開示で説明する技法によって企図される。
【００３５】
[0048]その上、ビデオコーダが参照ブロックを識別するためにこれらのブロックを１つずつチェックする必要はない。ビデオコーダは、視差ベクトルに依存するビデオコード化ツールのうちの１つ又は複数にこれらのブロックのうちの１つが適していると決定すると（即ち、ビデオコード化の決定に基づいて）すぐに、参照ブロックの探索を打ち切ることができる。
【００３６】
[0049]幾つかの例では、ビデオコーダは、参照ブロックがまったく識別されない場合でも、１つのブロックをチェックすることのみを含め、これらの例示的な位置のサブセットをチェックした後、参照ブロックの探索を打ち切ることができる。例えば、ビデオコーダは、位置Ｃ３に位置する画素をカバーするブロックが、１つ又は複数のビデオコード化ツールに利用可能な動き情報を含むかどうかを決定することができる。（例えば、ブロックがイントラコード化されるか、又はブロックの動きベクトルが視差動きベクトルであるか、又はブロックの動きベクトルが、現在のブロックの参照ピクチャリスト中にないピクチャを参照するので）動き情報が利用可能ではない場合、ビデオコーダは、チェックするべき他の考えられるブロックがあり得るとしても、参照ブロックの探索を打ち切り、参照ブロックが利用可能ではないと決定することができる。
【００３７】
[0050]視差ベクトルによって参照される参照ブロックを識別するための上記の技法は、単に理解を助けるために別個に説明されている。しかしながら、本開示で説明する技法は、そのように限定されず、組み合わされてよいことを理解されたい。更に、上記の例示的な技法は、ブロックに関連するシンタックス要素又は変数を識別することが必要とされる場合に任意のシナリオに一般化され得る。
【００３８】
[0051]また、上記の技法は、参照ブロックを識別するための暗示的技法（例えば、参照ブロックは常に、位置Ｃ３に位置する画素をカバーするブロックである、又は位置Ｃ３をカバーする参照ブロックを最初にチェックし、次いで位置Ｃ０に移動する、など）に関して説明されている。これらの技法は、参照ブロックを識別する方法についての情報をビデオエンコーダがビデオデコーダに信号伝達する必要がない（例えば、参照ブロックを識別する方法についての情報の明示的な信号伝達が必要とされない）という意味で暗示的である。幾つかの例では、ビデオエンコーダは、視差ベクトルに依存するビデオコード化ツールのための動き情報をそれぞれ含む複数のブロックをチェックし、チェックされる複数のブロックの中でどのブロックが最大のコード化効率をもたらすかを決定することができる。ビデオエンコーダは、次いで、参照ブロックとして使用されるブロックを示す情報をビデオデコーダに明示的に信号伝達することができ、ビデオデコーダはその情報から、どのブロックが参照ブロックであるべきかを決定することができる。
【００３９】
[0052]更に、上記の技法は、視差ベクトルに依存するビデオコード化ツールに関して説明されている。しかしながら、本開示で説明する技法は、そのように限定されない。例えば、上記の技法は、ブロックに関連するシンタックス要素又は変数を識別することが必要とされる場合に任意のシナリオに一般化され得る。
【００４０】
[0053]一般に、本開示で説明する技法では、ビデオコーダは、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することができる。ビデオコーダは、参照ビュー中の参照ピクチャ中のブロックを、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定する（例えば、参照ピクチャ中の位置Ｃ３をカバーするブロックを決定する）ことができる。
【００４１】
[0054]ビデオコーダは、決定されたブロックに基づいて、現在のブロックをインター予測コード化する（例えば、符号化又は復号する）ことができる。例えば、以下でより詳細に説明するように、ビュー間動き予測では、ビデオコーダは、動きベクトル予測子のリストを形成する。参照ピクチャ中の決定されたブロックの動き情報は、動きベクトル予測子のうちの１つであり得る。決定されたブロックの動きベクトル情報が、現在のブロックをインター予測コード化する（例えば、インター予測符号化又はインター予測復号する）ために選択された場合、ビデオコーダは、参照ピクチャ中の決定されたブロックの動き情報に基づいて、現在のブロックをインター予測コード化する。
【００４２】
[0055]幾つかの例では、ビデオコーダは視差ベクトルを、現在のブロックについての視差動きベクトルに変換することができる。これらの例では、現在のブロックについての視差動きベクトルは、予測ブロックと考えられ得る参照ブロックを参照する。例えば、ビデオエンコーダは、インター予測符号化目的で参照ブロックの再構築を記憶するフィードバック経路を含み、ビデオコーダは、インター予測復号目的で参照ブロックの再構築を記憶した。参照ブロックの再構築は、予測ブロックと考えられ得る。ビデオコーダは、現在のブロックをコード化するために、参照ブロックの再構築（例えば、予測ブロック）と現在のブロックとの間の残差を決定する。
【００４３】
[0056]図１は、ブロック識別のための技法を実装又はさもなければ利用するように構成され得る例示的なビデオ符号化及び復号システム１０を示すブロック図である。例えば、そのようなブロック識別技法は、ビュー間動き予測、ビュー間残差予測、視差ベクトルが視差動きベクトルに変換される例、又は視差ベクトルに依存する他のビデオコード化ツールの際に有用であり得る。ビュー間動き予測、ビュー間残差予測、及び視差ベクトルが視差動きベクトルに変換される例については、以下でより詳細に説明する。
【００４４】
[0057]図１に示すように、システム１０は、宛先機器１４によって後で復号されるべき符号化されたビデオデータを提供する発信源機器１２を含む。特に、発信源機器１２は、コンピュータ可読媒体１６を介して宛先機器１４にビデオデータを提供する。発信源機器１２及び宛先機器１４は、デスクトップコンピュータ、ノートブック（即ち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、所謂「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器などを含む、広範囲にわたる機器のいずれかを備え得る。場合によっては、発信源機器１２及び宛先機器１４はワイヤレス通信のために装備され得る。
【００４５】
[0058]宛先機器１４はリンク１６を介して、復号されるべき符号化されたビデオデータを受信し得る。リンク１６は、発信源機器１２から宛先機器１４に符号化されたビデオデータを移すことが可能な任意のタイプの媒体又は機器を備えることができる。一例では、リンク１６は、発信源機器１２が、符号化されたビデオデータをリアルタイムで宛先機器１４に直接送信することを可能にするための通信媒体（ワイヤード媒体又はワイヤレス媒体）を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調されてよく、宛先機器１４に送信されてよい。通信媒体は、無線周波（ＲＦ）スペクトル又は１つ以上の物理伝送線路など、任意のワイヤレス通信媒体又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又は発信源機器１２から宛先機器１４への通信を促進するために有用であり得る任意の他の機器を含み得る。
【００４６】
[0059]幾つかの例では、符号化されたデータは、発信源機器１２の出力インターフェース２２から記憶装置３１などの記憶装置に出力され得る。同様に、符号化されたデータは、宛先機器１４の入力インターフェース２８によって記憶装置３１からアクセスされ得る。記憶装置３１は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性又は不揮発性メモリ、若しくは符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散した又はローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶装置３１は、発信源機器１２によって生成された符号化されたビデオを記憶することができるファイルサーバ又は別の中間記憶装置に対応し得る。宛先機器１４は、ストリーミング又はダウンロードを介して記憶装置から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先機器１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）装置、又はローカルディスクドライブを含む。宛先機器１４は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ（登録商標）接続）、有線接続（例えば、ＤＳＬ、ケーブルモデムなど）、又は、ファイルサーバに記憶されている符号化されたビデオデータにアクセスするのに適した、それらの両方の組合せを含み得る。記憶装置からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組合せであり得る。
【００４７】
[0060]本開示の技法は、ワイヤレスの適用例又は設定に必ずしも限定されるとは限らない。技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応型ＨＴＴＰストリーミング（ＤＡＳＨ：dynamic adaptive streaming over HTTP）などのインターネットストリーミングビデオ送信、データ記憶媒体へと符号化されるデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例などの、様々なマルチメディアの適用例のうちの任意のものをサポートするビデオコード化に適用され得る。幾つかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング及び／又はビデオテレフォニーなどの適用例をサポートするために一方向又は双方向のビデオ送信をサポートするように構成され得る。
【００４８】
[0061]図１の例では、発信源機器１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。宛先機器１４は、入力インターフェース２８と、ビデオデコーダ３０と、表示装置３２とを含む。本開示によれば、発信源機器１２のビデオエンコーダ２０及び宛先機器１４のビデオデコーダ３０は、本開示で説明する例示的な技法を実施するように構成され得る。幾つかの例では、発信源機器及び宛先機器は、他の構成要素又は構成を含んでもよい。例えば、発信源機器１２は、外部カメラなどの外部のビデオ発信源１８からビデオデータを受信し得る。同様に、宛先機器１４は、統合された表示装置を含むのではなく、外部の表示装置とインターフェースしてもよい。
【００４９】
[0062]図１の図示のシステム１０は、一例にすぎず、本開示で説明する技法は、任意のデジタルビデオ符号化及び／又は復号機器によって実行され得る。一般に、本開示の技法は、ビデオ符号化／復号機器によって実行されるが、技法は、通常「コーデック」と呼ばれるビデオエンコーダ／デコーダによって実行されてもよい。その上、本開示の技法は、ビデオプリプロセッサによって実行されてもよい。発信源機器１２及び宛先機器１４は、発信源機器１２が、コード化されたビデオデータを宛先機器１４への送信のために生成するようなコード化機器の例にすぎない。幾つかの例では、機器１２、１４は、機器１２、１４の各々がビデオ符号化構成要素と復号構成要素とを含むように実質的に対称的に動作し得る。従って、システム１０は、（例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、又はビデオテレフォニーのための）ビデオ機器１２とビデオ機器１４との間での一方向又は双方向のビデオ送信をサポートし得る。
【００５０】
[0063]発信源機器１２のビデオ発信源１８は、ビデオカメラ、以前に撮影されたビデオを含むビデオアーカイブ、及び／又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、撮像装置を含み得る。更なる代替として、ビデオ発信源１８は、発信源ビデオとしてのコンピュータグラフィックスベースのデータ、又は、ライブビデオ、アーカイブされたビデオ、及びコンピュータ生成のビデオの組合せを生成し得る。場合によっては、ビデオ発信源１８がビデオカメラである場合、発信源機器１２及び宛先機器１４は、所謂カメラ付き携帯電話又はビデオ付き携帯電話を形成し得る。しかしながら、上述のように、本開示で説明する技法は、一般にビデオコード化に適用可能であり得、ワイヤレス及び／又はワイヤードの適用例に適用され得る。各場合において、撮影されたビデオ、事前撮影された（pre-captured）ビデオ、又はコンピュータ生成のビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース２２によってリンク１６へ出力され得る。
【００５１】
[0064]宛先機器１４の入力インターフェース２８は、情報をリンク１６及び／又は記憶装置３１から受信する。受信された情報は、ビデオエンコーダ２０によって定義され、またビデオデコーダ３０によって使用される、ブロック及び他のコード化された単位の特性及び／又は処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。表示装置３２は、復号されたビデオデータをユーザに表示し、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置などの様々な表示装置のうちの任意のものを備え得る。
【００５２】
[0065]ビデオエンコーダ２０及びビデオデコーダ３０は、高効率ビデオコード化（ＨＥＶＣ）規格などのビデオコード化規格に従って動作し得、一般にＨＥＶＣテストモデル（ＨＭ）に準拠し得る。ＨＥＶＣ規格は、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって開発されている。ＨＥＶＣの最新のテキスト仕様、草案１０（ＷＤ１０）は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１２＿Ｇｅｎｅｖａ／ｗｇ１１／ＪＣＴＶＣ−Ｌ１００３−ｖ３４．ｚｉｐから入手可能であり、その内容の全体が参照により本明細書に組み込まれる。
【００５３】
[0066]幾つかの例では、ビデオエンコーダ２０及びビデオデコーダ３０は、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、３Ｄ−ＡＶＣ、又はマルチビューコード化のための他の規格など、現在開発中の様々な拡張に従って動作し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコード化（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格又は業界規格、若しくはそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。
【００５４】
[0067]ビデオコード化規格の他の例としては、ＭＰＥＧ−２、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２又はＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、ならびに、そのスケーラブルビデオコード化（ＳＶＣ）拡張及びマルチビュービデオコード化（ＭＶＣ）拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）ＩＴＵ−Ｔ  Ｈ．２６４がある。ビデオエンコーダ２０及びビデオデコーダ３０は、上記の例示的な規格のうちの１つもしくは複数に従って構成されてよく、又は任意の特定の規格に従って構成されなくてもよい。
【００５５】
[0068]図１には示されないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、オーディオエンコーダ及びオーディオデコーダと統合されてよく、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェアとソフトウェアとを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００５６】
[0069]ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果としてＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。幾つかの態様では、本開示で説明する技法は、Ｈ．２６４規格に概して準拠する機器に適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付のＩＴＵ−Ｔ勧告Ｈ．２６４「Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」に記載されており、本明細書ではＨ．２６４規格又はＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格又は仕様と呼ばれることがある。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００５７】
[0070]ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、集積回路（ＩＣ）、ソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は、１つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０及び／又はビデオデコーダ３０を含む機器は、集積回路、マイクロプロセッサ、及び／又は携帯電話のようなワイヤレス通信機器を備え得る。
【００５８】
[0071]本技法が部分的にソフトウェアで実装されるとき、機器は、好適なコンピュータ可読記憶媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために１つ又は複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は、１つ又は複数のエンコーダ又はデコーダに含まれる場合があり、両者のいずれかがそれぞれの機器中の複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として組み込まれる場合がある。
【００５９】
[0072]ＨＥＶＣの規格化の取組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコード化機器の発展型モデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存の機器に対してビデオコード化機器の幾つかの追加の機能を仮定する。例えば、Ｈ．２６４は、９つのイントラ予測符号化モードを提供するが、ＨＭは、３３ものイントラ予測符号化モードを提供し得る。
【００６０】
[0073]概して、ＨＭは、ビデオフレーム又はビデオピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロック又は最大コード化単位（ＬＣＵ）に分割され得ることを記載している。ＨＥＶＣ規格はまた、ＬＣＵを「コード化ツリー単位」又はＣＴＵと称する。ビットストリーム内のシンタックスデータは、ＬＣＵのサイズを定義し得、ＬＣＵは、画素の数の点で最大のコード化単位である。スライスは、幾つかの連続したツリーブロックを、コード化の順序で含む。ビデオフレーム又はビデオピクチャは、１つ又は複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコード化単位（ＣＵ）に分割され得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードがツリーブロックに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。
【００６１】
[0074]４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを提供し得る。例えば、４分木中のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵにスプリットされるかどうかに依存し得る。ＣＵが更に分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的な分割が存在しない場合でも、リーフＣＵの４つのサブＣＵもリーフＣＵと呼ばれる。例えば、１６×１６サイズのＣＵが更に分割されない場合、４つの８×８サブＣＵも、１６×１６ＣＵが分割されなくても、リーフＣＵと呼ばれる。
【００６２】
[0075]ＣＵは、ＣＵがサイズの特異性を有しないことを別にすれば、Ｈ．２６４規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは、４つの子ノード（サブＣＵとも呼ばれる）に分割され、各子ノードは、次に親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフＣＵとも呼ばれるコード化ノードを備える。コード化されたビットストリームに関連するシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義することができ、コード化ノードの最小サイズを定義することもできる。それに応じて、ビットストリームは最小コード化単位（ＳＣＵ）を定義することもできる。本開示は、「ブロック」という用語を、ＨＥＶＣのコンテキストにおいてＣＵ、ＰＵ、又はＴＵのうちのいずれか、若しくは他の規格のコンテキストにおいて類似のデータ構造（例えば、Ｈ．２６４／ＡＶＣのマクロブロック及びそのサブブロック）を指すために使用する。
【００６３】
[0076]ＣＵは、コード化ノードと、コード化ノードに関連する予測単位（ＰＵ）及び変換単位（ＴＵ）とを含む。ＣＵのサイズは、コード化ノードのサイズに対応し、形状において正方形でなければならない。ＣＵのサイズは、８×８画素から、最大で６４×６４画素又はそれよりも大きいツリーブロックのサイズまでに及び得る。各ＣＵは、１つ又は複数のＰＵと、１つ又は複数のＴＵとを含んでいることがある。ＣＵに関連するシンタックスデータは、例えば、ＣＵの１つ又は複数のＰＵへの区分を記述し得る。区分モードは、ＣＵがスキップもしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかの間で、異なり得る。ＰＵは、形状が非正方形に区分され得る。ＣＵに関連するシンタックスデータは、例えば、４分木に従って、ＣＵを１つ又は複数のＴＵに区分することも記述し得る。ＴＵは、形状において正方形又は非正方形（例えば、長方形）であってもよい。
【００６４】
[0077]ＨＥＶＣ規格は、ＣＵごとに異なり得る、ＴＵに従う変換を可能にする。ＴＵは、通常、区分されたＬＣＵのために定義された、所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるか、又はＰＵよりも小さい。幾つかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）と呼ばれる４分木構造を使用して、より小さい単位に再分割され得る。ＲＱＴのリーフノードは変換単位（ＴＵ）と呼ばれることがある。ＴＵに関連する画素差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
【００６５】
[0078]リーフＣＵは、１つ又は複数の予測単位（ＰＵ）を含むことができる。概して、ＰＵは、対応するＣＵの全て又は一部分に対応する空間的エリアを表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。その上、ＰＵは、予測に関係するデータを含む。例えば、ＰＵがイントラモード符号化又は復号される（即ち、イントラ予測されるか、又はインター予測符号化若しくは復号される）とき、ＰＵに関するデータは、残差４分木（ＲＱＴ）に含まれ、ＲＱＴは、ＰＵに対応するＴＵに関するイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化又は復号される（即ち、インター予測されるか、又はインター予測符号化もしくは復号される）とき、ＰＵは、ＰＵについての１つ又は複数の動きベクトルを定義するデータを含み得る。ＰＵについての動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４画素精度又は１／８画素精度）、動きベクトルが指す参照ピクチャ、及び／又は動きベクトルの参照ピクチャリスト（例えば、リスト０又はリスト１）を記述し得る。
【００６６】
[0079]１つ又は複数のＰＵを有するリーフＣＵはまた、１つ又は複数の変換単位（ＴＵ）を含むことができる。変換単位は、上述したように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。例えば、分割フラグは、リーフＣＵが４つの変換単位に分割されるかどうかを示し得る。次いで、各変換単位は、更なるサブＴＵに更に分割され得る。ＴＵが更に分割されないとき、そのＴＵはリーフＴＵと呼ばれることがある。一般に、イントラコード化の場合、リーフＣＵに属する全てのリーフＴＵは同じイントラ予測モードを共有する。即ち、同じイントラ予測モードが、一般に、リーフＣＵの全てのＴＵに対して予測される値を計算するために適用される。イントラコード化の場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応するＣＵの一部分と元のブロックとの間の差分として計算し得る。ＴＵは、必ずしも、ＰＵのサイズに限定されるとは限らない。従って、ＴＵはＰＵよりも大きくても、又は小さくてもよい。イントラコード化の場合、ＰＵは、同じＣＵの対応するリーフＴＵと同一位置配置（collocate）され得る。幾つかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００６７】
[0080]その上、リーフＣＵのＴＵはまた、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造に関連付けられ得る。即ち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは一般にリーフＣＵに対応し、ＣＵ４分木のルートノードは一般にツリーブロック（又はＬＣＵ）に対応する。分割されないＲＱＴのＴＵはリーフＴＵと呼ばれる。一般に、本開示は、別段に記載されていない限り、ＣＵ及びＴＵという用語を、それぞれ、リーフＣＵ及びリーフＴＵを指すために使用する。
【００６８】
[0081]ビデオシーケンスは、通常、一連のビデオフレーム又はビデオピクチャを含む。グループオブピクチャ（ＧＯＰ）は、一般に、ビデオピクチャのうちの一連の１つ又は複数を備える。ＧＯＰは、ＧＯＰに含まれる幾つかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャの１つもしくは複数のヘッダ中、又は他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含む場合がある。ビデオエンコーダ２０は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコード化ノードに対応する場合がある。ビデオブロックは、固定サイズ又は可変サイズを有し、指定のコード化規格に応じてサイズが異なり得る。
【００６９】
[0082]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎとすれば、ＨＭは、２Ｎ×２Ｎ又はＮ×ＮのＰＵサイズでのイントラ予測、及び２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎの対称なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮのＰＵサイズでのインター予測のための、非対称な区分をサポートする。非対称な区分では、ＣＵの一方向は区分されず、他の方向は２５％及び７５％に区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とそれに続く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、又は「Ｒｉｇｈｔ」という指示によって示される。従って、例えば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５ＮのＰＵ、及び下部の２Ｎ×１．５ＮのＰＵにより水平に区分される２Ｎ×２ＮのＣＵを指す。
【００７０】
[0083]本開示では、「Ｎ×Ｎ」及び「Ｎ  ｂｙ  Ｎ」は、垂直及び水平の寸法の観点からビデオブロックの画素寸法を指すために、例えば、１６×１６画素又は１６ｂｙ１６画素のように、互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６画素（ｙ＝１６）、及び水平方向に１６画素（ｘ＝１６）を有する。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮ画素、及び水平方向にＮ画素を有し、ここでＮは、非負の整数値を表す。ブロック中の画素は、行及び列に配列され得る。更に、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要はない。例えば、ブロックはＮ×Ｍ画素を備えてよく、ここで、Ｍは必ずしもＮに等しいとは限らない。
【００７１】
[0084]ＣＵのＰＵを使用したイントラ予測コード化又はインター予測コード化（即ち、イントラ予測符号化若しくは復号又はインター予測符号化若しくは復号）の後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、空間領域（画素領域とも呼ばれる）において予測画素データを生成する方法又はモードを記述するシンタックスデータを備え、ＴＵは、変換、例えば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャの画素と、ＰＵに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＣＵのための変換係数を生成するためにＴＵを変換し得る。
【００７２】
[0085]変換係数を生成するための任意の変換の後で、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部又は全てに関連するビット深度を低減し得る。例えば、ｎビットの値は、量子化中にｍビットの値に端数を丸められてよく、ここで、ｎはｍよりも大きい。
【００７３】
[0086]量子化の後に、ビデオエンコーダ２０は、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー（従って、より低い周波数）係数を配置し、アレイの後部により低いエネルギー（従って、より高い周波数）係数を配置するように設計され得る。幾つかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するために所定の走査順序を利用し得る。幾つかの例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元のベクトルを形成した後、ビデオエンコーダ２０は、例えば、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ）コード化又は別のエントロピー符号化の方法に従って、１次元のベクトルをエントロピー符号化し得る。ビデオエンコーダ２０は、ビデオデータを復号する際にビデオデコーダ３０が使用するための、符号化されたビデオデータに関連するシンタックス要素をエントロピー符号化することもできる。
【００７４】
[0087]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、例えば、シンボルの隣接値が非ゼロであるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに対する可変長符号を選択し得る。ＶＬＣの中の符号語は、比較的短い符号が優勢シンボルに対応し、より長い符号が劣勢シンボルに対応するように、構築され得る。このようにして、ＶＬＣの使用は、例えば、送信されるべき各シンボルのために等長符号語を使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００７５】
[0088]ビデオエンコーダ２０は、更に、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、及びＧＯＰベースのシンタックスデータなどのシンタックスデータを、例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、又はＧＯＰヘッダの中で、ビデオデコーダ３０へ送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰの中の幾つかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示し得る。
【００７６】
[0089]上記は、ＨＥＶＣ規格における例示的な方法、ビデオコード化技法について説明している。これらの例示的なビデオコード化技法はまた、ＭＶ−ＨＥＶＣ、３Ｄ−ＨＥＶＣ、Ｈ．２６４／ＭＶＣ、及び３Ｄ−ＡＶＣのマルチビュービデオコード化技法など、マルチビュービデオコード化技法に拡張可能であり得る。説明しやすいように、また説明のためにのみ、本開示で説明する技法は、３Ｄ−ＨＥＶＣに関して説明される。但し、例示的な技法は、他の規格又は規格外ベースのマルチビュービデオコード化技法にも拡張可能であり得る。
【００７７】
[0090]一般に、マルチビュービデオコード化では複数のビューが存在し、各ビュー中の対応する各ピクチャが同様のビデオコンテンツを含む。しかしながら、異なるビュー中の対応するピクチャ中のビデオブロック間に水平視差及び／又は垂直視差があり得る。３Ｄ視聴経験を生じさせるのは、ピクチャ間のこの視差である。一例として、表示器３２は、２つ以上のビューからのピクチャを表示し得る。特殊なゴーグル（又は他の技法）により、視聴者の左眼はピクチャを、複数のビューのうちの１つから受け取り、他のビューから受け取らず、視聴者の右眼はピクチャを、他のビューのうちの１つから受け取り、それ以外のビューから受け取らない。視聴者の脳は、視聴者に３Ｄ閲覧を経験させることによって、これらの異なるビューのピクチャ間の視差を解決する。
【００７８】
[0091]マルチビュービデオコード化では、ビューごとに、テクスチャコンポーネント及び対応する深度コンポーネント（深度マップと呼ばれる）があり得る。テクスチャコンポーネントは、実際のビデオデータを含み、ピクチャと考えられ得る。深度コンポーネントは、対応する深度コンポーネントにおける画素の相対深度を示す。あらゆる例において深度コンポーネントが必要であるとは限らない。幾つかの例では、ビューのうちの１つは深度コンポーネントを含み、他のビューは深度コンポーネントを含まないことがある。
【００７９】
[0092]ビデオコード化に関して、ＨＥＶＣ規格及び他の非マルチビュービデオコード化技法は、様々な時間に出力又は表示されるピクチャ間のインター予測を可能にする（例えば、現在のピクチャは、異なる時間に表示されるべきピクチャによりインター予測される）。そのようなインター予測を可能にすることに加えて、マルチビュービデオコード化のための技法は、ビュー間予測を可能にし、ビュー間予測では１つのピクチャが、異なるビュー中の別のピクチャによりインター予測される。
【００８０】
[0093]マルチビュービデオコード化の理解を助けるために、以下では、幾つかの追加の情報を提供する。現在、ＶＣＥＧ及びＭＰＥＧのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ ｏｎ  ３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−３Ｃ）は、ＨＥＶＣに基づいて３ＤＶ規格を開発中であり、そのための規格化の取組みの一部は、ＨＥＶＣに基づくマルチビュービデオコーデック（ＭＶ−ＨＥＶＣ）と、ＨＥＶＣに基づく３Ｄビデオコード化（３Ｄ−ＨＥＶＣ）のための別の部分との規格化を含む。ＭＶ−ＨＥＶＣでは、一般に、ＨＥＶＣ中のＣＵ／ＰＵレベルにおけるモジュールが再設計される必要がなく、ＭＶ−ＨＥＶＣに完全に再使用され得ないように、ＭＶ−ＨＥＶＣにおいてハイレベルシンタックス（ＨＬＳ）の変更しかないことが保証されるべきである。３Ｄ−ＨＥＶＣでは、コード化ユニット／予測単位レベルのコード化ツールを含む新たなコード化ツールが、テクスチャビューと深度ビューの両方に関して含められ、サポートされ得る。３Ｄ−ＨＥＶＣのための最新のソフトウェア３Ｄ−ＨＴＭは、以下のリンク、即ち、[３Ｄ−ＨＴＭバージョン７．０]：ｈｔｔｐｓ：／／ｈｅｖｃ．ｈｈｉ．ｆｒａｕｎｈｏｆｅｒ．ｄｅ／ｓｖｎ／ｓｖｎ＿３ＤＶＣＳｏｆｔｗａｒｅ／ｔａｇｓ／ＨＴＭ−７．０／からダウンロード可能である。次のような、最新の参照ソフトウェア記述、ならびに３Ｄ−ＨＥＶＣの作業草案が入手可能である。Ｇｅｒｈａｒｄ  Ｔｅｃｈ、Ｋｒｚｙｓｚｔｏｆ  Ｗｅｇｎｅｒ、Ｙｉｎｇ  Ｃｈｅｎ、Ｓｅｈｏｏｎ  Ｙｅａ、「３Ｄ−ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ  ４」、ＪＣＴ３Ｖ−Ｄ１００５＿ｓｐｅｃ＿ｖ１、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  ３Ｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｔｅｎｓｉｏｎ  Ｄｅｖｅｌｏｐｍｅｎｔ、第４回会合：韓国、仁川、２０１３年４月２０〜２６日。この文書は以下のリンク、即ち、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｔ−ｓｕｄｐａｒｉｓ．ｅｕ／ｊｃｔ２／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／４＿Ｉｎｃｈｅｏｎ／ｗｇ１１／ＪＣＴ３Ｖ−Ｄ１００５−ｖ１．ｚｉｐからダウンロード可能である。
【００８１】
[0094]ＭＶＣは、Ｈ．２６４／ＡＶＣの拡張である。ＭＶＣ仕様については、以下の本開示のセクション及びサブセクションで簡単に述べる。本開示では、マルチビュービデオコード化と略さずに書かれたとき、本開示は一般に、複数のビューが存在するビデオコード化を指している。頭文字ＭＶＣが使用されるとき、本開示は、（Ｈ．２６４／ＭＶＣと呼ばれることがある）Ｈ．２６４／ＡＶＣの拡張であるビデオコード化規格を指している。
【００８２】
[0095]図２は、マルチビュービデオコード化シーケンスを示す概念図である。例えば、典型的なマルチビュービデオ復号順序（即ち、ビットストリーム順序）が図２に示されている。復号順序の構成は時間優先コード化と呼ばれる。各アクセス単位（ＡＵ）は、１つの出力時間インスタンスのための全てのビューのコード化されたピクチャを含むように定義される。アクセス単位の復号順序は出力又は表示の順序と同じでない場合があることに留意されたい。
【００８３】
[0096]例えば、図２では、Ｓ０〜Ｓ７は異なるビューを参照しており、Ｓ０はベースビューと考えられ、他は依存ビューと考えられ得る。図２では、０、８、１６、２４．．．として識別されたピクチャはビューＳ０に属し、１、９、１７、２５．．．として識別されたピクチャはビューＳ１に属し、以下同様である。１つのＡＵは、同じ又は実質的に同様の出力時間インスタンスの全てのピクチャについてのピクチャ情報を含む。例えば、ピクチャ０〜７はそれぞれビューＳ０〜Ｓ７に属し、ほぼ時間Ｔ０に出力される。
【００８４】
[0097]図３は、例示的なマルチビュービデオコード化の予測パターンを示す概念図である。例えば、図３に、マルチビュービデオコード化用の典型的なマルチビュービデオコード化予測（各ビュー内のピクチャ間予測とビュー間予測の両方を含む）構造が示され、ここでは矢印によって予測が示され、矢印の終点のオブジェクトは、予測参照のために矢印の始点のオブジェクトを使用する。
【００８５】
[0098]ＭＶＣでは、Ｈ．２６４／ＡＶＣ動き補償のシンタックスを使用するが、異なるビュー中のピクチャが参照ピクチャとして使用されることを可能にする視差動き補償によって、ビュー間予測がサポートされる。他のマルチビュービデオコード化規格も同様にビュー間予測を可能にする。例えば、ＭＶ−ＨＥＶＣ及び３Ｄ−ＨＥＶＣは、ＨＥＶＣ用のシンタックスを使用して視差動き補償をサポートする。
【００８６】
[0099]２つのビューのコード化は、マルチビュービデオコード化によってもサポートされる可能性があり、マルチビュービデオコード化の利点の１つは、ビデオエンコーダ２０が３Ｄビデオ入力として３つ以上のビューをとらえることができ、ビデオデコーダ３０がそのようなマルチビュー表現を復号することができることである。これは、マルチビュービデオコード化デコーダをもつレンダラが、３つ以上のビューをもつ３Ｄビデオコンテンツを処理し得る方法である。
【００８７】
[0100]マルチビュービデオコード化では、同じアクセス単位中の（即ち、同じ時間インスタンスをもつ）ピクチャ間でビュー間予測が可能になる。非ベースビューのうちの１つ中のピクチャをコード化するとき、ピクチャが異なるビュー中にあるが同じ時間インスタンスをもつ場合、そのピクチャは参照ピクチャリストに追加され得る。ビュー間参照ピクチャは、任意のインター予測参照ピクチャと同様に、参照ピクチャリストの任意の位置に置かれ得る。ビュー間参照ピクチャが動き補償のために使用されるとき、対応する動きベクトルは「視差動きベクトル」と呼ばれる。
【００８８】
[0101]３Ｄ−ＨＥＶＣ及びＭＶ−ＨＥＶＣでは、コード化効率を更に改善するために、２つの新規の技術、即ち、「ビュー間動き予測」及び「ビュー間残差予測」が、最新の参照ソフトウェアにおいて採用されてきている。これらの２つのコード化ツールを有効にするために、第１のステップは、視差ベクトルを導出することである。ビュー間動き／残差予測のために他のビュー中の対応するブロックを位置特定するか、又はビュー間動き予測のために視差動きベクトルに変換されるかのいずれかのために、視差ベクトルが使用される。
【００８９】
[0102]ビュー間動き予測及びビュー間残差予測は、現在のブロックについての視差ベクトルを利用するビデオコード化ツールの幾つかの例であるが、視差ベクトルを使用する更なるビデオコード化ツールがあり得、本開示で説明する技法は、視差ベクトルを利用するビデオコード化ツールのこれらの例に限定されない。現在のブロックについての視差ベクトルを決定するための技法、ならびにビュー間動き予測及びビュー間残差予測などの視差ベクトルの例示的な使用については、以下でより詳細に説明する。
【００９０】
[0103]一般に、視差ベクトルは、現在のブロックと別のビュー中の対応するブロックとの間の視差を示す。例えば、現在のブロックのビデオコンテンツ及び他のビュー中の対応するブロックのビデオコンテンツは同様であり得るが、ブロックの位置は、それぞれのピクチャ中で互いに対して変位し得る。視差ベクトルは、この変位の測定値を提供する。
【００９１】
[0104]視差ベクトル及び視差動きベクトルは異なるので、これらのベクトルは混同されるべきではない。視差ベクトルと視差動きベクトルの両方が他のビュー中のブロックを参照するが、視差ベクトル及び視差動きベクトルの目的及び使用は異なる。現在のブロックについての視差動きベクトルは、予測ブロックを参照し、ここでは予測ブロックと現在のブロックとの間の残差が変換され、量子化され、ビットストリームの一部として信号伝達される。一方、視差ベクトルは様々なコード化ツールに使用される。例えば、現在のブロックについての実際の動きベクトルを示す視差動きベクトルとは異なり、視差ベクトルは、現在のブロックについての動きベクトルを決定するために動き情報が場合によっては使用され得る参照ブロックを参照する。言い換えれば、視差動きベクトルによって参照されるブロックは、現在のブロックの画素値から画素値が除算されるブロックである。対照的に、そこで現在のブロックについての動きベクトルを決定するために使用されるのは、視差ベクトルによって参照されるブロックの動き情報である。
【００９２】
[0105]視差ベクトルによって参照されるブロックは、現在のブロックを符号化又は復号するための参照ブロックとして使用され得、その理由は、現在のブロックを符号化又は復号するために参照ブロックの動き情報が使用され得ることにある。また、視差ベクトルによって参照されるブロックのビデオコンテンツは、現在のブロックのビデオコンテンツと同様であり得、この意味で、現在のブロックに対応するブロックと考えられ得る。従って、本開示では、視差ベクトルによって参照されるブロックは、参照ブロック又は対応するブロックと呼ばれ得る。
【００９３】
[0106]場合によっては、視差ベクトルが現在のブロックについての視差動きベクトルに変換されることに留意されたい。但し、これは、視差ベクトルが視差動きベクトルになるように選択された場合にのみ起こり得る。このように、視差ベクトルが現在のブロックについての視差動きベクトルになるように特別に選択された場合を除いて、視差ベクトルは視差動きベクトルとは異なる。その上、幾つかの例では、視差ベクトルが視差動きベクトルとして使用される場合に、視差ベクトルにクリッピング関数が適用されることがあり、クリッピング関数では、視差ベクトルのｙ成分がゼロに設定され、得られるベクトルが視差動きベクトルとして使用される。
【００９４】
[0107]本開示で説明する技法は、決定された視差ベクトルに基づいて参照ビュー中の参照ピクチャ中の参照ブロック（例えば、対応するブロック）を識別することに関する。例えば、どのブロックを視差ベクトルが識別するかは、現在のブロックの視差ベクトルがどこから開始するかに基づく。例えば、視差ベクトルは、画素から始まる開始位置と、ブロック内の画素を指す終了位置とを含む。ビデオエンコーダ２０及びビデオデコーダ３０は、現在のブロックについての参照ブロックを、視差ベクトルが指す画素を含む（例えば、カバーする）ブロックとして識別することができる。現在のブロックについての視差ベクトルは、視差ベクトルの開始位置ごとに異なる画素を指す。従って、視差ベクトルの開始位置に基づいて、視差ベクトルが指し得る参照ビュー中の参照ピクチャ中の様々な考えられる参照ブロックがあり得る。
【００９５】
[0108]視差ベクトルに基づいて参照ブロックを識別するために、本開示は、視差ベクトルが参照する終了位置を決定するための例示的な技法について説明する。視差ベクトルが参照する終了位置は、視差ベクトルの開始位置に基づくので、技法は、決定された終了位置を視差ベクトルが参照するように視差ベクトルの開始位置を設定することと考えられ得る。幾つかの例では、現在のブロックについての視差ベクトルの開始位置は、現在のブロック内にあり得る。幾つかの例では、現在のブロックについての視差ベクトルの開始位置は、現在のブロックの外にあり得る。
【００９６】
[0109]視差ベクトルの目的は、幾つかの例としてビュー間動き予測及びビュー間残差予測など、現在のブロックをインター予測（ビュー間予測を含む）するための様々なビデオコード化ツールに使用される参照ブロックを識別することであることを理解されたい。現在のブロックを符号化又は復号する際の良好なコード化効率をもたらす統計的傾向がある参照ブロックは、期せずして、現在のブロックについての視差ベクトルが現在のブロックの中から開始するか、又は現在のブロックの外から開始することを必要とし得る。
【００９７】
[0110]図４は、参照ブロックを識別するための視差ベクトルの例示的な開始位置を示す概念図である。図４に示すように、ビュー０はピクチャ３４を含み、異なるビューであるビュー１はピクチャ３６を含む。ピクチャ３４及びピクチャ３６は、ほぼ同じ時間に表示され得、従って同じアクセス単位の一部であり得る。
【００９８】
[0111]この例では、ピクチャ３６は現在のビュー（例えば、ビュー１）中の現在のピクチャであり、ピクチャ３４は参照ビュー（例えば、ビュー０）中の参照ピクチャである。ピクチャ３６は、ビデオブロック３８を含む。ビデオブロック３８は、符号化又は復号されているビデオブロックである。例えば、ビデオ符号化の観点からは、ビデオブロック３８は、ビデオエンコーダ２０によってインター予測符号化されている現在のブロックである。ビデオ復号の観点からは、ビデオブロック３８は、ビデオデコーダ３０によってインター予測復号されている現在のブロックである。言い換えれば、図４に示す例は、ビデオエンコーダ２０が現在のブロック（例えば、ビデオブロック３８）を符号化している状況に当てはまり、ビデオデコーダ３０が現在のブロック（例えば、ビデオブロック３８）を復号している状況に当てはまる。
【００９９】
[0112]図４は、ビデオエンコーダ２０とビデオデコーダ３０の両方に当てはまる例を示しているので、説明を容易にするために、図４の例は、ビデオコーダに関して説明される。本開示で使用するビデオコーダは、ビデオデータを符号化又は復号するように構成された処理ユニットの総称である。例えば、ビデオコーダの一例はビデオエンコーダ２０であり、ビデオコーダの別の例はビデオデコーダ３０である。また、本開示では、コード化する又はコード化（している）という用語は、それぞれ符号化する又は符号化（している）、あるいは、それぞれ復号する又は復号（している）を一般的に指すために使用される。例えば、コード化しているか、又はコード化するように構成されたビデオコーダは一般に、符号化しているか、又は符号化するように構成されたビデオエンコーダ２０、あるいは復号しているか、又は復号するように構成されたビデオデコーダ３０を指す。
【０１００】
[0113]図４に示す例では、ビデオコーダ（例えば、ビデオエンコーダ２０又はビデオデコーダ３０）は、ビデオブロック３８についての視差ベクトル（ＤＶ）を決定していることがある。例えば、ビデオコーダは、ビデオブロック３８についての視差ベクトルを導出するために、隣接ブロックベース視差ベクトル（ＮＢＤＶ）導出技法を（場合によっては改良技法と組み合わせて）利用していることがある。ビデオブロック３８についての視差ベクトルを決定するためのＮＢＤＶ導出技法及び改良については、以下でより詳細に説明する。但し、本開示で説明する技法は、ビデオブロック３８についての視差ベクトルを決定又は導出する他の方法に適用可能である。
【０１０１】
[0114]ビデオコーダはまた、ビデオブロック３８についての視差ベクトルがピクチャ３４中の参照ブロックを参照すると決定していることがある。例えば、シンタックス要素ｒｅｆＶｉｅｗＩｄｘは、参照ピクチャのインデックス値を定義することができ、ビデオコーダは、ｒｅｆＶｉｅｗＩｄｘに基づいてＶｉｅｗＩｄｘの値を決定することができる。この例では、ＶｉｅｗＩｄｘの値は、ビュー０を示す０に等しい。ビデオコーダは、ビデオブロック３８についての視差ベクトルが参照する位置（例えば、ピクチャ３４中の画素）に基づいて、参照ブロックを識別することができる。但し、ビデオブロック３８についての視差ベクトルが参照するピクチャ３４中の位置は、視差ベクトルの開始位置に基づく。
【０１０２】
[0115]例えば、視差ベクトルが参照する位置（例えば、ピクチャ３４中の画素の座標）は、視差ベクトルのｘ成分及びｙ成分ならびに視差ベクトルの開始位置の座標に基づいて計算され得る。一例として、ビデオコーダは、視差ベクトルが参照するピクチャ３４中の位置のｘ座標を決定するために視差ベクトルのｘ成分に開始位置のｘ座標を加算し、ピクチャ３４中の位置のｙ座標を決定するために視差ベクトルのｙ成分に開始位置のｙ座標を加算することができる。
【０１０３】
[0116]幾つかの例では、ビデオコーダは、整数精度を参照するように視差ベクトルを位置合わせするために視差ベクトルの座標をシフトさせるか、又は四捨五入することができる。例えば、シフト又は四捨五入がなければ、視差ベクトルは画素を参照せず、画素の間の位置（即ち、１／４画素精度などのサブ画素精度）を指すことがある。視差ベクトルのシフト（shifting）及び／又は丸め（rounding）により、ビデオコーダは、視差ベクトルが画素（即ち、整数精度）を参照することを保証することができる。
【０１０４】
[0117]幾つかの例では、ビデオコーダは、視差ベクトルが参照する位置をカバーするブロック（例えば、予測単位）を決定することができる。ビデオコーダは決定されたブロックを、視差ベクトルに依存するビデオコード化ツールの幾つかの非限定的な例として、ビュー間動き予測、ビュー間残差予測、又は視差ベクトルが視差動きベクトルに変換される例など、視差ベクトルに依存する様々なビデオコード化ツールに使用される参照ブロックとして識別することができる。
【０１０５】
[0118]図４は、視差ベクトルＤＶ１及びＤＶ２を示している。視差ベクトルＤＶ１及びＤＶ２の値は同じである（即ち、ＤＶ１及びＤＶ２のｘ成分及びｙ成分は同じである）が、ＤＶ１の開始位置がＤＶ２の開始位置とは異なるので別個に示されており、従って、ＤＶ１及びＤＶ２がそれぞれ参照する位置は異なる。例えば、ビデオコーダは、ビデオブロック３８についての視差ベクトルの値を決定していることがあり、視差ベクトルの値は、ＤＶ１もＤＶ２も同じ値である。
【０１０６】
[0119]図４では、視差ベクトルＤＶ１の開始位置はビデオブロック３８内の位置４４であり、視差ベクトルＤＶ２の開始位置はビデオブロック３８内の位置４６である。視差ベクトルＤＶ１が参照する位置は、参照ビュー０の参照ピクチャ３４中の位置Ｃ０であり、視差ベクトルＤＶ２が参照する位置は、参照ビュー０の参照ピクチャ３４中の位置Ｃ３である。
【０１０７】
[0120]例えば、ビデオブロック３８は、４×４ブロックとして示されているが、幾つかの例として８×８、８×４、４×８、１６×１６、１６×８、又は８×１６など、他のサイズを有してもよい。そのようなサイズのブロックの場合に、ブロックの中央に単一の中心画素がないことがある。実際には、２×２サブブロックを形成する４つの候補「中心」画素がブロック内にある。
【０１０８】
[0121]図４に示すように、ビデオブロック３８の中心は、中心２×２サブブロック４８によって表されている。ビデオブロック３８が４×４とは異なるサイズを有する場合、同様に中心２×２サブブロックがあることになる。図４では、位置４４は中心２×２サブブロック４８の左上画素の位置であり、位置４６は中心２×２サブブロック４８の右下画素の位置である。中心２×２サブブロック４８の左上画素のｘ座標は、ビデオブロック３８の幅を２で割り、得られた値をビデオブロック３８の左上画素のｘ座標に加算し、得られた値から１を減算することによって計算され得る。中心２×２サブブロック４８の左上画素のｙ座標は、ビデオブロック３８の長さを２で割り、得られた値をビデオブロック３８の左上画素のｙ座標に加算し、得られた値から１を減算することによって計算され得る。
【０１０９】
[0122]２×２サブブロック４８の右上画素の座標は、２×２サブブロック４８の左上画素のｘ座標に１を加算し、ｙ座標を同じままにすることによって計算され得る。２×２サブブロック４８の左下画素の座標は、２×２サブブロック４８の左上画素のｙ座標に１を加算し、ｘ座標を同じままにすることによって計算され得る。２×２サブブロック４８の右下画素の座標は、２×２サブブロック４８の左上画素のｘ座標に１を加算し、２×２サブブロック４８の左上画素のｙ座標に１を加算することによって計算され得る。
【０１１０】
[0123]一例として、ビデオブロック３８の左上画素が（５，６）に位置し、図示のようにビデオブロック３８が４×４ブロックであると仮定する。この例では、中心２×２サブブロック４８の左上画素のｘ座標は、５＋４／２−１であって、６に等しい。中心２×２サブブロック４８の左上画素のｙ座標は６＋４／２−１であって、７に等しい。言い換えれば、位置４４の座標は（６，７）である。中心２×２サブブロック４８の右下画素のｘ座標は６＋１であって、７であり、中心２×２サブブロック４８の右下画素のｙ座標は７＋１であって、８。言い換えれば、位置４６の座標は（７，８）である。
【０１１１】
[0124]図示のように、ビデオブロック３８についての視差ベクトルが位置４４から（例えば、中心２×２サブブロック４８の左上画素から）開始する場合、視差ベクトルは、視差ベクトルＤＶ１によって示されるように、位置Ｃ０における画素を参照する。ビデオブロック３８についての視差ベクトルが位置４６から（例えば、中心２×２サブブロック４８の右下画素から）開始する場合、視差ベクトルは、視差ベクトルＤＶ２によって示されるように、位置Ｃ３における画素を参照する。
【０１１２】
[0125]幾つかの例では、ビデオコーダは、参照ビュー０の参照ピクチャ３４中の位置Ｃ０を決定し、位置Ｃ０をカバーするブロックを決定することができる。図示のように、図４における位置Ｃ０をカバーするブロックはブロック４０である。ビデオコーダは、ビデオブロック３８についての参照ブロック（例えば、対応するブロック）としてブロック４０を識別し、ビデオブロック３８についての視差に依存する１つ又は複数のビデオコード化ツールにブロック４０を利用することができる。一例として、ビュー間動き予測では、ビデオコーダは、ビデオブロック３８をコード化するために、ブロック４０に関連する動き情報を利用することができる。
【０１１３】
[0126]ビデオブロック３８をコード化するためにブロック４０を利用する別の例として、ブロック４０は、ビデオブロック３８についての予測ブロックとして機能することができる。言い換えれば、ビデオコーダは、ブロック４０及びビデオブロック３８の画素値間の残差を決定することができる。これらの例では、視差ベクトルは、ビデオブロック３８についての視差動きベクトルと考えられ得る。また、これらの例では、ビデオコーダは、インター予測目的でビデオコーダが記憶するブロック４０の再構築バージョンを記憶することができる。言い換えれば、ブロック４０が予測ブロックであるとき、ブロック４０の再構築バージョンが予測ブロックとして機能する。
【０１１４】
[0127]この意味で、幾つかの例では、ビデオコーダは、ビデオブロック３８をコード化するために、ブロック４０の動き情報を利用することができる。幾つかの例では、ビデオコーダは、ビデオブロック３８をコード化するために、再構築されたブロック４０を利用することができる。これらの例のいずれにおいても、ビデオコーダは、ビデオブロック３８をインター予測コード化するために、ブロック４０を利用する。
【０１１５】
[0128]ビデオブロック３８についての視差ベクトルに基づいて位置Ｃ０を決定するための技法は、次のとおりである。現在のピクチャ（例えば、ピクチャ３６）の左上ルーマサンプルに対する現在の予測単位（例えば、ビデオブロック３８）の左上ルーマサンプルのルーマ位置（ｘＰ，ｙＰ）を示す。値ｎＰＳＷ及びｎＰＳＨは、それぞれ現在の予測単位（例えば、ビデオブロック３８）の幅及び高さを示す。参照ビュー順序インデックスｒｅｆＶｉｅｗＩｄｘ及び視差ベクトルｍｖＤｉｓｐを仮定して、参照層ルーマ位置（ｘＲｅｆ，ｙＲｅｆ）が以下のように導出される。
【０１１６】
xRef = Clip3( 0, PicWidthInSamplesL - 1, xP + ( ( nPSW - 1 )  >>  1 ) + ( ( mvDisp[ 0 ] + 2 )  >>  2 ) )        (H-124)  
yRef = Clip3( 0, PicHeightInSamplesL - 1, yP + ( ( nPSH - 1 )  >>  1 ) + ( ( mvDisp[ 1 ] + 2 )  >>  2 ) )        (H-125)
[0129]上記の式では、ｍｖＤｉｓｐ［０］は視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］は視差ベクトルのｙ成分に等しく、ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL及びＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓLは、（現在のビューと同じ）参照ビュー中のピクチャの解像度を定義する。上記の式では、ｘＰ＋（（ｎＰＳＷ−１）＞＞１）及びｙＰ＋（（ｎＰＳＨ−１）＞＞１）がともに視差ベクトルの開始位置に等しい（即ち、ｘＰ＋（（ｎＰＳＷ−１）＞＞１）は位置４４のｘ座標であり、ｙＰ＋（（ｎＰＳＨ−１）＞＞１は位置４４のｙ座標である）。上記の式では、ｘＲｅｆは、視差ベクトルが指すピクチャ３４内の位置のｘ座標（例えば、位置Ｃ０のｘ座標）であり、ｙＲｅｆは、視差ベクトルが指すピクチャ３４内の位置のｙ座標（例えば、位置Ｃ０のｙ成分）である。上記の式では、Ｃｌｉｐ３は、以下でより詳細に説明するクリッピング関数である。
【０１１７】
[0130]このようにして、上記の式は、視差ベクトルＤＶ１の終了ポイントを決定するための方法を定義する。言い換えれば、ビデオコーダは、視差ベクトルの開始位置を位置４４の座標に等しく設定し、開始位置のそれぞれの座標を視差ベクトルの値に加算する（例えば、位置４４のｘ座標を視差ベクトルのｘ成分に、位置４４のｙ座標を視差ベクトルのｙ成分に加算する）ことによって、位置Ｃ０の座標を決定することができる。
【０１１８】
[0131]ビデオコーダは参照ブロック（例えば、対応するブロック）を、ピクチャ３４内のｘＲｅｆ、ｙＲｅｆ座標をカバーする（例えば、ピクチャ３４内の位置Ｃ０をカバーする）ビデオブロックとして識別することができる。図４に示す例では、参照ピクチャ３４のブロック４０が位置Ｃ０をカバーする。言い換えれば、対応するブロックは、ｒｅｆＶｉｅｗＩｄｘに等しいＶｉｅｗＩｄｘを伴うビューコンポーネント中のルーマ位置（ｘＲｅｆ，ｙＲｅｆ）をカバーする予測単位に設定される。この例では、ｒｅｆＶｉｅｗＩｄｘは、参照ピクチャを含む参照ビューを識別するために使用されるインデックス値であり、ＶｉｅｗＩｄｘはビュー０に等しい。
【０１１９】
[0132]しかしながら、視差ベクトルに依存するビデオコード化ツールのためのより良好なビデオコード化効率をもたらす統計的傾向があるブロック４０以外のブロックがあり得る。従って、本開示で説明する技法では、ビデオコーダは、ビデオブロック３８についての参照ブロックを、参照ピクチャ３４中の位置Ｃ０をカバーするブロック以外のブロックとして識別し得る。
【０１２０】
[0133]一例として、位置Ｃ０に位置する画素の右下に位置する画素をカバーするブロックは、統計的に位置Ｃ０に位置する画素をカバーするブロックよりも良好なビデオコード化効率をもたらす傾向があり得る。図４では、位置Ｃ０の右下に（例えば、位置Ｃ０に対して位置（１，１）に）位置する画素の位置は、位置Ｃ３と呼ばれ、ブロック４２が位置Ｃ３をカバーする。
【０１２１】
[0134]参照ピクチャ３４中の位置Ｃ３の位置を決定するために、ビデオコーダは、視差ベクトルの開始位置を、位置Ｃ０を決定するために使用される位置とは異なる（例えば、位置４４とは異なる）位置に設定することができる。例えば、ビデオコーダは、視差ベクトルの開始位置を位置４６の座標に等しく設定し得る。視差ベクトルの開始位置を変更するための推論は、視差ベクトルの値が同じままであるが、視差ベクトルの異なる終了位置が必要とされる（例えば、位置Ｃ０ではなく位置Ｃ３）ためである。視差ベクトルの終了位置を変更するために、視差ベクトルの値が同じであるので開始位置のみが変わり得る。
【０１２２】
[0135]視差ベクトルの終了位置が位置Ｃ０の代わりに位置Ｃ３になるように、視差ベクトルの開始位置ではなく値を変更することも考えられ得ることに留意されたい。但し、説明の目的上、本開示は、視差ベクトルが位置Ｃ０ではなく位置Ｃ３を参照するように、視差ベクトルの値ではなく視差ベクトルの開始位置を変更することに関して説明されている。
【０１２３】
[0136]視差ベクトルが位置Ｃ３を参照するように視差ベクトルの開始位置が変わる例では、開始位置（例えば、図４における位置４６）のｘ座標はｘＰ＋（（ｎＰＳＷ）＞＞１）であり、開始位置（例えば、図４における位置４６）のｙ座標はｙＰ＋（（ｎＰＳＨ）＞＞１）である。位置Ｃ３の位置を決定するための式は次のとおりである。
【０１２４】
xRef = Clip3( 0, PicWidthInSamplesL - 1, xP + ( nPSW >>  1 ) + ( ( mvDisp[ 0 ] + 2 )  >>  2 ) ) (H-124)
yRef = Clip3( 0, PicHeightInSamplesL - 1, yP + ( nPSH  >>  1 ) + ( ( mvDisp[ 1 ] + 2 )  >>  2 ) ) (H-125)
[0137]すぐ上にある式では、ｘＲｅｆは、視差ベクトルが指すピクチャ３４内の位置のｘ座標（例えば、位置Ｃ３のｘ座標）であり、ｙＲｅｆは、視差ベクトルが指すピクチャ３４内の位置のｙ座標（例えば、位置Ｃ３のｙ成分）である。上記の式では、ｘＰ＋（ｎＰＳＷ＞＞１）及びｙＰ＋（ｎＰＳＨ＞＞１）がともに視差ベクトルの開始位置に等しい（即ち、ｘＰ＋（ｎＰＳＷ＞＞１）は位置４６のｘ座標であり、ｙＰ＋（ｎＰＳＨ＞＞１は位置４６のｙ座標である）。言い換えれば、上記の式では、現在のブロック３８内の中心２×２サブブロック４８中の右下画素の座標は（（ｘＰ＋（ｎＰＳＷ＞＞１）），（ｙＰ＋（ｎＰＳＨ＞＞１）））に等しく、ここでｙＰは、現在のブロック３８の左上隅のｙ座標に等しく、ｘＰは、現在のブロック３８の左上隅のｘ座標に等しく、ｎＰＳＷは、現在のブロック３８の幅に等しく、ｎＰＳＨは、現在のブロック３８の高さに等しい。
【０１２５】
[0138]このようにして、上記の式は、視差ベクトルＤＶ２の終了ポイントを決定するための方法を定義する。例えば、ビデオコーダは、視差ベクトルの開始位置を位置４６の座標に等しく設定し、開始位置のそれぞれの座標を視差ベクトルの値に加算する（例えば、位置４６のｘ座標を視差ベクトルのｘ成分に、位置４６のｙ座標を視差ベクトルのｙ成分に加算する）ことによって、位置Ｃ３の座標を決定することができる。例えば、ビデオコーダは、視差ベクトルＤＶ２が参照する参照ピクチャ３４中の位置のｘ座標及びｙ座標を、現在のビデオブロック３８内の中心２×２サブブロック４８中の右下画素から開始する視差ベクトルに基づいて決定することができる。
【０１２６】
[0139]上記の式では、ビデオコーダは、ｘＲｅｆとｙＲｅｆとを決定するためにクリッピング演算を適用することができる。そのようなクリッピングは、あらゆる例において必要であるとは限らない。クリッピング関数を伴わないｘＲｅｆ及びｙＲｅｆの式は、次のとおりであり得る。
【０１２７】
xRef = xP + (( nPSW)  >>  1 ) + (( mvDisp[ 0 ] + 2)  >>  2 )), 
yRef = yP + (( nPSH)  >>  1 ) + (( mvDisp[ 1 ] + 2 )  >>  2 )).
[0140]本開示で説明する技法では、ビデオコーダは、参照ビュー中の参照ピクチャ中のブロックを、（例えば、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて）現在のブロック内の中心２×２サブブロック中の右下画素から視差ベクトルが開始するときに視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定することができる。例えば、図４に示すように、ビデオコーダは、視差ベクトルＤＶ２が参照する参照ピクチャ３４中の位置Ｃ３をカバーする４×４ブロック（例えば、ブロック４２）を、（例えば、視差ベクトルが位置４６から開始するときに）位置４６から開始する視差ベクトルに基づいて決定することができる。ビデオコーダは、上で提供するｘＲｅｆ及びｙＲｅｆの式を使用して視差ベクトルが参照する位置Ｃ３のｘ座標及びｙ座標を決定し、決定されたｘ座標とｙ座標とをカバーするブロックを決定することができる。
【０１２８】
[0141]そこでビデオコーダが視差ベクトルに依存するビデオコード化ツールを使用して現在のブロック３８をインター予測コード化する（例えば、符号化又は復号する）ために使用し得るのは、ブロック４２の動き情報又はブロック４２の画素値である。一例として、ビデオコーダは、ブロック４２の動き情報が候補動きベクトル予測子のリストである挿入することができる。ブロック４２の動き情報が候補動きベクトル予測子の同一リストから、ビデオコーダが現在のブロック３８についての動きベクトルを予測するために使用する動き情報として選択された場合、ビデオコーダは、決定されたブロックの動き情報に基づいて現在のブロックをインター予測コード化することができる。
【０１２９】
[0142]別の例として、ビデオコーダは、ブロック４２を予測ブロックとして利用することができる。例えば、ビデオコーダは、ブロック４２の再構築バージョンを記憶する。例えば、ビデオ符号化中に、ビデオエンコーダ２０は、ビデオエンコーダ２０が符号化されたブロックを再構築するフィードバックする経路を含み、再構築されたブロックを、後続ブロックを符号化するためにブロック４２が使用され得るようにメモリに記憶する。ビデオ復号中に、ビデオデコーダ３０はブロック４２を再構築し、再構築されたブロック４２を、後続ブロックを復号するためにブロック４２が使用され得るようにメモリに記憶する。場合によっては、ビデオコーダは、ブロック４２がビデオブロック３８についての予測ブロックとして機能する例の場合のように、ビデオブロック３８及びブロック４２の画素値間の差分を決定する。ブロック４２の再構築が予測ブロックとして機能する例では、視差ベクトルは、ビデオブロック３８についての視差動きベクトルと考えられ得る。
【０１３０】
[0143]言い換えれば、ビデオコーダは、決定されたブロックに基づいて現在のブロックをインター予測コード化することができる。一例として、決定されたブロックが現在のブロックをインター予測コード化するために使用される場合に、ビデオコーダは、決定されたブロックの動き情報に基づいて現在のブロックをインター予測コード化することができる。別の例として、ビデオコーダは、決定されたブロックの再構築の画素値に基づいて現在のブロックをインタープレディクトコード化する。
【０１３１】
[0144]場合によっては、視差ベクトルによって参照されるブロックが依然として参照ピクチャ３４内にあるようにするために、ｘＲｅｆ及びｙＲｅｆがクロッピングされ得る。また、視差ベクトルが１／４画素精度を有するとき、シフト演算（ｍｖＤｉｓｐ［ｉ］＋２＞＞２）がｍｖＤｉｓｐ［ｉ］に置き換えられることがあり、ここでｉは０又は１に等しい。
【０１３２】
[0145]この例では、ビデオコーダは、参照ブロック（例えば、対応するブロック）を、ピクチャ３４内のｘＲｅｆ、ｙＲｅｆ座標をカバーする（例えば、ピクチャ３４内の位置Ｃ３をカバーする）ビデオブロックとして識別することができる。図４に示す例では、参照ピクチャ３４のブロック４２が位置Ｃ３をカバーする。言い換えれば、対応するブロックは、ｒｅｆＶｉｅｗＩｄｘに等しいＶｉｅｗＩｄｘを伴うビューコンポーネント中のルーマ位置（ｘＲｅｆ，ｙＲｅｆ）をカバーする予測単位に設定される。この例では、ｒｅｆＶｉｅｗＩｄｘは、参照ピクチャを含む参照ビューを識別するために使用されるインデックス値であり、ＶｉｅｗＩｄｘはビュー０に等しい。
【０１３３】
[0146]図４からわかるように、視差ベクトルが参照する位置は、ビデオコーダがどのブロックを参照ブロックとして識別するかに影響を与え、視差ベクトルが参照する位置は、視差ベクトルの開始位置に基づく。従って、視差ベクトルの開始位置は、参照ピクチャ３４中のどのブロックが参照ブロックとして識別されるか（例えば、ブロック４０又はブロック４２）に影響を与える。
【０１３４】
[0147]ブロック４２の動き情報又はブロック４２の再構築の画素値は、ブロック４０の動き情報又はブロック４０の再構築の画素値よりも、視差ベクトルに依存するビデオコード化ツールのための良好なビデオコード化効率をもたらす統計的傾向があり得る。従って、幾つかの例では、ビデオコーダは、位置Ｃ３をカバーするブロック（例えば、ブロック４２）を、現在のブロック（例えば、ビデオブロック３８）についての参照ブロックとして識別することができる。
【０１３５】
[0148]幾つかの例では、参照ビュー０の参照ピクチャ３４中の位置Ｃ３をカバーするブロックをビデオブロック３８についての参照ブロックとして識別するのではなく、ビデオコーダは、参照ビュー０の参照ピクチャ３４中の位置Ｃ１又は位置Ｃ２をカバーするブロックをビデオブロック３８についての参照ブロックとして識別することがある。例えば、図４は、Ｃ０に位置する画素の右にある位置Ｃ１に（例えば、位置Ｃ０に対して位置（１，０）に）位置する画素と、Ｃ０に位置する画素の下にある位置Ｃ２に（例えば、位置Ｃ０に対して位置（０，１）に）位置する画素とを示している。この場合、位置Ｃ３に位置する画素は、位置Ｃ０に対して（１，１）に位置する。
【０１３６】
[0149]ビデオコーダは、参照ピクチャ３４中の位置Ｃ１又は位置Ｃ２の位置を決定するために、上述の技法と同様の技法を実施することができる。例えば、ビデオコーダは視差ベクトルの開始位置を、視差ベクトルが位置Ｃ１を参照する（即ち、開始位置が２×２中心サブブロック４８中の右上画素になる）ように、又は位置Ｃ２を参照する（即ち、開始位置が２×２中心サブブロック４８中の左下画素になる）ように変更することができる。次いでビデオコーダは、位置Ｃ１又はＣ２をカバーするブロックを、現在のブロックについての（例えば、ビデオブロック３８についての）参照ブロックとして識別することができる。
【０１３７】
[0150]幾つかの例では、ビデオコーダは、ビデオブロック３８についての参照ブロックを識別するために、参照ピクチャ３４中の異なる位置をカバーする複数のブロックをチェックすることができる。例えば、ビデオコーダは最初に、位置Ｃ３をカバーするブロック（例えば、ブロック４２）を決定することができる。次いでビデオコーダは、ブロック４２の動き情報が、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能であるかどうかを決定することができる。
【０１３８】
[0151]例えば、ブロック４２がイントラ予測コード化される場合、ブロック４２についての動き情報はない。別の例では、ブロック４２がビュー間予測コード化される場合に、ブロック４２の動き情報は、視差ベクトルに依存する１つ又は複数のビデオコード化ツールを使用して現在のビデオブロック３８をコード化するために使用可能ではないことがある。また、別の例では、ブロック４２がインター予測されるが、ブロック４２の動きベクトルが参照する参照ピクチャと同じアクセス単位に位置する現在のビュー中のピクチャがビデオブロック３８の参照ピクチャリストにおいて識別されない場合に、ブロック４２の動き情報は、視差ベクトルに依存する１つ又は複数のビデオコード化ツールを使用して現在のビデオブロック３８をコード化するために使用可能ではないことがある。
【０１３９】
[0152]ブロック４２についての動き情報が、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能であるとビデオコーダが決定した場合、ビデオコーダはブロック４２を、ビデオブロック３８についての参照ブロックとして識別することができる。ブロック４２についての動き情報が、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能ではないとビデオコーダが決定した場合、ビデオコーダは、ビデオブロック３８に利用可能な参照ブロックはないと決定することができる。幾つかの例では、ビデオブロック３８についての参照ブロックがないと決定するのではなく、ビデオコーダは、位置Ｃ０をカバーするブロック（例えば、ブロック４０）を決定し、ブロック４０についての動き情報が、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能であるかどうかを決定することができる。ブロック４０についての動き情報が、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能であるとビデオコーダが決定した場合、ビデオコーダは、ブロック４０が現在のビデオブロック３８についての参照ブロックであると決定することができる。そうではない場合、ビデオコーダは、ビデオブロック３８に利用可能な参照ブロックはないと決定することができる。
【０１４０】
[0153]幾つかの例では、ビデオコーダは、反対のステップを実行することができる。例えば、ビデオコーダは、最初に、ブロック４０の動き情報が、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能であるかどうかを決定し、動き情報が利用可能である場合に、ブロック４０がビデオブロック３８についての参照ブロックであると決定することができる。動き情報が利用可能ではない場合、ビデオコーダは、ブロック４２についての動き情報が利用可能であるかどうかを決定し、利用可能である場合に、ブロック４２が現在のビデオブロック３８についての参照ブロックであると決定することができる。ブロック４２についての動き情報が利用可能ではない場合、ビデオコーダは、ビデオブロック３８についての参照ブロックが存在しないと決定することができる。
【０１４１】
[0154]ビデオコーダは必ずしも、２つのブロックの後に（例えば、順序を問わずブロック４０及び４２の後に）参照ブロックについてのチェックを打ち切る必要はない。幾つかの例では、ビデオコーダは、（順序を問わず）ブロック４０及び４２をチェックすることができ、いずれのブロックも、視差ベクトルに依存するビデオコード化ツールに利用可能ではない場合、ビデオコーダは、（順序を問わず）位置Ｃ１をカバーするブロック又は位置Ｃ２をカバーするブロックを決定し、これらのブロックのいずれかが利用可能であるかどうかを決定することができる。一般に、位置Ｃ０、Ｃ１、Ｃ２、及びＣ３をカバーするブロックをチェックする様々な順列が考えられ、本開示によって企図される。
【０１４２】
[0155]上記の例は、視差ベクトルが参照する位置（例えば、ポイント）をカバーするブロックに基づいて参照ブロックを識別することについて説明した。しかしながら、本開示で説明する技法は、そのように限定されない。幾つかの例では、ビデオコーダは、視差ベクトルに基づいてブロックの位置を決定し、そのブロックがビデオブロック３８についての参照ブロックであるかどうかを決定することができる。
【０１４３】
[0156]一例として、ビデオコーダは、ＢＲ０と呼ばれる、参照ピクチャ３４中の「右下」ブロックを識別し得る。例えば、現在のビデオブロック３８の視差ベクトルが、現在のビデオブロック３８の右下にあるブロックから開始した場合、参照ピクチャ３４中の視差ベクトルが指す位置は、ＢＲ０ブロックの左上隅である。この例では、ビデオブロック３８についての視差ベクトルの開始位置は、ビデオブロック３８の外にある。ＢＲ０ブロックのｘ座標はｘＰ＋（ｎＰＳＷ−１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２）であり、ＢＲ０ブロックのｙ座標はｙＰ＋（ｎＰＳＨ−１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２）である。また、この例では、視差ベクトルの開始位置のｘ座標はｘＰ＋（ｎＰＳＷ−１）であり、視差ベクトルの開始位置のｙ座標はｙＰ＋（ｎＰＳＨ−１）である。ブロックＢＲ０を参照する視差ベクトルの開始位置は、ブロック４０又はブロック４２を参照する視差ベクトルの開始位置とは異なっており、ビデオブロック３８の外にあり得る。
【０１４４】
[0157]幾つかの例では、ブロック４２、４０、又は位置Ｃ１及びＣ２をカバーするブロックをチェックするのではなく、ビデオコーダは、ブロックＢＲ０についての動き情報が、視差ベクトルに依存するビデオコード化ツールに利用可能であるかどうかを決定することができる。利用可能な場合、ビデオコーダは、ブロックＢＲ０を参照ブロックとして識別し、利用可能ではない場合、参照ブロックは存在しないと決定することができる。但し、幾つかの例では、チェックすべき他のブロックもあり得る。参照ピクチャ３４のこれらの他のブロックは、ブロックＢＲ１及びブロックＢＲ２と標示される。ブロックＢＲ１はブロックＢＲ０に対して（１，１）に位置し、ブロックＢＲ２はブロックＢＲ０に対して（２，２）に位置する。ビデオコーダは、ブロックＢＲ１及びＢＲ２の位置を、ブロックＢＲ０について決定されたのと同様に（例えば、視差ベクトルがブロックＢＲ１又はブロックＢＲ２を参照するように視差ベクトルの開始位置を変更することによって）決定することができる。
【０１４５】
[0158]参照ブロックを識別するための追加の例示的な方法として、ビデオコーダは最初に、視差ベクトルがビデオブロック３８の左上隅から開始する場合に、視差ベクトルによって参照されるブロックの左上隅位置をシフトさせ、量子化することができる。例えば、ビデオコーダは、以下の式を実施することができる。
【０１４６】
((xP+( mvDisp[ 0 ] + 2 )  >>  2 )+2)>>2, (yP+( mvDisp[ 1 ] + 2 )  >>  2 )+2)>>2).  
その後、ビデオコーダは、４×４ブロックを識別するために、（ｎＰＳＷ／２，ｎＰＳＨ／２）、（ｎＰＳＷ，ｎＰＳＨ）のシフトを直接適用することができる。他の潜在的ブロックは、（ｎＰＳＷ／２−４，ｎＰＳＨ／２−４）、（ｎＰＳＷ／２＋４，ｎＰＳＨ／２＋４）、（ｎＰＳＷ−４，ｎＰＳＨ−４）、及び（ｎＰＳＷ＋４，ｎＰＳＨ＋４）のシフトに基づき得る。シフトが適用された後、ビデオコーダは、シフトしたサンプル位置を左上位置として使用する４×４ブロックを参照ブロックとして識別することができる。
【０１４７】
[0159]上述の技法において様々な順列が考えられることを理解されたい。例えば、１つのチェック順序は、位置Ｃ３をカバーするブロック、次いで位置Ｃ０をカバーするブロック、次いで位置Ｃ１をカバーするブロック、次いでＣ２をカバーするブロック、次いでＢＲ０ブロック、次いでＢＲ１ブロック、次いでＢＲ２ブロック、次いで参照ブロックを識別するためにシフト技法を適用し、１つ又は複数のビデオコード化ツールに利用可能な動き情報を含むブロックがまったくない場合に参照ブロックの探索を打ち切ることを含み得る。しかしながら、技法は、そのように限定されない。他のチェック順序も考えられ、本開示によって企図され得る。
【０１４８】
[0160]その上、ビデオコーダは、必ずしも考えられるブロックを全てチェックする必要はなく、ブロックのサブセットのみ（例えば、１つのブロックのみ、２つのブロックのみなど）をチェックしてもよい。例えば、ビデオコーダは、ブロック４２で開始し、ブロック４２が利用可能ではない場合に、利用可能であるビデオブロック３８についての参照ブロックはないと決定することができる。幾つかの例では、ブロック４２のみをチェックし、ブロック４２が利用可能ではない場合に打ち切ることによって、より大きいコード化利得が実現され得る。その理由として、更なるブロックをチェックすることは、更なるメモリ帯域幅を必要とし、ブロック４２についての動き情報が利用不可能である場合に、参照ブロックとして動き情報が使用され得るブロックを識別する際にビデオコード化利得がある場合でも、更なるメモリ要求のコストは利益を上回り得ることがあり得る。
【０１４９】
[0161]ビデオエンコーダ２０及びビデオデコーダ３０は、ビデオエンコーダ２０及びビデオデコーダ３０がビデオブロック３８についての参照ブロックと同じブロックを識別するように、上述の例示的な技法のうちの１つ又は２つ以上からなる組合せを暗示的に実行するように構成され得る。例えば、ビデオエンコーダ２０は、どのブロックが参照ピクチャ３４中の参照ブロックであるかを示す情報を信号伝達する必要はないことがあり、ビデオデコーダ３０は、どのブロックが参照ピクチャ３４中の参照ブロックであるかを示す情報を受信する必要はないことがある。
【０１５０】
[0162]しかしながら、幾つかの例では、ビデオエンコーダ２０は、様々なブロックをチェックし、どのブロックが参照ブロックとして識別された場合に最大のコード化利得をもたらすかを決定することができる。例えば、ビデオエンコーダ２０は、参照ピクチャ３４のブロックのうちの１つが、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能な動き情報を含むと決定した後、ブロックのチェックを停止しないことがあり、視差ベクトルに依存する１つ又は複数のビデオコード化ツールに利用可能な動き情報を含む複数のブロックを決定することがある。ビデオエンコーダ２０は次いで、これらのブロックのうちどれが最大のコード化効率をもたらすかを決定し、どのブロックが参照ブロックであるかを示す情報を信号伝達することができる。ビデオデコーダ３０は、どのブロックが参照ブロックであるかを示す情報を受信し、受信された情報に基づいて参照ブロックを識別することができる。
【０１５１】
[0163]更に、技法は視差ベクトルに関して説明してきたが、技法はそのように限定されない。例えば、技法は、ブロックに関連するシンタックス要素又は変数を識別することが必要とされる場合に任意のシナリオに一般化され得る。
【０１５２】
[0164]本開示によれば、ビュー間動き予測など、視差ベクトルに依存するビデオコード化ツールでは、（以下でより詳細に説明する）テクスチャ、深度を問わず、ビデオコーダは、最初に画素を識別することによって参照ビュー中のブロックを識別する必要があり得る。既存の技法には、十分に正確ではないものもある。
【０１５３】
[0165]これらの問題に対処するために、本開示で説明する技法は次のように要約され得る。例えば、本開示は、参照ビュー中の参照ブロックの識別中に異なる画素を識別するための技法について説明している。技法は、テクスチャビュー又は深度ビューについてのビュー間動き予測に、又は一般に、視差ベクトルに依存する様々なビデオコード化ツールに適用可能であり得る。
【０１５４】
[0166]本開示で説明する技法では、（ｘＰ，ｙＰ）が現在のＰＵの左上隅位置であることを示し、現在のＰＵについての（１／４画素精度を有する）視差ベクトルｍｖＤｉｓｐを示す。この視差ベクトルによってＣ０として識別された、（ｘＰ＋（（ｎＰＳＷ−１）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２），ｙＰ＋（（ｎＰＳＨ−１）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））の相対座標を有する中心サンプルを示す。Ｃ０に対する相対位置を（１，０）、（０，１）及び（１，１）とする、Ｃ０に隣接する他の３つの画素をＣ１、Ｃ２、Ｃ３として示す。ＢＲ０として（ｘＰ＋（ｎＰＳＷ−１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２），ｙＰ＋（ｎＰＳＨ−１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））の相対座標を有する右下サンプルを示す。ＢＲ１及びＢＲ２は、ＢＲ０に対する相対位置を（１，１）及び（２，２）とする２つのサンプルである。
【０１５５】
[0167]上記のサンプルのいずれも、サンプルが依然としてピクチャ内にあるようにするために、水平成分及び垂直成分がクロッピングされ得ることに留意されたい。また、視差ベクトルが整数精度を有するとき、シフト演算（（ｍｖＤｉｓｐ［ｉ］＋２）＞＞２）が単にｍｖＤｉｓｐ［ｉ］に置き換えられ得ることに留意されたい。
【０１５６】
[0168]一例では、Ｃ０画素を識別することによってブロックを識別する代わりに、Ｃ３画素が利用され、ブロックが、Ｃ３画素をカバーする４×４ブロック／予測単位として識別される。Ｃ３位置は次のように計算される。
【０１５７】
xRef = Clip3( 0, PicWidthInSamplesL - 1, xP + ( ( nPSW)  >>  1 ) + ( ( mvDisp[0] + 2 )  >>  2 ) ) (H-124)
yRef = Clip3( 0, PicHeightInSamplesL - 1, yP + ( ( nPSH)  >>  1 ) + ( ( mvDisp[1] + 2 )  >>  2 ) ) (H-125)
ここで、参照ピクチャ中の位置のｘ座標をｘＲｅｆが表し、ｙ座標をｙＲｅｆが表し、この位置をカバーするブロックが参照ブロックである。
【０１５８】
[0169]幾つかの例では、Ｃ１又はＣ２が使用され得る。幾つかの例では、ＢＲ０、ＢＲ１又はＢＲ２が使用され得る。幾つかの例では、Ｃ０が最初に使用され、更に、Ｃ０をカバーするブロック０が利用可能なマージ候補を生成しないとき、Ｃ３をカバーするブロック３が、ブロック０とは異なる場合に、利用可能なマージ候補を生成するために使用される（以下でより詳細に説明する）。幾つかの例では、Ｃ３が最初に使用される。更に、Ｃ３をカバーするブロック３が利用可能なマージ候補を生成しないとき、Ｃ０をカバーするブロック０が、ブロック０とは異なる場合に、利用可能なマージ候補を生成するために使用される。
【０１５９】
[0170]幾つかの例では、マージ候補の導出元となり得る、ＢＲ０をカバーする４×４ブロック、即ちブロックＢ０と、ＢＲ１をカバーする４×４ブロック、即ちブロックＢ１と、ＢＲ２をカバーする４×４ブロック、即ちブロックＢ２とを識別するために、ＢＲ０、ＢＲ１又はＢＲ２が使用される。幾つかの例では、ブロック０又はブロック３からの、若しくはブロック０もしくはブロック３のいずれかからのマージ候補が利用不可能であるとき、ブロックＢ０、ブロックＢ１及びブロックＢ２の１つ又は複数のブロックからの更なるマージ候補が使用される。
【０１６０】
[0171]幾つかの例では、例えば次のように４×４で位置合わせされるように、左上隅位置が最初にシフトし、量子化される。（（ｘＰ＋（ｍｖＤｉｓｐ［０］＋２）＞＞２）＋２）＞＞２，（ｙＰ＋（ｍｖＤｉｓｐ［１］＋２）＞＞２）＋２）＞＞２）を計算し、その後、４×４ブロックを識別するために（ｎＰＳＷ／２，ｎＰＳＨ／２）、（ｎＰＳＷ，ｎＰＳＨ）のシフトが直接適用され得る。他の潜在的ブロックは、（ｎＰＳＷ／２−４，ｎＰＳＨ／２−４）、（ｎＰＳＷ／２＋４，ｎＰＳＨ／２＋４）、（ｎＰＳＷ−４，ｎＰＳＨ−４）、及び（ｎＰＳＷ＋４，ｎＰＳＨ＋４）のシフトに基づき得る。シフトが適用された後、シフトしたサンプル位置を左上位置として使用する４×４ブロックが識別される。
【０１６１】
[0172]上述のように、本開示で説明する技法は、３Ｄ−ＨＥＶＣなどのビデオコード化規格に関する。以下では、ＨＥＶＣに関する何らかのコンテキストを提供する。
【０１６２】
[0173]どのピクチャが現在のピクチャについての参照ピクチャであり得るかを識別するために、参照ピクチャリストが利用される。例えば、参照ピクチャリストはそれぞれ、インデックスによってアドレス指定可能な、参照ピクチャを識別する複数のエントリーを含む。ビデオコーダは、Ｐピクチャについての１つの参照ピクチャリストとＢピクチャについての２つの参照ピクチャリストとを構築することができる。参照ピクチャリストは、ＲｅｆＰｉｃＬｉｓｔ０及びＲｅｆＰｉｃＬｉｓｔ１として識別される。参照ピクチャリスト構築は、参照ピクチャリスト初期化ステップと参照ピクチャリスト並べ替え（修正）ステップとを含む。
【０１６３】
[0174]参照ピクチャリスト初期化は、ビデオコーダが参照ピクチャメモリ（復号ピクチャバッファとしても知られる）に記憶された参照ピクチャを、ＰＯＣ（ピクチャの表示順で整列されるピクチャ順序カウント）値の順序に基づいて参照ピクチャリストに入れる明示的機構である。参照ピクチャリスト並べ替えでは、ビデオコーダは、参照ピクチャリスト初期化中のリストにおけるピクチャの位置を任意の新しい位置に修正すること、又は参照ピクチャメモリに記憶された任意の参照ピクチャを任意の位置に入れることができる。これは、初期化されたリストに属していないピクチャを含む。幾つかの例では、参照ピクチャリスト並べ替え（修正）の後、ビデオコーダは幾つかのピクチャを、リスト中のより遠い位置に置く。但し、ピクチャの位置がリストのアクティブ参照ピクチャの数を超える場合、ピクチャは、最終参照ピクチャリストのエントリーとは見なされない。アクティブ参照ピクチャの数は、リストごとにスライスヘッダにおいて信号伝達され得る。参照ピクチャリストが構築された（即ち、利用可能な場合にＲｅｆＰｉｃＬｉｓｔ０及びＲｅｆＰｉｃＬｉｓｔ１）後、ビデオコーダは、参照ピクチャリストへの参照インデックスに基づいて、参照ピクチャリストに含まれる参照ピクチャを識別する。
【０１６４】
[0175]上述のように、動きベクトルは参照ピクチャ中のブロックを識別する。幾つかの例では、動きベクトル自体をコード化するのではなく、ビデオコーダは動きベクトルを導出するために動きベクトル予測子を利用することができる。動きベクトル予測子の一例は、時間的動きベクトル予測子である。時間的動きベクトル予測子（ＴＭＶＰ）を決定するために、ビデオコーダは、同一位置配置されたピクチャを識別する。現在のピクチャがＢスライスである場合、同一位置配置されたピクチャがＲｅｆＰｉｃＬｉｓｔ０からのものかＲｅｆＰｉｃＬｉｓｔ１からのものかを示すために、ビデオエンコーダ２０によってスライスヘッダ中でｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇが、ビデオデコーダ３０によって受信されるように信号伝達される。例えば、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの０の値は、同一位置配置されたピクチャがＲｅｆＰｉｃＬｉｓｔ１において識別されることを示し、ｃｏｌｌｏｃａｔｅｄ＿ｆｒｏｍ＿ｌ０＿ｆｌａｇの１の値は、同一位置配置されたピクチャがＲｅｆＰｉｃＬｉｓｔ０において識別されることを示す。
【０１６５】
[0176]ビデオコーダが参照ピクチャリストを識別した後、ビデオコーダは、識別された参照ピクチャリスト中でピクチャを識別するために、スライスヘッダ中で信号伝達されたｃｏｌｌｏｃａｔｅｄ＿ｒｅｆ＿ｉｄｘを使用する。ビデオコーダは、同一位置配置されたピクチャ中で、同一位置配置された予測単位（ＰＵ）を識別する。同一位置配置された予測単位の例としては、現在のピクチャ中の現在のブロックが位置する場所に対する同一位置配置されたピクチャ中のＣＵの右下に位置するＰＵ、又は現在のブロックが位置する場所に対する同一位置配置されたピクチャ中のＣＵ中の中心ブロックがある。ＴＭＶＰは、右下ＰＵ又は中心ＰＵの動き情報のうちの１つであり得る。
【０１６６】
[0177]幾つかの例では、ＴＭＶＰは、先進動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モード又はマージ／スキップモードに使用される候補動きベクトル予測子のリスト中でビデオコーダが識別する動きベクトル予測子のうちの１つであり、これらのモードの両方について、より詳細に説明する。動きベクトル予測子の更なる例としては、空間的動きベクトル予測子（ＳＭＶＰ）と呼ばれる、空間的に隣接するブロックの動きベクトルがある。本開示で説明する技法によれば、視差ベクトルによって識別される参照ブロックの動きベクトルは、動きベクトル予測子のうちの１つを形成することもでき、幾つかの例では、視差ベクトル自体が、動きベクトル予測子のうちの１つを形成することができる。
【０１６７】
[0178]ビデオコーダがＡＭＶＰモード又はマージモードのための動き候補を生成するために上記のプロセスによって識別される動きベクトルを使用するとき、ビデオコーダは、時間位置（ＰＯＣに反映される）に基づいて動きベクトルをスケーリングすることができる。幾つかの例では、ビデオコーダは、マージモードの場合にＴＭＰＶの参照インデックスをゼロに等しく設定するように事前構成されてよく、またＡＭＶＰモードの場合に、ビデオコーダは参照インデックスを、信号伝達された参照インデックスに等しく設定してよい。
【０１６８】
[0179]ＨＥＶＣでは、ＳＰＳは、フラグｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇを含み、スライスヘッダは、ｓｐｓ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇが１に等しいとき、フラグｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇを含む。ある特定のピクチャに対してｐｉｃ＿ｔｅｍｐｏｒａｌ＿ｍｖｐ＿ｅｎａｂｌｅ＿ｆｌａｇとｔｅｍｐｏｒａｌ＿ｉｄの両方が０に等しいとき、復号順序がその特定のピクチャの前のピクチャからの動きベクトルは、特定のピクチャ、又は復号順序が特定のピクチャの後のピクチャの復号において、時間的動きベクトル予測子として使用されない。
【０１６９】
[0180]以下では、マージモード及びＡＭＶＰモードについて説明する。マージモード及びＡＭＶＰモードの一部として視差ベクトルを使用するための技法について、以下で更により詳細に説明する。
【０１７０】
[0181]マージモード及びＡＭＶＰモードでは、ビデオコーダ（例えば、ビデオエンコーダ２０又はビデオデコーダ３０）は、候補動きベクトル予測子のリストを構築する。候補動きベクトル予測子のリストは、空間的又は時間的に隣接するブロックなど、隣接ブロックについての動きベクトルを含む。ビデオエンコーダ２０は、候補動きベクトル予測子のリストへのインデックスを信号伝達し、ビデオデコーダ３０は、インデックスに基づいて動きベクトル予測子を決定する。
【０１７１】
[0182]マージモードでは、ビデオコーダは、動きベクトル予測子についての動き情報（例えば、参照ピクチャ及び動きベクトル値）の全てを、現在のブロックについての動き情報として継承する。ＡＭＶＰモードでは、ビデオエンコーダ２０は、現在のブロックについての実際の動きベクトルと動きベクトル予測子との間の動きベクトル差分値（ＭＶＤ）を信号伝達する。ビデオデコーダ３０は、動きベクトル予測子にＭＶＤを加算することによって、現在ブロックについての実際の動きベクトルを決定する。更に、ビデオエンコーダ２０は、参照ピクチャを識別するために使用される情報（例えば、ＲｅｆＰｉｃＬｉｓｔ０及びＲｅｆＰｉｃＬｉｓｔ１の一方又は両方へのインデックス値）を信号伝達し、ビデオデコーダ３０は、参照ピクチャを識別するために使用される受信された情報に基づいて参照ピクチャを決定する。
【０１７２】
[0183]幾つかの例では、隣接ブロックの動きベクトルに加えて、現在のブロックの視差ベクトルから決定された動きベクトル、ならびに視差ベクトルが、マージモード及びＡＭＶＰモードのために候補動きベクトル予測子のリストに追加され得る。視差ベクトルから動きベクトルを決定するための技法及び視差ベクトルを決定するための技法については、以下で更に説明する。
【０１７３】
[0184]以下では、視差ベクトル導出のための技法（例えば、視差ベクトル導出プロセス）について説明する。視差ベクトルを導出するために、隣接ブロックベース視差ベクトル（ＮＢＤＶ）導出技法と呼ばれる方法が、ビデオエンコーダ２０及びビデオデコーダ３０によって現在の３Ｄ−ＨＴＭにおいて使用される。例えば、ビデオコーダは、ＮＢＤＶ導出技法に従って視差ベクトルを導出するために、空間的隣接ブロック及び時間的隣接ブロックからの視差動きベクトルを利用する。ＮＢＤＶ導出技法では、ビデオコーダは、固定されたチェック順に空間的隣接ブロック又は時間的隣接ブロックの動きベクトルをチェックする。ビデオコーダが視差動きベクトル又は暗示的視差ベクトル（ＩＤＶ）（暗示的視差ベクトルについては、以下でより詳細に説明する）を識別した後、ビデオコーダは、チェックプロセスを終了させ、識別された視差動きベクトルが返され、ビデオコーダは、識別された視差動きベクトルを視差ベクトルに変換する。ビデオコーダは、ビュー間動き予測及びビュー間残差予測として視差ベクトルを使用する。
【０１７４】
[0185]幾つかの例では、ビデオコーダが、所定の隣接ブロックを全てチェックした後、隣接ブロックからの視差動きベクトル又はＩＤＶを識別しないこともあり得る。そのような例では、ビデオコーダが視差動きベクトル又はＩＤＶを識別しなかった場合、ビデオコーダは、現在のブロックについてのゼロ視差ベクトルを決定する。ビデオコーダは、ビュー間動き予測など、様々なビデオコード化ツールにゼロ視差ベクトルを使用する。但し、ビデオコーダが視差動きベクトル又はＩＤＶを識別しなかった場合、ビュー間残差予測は現在のブロックに利用可能ではない。
【０１７５】
[0186]上述のように、ビデオコーダは、ＮＢＤＶ導出技法の一部として視差動きベクトルを識別するために、空間的隣接ブロック及び時間的隣接ブロックをチェックする。空間的隣接ブロックでは、ビデオコーダは、５つの空間的隣接ブロックをチェックし、これらの例としては、ＨＥＶＣ仕様のＦｉｇｕｒｅ  ８−３において定義されるように、Ａ０、Ａ１、Ｂ０、Ｂ１又はＢ２によって示される、現在のブロック（例えば、現在の予測単位（ＰＵ））の左下、左、右上、上及び左上のブロックがある。ビデオコーダがチェックする時間的隣接ブロックについては、図５に関してより詳細に説明する。
【０１７６】
[0187]図５は、隣接ブロックベース視差ベクトル（ＮＢＤＶ）導出のための時間的隣接ブロックを示す概念図である。時間的隣接ブロックでは、ビデオコーダは現在のビューから最大２つの参照ピクチャをチェックする。２つの参照ピクチャは、同一位置配置されたピクチャ（例えば、上述のＴＭＶＰプロセスの一部としてスライスヘッダ中で信号伝達されるもの）及びランダムアクセスピクチャ又は最小のＰＯＣ差異と最小の時間的ＩＤとを有する参照ピクチャのうちの１つである。幾つかの例では、ビデオコーダは、最初にランダムアクセスピクチャをチェックし、続いて、同一位置配置されたピクチャをチェックする。例えば、ビデオコーダがランダムアクセスピクチャ中に視差動きベクトルを識別した場合、ビデオコーダは時間的隣接ブロックのチェックを終了させる。ビデオコーダがランダムアクセスピクチャ中に視差動きベクトルを識別しなかった場合、ビデオコーダは同一位置配置されたピクチャ（例えば、ＴＭＶＰプロセスの一部としてスライスヘッダ中で識別されたピクチャ）をチェックする。これらのピクチャの各々は、ＮＢＤＶ導出の目的で候補ピクチャと呼ばれる。
【０１７７】
[0188]候補ピクチャごとに、ビデオコーダは２つの候補ブロックをチェックする。第１のブロックは中心ブロック（ＣＲ）である。例えば、ＣＲブロックは図５の位置Ａに位置し、現在のＰＵの同一位置配置された領域の中心４×４ブロックである。第２のブロックは右下ブロック（ＢＲ）である。例えば、ＢＲブロックは図５の位置Ｂに位置し、現在のＰＵの同一位置配置された領域の右下４×４ブロックである。
【０１７８】
[0189]上述のように、視差動きベクトルについて空間的隣接ブロック及び時間的隣接ブロックをチェックすることに加えて、ビデオコーダは暗示的視差ベクトル（ＩＤＶ）を識別することができる。暗示的視差ベクトル（ＩＤＶ）は、ＰＵがビュー間動きベクトル予測を採用するとき、即ち、ＡＭＶＰモード又はマージモードのための候補が、視差ベクトルの助けにより他のビュー中の対応するブロックから導出されるとき、生成される。そのような視差ベクトルは、ＩＤＶと呼ばれる。ＩＤＶは、視差ベクトル導出の目的でＰＵに記憶される。言い換えれば、ビデオコーダは、隣接ブロックについての視差ベクトルを導出するためのＮＢＤＶ技法を実装していることがある。隣接ブロックについての視差ベクトルは、現在のブロックについての視差ベクトルとして機能し得る。現在のブロックについての視差ベクトルとして機能する隣接ブロックについての視差ベクトルは、ＩＤＶと呼ばれる。
【０１７９】
[0190]ビデオコーダは、特定のチェック順序で空間的隣接ブロックと、時間的隣接ブロックと、ＩＤＶとをチェックすることができる。例えば、ビデオコーダは、最初に視差動きベクトルについて空間的隣接ブロックと時間的隣接ブロックとをチェックすることができ、視差動きベクトルが識別されなかった場合、ＩＤＶをチェックすることができる。
【０１８０】
[0191]幾つかの例では、ビデオコーダは、最初に空間的隣接ブロックをチェックし、次いで時間的隣接ブロックをチェックする。例えば、ビデオコーダは次の順序で５つの空間的隣接ブロックをチェックする。Ａ１、Ｂ１、Ｂ０、Ａ０そしてＢ２。それらのうちの１つが視差動きベクトル（ＤＭＶ）を使用する場合、ビデオコーダはチェックプロセスを終了させ、最終的な視差ベクトルとして対応するＤＭＶを使用する。時間的隣接ブロックでは、候補ピクチャごとに、ビデオコーダは次の順序で２つのブロックをチェックする。第１の非ベースビュー（例えば、ランダムアクセスピクチャ）についてＣＲ（図５の位置Ａ）そしてＢＲ（図５の位置Ｂ）又は第２の非ベースビューについて（例えば、同一位置配置されたピクチャについて）ＢＲ、ＣＲ。それらのうちの１つがＤＭＶを使用する場合、ビデオコーダはチェックプロセスを終了させ、最終的な視差ベクトルとして対応するＤＭＶを使用する。ＩＤＶでは、ビデオコーダは次の順序で５つの空間的隣接ブロックをチェックする。Ａ０、Ａ１、Ｂ０、Ｂ１そしてＢ２。それらのうちの１つがＩＤＶを使用する場合（即ち、それらのうちの１つについて視差ベクトルが存在する場合）、スキップ／マージモードとしてブロックがコード化され、ビデオコーダは、チェックプロセスが終了することを終了させ、最終的な視差ベクトルとして対応するＩＤＶを使用する。
【０１８１】
[0192]幾つかの例では、ビデオコーダは更に、視差ベクトルを改良し得る。例えば、ビデオコーダは、ＮＢＤＶ方式から生成された視差ベクトルを改良するために、コード化された深度マップにおける情報を使用する。例えば、単にＮＢＤＶ導出技法から導出された視差ベクトルの精度は、十分に正確ではないことがあり、コード化されたベースビュー深度マップにおける情報を使用することによって、精度が高まり得る。例えば、図３では、ビューＳ０はベースビューであり、ビューＳ０のテクスチャビューコンポーネントの各々について、対応する深度マップがあり得る。ビデオコーダは、ベースビューＳ０中の対応するテクスチャビューコンポーネントの深度マップを使用して、視差ベクトル改良を実行することができる。
【０１８２】
[0193]例えば、ビデオコーダは、ベースビューなど、以前にコード化された参照深度ビュー中のＮＢＤＶ導出された視差ベクトルによって対応する深度ブロックを位置特定することができる。対応する深度ブロックのサイズは、現在のＰＵのサイズと同じである。ビデオコーダは、４つのコーナー深度値の最大値に基づいて、同一位置配置された深度ブロックから視差ベクトルを計算することができる。ビデオコーダは、最大深度値を視差ベクトルの水平成分に等しく設定し、視差ベクトルの垂直成分を０に設定する。
【０１８３】
[0194]この得られた改良済み視差ベクトルは、「深度指向隣接ブロックベース視差ベクトル（ＤｏＮＢＤＶ：depth oriented neighboring block based disparity vector）」と呼ばれる。ビデオコーダは、ＡＭＶＰモード及びマージモードに関するビュー間候補導出のために、ＤｏＮＢＤＶ方式からの新規に導出された視差ベクトルに、ＮＢＤＶ方式からの視差ベクトルを置き換える。但し、ビュー間残差予測では、ビデオコーダは改良されていない視差ベクトルを使用する。加えて、改良された視差ベクトルは、後方ビュー合成予測（ＶＳＰ）モードでコード化される場合、１つのＰＵの動きベクトルとして記憶される。本開示では、視差ベクトルという用語は、改良されていない視差ベクトル又は改良された視差ベクトルを指し得る。
【０１８４】
[0195]図６は、後方ビュー合成予測（ＢＶＳＰ）に関連する参照ビューからの深度ブロック導出を示す概念図である。例えば、図６は、隣接ブロックを使用するＢＶＳＰに関する技法を示す概念図である。ＢＶＳＰは、３Ｄ−ＨＥＶＣのための技法として提案され、採用されている。ＪＣＴ３Ｖ−Ｃ０１５２において提案されたような後方ワーピングＶＳＰ手法が、第３回ＪＣＴ−３Ｖ会合において採用された。ＪＣＴ３Ｖ−Ｃ０１５２は、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ３ｖ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｃｕｒｒｅｎｔ＿ｄｏｃｕｍｅｎｔ．ｐｈｐ？ｉｄ＝５９４から入手可能である。
【０１８５】
[0196]この後方ワーピングＶＳＰの基本的な考えは、３Ｄ−ＡＶＣにおけるブロックベースＶＳＰと同じである。これらの２つの技法の両方は、動きベクトル差分を送信することを避け、より正確な動きベクトルを使用するために、後方ワーピングＶＳＰとブロックベースＶＳＰとを使用する。実装の詳細は、プラットフォームの違いに起因して異なる。以下の段落では、「ＢＶＳＰ」という用語は、３Ｄ−ＨＥＶＣにおける後方ワーピングＶＳＰ手法を示すために使用される。
【０１８６】
[0197]３Ｄ−ＨＴＭでは、テクスチャ優先コード化が共通試験条件において適用される。従って、対応する非ベース深度ビューは、１つの非ベーステクスチャビューを復号するとき、利用不可能である。従って、深度情報は、ＢＶＳＰを実行するために推定及び使用される。ブロックに関する深度情報を推定するために、幾つかの技法は、最初に隣接ブロックから視差ベクトルを導出し、次いで参照ビューから深度ブロックを取得するために、導出された視差ベクトルを使用する。
【０１８７】
[0198]ＨＴＭ５．１試験モデルでは、ＮＢＤＶとして知られる視差ベクトル予測子を導出するためのプロセスが存在する。（ｄｖｘ，ｄｖｙ）がＮＢＤＶ関数から識別された視差ベクトルを示し、現在のブロック位置が（ｂｌｏｃｋｘ，ｂｌｏｃｋｙ）であるとする。参照ビューの深度画像中の（ｂｌｏｃｋｘ＋ｄｖｘ，ｂｌｏｃｋｙ＋ｄｖｙ）における深度ブロックをフェッチすることが提案された。フェッチされた深度ブロックは、現在の予測単位（ＰＵ）の同じサイズを有することになり、それが次いで、現在のＰＵのための後方ワーピングを行うために使用されることになる。図６は、参照ビューから深度ブロックを位置特定し、次いで、ＢＶＳＰ予測のためにその深度ブロックを使用するためのステップを示す。
【０１８８】
[0199]図６の例では、深度ピクチャ１５０及びテクスチャピクチャ１５４は同じビューに対応し、一方、テクスチャピクチャ１５２は異なるビューに対応する。特に、テクスチャピクチャ１５２は、参照ピクチャとして働く、テクスチャピクチャ１５４に対してコード化されている現在のブロック１６０を含む。ビデオコーダは、現在のブロック１６０に隣接する、隣接ブロック１６２を参照し得る。隣接ブロック１６２は、以前に決定された視差ベクトル１６６を含む。視差ベクトル１６６は、現在のブロック１６０についての視差ベクトル１６４として導出され得る。従って、視差ベクトル１６４は、参照ビューの深度ピクチャ１５０中の深度ブロック１５６を参照する。
【０１８９】
[0200]ビデオコーダは、次いで、後方ワーピングを実行するために、現在のブロック１６０の画素のための視差値１６８（即ち、テクスチャ値）を決定するために、深度ブロック１５６の画素（即ち、深度値）を使用し得る。ビデオコーダは、次いで、視差値１６８によって識別された画素から、現在のブロック１６０のための予測されたブロック（即ち、ＢＶＳＰ参照ブロック）のための値を合成し得る。ビデオコーダは、次いで、この予測されたブロックを使用して、現在のブロック１６０を予測し得る。例えば、ビデオエンコーダ２０によるビデオ符号化中に、ビデオエンコーダ２０は、残差値を生成するために、予測されたブロックと現在のブロック１６０との間の画素ごとの差分を計算し得、ビデオエンコーダ２０は、次いで、それを変換、量子化、及びエントロピー符号化し得る。一方、ビデオデコーダ３０によるビデオ復号中に、ビデオデコーダ３０は、残差データをエントロピー復号、逆量子化、及び逆変換し、次いで、現在のブロック１６０を再生するために、残差データを（画素ごとに）予測されたブロックと結合し得る。
【０１９０】
[0201]幾つかの例では、ＢＶＳＰがシーケンス中で有効にされる場合、ビュー間動き予測用のＮＢＤＶプロセスは変更される。時間的隣接ブロックの各々について、時間的隣接ブロックが視差動きベクトルを使用する場合、ビデオコーダは視差ベクトルとして視差動きベクトルを返し、視差ベクトルを更に改良するための技法に関して上述した方法により視差ベクトルを更に改良する。空間的隣接ブロックの各々について、次のことが当てはまる。参照ピクチャリスト０又は参照ピクチャリスト１の各々について、空間的隣接ブロックが視差動きベクトルを使用する場合に次のことが当てはまり、ビデオコーダは視差ベクトルとして視差動きベクトルを返し、視差ベクトルを更に改良するための技法に関して上述した方法により更に改良される。別段に、空間的隣接ブロックがＢＶＳＰモードを使用する場合、ビデオコーダは、視差ベクトルとして関連の動きベクトルを返す。視差ベクトルを更に改良するための技法に関して上述した方法と同様の方法で視差ベクトルが更に改良される。但し、最大深度値は、４つのコーナー画素ではなく、対応する深度ブロックの全ての画素から選択される。空間的隣接ブロックの各々について、空間的隣接ブロックがＩＤＶを使用する場合、そのＩＤＶが視差ベクトルとして返され、視差ベクトルを更に改良するための技法に関して上述した方法により視差ベクトルが更に改良される。上述のように、本開示では、「視差ベクトル」という用語は一般に、改良されていない視差ベクトル又は改良された視差ベクトルを指すために使用される。
【０１９１】
[0202]ＢＶＳＰコード化されたＰＵの指示について、ビデオコーダは、導入されたＢＶＳＰモードを、特殊なインターコード化されたモードとして扱い、ＢＶＳＰモードの使用を示すためにフラグを使用し、ビデオコーダは、ＰＵごとにそれを維持することができる。幾つかの例では、ビデオコーダは、ビットストリーム中でフラグを信号伝達するのではなく、新規のマージ候補（ＢＶＳＰマージ候補）をマージ候補リスト（例えば、候補動きベクトル予測子のリスト）に追加し、フラグは、復号されたマージ候補インデックスがＢＶＳＰマージ候補に対応するかどうかに依存する。
【０１９２】
[0203]以下では、ＢＶＳＰマージ候補について説明する。例えば、ビデオコーダは、各参照ピクチャリストの参照ピクチャインデックスを−１に設定し、次いで、各参照ピクチャリストの動きベクトルを、改良された視差ベクトルとして設定することができる。
【０１９３】
[0204]ＢＶＳＰマージ候補の挿入位置は、空間的隣接ブロックに依存する。例えば、５つの空間的隣接ブロック（即ち、Ａ０、Ａ１、Ｂ０、Ｂ１、又はＢ２）のいずれかがＢＶＳＰモードによりコード化される（即ち、隣接ブロックの維持されたフラグが１に等しい）場合、ビデオコーダは、ＢＶＳＰマージ候補を対応する空間的マージ候補として扱うことができ、それをマージ候補リストに挿入する。幾つかの例では、ビデオコーダは、ＢＶＳＰマージ候補を１回だけマージ候補リストに挿入する。そうでない場合（例えば、５つの空間的隣接ブロックのいずれもＢＶＳＰモードによりコード化されない場合）、ビデオコーダは、時間的マージ候補の直前にＢＶＳＰマージ候補をマージ候補リストに挿入する。幾つかの例では、結合双予測マージ候補導出プロセス中、ビデオコーダは、ＢＶＳＰマージ候補を含めるのを避けるために、追加条件をチェックすればよい。
【０１９４】
[0205]以下では、予測導出プロセスについて説明する。サイズがＮ×Ｍによって示される各ＢＶＳＰコード化されたＰＵの場合、ビデオコーダはＰＵを、Ｋ×Ｋ（ここでＫは４又は２であり得る）に等しいサイズを有する幾つかのサブ領域に更に区分する。各サブ領域について、ビデオコーダは、別個の視差動きベクトルを導出し、ビュー間参照ピクチャ中の導出された視差動きベクトルによって位置特定された１つのブロックから各サブ領域を予測する。言い換えれば、ＢＶＳＰコード化されたＰＵのための動き補償単位のサイズは、Ｋ×Ｋに設定される。幾つかの共通試験条件では、Ｋは４に設定される。
【０１９５】
[0206]以下では、視差動きベクトル導出プロセスについて説明する。ＢＶＳＰモードによりコード化された１つのＰＵ内の各サブ領域（例えば、４×４ブロック）について、ビデオコーダは最初に、対応する４×４深度ブロックを、上述の改良された視差ベクトルにより参照深度ビュー中において位置特定する。次いでビデオコーダは、対応する深度ブロック中の１６個の深度画素の最大値を選択する。次に、ビデオコーダは、その最大値を視差動きベクトルの水平成分に変換する。視差動きベクトルの垂直成分は、０に設定される。
【０１９６】
[0207]上述のように、視差ベクトルを使用するビデオコード化ツールのうちの１つは、ビュー間動き予測である。以下では、視差ベクトルが使用される方法を含む、ビュー間動き予測について説明する。
【０１９７】
[0208]図７は、ビュー間予測動きベクトル候補の導出を示すブロック図である。ＤｏＮＢＤＶ方式から導出された視差ベクトルに基づいて、新規の動きベクトル候補であるビュー間予測動きベクトル候補（ＩＰＭＶＣ）が、利用可能な場合に、ビデオコーダによってＡＭＶＰモード及びスキップ／マージモードに追加され得る。ビュー間予測動きベクトルは、利用可能な場合、時間的動きベクトルである。
【０１９８】
[0209]スキップモードはマージモードと同じ動きベクトル導出プロセスを有するので、以下で説明する技法は、マージモードとスキップモードの両方に適用され得る。マージ／スキップモードに関して、ビデオコーダは、以下のステップに従ってビュー間予測動きベクトルを導出する。ビデオコーダは、視差ベクトルを使用して同じアクセス単位の参照ビュー中の現在のブロック（例えば、現在のＰＵ／ＣＵ）の対応するブロックを位置特定する。対応するブロックがイントラコード化されず、ビュー間予測されず、それの参照ピクチャが、現在のＰＵ／ＣＵの同じ参照ピクチャリスト中の１つのエントリーのＰＯＣ値に等しいＰＯＣ値を有する場合、ビデオコーダは、ビュー間予測動きベクトルとなるようにＰＯＣ値に基づいて参照インデックスを変換し、対応するブロックの動き情報（予測方向、参照ピクチャ、及び動きベクトル）を導出する。
【０１９９】
[0210]例えば、図７では、現在のブロックは、時間Ｔ１においてビューＶ１中にある。ビデオコーダは、ビューＶ０中の時間Ｔ１における参照ピクチャから、現在のブロックについての対応するブロックを識別し得る。ビデオコーダは、垂直の破線矢印によって示されているように、ビューＶ０中の参照ピクチャ中の対応するブロックについての動きベクトルとして、ビュー間予測ベクトルを導出することができる。
【０２００】
[0211]幾つかの例では、参照ビュー中の参照ピクチャ中の位置を決定するための以下の式を使用して、対応するブロックが識別され、その場合、決定された位置をカバーするブロックが参照ブロック（例えば、対応するブロック）として識別される。
【０２０１】
xRef = Clip3( 0, PicWidthInSamplesL - 1, xP + (( nPSW - 1 )  >>  1 ) + (( mvDisp[0] + 2 )  >>  2 ) )        (H-124)  
yRef = Clip3( 0, PicHeightInSamplesL - 1, yP + (( nPSH - 1 )  >>  1 ) + (( mvDisp[1] + 2 )  >>  2 ) )        (H-125)
[0212]言い換えれば、３Ｄ−ＨＥＶＣでは、参照４×４ブロックは、２つのステップによって識別され、第１のステップは、視差ベクトルにより画素を識別することであり、第２のステップは、（それぞれＲｅｆＰｉｃＬｉｓｔ０又はＲｅｆＰｉｃＬｉｓｔ１に対応する動き情報の固有のセットとともに）４×４ブロックを取得し、マージ候補を作成するために動き情報を利用することである。幾つかの例では、上記の式は、参照ビューの参照ピクチャ中の位置を決定するために（例えば、図４の位置Ｃ０の位置を決定するために）使用される。
【０２０２】
[0213]但し、本開示で説明する技法によれば、参照ピクチャ中の位置を決定するために上記の式を使用することは、最適なビデオコード化利得をもたらす統計的傾向がないことがある。従って、幾つかの例では、参照ピクチャ内の位置を決定するために（例えば、図４の位置Ｃ３の位置を決定するために）以下の式が使用され得る。
【０２０３】
xRef = Clip3( 0, PicWidthInSamplesL - 1, xP + (( nPSW)  >>  1 ) + (( mvDisp[0] + 2 )  >>  2 ) ) (H-124)
yRef = Clip3( 0, PicHeightInSamplesL - 1, yP + (( nPSH)  >>  1 ) + (( mvDisp[1] + 2 )  >>  2 ) ) (H-125)
[0214]加えて、幾つかの例では、ビデオコーダは、視差ベクトルをビュー間視差動きベクトルに変換し、ビュー間視差動きベクトルが利用可能であるとき、ビュー間視差動きベクトルを、ＩＰＭＶＣとは異なる位置においてマージ候補リストに追加するか、又はビュー間視差動きベクトルを、ＩＰＭＶＣと同じ位置においてＡＭＶＰ候補リストに追加する。ＩＰＭＶＣ又はビュー間視差動きベクトル候補（ＩＤＭＶＣ）のいずれかは、このコンテキストにおいて、「ビュー間候補」と呼ばれる。
【０２０４】
[0215]マージ／スキップモードでは、ＩＰＭＶＣが利用可能である場合、ビデオコーダはマージ候補リストに、全ての空間的及び時間的マージ候補より前に、ＩＰＭＶＣを挿入する。ビデオコーダは、Ａ０から導出された空間的マージ候補の前にＩＤＭＶＣを挿入する。
【０２０５】
[0216]以下では、３Ｄ−ＨＥＶＣにおけるテクスチャコード化のためのマージ候補リスト構築について説明する。ビデオコーダは、ＤｏＮＢＤＶ方法視差ベクトルを導出する。視差ベクトルの場合、３Ｄ−ＨＥＶＣにおけるマージ候補リスト構築プロセスは、次のように定義される。
【０２０６】
[0217]ビデオコーダは、上記で説明した手順によってＩＰＭＶＣを導出する。ＩＰＭＶＣが利用可能である場合、ビデオコーダは、ＩＰＭＶＣをマージリストに挿入する。次いで、３Ｄ−ＨＥＶＣにおいて、ビデオコーダは、空間的マージ候補及びＩＤＭＶＣ挿入に関する導出プロセスを実行する。例えば、ビデオコーダは次の順序で空間的隣接ＰＵの動き情報をチェックすることができる。Ａ１、Ｂ１、Ｂ０、Ａ０、又はＢ２。
【０２０７】
[0218]ビデオコーダは、以下の手順によって、制約付きプルーニングを実行することができる。Ａ１及びＩＰＭＶＣが同じ動きベクトル及び同じ参照インデックスを有する場合、ビデオコーダは、Ａ１を候補リストに挿入しない。そうでない場合、ビデオコーダは、Ａ１をリストに挿入する。Ｂ１及びＡ１／ＩＰＭＶＣが同じ動きベクトル及び同じ参照インデックスを有する場合、ビデオコーダは、Ｂ１を候補リストに挿入しない。そうでない場合、ビデオコーダは、Ｂ１をリストに挿入する。Ｂ０が利用可能である場合、ビデオコーダは、Ｂ０を候補リストに追加する。ＩＤＭＶＣが、上記で説明した手順によって導出される。ＩＤＭＶＣが利用可能であり、Ａ１及びＢ１から導出された候補とは異なる場合、ビデオコーダは、ＩＤＭＶＣを候補リストに挿入する。ＢＶＳＰがピクチャ全体又は現在のスライスに関して有効にされる場合、ビデオコーダは、ＢＶＳＰマージ候補をマージ候補リストに挿入する。Ａ０が利用可能である場合、ビデオコーダは、Ａ０を候補リストに追加する。Ｂ２が利用可能である場合、ビデオコーダは、それを候補リストに追加する。
【０２０８】
[0219]次に、ビデオコーダは、時間的マージ候補に関する導出プロセスを実行する。同一位置配置されたＰＵの動き情報が利用されるＨＥＶＣにおける時間的マージ候補導出プロセスと同様に、時間的マージ候補のターゲット参照ピクチャインデックスが、０となるように固定するのではなく変更され得る。０に等しいターゲット参照インデックスが（同じビュー中の）時間的参照ピクチャに対応する一方で、同一位置配置された予測単位（ＰＵ）の動きベクトルがビュー間参照ピクチャを指すとき、ビデオコーダは参照インデックスを、参照ピクチャリスト内のビュー間参照ピクチャの第１のエントリー（例えば、別のビュー中の参照ピクチャを伴う第１のエントリー）に対応する別のインデックスに変更する。０に等しいターゲット参照インデックスがビュー間参照ピクチャに対応する一方で、同一位置配置された予測単位（ＰＵ）の動きベクトルが時間的参照ピクチャを指すとき、ビデオコーダは、参照インデックスを、参照ピクチャリスト内の時間的参照ピクチャの第１のエントリー（例えば、同じビュー中の参照ピクチャを伴う第１のエントリー）に対応する別のインデックスに変更する。
【０２０９】
[0220]次いで、３Ｄ−ＨＥＶＣにおける結合双予測マージ候補に関する導出プロセスに従う。上記の２つのステップから導出された候補の総数が、候補の最大数未満である場合、ビデオコーダは、ｌ０ＣａｎｄＩｄｘ及びｌ１ＣａｎｄＩｄｘの仕様を除いて、ＨＥＶＣにおいて定義されたものと同じプロセスを実行する。ｃｏｍｂＩｄｘ、ｌ０ＣａｎｄＩｄｘ及びｌ１ＣａｎｄＩｄｘの間の関係は、次の表において定義されている。
【表１】
2016525319.tif 000003
【０２１０】
[0221]次いで、ゼロ動きベクトルマージ候補に関する導出プロセスに従う。ビデオコーダは、ゼロ動きベクトルマージ候補に関してＨＥＶＣにおいて定義されたものと同じ手順を適用し得る。
【０２１１】
[0222]最新のソフトウェアでは、マージ（ＭＲＧ）リスト中の候補の総数は最大６であり、ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄが、スライスヘッダ中で６から減算されるＭＲＧ候補の最大数を指定するために信号伝達される。シンタックス要素ｆｉｖｅ＿ｍｉｎｕｓ＿ｍａｘ＿ｎｕｍ＿ｍｅｒｇｅ＿ｃａｎｄは、両端値を含む０〜５の範囲内にある。
【０２１２】
[0223]図８は、深度コード化のための動きベクトル継承（ＭＶＩ）候補の導出を示す概念図である。以下では、深度コード化のための動きベクトル継承について説明する。動きベクトル継承（ＭＶＩ）の背後にある考えは、テクスチャ画像と関連深度画像との間の動き特性の類似性を活用することである。
【０２１３】
[0224]深度画像中の所与のＰＵのために、ＭＶＩ候補は、すでにコード化された対応するテクスチャブロックの動きベクトルと参照インデックスとを、当該テクスチャブロックが利用可能な場合に再使用する。即ち、テクスチャブロックについての動き情報が、対応する深度ブロックについての動き情報として、同じピクチャ及びビューに使用される。図８は、現在のＰＵの中心の右下に位置する４×４ブロックとして対応するテクスチャブロックが選択されるＭＶＩ候補の導出プロセスの一例を示している。
【０２１４】
[0225]幾つかの例では、ビデオコーダは深度コード化において整数精度を有する動きベクトルを使用し、テクスチャコード化に１／４精度の動きベクトル使用する。従って、ビデオコーダは、対応するテクスチャブロックの動きベクトルを、ＭＶＩ候補として使用する前にスケーリングし得る（例えば、スケーリングするものとする）。
【０２１５】
[0226]ＭＶＩ候補生成により、深度ビューのマージ候補リストが次のように構築される。ビデオコーダは、上記で説明した手順に基づいてＭＶＩを導出する。ＭＶＩが利用可能である場合、ビデオコーダは、ＭＶＩをマージリストに挿入する。次に、ビデオコーダは、３Ｄ−ＨＥＶＣにおいて空間的マージ候補及びＩＤＭＶＣ挿入に関する導出プロセスを実行し得る。例えば、ビデオは次の順序で空間的隣接ＰＵの動き情報をチェックすることができる。Ａ１、Ｂ１、Ｂ０、Ａ０、又はＢ２。
【０２１６】
[0227]ビデオコーダは、以下の手順を使用して、制約付きプルーニングを実行し得る。Ａ１及びＭＶＩが同じ動きベクトル及び同じ参照インデックスを有する場合、ビデオコーダは、Ａ１を候補リストに挿入しない。Ｂ１及びＡ１／ＭＶＩが同じ動きベクトル及び同じ参照インデックスを有する場合、ビデオコーダは、Ｂ１を候補リストに挿入しない。Ｂ０が利用可能である場合、ビデオコーダは、Ｂ０を候補リストに追加する。Ａ０が利用可能である場合、ビデオコーダは、Ａ０を候補リストに追加する。Ｂ２が利用可能である場合、ビデオコーダは、Ｂ２を候補リストに追加する。
【０２１７】
[0228]次いで、ビデオコーダは、時間的マージ候補に関する導出プロセスを実行し得る。例えば、ビデオコーダは、同一位置配置されたＰＵの動き情報が利用される、ＨＥＶＣにおける時間的マージ候補導出プロセスのステップと同様のステップを実行し得る。しかしながら、時間的マージ候補のターゲット参照ピクチャインデックスは、マージ候補リスト構築の記述に関して上記で説明したように、０となるように固定するのではなく変更され得る。
【０２１８】
[0229]次いでビデオコーダは、３Ｄ−ＨＥＶＣにおける結合双予測マージ候補に関する導出プロセスを実施することができる。例えば、上記の２つのステップから導出された候補の総数が、候補の最大数未満である場合、ビデオコーダは、ｌ０ＣａｎｄＩｄｘ及びｌ１ＣａｎｄＩｄｘの仕様を除いて、ＨＥＶＣにおいて定義されたものと同じプロセスを実行することができる。ｃｏｍｂＩｄｘ、ｌ０ＣａｎｄＩｄｘ、及びｌ１ＣａｎｄＩｄｘの間の関係は、本開示の表１（上記）において定義されている。
【０２１９】
[0230]次いでビデオコーダは、ゼロ動きベクトルマージ候補に関する導出プロセスを実施することができる。例えば、ビデオコーダは、ＨＥＶＣにおいて定義されたものと同じ手順を実行することができる。
【０２２０】
[0231]上述したように、ビュー間動き予測に加えて、視差ベクトルに依存する別のビデオコード化ツールは、ビュー間残差予測である。以下では、ビュー間残差予測について更に説明する。
【０２２１】
[0232]図９は、先進残差予測の例示的な予測構造を示す概念図である。現在の３Ｄ−ＨＥＶＣでは、２つのビューの残差信号間の相関をより効率的に利用するために、所謂先進残差予測（ＡＲＰ）によってビュー間残差予測が実現されており、ＡＲＰでは、参照ビューについての残差ピクチャを維持し、残差ピクチャ中の参照ブロック内の残差を直接予測する代わりに、図９に示すように、視差ベクトルにより識別された参照ブロックの残差がオンザフライで生成されている。
【０２２２】
[0233]図９に示すように、Ｄｃとして示される、非ベースビュー中の現在のブロックの残差をより十分に予測するために、ビデオコーダは、最初に視差ベクトルによって参照ブロックＢｃを識別し、参照ブロックの動き補償が、予測信号Ｂｒと参照ブロックＢｃの再構築信号との間の残差を導出するために呼び出される。ＡＲＰモードが呼び出されるとき、ビデオコーダは、非ベースビューの参照ピクチャ中のブロックＤｒからの動き補償によって生成された非ベースビューの予測信号の上部に予測残差を加算する。ＡＲＰモードの潜在的な利点は、（ＡＲＰのために残差を生成するとき）参照ブロックによって使用される動きベクトルが、現在のブロックの動きベクトルと一直線に並び、その結果、現在のブロックの残差信号がより正確に予測され得ることである。従って、残差のエネルギーは、かなり低減され得る。
【０２２３】
[0234]図１０は、先進残差予測の例示的な予測構造を示す別の概念図である。例えば、図１０は、図９の様々な成分を示しているが、異なる画像のテクスチャの詳細がない。単に説明を簡単にするために、図１０は図９に対して一定の縮尺で描かれてはいないことが諒解されよう。
【０２２４】
[0235]ベース（参照）ビューと非ベースビューとの間の量子化差分がより低い予測精度につながり得るので、ビデオコーダは、参照ビューから生成された残差に２つの重み係数、即ち０．５及び１を適応的に適用する。ベース（参照）ビューにおける追加の動き補償がメモリアクセス及び計算の大幅な増大を必要とする場合があるので、コード化効率の犠牲を小さくして設計をより実用的にするための幾つかの方法が採用されてきた。
【０２２５】
[0236]一例として、特にビデオエンコーダ２０によって、計算を低減するために２Ｎ×２Ｎにより予測単位（ＰＵ）がコード化されるときのみ、ＡＲＰモードが有効にされる。また、ＡＲＰモードによりコード化されるブロックに関するメモリアクセスを大幅に低減するために、参照ブロックと現在のブロックの両方の動き補償のために双線形フィルタが採用される。更に、キャッシュ効率を改善するために、動きベクトルは非ベースビュー中の様々なピクチャを指す場合があるが、ベースビュー中の参照ピクチャは固定される。この場合、現在のブロックの動きベクトルは、ピクチャ距離に基づいてスケーリングされる必要があり得る。
【０２２６】
[0237]以下では、深度インターコード化のための幾つかの他の技法について説明する。例えば、それぞれ２０１３年６月２７日、２０１３年７月１８日、及び２０１３年１０月１１日に出願された米国仮出願第６１／８４０，４００号、６１／８４７，９４２号、及び６１／８９０，１０７号、ならびにいずれも２０１４年６月２６日に出願された米国特許出願第１４／３１６，０８８号及び１４／３１６，１４５号では、深度ピクチャをコード化するときに、現在のブロックの隣接サンプルからの推定深度値によって視差ベクトルが変換される技法が説明されている。更に、（例えば、視差ベクトルによって識別されたベースビューの参照ブロックにアクセスすることによって）更なるマージ候補が導出され得る。
【０２２７】
[0238]図１１は、本開示で説明する１つ又は複数の例示的な技法による、ブロック識別のための技法を実装又はさもなければ利用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコード化及びインターコード化（即ち、イントラ予測符号化又はインター予測符号化）を実行し得る。イントラコード化は、所与のビデオフレーム又はビデオピクチャ内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インターコード化は、ビデオシーケンスの隣接するフレーム内又はピクチャ内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、幾つかの空間ベースのコード化モードのいずれかを指し得る。一方向予測（Ｐモード）又は双予測（Ｂモード）などのインターモードは、幾つかの時間ベースのコード化モードのいずれかを指し得る。
【０２２８】
[0239]更に、ビデオエンコーダ２０は、現在のピクチャを含むビュー以外のビューに参照ピクチャが存在するビュー間予測を実行するように構成され得る。この意味で、ビュー間予測は、インターコード化（例えば、インター予測符号化）の一形態と考えられ得る。その上、ビデオエンコーダ２０は、ビュー間予測の一部として視差ベクトルに依存するビデオコード化ツールを実施するように構成され得る。例えば、ビデオエンコーダ２０は、２つの例として、ビュー間動き予測及びビュー間残差予測を実施するように構成され得る。
【０２２９】
[0240]ビュー間動き予測とビュー間残差予測とを実行するために、ビデオエンコーダ２０は、現在のブロックについての視差ベクトルを導出することができる。本開示で説明する技法では、ビデオエンコーダ２０は、現在のブロック内の、中心２×２サブブロック中の左上画素ではなく中心２×２サブブロック中の右下画素から開始するように、視差ベクトルの開始位置を設定することができる。ビデオエンコーダ２０は、設定された開始位置に基づいて視差ベクトルが参照するブロックを決定し、視差ベクトルに依存するビデオコード化ツールにブロックの動き情報を利用することができる。
【０２３０】
[0241]図１１に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図１０の例では、ビデオエンコーダ２０は、ビデオメモリデータ１１００と、モード選択ユニット１１４０と、参照ピクチャメモリ１１６４と、加算器１１５０と、変換処理ユニット１１５２と、量子化ユニット１１５４と、エントロピー符号化ユニット１１５６とを含む。そして、モード選択ユニット１１４０は、動き補償ユニット１１４４と、動き推定ユニット１１４２と、イントラ予測ユニット１１４６と、区分化ユニット１１４８とを含む。ビデオブロックの再構築のために、ビデオエンコーダ２０はまた、逆量子化ユニット１１５８と、逆変換処理ユニット１１６０と、加算器１１６２とを含む。再構築されたビデオからブロック歪みを除去するためにブロック境界をフィルタリングするためのデブロッキングフィルタ（図１１に図示せず）も含まれ得る。必要な場合、デブロッキングフィルタは、通常、加算器１１６２の出力をフィルタリングする。更なるフィルタ（インループ又はポストループ）も、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡約のために図示されないが、必要な場合、加算器１１５０の出力を（インループフィルタとして）フィルタリングし得る。
【０２３１】
[0242]図１１に示すように、ビデオデータメモリ１１００は、ビデオピクチャ内の現在のビデオブロックを符号化するために使用されるビデオデータを受信する。ビデオデータメモリ１１００は、（例えば、ビデオデータを記憶するように構成された）ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶するか、又はビデオピクチャを符号化するために使用されるべきビデオデータを記憶することができる。ビデオデータメモリ１１００に記憶されたビデオデータは、例えば、ビデオ発信源１８から取得され得る。参照ピクチャメモリ１１６４(復号ピクチャバッファ（ＤＰＢ）とも呼ばれる)は、（例えば、イントラコード化モード又はインターコード化モードで）ビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する。ビデオデータメモリ１１００及び参照ピクチャメモリ１１６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、又は他のタイプのメモリ機器を含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など、様々なメモリ機器のいずれかによって形成され得る。ビデオデータメモリ１１００及びＤＰＢ１１６４は、同じメモリ機器又は別個のメモリ機器によって提供され得る。様々な例では、ビデオデータメモリ１１００は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、又はそれらの構成要素に対してオフチップであり得る。
【０２３２】
[0243]符号化プロセス中に、ビデオエンコーダ２０はコード化されるべきビデオピクチャ（例えば、フレーム）又はビデオスライスを受信する。ピクチャ又はスライスは複数のビデオブロックに分割され得る。動き推定ユニット１１４２及び動き補償ユニット１１４４は、時間的予測を行うために、１つ又は複数の参照フレーム中の１つ又は複数のブロックに対して受信されたビデオブロックのインター予測コード化を実行する。更に、動き推定ユニット１１４２及び動き補償ユニット１１４４は、現在のブロックを含むビュー以外のビュー中の１つ又は複数の参照ピクチャ中の１つ又は複数のブロックに対して受信するビデオブロックのインター予測コード化を実行するであり得る。イントラ予測ユニット１１４６は、代替的に、空間的予測を行うために、コード化されるべきブロックと同じピクチャ又はスライス中の１つ又は複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コード化を実行し得る。ビデオエンコーダ２０は、（例えば、ビデオデータの各ブロックに関して適切なコード化モードを選択するために）複数のコード化パスを実行し得る。
【０２３３】
[0244]その上、区分化ユニット１１４８は、以前のコード化パスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分することができる。例えば、区分化ユニット１１４８は、最初にピクチャ又はスライスをＬＣＵに区分し、レート歪み分析（例えば、レート歪み最適化）に基づいてＬＣＵの各々をサブＣＵに区分することができる。モード選択ユニット１１４０は更に、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を生成することができる。４分木のリーフノードＣＵは、１つ又は複数のＰＵと１つ又は複数のＴＵとを含み得る。
【０２３４】
[0245]モード選択ユニット１１４０は、例えば、誤差結果に基づいて、コード化モード、即ちイントラ又はインター（ビュー間を含む）のうちの１つを選択し、得られたイントラコード化されたブロック又はインターコード化されたブロックを、残差ブロックデータを生成するために加算器１１５０に提供し、参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器１１６２に提供することができる。モード選択ユニット１１４０はまた、動きベクトル、イントラモードインジケータ、区分情報、及び他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット１１５６に与える。
【０２３５】
[0246]動き推定ユニット１１４２と動き補償ユニット１１４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット１１４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトル（視差動きベクトルを含む）を生成するプロセスである。動きベクトルは、例えば、現在のピクチャ（又は他のコード化された単位）内でコード化されている現在のブロックに対する参照ピクチャ（又は他のコード化された単位）内の予測ブロックに対する現在のビデオフレーム又はビデオピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、画素差分の観点で、コード化されるべきブロックと密に整合することが見出されたブロックであり、画素差分は、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、又は他の差分メトリックによって決定され得る。幾つかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ１１６４に記憶された参照ピクチャのサブ整数画素位置の値を計算し得る。例えば、ビデオエンコーダ２０は、参照ピクチャの、４分の１画素位置、８分の１画素位置、又は他の分数の画素位置の値を補間し得る。従って、動き推定ユニット１１４２は、完全な画素位置及び分数の画素位置に対して動き探索を実行し、分数の画素精度で動きベクトルを出力し得る。
【０２３６】
[0247]動き推定ユニット１１４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化されたスライス中のビデオブロックのＰＵについての動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）又は第２の参照ピクチャリスト（リスト１）から選択されてよく、それらの参照ピクチャリストの各々は、参照ピクチャメモリ１１６４に記憶された１つ又は複数の参照ピクチャを識別する。動き推定ユニット１１４２は、計算された動きベクトルをエントロピー符号化ユニット１１５６と動き補償ユニット１１４４とに送る。
【０２３７】
[0248]動き補償ユニット１１４４によって実行される動き補償は、動き推定ユニット１１４２によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することに関与し得る。同様に、動き推定ユニット１１４２及び動き補償ユニット１１４４は、幾つかの例では、機能的に統合され得る。現在のビデオブロックのＰＵについての動きベクトルを受信すると、動き補償ユニット１１４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。加算器１１５０は、コード化されている現在のビデオブロックの画素値から予測ブロックの画素値を減算することによって残差ビデオブロックを形成し、以下で説明するように画素差分の値を形成する。一般に、動き推定ユニット１１４２は、ルーマ成分に対して動き推定を実行し、動き補償ユニット１１４４は、クロマ成分とルーマ成分の両方のために、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット１１４０はまた、ビデオデコーダ３０によってビデオスライスのビデオブロックを復号する際に使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【０２３８】
[0249]イントラ予測ユニット１１４６は、上述のように、動き推定ユニット１１４２と動き補償ユニット１１４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット１１４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。幾つかの例では、イントラ予測ユニット１１４６は、例えば、別個の符号化パス中に様々なイントラ予測モードを使用して現在のブロックを符号化し、イントラ予測ユニット１１４６（又は、幾つかの例では、モード選択ユニット１１４０）は、使用するのに適切なイントラ予測モードを、テストされたモードから選択し得る。
【０２３９】
[0250]例えば、イントラ予測ユニット１１４６は、様々なテストされたイントラ予測モードに対してレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み（又は誤差）の量、ならびに符号化されたブロックを生成するために使用されるビットレート（即ち、ビット数）を決定する。イントラ予測ユニット１１４６は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化されたブロックの歪み及びレートから比を計算し得る。
【０２４０】
[0251]イントラ予測ユニット１１４６は、ブロックに関するイントラ予測モードを選択した後、ブロックに関して選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット１１５６に提供し得る。エントロピー符号化ユニット１１５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、複数のイントラ予測モードインデックステーブル及び複数の修正されたイントラ予測モードインデックステーブル（符号語マッピングテーブルとも呼ばれる）と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、及び修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを、送信されるビットストリーム中に含め得る。
【０２４１】
[0252]ビデオエンコーダ２０は、モード選択ユニット１１４０からの予測データを、コード化されている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器１１５０は、この減算演算を実行する１つの構成要素又は複数の構成要素を表す。変換処理ユニット１１５２は、離散コサイン変換（ＤＣＴ）又は概念的に同様の変換などの変換を残差ブロックに適用して、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット１１５２は、ＤＣＴと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプ変換も使用され得る。いかなる場合でも、変換処理ユニット１１５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、画素値領域からの残差情報を、周波数領域などの変換領域に転換し得る。変換処理ユニット１１５２は、得られた変換係数を量子化ユニット１１５４に送り得る。量子化ユニット１１５４は、ビットレートを更に低減するために変換係数を量子化する。量子化プロセスは、係数の一部又は全てに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって、修正され得る。幾つかの例では、量子化ユニット１１５４は、次いで、量子化変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット１１５６が、走査を実行し得る。
【０２４２】
[0253]量子化の後で、エントロピー符号化ユニット１１５６は、量子化変換係数をエントロピーコード化する。例えば、エントロピー符号化ユニット１１５６は、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コード化、又は別のエントロピー符号化技法を実行し得る。コンテキストベースエントロピー符号化の場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化されたビットストリームは、別の機器（例えば、ビデオデコーダ３０）に送信されるか、又は後で送信するかもしくは取り出すためにアーカイブされ得る。
【０２４３】
[0254]逆量子化ユニット１１５８及び逆変換処理ユニット１１６０は、それぞれ逆量子化及び逆変換を適用して、例えば、参照ブロックとして後で使用するために、画素領域中で残差ブロックを再構築する。動き補償ユニット１１４４は、残差ブロックを参照ピクチャメモリ１１６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット１１４４はまた、再構築された残差ブロックに１つ又は複数の補間フィルタを適用して、動き推定において使用するためのサブ整数画素値を計算し得る。加算器１１６２は、再構築された残差ブロックを、動き補償ユニット１１４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ１１６４に記憶するための再構築されたビデオブロックを生成する。再構築されたビデオブロックは、動き推定ユニット１１４２及び動き補償ユニット１１４４によって、後続のビデオフレーム中のブロックをインターコード化するために参照ブロックとして使用され得る。
【０２４４】
[0255]図１１のビデオエンコーダ２０は、本開示で説明する様々な方法を実行するように構成されたビデオエンコーダの一例を表す。例えば、モード選択ユニット１１４０は、本開示で説明する技法を実装するように構成され得る。幾つかの例では、モード選択ユニット１１４０は、ビデオエンコーダ２０中の１つもしくは複数の他のユニット又はモード選択ユニット１１４０以外の１つ以上のユニットとともに、本開示で説明する例示的な技法を実装するように構成され得る。幾つかの例では、ビデオエンコーダ２０又は発信源機器１２のプロセッサ（図示せず）は、本開示で説明する例示的な技法を実装するように構成され得る。
【０２４５】
[0256]図１２は、本開示で説明する１つ又は複数の例示的な技法による、ブロック識別のための技法を実装又はさもなければ利用し得るビデオデコーダの一例を示すブロック図である。図１２の例では、ビデオデコーダ３０は、ビデオデータメモリ１２００と、エントロピー復号ユニット１２８０と、動き補償ユニット１２８２、動きベクトル予測ユニット１２８３、及びイントラ予測ユニット１２８４を含む予測処理ユニット１２８１とを含む。ビデオデコーダ３０はまた、逆量子化ユニット１２８６と、逆変換処理ユニット１２８８と、参照ピクチャメモリ１２９２と、加算器１２９０とを含む。ビデオデコーダ３０は、幾つかの例では、ビデオエンコーダ２０（図１１）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。例えば、ビデオデコーダ３０は、イントラ予測復号又はインター予測復号を実行することができる。
【０２４６】
[0257]図１２の例では、ビデオデータメモリ１２００は、符号化されたビデオを受信する。ビデオデータメモリ１２００は、ビデオデコーダ３０の構成要素によって復号されるために、符号化されたビデオビットストリームなど、（例えば、ビデオデータを記憶するように構成された）ビデオデータを記憶し得る。ビデオデータメモリ１２００に記憶されたビデオデータは、カメラなどのローカルビデオ発信源から、ビデオデータのワイヤードもしくはワイヤレスのネットワーク通信を介して、又は物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ１２００は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコード化済みピクチャバッファ（ＣＰＢ）を形成し得る。
【０２４７】
[0258]参照ピクチャメモリ１２９２は、（例えば、イントラコード化モード又はインターコード化モードで）ビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する復号済みピクチャバッファ（ＤＰＢ）の一例である。ビデオデータメモリ１２００及び参照ピクチャメモリ１２９２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、又は他のタイプのメモリ機器を含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など、様々なメモリ機器のいずれかによって形成され得る。ビデオデータメモリ１２００及び参照ピクチャメモリ１２９２は、同じメモリ機器又は別個のメモリ機器によって提供され得る。様々な例では、ビデオデータメモリ１２００は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、又はそれらの構成要素に対してオフチップであり得る。
【０２４８】
[0259]図１２のビデオエンコーダ３０は、本開示で説明する様々な方法を実行するように構成されたビデオデコーダの一例を表す。例えば、予測処理ユニット１２８１は、本開示で説明する技法を実装するように構成され得る。幾つかの例では、予測処理ユニット１２８１は、ビデオデコーダ３０中の１つもしくは複数の他のユニット又は予測処理ユニット１２８１以外の１つ以上のユニットとともに、本開示で説明する例示的な技法を実装するように構成され得る。幾つかの例では、ビデオデコーダ３０又は宛先機器１４のプロセッサ（図示せず）は、本開示で説明する例示的な技法を実装するように構成され得る。
【０２４９】
[0260]動き補償ユニット１２８２は、エントロピー復号ユニット１２８０から受信された動きベクトルに基づいて、予測データを生成し得、イントラ予測ユニット１２８４は、エントロピー復号ユニット１２８０から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。動きベクトル予測ユニット１２８３は、視差動きベクトルを含む、インター予測（例えば、インター予測復号）のための動きベクトルを予測し得る。
【０２５０】
[0261]復号プロセス中に、ビデオデコーダ３０は、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化されたビデオビットストリームを、ビデオエンコーダ２０から（又は記憶装置３１などの中間機器を通じて）受信する。ビデオデコーダ３０のエントロピー復号ユニット１２８０は、量子化係数、動きベクトル又はイントラ予測モードインジケータ、及び他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット１２８０は、予測処理ユニット１２８１の動き補償ユニット１２８２に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベル及び／又はビデオブロックレベルにおいてシンタックス要素を受信し得る。
【０２５１】
[0262]ビデオスライスがイントラコード化された（Ｉ）スライスとしてコード化されるとき、予測処理ユニット１２８１のイントラ予測ユニット１２８４は、信号伝達されたイントラ予測モードと、現在のフレーム又はピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオピクチャがインターコード化された（即ち、時間的動きベクトル又は視差動きベクトルに基づくＢ、Ｐ）スライスとしてコード化されるとき、動き補償ユニット１２８２は、エントロピー復号ユニット１２８０から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の、参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ１２９２に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照ピクチャリストと、リスト０と、リスト１とを構築することができる。動き補償ユニット１２８２は、動きベクトルと他のシンタックス要素とを構文解析（parsing）することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために予測情報を使用する。例えば、動き補償ユニット１２８２は、ビデオスライスのビデオブロックをコード化するために使用される予測モード（例えば、イントラ予測又はインター予測）と、インター予測スライスタイプ（例えば、時間的動きベクトル又は視差動きベクトルに基づくＢスライス、Ｐスライス）と、スライスのための参照ピクチャリストのうちの１つ又は複数についての構築情報と、スライスのインター符号化されたビデオブロックごとの動きベクトルと、スライスのインターコード化されたビデオブロックごとのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素の幾つかを使用する。
【０２５２】
[0263]動き補償ユニット１２８２は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット１２８２は、参照ブロックの整数未満の画素用の補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用することができる。この場合、動き補償ユニット１２８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するために補間フィルタを使用し得る。
【０２５３】
[0264]逆量子化ユニット１２８６は、ビットストリーム中で与えられ、エントロピー復号ユニット１２８０によって復号された、量子化変換係数を逆の量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオデコーダ３０によって計算される量子化パラメータＱＰYの使用を含み得る。逆変換処理ユニット１２８８は、画素領域において残差ブロックを生成するために、逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。
【０２５４】
[0265]動き補償ユニット１２８２が、動きベクトル及び他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット１２８８からの残差ブロックを動き補償ユニット１２８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器１２９０は、この加算演算を実行する１つ又は複数の構成要素を表す。必要な場合、ブロック歪み（blockiness artifacts）を除去するために復号されたブロックをフィルタリングするためのデブロッキングフィルタも適用され得る。他のループフィルタ（コード化ループの中、又はコード化ループの後のいずれかにおける）も、画素の遷移を平滑化し、又は場合によってはビデオ品質を改善するために使用され得る。所与のフレーム又はピクチャ中の復号されたビデオブロックは、次いで、参照ピクチャメモリ１２９２に記憶され、この参照ピクチャメモリ１２９２は後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ１２９２はまた、復号されたビデオを図１の表示装置３２などの表示装置上に後で表示できるように記憶する。
【０２５５】
[0266]本開示では、ビデオエンコーダ２０及びビデオデコーダ３０は、一般にビデオコーダと呼ばれることがある。例えば、ビデオコード化のための機器（例えば、発信源機器１２、宛先機器１４、マイクロプロセッサ、集積回路（ＩＣ）は、ビデオデータを記憶するように構成されたビデオデータメモリ（例えば、ビデオデータメモリ１１００又はビデオデータメモリ１２００）を含む。ビデオコーダ（例えば、ビデオエンコーダ２０又はビデオデコーダ３０）は、１つ又は複数のプロセッサを含んでおり、記憶されたビデオデータに基づいて現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定するように構成される。例えば、記憶されたビデオデータは、隣接ブロックの動き情報を含むことができ、ビデオコーダは、隣接ブロックのいずれかが視差動きベクトルによりインター予測されたかどうか、又は隣接ブロックについてＩＤＶが存在するかどうかを、記憶されたビデオデータに基づいて決定することができる。ビデオコーダは、隣接ブロックの視差動きベクトル又はＩＤＶに基づいて、現在のブロックについての視差ベクトルを決定することができる。
【０２５６】
[0267]ビデオコーダは、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定することができる。ビデオコーダは、決定されたブロックに基づいて、現在のブロックをインター予測コード化する（例えば、符号化又は復号する）ことができる。例えば、決定されたブロックが現在のブロックをインター予測コード化するために使用される場合に、ビデオコーダは、決定されたブロックの動き情報を利用することができる。別の例として、ビデオコーダは、現在のブロックについての残差ブロックを決定するために、決定されたブロックの再構築の画素値を利用することができる。これらの例では、視差ベクトルは、視差動きベクトルと考えられ得る。
【０２５７】
[0268]図１３は、ビデオ復号の例示的な方法を示すフローチャートである。図示のように、ビデオデコーダ３０は、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することができる（１３００）。ＮＢＤＶ導出技法と導出された視差ベクトルの更なる改良とを含む、ビデオデコーダ３０が視差ベクトルを決定し得る様々な方法があり得る。例えば、ビデオデコーダ３０は、隣接ブロックのいずれかが視差動きベクトルによりインター予測されるかどうか、又は隣接ブロックについてＩＤＶが存在するかどうかを決定するために、ビデオデータメモリ１２００に記憶された隣接ブロック（空間的隣接ブロック又は時間的隣接ブロック）の動き情報をチェックすることができる。ビデオデコーダ３０は、隣接ブロックの視差動きベクトル又は隣接ブロックのＩＤＶを現在のブロックの視差ベクトルとして変換することができ、新規の視差ベクトルを決定するために視差ベクトルを更に改良することができる。この例では、視差ベクトルは、改良されていない視差ベクトル又は改良された視差ベクトルを指す。
【０２５８】
[0269]ビデオデコーダ３０は、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定することができる（１３０２）。例えば、図４は、現在のブロック３８の中心内にサブブロック４８を含む現在のブロック３８を示している。現在のブロック３８の高さ及び幅のうちの少なくとも１つが偶数であるので、現在のブロック３８に単一の中心画素がない。実際には、サブブロック４８を形成する４つの画素が、現在のブロック３８の中心内にある。参照ピクチャ３４中のブロックを決定するために、ビデオデコーダ３０は、サブブロック４４中の右下画素（例えば、位置４６）から視差ベクトルを開始することができる。
【０２５９】
[0270]図示のように、視差ベクトルＤＶ２は、位置４６から開始し、参照ピクチャ３４中の位置Ｃ３を参照する。ビデオデコーダ３０は、視差ベクトルが参照する参照ピクチャ中の位置をカバーする４×４ブロックを決定することができる。例えば、ビデオデコーダ３０は、視差ベクトルＤＶ２が参照する参照ピクチャ３４中の位置Ｃ３をブロック４２がカバーすると決定することができる。
【０２６０】
[0271]幾つかの例では、参照ピクチャ中のブロック決定するために、ビデオデコーダ３０は、参照ピクチャ中の位置のｘ座標及びｙ座標を決定することができる。参照ピクチャ中の位置のｘ座標は、Ｃｌｉｐ３（０，ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL−１，ｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、参照ピクチャ中の位置のｙ座標は、Ｃｌｉｐ３（０，ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓL−１，ｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しい。ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓLは参照ピクチャの幅に等しく、ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓLは参照ピクチャの高さに等しく、ｘＰは現在のブロックの左上隅のｘ座標に等しく、ｙＰは現在のブロックの左上隅のｙ座標に等しい。ｎＰＳＷは現在のブロックの幅に等しく、ｎＰＳＨは現在のブロックの高さに等しい。ｍｖＤｉｓｐ［０］は視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］は視差ベクトルのｙ成分に等しい。例えば、現在のブロック内の中心２×２サブブロック中の右下画素のｘ座標はｘＰ＋（（ｎＰＳＷ）＞＞１）に等しく、現在のブロック内の中心２×２サブブロック中の右下画素のｙ座標はｙＰ＋（（ｎＰＳＨ）＞＞１）に等しい。
【０２６１】
[0272]ビデオデコーダ３０は、決定されたブロックに基づいて現在のブロックをインター予測復号することができる（１３０４）。例えば、決定されたブロックがインター予測復号に使用されると決定された場合に、ビデオデコーダ３０は、ビュー間動き予測又はビュー間残差予測のうちの１つを使用して現在のブロックをインター予測復号することができる。一例として、ビデオデコーダ３０は、候補動きベクトル予測子のリストを形成することができ、決定されたブロックからの動き情報を候補動きベクトル予測子のリストに挿入することができる。この例では、ビデオデコーダ３０は、決定されたブロックの動き情報が候補動きベクトル予測子のリストから選択された（例えば、候補動きベクトル予測子のリストへのインデックスが、現在のブロック内の中心２×２サブブロックの右下画素から開始する視差ベクトルに基づいて、視差ベクトルによって参照されるブロックの動き情報を参照する）場合に、決定されたブロックの動き情報を使用して現在のブロックをインター予測復号することができる。
【０２６２】
[0273]別の例として、ビデオデコーダ３０は、決定されたブロックの再構築を予測ブロックとして利用することができる。この例では、ビデオデコーダ３０は、現在のブロックをインター予測復号するためにビデオデコーダ３０が決定されたブロックに加算する残差値を受信する。視差ベクトルは予測ブロックを指す（例えば、参照ブロックは予測ブロックとして機能する）ので、視差ベクトルは視差動きベクトルと考えられ得る。
【０２６３】
[0274]図１４は、ビデオ符号化の例示的な方法を示すフローチャートである。図示のように、ビデオエンコーダ２０は、現在のビュー中の現在のピクチャ中の現在のブロックについての視差ベクトルを決定することができる（１４００）。ＮＢＤＶ導出技法と導出された視差ベクトルの更なる改良とを含む、ビデオエンコーダ２０が視差ベクトルを決定し得る様々な方法があり得る。例えば、ビデオエンコーダ２０は、隣接ブロックのいずれかが視差動きベクトルによりインター予測されるかどうか、又は隣接ブロックについてＩＤＶが存在するかどうかを決定するために、ビデオデータメモリ１３００に記憶された隣接ブロック（空間的隣接ブロック又は時間的隣接ブロック）の動き情報をチェックすることができる。ビデオエンコーダ２０は、隣接ブロックの視差動きベクトル又は隣接ブロックのＩＤＶを現在のブロックの視差ベクトルに変換することができ、新規の視差ベクトルを決定するために視差ベクトルを更に改良することができる。この例では、視差ベクトルは、改良されていない視差ベクトル又は改良された視差ベクトルを指す。一般に、本開示では、図１３に示す上記の例を含め、視差ベクトルは、改良されていない視差ベクトル又は改良された視差ベクトルを指すために使用される。
【０２６４】
[0275]ビデオエンコーダ２０は、参照ビュー中の参照ピクチャ中のブロックを、現在のブロック内の中心２×２サブブロック中の右下画素から開始する視差ベクトルに基づいて、視差ベクトルが参照する参照ピクチャ中の位置に基づいて決定することができる（１４０２）。例えば、図４は、現在のブロック３８の中心内にサブブロック４８を含む現在のブロック３８を示している。現在のブロック３８の高さ及び幅のうちの少なくとも１つが偶数であるので、現在のブロック３８に単一の中心画素がない。実際には、サブブロック４８を形成する４つの画素が、現在のブロック３８の中心内にある。参照ピクチャ３４中のブロックを決定するために、ビデオエンコーダ２０は、サブブロック４４中の右下画素（例えば、位置４６）から視差ベクトルを開始することができる。
【０２６５】
[0276]図示のように、視差ベクトルＤＶ２は、位置４６から開始し、参照ピクチャ３４中の位置Ｃ３を参照する。ビデオエンコーダ２０は、視差ベクトルが参照する参照ピクチャ中の位置をカバーする４×４ブロックを決定することができる。例えば、ビデオエンコーダ２０は、視差ベクトルＤＶ２が参照する参照ピクチャ３４中の位置Ｃ３をブロック４２がカバーすると決定することができる。
【０２６６】
[0277]幾つかの例では、参照ピクチャ中のブロック決定するために、ビデオエンコーダ２０は、参照ピクチャ中の位置のｘ座標及びｙ座標を決定することができる。参照ピクチャ中の位置のｘ座標は、Ｃｌｉｐ３（０，ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓL−１，ｘＰ＋（（ｎＰＳＷ）＞＞１）＋（（ｍｖＤｉｓｐ［０］＋２）＞＞２））に等しく、参照ピクチャ中の位置のｙ座標は、Ｃｌｉｐ３（０，ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓL−１，ｙＰ＋（（ｎＰＳＨ）＞＞１）＋（（ｍｖＤｉｓｐ［１］＋２）＞＞２））に等しい。ＰｉｃＷｉｄｔｈＩｎＳａｍｐｌｅｓLは参照ピクチャの幅に等しく、ＰｉｃＨｅｉｇｈｔＩｎＳａｍｐｌｅｓLは参照ピクチャの高さに等しく、ｘＰは現在のブロックの左上隅のｘ座標に等しく、ｙＰは現在のブロックの左上隅のｙ座標に等しい。ｎＰＳＷは現在のブロックの幅に等しく、ｎＰＳＨは現在のブロックの高さに等しい。ｍｖＤｉｓｐ［０］は視差ベクトルのｘ成分に等しく、ｍｖＤｉｓｐ［１］は視差ベクトルのｙ成分に等しい。例えば、現在のブロック内の中心２×２サブブロック中の右下画素のｘ座標はｘＰ＋（（ｎＰＳＷ）＞＞１）に等しく、現在のブロック内の中心２×２サブブロック中の右下画素のｙ座標はｙＰ＋（（ｎＰＳＨ）＞＞１）に等しい。
【０２６７】
[0278]ビデオエンコーダ２０は、決定されたブロックに基づいて現在のブロックをインター予測符号化することができる（１４０４）。例えば、決定されたブロックがインター予測符号化に使用されると決定された場合に、ビデオエンコーダ２０は、ビュー間動き予測又はビュー間残差予測のうちの１つを使用して現在のブロックをインター予測符号化することができる。一例として、ビデオエンコーダ２０は、候補動きベクトル予測子のリストを形成することができ、決定されたブロックからの動き情報を候補動きベクトル予測子のリストに挿入することができる。この例では、ビデオエンコーダ２０は、決定されたブロックの動き情報が候補動きベクトル予測子のリストから選択された（例えば、候補動きベクトル予測子のリストへのインデックスが、現在のブロック内の中心２×２サブブロックの右下画素から開始する視差ベクトルに基づいて、視差ベクトルによって参照されるブロックの動き情報を参照する）場合に、決定されたブロックの動き情報を使用して現在のブロックをインター予測符号化することができる。
【０２６８】
[0279]別の例として、ビデオエンコーダ２０は、決定されたブロックの再構築を予測ブロックとして利用することができる。この例では、ビデオエンコーダ２０は、決定されたブロックと現在のブロックとの間の残差値を決定し、残差値を出力する。視差ベクトルは予測ブロックを指す（例えば、参照ブロックは予測ブロックとして機能する）ので、視差ベクトルは視差動きベクトルと考えられ得る。
【０２６９】
[0280]例に応じて、本明細書で説明する技法のうちのいずれかの、幾つかの動作又はイベントは、異なるシーケンスで実行され得、全体的に追加、併合、又は除外され得る（例えば、説明する動作又はイベントの全てが、本技法の実施のために必要であるとは限らない）ことを認識されたい。更に、幾つかの例では、動作又はイベントは、連続的にではなく、同時に、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通じて実行され得る。
【０２７０】
[0281]１つ又は複数の例では、述べられた機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合、機能は、１つ又は複数の命令又はコードとして、コンピュータ可読媒体上で記憶されるか、又はコンピュータ可読媒体を介して送信され得、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、又はコンピュータプログラムの、ある場所から別の場所への、例えば、通信プロトコルによる転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形のコンピュータ可読記憶媒体又は（２）信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コード及び／又はデータ構造を取り出すために１つもしくは複数のコンピュータ又は１つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことできる。
【０２７１】
[0282]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶装置、フラッシュメモリ、又は、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号又は他の一時的媒体を含まないが、その代わりに非一時的、有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、及びＢｌｕ−ｒａｙディスク（disc）を含み、ディスク（disk）は通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【０２７２】
[0283]命令は、１つ又は複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、又は他の同等の統合された、若しくは個別の論理回路など、１つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造又は本明細書で説明する技法の実装形態に適した任意の他の構造のいずれかを指し得る。加えて、幾つかの態様では、本明細書で説明する機能は、符号化及び復号のために構成された専用のハードウェアモジュール及び／又はソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、技法は、１つ又は複数の回路又は論理素子内で完全に実施される可能性がある。
【０２７３】
[0284]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットが説明されているが、それらの構成要素、モジュール、又はユニットは、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記で説明したように、様々なユニットは、適切なソフトウェア及び／又はファームウェアとともに、上記で説明した１つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、又は相互動作ハードウェアユニットの集合によって提供され得る。
【０２７４】
[0285]様々な例が説明された。これら及び他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2016525319.tif 000004
【図２】
2016525319.tif 000005
【図４】
2016525319.tif 000006
【図６】
2016525319.tif 000007
【図８】
2016525319.tif 000008
【図１０】
2016525319.tif 000009
【図１１】
2016525319.tif 000010
【図１２】
2016525319.tif 000011
【図１３】
2016525319.tif 000012
【図１４】
2016525319.tif 000013
【図３】
2016525319.tif 000014
【図５】
2016525319.tif 000015
【図７】
2016525319.tif 000016
【図９】
2016525319.tif 000017
【国際調査報告】
2016525319.tif 000018
2016525319.tif 000019