(57)【特許請求の範囲】
【請求項１】
ビデオデータを符号化するための方法であって、
現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定することであって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うこととを備える、方法。
【請求項２】
前記現在のビデオユニットに対する前記符号化動作を行うことが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー符号化動作を行うこととを備える、請求項１に記載の方法。
【請求項３】
ビデオデータを復号するための方法であって、
現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定することであって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うこととを備える、方法。
【請求項４】
前記現在のビデオユニットに対する前記復号動作を行うことが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー復号動作を行うこととを備える、請求項３に記載の方法。
【請求項５】
前記現在のビデオユニットがコーディングユニットまたは変換ユニットである、請求項１または請求項３に記載の方法。
【請求項６】
前記現在のビデオユニットがツリーブロックかどうか判定することと、
前記現在のビデオユニットがツリーブロックではないこと基づいて、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することとをさらに備える、請求項１または請求項３に記載の方法。
【請求項７】
前記祖父母ビデオユニットがツリーブロックであることに基づいて、前記ピクチャの範囲内の前記祖父母ビデオユニットの位置に基づいて、前記祖父母ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することをさらに備える、請求項１または請求項３に記載の方法。
【請求項８】
前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの上位ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定するための動作を再帰的に行うことを備える、請求項６に記載の方法。
【請求項９】
前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための非再帰的動作を行うことを備える、請求項６に記載の方法。
【請求項１０】
前記特定された第２のエントリーが一連の値を備え、前記一連の値の各それぞれの値が前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項１または請求項３に記載の方法。
【請求項１１】
前記参照テーブルが、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、請求項１または請求項３に記載の方法。
【請求項１２】
前記参照テーブルが前記現在のビデオユニットの前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが前記他の子ビデオユニットに隣接する複数のビデオユニットの利用可能性を示す、請求項１１に記載の方法。
【請求項１３】
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
前記方法が、
前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成することと、
１つまたは複数の変換係数ブロックを生成するために前記残差データに対して１つまたは複数の変換を適用することと、
前記変換係数ブロックを表す符号化されたデータを含むビットストリームを出力することとをさらに備える、請求項１に記載の方法。
【請求項１４】
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
前記方法が、
前記現在のビデオユニットの残差データを復号することと、
前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとをさらに備える、請求項３に記載の方法。
【請求項１５】
ビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体と、
１つまたは複数のプロセッサと、
を備え、前記１つまたは複数のプロセッサが、
前記ビデオデータの現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うこととを行うように構成される、装置。
【請求項１６】
前記１つまたは複数のプロセッサが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択し、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー符号化動作を行うように構成される、請求項１５に記載の装置。
【請求項１７】
ビデオデータを記憶するように構成された１つまたは複数のデータ記憶媒体と、
１つまたは複数のプロセッサと、
を備え、前記１つまたは複数のプロセッサが、
前記ビデオデータの現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うこととを行うように構成される、装置。
【請求項１８】
前記現在のビデオユニットに対する前記復号動作を行うことが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピー復号動作を行うこととを備える、請求項１７に記載の装置。
【請求項１９】
前記現在のビデオユニットがコーディングビデオユニットまたは変換ユニットである、請求項１５または請求項１７に記載の装置。
【請求項２０】
前記１つまたは複数のプロセッサが、
前記現在のビデオユニットがツリーブロックかどうか判定し、
前記現在のビデオユニットがツリーブロックではないことに基づいて、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を判定するように構成される、請求項１５または請求項１７に記載の装置。
【請求項２１】
前記１つまたは複数のプロセッサが、前記祖父母ビデオユニットがツリーブロックであることに基づいて、前記ピクチャの範囲内の前記祖父母ビデオユニットの位置に基づいて、前記祖父母ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するように構成される、請求項１５または請求項１７に記載の装置。
【請求項２２】
前記１つまたは複数のプロセッサが、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための動作を再帰的に行うように構成される、請求項２０に記載の装置。
【請求項２３】
前記１つまたは複数のプロセッサが、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための非再帰的動作を行うように構成される、請求項２０に記載の装置。
【請求項２４】
前記特定された第２のエントリーが一連の値を備え、前記一連の値の各それぞれの値が前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項１５または請求項１７に記載の装置。
【請求項２５】
前記参照テーブルが、前記現在のビデオユニットの前記親ビデオユニットに隣接する前記複数のビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、請求項１５または請求項１７に記載の装置。
【請求項２６】
前記参照テーブルが、前記現在のビデオユニットの前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが、前記他の子ビデオユニットに隣接する複数のビデオユニットの利用可能性を示す、請求項２５に記載の装置。
【請求項２７】
前記１つまたは複数のプロセッサが、
前記現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成し、
前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成し、
１つまたは複数の変換係数ブロックを生成するために前記残差データに対して１つまたは複数の変換を適用し、
前記１つまたは複数の変換係数ブロックを表す符号化されたデータを含むビットストリームを出力するように構成される、請求項１５に記載の装置。
【請求項２８】
前記１つまたは複数のプロセッサが、
前記現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することと、
前記現在のビデオユニットの残差データを復号することと、
前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとを行うように構成される、請求項１７に記載の装置。
【請求項２９】
ビデオデータを符号化するための装置であって、
現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定するための手段であって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定するための手段と、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用するための手段であって、前記第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用するための手段と、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うための手段とを備える、装置。
【請求項３０】
ビデオデータを復号するための装置であって、
現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定するための手段であって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定するための手段と、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用するための手段であって、前記第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用するための手段と、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うための手段とを備える、装置。
【請求項３１】
前記現在のビデオユニットがツリーブロックかどうか判定するための手段と、
前記現在のビデオユニットがツリーブロックではないことに基づいて、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの前記利用可能性を判定するための動作を再帰的に行うための手段とをさらに備える、請求項２９または請求項３０に記載の装置。
【請求項３２】
前記特定された第２のエントリーが一連の値を備え、前記一連の値の各それぞれの値が、前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項２９または請求項３０に記載の装置。
【請求項３３】
複数の命令を備えるコンピュータプログラムであって、前記複数の命令が実行されたときに、１つまたは複数のプロセッサに、
現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記異なる第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する符号化動作を行うこととを行わせる、コンピュータプログラム。
【請求項３４】
複数の命令を備えるコンピュータプログラムであって、前記複数の命令が実行されたときに、１つまたは複数のプロセッサに、
現在のビデオユニットの祖父母ビデオユニットに隣接する複数のビデオユニットの利用可能性に基づいて、参照テーブル内の第１のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定された第１のエントリーが前記現在のビデオユニットの親ビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記祖父母ビデオユニットは前記現在のビデオユニットの前記親ビデオユニットの親ビデオユニットであり、前記現在のビデオユニットの前記親ビデオユニットはツリーブロックではない、特定することと、
前記参照テーブル内の異なる第２のエントリーを特定するために前記親ビデオユニットに隣接する前記複数のビデオユニットの前記利用可能性を使用することであって、前記異なる第２のエントリーが前記現在のビデオユニットに隣接する複数のビデオユニットの利用可能性を示し、前記現在のビデオユニットに隣接するビデオユニットが前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、使用することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能であると判定することに基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータを使用して前記現在のビデオユニットに対する復号動作を行うこととを行わせる、コンピュータプログラム。
【請求項３５】
前記複数の命令が、前記１つまたは複数のプロセッサに、
前記現在のビデオユニットがツリーブロックかどうか判定させ、
前記現在のビデオユニットがツリーブロックではないことに基づいて、前記現在のビデオユニットの上位ビデオユニットに隣接する複数のビデオユニットの利用可能性を判定するための動作を再帰的に行わせる、請求項３３または請求項３４に記載のコンピュータプログラム。
【請求項３６】
前記特定された第１のエントリーが一連の値を備え、前記一連の値の各それぞれの値が、前記現在のビデオユニットに隣接するそれぞれのビデオユニットのそれぞれの利用可能性を示す、請求項３３または請求項３４に記載のコンピュータプログラム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は２０１１年１０月１８日に出願された米国仮特許出願第６１／５４８，６３０号の利益を主張し、その全内容は参照により本明細書に組み込まれる。
【技術分野】
【０００２】
本出願は、ビデオコーディングの分野、例えば、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む広い範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、およびこうした規格の拡張版に記載されるようなビデオ圧縮技法を実施する。ＭＰＥＧとＩＴＵ−Ｔとのコラボレーションである「Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ−Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」（ＪＣＴ−ＶＣ）によって開発されているＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格のような新しいビデオコーディング規格が開発されつつある。新生のＨＥＶＣ規格は、Ｈ．２６５と呼ばれることもあるが、そのような命名は公式になされたものでない。
【発明の概要】
【０００４】
本開示の技法は一般に、隣接するビデオユニット(neighboring video units)の利用可能性をビデオコーディング中に判定することに関する。より具体的には、ビデオコーダが現在のビデオユニット(current video unit)に対するビデオコーディング動作を行う。ビデオコーディング動作を行うことの一部として、いくつかの例で、ビデオコーダが現在のビデオユニットの親ビデオユニット(parent video unit)の利用可能性に基づいて参照テーブル内のエントリーを特定できる。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。このようにして、参照テーブルは、ビデオコーダが現在のビデオユニットに隣接するビデオユニットの利用可能性を検出することを可能にする。ビデオコーダは現在のビデオユニットに隣接するビデオユニットの利用可能性に基づいて現在のビデオユニットに対するコーディング動作を行う。
【０００５】
一例において、本開示は、ビデオデータをコーディングするための方法を説明する。この方法は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定することを備える。現在のビデオユニットはビデオデータのピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。さらに、この方法は、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行うことを備える。
【０００６】
別の例において、本開示は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定するように構成される１つまたは複数のプロセッサを備えるビデオコーディング装置を説明する。現在のビデオユニットはピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。１つまたは複数のプロセッサはさらに、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行うように構成される。
【０００７】
別の例において、本開示は、ビデオデータをコーディングするためのビデオコーディング装置を説明する。ビデオコーディング装置は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定するための手段を備える。現在のビデオユニットはビデオデータのピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。ビデオコーディング装置はさらに、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行うための手段を備える。
【０００８】
別の例において、本開示は、実行されたときに１つまたは複数のプロセッサに現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定させる命令を記憶した、コンピュータ可読媒体を備えるコンピュータプログラム製品を説明する。現在のビデオユニットは、ピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示す。加えて、命令は、実行されたときに、１つまたは複数のプロセッサに、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作を行わせる。
【０００９】
本開示の１つまたは複数の態様の詳細は、添付の図面および以下の説明に記載される。本開示で説明される技法の他の特徴、目的、および利点は、これらの説明および図面、並びに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】本開示の技法を利用できる例示的なビデオコーディングシステムを示すブロック図。
【図２】ツリーブロックおよびスライスへのピクチャの例示的な区分を示す概念図。
【図３】ピクチャのツリーブロックの例示的なラスタースキャン順序を示す概念図。
【図４】より小さなビデオコーディングユニットへ次第に区分される例示的なツリーブロックを示す概念図。
【図５】ツリーブロックを区分するための例示的な４分木データ構造を示す概念図。
【図６】ｚスキャン順序に従ったツリーブロックの区分されていないコーディングユニットの例示的な順序付けを示す概念図。
【図７】ビデオシーケンスを符号化するビデオエンコーダの一例を示すブロック図。
【図８】符号化されたビデオシーケンスを復号するビデオデコーダの一例を示すブロック図。
【図９】現在のビデオユニットの隣接ユニットの利用可能性を判定するための例示的な再帰的動作を示すフローチャート。
【図１０】ビデオユニットの例示的な隣接ユニットを示す概念図。
【図１１】副分割されたノンリーフビデオユニットと隣接するビデオユニットとの間の例示的な関係を示す概念図。
【図１２】ノンリーフビデオユニットの左上のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。
【図１３】ノンリーフビデオユニットの右上のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。
【図１４】ノンリーフビデオユニットの左下のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。
【図１５】ノンリーフビデオユニットの右下のサブユニットの隣接ユニットの例示的な利用可能性を示す概念図。
【図１６】現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作を示すフローチャート。
【図１７】６４個の基本ビデオユニットへと区分されたＬＣＵの概念図。
【図１８】左下の隣接ユニットのための例示的な参照テーブル（ＬＵＴ）を示す概念図。
【図１９】左の隣接ユニットのための例示的なＬＵＴを示す概念図。
【図２０】左上の隣接ユニットのための例示的なＬＵＴを示す概念図。
【図２１】上の隣接ユニットのための例示的なＬＵＴを示す概念図。
【図２２】右上の隣接ユニットのための例示的なＬＵＴを示す概念図。
【図２３】現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１１】
添付の図面は、例を示す。添付の図面における、参照番号で指示される要素は、以下の説明における、同じ参照番号で指示される要素に対応する。本開示において、順序を示す言葉（例えば、「第１の」、「第２の」、「第３の」など）で始まる名称をもつ要素は、それらの要素が特定の順序を有することを必ずしも示唆しない。そうではなく、そのような順序を示す言葉は、同じまたは同様のタイプの異なる要素を指すのに使われるにすぎない。
【００１２】
本開示の技法は、ビデオコーダがピクチャのビデオユニットの隣接ユニットの利用可能性を判定し得る効率を向上できる。本明細書に記載され使用されるように、用語「ビデオコーダ」はビデオエンコーダとビデオデコーダとの両方を総称して指す。本開示では、用語「ビデオコーディング」または「コーディング」はビデオ符号化とビデオ復号とを総称して指し得る。「ビデオユニット」はピクセル値の連続的なグループに対応し得る。第１のビデオユニットの１つまたは複数のピクセル値がピクチャにおいて第２のビデオユニットの１つまたは複数のピクセル値に隣接する場合には、第１のビデオユニットが第２のビデオユニットの隣接ユニットであり得る（すなわち、第１のビデオユニットが第２のビデオユニットに隣接する）。
【００１３】
ビデオユニットに対するビデオコーディング処理を行うとき、ビデオコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットをコーディングすることが可能であれば、隣接するビデオユニットは「利用可能」であり得る。ビデオコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットをコーディングすることが不可能であれば、隣接するビデオユニットは「利用不可能」であり得る。例えば、ビデオエンコーダがビデオユニットに対するビデオ符号化処理を行うとき、ビデオエンコーダが隣接するビデオユニットをまだ符号化していない場合、隣接するビデオユニットが存在しない場合、隣接するビデオユニットがビデオユニットとは異なるスライス内にある場合、または、他の理由でビデオエンコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットを符号化することが不可能である場合に、隣接するビデオユニットは利用不可能であり得る。ビデオデコーダがビデオブロックに対するビデオ復号処理を行うとき、ビデオデコーダが隣接するビデオユニットをまだ復号していない場合、隣接するビデオユニットが存在しない場合、隣接するビデオユニットがビデオユニットと異なるスライス内にある場合、または、他の理由でビデオデコーダが隣接するビデオユニットに関連付けられるデータを使用してビデオユニットを復号することが不可能である場合に、隣接するビデオユニットは利用不可能であり得る。
【００１４】
イントラ予測または動きベクトル予測のためなどの、隣接するビデオユニットが利用可能かどうかをビデオコーダが判定する必要があり得る様々な理由があり得る。例えば、ビデオエンコーダまたはビデオデコーダは、現在のビデオユニットのピクセル値をイントラ予測するために、隣接するビデオユニットのピクセル値を入手(access)できる必要があり得る。この例では、ビデオデコーダが隣接するビデオユニットをまだ復号していない場合、ビデオデコーダは、隣接するビデオユニットのピクセル値を入手することが不可能であり得る。別の例では、動きベクトル予測において、ビデオエンコーダまたはビデオデコーダは、現在のビデオユニットの動きデータを生成するために、例えば、マージモードもしくはスキップモードにおいて、または発展型動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードにおいて使用するために、隣接するビデオユニットの動きデータを入手できる必要があり得る。他の例では、隣接するビデオユニットの利用可能性は、様々なシンタックス要素のエントロピーコーディングのためのコンテキストを判定するために必要とされ得る。これらの例では、ビデオエンコーダが隣接するビデオユニットをまだ符号化していない場合にビデオエンコーダが隣接するビデオユニットの動きデータを入手することが不可能であり得る。
【００１５】
本開示の技法によれば、ビデオコーダが、複数のエントリーを含む参照テーブル（ＬＵＴ）を記憶できる。ビデオコーダは、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいてＬＵＴ内の特定のエントリーをアクセスできる。ＬＵＴ内のそのエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を規定し得る。こうして、ビデオコーダは、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて現在のビデオユニットに隣接するビデオユニットの利用可能性を判定するためにＬＵＴを使用できる。このように隣接するビデオユニットの利用可能性を判定することは、隣接するビデオユニットの利用可能性を判定するためにこれまでに提案されてきた技法よりも少ないメモリアクセスしか必要としないことができ、比較的早い利用可能性の検出を促進し得る。
【００１６】
図１は、本開示で説明される技法を利用できる例示的なビデオコーディングシステム１０を示すブロック図である。図１の例に示されるように、ビデオコーディングシステム１０はソースデバイス１２と宛先デバイス１４とを含む。ソースデバイス１２は符号化されたビデオデータを生成する。宛先デバイス１４は、符号化されたビデオデータを後で復号できる。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、携帯電話、電話ハンドセット、「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイス、車内コンピュータ、またはビデオデータを符号化し復号することが可能な他のタイプのコンピューティングデバイスを含む広範なデバイスのうちのいずれかを備え得る。
【００１７】
宛先デバイス１４は、通信チャネル１６を介して符号化されたビデオデータを受信できる。通信チャネル１６は、符号化されたビデオデータをソースデバイス１２から宛先デバイス１４に移すことが可能な媒体またはデバイスを備え得る。一例において、通信チャネル１６は、ソースデバイス１２が符号化されたビデオデータを宛先デバイス１４にリアルタイムに直接送信することを可能にする通信媒体を備え得る。ソースデバイス１２または別のデバイスは、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオデータを変調できる。通信媒体は、高周波（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路のような任意のワイヤレスまたは有線通信媒体を備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を形成できる。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への符号化されたビデオデータの通信を可能にするために有用な、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００１８】
いくつかの例では、ソースデバイス１２および宛先デバイス１４がワイヤレス通信のために装備され得る。しかしながら、本開示の技法は、必ずしもワイヤレス用途または設定に限定されない。本技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途のような様々なマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ソースデバイス１２および宛先デバイス１４は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００１９】
さらに、いくつかの例では、ソースデバイス１２が符号化されたビデオデータを記憶システム３４に出力できる。同様に、宛先デバイス１４は、記憶システム３４上に記憶された符号化されたビデオデータをアクセスできる。様々な例において、記憶システム３４は様々な分散型またはローカルアクセス型データ記憶媒体を含み得る。例示的なタイプのデータ記憶媒体は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、ソリッドステートメモリユニット、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータの記憶に適した他のデジタル記憶媒体を含むが、それらに限定されない。
【００２０】
いくつかの例では、記憶システム３４が、ソースデバイス１２によって生成された符号化されたビデオを記憶できる、ファイルサーバまたは別の中間記憶デバイスを備え得る。宛先デバイス１４は、記憶システム３４からの記憶されたビデオデータに、ストリーミングまたはダウンロードを介してアクセスできる。ファイルサーバは、符号化されたビデオデータを記憶すること、およびその符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ（例えば、ウェブサイト用）、ファイル転送プロトコル（ＦＴＰ）サーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続のようなデータ接続を通じて、符号化されたビデオデータをアクセスできる。データ接続は、ファイルサーバに記憶された符号化されたビデオデータをアクセスするのに好適であるワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。記憶システム３４からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００２１】
図１の例では、ソースデバイス１２が、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの例では、出力インターフェース２２が、変調器／復調器（モデム）および／または送信機も含み得る。ビデオソース１８はビデオエンコーダ２０にビデオデータを与え得る。様々な例において、ビデオソース１８は、ビデオデータを与えるための様々なタイプのデバイスおよび／またはシステムを備え得る。例えば、ビデオソース１８はビデオカメラなどのビデオキャプチャデバイスを備え得る。別の例では、ビデオソース１８が事前にキャプチャされたビデオを含むビデオアーカイブを備え得る。さらに別の例では、ビデオソース１８が、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースを備え得る。さらに別の例では、ビデオソース１８がコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムを備え得る。
【００２２】
以下に詳細に説明されるように、ビデオエンコーダ２０はビデオソース１８によって与えられたビデオデータを符号化できる。いくつかの例では、ソースデバイス１２が出力インターフェース２２を介して宛先デバイス１４に符号化されたビデオデータを直接送信できる。さらに、いくつかの例では、記憶システム３４が符号化されたビデオデータを記憶し、宛先デバイス１４または他のデバイスによって後でアクセスするようにできる。
【００２３】
本開示は、一般に、ビデオデコーダ３０のような別のデバイスにある情報を「シグナリング」するものとしてビデオエンコーダ２０に言及し得る。しかしながら、ビデオエンコーダ２０は、いくつかのシンタックス要素をビデオデータの様々な符号化された部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ２０は、いくつかのシンタックス要素をビデオデータの様々な符号化された部分のヘッダに記憶することによってデータを「シグナリング」し得る。いくつかの場合には、そのようなシンタックス要素は、ビデオデコーダ３０によって受信および復号される前に、符号化および記憶され（例えば、記憶システム３４に記憶され）得る。従って、「シグナリング」という用語は一般に、圧縮されたビデオデータを復号するために使用されるシンタックスまたは他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムに生じ得る。代替的に、そのような通信は、ある長さの時間にわたって生じてよく、例えば、符号化時にシンタックス要素を媒体に記憶するときに起こってもよく、復号デバイスが次いで、これらの要素を、この媒体に記憶された後の任意の時間に取り出すことができる。
【００２４】
図１の例において、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの例では、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、通信チャネル１６および／または記憶システム３４から符号化されたビデオデータを受信する。ビデオデコーダ３０は、入力インターフェース２８によって受信された符号化されたビデオデータを復号する。宛先デバイス１４は、復号されたビデオデータを、ディスプレイデバイス３２での表示のためにレンダリングできる。
【００２５】
ディスプレイデバイス３２は、宛先デバイス１４と一体であってよく、またはその外部にあってよい。いくつかの例では、宛先デバイス１４が一体型ディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースするように構成されてよい。様々な例において、ディスプレイデバイス３２は、様々なタイプのディスプレイデバイスを備え得る。例えば、ディスプレイデバイス３２は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスを備え得る。
【００２６】
図１に示されないが、ビデオエンコーダ２０およびビデオデコーダ３０は各々、オーディオエンコーダおよびデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム内のオーディオおよびビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠できる。
【００２７】
ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアのような種々の好適な回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実施されるとき、デバイスはソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、その命令をハードウェアにおいて実行して本開示の技法を行うために１つまたは複数のプロセッサを使用できる。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダに含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合されてよい。
【００２８】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作でき、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格のような、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。規格に対する例示的な拡張は、Ｈ．２６４／ＡＶＣ規格に対するスケーラブルビデオコーディング（ＳＶＣ）拡張とＭｕｌｔｉｖｉｅｗ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＭＶＣ）拡張とを含む。本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２９】
上で手短に述べられたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは１つまたは複数のピクチャのシーケンスを備え得る。ピクチャの各々は静止画像である。いくつかの事例では、ピクチャが「フレーム」と呼ばれ得る。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０がビットストリームを生成し得る。ビットストリームは、コーディングされたピクチャおよび関連付けられるデータの表現を形成するビットのシーケンスを含む。コーディングされたピクチャとは、ピクチャのコーディングされた表現である。
【００３０】
ビットストリームを生成するために、ビデオエンコーダ２０はビデオデータ内のピクチャのシーケンスのための符号化動作(encoding operation)を行い得る。ビデオエンコーダ２０がピクチャのシーケンスのための符号化動作を行うとき、ビデオエンコーダ２０が一連のコーディングされたピクチャおよび関連付けられるデータを生成できる。加えて、ビデオエンコーダ２０は、ピクチャのシーケンスに適用可能なパラメータを含むシーケンスパラメータセット（ＳＰＳ）を生成できる。さらに、ビデオエンコーダ２０は、全体としてピクチャに適用可能なパラメータを含むピクチャパラメータセット（ＰＰＳ）を生成できる。
【００３１】
コーディングされたピクチャを生成するために、ビデオエンコーダ２０はピクチャを１つまたは複数のツリーブロックに区分できる。ツリーブロックは、２Ｄブロックのビデオデータである。いくつかの事例では、ツリーブロックが最大コーディングユニット（ＬＣＵ）とも呼ばれ得る。ＨＥＶＣのツリーブロックは、Ｈ．２６４／ＡＶＣのような従来の規格のマクロブロックに、広い意味で類似し得る。しかしながら、ツリーブロックは、特定のサイズに必ずしも限定されず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。
【００３２】
いくつかの例では、ビデオエンコーダ２０がピクチャを複数のスライスに区分できる。スライスの各々は整数個のＣＵを含み得る。いくつかの事例では、スライスが整数個のツリーブロックを備える。他の事例では、スライスの境界がツリーブロックの範囲内にあり得る。スライスの境界がツリーブロックの範囲内にある場合、スライスが高粒度スライスと呼ばれ得る。図２は、ＬＣＵへと区分されたピクチャ５０を示す。ピクチャ５０の水平中間点に近い比較的濃い線５２は、ピクチャ５０のスライス５４とスライス５６との間の境界を示す。図２の例において、ピクチャ５０の範囲内のセル５８はツリーブロックに対応し得る。
【００３３】
ピクチャのための符号化動作を行うことの一部として、ビデオエンコーダ２０は、ピクチャの各スライスのための符号化動作を行い得る。スライスのための符号化動作は、スライスに関連付けられた符号化されたデータを生成し得る。スライスに関連付けられた符号化されたデータは、「コーディングされたスライス(coded slice)」と呼ばれ得る。コーディングされたスライスは、スライスヘッダとスライスデータとを含み得る。スライスデータは一連の連続するコーディングユニットをコーディングの順序で含み得る。スライスヘッダは、スライスの最初のまたはすべてのツリーブロックに関するデータ要素を含み得る。
【００３４】
スライスに対するコーディングされたスライスデータを生成するために、ビデオエンコーダ２０はスライス内の各ツリーブロックに対する符号化動作を行い得る。ビデオエンコーダ２０はスライス内のツリーブロックに対する符号化動作をラスタースキャン順序に従って行い得る。図３はピクチャ５０のツリーブロックの例示的なラスタースキャン順序を示す概念図であり、各ツリーブロック内の数字はツリーブロックのラスタースキャンの例示的な順序を示す（例えば、図３の例では１〜５６）。ビデオエンコーダ２０がツリーブロックに対する符号化動作を行うと、このビデオエンコーダ２０がコーディングされたツリーブロックを生成できる。コーディングされたツリーブロックは、ツリーブロックの符号化されたバージョンを表すデータを備え得る。
【００３５】
コーディングされたツリーブロックを生成するために、ビデオエンコーダ２０はツリーブロックに対する４分木区分を再帰的に行い、ツリーブロックを次第により小さなＣＵへ区分できる。例えば、ビデオエンコーダ２０はツリーブロックを４つの等しいサイズのサブＣＵに区分し、サブＣＵのうちの１つまたは複数を４つの等しいサイズのサブサブＣＵに区分でき、以下同様に続く。ビットストリーム内の１つまたは複数のシンタックス要素は、ビデオエンコーダ２０がツリーブロックを区分できる最大の回数を示し得る。シンタックス要素は、最小コーディングユニット（ＳＣＵ）も示し得る。いくつかの例では、ＣＵが形状において正方形であり得る。他の例では、ＣＵが長方形または別の形状であり得る。所与の現在のビデオユニットの親ビデオユニットは、現在のビデオユニットに対応する４分木ノードのすぐ上の４分木ノードに対応し得る。ビデオエンコーダ２０が４分木区分を使用して所与のビデオユニットを４つの等しいサイズのビデオユニットに区分する場合、その所与のビデオユニットは、本開示で、４つの等しいサイズのビデオユニットの親ビデオユニットと呼ばれる。
【００３６】
図４は、次第により小さなＣＵへ区分されるツリーブロック６０を示す概念図である。図４の例では、ツリーブロック６０が１３個の区分されていないＣＵ６２へと区分される。他の例では、ビデオエンコーダ２０が他の方法でツリーブロックを区分できる。
【００３７】
ツリーブロックのための符号化動作を行うことの一部として、ビデオエンコーダ２０はツリーブロックのための階層４分木データ構造を生成できる。例えば、ツリーブロックが４分木データ構造のルートノードに対応し得る。ビデオエンコーダ２０がツリーブロックを４つのサブＣＵに区分する場合、ルートノードが４分木データ構造内に４つの子ノードを有する。子ノードの各々はサブＣＵのうちの１つに対応する。ビデオエンコーダ２０がサブＣＵのうちの１つを４つのサブサブＣＵに区分する場合、サブＣＵに対応するノードが４つの子ノードを有することができ、その各々がサブサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは対応するＣＵのためのシンタックスデータを与え得る。例えば、４分木内のノードは、このノードに対応するＣＵが４つのサブＣＵに区分（すなわち、分割）されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は再帰的に定義されてよく、ＣＵがサブＣＵに分割されるかどうかに依存し得る。区分されていないＣＵは４分木データ構造におけるリーフノードに対応し得る。４分木データ構造におけるリーフノードは「コーディングノード(coding node)」と呼ばれ得る。ツリーブロックの符号化されたバージョンを表すデータは、ツリーブロックのための４分木データ構造に基づくデータを含み得る。
【００３８】
図５は、ツリーブロックを区分するための例示的な４分木データ構造７０を示す概念図である。図５の例の４分木データ構造７０は図４のツリーブロック６０の区分に対応しない。図５の例では、４分木データ構造７０がツリーブロックに対応するルートノード７２を含む。ビデオエンコーダ２０はツリーブロックを４つのサブＣＵに区分する。これらサブＣＵは４分木データ構造７０の子レベルにあるノード７４に対応する。さらに、図５の例では、ビデオエンコーダ２０が第２のサブＣＵを４つのサブサブＣＵに区分している。これらサブサブＣＵは４分木データ構造７０の孫レベルにあるノード７６に対応する。図５では、ビデオエンコーダ２０が第４のサブサブＣＵを４つのサブサブサブＣＵに区分している。これらサブサブサブＣＵは４分木データ構造７０の曾孫レベルにあるノード７８に対応する。
【００３９】
ビデオエンコーダ２０がツリーブロックに対する符号化動作を行うとき、ビデオエンコーダ２０がツリーブロックの４分木の範囲内の各レベルでツリーブロックのＣＵの順番をｚスキャン順序に従って決定できる。例えば、ビデオエンコーダ２０は、子レベルにあるサブＣＵをｚスキャン順序に従って順序付け、第１のサブＣＵのサブサブＣＵをｚスキャン順序に従って順序付け、第２のサブＣＵのサブサブＣＵをｚスキャン順序に従って順序付け、サブサブＣＵのサブサブサブＣＵをｚスキャン順序に従って順序付けることができ、以下同様である。ビデオエンコーダ２０は次いで、ツリーブロックの各ＣＵに対する符号化動作を決定されたＣＵの順番に基づいて行い得る。図６は、ｚスキャン順序に従った、ツリーブロック６０の区分されていないＣＵの例示的な順序付けを示す概念図である。具体的には、各ＣＵの範囲内の数字は、ＣＵがスキャンされる順序を他のＣＵの順序に対して示す（例えば、図６の例では０〜１２）。
【００４０】
区分されていないＣＵに対する符号化動作を行うことの一部として、ビデオエンコーダ２０がＣＵの予測データを生成できる。ビデオエンコーダ２０はＣＵの予測データを生成するためにイントラ予測またはインター予測を使用できる。ビデオエンコーダ２０がＣＵの予測データを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０が、ＣＵを含むピクチャの復号されたピクセル値からＣＵの予測データを導出できる。例えば、ビデオエンコーダ２０は、現在のビデオユニットに隣接するビデオユニットの１つまたは複数のピクセル値に基づいて、現在のビデオユニットの予測データを生成できる。ビデオエンコーダ２０がＣＵの予測データを生成するためにインター予測を使用する場合、ビデオエンコーダ２０が、ＣＵを含むピクチャ以外の参照ピクチャの復号された値からＣＵの予測データを導出する。
【００４１】
ビデオエンコーダ２０がＣＵの予測データを生成した後、ビデオエンコーダ２０はＣＵの残差データを生成できる。例えば、ビデオエンコーダ２０はＣＵの残差データをＣＵの予測データに基づいて生成できる。このＣＵの残差データは、ＣＵの予測データにおけるピクセル値とＣＵのオリジナルピクセル値との間の差を示し得る。
【００４２】
さらに、区分されていないＣＵに対する符号化動作を行うことの一部として、ビデオエンコーダ２０はＣＵに対して再帰的な４分木区分を行い、ＣＵを１つまたは複数の変換ユニット（ＴＵ）に区分できる。本開示は、ＣＵおよびＴＵを「ビデオユニット(video units)」と総称して指し得る。ＣＵの各ＴＵはＣＵの残差データの異なる部分に関連付けられ得る。ビデオエンコーダ２０がツリーブロックの範囲内のＣＵを順序付けるのと同様の方式で、ビデオエンコーダ２０がＣＵのＴＵをｚスキャン順序に従って順序付けることができる。ビデオエンコーダ２０はＣＵの各ＴＵのための変換動作(transform operations)をｚスキャン順序に従って行い得る。ビデオエンコーダ２０がＴＵのための変換動作を行うとき、ビデオエンコーダ２０が、ＴＵに関連付けられる残差データに対して変換を適用することによって少なくとも部分的に変換係数ブロック（すなわち、１ブロックの変換係数）を生成できる。例えば、ビデオエンコーダ２０は、１つまたは複数の変換係数ブロックを生成するために１つまたは複数の変換を残差データに対して適用できる。変換係数ブロックは係数の２Ｄ行列であり得る。
【００４３】
変換係数ブロックを生成した後、ビデオエンコーダ２０は、変換係数ブロックに対する量子化およびエントロピー符号化動作(quantization and entropy encoding operations)を行うことによって変換係数ブロックの符号化されたバージョンを生成できる。ビデオエンコーダ２０は変換係数ブロックの符号化されたバージョンをビデオデータのためのビットストリームで出力できる。言い換えると、ビデオエンコーダ２０は、変換係数ブロックを表す符号化されたデータを含むビットストリームを出力できる。
【００４４】
ビデオデコーダ３０によって行われるビデオ復号処理は一般に、ビデオエンコーダ２０によって行われる符号化処理と逆(reciprocal)であり得る。例えば、ビデオデコーダ３０がビットストリームを受信すると、ビデオデコーダ３０は、ビットストリーム内のピクチャの各シーケンスに対する復号動作(decoding operation)を行い得る。ピクチャのシーケンスに対する復号動作を行うことの一部として、ビデオデコーダ３０は、ピクチャのシーケンスにおいて各ピクチャに対する復号動作を行い得る。ピクチャに対する復号動作を行うことの一部として、ビデオデコーダ３０はピクチャの各スライスに対する復号動作を行い得る。スライスに対する復号動作を行うことの一部として、ビデオデコーダ３０はスライス内の各ツリーブロックに対する復号動作をラスタースキャン順序に従って行い得る。ツリーブロックに対する復号動作を行うことの一部として、ビデオデコーダ３０はツリーブロックの各ＣＵに対する復号動作をｚスキャン順序に従って行い得る。
【００４５】
いくつかの事例では、ビデオデコーダ３０が１つまたは複数の隣接するビデオユニットのための復号動作を完了するまで、ビデオデコーダ３０はツリーブロックの範囲内のビデオユニット（例えば、ＣＵまたはＴＵ）のための何らかの復号動作を行うことが不可能であり得る。例えば、ビデオデコーダ３０が、左下の隣接ビデオユニット、左の隣接ビデオユニット、左上の隣接ビデオユニット、上の隣接ビデオユニット、および／または右上の隣接ビデオユニットを復号するまで、ビデオデコーダ３０はビデオユニットのための何らかの復号動作を行うことが不可能であり得る。所与のビデオユニットの左下の隣接ビデオユニットは所与のビデオユニットの下および左に存在する。所与のビデオユニットの左の隣接ビデオユニットは所与のビデオユニットの左に存在する。所与のビデオユニットの左上の隣接ビデオユニットは所与のビデオユニットの左上に存在する。所与のビデオユニットの上の隣接ビデオユニットは所与のビデオユニットの上に存在する。右上の隣接ビデオユニットは所与のビデオユニットの右上に存在する。ビデオデコーダ３０はツリーブロックに対する復号動作をラスタースキャン順序に従って行い、ツリーブロックのＣＵおよびＴＵに対する復号動作をｚスキャン順序に従って行うので、ビデオデコーダ３０はビデオユニットに対する復号動作を行うためにビデオユニットの右、右下、または下の隣接ユニットの利用可能性を判定する必要がないことがある。
【００４６】
１つまたは複数の隣接するビデオユニットが復号されるまでビデオデコーダ３０が所与のビデオユニットに対する復号動作を行い得ない様々な理由があり得る。例えば、ビデオエンコーダ２０はＣＵのピクセル値を符号化するためにイントラ予測を行っていることがある。イントラ予測を行うことの一部として、ビデオエンコーダ２０は、ＣＵの予測データを生成するために、隣接するＣＵからのピクセル値を使用し得る。ビデオデコーダ３０がＣＵに対する復号動作を行うとき、ビデオデコーダ３０は、隣接するＣＵがすでに復号されているかどうかを判定し得る。言い換えると、ビデオデコーダ３０は、隣接するＣＵが利用可能であるかどうかを判定し得る。特定の隣接するＣＵが利用可能である場合、ビデオデコーダ３０は、ＣＵの予測データを生成するために、隣接するＣＵからのピクセル値を使用し得る。しかしながら、隣接するＣＵが利用可能ではない場合、ビデオデコーダ３０は隣接するＣＵからのピクセル値を入手できない。従って、ビデオデコーダ３０は隣接するＣＵからのピクセル値を使用する代わりにデフォルトのピクセル値を使用し得る。
【００４７】
いくつかの事例において、ビデオエンコーダ２０は、ＣＵの隣接するＣＵが符号化されているかどうかを判定することも必要であり得る。例えば、ビデオエンコーダ２０は、ＣＵの動きベクトルを示す動きベクトル候補を生成するために、ＣＵの隣接するＣＵが符号化されているかどうかを判定する必要があり得る。ビデオエンコーダ２０およびビデオデコーダ３０は、所与のビデオユニットの隣接するビデオユニットが符号化または復号されているかどうか（すなわち、隣接するビデオユニットが利用可能かどうか）を判定するために、様々なアルゴリズムを使用できる。ＣＵおよびＴＵのようなビデオユニットは、４分木データ構造の様々なレベル（または深度）に関連付けられ得るので、これらアルゴリズムは複雑であり得る。言い換えると、ビデオユニットの隣接ユニットは、ビデオユニットとは異なるレベルの４分木に関連付けられ得る。従って、所与のビデオユニットのすぐ上には、実際には２つのビデオユニットがあり得る。いくつかのこれまでに提案されたアルゴリズムは複雑であり、多数のメモリアクセスを必要とし得る。複雑なアルゴリズムを処理しメモリアクセスを行うことは時間と電気エネルギーとを消費するので、ビデオエンコーダ２０またはビデオデコーダ３０がそのような複雑なアルゴリズムを行うことは望ましくないことがある。
【００４８】
いくつかの例において、本開示の技法は、ビデオユニットの隣接するビデオユニットがすでに符号化または復号されているかどうかを判定する際の複雑さを低減できる。説明の容易さのために、用語「ビデオコーダ(video coder)」がビデオエンコーダまたはビデオデコーダのいずれかを指すために使用され得る。本開示の技法によれば、ビデオコーダは参照テーブル（ＬＵＴ）を使用してビデオユニットの隣接ユニットの利用可能性の検出を加速させる。様々な例において、ビデオコーダは、異なる方法で異なるＬＵＴを使用して、ビデオユニットの隣接ユニットの利用可能性の検出を加速させる。例えば、ビデオコーダは、ビデオユニットの隣接ユニットの利用可能性を規定するＬＵＴへのインデックスとして、ビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を使用できる。言い換えると、ビデオコーダは、ビデオユニットの隣接ユニットの利用可能性に基づいて、ビデオユニットのサブユニットの隣接ユニットの利用可能性を判定できる。
【００４９】
こうして、ビデオコーダがビデオデータをコーディングするための方法を行い得る。この方法では、ビデオコーダが現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて参照テーブル内のエントリーを特定できる。この方法では、現在のビデオユニットがビデオデータのピクチャの範囲内にある。特定されたエントリーは、現在のビデオユニットに隣接するビデオユニットの利用可能性を示し得る。この方法はまた、現在のビデオユニットに隣接するビデオユニットが利用可能かどうかに基づいて現在のビデオユニットに対するコーディング動作(coding operation)を行うことを含み得る。コーディング動作は、ビデオ符号化動作(video encoding operation) またはビデオ復号動作(video decoding operation)であり得る。いくつかの事例では、現在のビデオユニットに対するコーディング動作を行うことが、現在のビデオユニットに隣接するビデオユニットに関連付けられるデータに基づいて、現在のビデオユニットに対するコーディング動作を行うことを備える。ビデオコーダはこの方法をビデオ符号化動作またはビデオ復号動作中に行って、イントラ予測を行い、マージ／スキップまたはＡＭＶＰモードで動き情報を取得し、エントロピーコーディングにおけるコンテキスト情報を取得し、または、ビデオ符号化動作もしくはビデオ復号動作の他の部分を行い得る。
【００５０】
他の例では、ビデオコーダがラスタースキャン順序またはｚスキャン順序に従ってツリーブロックの範囲内のビデオユニットのインデックスを決定する。ビデオコーダは次いで、ＬＵＴ内のエントリーを特定するためにこのインデックスを使用できる。ビデオコーダは、ビデオユニットの隣接ユニットの利用可能性を判定するために特定されたエントリーを使用できる。以下に詳述される図１６および図２３が隣接ユニットの利用可能性を判定するための例示的な動作をこれら例に従って示す。
【００５１】
図７は、ビデオシーケンスを符号化するビデオエンコーダ２０の構成の一例を示すブロック図である。図７は、説明の用途で提供されており、本開示において広く例示され説明される技法を限定するものと見なされるべきではない。説明のために、本開示は、ＨＥＶＣコーディングの脈絡でビデオエンコーダ２０を説明する。しかしながら、本開示の技法は他のコーディング規格または方法にも適用可能であり得る。
【００５２】
図７の例では、ビデオエンコーダ２０が複数の機能コンポーネントを含む。ビデオエンコーダ２０の機能コンポーネントは、モード選択モジュール１００と、動き推定モジュール１０２と、動き補償モジュール１０４と、イントラ予測モジュール１０６と、残差生成モジュール１１０と、変換モジュール１１２と、量子化モジュール１１４と、エントロピー符号化モジュール１１６と、逆量子化モジュール１１８と、逆変換モジュール１２０と、復元モジュール１２２と、復号ピクチャバッファ１２４とを含む。他の例では、ビデオエンコーダ２０が、より多数の、より少数の、または異なる機能コンポーネントを含んでよい。例えば、ビデオエンコーダ２０は、復元モジュール１２２の出力をフィルタリングし、復元されたビデオからブロッキネスアーティファクトを取り除くためのデブロッキングフィルタを含み得る。さらに、動き推定モジュール１０２と動き補償モジュール１０４は高度に統合され得るが、図７の例では説明のために別々に表されている。
【００５３】
ビデオエンコーダ２０はビデオデータを受信できる。様々な例において、ビデオエンコーダ２０は様々なソースからビデオデータを受信し得る。例えば、ビデオエンコーダ２０はビデオソース１８（図１）または別のソースからビデオデータを受信し得る。ビデオデータはピクチャのシーケンスを表し得る。ビデオデータを符号化するために、ビデオエンコーダ２０はピクチャの各シーケンスに対する符号化動作を行い得る。ピクチャのシーケンスに対する符号化動作を行うことの一部として、ビデオエンコーダ２０はピクチャのシーケンスの範囲内の各ピクチャに対する符号化動作を行い得る。ピクチャに対する符号化動作を行うことの一部として、ビデオエンコーダ２０はピクチャにおける各スライスに対する符号化動作を行い得る。スライスに対する符号化動作を行うことの一部として、ビデオエンコーダ２０はスライス内の各ツリーブロックに対する符号化動作を行い得る。
【００５４】
ツリーブロックに対する符号化動作を行うことの一部として、ビデオエンコーダ２０はツリーブロックを１つまたは複数のＣＵに区分できる。いくつかの例において、ＣＵのサイズは８×８ピクセルから最大で６４×６４ピクセル以上のツリーブロックのサイズにまで及び得る。本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」が、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、例えば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、但し、Ｎは非負の整数値を表す。変換係数ブロックの寸法を示すために、同様の表記が使用され得る。
【００５５】
ビデオエンコーダ２０は、ツリーブロックの各々の区分されていないＣＵに対する符号化動作を行い得る。ビデオエンコーダ２０が区分されていないＣＵに対する符号化動作を行うとき、ビデオエンコーダ２０は区分されていないＣＵの符号化されたバージョンを表すデータを生成する。
【００５６】
ＣＵのための符号化動作を行うことの一部として、動き推定モジュール１０２および動き補償モジュール１０４はＣＵに対するインター予測を行う。言い換えると、動き推定モジュール１０２および動き補償モジュール１０４は、ＣＵを含むピクチャ以外の参照ピクチャの復号されたピクセル値に基づいて、ＣＵの予測データを生成できる。インター予測は時間圧縮を実現し得る。
【００５７】
ＣＵに対するインター予測を行うために、ビデオエンコーダ２０はＣＵを１つまたは複数の予測ユニット（ＰＵ）に区分できる。ビデオエンコーダ２０およびビデオデコーダ３０は様々なＰＵサイズをサポートできる。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ビデオエンコーダ２０およびビデオデコーダ３０は２Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×Ｎ、またはＮ×２ＮというＰＵサイズをサポートできる。ビデオエンコーダ２０およびビデオデコーダ３０は、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮというＰＵサイズに対する非対称区分もサポートできる。いくつかの例において、ビデオエンコーダ２０はＣＵの辺と直角にならない境界に沿ってＣＵを複数のＰＵに区分できる。
【００５８】
動き推定モジュール１０２は、ＣＵの各ＰＵに関して動き推定動作を行い得る。動き推定モジュール１０２がＰＵに関して動き推定動作を行うと、動き推定モジュール１０２は、ＰＵの１つまたは複数の動きベクトルを生成する。例えば、スライスは、Ｉスライス、Ｐスライス、またはＢスライスであり得る。動き推定モジュール１０２および動き補償モジュール１０４は、ＣＵがＩスライス内にあるか、Ｐスライス内にあるか、またはＢスライス内にあるかに応じて、ＣＵのＰＵのための異なる動作を行い得る。Ｉスライス内では、全ＣＵがイントラ予測される。従って、ＣＵがＩスライス内にある場合、動き推定モジュール１０２および動き補償モジュール１０４がＣＵに対するインター予測を行わない。
【００５９】
ＣＵがＰスライス内にある場合、ＣＵを含むピクチャが「リスト０」と呼ばれる参照ピクチャのリストに関連付けられる。リスト０における参照ピクチャの各々は、復号の順序における後続ピクチャのインター予測に使用され得るピクセル値を含む。動き推定モジュール１０２がＰスライス内のＰＵに関して動き推定動作を行うとき、動き推定モジュール１０２がＰＵの参照サンプルを求めてリスト０における参照ピクチャを検索する。ＰＵの参照サンプルは、ＰＵのピクセル値に最も密接に対応するピクセル値のセットであり得る。動き推定モジュール１０２は、参照ピクチャにおけるピクセル値のセットがどの程度密接にＰＵのピクセル値に対応するかを判定するために様々なメトリック(metrics)を使用できる。例えば、動き推定モジュール１０２は、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分メトリックによって、参照ピクチャにおけるピクセル値のセットがどの程度密接にＰＵのピクセル値に対応するかを判定できる。
【００６０】
Ｐスライス内にあるＣＵのＰＵの参照サンプルを特定した後、動き推定モジュール１０２は、参照サンプルを含むリスト０における参照ピクチャを示す参照インデックスと、ＰＵおよび参照サンプルの間の空間変位を示す動きベクトルとを生成できる。様々な例において、動き推定モジュール１０２は動きベクトルを可変の精度で生成できる。例えば、動き推定モジュール１０２は、１／４ピクセル精度、１／８ピクセル精度、または他の分数ピクセル精度で、動きベクトルを生成できる。動き推定モジュール１０２は、参照インデックスと動きベクトルとを、エントロピー符号化モジュール１１６および動き補償モジュール１０４に出力できる。動き補償モジュール１０４は、ＰＵの参照サンプルを特定して取り出すために、ＣＵのＰＵの参照インデックスと動きベクトルとを使用できる。動き補償モジュール１０４は次いで、ＣＵの予測データを生成するためにＰＵの参照サンプルのピクセル値を使用できる。
【００６１】
ＣＵがＢスライス内にある場合、ＣＵを含むピクチャが「リスト０」および「リスト１」と呼ばれる２つの参照ピクチャのリストに関連付けられ得る。リスト０における参照ピクチャの各々は、復号の順序での後続ピクチャのインター予測に使用され得るピクセル値を含む。リスト１における参照ピクチャは復号の順序においてピクチャの前に現れるが、提示の順序においてピクチャの後に現れる。いくつかの例では、Ｂスライスを含むピクチャは、リスト０とリスト１の組合せであるリスト組合せに関連付けられ得る。
【００６２】
さらに、ＣＵがＢスライス内にある場合、動き推定モジュール１０２がＣＵのＰＵに対する単方向予測または双方向予測を行い得る。動き推定モジュール１０２がＰＵに対する単方向予測を行うとき、動き推定モジュール１０２がＰＵに対する参照サンプルを求めてリスト１の参照ピクチャを検索し得る。動き推定モジュール１０２は次いで、参照サンプルを含むリスト１における参照ピクチャを示す参照インデックスと、ＰＵと参照サンプルの間の空間変位を示す動きベクトルとを生成できる。動き推定モジュール１０２は、ＣＵのＰＵの参照インデックスと動きベクトルとを、エントロピー符号化モジュール１１６および動き補償モジュール１０４に出力できる。動き補償モジュール１０４は、ＰＵの参照サンプルを特定して取り出すためにＣＵのＰＵの参照インデックスと動きベクトルとを使用できる。動き補償モジュール１０４は次いで、ＣＵの予測データを生成するためにＰＵの参照サンプルのピクセル値を使用できる。
【００６３】
動き推定モジュール１０２がＰＵに対する双方向予測を行うとき、動き推定モジュール１０２がＰＵの参照サンプルを求めてリスト０における参照ピクチャを検索することができ、また、ＰＵの別の参照サンプルを求めてリスト１における参照ピクチャを検索できる。動き推定モジュール１０２は次いで、参照サンプルを示す参照インデックスと、参照サンプルとＰＵの間の空間変位を示す動きベクトルとを生成できる。動き推定モジュール１０２は、参照インデックスと動きベクトルとをエントロピー符号化モジュール１１６および動き補償モジュール１０４に出力できる。動き補償モジュール１０４は、ＰＵの参照サンプルを特定して取り出すために参照インデックスと動きベクトルとを使用できる。動き補償モジュール１０４は次いで、ＣＵのＰＵの参照サンプルにおけるピクセル値からＣＵの予測データのピクセル値を補間できる。
【００６４】
いくつかの例において、動き推定モジュール１０２は動き補償モジュール１０４またはビデオデコーダ３０がＣＵのＰＵの動きベクトルを予測し得るデータを生成し得る。このような例では、動き補償モジュール１０４またはビデオデコーダ３０がＣＵのＰＵの動きベクトルを予測するために隣接するＣＵからのデータと動きデータとを使用できる。しかしながら、隣接するＣＵが利用可能ではない場合、動き推定モジュール１０２がこのようなデータを生成するために隣接するＣＵの動きベクトルを使用できない。従って、動き推定モジュール１０２は隣接するＣＵの利用可能性を判定するために本開示の技法を使用できる。隣接するＣＵは様々な理由で利用不可能であり得る。例えば、ビデオエンコーダ２０がまだ隣接するＣＵを符号化していない場合、隣接するＣＵが存在しない場合、隣接するＣＵがＣＵと異なるスライス内にある場合、または、他の理由でビデオエンコーダ２０がＣＵのＰＵの動きベクトルを予測するために隣接するＣＵに関連付けられるデータを使用することができない場合に、隣接するＣＵが利用不可能であり得る。
【００６５】
ＣＵに対する符号化動作を行うことの一部として、イントラ予測モジュール１０６がＣＵに対するイントラ予測を行い得る。言い換えると、イントラ予測モジュール１０６は、ＣＵと同じスライス内の復号されたピクセル値に基づいて、ＣＵの予測データを生成できる。イントラ予測は空間圧縮を実現し得る。
【００６６】
ＣＵに対するイントラ予測を行うために、イントラ予測モジュール１０６は複数のイントラ予測モードを使用してＣＵの予測データの複数のセットを生成できる。イントラ予測モジュール１０６がＣＵの予測データのセットを生成するためにイントラ予測モードを使用するとき、イントラ予測モジュール１０６がイントラ予測モードに関連付けられた方向および／または勾配でＣＵにまたがって隣接するＣＵからピクセル値を広げることができる。隣接するＣＵは、ＣＵおよびツリーブロックに対して左から右、上から下（すなわち、ｚスキャン）の符号化順序を仮定すると、現在のＣＵの上、上と右、上と左、または左にあり得る。イントラ予測モジュール１０６は、ＣＵのサイズに応じて様々な数のイントラ予測モード、例えば、３３個の方向性イントラ予測モードを使用できる。
【００６７】
隣接するＣＵが利用不可能である場合、イントラ予測モジュール１０６がＣＵの予測データを生成するために隣接するＣＵのピクセル値を使用することが不可能であり得る。隣接するＣＵは様々な理由で利用不可能であり得る。例えば、ビデオエンコーダ２０がまだ隣接するＣＵを符号化していない場合、隣接するＣＵが存在しない場合、隣接するＣＵがＣＵと異なるスライス内にある場合、または、他の理由でイントラ予測モジュール１０６がＣＵの予測データを生成するために隣接するＣＵのピクセル値を使用することができない場合に、隣接するＣＵは利用不可能であり得る。従って、イントラ予測モジュール１０６は、隣接するＣＵが利用可能かどうかを判定する必要があり得る。いくつかの例において、イントラ予測モジュール１０６は隣接するＣＵの利用可能性を判定するために本開示の技法を使用できる。
【００６８】
いくつかの例では、隣接するＣＵが存在しないとイントラ予測モジュール１０６が判定する場合、イントラ予測モジュール１０６が、隣接するＣＵの実際のピクセル値の代わりに、デフォルトのピクセル値を使用してＣＵの予測データを生成できる。さらに、いくつかの例では、隣接するＣＵが存在しないとイントラ予測モジュール１０６が判定する場合、イントラ予測モジュール１０６が、隣接するＣＵの実際のピクセル値の代わりに、合成されたピクセル値を使用してＣＵの予測データを生成できる。イントラ予測モジュール１０６は、利用可能な隣接するＣＵのピクセル値に基づいて、合成されたピクセル値を生成できる。
【００６９】
イントラ予測モジュール１０６は、ＣＵの予測データのセットのうちの１つを選択できる。様々な例において、イントラ予測モジュール１０６はＣＵの予測データのセットを様々な方法で選択できる。例えば、イントラ予測モジュール１０６は、予測データのセットに対する歪み率を算出し、歪み率が最も低い予測データのセットを選択することによって、ＣＵの予測データのセットを選択できる。
【００７０】
モード選択モジュール１００は、ＣＵのために動き補償モジュール１０４によって生成された予測データ、またはＣＵのためにイントラ予測モジュール１０６によって生成された予測データのうちから、ＣＵの予測データを選択できる。いくつかの例では、モード選択モジュール１００が予測データのセットにおける誤差（すなわち、歪み）に基づいてＣＵの予測データを選択する。いくつかの例では、モード選択モジュール１００が、結果のコーディングされたデータでの歪みに対してコーディングビットの数をバランスさせるレート歪みメトリックに基づいて、ＣＵの予測データを選択する。
【００７１】
モード選択モジュール１００がＣＵの予測データを選択した後、残差生成モジュール１１０は、ＣＵの予測されたデータに基づいて、ＣＵの残差データを生成する残差生成動作(residual generation operation)を行い得る。ＣＵの残差データは、ＣＵのオリジナルピクセル値とＣＵの予測データとの間のピクセル値における差分を示し得る。いくつかの例において、残差生成動作を行うことは、ＣＵのピクセル値からＣＵの予測データを減算することを備え得る。ＣＵの残差データは、ＣＵ内のピクセルの様々なピクセル成分に対応する２Ｄ残差ブロックを含み得る。例えば、残差データは、ＣＵの予測データにおけるピクセルの輝度成分とＣＵのオリジナルピクセルのピクセルの輝度成分との間の差分に対応する残差ブロックを含み得る。加えて、ＣＵの残差データは、ＣＵの予測データにおけるピクセルのクロミナンス成分とＣＵのオリジナルピクセルのクロミナンス成分との間の差分に対応する残差ブロックを含み得る。
【００７２】
上述されたように、ＣＵは１つまたは複数のＴＵを有し得る。ＣＵの各ＴＵはＣＵの残差データの異なる部分に対応し得る。ＣＵのＴＵのサイズは、ＣＵのＰＵのサイズに基づいても、基づかなくてもよい。いくつかの例において、ビデオエンコーダ２０はＣＵをＴＵへと副分割するために再帰的な４分木区分を使用できる。得られるデータ構造は、「残差４分木」（ＲＱＴ）と呼ばれ得る。ＲＱＴ内の各ノードはＣＵのＴＵに対応し得る。本開示の技法に従って隣接ユニットの利用可能性を判定するとき、ビデオコーダがＲＱＴをツリーブロックのＣＵの４分木の拡張として使用できる。
【００７３】
変換モジュール１１２は、ＴＵに対応する残差データに変換を適用することによって、ＣＵの各々の区分されていないＴＵに対する変換係数ブロックを生成できる。例えば、変換モジュール１１２は、変換係数ブロックを生成するために残差データの特定の部分に対して変換を適用できる。変換係数ブロックの各々は、係数の２Ｄ行列であり得る。様々な例において、変換モジュール１１２は、ＴＵに対応する残差データに様々な変換を適用できる。例えば、変換モジュール１１２は、離散コサイン変換（ＤＣＴ）、方向変換、または概念的に同様の変換を適用できる。
【００７４】
変換モジュール１１２がＴＵに対する変換係数ブロックを生成した後、量子化モジュール１１４は変換係数ブロック内の係数を量子化できる。量子化は、一般に、変換係数ブロック内の係数が係数を表すために用いられるデータの量をできるだけ減らすために量子化されて、さらなる圧縮をもたらす処理を指す。量子化は、係数の一部または全部に関連付けられるビット深度(bit depth)を低減できる。例えば、量子化中にｎビット値がｍビット値へと切り捨てられてよく、但し、ｎはｍよりも大きい。
【００７５】
量子化モジュール１１４が変換係数ブロックを量子化した後、エントロピー符号化モジュール１１６は変換係数ブロックに対するエントロピー符号化動作(entropy encoding operation)を行い得る。様々な例において、ビデオエンコーダ２０は変換係数ブロックに対する様々なタイプのエントロピー符号化動作を行い得る。例えば、ビデオエンコーダ２０は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）動作、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）動作、シンタックスベースのコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）動作、Ｐｒｏｂａｂｉｌｉｔｙ  Ｉｎｔｅｒｖａｌ  Ｐａｒｔｉｔｉｏｎｉｎｇ  Ｅｎｔｒｏｐｙ（ＰＩＰＥ）コーディング動作、または別のタイプのエントロピー符号化動作を変換係数ブロックに対して行い得る。ビデオエンコーダ２０はまた、ビデオデータに関連付けられるシンタックス要素に対するエントロピー符号化動作を行い得る。
【００７６】
ＣＡＢＡＣを行うために、エントロピー符号化モジュール１１６は、送信されるべきシンボルにコンテキストモデルを割り当てることができる。コンテキストは、例えば、シンボルの隣接する値が０ではないかどうかに関係し得る。ＣＡＶＬＣを行うために、ビデオエンコーダ２０は、送信されるべきシンボルのための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、比較的長いコードが劣勢シンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビットの節約を達成し得る。確率の決定は、シンボルに割り当てられるコンテキストに基づき得る。
【００７７】
いくつかの例では、エントロピー符号化モジュール１１６が変換係数ブロックに対するエントロピー符号化動作を行う場合、エントロピー符号化モジュール１１６が、変換係数ブロックに関連付けられるＴＵに隣接するＴＵに関連付けられるデータに基づいて、変換係数ブロックを符号化するための１つまたは複数のコンテキストモデルを選択できる。しかしながら、エントロピー符号化モジュール１１６は、隣接するＴＵが利用不可能である場合、変換係数ブロックを符号化するためのコンテキストモデルを選択することが不可能であり得る。隣接するＴＵは様々な理由で利用不可能であり得る。例えば、エントロピー符号化モジュール１１６がまだ隣接するＴＵに対するエントロピー符号化動作を行っていない場合、または、他の理由でエントロピー符号化モジュール１１６が隣接するＴＵに対するエントロピー符号化動作を行うことによって生成されるデータを入手できない場合に、隣接するＴＵは利用不可能であり得る。従って、エントロピー符号化モジュール１１６は、隣接するＴＵが利用可能かどうかを判定できる。いくつかのそのような例では、エントロピー符号化モジュール１１６が、ＴＵに隣接するＴＵの利用可能性を判定するために、本開示の技法を使用できる。同様の考え方が、ＣＵの他のシンタックス要素に対するエントロピー符号化動作を行うときに当てはまり得る。
【００７８】
逆量子化モジュール１１８および逆変換モジュール１２０は、それぞれ、変換係数ブロックに逆量子化および逆変換を適用し、変換係数ブロックからコーディングユニットの残差データを復号できる。復元モジュール１２２は、動き補償モジュール１０４またはイントラ予測モジュール１０６によって生成された予測データに復元された残差データを加えて、復号ピクチャバッファ１２４へ記憶される復元されたビデオブロックを生成できる。言い換えると、復元モジュール１２２は、ビデオユニットの予測データおよびビデオユニットの残差データに基づいて、ビデオユニットのピクセル値を復元できる。動き推定モジュール１０２および動き補償モジュール１０４は、後続のピクチャのＣＵに対するインター予測を行うために、復元されたビデオブロックを含む参照ピクチャを使用し得る。ビデオデコーダ３０はピクチャを出力することができ、ピクチャは現在のビデオユニットのピクセル値を含む。
【００７９】
ビデオエンコーダ２０が変換係数ブロックに対するエントロピー符号化を行った後、ビデオエンコーダ２０は、ビデオデータのためのビットストリームに、エントロピー符号化された変換係数ブロックを表すデータを含め得る。ビットストリームは、コーディングされたピクチャおよび関連付けられるデータの表現を形成するビットのシーケンスであり得る。ビットストリームは一連のネットワーク抽象化レイヤ（ＮＡＬ）ユニットを備え得る。ＮＡＬユニットの各々は、ＮＡＬユニット内のデータのタイプの指示とデータを含むバイトとを含むシンタックス構造であり得る。例えば、ＮＡＬユニットは、ＰＰＳ、コーディングされたスライス、補助強化情報、アクセスユニット区切り文字、フィラーデータ、または別のタイプのデータを表すデータを含み得る。ＮＡＬユニットのデータは、エミュレーション防止ビットがちりばめられたロウバイトシーケンスペイロード（ＲＢＳＰ：raw byte sequence payload）の形式であり得る。ＲＢＳＰは、ＮＡＬユニットの範囲内にカプセル化された整数個のバイトを含む、シンタックス構造であり得る。
【００８０】
図８は、本開示の技法を実装するように構成されたビデオエンコーダ３０の例示的な構成を示すブロック図である。図８は、説明の用途で提供されており、本開示において広く例示され説明される技法に対する限定ではない。説明のために、本開示は、ＨＥＶＣコーディングの脈絡でビデオデコーダ３０を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法にも適用可能であり得る。
【００８１】
図８の例において、ビデオエンコーダ３０は複数の機能コンポーネントを含む。ビデオデコーダ３０の機能コンポーネントは、エントロピー復号モジュール１５０と、動き補償モジュール１５２と、イントラ予測モジュール１５４と、逆量子化モジュール１５６と、逆変換モジュール１５８と、復元モジュール１６０と、復号ピクチャバッファ１６２とを含む。いくつかの例では、ビデオデコーダ３０は、図７のビデオエンコーダ２０に関して説明された符号化経路とは全般に逆の復号経路を行い得る。他の例では、ビデオデコーダ３０が、より多数の、より少数の、または異なる機能コンポーネントを含み得る。例えば、ビデオデコーダ３０は、復元モジュール１６０の出力をフィルタリングし、復元されたビデオからブロッキネスアーティファクトを取り除くためのデブロッキングフィルタを含み得る。
【００８２】
ビデオデコーダ３０は、符号化されたビデオデータを備えるビットストリームを受信し得る。ビデオデコーダ３０がビットストリームを受信するとき、ビデオデコーダ３０がビットストリームに対する復号動作を行い、ビデオデータの各ピクチャにおけるピクセル値を復元する。ビットストリームに対する復号動作を行うことの一部として、ビデオデコーダ３０はビデオデータ内の各ピクチャの各ツリーブロックに対する復号動作を行い得る。ビデオデコーダ３０は、ピクチャの範囲内のツリーブロックに対する復号動作をラスタースキャン順序で行い得る。ツリーブロックに対する復号動作を行うことの一部として、ビデオデコーダ３０は、ツリーブロックの４分木の各レベルで、このレベルにおけるツリーブロックのＣＵに対する復号動作をｚスキャン順序で行い得る。
【００８３】
区分されていないＣＵに対する復号動作を行うことの一部として、ビデオデコーダ３０は、区分されていないＣＵの残差４分木の各レベルで、ＣＵの各ＴＵに対する復号動作をｚスキャン順序で行い得る。ＣＵの各ＴＵのための復号動作を行うことによって、ビデオデコーダ３０はＣＵの残差データを復元できる。
【００８４】
区分されていないＴＵのための復号動作を行うことの一部として、エントロピー復号モジュール１５０はＴＵに関連付けられる変換係数ブロックの符号化されたバージョンに対するエントロピー復号動作を行い得る。いくつかの例では、エントロピー復号モジュール１５０が変換係数ブロックを復号するためにＣＡＢＡＣを使用できる。そのような例では、エントロピー復号モジュール１５０が、隣接するＴＵに関連付けられる変換係数ブロックに対するエントロピー復号動作を行うことによって生成されたデータに基づいて、コンテキストモデルを選択できる。エントロピー復号モジュール１５０は、変換係数ブロックを復号するために、選択されたコンテキストモデルを使用できる。
【００８５】
しかしながら、エントロピー復号モジュール１５０は、隣接するＴＵが利用不可能である場合、隣接するＴＵに関連付けられる変換係数ブロックに対するエントロピー復号動作を行うことによって生成されたデータに基づいて、コンテキストモデルを選択することが不可能であり得る。隣接するＴＵは様々な理由で利用不可能であり得る。例えば、エントロピー復号モジュール１５０がまだ隣接するＴＵのためのエントロピー復号動作を行っていない場合、または、他の理由でエントロピー復号モジュール１５０が隣接するＴＵのためのエントロピー復号動作を行うことによって生成されるデータを使用できない場合に、隣接するＴＵは利用不可能であり得る。従って、エントロピー復号モジュール１５０は隣接するＴＵが利用可能かどうかを判定できる。このような例では、エントロピー復号モジュール１５０は、隣接するＴＵが利用可能かどうかを判定するために本開示の技法を使用できる。このようにして、ビデオコーダ（例えば、ビデオエンコーダ２０またはビデオデコーダ３０）は、所与のビデオユニットに隣接するビデオユニットに関連付けられるデータに基づいて、コンテキストモデルを選択し、選択されたコンテキストモデルに基づいて、所与のビデオユニットに関連付けられるデータに対するエントロピーコーディング動作を行い得る。
【００８６】
さらに、区分されていないＴＵに対する復号動作を行うことの一部として、逆量子化モジュール１５６はＴＵに関連付けられた変換係数ブロックを逆量子化、すなわち、量子化解除できる。逆量子化モジュール１５６は、ＨＥＶＣのために提案される、またはＨ．２６４復号規格によって定義される逆量子化処理と同様の方式で、変換係数ブロックを逆量子化できる。逆量子化モジュール１５６は、変換係数ブロックのＣＵのためにビデオエンコーダ２０によって計算される量子化パラメータＱＰを使用して量子化の程度を判定し、同様に、逆量子化モジュール１５６のために適用すべき逆量子化の程度を判定できる。
【００８７】
逆量子化モジュール１５６が変換係数ブロックを逆量子化した後、逆変換モジュール１５８は変換係数ブロックに関連付けられたＴＵの残差データを生成できる。逆変換モジュール１５８は、変換係数ブロックに逆変換を適用することによって少なくとも部分的にＴＵの残差データを生成できる。例えば、逆変換モジュール１５８は、逆ＤＣＴ、逆整数変換、逆カルーネンレーベ変換（ＫＬＴ）、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用できる。いくつかの例では、逆変換モジュール１５８が、ビデオエンコーダ２０からのシグナリングに基づいて、変換係数ブロックに適用するべき逆変換を判定できる。そのような例では、逆変換モジュール１５８が、変換係数ブロックに関連付けられたツリーブロックの４分木のルートノードにおいてシグナリングされた変換に基づいて、逆変換を判定できる。他の例では、逆変換モジュール１５８が、ブロックサイズ、コーディングモードなどのような、１つまたは複数のコーディング特性から逆変換を推測できる。いくつかの例では、逆変換モジュール１５８が直列の逆変換を適用できる。
【００８８】
動き補償モジュール１５２は、ＣＵの予測データを生成するために動き補償を行い得る。動き補償を行うために、動き補償モジュール１５２は、ＣＵに隣接するＣＵのＰＵの動き情報に基づいて、ＣＵのＰＵの動き情報を予測できる。いくつかの例では、動き補償モジュール１５２がマージ／スキップモードまたはＡＭＶＰモードを使用してＰＵの動き情報を予測できる。動き補償モジュール１５２は、ＰＵの参照サンプルを特定するためにＣＵのＰＵの動き情報を使用できる。動き補償モジュール１５２は次いで、ＣＵの予測データを生成するためにＰＵのための参照サンプルを使用できる。
【００８９】
しかしながら、隣接するＣＵが利用不可能である場合、動き補償モジュール１５２が、隣接するＣＵのＰＵの動き情報に基づいて、ＣＵのＰＵの動き情報を予測することが不可能であり得る。隣接するＣＵは様々な理由で利用不可能であり得る。例えば、ビデオデコーダ３０がまだ隣接するＣＵを符号化していない場合、隣接するＣＵが存在しない場合、隣接するＣＵがＣＵと異なるスライス内にある場合、または、他の理由で動き補償モジュール１５２がＣＵのＰＵの動き情報を予測するために隣接するＣＵに関連付けられるデータを使用することができない場合に、隣接するＣＵは利用不可能であり得る。従って、動き補償モジュール１５２は、隣接するＣＵが利用可能かどうかを判定できる。動き補償モジュール１５２は、隣接するＣＵが利用可能かどうかを判定するために本開示の技法を使用できる。
【００９０】
いくつかの例では、動き補償モジュール１５２が、補間フィルタに基づく補間を行うことによって、ＣＵの予測データを精緻化できる。サブピクセル精度をもつ動き補償に使用されるべき補間フィルタの識別子はシンタックス要素内に含まれ得る。動き補償モジュール１５２は、参照ブロックのサブ整数ピクセルに対する補間された値を計算するために、ＣＵの予測データの生成中にビデオエンコーダ２０によって使用される同じ補間フィルタを使用できる。動き補償モジュール１５２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判定し、予測データを生成するためにその補間フィルタを使用し得る。
【００９１】
イントラ予測モジュール１５４は、ＣＵの予測データを生成するためにイントラ予測を行い得る。例えば、イントラ予測モジュール１５４は、ビットストリーム内のシンタックス要素に基づいて、ＣＵのためのイントラ予測モードを決定できる。イントラ予測モジュール１５４は次いで、隣接するＣＵのピクセル値に基づいてＣＵの予測データ（例えば、予測されるピクセル値）を生成するためにイントラ予測モードを使用できる。
【００９２】
しかしながら、隣接するＣＵが利用不可能である場合、イントラ予測モジュール１５４が隣接するＣＵのピクセル値を使用することが不可能であり得る。隣接するＣＵは様々な理由で利用不可能であり得る。例えば、ビデオデコーダ３０がまだ隣接するＣＵを復号していない場合、隣接するＣＵが存在しない場合、隣接するＣＵがＣＵと異なるスライス内にある場合、または、他の理由でイントラ予測モジュール１５４がＣＵの予測データを生成するために隣接するＣＵのピクセル値を使用することができない場合に、隣接するＣＵは利用不可能であり得る。従って、イントラ予測モジュール１５４は、隣接するＣＵが利用可能かどうかを判定できる。イントラ予測モジュール１５４は、隣接するＣＵが利用可能かどうかを判定するために本開示の技法を使用できる。ＣＵのイントラ予測モードが利用不可能な隣接するＣＵのピクセル値の使用を伴う場合、イントラ予測モジュール１５４は、利用不可能な隣接するＣＵのピクセル値を使用する代わりに、デフォルトのまたは合成されたピクセル値を使用してＣＵの予測データを生成できる。
【００９３】
動き補償モジュール１５２およびイントラ予測モジュール１５４は、ＨＥＶＣの例において、（例えば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化されたビデオシーケンスの（１つまたは複数の）ピクチャを符号化するために使用されるツリーブロックのサイズと、符号化されたビデオシーケンスのピクチャの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報と、各ＣＵがどのように符号化されるかを示すモード（例えば、イントラ予測またはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各々のインター予測されたＣＵに対する１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含む参照ピクチャリスト）と、符号化されたビデオシーケンスを復号するための他の情報とを決定し得る。
【００９４】
復元モジュール１６０は、ＣＵのピクセル値を復元するためにＣＵの残差データとＣＵの予測データとを使用できる。いくつかの例において、ビデオデコーダ３０は、スライスまたはピクチャの復元ピクセル値フィルタからブロッキネスアーティファクトを取り除くためにデブロッキングフィルタを適用できる。復号ピクチャバッファ１６２は、ビデオデータのピクチャに対する復号されたピクセル値を記憶できる。復号ピクチャバッファ１６２は、後に続く動き補償、イントラ予測、および図１のディスプレイデバイス３２などのディスプレイデバイス上での提示のために、参照ピクチャを与えることができる。
【００９５】
図９は、現在のビデオユニットの隣接ユニットの利用可能性を判定するための例示的な再帰的動作２００を示すフローチャートである。本開示の他の箇所で説明されるように、ビデオエンコーダ２０およびビデオデコーダ３０のようなビデオコーダは、様々な理由で、隣接するビデオユニットが利用可能であるかどうかを判定できる。ビデオコーダはそのような理由のいずれかのために動作２００を行い得る。例えば、ビデオコーダがビデオエンコーダである場合、ＣＵのＰＵの動き情報を決定する際にビデオコーダが動作２００を行い得る。この例では、ビデオコーダが隣接するＣＵの利用可能性を判定し、利用可能な隣接するＣＵの１つのＰＵの動き情報に基づいてＰＵの動き情報をシグナリングできる。別の例では、ビデオコーダがビデオデコーダである場合、ＣＵのためのイントラ予測動作(intra prediction operation)を行う際にビデオコーダが動作２００を行い得る。この例では、ビデオコーダが隣接するＣＵの利用可能性を判定し、ＣＵのイントラ予測モードが利用不可能なＣＵのピクセル値の使用を伴う場合にデフォルトのまたは合成されたピクセル値を使用できる。
【００９６】
ビデオコーダ（ビデオエンコーダ２０またはビデオデコーダ３０のような）が現在のビデオユニットの隣接するビデオユニットの利用可能性を判定するとき、ビデオコーダは、現在のビデオユニットがツリーブロックかどうかを判定する（２０２）。現在のビデオユニットがツリーブロックである場合（２０２の「はい」）、ビデオコーダは、現在のビデオユニットの水平インデックスおよび垂直インデックスと、現在のビデオユニットを含むスライスについての情報とに基づいて、隣接するビデオユニットの利用可能性を判定できる（２０４）。例えば、現在のビデオユニットがツリーブロックであると判定した後、ビデオコーダは、ピクチャの範囲内の現在のビデオユニットの位置に基づいて、現在のビデオユニットの隣接ユニットの利用可能性を判定できる。
【００９７】
例えば、現在のビデオユニットがツリーブロックである場合、現在のビデオユニットが１である水平インデックスと１である垂直インデックスとを有してよく、すなわち、現在のビデオユニットは座標（１，１）にある。この例では、ツリーブロックがラスタースキャン順序に従ってコーディングされ得る。よって、現在のビデオユニットの左上のツリーブロック（すなわち、左上の隣接ユニット）、現在のビデオユニットの上のツリーブロック（すなわち、上の隣接ユニット）、現在のビデオユニットの右上のツリーブロック（すなわち、右上の隣接ユニット）、現在のビデオユニットの左のツリーブロック（すなわち、左の隣接ユニット）がツリーブロックと同じスライス内にある場合に、左上の隣接ユニット、上の隣接ユニット、右上の隣接ユニット、および左の隣接ユニットは利用可能である。しかしながら、現在のビデオユニットの一番左下のツリーブロック（すなわち、左下の隣接ユニット）は利用可能ではない。この例では、ビデオコーダがラスタースキャン順序に従ってツリーブロックをコーディングし、現在のビデオユニットがラスタースキャン順序で左下の隣接ユニットより前に現れるので、左下の隣接ユニットは利用可能ではない。
【００９８】
現在のビデオユニットがツリーブロックではない場合（２０２の「いいえ」）、現在のビデオユニットがツリーブロックのサブユニットである。従って、現在のビデオユニットの隣接ユニットが利用可能かどうかを判定するために、ビデオコーダは現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を判定できる（２０６）。現在のビデオユニットの親ビデオユニットは、現在のビデオユニットに対応する４分木ノードのすぐ上の４分木ノードに対応し得る。図５は、連続するサブＣＵレベルを伴う例示的な４分木区分の階層を示す。
【００９９】
親ビデオユニットの隣接ユニットの利用可能性を判定するために、ビデオコーダは動作２００を再帰的に呼び出すことができる。すなわち、ビデオコーダは、現在のビデオユニットの上位ビデオユニット(ancestor video units)の隣接ユニットの利用可能性を判定するための動作を再帰的に行うことによって少なくとも部分的に親ビデオユニットの隣接ユニットの利用可能性を判定できる。上位ビデオユニットは、４分木データ構造において現在のビデオユニットの上のビデオユニットであり得る。ビデオコーダが動作２００を再帰的に呼び出すとき、現在のノードの親ビデオユニットは「現在の」ノードである。従って、親ビデオユニットがツリーブロックである場合、ビデオコーダが、上述されたように、親ビデオユニットの水平インデックスおよび垂直インデックスに基づいて、親ビデオユニットの隣接ユニットの利用可能性を判定できる。一方、親ビデオユニットがツリーブロックではない場合、ビデオコーダが、親ビデオユニットの親ビデオユニット（すなわち、祖父母ビデオユニット）の隣接ユニットの利用可能性を判定できる。
【０１００】
祖父母ビデオユニット(grandparent video unit)がツリーブロックである場合、ビデオコーダは、上述されたように、祖父母ビデオユニットの水平インデックスおよび垂直インデックスを使用して祖父母ビデオユニットの隣接ユニットの利用可能性を判定できる。祖父母ビデオユニットがツリーブロックではない場合、ビデオコーダが、祖父母ビデオユニットの親ビデオユニット（すなわち、曾祖父母ビデオユニット(great-grandparent video unit)）の利用可能性を判定できる。現在のビデオユニットの上位ビデオユニットを通じて上方に進行するこの処理は、ツリーブロック（すなわち、原型のツリーブロック）に達し、ビデオコーダが原型のツリーブロックの隣接ユニットの利用可能性を判定することが可能になるまで続き得る。ビデオコーダが現在のビデオユニットの原型のツリーブロックの利用可能性を判定すると、ビデオコーダが現在のビデオユニットの上位ビデオユニットを通じて下方に動作できる。各世代におけるビデオユニットに対し、ビデオコーダはビデオユニットの親ビデオユニットの利用可能性を使用してＬＵＴ内のエントリーを特定する。ＬＵＴは、親ビデオユニットの隣接ユニットの利用可能性の複数の組合せのエントリーを含み得る。特定されたエントリーはビデオユニットの隣接ユニットの利用可能性を示す。
【０１０１】
ビデオコーダが現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を判定した後、ビデオコーダが現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を使用してＬＵＴ内のエントリーを特定する（２０８）。特定されたエントリーは一連の値を含んでよく、それらの値の各々は現在のビデオユニットの異なる隣接ユニットの利用可能性を示す。ビデオコーダは次いで、特定されたエントリーに基づいて、現在のビデオユニットの隣接ユニットの利用可能性を特定できる（２１０）。現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性を使用して特定されたエントリーは、現在のビデオユニットの隣接ユニットの利用可能性を示す。
【０１０２】
以下は、例示的なＬＵＴである。
【表１】
0006022586.tif 000002
【０１０３】
表１の例示的なＬＵＴは、５個の列と３２個の行とを含む。第１の列は、現在のビデオユニットの親ビデオユニットの隣接ユニットのあり得る利用可能性を規定する。第２の列は、現在のビデオユニットが親ビデオユニットの一番左上のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。第３の列は、現在のビデオユニットが親ビデオユニットの一番右上のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。第４の列は、現在のビデオユニットが親ビデオユニットの一番左下のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。第５の列は、現在のビデオユニットが親ビデオユニットの一番右下のサブユニットである場合の、現在のビデオユニットの隣接ユニットの利用可能性を規定する。従って、ＬＵＴは、現在のビデオユニットの親ビデオユニットの他の子ビデオユニットに対するエントリーを含んでよく、他の子ビデオユニットに対するエントリーは、他の子ビデオユニットの隣接ユニットの利用可能性を示す。
【０１０４】
表１の例示的なＬＵＴでは、ビデオユニットの隣接ユニットの利用可能性は、５ビットのバイナリ数として表される。バイナリ数の各ビットは、異なる隣接ユニットの利用可能性に対応する。例えば、第１の（すなわち、右端の）ビットは左下の隣接ユニットに対応してよく、第２のビットは左の隣接ユニットに対応してよく、第３のビットは左上の隣接ユニットに対応してよく、第４のビットは上の隣接ユニットに対応してよく、第５の（すなわち、左端の）ビットは右上の隣接ユニットに対応してよい。ビットが０である場合、対応する隣接ユニットは利用可能ではない。ビットが１である場合、対応する隣接ユニットは利用可能である。
【０１０５】
表１の例示的なＬＵＴを使用して現在のビデオユニットの隣接ユニットの利用可能性を判定するために、ビデオコーダは第１に、現在のビデオユニットの親ビデオユニットの隣接ユニットの利用可能性に対応する第１の列（すなわち、親の隣接ユニット）に値を有するＬＵＴ内の行を特定できる。第２に、ビデオコーダは、現在のビデオユニットが、親ビデオユニットの一番左上、一番右上、一番左下、または一番右下のサブユニットであるかどうかに基づいて、ＬＵＴ内の列を特定する。ビデオコーダは次いで、現在のビデオユニットの隣接ユニットの利用可能性を判定するためにＬＵＴの特定された行および列における値を使用する。
【０１０６】
このようにして、ビデオユニットの隣接ユニットの利用可能性を与えられると、ビデオコーダはビデオユニットのサブユニットを直ちに決定できる。結果として、ツリーブロックの水平インデックスおよび垂直インデックスと、ツリーブロックのスライス情報とによって導出され得る、ツリーブロックの隣接ユニットの利用可能性に基づいて、ツリーブロックの４分木の範囲内の任意の深度における任意のビデオユニットの隣接ユニットの利用可能性が再帰的に判定され得る。すなわち、４分木の範囲内の任意の個々のビデオユニットに対して、ビデオユニットの隣接ユニットの利用可能性は、ルートから再帰的に取得され得る。従って、ビデオユニットの隣接ユニットの利用可能性の検出は、４分木の深度におけるビデオユニットの位置、およびビデオユニットの親ビデオユニットの隣接ユニットの利用可能性という、２つの要因のみを必要とし得る。また、すべての５個の隣接するビデオユニットの利用可能性は、１つの単一のＬＵＴ動作によって一緒に判定され得る。これは、非常に効率的であり得る。
【０１０７】
ステップ２０４または２１０において、現在のビデオユニットの隣接ユニットの利用可能性を特定した後、ビデオコーダは現在のビデオユニットの隣接ユニットの利用可能性を動作２００の呼び出し側に返す（２１２）。例えば、現在のビデオユニットが区分される場合、動作２００の呼び出し側は動作２００のもう一方のインスタンスであり得る。この例では、ビデオコーダが現在のビデオユニットの隣接ユニットの利用可能性を動作２００のもう一方のインスタンスに返すことができる。別の例では、現在のビデオユニットが区分されていないビデオユニットである場合、動作２００の呼び出し側はイントラ予測処理であり得る。この例では、ビデオコーダが現在のビデオユニットの隣接ユニットの利用可能性をイントラ予測処理に返すことができる。
【０１０８】
以下の擬似Ｃコードは、現在のビデオユニットと現在のビデオユニットの範囲内の各サブユニットとに隣接するビデオユニットの利用可能性を出力するための例示的な再帰関数を示す。
【数１】
0006022586.tif 000003
【０１０９】
上の擬似コードでは、関数「ＨＥＶＣ＿ＮｅｉｇｈｂｏｒＡｖａｉｌ」が、現在のビデオユニットに隣接するビデオユニットの利用可能性を示すパラメータ「ｎＡｖａｉｌ」を受け取る。関数「ＨＥＶＣ＿ＮｅｉｇｈｂｏｒＡｖａｉｌ」は次いで、現在のビデオユニットがサブユニットに分割されるかどうかを判定する。分割される場合、関数「ＨＥＶＣ＿ＮｅｉｇｈｂｏｒＡｖａｉｌ」は、現在のビデオユニットに隣接するビデオユニットの利用可能性を使用して現在のビデオユニットの各サブユニットに隣接するビデオユニットの利用可能性をＬＵＴにおいて探す。関数「ＨＥＶＣ＿ＮｅｉｇｈｂｏｒＡｖａｉｌ」は、現在のビデオユニットのサブユニットに隣接するビデオユニットの利用可能性を示すパラメータを使用して自身を再帰的に呼び出すことができる。現在のビデオユニットがサブユニットに分割されない場合、関数「ＨＥＶＣ＿ＮｅｉｇｈｂｏｒＡｖａｉｌ」が現在のビデオユニットに隣接するビデオユニットの利用可能性を出力できる。このようにして、関数「ＨＥＶＣ＿ＮｅｉｇｈｂｏｒＡｖａｉｌ」は、現在のビデオユニットと現在のビデオユニットの範囲内の各サブユニットとに隣接するビデオユニットの利用可能性を出力できる。
【０１１０】
動作２００は再帰的動作(recursive operation)として提示されるが、ビデオコーダは、現在のビデオユニットの隣接ユニットの利用可能性を判定するために、ＬＵＴと現在のビデオユニットの親の利用可能性とを使用する非再帰的動作(non-recursive operation)を行い得る。言い換えると、ビデオコーダは、現在のビデオユニットの上位ビデオユニットの隣接ユニットの利用可能性を判定するための非再帰的動作を行うことによって少なくとも部分的に親ビデオユニットの隣接ユニットの利用可能性を判定できる。非再帰的動作は、上述された再帰的動作と同様の効率性を有し得る。以下は、現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、ＬＵＴ内のエントリーを特定する非再帰的動作を実施する例示的なコードであり、特定されたエントリーは現在のビデオユニットの隣接ユニットの利用可能性を示す。
【数２−１】
0006022586.tif 000004
【数２−２】
0006022586.tif 000005
【数２−３】
0006022586.tif 000006
【０１１１】
上で与えられたコードにおいて、ＬＵＴ「ａｎＮｅｉｇｈｂｏｒＡｖａｉｌａｂｉｌｉｔｙＬｕｔ」が初期化される。関数「ｍａｉｎ（）」は、関数「ＨＥＶＣ＿ＰｒｏｃｅｓｓＱｕａｄＴｒｅｅ（）」を呼び出す。上のコードは、現在のＬＣＵの利用可能性が５（すなわち、００１０１）であると仮定する。他の例では、現在のＬＣＵの利用可能性のために複数の値が使用され得る。
【０１１２】
関数「ＨＥＶＣ＿ＰｒｏｃｅｓｓＱｕａｄＴｒｅｅ（）」は、現在のＬＣＵの範囲内の各ＣＵの利用可能性をプリントする。関数「ＨＥＶＣ＿ＰｒｏｃｅｓｓＱｕａｄＴｒｅｅ（）」は、「ｆｏｒ」ループを含む。「ｆｏｒ」ループは、現在のＬＣＵにおいて各ビデオユニットに隣接するビデオユニットの利用可能性を判定する。「ｆｏｒ」ループは、深度を最も優先する検索パターンに従って利用可能性を判定する。
【０１１３】
「ｆｏｒ」ループの各繰り返し中、ビデオコーダは第１の「ｗｈｉｌｅ」ループを行い得る。第１の「ｗｈｉｌｅ」ループは、現在のＬＣＵの４分木の最大深度の１つ上のレベルである現在のビデオユニットに分析を移すために、現在の深度を上げる。第１の「ｗｈｉｌｅ」ループが４分木の下方へと分析を移動すると、第１の「ｗｈｉｌｅ」ループはＬＵＴを使用して、一番左上のサブユニットに隣接するビデオユニットの利用可能性を判定する。「ｆｏｒ」ループは次いで、ＬＵＴを使用して現在のビデオユニットの各サブユニットについて繰り返し、現在のビデオユニットのサブユニットに隣接するビデオユニットの利用可能性を判定する。
【０１１４】
現在のビデオユニットのサブユニットの各々に隣接するビデオユニットの利用可能性を判定した後、「ｆｏｒ」ループ内の第２の「ｗｈｉｌｅ」ループは、その深度においてまだ分析されていないＣＵが存在する深度に達するまで、現在の深度を下げる。「ｆｏｒ」ループは次いで、現在のレベルにおいて次のビデオユニットに隣接するビデオユニットの利用可能性を判定する。「ｆｏｒ」ループは次いで、次のビデオユニットに関してこの動作を繰り返して、次のビデオユニットのサブユニットに隣接するビデオユニットの利用可能性を判定できる。「ｆｏｒ」ループは、現在のＬＣＵにおいて各ビデオユニットに隣接するビデオユニットの利用可能性が判定されるまで、この方式で続き得る。上で与えられたコードは、特定のビデオユニットに隣接するビデオユニットの利用可能性のみを特定するように修正され得る。
【０１１５】
図１０は、所与のビデオユニット２５０と隣接するビデオユニットとの関係を示す概念図である。図１１は、ビデオユニット２５０の隣接するビデオユニットに対する、ビデオユニット２５０の４個のサブユニット２５２Ａ、２５２Ｂ、２５２Ｃ、および２５２Ｄ（まとめて、「サブユニット２５２」）の関係を示す。
【０１１６】
サブユニット２５２の隣接ユニットの利用可能性は、次のように要約され得る。サブユニット２５２Ａの隣接ユニットの利用可能性は、次のようにビデオユニット２５０の利用可能性と関連し得る。
【数３】
0006022586.tif 000007
【０１１７】
上の表記において、「ＢｅｌｏｗＬｅｆｔ（ＳｕｂＵ０）」は、サブユニット２５２Ａの左下の隣接ユニットの利用可能性を示す。「Ｌｅｆｔ（Ｕ）」は、ビデオユニット２５０の左の隣接ユニットの利用可能性を示す。「Ｌｅｆｔ（ＳｕｂＵ０）」は、サブユニット２５２Ａの左の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＬｅｆｔ（ＳｕｂＵ０）」は、サブユニット２５２Ａの左上の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＬｅｆｔ（Ｕ）」は、ビデオユニット２５０の左上の隣接ユニットの利用可能性を示す。「Ａｂｏｖｅ（ＳｕｂＵ０）」は、サブユニット２５２Ａの上の隣接ユニットの利用可能性を示す。「Ａｂｏｖｅ（Ｕ）」は、ビデオユニット２５０の上の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＲｉｇｈｔ（ＳｕｂＵ０）」は、サブユニット２５２Ａの右上の隣接ユニットの利用可能性を示す。図１２は、サブユニット２５２Ａの隣接ユニットを示す概念図である。
【０１１８】
２５２Ｂの隣接ユニットの利用可能性は、次のようにビデオユニット２５０の利用可能性と関連し得る。
【数４】
0006022586.tif 000008
【０１１９】
「ＦＡＬＳＥ」は、隣接するビデオユニットが利用可能ではないことを示す。「ＴＲＵＥ」は、隣接するビデオユニットが利用可能であることを示す。上の表記において、「ＢｅｌｏｗＬｅｆｔ（ＳｕｂＵ１）」は、サブユニット２５２Ｂの左下の隣接ユニットの利用可能性を示す。「Ｌｅｆｔ（ＳｕｂＵ１）」は、サブユニット２５２Ｂの左の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＬｅｆｔ（ＳｕｂＵ１）」は、サブユニット２５２Ｂの左上の隣接ユニットの利用可能性を示す。「Ａｂｏｖｅ（ＳｕｂＵ１）」は、サブユニット２５２Ｂの上の隣接ユニットの利用可能性を示す。「Ａｂｏｖｅ（Ｕ）」は、ビデオユニット２５０の上の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＲｉｇｈｔ（ＳｕｂＵ１）」は、サブユニット２５２Ｂの右上の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＲｉｇｈｔ（Ｕ）」は、ビデオユニット２５０の右上の隣接ユニットの利用可能性を示す。図１３は、サブユニット２５２Ｂの隣接ユニットを示す概念図である。
【０１２０】
サブユニット２５２Ｃの隣接ユニットの利用可能性は、次のようにビデオユニット２５０の利用可能性と関連し得る。
【数５】
0006022586.tif 000009
【０１２１】
上の表記において、「ＢｅｌｏｗＬｅｆｔ（ＳｕｂＵ２）」は、サブユニット２５２Ｃの左下の隣接ユニットの利用可能性を示す。「ＢｅｌｏｗＬｅｆｔ（Ｕ）」は、ビデオユニット２５０の左下の隣接ユニットの利用可能性を示す。「Ｌｅｆｔ（ＳｕｂＵ２）」は、サブユニット２５２Ｃの左の隣接ユニットの利用可能性を示す。「Ｌｅｆｔ（Ｕ）」は、ビデオユニット２５０の左の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＬｅｆｔ（ＳｕｂＵ２）」は、サブユニット２５２Ｃの左上の隣接ユニットの利用可能性を示す。「Ａｂｏｖｅ（ＳｕｂＵ２）」は、サブユニット２５２Ｃの上の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＲｉｇｈｔ（ＳｕｂＵ２）」は、サブユニット２５２Ｃの右上の隣接ユニットの利用可能性を示す。図１４は、サブユニット２５２Ｃの隣接ユニットを示す概念図である。
【０１２２】
サブユニット２５２Ｄの隣接ユニットの利用可能性は、次のようにビデオユニット２５０の利用可能性と関連し得る。
【数６】
0006022586.tif 000010
【０１２３】
「ＢｅｌｏｗＬｅｆｔ（ＳｕｂＵ３）」は、サブユニット２５２Ｄの左下の隣接ユニットの利用可能性を示す。「Ｌｅｆｔ（ＳｕｂＵ３）」は、サブユニット２５２Ｄの左の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＬｅｆｔ（ＳｕｂＵ３）」は、サブユニット２５２Ｄの左上の隣接ユニットの利用可能性を示す。「Ａｂｏｖｅ（ＳｕｂＵ３）」は、サブユニット２５２Ｄの上の隣接ユニットの利用可能性を示す。「ＡｂｏｖｅＲｉｇｈｔ（ＳｕｂＵ３）」は、サブユニット２５２Ｄの右上の隣接ユニットの利用可能性を示す。図１５は、サブユニット２５２Ｄの隣接ユニットを示す概念図である。
【０１２４】
図１６は、現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作３００を示すフローチャートである。現在のビデオユニットは、コーディングユニットまたは変換ユニットであり得る。次の説明は、ビデオコーダが動作３００を行うことを説明する。上述されたように、ビデオエンコーダは、ビデオエンコーダ２０のようなビデオエンコーダ、または、ビデオデコーダ３０のようなビデオデコーダであり得る。
【０１２５】
動作３００が開始した後、ビデオコーダは現在のＬＣＵを１つまたは複数の基本ビデオユニットに区分できる（３０２）。現在のＬＣＵは、現在のビデオユニットを含むＬＣＵである。現在のＬＣＵの基本ビデオユニットは等しいサイズにある。基本ビデオユニットは、最小の許容可能なコーディングユニットまたは変換ユニットのサイズを有する。例えば、現在のＬＣＵが８×８であり、最小の許容されるコーディングユニットのサイズが４×４である場合、ビデオコーダは、現在のＬＣＵを４つの４×４の基本ビデオユニットに区分できる。
【０１２６】
次に、ビデオコーダは、現在のビデオユニットのターゲットビデオユニットを特定する（３０４）。ビデオコーダは、現在のビデオユニットのどの隣接ユニットが注目する隣接ユニット(neighbor of interest)であるかに基づいてターゲットビデオユニットを特定できる。ビデオコーダが、注目する隣接ユニットの利用可能性を判定することを試みている。ビデオコーダが現在のビデオユニットの上の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの第１の（すなわち、左上の）基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの左の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの第１の基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの左上の隣接ユニットの利用可能性を判定している場合、ビデオコーダが第１の基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの右上の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの一番右上の基本ビデオユニットをターゲットビデオユニットとして特定する。ビデオコーダが現在のビデオユニットの左下の隣接ユニットの利用可能性を判定している場合、ビデオコーダが現在のビデオユニットの一番左下の基本ビデオユニットをターゲットビデオユニットとして特定する。
【０１２７】
図１７は、６４個の基本ビデオユニットへ区分されたＬＣＵ３４０の概念図である。図１７の例では、ＬＣＵ３４０が３２×３２であってよく、基本ビデオユニットが４×４であってよい。ＬＣＵ３４０の一番左上の角にある影付きの基本ビデオユニットが現在のビデオユニットにおける基本ビデオユニットを示す。図１７の例では、現在のビデオユニットが１６×１６のＣＵまたはＴＵであり得る。注目する隣接ユニットが現在のビデオユニットの上、左上、または左の隣接ユニットである場合、ターゲットビデオユニットは「１」と名付けられた基本ビデオユニットである。注目する隣接ユニットが現在のビデオユニットの右上の隣接ユニットである場合、ターゲットビデオユニットは「２」と名付けられた基本ビデオユニットである。注目する隣接ユニットが現在のビデオユニットの左下の隣接ユニットである場合、ターゲットビデオユニットは「３」と名付けられた基本ビデオユニットである。
【０１２８】
続いて、ここで図１６の例が参照される。ターゲットビデオユニットを特定した後、ビデオコーダはターゲットビデオユニットのインデックスを決定できる（３０６）。いくつかの例では、ビデオコーダがＬＣＵの基本ビデオユニットの順番をラスタースキャン順序に従って決定できる。ビデオコーダは次いで、ラスタースキャン順序に従った基本ビデオユニットの順序付けに基づいて、ターゲットビデオユニットのインデックスを決定できる。ターゲットビデオユニットがターゲットビデオユニットの第１の基本ビデオユニットである場合、ビデオコーダが現在のＬＣＵの範囲内の現在のビデオユニットの位置に基づいてターゲットビデオユニットのラスタースキャンインデックスを決定できる。例えば、いくつかの状況では、ビデオコーダが現在のビデオユニットのラスタースキャンインデックスに４を乗算することによってターゲットビデオユニットのラスタースキャンインデックスを決定できる。ターゲットビデオユニットが現在のビデオユニットの一番右上の基本ビデオユニットである場合、ビデオコーダが次のようにターゲットビデオユニットのラスタースキャンインデックスを決定できる。
【数７】
0006022586.tif 000011
【０１２９】
注目する隣接ユニットが現在のビデオユニットの左下の隣接ユニットである場合（３０８の「はい」）、ビデオコーダがターゲットビデオユニットのインデックスに基づいて左下の隣接ユニットに対するＬＵＴ内のエントリーを特定できる（３１０）。図１８は、左下の隣接ユニットのための例示的なＬＵＴを示す概念図である。注目する隣接ユニットが現在のビデオユニットの左下の隣接ユニットでなく（３０８の「いいえ」）、注目する隣接ユニットが現在のビデオユニットの左の隣接ユニットである（３１２の「はい」）場合、ビデオコーダがターゲットビデオユニットのインデックスに基づいて左の隣接ユニットに対するＬＵＴ内のエントリーを特定できる（３１４）。図１９は、左の隣接ユニットのための例示的なＬＵＴを示す概念図である。注目する隣接ユニットが現在のビデオユニットの左の隣接ユニットでなく（３１２の「いいえ」）、注目する隣接ユニットが現在のビデオユニットの左上の隣接ユニットである（３１６の「はい」）場合、ビデオコーダがターゲットビデオユニットのインデックスに基づいて左上の隣接ユニットに対するＬＵＴ内のエントリーを特定できる（３１８）。図２０は、左上の隣接ユニットのための例示的なＬＵＴを示す概念図である。
【０１３０】
注目する隣接ユニットが現在のビデオユニットの左上の隣接ユニットでなく（３１６の「いいえ」）、注目する隣接ユニットが現在のビデオユニットの上の隣接ユニットである（３２０の「はい」）場合、ビデオコーダがターゲットビデオユニットのインデックスに基づいて上の隣接ユニットに対するＬＵＴ内のエントリーを特定できる（３２２）。図２１は、上の隣接ユニットのための例示的なＬＵＴを示す概念図である。注目する隣接ユニットが現在のビデオユニットの上の隣接ユニットでなく（３２０の「いいえ」）、注目する隣接ユニットが現在のビデオユニットの右上の隣接ユニットである（３２４の「はい」）場合に、ビデオコーダはターゲットビデオユニットのインデックスに基づいて右上の隣接ユニットに対するＬＵＴ内のエントリーを特定できる（３２６）。図２２は、右上の隣接ユニットのための例示的なＬＵＴを示す概念図である。ＬＵＴのうちの１つにおけるエントリーを特定した後、ビデオコーダは、注目する隣接ユニットの利用可能性を判定するために、特定されたエントリーを使用できる（３２８）。
【０１３１】
ビデオコーダは、ターゲットビデオユニットの位置に対応する位置を有するＬＵＴ内のエントリーを特定することによって図１８〜図２２のＬＵＴ内のエントリーを特定できる。例えば、ターゲットビデオユニットが現在のＬＣＵの座標（４，３）にある場合、ビデオコーダがＬＵＴの１つの座標（４，３）におけるエントリーを特定できる。
【０１３２】
図１８〜図２２では、ＬＣＵのサイズが３２×３２であると仮定され、基本ビデオユニットのサイズが４×４であると仮定される。異なるサイズのＬＣＵおよび／または基本ビデオユニットによる例では、ビデオコーダが図１８〜図２２に示されたものとは異なるＬＵＴを使用できる。ＬＣＵは、ＬＣＵのサイズごとに１度生成されるだけでよいことがある。図１８〜図２２では、各セルが対応するＬＵＴのエントリーに対応する。エントリーが数「１」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは利用可能である。エントリーが数「０」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは利用可能ではない。エントリーが文字「Ａ」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のＬＣＵの上の隣接するＬＣＵが現在のＬＣＵと同じスライス内にあれば、利用可能である。現在のＬＣＵは、現在のビデオユニットを含むＬＣＵである。エントリーが文字「Ｌ」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のＬＣＵの左の隣接するＬＣＵが現在のＬＣＵと同じスライス内にあれば、利用可能である。エントリーが文字「ＡＬ」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のＬＣＵの左上の隣接するＬＣＵが現在のＬＣＵと同じスライス内にあれば、利用可能である。エントリーが文字「ＡＲ」を含みビデオコーダがそのエントリーを特定する場合に、注目する隣接ユニットは、現在のＬＣＵの右上の隣接するＬＣＵが現在のＬＣＵと同じスライス内にあれば、利用可能である。
【０１３３】
図２３は、現在のビデオユニットの隣接ユニットの利用可能性を判定するための別の例示的な動作３５０を示すフローチャートである。現在のビデオユニットは、コーディングユニットまたは変換ユニットであり得る。次の説明は、ビデオコーダが動作３５０を行うことを説明する。上述のように、ビデオエンコーダは、ビデオエンコーダ２０のようなビデオエンコーダ、または、ビデオデコーダ３０のようなビデオデコーダであり得る。
【０１３４】
本開示の他の箇所で説明されるように、ビデオエンコーダ２０およびビデオデコーダ３０のようなビデオコーダは、様々な理由で、隣接するビデオユニットが利用可能であるかどうかを判定できる。ビデオコーダは、そのような理由のいずれかのために動作３５０を行い得る。例えば、ビデオコーダがビデオエンコーダである場合、ビデオコーダがＣＵのＰＵの動き情報を決定する際に動作３５０を行い得る。この例では、ビデオコーダが隣接するＣＵの利用可能性を判定し、利用可能な隣接するＣＵの１つのＰＵの動き情報に基づいてＰＵの動き情報をシグナリングできる。別の例では、ビデオコーダがビデオデコーダである場合、ビデオコーダがＣＵのイントラ予測動作を行う際に動作３５０を行い得る。この例では、ビデオコーダが隣接するＣＵの利用可能性を判定し、ＣＵのイントラ予測モードが利用不可能なＣＵのピクセル値の使用を伴う場合にデフォルトのまたは合成されたピクセル値を使用できる。
【０１３５】
ビデオコーダが動作３５０を開始した後、ビデオコーダは現在のＬＣＵを１つまたは複数の基本ビデオユニットに区分できる（３５２）。ビデオコーダは、次いで、現在のビデオユニットのターゲットビデオユニットを特定できる（３５４）。ビデオコーダは、図１６に関して上述された方式で現在のＬＣＵを区分し、ターゲットビデオユニットを特定できる。
【０１３６】
ターゲットビデオユニットを特定した後、ビデオコーダはターゲットビデオユニットのインデックスを決定できる（３５６）。いくつかの例では、ビデオコーダが、図１６に関して上述されたように、ターゲットビデオユニットのラスタースキャンインデックスを決定できる。他の例では、ビデオコーダは、ターゲットビデオユニットのｚスキャンインデックスを決定できる。
【０１３７】
ターゲットビデオユニットのインデックスを特定した後、ビデオコーダはターゲットビデオユニットのインデックスに基づいてＬＵＴ内のエントリーを特定する（３５８）。ＬＵＴは、基本ビデオユニットのラスタースキャンインデックスに対する列と、基本ビデオユニットのｚスキャンインデックスに対する列と、基本ビデオユニットの左下の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの左の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの左上の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの上の隣接ユニットの利用可能性に対する列と、基本ビデオユニットの右上の隣接ユニットの利用可能性に対する列とを含み得る。
【０１３８】
表２は、例示的なＬＵＴを示す。
【表２−１】
0006022586.tif 000012
【表２−２】
0006022586.tif 000013
【表２−３】
0006022586.tif 000014
【０１３９】
ビデオコーダは、異なるサイズのＬＣＵおよび基本ビデオユニットに対して異なるＬＵＴを記憶し得る。例えば、ＬＣＵが３２×３２であり基本ビデオユニットが４×４であるとき、ビデオコーダが表２の例示的なＬＵＴを使用できる。他の例では、ＬＣＵが６４×６４であり基本ビデオユニットが４×４であるとき、ビデオコーダが異なるＬＵＴを使用できる。さらに別の例では、ＬＣＵが３２×３２であり基本ビデオユニットが８×８であるとき、ビデオコーダがさらに別のＬＵＴを使用できる。
【０１４０】
表２の例示的なＬＵＴにおいて、値「ｂＡｂｏｖｅＬＣＵ」は、現在のＬＣＵと同じスライス内に現在のＬＣＵの上のＬＣＵがある場合に「真」と評価され、そうではない場合に「偽」と評価される。値「ｂＡｂｏｖｅＬｅｆｔＬＣＵ」は、現在のＬＣＵと同じスライス内に現在のＬＣＵの左上のＬＣＵがある場合に「真」と評価され、そうではない場合に「偽」と評価される。値「ｂＡｂｏｖｅＲｉｇｈｔＬＣＵ」は、現在のＬＣＵと同じスライス内に現在のＬＣＵの右上のＬＣＵがある場合に「真」と評価され、そうではない場合に「偽」と評価される。値「ｂＬｅｆｔＬＣＵ」は、現在のＬＣＵと同じスライス内に現在のＬＣＵの左のＬＣＵがある場合に「真」と評価され、そうではない場合に「偽」と評価される。ビデオコーダは、隣接するＬＣＵおよび現在のＬＣＵの水平インデックスおよび垂直インデックスに基づいて、現在のＬＣＵと同じスライス内に隣接するＬＣＵがあるかどうかを判定できる。
【０１４１】
図２３の例では、注目する隣接ユニットが利用可能であることを特定されたエントリーが示す場合（３６０の「はい」）、ビデオコーダは、注目する隣接ユニットが利用可能であると判定できる（３６２）。注目する隣接ユニットが利用可能であることを特定されたエントリーが示さない場合（３６０の「いいえ」）、ビデオコーダは、特定されたエントリーが左のＬＣＵを確認するようにビデオコーダに指示しているかどうかを判定できる（３６４）。例えば、ビデオコーダは、特定されたエントリーが、注目する隣接ユニットに対して「ｂＬｅｆｔＬＣＵ」を示すかどうかを判定できる。特定されたエントリーが左のＬＣＵを確認するようにビデオコーダに指示する場合（３６４の「はい」）、ビデオコーダは、現在のＬＣＵの左側で隣接するＬＣＵが現在のＬＣＵと同じスライスの範囲内にあるかどうかを判定できる（３６６）。現在のＬＣＵの左側で隣接するＬＣＵが現在のＬＣＵと同じスライスの範囲内にある場合（３６６の「はい」）、ビデオコーダは、注目する隣接ユニットが利用可能であると判定する（３６８）。そうではなく、現在のＬＣＵの左側で隣接するＬＣＵが現在のＬＣＵと同じスライスの範囲内にない場合（３６６の「いいえ」）、ビデオコーダは、注目する隣接ユニットが利用可能ではないと判定できる（３７０）。
【０１４２】
特定されたエントリーが、左のＬＣＵを確認するようにビデオコーダに指示しない場合（３６４の「いいえ」）、ビデオコーダは、特定されたエントリーが左上のＬＣＵを確認するようにビデオコーダに指示しているかどうかを判定できる（３７２）。例えば、ビデオコーダは、特定されたエントリーが、注目する隣接ユニットに対して「ｂＡｂｏｖｅＬｅｆｔＬＣＵ」を示すかどうかを判定できる。特定されたエントリーが左上のＬＣＵを確認するようにビデオコーダに指示する場合（３７２の「はい」）、ビデオコーダは、現在のＬＣＵの左上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあるかどうかを判定できる（３７４）。現在のＬＣＵの左上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にある場合（３７４の「はい」）、ビデオコーダは、注目する隣接ユニットが利用可能であると判定できる（３７６）。そうではなく、現在のＬＣＵの左上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にない場合（３７４の「いいえ」）、ビデオコーダは、注目する隣接ユニットが利用可能ではないと判定できる（３７０）。
【０１４３】
特定されたエントリーが、左上のＬＣＵを確認するようにビデオコーダに指示しない場合（３７２の「いいえ」）、ビデオコーダは、特定されたエントリーが右上のＬＣＵを確認するようにビデオコーダに指示しているかどうかを判定できる（３７８）。例えば、ビデオコーダは、特定されたエントリーが、注目する隣接ユニットに対して「ｂＡｂｏｖｅＲｉｇｈｔＬＣＵ」を示すかどうか判定できる。特定されたエントリーが右上のＬＣＵを確認するようにビデオコーダに指示する場合（３７８の「はい」）、ビデオコーダは、現在のＬＣＵの右上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあるかどうかを判定できる（３８０）。現在のＬＣＵの右上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にある場合（３８０の「はい」）、ビデオコーダは、注目する隣接ユニットが利用可能であると判定できる（３８２）。そうではなく、特定されたエントリーが、右上のＬＣＵを確認するようにビデオコーダに指示しない場合（３７８の「いいえ」）、または、現在のＬＣＵの右上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にない場合（３８０の「いいえ」）、ビデオコーダは、注目する隣接ユニットが利用可能ではないと判定できる（３７０）。
【０１４４】
いくつかの事例では、図１６および図２３に示される例示的な動作は、次の論理の最適化された実装であり得る。注目する隣接ユニットがターゲットビデオユニットの上の隣接ユニットであり、ターゲットビデオユニットが現在のＬＣＵの一番上の行にある場合に、注目する隣接ユニットは、現在のＬＣＵの上の隣接するＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、利用可能である。注目する隣接ユニットは、現在のＬＣＵの上の隣接するＬＣＵが現在のＬＣＵと同じスライスの範囲内にない場合に、利用可能ではない。注目する隣接ユニットは、ターゲットビデオユニットが現在のＬＣＵの一番上の行にない場合に、利用可能である。
【０１４５】
注目する隣接ユニットがターゲットビデオユニットの左の隣接ユニットであり、ターゲットビデオユニットが現在のＬＣＵの左の列にある場合に、注目する隣接ユニットは、現在のＬＣＵの左の隣接するＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、利用可能である。注目する隣接ユニットは、現在のＬＣＵの左の隣接するＬＣＵが現在のＬＣＵと同じスライスの範囲内にない場合に、利用可能ではない。注目する隣接ユニットは、ターゲットビデオユニットが現在のＬＣＵの左の列にない場合に、利用可能である。
【０１４６】
注目する隣接ユニットがターゲットビデオユニットの左上の隣接ユニットである場合、ターゲットビデオユニットは現在のＬＣＵの一番左上のピクセルを含み、現在のＬＣＵの左上のＬＣＵは現在のＬＣＵと同じスライスの範囲内にあり、注目する隣接ユニットは利用可能である。そうではなく、現在のＬＣＵの左上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にない場合に、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のＬＣＵの一番上の行にある（しかしＬＣＵの一番左上のビデオユニットではない）場合に、現在のＬＣＵの上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。ターゲットビデオユニットが現在のＬＣＵの一番上の行にある場合に、現在のＬＣＵの上のＬＣＵが現在のＬＣＵと同じスライスの範囲内になければ、注目する隣接ユニットは利用可能ではない。注目する隣接ユニットが現在のＬＣＵの左の列にある（しかし一番左上ではない）場合に、現在のＬＣＵの左のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。注目する隣接ユニットが現在のＬＣＵの左の列にある（しかし一番左上ではない）場合に、現在のＬＣＵの左のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能ではない。そうではない場合に、注目する隣接ユニットは利用可能である。
【０１４７】
注目する隣接ユニットがターゲットビデオユニットの左下の隣接ユニットであり、ターゲットビデオユニットが現在のＬＣＵの一番左下のピクセルを含む場合に、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のＬＣＵの一番下の行にあるが、現在のＬＣＵの一番左下のピクセルを含まない場合に、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のＬＣＵの左の列にある（しかし一番左下ではない）場合に、現在のＬＣＵの左のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。ターゲットビデオユニットが現在のＬＣＵの左の列にある（しかし一番左下ではない）場合に、現在のＬＣＵの左のＬＣＵが現在のＬＣＵと同じスライスの範囲内になければ、注目する隣接ユニットは利用可能ではない。上述されたように、ビデオコーダは、ｚスキャン順序に従って、現在のＬＣＵの範囲内のビデオユニットをコーディングできる。従って、ビデオコーダは、より小さいｚスキャンインデックスを有するビデオユニットをコーディングした後、より大きいｚスキャンインデックスを有するビデオユニットをコーディングできる。従って、ターゲットビデオユニットが現在のＬＣＵの一番下の行または左の列にない場合に、注目する隣接ユニットのｚスキャンインデックスがターゲットビデオユニットのｚスキャンインデックスより小さければ、注目する隣接ユニットは利用可能である。注目する隣接ユニットのｚスキャンインデックスがターゲットビデオユニットのｚスキャンインデックスより小さくない（すなわち、より大きい）場合に、注目する隣接ユニットは利用可能ではない。
【０１４８】
注目する隣接ユニットがターゲットビデオユニットの右上の隣接ユニットであり、ターゲットビデオユニットが現在のＬＣＵの一番右上の角にある場合に、注目する隣接ユニットは、現在のＬＣＵの右上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、利用可能である。注目する隣接ユニットは、現在のＬＣＵの右上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にない場合に、利用可能ではない。ターゲットビデオユニットが現在のＬＣＵの一番上の行にある（しかし現在のＬＣＵの一番右上の基本ビデオユニットではない）場合に、現在のＬＣＵの上のＬＣＵが現在のＬＣＵと同じスライスの範囲内にあれば、注目する隣接ユニットは利用可能である。ターゲットビデオユニットが現在のＬＣＵの一番上の行にある（しかし現在のＬＣＵの一番右上の基本ビデオユニットではない）場合に、現在のＬＣＵの上のＬＣＵが現在のＬＣＵと同じスライスの範囲内になければ、注目する隣接ユニットは利用可能ではない。ターゲットビデオユニットが現在のＬＣＵの右の列にある（しかし、現在のＬＣＵの一番右上の基本ビデオユニットではない）場合に、注目する隣接ユニットは利用可能ではない。そうではなく、ターゲットビデオユニットが一番上の行または右の列にない場合に、注目する隣接ユニットのｚスキャンインデックスがターゲットビデオユニットのｚスキャンインデックスより小さければ、注目する隣接ユニットは利用可能である。注目する隣接ユニットのｚスキャンインデックスがターゲットビデオユニットのｚスキャンインデックスより小さくない場合に、注目する隣接ユニットは利用可能ではない。
【０１４９】
実施形態によっては、本明細書で説明された方法のうちいずれかの、いくつかの動作またはイベントは、異なる順番で行われてよく、追加、統合、または完全に除外されてよい（例えば、すべての説明された動作またはイベントが、本方法の実施のために必要であるとは限らない）ことを認識されたい。さらに、いくつかの実施形態では、動作またはイベントは、連続してではなくむしろ、同時に、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて行われ得る。
【０１５０】
本明細書で開示される方法、システムおよび装置と関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムのステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は認識するであろう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、上では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装できるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１５１】
その上、本明細書で開示された実施形態は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはその他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェアコンポーネントのような、電子デバイスまたは回路、あるいは本明細書で説明された機能を行うように設計されたそれらの任意の組合せによって、実施されまたは行われ得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成としても実施され得る。
【０１５２】
本明細書で開示される実施形態に関して説明される方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこの２つの組合せで直接具体化されてもよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサおよび記憶媒体はＡＳＩＣ内に存在し得る。ＡＳＩＣは、ユーザ端末内に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別コンポーネントとして存在し得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]
ビデオデータをコーディングするための方法であって、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定することであって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、特定することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて前記現在のビデオユニットに対するコーディング動作を行うこととを備える、方法。
[Ｃ２]
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータに基づいて、前記現在のビデオユニットに対する前記コーディング動作を行うことを備える、Ｃ１に記載の方法。
[Ｃ３]
隣接ユニットに関連付けられる前記データを使用して、前記現在のビデオユニットに対する前記コーディング動作を行うことが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択することと、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピーコーディング動作を行うこととを備える、Ｃ２に記載の方法。
[Ｃ４]
前記現在のビデオユニットに隣接する前記ビデオユニットが、前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、Ｃ１に記載の方法。
[Ｃ５]
前記現在のビデオユニットがコーディングユニットまたは変換ユニットである、Ｃ１に記載の方法。
[Ｃ６]
前記現在のビデオユニットがツリーブロックかどうか判定することと、
前記現在のビデオユニットがツリーブロックではないと判定した後、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することとをさらに備える、Ｃ１に記載の方法。
[Ｃ７]
前記現在のビデオユニットがツリーブロックであると判定した後、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することをさらに備える、Ｃ６に記載の方法。
[Ｃ８]
前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの上位ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための動作を再帰的に行うことを備える、Ｃ６に記載の方法。
[Ｃ９]
前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定することが、前記現在のビデオユニットの前記上位ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための非再帰的動作を行うことを備える、Ｃ６に記載の方法。
[Ｃ１０]
前記特定されたエントリーが一連の値を備え、前記値が前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、Ｃ１に記載の方法。
[Ｃ１１]
前記参照テーブルが、前記親ビデオユニットに隣接する前記ビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、Ｃ１に記載の方法。
[Ｃ１２]
前記参照テーブルが前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが前記他の子ビデオユニットに隣接するビデオユニットの利用可能性を示す、Ｃ１１に記載の方法。
[Ｃ１３]
前記コーディング動作が符号化動作の一部である、Ｃ１に記載の方法。
[Ｃ１４]
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
前記方法が、
前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成することと、
１つまたは複数の変換係数ブロックを生成するために前記残差データに対して１つまたは複数の変換を適用することと、
前記変換係数ブロックを表す符号化されたデータを含むビットストリームを出力することとをさらに備える、方法。
[Ｃ１５]
前記コーディング動作が復号動作の一部である、Ｃ１に記載の方法。
[Ｃ１６]
前記現在のビデオユニットに対する前記コーディング動作を行うことが、前記現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することを備え、
前記方法が、
前記現在のビデオユニットの残差データを復号することと、
前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとをさらに備える、方法。
[Ｃ１７]
１つまたは複数のプロセッサを備えるビデオコーディング装置であって、前記１つまたは複数のプロセッサが、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、特定することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて、前記現在のビデオユニットに対するコーディング動作を行うこととを行うように構成される、ビデオコーディング装置。
[Ｃ１８]
前記１つまたは複数のプロセッサが、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータに基づいて、前記現在のビデオユニットに対する前記コーディング動作を行うように構成される、Ｃ１７に記載のビデオコーディング装置。
[Ｃ１９]
前記１つまたは複数のプロセッサが、
前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられる前記データに基づいて、コンテキストモデルを選択し、
前記選択されたコンテキストモデルに基づいて、前記現在のビデオユニットに関連付けられるデータに対するエントロピーコーディング動作を行うように構成される、Ｃ１８に記載のビデオコーディング装置。
[Ｃ２０]
前記現在のビデオユニットに隣接する前記ビデオユニットが、前記現在のビデオユニットと異なるレベルの４分木に関連付けられる、Ｃ１７に記載のビデオコーディング装置。
[Ｃ２１]
前記現在のビデオユニットがコーディングビデオユニットである、Ｃ１７に記載のビデオコーディング装置。
[Ｃ２２]
前記１つまたは複数のプロセッサが、
前記現在のビデオユニットがツリーブロックかどうか判定し、
前記現在のビデオユニットがツリーブロックではないと判定した後、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するように構成される、Ｃ１７に記載のビデオコーディング装置。
[Ｃ２３]
前記１つまたは複数のプロセッサが、前記現在のビデオユニットがツリーブロックであると判定した後、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記現在のビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するように構成される、Ｃ２２に記載のビデオコーディング装置。
[Ｃ２４]
前記１つまたは複数のプロセッサが、前記現在のビデオユニットの上位ビデオユニットに隣接するビデオユニットの前記利用可能性を判定するための動作を再帰的に行うように構成される、Ｃ２２に記載のビデオコーディング装置。
[Ｃ２５]
前記１つまたは複数のプロセッサが、前記現在のビデオユニットの前記上位ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための非再帰的動作を行うように構成される、Ｃ２２に記載のビデオコーディング装置。
[Ｃ２６]
前記エントリーが一連の値を備え、前記値が前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、Ｃ１７に記載のビデオコーディング装置。
[Ｃ２７]
前記参照テーブルが、前記親ビデオユニットに隣接する前記ビデオユニットの利用可能性の複数の組合せに対するエントリーを含む、Ｃ１７に記載のビデオコーディング装置。
[Ｃ２８]
前記参照テーブルが、前記親ビデオユニットの他の子ビデオユニットに対するエントリーを含み、前記他の子ビデオユニットに対する前記エントリーが、前記他の子ビデオユニットに隣接するビデオユニットの利用可能性を示す、Ｃ２７に記載のビデオコーディング装置。
[Ｃ２９]
前記コーディング動作が符号化動作の一部である、Ｃ１７に記載のビデオコーディング装置。
[Ｃ３０]
前記１つまたは複数のプロセッサが、
現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成し、
前記現在のビデオユニットの前記予測データに基づいて、前記現在のビデオユニットの残差データを生成し、
１つまたは複数の変換係数ブロックを生成するために前記残差データに対して１つまたは複数の変換を適用し、
前記変換係数ブロックを表す符号化されたデータを含むビットストリームを出力するように構成される、Ｃ２９に記載のビデオコーディング装置。
[Ｃ３１]
前記コーディング動作が復号動作の一部である、Ｃ１７に記載のビデオコーディング装置。
[Ｃ３２]
前記１つまたは複数のプロセッサが、
現在のビデオユニットに隣接する前記ビデオユニットの１つまたは複数のピクセル値に基づいて、前記現在のビデオユニットの予測データを生成することと、
前記現在のビデオユニットの残差データを復号することと、
前記現在のビデオユニットの前記予測データおよび前記現在のビデオユニットの前記残差データに基づいて、前記現在のビデオユニットのピクセル値を復元することと、
前記ピクチャを出力することであって、前記ピクチャが前記現在のビデオユニットの前記ピクセル値を含む、出力することとを行うように構成される、Ｃ３１に記載のビデオコーディング装置。
[Ｃ３３]
ビデオデータをコーディングするためのビデオコーディング装置であって、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定するための手段であって、前記現在のビデオユニットが前記ビデオデータのピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、手段と、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて、前記現在のビデオユニットに対するコーディング動作を行うための手段とを備える、ビデオコーディング装置。
[Ｃ３４]
隣接ユニットに関連付けられるデータに基づいて前記現在のビデオユニットに対する前記コーディング動作を行って、前記現在のビデオユニットに対する前記コーディング動作を行うための手段を備える、Ｃ３３に記載のビデオコーディング装置。
[Ｃ３５]
前記現在のビデオユニットがツリーブロックかどうか判定するための手段と、
前記現在のビデオユニットがツリーブロックである場合、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定するための手段と、
前記現在のビデオユニットがツリーブロックではない場合、前記現在のビデオユニットの上位ビデオユニットに隣接するビデオユニットの前記利用可能性を判定するための動作を再帰的に行うための手段とをさらに備える、Ｃ３３に記載のビデオコーディング装置。
[Ｃ３６]
前記特定されたエントリーが一連の値を備え、前記値が、前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、Ｃ３３に記載のビデオコーディング装置。
[Ｃ３７]
前記コーディング動作が符号化動作の一部である、Ｃ３３に記載のビデオコーディング装置。
[Ｃ３８]
前記コーディング動作が復号動作の一部である、Ｃ３３に記載のビデオコーディング装置。
[Ｃ３９]
命令を記憶したコンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記命令が実行されたときに、１つまたは複数のプロセッサに、
現在のビデオユニットの親ビデオユニットに隣接するビデオユニットの利用可能性に基づいて、参照テーブル内のエントリーを特定することであって、前記現在のビデオユニットがピクチャの範囲内にあり、前記特定されたエントリーが前記現在のビデオユニットに隣接するビデオユニットの利用可能性を示す、特定することと、
前記現在のビデオユニットに隣接する前記ビデオユニットが利用可能かどうかに基づいて、前記現在のビデオユニットに対するコーディング動作を行うこととを行わせる、コンピュータプログラム製品。
[Ｃ４０]
前記命令が、前記１つまたは複数のプロセッサに、前記現在のビデオユニットに隣接する前記ビデオユニットに関連付けられるデータに基づいて、前記現在のビデオユニットに対する前記コーディング動作を行わせる、Ｃ３９に記載のコンピュータプログラム製品。
[Ｃ４１]
前記命令が、前記１つまたは複数のプロセッサに、
前記現在のビデオユニットがツリーブロックかどうか判定させ、
前記現在のビデオユニットがツリーブロックである場合、前記ピクチャの範囲内の前記現在のビデオユニットの位置に基づいて、前記親ビデオユニットに隣接する前記ビデオユニットの前記利用可能性を判定させ、
前記現在のビデオユニットがツリーブロックではない場合、前記現在のビデオユニットの上位ビデオユニットに隣接するビデオユニットの利用可能性を判定するための動作を再帰的に行わせる、Ｃ３９に記載のコンピュータプログラム製品。
[Ｃ４２]
前記特定されたエントリーが一連の値を備え、前記値が、前記現在のビデオユニットに隣接する様々なビデオユニットの利用可能性を示す、Ｃ３９に記載のコンピュータプログラム製品。
[Ｃ４３]
前記コーディング動作が符号化動作の一部である、Ｃ３９に記載のコンピュータプログラム製品。
[Ｃ４４]
前記コーディング動作が復号動作の一部である、Ｃ３９に記載のコンピュータプログラム製品。
【図１】
0006022586.tif 000015
【図２】
0006022586.tif 000016
【図３】
0006022586.tif 000017
【図４】
0006022586.tif 000018
【図５】
0006022586.tif 000019
【図６】
0006022586.tif 000020
【図７】
0006022586.tif 000021
【図８】
0006022586.tif 000022
【図９】
0006022586.tif 000023
【図１０】
0006022586.tif 000024
【図１１】
0006022586.tif 000025
【図１２】
0006022586.tif 000026
【図１３】
0006022586.tif 000027
【図１４】
0006022586.tif 000028
【図１５】
0006022586.tif 000029
【図１６】
0006022586.tif 000030
【図１７】
0006022586.tif 000031
【図１８】
0006022586.tif 000032
【図１９】
0006022586.tif 000033
【図２０】
0006022586.tif 000034
【図２１】
0006022586.tif 000035
【図２２】
0006022586.tif 000036
【図２３】
0006022586.tif 000037