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