(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、前記方法は、
前記ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定すること、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
ビットストリームから、前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを復号することと、
前記ビットストリームから、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を復号することと、
前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づいて前記カレントビデオブロックに関する前記動きベクトルを決定することと、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングすることと、
前記再配置された予測ブロックに関する前記カレントビデオブロックを復号すること、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を備える前記方法。
【請求項２】
ビデオデータを符号化するための方法であって、前記方法は、
前記ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定すること、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを符号化することと、
ビットストリーム中に、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を含むこと、ここにおいて、前記カレントビデオブロックに関する前記動きベクトルは、前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づく、と、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングすること、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を備える前記方法。
【請求項３】
前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、請求項１または２に記載の方法。
【請求項４】
前記隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、請求項１に記載の方法。
【請求項５】
ビデオデータを復号するように構成された装置であって、前記装置は、
前記ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定するための手段、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
ビットストリームから、前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを復号するための手段と、
前記ビットストリームから、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を復号するための手段と、
前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づいて前記カレントビデオブロックに関する前記動きベクトルを決定するための手段と、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングするための手段と、
前記再配置された予測ブロックに関する前記カレントビデオブロックを復号するための手段、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を備える前記装置。
【請求項６】
ビデオデータを符号化するように構成された装置であって、前記装置は、
前記ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定するための手段、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを符号化するための手段と、
ビットストリーム中に、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を含むための手段、ここにおいて、前記カレントビデオブロックに関する前記動きベクトルは、前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づく、と、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングするための手段、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を備える前記装置。
【請求項７】
前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、請求項５または６に記載の装置。
【請求項８】
前記隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、請求項５または６に記載の装置。
【請求項９】
ビデオデータを復号するように構成された装置であって、前記装置は、
前記ビデオデータを記憶するように構成されたデータ記憶媒体と、
ビデオコーダであって、
前記ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定すること、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
ビットストリームから、前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを復号することと、
前記ビットストリームから、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を復号することと、
前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づいて前記カレントビデオブロックに関する前記動きベクトルを決定することと、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングすることと、
前記再配置された予測ブロックに関する前記カレントビデオブロックを復号すること、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を行うように構成されたビデオコーダ、と、
を備える前記装置。
【請求項１０】
ビデオデータを符号化するように構成された装置であって、前記装置は、
前記ビデオデータを記憶するように構成されたデータ記憶媒体と、
１つまたは複数のプロセッサであって、
前記ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定すること、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを符号化することと、
ビットストリーム中に、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を含むこと、ここにおいて、前記カレントビデオブロックに関する前記動きベクトルは、前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づく、と、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングすること、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を行うように構成された１つまたは複数のプロセッサ、と、
を備える前記装置。
【請求項１１】
前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、請求項９または１０に記載の装置。
【請求項１２】
前記隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、請求項９または１０に記載の装置。
【請求項１３】
コンピュータ可読媒体であって、
ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定すること、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
ビットストリームから、前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを復号することと、
前記ビットストリームから、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を復号することと、
前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づいて前記カレントビデオブロックに関する前記動きベクトルを決定することと、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングすることと、
前記再配置された予測ブロックに関する前記カレントビデオブロックを復号すること、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を、前記ビデオデータを復号するように構成されたプロセッサに行わせるための命令を記憶するコンピュータ可読媒体。
【請求項１４】
コンピュータ可読媒体であって、
ビデオデータのカレントビデオブロックの隣接ビデオブロックから動きベクトルを指定する動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定すること、ここにおいて、前記動きベクトル予測子候補はクリッピングされず、前記動きベクトル予測子候補リストは、前記カレントビデオブロックに関連して、参照ピクチャの境界の外側に位置する予測ブロックを識別する動きベクトル予測子候補の少なくとも一つを含む、と、
前記動きベクトル予測子候補リストにおける決定されたクリッピングされない動きベクトル予測子候補を識別する動きベクトル予測子インデックスを符号化することと、
ビットストリーム中に、前記決定されたクリッピングされない動きベクトル予測子候補と前記カレントビデオブロックに関する動きベクトルとの間の動きベクトル差分を含むこと、ここにおいて、前記カレントビデオブロックに関する前記動きベクトルは、前記動きベクトル予測子候補リストにおける前記決定されたクリッピングされない動きベクトル予測子候補と前記動きベクトル差分とに基づく、と、
クリッピングされる動きベクトルによって識別される予測ブロックが前記参照ピクチャの周囲のパディング領域内に再配置されるように、前記カレントビデオブロックに関する前記動きベクトルをクリッピングすること、ここにおいて、前記再配置された予測ブロックはパディング領域値を含む、と、
を、前記ビデオデータを符号化するように構成されたプロセッサに行わせるための命令を記憶するコンピュータ可読媒体。
【請求項１５】
前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、請求項１３または１４に記載のコンピュータ可読媒体。
【請求項１６】
前記隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、請求項１３または１４に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その全体がともに参照により本明細書に組み込まれる、２０１１年１０月４日に出願された米国仮出願第６１／５４３，１８１号、および２０１１年１０月２８日に出願された米国仮出願第６１／５５３，０５３号の優先権を主張する。
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオインターコーディング技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を含み得る。ブロックベースのビデオコーディングの場合、ビデオスライス（video slice）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノード（coding node）と呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（inter-coded）（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプル（reference sample）に対する空間的予測、または他の参照ピクチャ（reference picture）中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックを使用する。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化（intra-coded）ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、ついで量子化され得る。量子化された変換係数は、最初は２次元アレイに構成され、エントロピーコーディングに関する変換係数の１次元ベクトルを生成するために、特定の順序で走査される。
【発明の概要】
【０００６】
概して、本開示では、動きベクトル予測子候補（motion vector predictor candidate）のクリッピングされない（unclipped）バージョンに基づいてビデオブロックをコーディングするための技法について説明する。本技法は、動きベクトル予測子候補をクリッピング（clipping）することなしに、隣接ビデオブロックから動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定することを含む。動きベクトル予測子候補のうちの１つが、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを指す場合、本開示の技法は、動きベクトル予測子候補のクリッピングされないバージョンが候補リスト中に含まれることを可能にする。クリッピングされない動きベクトル予測子候補が動きベクトル予測プロセスにおいて使用されるべきであると決定された場合、クリッピングされない動きベクトルは、動き補償プロセス中に参照ピクチャの周りのパディング領域（padding region）内に予測ブロックを再配置するためにクリッピングされ得る。
【０００７】
現在のＨＥＶＣテストモデル（ＨＭ）では、マージモードおよび適応動きベクトル予測（ＡＭＶＰ：adaptive motion vector prediction）モードの２つの動きベクトル予測モードがサポートされる。いずれのモードでも、ビデオコーディングデバイスが、カレントビデオブロック（current video block）のための動きベクトル予測子をそこから決定するための動きベクトル予測子候補リストを決定する。従来、動きベクトル予測子候補のいずれかが、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを指す場合、ビデオコーディングデバイスは、予測ブロック全体が参照ピクチャの周りのパディング領域内に再配置されることを保証するように、動きベクトル予測子候補をクリッピングすることになる。
【０００８】
本開示の技法によれば、動きベクトル予測子候補クリッピングプロセスは候補リスト生成プロセスから削除される。詳細には、候補リストの動きベクトル予測子候補が参照ピクチャ境界の外側に位置する予測ブロックを指すとき、ビデオコーディングデバイスは、動きベクトル予測子候補の値をクリッピングしないか、あるいは切り捨てない。次いで、候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいて、カレントビデオブロックがコーディングされる。動き補償において使用するために決定された場合、候補リストからの動きベクトルがクリッピングされ得る。動きベクトル予測子候補クリッピングプロセスをなくすことにより、ビデオエンコーダとビデオデコーダの両方において複雑さが低減される。
【０００９】
本開示の一例では、ビデオデータをコーディングするための方法が提案される。本方法は、動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定する、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、動きベクトル予測子候補のクリッピングされないバージョンが候補リスト中に含まれる、ことと、候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいてカレントビデオブロックをコーディングすることとを備える。
【００１０】
本開示の別の例では、ビデオデータをコーディングするように構成された装置が提案される。本装置は、動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定するための、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、動きベクトル予測子候補のクリッピングされないバージョンが候補リスト中に含まれる、手段と、候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいてカレントビデオブロックをコーディングするための手段とを備える。
【００１１】
本開示の別の例では、ビデオデータをコーディングするように構成された装置が提案される。本装置は、動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定する、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、動きベクトル予測子候補のクリッピングされないバージョンが候補リスト中に含まれる、ことと、候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいてカレントビデオブロックをコーディングすることとを行うように構成されたビデオコーダを備える。
【００１２】
本開示の別の例では、ビデオデータをコーディングすることをプロセッサに行わせるための命令を記憶するコンピュータ可読記憶媒体が提案される。本プロセッサは、動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定する、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、動きベクトル予測子候補のクリッピングされないバージョンが候補リスト中に含まれる、ことと、候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいてカレントビデオブロックをコーディングすることとを行うように構成される。
【００１３】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１４】
【図１】本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図３】本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図４Ａ】動きベクトル予測子候補がそこから適応動きベクトル予測モードについて決定される空間隣接ビデオブロックおよび時間隣接ビデオブロックを示す概念図。
【図４Ｂ】動きベクトル予測子候補がそこからマージモードについて決定される空間隣接ビデオブロックおよび時間隣接ビデオブロックを示す概念図。
【図５】参照ピクチャと、カレントビデオブロックの動きベクトル予測子候補による参照ピクチャ境界の外側に位置する予測ブロックとを示す概念図。
【図６】本開示の技法を使用してビデオを符号化するための方法の例示的なフローチャート。
【図７】本開示の技法を使用してビデオを復号するための方法の例示的なフローチャート。
【発明を実施するための形態】
【００１５】
図１は、本開示で説明するインター予測技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００１６】
宛先デバイス１４は、リンク１６を介して復号されるべき符号化ビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が、符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００１７】
別の例では、符号化ビデオはまた、記憶媒体３４またはファイルサーバ３６に記憶され得、必要に応じて宛先デバイス１４によってアクセスされ得る。記憶媒体は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々なローカルにアクセスされたデータ記憶媒体のいずれかを含み得る。記憶媒体３４またはファイルサーバ３６は、ソースデバイス１２によって生成される符号化ビデオを保持し得、宛先デバイス１４が必要に応じてストリーミングまたはダウンロードを介してアクセスし得る、任意の他の中間ストレージデバイスであり得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
【００１８】
本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００１９】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００２０】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００２１】
図１の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００２２】
ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２３】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格など、ビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２４】
図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２５】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００２６】
ビデオエンコーダ２０は、動きベクトルをコーディングするために本開示の技法のいずれかまたはすべてを実装し得る。一例として、ビデオエンコーダ２０は、動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定することであって、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、動きベクトル予測子候補のクリッピングされないバージョンが候補リスト中に含まれる、決定することと、候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいてカレントビデオブロックをコーディングすることとを行うように構成され得る。
【００２７】
同様に、ビデオデコーダ３０は、動きベクトルをコーディングするために本開示の技法のいずれかまたはすべてを実装し得る。一例として、ビデオデコーダ３０は、動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定することであって、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、動きベクトル予測子候補のクリッピングされないバージョンが候補リスト中に含まれる、決定することと、候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいてカレントビデオブロックをコーディングすることとを行うように構成され得る。
【００２８】
本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオエンコーダおよびビデオデコーダは、それぞれビデオ符号化ユニットおよびビデオ復号ユニットと呼ばれることがある。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【００２９】
ビデオコーディング共同研究部会（ＪＣＴ−ＶＣ：Joint Collaborative Team on Video Coding）は、現在、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３５個（３３個の方向、１つのＤＣ、１つの平面）ものイントラ予測符号化モードを提供し得る。
【００３０】
概して、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記述する。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００３１】
ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ：prediction unit）および変換ユニット（ＴＵ：transform unit）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が方形である。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルをもつツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。ＰＵは、形状が非方形になるように区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が方形または非方形であり得る。
【００３２】
概して、ＰＵは、予測プロセスに関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための動きベクトルを定義するデータを含み得る。ＰＵのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００３３】
概して、ＴＵは、変換プロセスと量子化プロセスとのために使用される。１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算し得る。残差値は、ビデオデータのカレントブロック（current block）とビデオデータの予測ブロックとの間のピクセル差分値を備える。残差値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得る。本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノードならびにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指す「ビデオブロック」という用語も使用し得る。
【００３４】
ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
【００３５】
一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００３６】
本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、ただし、Ｍは必ずしもＮに等しいとは限らない。
【００３７】
ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ２０は残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得る。ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャと予測ビデオブロックとの間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００３８】
変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、さらなる圧縮を行う、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ただし、ｎはｍよりも大きい。
【００３９】
いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率区間区分エントロピーコーディング（ＰＩＰＥ：Probability Interval Partitioning Entropy Code）または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための、符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００４０】
ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられるコンテキストに基づき得る。
【００４１】
図２は、本開示で説明するインター予測技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００４２】
図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、予測モジュール４１と、参照ピクチャメモリ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測モジュール４１は、動き推
定ユニット４２と、動き補償ユニット４４と、イントラ予測モジュール４６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理するであろう。
【００４３】
図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオスライス内のカレントビデオブロックを受信する。スライスは複数のビデオブロックに分割され得る。モード選択ユニット４０は、誤差結果に基づいてカレントビデオブロックのためのコーディングモード、イントラまたはインターのうちの１つを選択し得、予測モジュール４１は、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に与え得る。
【００４４】
予測モジュール４１内のイントラ予測モジュール４６は、空間圧縮を行うために、コーディングされるべきカレントブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対するカレントビデオブロックのイントラ予測コーディングを実行し得る。予測モジュール４１内の動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対するカレントビデオブロックのインター予測コーディングを実行する。
【００４５】
動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをＰスライス、ＢスライスまたはＧＰＢスライスに指定し得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【００４６】
予測ブロックは、ピクセル差分に関してコーディングされるビデオブロックのＰＵにぴったり一致することが見出されるブロックであり、それは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得る。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を計算し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００４７】
動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から決定され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００４８】
動き補償は、動き補償ユニット４４によって実行されるが、動き推定によって決定される動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。カレントビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ２０は、コーディングされているカレントビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００４９】
動き補償ユニット４４がカレントビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ２０は、カレントビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換モジュール５２に適用され得る。変換モジュール５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【００５０】
変換モジュール５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００５１】
量子化の後に、エントロピー符号化ユニット５６は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ３０に送信されるか、あるいはビデオデコーダ３０が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コーディングされているカレントビデオスライス（current video slice）のための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【００５２】
逆量子化ユニット５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２と動き補償ユニット４４とによって参照ブロックとして使用され得る。図２のビデオエンコーダ２０に関する発明の詳細について、以下でより詳細に説明する。
【００５３】
図３は、本開示で説明するインター予測技法を実装し得る例示的なビデオデコーダ３０を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測モジュール８１と、逆量子化ユニット８６と、逆変換モジュール８８と、加算器９０と、参照ピクチャメモリ９２とを含む。予測モジュール８１は、動き補償ユニット８２と、イントラ予測モジュール８４とを含む。ビデオデコーダ３０は、いくつかの例では、図２のビデオエンコーダ２０に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【００５４】
復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測モジュール８１に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００５５】
ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされるとき、予測モジュール８１のイントラ予測モジュール８４は、シグナリングされたイントラ予測モードと、カレントフレーム（current frame）またはピクチャの、前に復号されたブロックからのデータとに基づいて、カレントビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測モジュール８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、カレントビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。
【００５６】
動き補償ユニット８２は、動きベクトルと他のシンタックス要素とをパースすることによってカレントビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されているカレントビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスの参照ピクチャリストのうちの１つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、カレントビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【００５７】
動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００５８】
逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックについてビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換モジュール８８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。
【００５９】
動き補償ユニット８２が、動きベクトルと他のシンタックス要素とに基づいてカレントビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換モジュール８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の表示のための、復号されたビデオを記憶する。図３のビデオデコーダ３０に関する発明の詳細について、以下でより詳細に説明する。
【００６０】
図２および図３を参照しながら上記で説明したように、インター予測を使用してＰＵをコーディングすることは、カレントブロックと参照フレーム中のブロックとの間の動きベクトルを計算することを伴う。動きベクトルは、（たとえば、図２の動き推定ユニット４２による）動き推定（または動き探索）と呼ばれるプロセスを通して計算される。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、カレントフレーム中の予測ユニットの変位を示し得る。参照ブロックは、ピクセル差分に関して、コーディングされているブロックにぴったり一致することが見出されるブロックであり得、それは、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって決定され得る。参照ブロックは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック（たとえば、コーディングユニット）境界において発生するとは限らない。いくつかの例では、参照ブロックは分数ピクセル位置において発生し得る。他の例では、参照ブロックは、カレントブロックに対して定義された参照ピクチャ境界の外側に発生し得る。カレントブロックに最も良く一致する参照フレームのブロックを見つけると、エンコーダ（たとえば、図２の動き推定ユニット４２）は、カレントブロックのためのカレント動きベクトル（current motion vector）を、カレントブロックから参照フレーム中の一致するブロックまでの（たとえば、カレントブロックの中心から一致するブロックの中心までの、またはカレントブロックの左上隅から一致するブロックの左上隅までの）ロケーションの差分として決定し得る。
【００６１】
いくつかの例では、エンコーダ（たとえば、図２の予測モジュール４１）は、符号化ビデオビットストリーム中で、各ブロックについて動きベクトルをシグナリングし得る。シグナリングされた動きベクトルは、ビデオデータを復号するために、デコーダによって動き補償を実行するために使用される。ただし、動きベクトル全体をシグナリングすると、動きベクトルは一般に多数のビットによって表されるので、コーディングがあまり効率的でなくなることがある。
【００６２】
いくつかの事例では、動きベクトル全体をシグナリングするのではなく、エンコーダ（たとえば、図２の予測モジュール４１）は、各パーティションについて、すなわち、各ＰＵについて動きベクトルを予測し得る。この動きベクトル予測プロセスを実行する際に、エンコーダは、カレントブロックと同じフレーム中の空間的に隣接するブロックについて決定される候補動きベクトルのセット、または別の参照フレーム中のコロケートブロックについて決定される候補動きベクトルを決定し得る。エンコーダは、シグナリングにおける複雑さおよびビットレートを低減するために、動きベクトル全体をシグナリングするのではなく動きベクトル予測を実行し得る。空間的に隣接するブロックからの候補動きベクトルは空間ＭＶＰ候補と呼ばれることがあるが、別の参照フレーム中のコロケートブロックからの候補動きベクトルは時間ＭＶＰ候補と呼ばれることがある。
【００６３】
ＨＥＶＣ規格について、動きベクトル予測の２つの異なるモードが提案されている。一方のモードは「マージ」モードと呼ばれる。他方のモードは適応動きベクトル予測（ＡＭＶＰ）と呼ばれる。マージモードでは、エンコーダは、フレームのカレントブロックのための決定された候補動きベクトルから、動きベクトルと、（所与の参照ピクチャリストにおいて動きベクトルが指す参照フレームを識別する）参照インデックスと、（すなわち、参照フレームが時間的にカレントフレームに先行するかまたは後続するかに関して、参照ピクチャリスト（リスト０またはリスト１）を識別する）動き予測方向とをコピーするように、予測シンタックスのビットストリームシグナリングを通してデコーダに命令する。これは、決定された候補動きベクトルを有する候補ブロック（すなわち、特定の空間ＭＶＰ候補または時間ＭＶＰ候補）を識別するインデックスをビットストリーム中でシグナリングすることによって達成される。
【００６４】
したがって、マージモードでは、予測シンタックスは、モード（この場合は「マージ」モード）を識別するフラグと、決定された候補ブロックのロケーションを識別するインデックスとを含み得る。いくつかの事例では、候補ブロックは、カレントブロックに関する因果的ブロックになる。すなわち、候補ブロックは、すでにコーディングされていることになる。したがって、エンコーダまたはデコーダは、候補ブロックのための動きベクトルと参照インデックスと動き予測方向とをすでに受信および／または決定している。したがって、復号の場合、デコーダは、単に、メモリから、候補ブロックに関連する動きベクトルと参照インデックスと動き予測方向とを取り出し、カレントブロックについてこれらの値をコピーし得る。マージモードでブロックを復号するために、デコーダは、予測子ブロ
ックを取得し、予測子ブロックに残差データを加算してコード化ブロックを再構成する。
【００６５】
ＡＭＶＰモードでは、エンコーダは、候補ブロックから動きベクトルのみをコピーするようにビットストリームシグナリングを通してデコーダに命令し、参照フレームと予測方向とを別々にシグナリングする。ＡＭＶＰでは、コピーされるべき動きベクトルは、動きベクトル差分（ＭＶＤ：motion vector difference）を送ることによってシグナリングされ得る。ＭＶＤは、カレントブロックのためのカレント動きベクトルと、候補ブロックのための候補動きベクトルとの間の差分である。この場合、エンコーダは、動き推定を使用して、コーディングされるべきブロックのための実際の動きベクトルを決定し、次いで、実際の動きベクトルと動きベクトル予測子との間の差分をＭＶＤ値として決定する。このようにして、デコーダは、マージモードの場合のように、カレント動きベクトルのために候補動きベクトルの厳密なコピーを使用する必要はないが、そうではなく、動き推定から決定された、現在の、実際の動きベクトルに値が「近接」し得る候補動きベクトルを使用し、カレント動きベクトルを再生するためにＭＶＤを加算し得る。この場合も、デコーダは、対応する残差データを加算してコード化ブロックを再構成する。
【００６６】
たいていの状況では、ＭＶＤは、シグナリングするためにカレント動きベクトル全体よりも少ないビットを必要とする。したがって、ＡＭＶＰは、動きベクトル全体を送ることに勝るコーディング効率を改善しながら、カレント動きベクトルをより正確にシグナリングすることを可能にする。対照的に、マージモードはＭＶＤの指定に対応しておらず、したがって、マージモードは、シグナリング効率の増加（すなわち、ビットの低減）のために動きベクトルシグナリングの精度を犠牲にする。ＡＶＭＰの予測シンタックスは、モード（この場合はＡＭＶＰ）のフラグと、候補ブロックのインデックスと、カレント動きベクトルと候補ブロックからの予測動きベクトルとの間のＭＶＤと、参照インデックスと、動き予測方向とを含み得る。
【００６７】
図４Ａは、動きベクトル予測子候補がそこから適応動きベクトル予測モードについて決定される空間隣接ビデオブロックおよび時間隣接ビデオブロックを示す概念図である。図４Ｂは、動きベクトル予測子候補がそこからマージモードについて決定される空間隣接ビデオブロックおよび時間隣接ビデオブロックを示す概念図である。いずれのモードでも、ビデオエンコーダ２０（たとえば、図２の予測モジュール４１）およびビデオデコーダ３０（たとえば、図３の予測モジュール８１）の各々は、カレントＰＵ（current PU）９４または９５のための動きベクトルをそこから決定するための同じ動きベクトル予測子候補リストを決定する。ＡＭＶＰモードにおける動きベクトル予測子候補は、カレントＰＵ９４の空間隣接ブロックのための動きベクトルを含み得る。たとえば、隣接ブロックＡ、Ｂ、Ｃ、ＤおよびＥが図４Ａに示されている。マージモードモードにおける動きベクトル予測候補は、カレントＰＵ９５の空間隣接ブロックのための動きベクトルを含み得る。たとえば、隣接ブロックＡ’、Ｂ’、Ｃ’およびＤ’が図４Ｂに示されている。動きベクトル予測子候補はまた、カレントＰＵ９４のコロケートブロック９６またはカレントＰＵ９５のコロケートブロック９７の時間隣接ブロックのための動きベクトルを含み得る。たとえば、隣接ブロックＴ1、Ｔ2、Ｔ’1およびＴ’2が図４Ａおよび図４Ｂに示されている。動きベクトル予測子候補ブロックの他の構成が各モードのために使用され得る。場合によっては、動きベクトル予測子候補は、隣接ブロックのうちの２つ以上の動きベクトルの組合せ、たとえば、２つ以上の動きベクトルの平均値、中央値、または重み付き平均値を含み得る。
【００６８】
ＡＭＶＰモードの場合、動きベクトル予測子候補リストは、空間隣接ブロックまたは時間隣接ブロックのための動きベクトルを含むと決定され得る。次いで、ビデオエンコーダ２０は、候補リストからカレントＰＵ９４の最も正確な動きベクトル予測子候補を決定する。一例では、ビデオエンコーダ２０は、カレントＰＵ９４のための動きベクトル予測子として隣接ブロックのうちの１つの動きベクトルから生成された動きベクトル予測子候補を決定し得る。別の例では、ビデオエンコーダ２０は、カレントＰＵ９４のための動きベクトル予測子として隣接ブロックのうちの２つ以上の動きベクトルから生成された動きベクトル予測子候補を決定し得る。この場合、動きベクトル予測子は、２つ以上の動きベクトルの平均値、中央値、または重み付き平均値として計算され得る。ビデオエンコーダ２０は、次いで、動きベクトル予測子と、カレントＰＵ９４のための動きベクトルとの間の動きベクトル差分を決定する。ビデオエンコーダ２０は、次いで、動きベクトル差分と、カレントＰＵ９４のための動きベクトル予測子インデックスとをビデオデコーダ３０にシグナリングする。
【００６９】
ビデオデコーダ３０は、ビデオブロックのための動きベクトル差分と動きベクトル予測子インデックスとを含む符号化ビデオブロックを表すビットストリームを受信する。ビデオブロックを復号するために、ビデオデコーダ３０は、ビデオエンコーダ２０と同じ方法で動きベクトル予測子候補リストを生成する。ビデオデコーダ３０は、カレントＰＵ９４のためのシグナリングされた動きベクトル予測子インデックスを候補リストに適用することによって、カレントＰＵ９４のための動きベクトル予測子を決定する。ビデオデコーダ３０は、次いで、カレントＰＵ９４のための動きベクトルを再構成するために、シグナリングされた動きベクトル差分を決定された動きベクトル予測子と組み合わせる。ビデオデコーダ３０は、符号化ビデオブロックを再構成するために、カレントＰＵ９４のための動きベクトルを使用して、参照ピクチャ中の予測ブロックの位置を特定する。
【００７０】
マージモードの場合、動きベクトル予測子候補リストは、空間隣接ブロックまたは時間隣接ブロックの各々について、動きベクトルと、参照ピクチャインデックスと、予測方向とを含むすべての動き情報を含むように生成され得る。次いで、ビデオエンコーダ２０は、候補リスト中の隣接ブロックからカレントＰＵ９５のための最も正確な動き情報を決定する。カレントＰＵ９５のための動きベクトル差分と参照ピクチャインデックスと予測方向とをビデオデコーダ３０にシグナリングする代わりに、ビデオエンコーダ２０は、隣接ブロックのための決定された動き情報をカレントＰＵ９５のための最終動き情報として直接使用する。このようにして、ビデオエンコーダ２０は、ビデオデコーダ３０にカレントＰＵ９５についてすべての動き情報がそこから導出されるべきである隣接ブロックを示すためのインデックスのみをシグナリングする。
【００７１】
ビデオデコーダ３０は、ビデオブロックのためのインデックス値を含む符号化ビデオブロックを表すビットストリームを受信する。ビデオブロックを復号するために、ビデオデコーダ３０は、ビデオエンコーダ２０と同じ方法で動きベクトル予測子候補リストを決定する。ビデオデコーダ３０は、隣接ブロックの動き情報を決定するために、シグナリングされたインデックスを候補リストに適用することによって、カレントＰＵ９５のための動きベクトルと参照ピクチャインデックスと予測方向とを含むすべての動き情報を決定する。ビデオデコーダ３０は、符号化ビデオブロックを再構成するために、カレントＰＵ９５のための動きベクトルを使用して、予測ブロックの位置を特定する。
【００７２】
図５は、参照ピクチャ１００と、カレントＰＵまたはビデオブロック９４の動きベクトル予測子候補による参照ピクチャ境界１０２の外側に位置する予測ブロック１０６および１０８とを示す概念図である。現在、マージモードまたはＡＭＶＰモードでは、カレントＰＵ９４に対して参照ピクチャ境界１０２の外側に位置する予測ブロック、たとえば、１０６または１０８を識別する動きベクトル予測子候補が、パディング領域１０４内に予測ブロックを再配置するためにクリッピングされる。参照ピクチャ境界１０２は最小ＣＵサイズの倍数として決定される。たとえば、最小ＣＵサイズが８×８であり、コーディングされるべき領域が３３×３３である場合、ピクチャは、３３×３３のクロッピング領域をもつ４０×４０の領域としてコーディングされる。クロッピング領域は、一般にデコーダについて定義されない。デコーダは、最小ＣＵサイズのある倍数である領域を復号し得る。動き補償について生じるパディングは、事実上無限に４０×４０の領域の境界においてピクセルを繰り返すことによって、４０×４０の領域の境界から開始する。本開示の技法は、動きベクトル予測子候補のクリッピングをなくす。
【００７３】
一例として、カレントＰＵ９４の隣接ブロック、たとえば、図４ＡからのブロックＥが、関連する参照ピクチャ１００の右下端に位置する予測ブロック（図５に図示せず）を指す動きベクトルを有し得る。動きベクトル予測子候補は、カレントＰＵ９４に適用されるとき、隣接ブロックの場合と同じ次元および方向を有するが、開始点がカレントＰＵ９４の左上隅に平行移動される。図４Ａに示したように、カレントＰＵ９４は、隣接ブロックＥよりもさらに右側に位置する。したがって、カレントＰＵ９４に対する動きベクトル予測子候補は、参照ピクチャ境界１０２の外側に位置する予測ブロック１０８を指し得る。言い換えれば、カレントＰＵ９４に対する動きベクトル予測子候補の「開始」は、動きベクトル予測子候補の「終了」が参照ピクチャ境界１０２の外側の領域を指し得るようにシフトする。
【００７４】
従来、カレントビデオブロック９４について決定される動きベクトルは、予測ブロック全体が参照ピクチャ境界１０２内に含まれるように値にクリッピングされる。クリッピングプロセスは、予測ブロックのピクセル値に基づいてカレントビデオブロックのための残差データを決定するために、動き補償より前に動きベクトル値を効果的にクリッピングするために使用される。予測ブロックのピクセル値を決定するために、予測ブロックは、好ましくは、参照ピクチャ１００内にまたは少なくともパディング領域１０４内に位置する。
【００７５】
概して、参照ピクチャ境界１０２の外側のエリアは、好ましくは値のいくつかのセットによって表される。参照ピクチャ境界１０２の外側のエリアは真空でない（すなわち、ゼロ値でない）。代わりに、参照ピクチャ境界の外側のエリアは、多くの状況では、隣接参照ピクチャのためのピクセル値に対応する。隣接参照ピクチャは、それがまだ符号化／復号されていないので利用可能でないことがあるか、または参照ピクチャのための値はメモリに記憶されないことがある。したがって、ビデオデコーダ３０は、参照ピクチャ１００のエッジからピクセル値を複製することによってパディング領域１０４を生成し得る。ピクチャのエッジにおける値は、反復的パディングのために使用される。パディング領域サイズは、理論上、無限である。実際には、ビデオコーダは、最大予測ユニットサイズだけパディングするように構成されるであろう。追加のパディングが補間フィルタのために使用され得る。図５に示すように、パディング領域１０４は、最大サイズブロック、たとえば、ツリーブロックまたはＬＣＵの幅に等しい幅を有し得る。しかしながら、ビデオデコーダ３０は、任意のサイズであるべき複製されたピクセル値を使用して、パディング領域を生成し得る。
【００７６】
現在のＨＭでは、マージモードおよびＡＭＶＰモードの場合、クリッピングプロセスはまた、動きベクトル予測の使用より前に、カレントＰＵ９４および／または９５の動きベクトル予測子候補を効果的にクリッピングするために使用される。決定された動きベクトル予測子候補は、カレントＰＵ９４に対して位置する予測ブロック全体、たとえば、１０６または１０８が参照ピクチャ境界１０２内に含まれることを保証するためにクリッピングされる。予測ブロックが参照ピクチャ境界１０２内にあることを保証するためのクリッピングプロセスは、空間動きベクトル予測子候補と時間動きベクトル予測子候補の両方について行われる。
【００７７】
クリッピング動作は、以下のアルゴリズムとして実装される。
【数１】
0005823623.tif 000002
【００７８】
このアルゴリズムにおける変数は、次のように定義される。
【００７９】
ｍ＿ｐｃＳｌｉｃｅ−＞ｇｅｔＳＰＳ（）−＞ｇｅｔＷｉｄｔｈ（）：ピクセル単位のピ
クチャの幅
ｍ＿ｐｃＳｌｉｃｅ−＞ｇｅｔＳＰＳ（）−＞ｇｅｔＨｅｉｇｈｔ（）：ピクセル単位の
ピクチャの高さ
ｇ＿ｕｉＭａｘＣＵＷｉｄｔｈ：ピクセル単位の最大ＣＵの幅
ｇ＿ｕｉＭａｘＣＵＨｅｉｇｈｔ：ピクセル単位の最大ＣＵの高さ
ｍ＿ｕｉＣＵＰｅｌＸ：ピクセル単位のＬＣＵ内のＣＵの水平アドレス
ｍ＿ｕｉＣＵＰｅｌＹ：ピクセル単位のＬＣＵ内のＣＵの垂直アドレス
ｒｃＭｖ．ｇｅｔＨｏｒ（）：１／４ピクセル単位の水平動きベクトル
ｒｃＭｖ．ｇｅｔＶｅｒ（）：１／４ピクセル単位の垂直動きベクトル
動きベクトル予測子候補は、少なくともパディング領域１０４内にあるべき識別された予測ブロック１０６および１０８をシフトするためにクリッピングされ得る。図５に示すように、動きベクトル予測子候補は、参照ピクチャ１００の周りの少なくとも完全にパディング領域１０４内にあるべきであるが、必ずしも参照ピクチャ境界１０２内にあるとは限らない、予測ブロック１０６および１０８を再配置するためにクリッピングされ得る。動きベクトル予測子候補が、参照ピクチャ境界１０２内に、または参照ピクチャ境界１０２の外側に予測ブロックを配置するが、依然として完全にパディング領域１０４内に予測ブロックを配置するとき、動きベクトル予測子候補はクリッピングされないままである。
【００８０】
ＨＥＶＣの１つの提案では、動きベクトル予測子候補が参照ピクチャ境界１０２の外側に位置する予測ブロック（たとえば、予測ブロック１０６および１０８）を指すとき、ビデオデコーダ３０および／またはビデオエンコーダ２０は、パディング領域１０４内に予測ブロック１０６および１０８を再配置するために動きベクトル予測子候補をクリッピングする。たとえば、ビデオデコーダ３０は、予測ブロック１０８の全体がパディング領域１０４内にあることを保証するために、予測ブロック１０８の左上隅がロケーション１０９に移動するように動きベクトル予測子候補をクリッピングし得る。同様に、ビデオデコーダ３０は、予測ブロック１０６の全体がパディング領域１０４内にあることを保証するために、予測ブロック１０６の左上隅がロケーション１０７に移動するように動きベクトル予測子候補をクリッピングし得る。
【００８１】
クリッピングされた動きベクトル予測子候補がカレントビデオブロックを符号化するために決定されたとき、クリッピングされない動きベクトル予測子候補の場合と異なる動きベクトル情報がビデオデコーダ３０にシグナリングされる必要があり得る。たとえば、ＡＭＶＰモードの場合、カレントＰＵ９４に対する動きベクトル予測子候補が座標（−５，３）をもつ予測ブロック１０６を指すが、パディング領域１０４が−２のｘ座標のみにわたる場合、動きベクトル予測子候補は、座標（−２，３）、たとえば、ロケーション１０７を指すようにパディング領域１０４のサイズに基づいてクリッピングされる。次いで、ビデオエンコーダ２０が、座標（−５，３）を指す動きベクトルをも有する、カレントＰＵ９４のための動きベクトル予測子として、クリッピングされた動きベクトル予測子候補を決定した場合、ビデオエンコーダ２０は、カレントＰＵ９４の動きベクトルと、クリッピングされた動きベクトル予測子との間の−３の動きベクトル差分をシグナリングしなければならない。動きベクトル予測子候補がクリッピングされないままである場合、ビデオエンコーダ２０は、デルタゼロとして動きベクトル差分をシグナリングすることができる。
【００８２】
本開示の技法によれば、動きベクトル予測子候補クリッピングプロセスは動きベクトル予測子候補リスト生成プロセスから削除される。詳細には、カレントＰＵ９４に対する動きベクトル予測子候補が、参照ピクチャ境界１０２の外側の予測ブロック、たとえば、１０６または１０８を指すとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、動きベクトル予測子候補をクリッピングしないか、あるいは切り捨てない。代わりに、動きベクトル予測子候補のクリッピングされないバージョンは、動きベクトル予測子候補リスト中に含まれる。本技法は、カレントＰＵ９４の動きベクトル予測子候補を決定しながら、上記に記載したクリッピングアルゴリズムを呼び出さないことによって、候補リスト決定プロセスからクリッピングプロセスを削除し得る。
【００８３】
動きベクトル予測子候補がカレントＰＵ９４に対して参照ピクチャ境界１０２の外側に位置する参照ピクチャを指す場合でも、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ＡＭＶＰモードまたはマージモードにおいてカレントＰＵ９４または９５の動きベクトル予測子候補をクリッピングしない。したがって、ＡＭＶＰモード候補リスト（たとえば、図４ＡのカレントＰＵ９４のために示される候補）およびマージモード候補リスト（たとえば、図４ＢのカレントＰＵ９５のために示される候補）は、マージモード候補リスト決定プロセスとＡＭＶＰモード候補リスト決定プロセスとによって決定された動きベクトル予測子候補のクリッピングされないバージョンから形成され得る。たとえば、動きベクトル予測子候補リストを決定したとき、ビデオエンコーダ２０および／またはビデオデコーダ３０は、カレントＰＵ９４に対する動きベクトル予測子候補によって識別された予測ブロック、たとえば、予測ブロック１０６または１０８のロケーションにかかわらず、動きベクトル予測子候補のクリッピングされないバージョンを含む。
【００８４】
本開示の技法によれば、動きベクトル予測子候補のいずれも動きベクトル予測候補生成プロセス中にクリッピングされない。このようにして、ビデオエンコーダ２０およびビデオデコーダ３０は、特定の動きベクトル予測子候補がクリッピングされる必要があるかどうかを決定するために、候補リスト中に含まれる動きベクトル予測子候補の各々の検査を実行する必要がない。ＨＥＶＣの１つの提案では、ビデオエンコーダ２０およびビデオデコーダ３０は、符号化されるべき各ビデオブロックについて、動きベクトル予測子候補のすべて、たとえば、５〜１０個の候補を検査する必要があり得る。したがって、クリッピングされる必要があり得る５〜１０個もの候補動きベクトルが存在し得る。動きベクトル予測候補生成プロセスからクリッピングプロセスを削除することによって、本開示の技法は、したがって、ビデオエンコーダ２０とビデオデコーダ３０の両方において複雑さを低減する。
【００８５】
さらに、本技法によれば、カレントＰＵ９４または９５は、決定されたクリッピングされない動きベクトル予測子候補に基づいてコーディングされ得る。たとえば、ＡＭＶＰモードの場合、ビデオエンコーダ２０は、候補リストからカレントＰＵ９４の最も正確なクリッピングされない動きベクトル予測子候補を決定する。ビデオエンコーダ２０は、次いで、動きベクトル差分と、カレントＰＵ９４のための動きベクトル予測子インデックスとをビデオデコーダ３０にシグナリングする。ビデオデコーダ３０は、ビデオブロックのための動きベクトル差分と動きベクトル予測子インデックスとを含む符号化ビデオブロックを表すビットストリームを受信する。ビデオデコーダ３０は、カレントＰＵ９４のためのシグナリングされた動きベクトル予測子インデックスを候補リストに適用することによって、カレントＰＵ９４のクリッピングされない動きベクトル予測子候補を決定する。ビデオデコーダ３０は、次いで、カレントＰＵ９４のための動きベクトルを再構成するために、シグナリングされた動きベクトル差分を決定されたクリッピングされない動きベクトル予測子候補と組み合わせる。ビデオデコーダ３０は、符号化ビデオブロックを再構成するために、カレントＰＵ９４のための動きベクトルを使用して、参照ピクチャ中の予測ブロックの位置を特定する。
【００８６】
別の例として、マージモードの場合、ビデオエンコーダ２０は、候補リスト中の隣接ブロックから、カレントＰＵ９５のための、クリッピングされない動きベクトル予測子候補を含む最も正確な動き情報を決定する。ビデオエンコーダ２０は、ビデオデコーダ３０にカレントＰＵ９５についてすべての動き情報がそこから導出されるべきである隣接ブロックを示すためのインデックスをシグナリングする。ビデオデコーダ３０は、ビデオブロックのためのインデックス値を含む符号化ビデオブロックを表すビットストリームを受信する。ビデオデコーダ３０は、シグナリングされたインデックスを候補リストに適用することによって、カレントＰＵ９５のための、クリッピングされない動きベクトル予測子候補を含むすべての動き情報を決定する。ビデオデコーダ３０は、次いで、カレントＰＵ９５のための動きベクトルを決定されたクリッピングされない動きベクトル予測子候補と等価であると決定する。ビデオデコーダ３０は、符号化ビデオブロックを再構成するために、カレントＰＵ９５のための動きベクトルを使用して、予測ブロックの位置を特定する。
【００８７】
場合によっては、決定されたクリッピングされない動きベクトル予測子候補に基づいてカレントＰＵ９４または９５について決定された動きベクトルは、参照ピクチャ境界の外側にあり得る。その場合、このクリッピングされない動きベクトルは動き補償中にクリッピングされ得る。したがって、本開示の技法は、動きベクトル予測候補決定プロセス中の動きベクトル候補の不要なクリッピングを防ぎ、代わりに、それらが動き補償のために実際に使用される場合、参照ピクチャ境界の外側の動きベクトルのみをクリッピングする。
【００８８】
たとえば、マージモードまたはＡＭＶＰモードの動きベクトル予測子候補が、クリッピングすることなしに使用されるとき、カレントＰＵ９４または９５のための動きベクトルは、参照ピクチャ境界１０２の外側にある予測ブロックを指し得る動きベクトル予測子候補から決定される。しかしながら、この問題は、パディングプロセスおよび／またはクリッピングプロセスによって動き補償中に処理される。より詳細には、決定された動きベクトルが参照ピクチャ境界１０２の外側に位置する予測ブロックを指すとき、ビデオエンコーダ２０またはビデオデコーダ３０は、予測ブロックを含むようにパディング領域１０４を拡張し得るか、またはパディング領域１０４内に予測ブロックを再配置するために、決定された動きベクトルをクリッピングし得る。いずれの場合も、符号化ビデオブロックを再構成するために使用される識別された予測ブロックは、パディング領域値、すなわち、参照ピクチャ１００のエッジから複製されたピクセル値を含む。
【００８９】
マージモードおよびＡＭＶＰモードのクリッピングされない動きベクトル予測子候補の使用は、ビデオエンコーダ２０およびビデオデコーダ３０において複雑さを低減するが、動き補償プロセスを変更しない。本開示の技法によれば、クリッピングプロセスは、動きベクトル予測子候補がクリッピングされないままであるように、動きベクトル予測子候補リスト決定プロセスから削除される。しかしながら、動き補償中にピクセル値を予測するために使用される予測ブロックが参照ピクチャ境界１０２の外側にある場合、決定されたクリッピングされない動きベクトル予測子候補から決定されたカレントＰＵ９４または９５のための動きベクトルは、依然として動き補償中にクリッピングされ得る。このようにして、ビデオエンコーダ２０またはビデオデコーダ３０は、依然として、候補リスト中に含まれるすべての動きベクトル予測子候補をクリッピングする必要なしに、参照ピクチャ境界１０２内にまたはパディング領域１０４内にあるように予測ブロックを再配置する。
【００９０】
たとえば、ＡＭＶＰモードの場合、ビデオデコーダ３０は、カレントＰＵ９４のためのシグナリングされた動きベクトル予測子インデックスを候補リストに適用することによって、カレントＰＵ９４のクリッピングされない動きベクトル予測子候補を決定する。決定されたクリッピングされない動きベクトル予測子候補は、カレントＰＵ９４に対して参照ピクチャ境界１０２の外側に位置する予測ブロックを示し得る。場合によっては、シグナリングされた動きベクトル差分は、カレントＰＵ９４のための動きベクトルを決定するために、決定されたクリッピングされない動きベクトル予測子候補と組み合わされたとき、参照ピクチャ境界１０２内に予測ブロックをもたらす。他の場合には、カレントＰＵ９４のための決定された動きベクトルは、依然として、追加のパディングまたはクリッピングを必要とする、参照ピクチャ境界１０２の外側に位置する予測ブロックを示す。
【００９１】
別の例として、マージモードの場合、ビデオデコーダ３０は、シグナリングされたインデックスを候補リストに適用することによって、カレントＰＵ９６のための、クリッピングされない動きベクトル予測子候補を含むすべての動き情報を決定する。決定されたクリッピングされない動きベクトル予測子候補は、カレントＰＵ９６に対して参照ピクチャ境界１０２の外側に位置する予測ブロックを示し得る。マージモードでは、ビデオデコーダ３０は、カレントＰＵ９６のための動きベクトルを決定されたクリッピングされない動きベクトル予測子候補と等価であると決定する。したがって、カレントＰＵ９６のための決定された動きベクトルは、依然として、追加のパディングまたはクリッピングを必要とする、参照ピクチャ境界１０２の外側に位置する予測ブロックを示す。
【００９２】
図６は、本開示の技法を使用してビデオを符号化するための方法の例示的なフローチャートである。ビデオエンコーダ２０は、最初に、たとえば、上記で説明した動き推定プロセスを使用して、ビデオブロックの現在予測ユニットのための動きベクトルを計算する（１２０）。次に、ビデオエンコーダ２０は、動きベクトルをクリッピングすることなしに動きベクトル予測子候補リストを決定する（１２２）。上記で説明したように、異なる動きベクトル予測子候補リストは、使用されている動きベクトル予測プロセスのタイプ（たとえば、ＡＭＶＰまたはマージモード）に応じて生成され得る。たとえば、ＰＵ９４について図４Ａに示した隣接ブロックからの動きベクトルは、ＡＭＶＰモードではＰＵ９４のための動きベクトル予測子候補リスト中に含まれ得るが、ＰＵ９５について図４Ｂに示した隣接ブロックからの動きベクトルは、マージモードではＰＵ９５のための動きベクトル予測子候補リスト中に含まれ得る。
【００９３】
計算された動きベクトルに基づいて、ビデオエンコーダ２０は、次いで、動きベクトル候補リストから、クリッピングされない動きベクトルを決定する（１２４）。決定された候補動きベクトルは、それが、カレントコード化ＰＵ（current coded PU）に対してピクチャ境界の内側または外側にある参照ブロックを指すかどうかにかかわらず、クリッピングされないままである。次に、ビデオエンコーダ２０は、決定されたクリッピングされない動きベクトル候補を識別するためのインデックスを符号化する（１２６）。マージモードでは、動きベクトル以外の動き情報（たとえば、参照フレームインデックス、予測方向）も決定された候補動きベクトルからコピーされるので、決定されたクリッピングされない動きベクトル候補のインデックスのみが符号化される。ＡＭＶＰモードでは、動きベクトル差分（すなわち、計算された動きベクトルと、決定されたクリッピングされない動きベクトルとの間の差分）と、参照フレームインデックスと、予測方向とを含む追加の動き情報も符号化され得る。ビデオエンコーダ２０は、動き補償プロセス中に動き補償のために実際に使用される任意の決定された動きベクトルをクリッピングし得る。
【００９４】
図７は、本開示の技法を使用してビデオを復号するための方法の例示的なフローチャートである。最初に、ビデオデコーダ３０は、動き情報を示すシンタックス要素を受信する（１４０）。復号されている特定のビデオブロックがマージモードの下で動作している場合、動き情報を示すシンタックス要素は、動きベクトル候補リストから特定の動きベクトル候補を識別するインデックスを含み得る。この場合も、使用されている特定の動きベクトル候補リストは、使用されている動きベクトル予測モード（たとえば、ＡＭＶＰまたはマージモード）に依存し得る。復号されている特定のビデオブロックがＡＭＶＰモードの下で動作している場合、動き情報を示すシンタックス要素は、動きベクトル候補リストと、動きベクトル差分と、参照フレームインデックスと、予測方向とから特定の動きベクトル候補を識別するインデックスを含み得る。
【００９５】
次に、ビデオデコーダ３０は、動きベクトルをクリッピングすることなしに動きベクトル予測子候補リストを決定する（１４２）。この場合も、ビデオデコーダ２０の場合と同様に、使用される特定の候補リストは、使用されている動きベクトル予測プロセスに依存し得る。動きベクトル候補リスト中の動きベクトルは、それらが、復号されているカレントビデオブロックに対して参照ピクチャ境界の内側または外側にある参照ブロックを指すかどうかにかかわらず、クリッピングされない。受信されたシンタックス要素に基づいて、ビデオデコーダ３０は、動きベクトル候補リストから、クリッピングされない動きベクトルを決定する（１４４）。決定される特定の動きベクトルが、復号されているカレントビデオブロックに対して参照ピクチャ境界の外側にある参照ピクチャを偶然指す場合、ビデオデコーダ３０は、動き補償プロセス中に使用するための決定された動きベクトルをクリッピングする（１４６）。この場合、理論的には、パディングは無限であり、十分にパディングする場合、クリッピングが必要でないことがあるので、動きベクトルのクリッピングは非規範的プロセスである。ここで説明したクリッピングプロセスは、動き補償プロセスのみに影響を及ぼすべきである。すなわち、クリッピングされた動きベクトルは、動き補償のためにのみ使用され、将来の動きベクトル導出などのために使用されるべきではない。このようにして、実際に使用される、参照ピクチャ境界の外側の参照ピクチャを指す動きベクトルのみが、代わりにクリッピングされるか、または参照ピクチャ境界の外側にあるすべての動きベクトル予測候補をクリッピングしている。
【００９６】
ビデオデコーダ３０は、次いで、動き補償プロセスを使用して、（決定された動きベクトルが参照ピクチャ境界の外側にある場合）クリッピングされた動きベクトルまたは（決定された動きベクトルが参照ピクチャ境界の外側にない場合）クリッピングされない動きベクトルを使用してカレントビデオブロックを復号する（１４８）。マージモードでは、動き補償のために使用される動きベクトル、参照フレーム、および予測方向は、受信された動き情報シンタックス要素から決定された動きベクトル候補から直接コピーされる。ＡＭＶＰでは、参照フレームおよび予測方向は、受信された動き情報シンタックス要素中で明示的に示される。動き補償のために使用される動きベクトルは、受信された動きベクト
ル差分を決定された動きベクトルに加算することによって計算される。
【００９７】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【００９８】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００９９】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１００】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１０１】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから前記動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定する、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記動きベクトル予測子候補のクリッピングされないバージョンが前記候補リスト中に含まれる、ことと、
前記候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックをコーディングすることと
を備える、ビデオデータをコーディングするための方法。
［Ｃ２］
前記カレントビデオブロックをコーディングすることが、前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記カレントビデオブロックをコーディングすることが、前記ビデオブロックを復号することを備え、前記方法が、
前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックのための動きベクトルを決定することと、
前記決定された動きベクトルが、前記カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記参照ピクチャの周りのパディング領域内に前記予測ブロックを再配置するために前記決定された動きベクトルをクリッピングすることと、
前記再配置された予測ブロックに対して前記カレントビデオブロックを復号する、ここにおいて、前記再配置された予測ブロックがパディング領域値を含む、ことと
をさらに備える、Ｃ１に記載の方法。
［Ｃ４］
前記再配置された予測ブロックの前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、Ｃ３に記載の方法。
［Ｃ５］
前記ビデオブロックをコーディングすることが、動きベクトル予測の適応動きベクトル予測（ＡＭＶＰ）モードに従って前記ビデオブロックを復号することを備え、前記方法が、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するための動きベクトル予測子インデックスを復号することと、
前記カレントビデオブロックのための動きベクトルを決定するために、前記決定されたクリッピングされない動きベクトル予測子と前記カレントビデオブロックのための前記動きベクトルとの間の動きベクトル差分を復号することと、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ６］
前記ビデオブロックをコーディングすることが、動きベクトル予測のマージモードに従って前記ビデオブロックを復号することを備え、前記方法が、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を含む動き情報を識別するためのインデックスを復号することと、
前記カレントビデオブロックのための動きベクトルを前記決定されたクリッピングされない動きベクトル予測子候補と等価であると決定することと、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ７］
隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、Ｃ１に記載の方法。
［Ｃ８］
前記カレントビデオブロックをコーディングすることが、前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを符号化することと、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化することとを備える、Ｃ１に記載の方法。
［Ｃ９］
前記カレントビデオブロックをコーディングすることが、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを復号することと、前記候補リストの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを復号することとを備える、Ｃ１に記載の方法。
［Ｃ１０］
動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから前記動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定する、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記動きベクトル予測子候補のクリッピングされないバージョンが前記候補リスト中に含まれる、ための手段と、
前記候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックをコーディングするための手段と
を備える、ビデオデータをコーディングするように構成された装置。
［Ｃ１１］
前記カレントビデオブロックをコーディングするための前記手段が、前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化するための手段を備える、Ｃ１０に記載の装置。
［Ｃ１２］
前記カレントビデオブロックをコーディングするための前記手段が、前記ビデオブロックを復号するための手段を備え、前記装置が、
前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックのための動きベクトルを決定するための手段と、
前記決定された動きベクトルが、前記カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記参照ピクチャの周りのパディング領域内に前記予測ブロックを再配置するために前記決定された動きベクトルをクリッピングするための手段と、
前記再配置された予測ブロックに対して前記カレントビデオブロックを復号するための手段であって、前記再配置された予測ブロックがパディング領域値を含む、復号するための手段と
をさらに備える、Ｃ１０に記載の装置。
［Ｃ１３］
前記再配置された予測ブロックの前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、Ｃ１２に記載の装置。
［Ｃ１４］
前記ビデオブロックをコーディングするための前記手段が、動きベクトル予測の適応動きベクトル予測（ＡＭＶＰ）モードに従って前記ビデオブロックを復号するための手段を備え、前記装置が、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するための動きベクトル予測子インデックスを復号するための手段と、
前記カレントビデオブロックのための動きベクトルを決定するために、前記決定されたクリッピングされない動きベクトル予測子と前記カレントビデオブロックのための前記動きベクトルとの間の動きベクトル差分を復号するための手段と、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号するための手段と
をさらに備える、Ｃ１０に記載の装置。
［Ｃ１５］
前記ビデオブロックをコーディングするための前記手段が、動きベクトル予測のマージモードに従って前記ビデオブロックを復号するための手段を備え、前記装置が、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を含む動き情報を識別するためのインデックスを復号するための手段と、
前記カレントビデオブロックのための動きベクトルを前記決定されたクリッピングされない動きベクトル予測子候補と等価であると決定するための手段と、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号するための手段と
をさらに備える、Ｃ１０に記載の装置。
［Ｃ１６］
隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、Ｃ１０に記載の装置。
［Ｃ１７］
前記カレントビデオブロックをコーディングするための前記手段が、前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを符号化するための手段と、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化するための手段とを備える、Ｃ１０に記載の装置。
［Ｃ１８］
前記カレントビデオブロックをコーディングするための手段が、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを復号するための手段と、前記候補リストの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを復号するための手段とを備える、Ｃ１０に記載の装置。
［Ｃ１９］
動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから前記動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定する、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記動きベクトル予測子候補のクリッピングされないバージョンが前記候補リスト中に含まれる、ことと、
前記候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックをコーディングすることと
を行うように構成されたビデオコーダ
を備える、ビデオデータをコーディングするように構成された装置。
［Ｃ２０］
前記ビデオコーダがビデオエンコーダであり、前記ビデオエンコーダが、前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化するように構成された、Ｃ１９に記載の装置。
［Ｃ２１］
前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダが、
前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックのための動きベクトルを決定することと、
前記決定された動きベクトルが、前記カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記参照ピクチャの周りのパディング領域内に前記予測ブロックを再配置するために前記決定された動きベクトルをクリッピングすることと、
前記再配置された予測ブロックに対して前記カレントビデオブロックを復号する、ここにおいて、前記再配置された予測ブロックがパディング領域値を含む、ことと
を行うように構成された、Ｃ１９に記載の装置。
［Ｃ２２］
前記再配置された予測ブロックの前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、Ｃ２１に記載の装置。
［Ｃ２３］
前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダが、動きベクトル予測の適応動きベクトル予測（ＡＭＶＰ）モードに従って前記ビデオブロックを復号するように構成され、前記ビデオデコーダが、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するための動きベクトル予測子インデックスを復号することと、
前記カレントビデオブロックのための動きベクトルを決定するために、前記決定されたクリッピングされない動きベクトル予測子と前記カレントビデオブロックのための前記動きベクトルとの間の動きベクトル差分を復号することと、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号することと
を行うようにさらに構成された、Ｃ１９に記載の装置。
［Ｃ２４］
前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダが、動きベクトル予測のマージモードに従って前記ビデオブロックを復号するように構成され、前記ビデオデコーダが、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を含む動き情報を識別するためのインデックスを復号することと、
前記カレントビデオブロックのための動きベクトルを前記決定されたクリッピングされない動きベクトル予測子候補と等価であると決定することと、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号することと
を行うようにさらに構成された、Ｃ１９に記載の装置。
［Ｃ２５］
隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、Ｃ１９に記載の装置。
［Ｃ２６］
前記ビデオコーダがビデオエンコーダであり、前記ビデオエンコーダが、前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを符号化することと、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化することとを行うように構成された、Ｃ１９に記載の装置。
［Ｃ２７］
前記ビデオコーダがビデオデコーダであり、前記ビデオデコーダが、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを復号することと、前記候補リストの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを復号することとを行うように構成された、Ｃ１９に記載の装置。
［Ｃ２８］
動きベクトル予測子候補をクリッピングすることなしに、隣接ビデオブロックから前記動きベクトル予測子候補を含む動きベクトル予測子候補リストを決定する、ここにおいて、動きベクトル予測子候補が、カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記動きベクトル予測子候補のクリッピングされないバージョンが前記候補リスト中に含まれる、ことと、
前記候補リストの決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックをコーディングすることと
を、ビデオデータをコーディングするように構成されたプロセッサに行わせるための命令を記憶するコンピュータ可読媒体。
［Ｃ２９］
前記カレントビデオブロックをコーディングすることをプロセッサに行わせるための前記命令が、前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化することをプロセッサに行わせるための命令を備える、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３０］
前記カレントビデオブロックをコーディングすることをプロセッサに行わせるための前記命令が、前記ビデオブロックを復号することをプロセッサに行わせるための命令を備え、前記コンピュータ可読媒体が、
前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックのための動きベクトルを決定することと、
前記決定された動きベクトルが、前記カレントビデオブロックに対して参照ピクチャ境界の外側に位置する予測ブロックを識別した場合、前記参照ピクチャの周りのパディング領域内に前記予測ブロックを再配置するために前記決定された動きベクトルをクリッピングすることと、
前記再配置された予測ブロックに対して前記カレントビデオブロックを復号することであって、前記再配置された予測ブロックがパディング領域値を含む、復号することと
をプロセッサに行わせるための命令をさらに備える、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３１］
前記再配置された予測ブロックの前記パディング領域値が、前記参照ピクチャのエッジからの複製されたピクセル値を備える、Ｃ３０に記載のコンピュータ可読媒体。
［Ｃ３２］
前記ビデオブロックをコーディングすることをプロセッサに行わせるための前記命令が、動きベクトル予測の適応動きベクトル予測（ＡＭＶＰ）モードに従って前記ビデオブロックを復号することをプロセッサに行わせるための命令を備え、前記コンピュータ可読媒体が、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するための動きベクトル予測子インデックスを復号することと、
前記カレントビデオブロックのための動きベクトルを決定するために、前記決定されたクリッピングされない動きベクトル予測子と前記カレントビデオブロックのための前記動きベクトルとの間の動きベクトル差分を復号することと、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号することと
をプロセッサに行わせるための命令をさらに備える、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３３］
前記ビデオブロックをコーディングすることをプロセッサに行わせるための前記命令が、動きベクトル予測のマージモードに従って前記ビデオブロックを復号することをプロセッサに行わせるための命令を備え、前記コンピュータ可読媒体が、
前記候補リスト中の前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を含む動き情報を識別するためのインデックスを復号することと、
前記カレントビデオブロックのための動きベクトルを前記決定されたクリッピングされない動きベクトル予測子候補と等価であると決定することと、
前記決定された動きベクトルを使用して前記カレントビデオブロックを復号することと
をプロセッサに行わせるための命令をさらに備える、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３４］
隣接ビデオブロックが、前記カレントビデオブロックの空間隣接ビデオブロックと、前記カレントビデオブロックのコロケートブロックの時間隣接ビデオブロックとのうちの１つまたは複数を備える、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３５］
前記カレントビデオブロックをコーディングすることをプロセッサに行わせるための前記命令が、前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを符号化することと、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを符号化することとをプロセッサに行わせるための命令を備える、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３６］
前記カレントビデオブロックをコーディングすることをプロセッサに行わせるための前記命令が、前記カレントビデオブロックの前記決定されたクリッピングされない動きベクトル予測子候補を識別するためのインデックスを復号することと、前記候補リストの前記決定されたクリッピングされない動きベクトル予測子候補に基づいて前記カレントビデオブロックを復号することとをプロセッサに行わせるための命令を備える、Ｃ２８に記載のコンピュータ可読媒体。
【図１】
0005823623.tif 000003
【図２】
0005823623.tif 000004
【図３】
0005823623.tif 000005
【図４Ａ】
0005823623.tif 000006
【図４Ｂ】
0005823623.tif 000007
【図５】
0005823623.tif 000008
【図６】
0005823623.tif 000009
【図７】
0005823623.tif 000010