(57)【要約】  ディスプレイリンクを介した送信のために固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法が開示される。一態様では、方法は、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することを含み、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にある。ピクセル位置の範囲は、（i）現在ブロックとオーバーラップする複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、（ii）現在ブロックとオーバーラップしない複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域とを備え得る。方法は、候補ブロックのピクセル位置を示す予測ベクトルを決定およびシグナリングすることをさらに備え得る。
2018536364.tif 000002
【特許請求の範囲】
【請求項１】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法であって、前記方法は、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を備える、方法。
【請求項２】
複数のピクセルの前記第１のラインおよび複数のピクセルの前記第２のラインは、前記現在スライスの２つの隣接するラスタスキャンラインを備える、請求項１に記載の方法。
【請求項３】
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の１×２区分である、請求項１に記載の方法。
【請求項４】
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の２×２区分である、請求項１に記載の方法。
【請求項５】
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項１に記載の方法。
【請求項６】
前記第２の領域および前記第３の領域は、同じラスタスキャンラインを占有する、請求項５に記載の方法。
【請求項７】
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、請求項５に記載の方法。
【請求項８】
前記第１、第２、および第３の数は、互いに異なる、請求項７に記載の方法。
【請求項９】
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第１および第２の領域中の前記第１および第２のピクセル位置の１つに各々対応する、
最低コストを有する前記第１および第２の領域中の前記複数の潜在的な候補ブロックのうちの１つを、前記候補ブロックとして識別することと
をさらに備える、請求項１に記載の方法。
【請求項１０】
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第１の数に等しく、前記方法は、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第１の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第１のブロックは、前記第１の領域中の少なくとも１つのピクセルと前記第２の領域中の少なくとも１つのピクセルとを含む、
前記第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第１のブロックを決定することと
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第１のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第１のコストを決定することと、前記第１のブロックは、前記第２の領域中の各々にある１つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第２のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第２のコストを決定することと、前記第２のブロックは、前記第１のブロック中の前記１つまたは複数のピクセルの全てと、前記第１の領域中の各々にある１つまたは複数の追加のピクセルとを含む、
前記第２のコストが前記第１のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第１のブロックを決定することと
をさらに備える、請求項１に記載の方法。
【請求項１３】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための装置であって、前記装置は、
ビデオデータの現在スライスの１つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、
前記メモリと通信状態にある１つまたは複数のプロセッサとを備え、前記１つまたは複数のプロセッサは、
前記現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成される、装置。
【請求項１４】
複数のピクセルの前記第１のラインおよび複数のピクセルの前記第２のラインは、前記現在スライスの２つの隣接するラスタスキャンラインを備える、請求項１３に記載の装置。
【請求項１５】
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の１×２区分である、請求項１３に記載の装置。
【請求項１６】
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の２×２区分である、請求項１３に記載の装置。
【請求項１７】
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項１３に記載の装置。
【請求項１８】
前記第２の領域および前記第３の領域は、同じラスタスキャンラインを占有する、請求項１７に記載の装置。
【請求項１９】
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、請求項１７に記載の装置。
【請求項２０】
前記第１、第２、および第３の数は、互いに異なる、請求項１９に記載の装置。
【請求項２１】
前記１つまたは複数のプロセッサは、
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第１および第２の領域中の前記第１および第２のピクセル位置の１つに各々対応する、
最低コストを有する前記第１および第２の領域中の前記複数の潜在的な候補ブロックのうちの１つを、前記候補ブロックとして識別することと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２２】
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第１の数に等しく、前記１つまたは複数のプロセッサは、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第１の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２３】
前記１つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第１のブロックは、前記第１の領域中の少なくとも１つのピクセルと前記第２の領域中の少なくとも１つのピクセルとを含む、
前記第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第１のブロックを決定することと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２４】
前記１つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第１のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第１のコストを決定することと、前記第１のブロックは、前記第２の領域中の各々にある１つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第２のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第２のコストを決定することと、前記第２のブロックは、前記第１のブロック中の前記１つまたは複数のピクセルの全てと、前記第１の領域中の各々にある１つまたは複数の追加のピクセルとを含む、
前記第２のコストが前記第１のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第１のブロックを決定することと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２５】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備える非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行わせる、非一時的物理的コンピュータストレージ。
【請求項２６】
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項２５に記載の非一時的物理的コンピュータストレージ。
【請求項２７】
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、請求項２６に記載の非一時的物理的コンピュータストレージ。
【請求項２８】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
【請求項２９】
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項２８に記載のビデオコーディングデバイス。
【請求項３０】
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、請求項２９に記載のビデオコーディングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイリンクビデオ圧縮（display link video compression)などの、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]  デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラ電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、従って、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを提供するためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
【０００３】
[0003]  ピクセルデータのイメージ圧縮を含むコーディング方式が存在する。しかしながら、そのような方式は、時々視覚的ロスレス（visually lossless）でないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。
【０００４】
[0004]  ビデオエレクトロニクス規格協会（ＶＥＳＡ：Video Electronics Standards Association)は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮（ＤＳＣ：Display Stream Compression）を開発した。ＤＳＣなどの、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質（すなわち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ）を提供するべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を提供するべきである。
【図面の簡単な説明】
【０００５】
【図１Ａ】[0005]  図１Ａは、本開示で説明される態様による技法を利用し得る例示的なビデオ符号化および復号システムを図示するブロック図である。
【図１Ｂ】[0006]  図１Ｂは、本開示で説明される態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを図示するブロック図である。
【図２Ａ】[0007]  図２Ａは、技法を実装し得るビデオエンコーダの一例を図示するブロック図である。
【図２Ｂ】[0008]  図２Ｂは、技法を実装し得るビデオデコーダの一例を図示するブロック図である。
【図３】[0009]  図３は、１Ｄブロックについての第１でないラインのための探索空間（search space）を図示するブロック図である。
【図４】[0010]  図４は、２Ｄブロックについての第１でないラインのための探索空間を図示するブロック図である。
【図５】[0011]  図５は、１Ｄブロックについての第１のラインのための探索空間を図示するブロック図である。
【図６】[0012]  図６は、２Ｄブロックについての第１のラインのための探索空間を図示するブロック図である。
【図７】[0013]  図７は、ブロック予測モードでビデオデータのブロックを予測するための方法を図示するフローチャートである。
【図８】[0014]  図８は、区分（partitions）を有するブロックを図示するブロック図である。
【図９】[0015]  図９は、適応型区分サイズを有するブロック予測モードのためのデータフローを図示するブロック図である。
【図１０】[0016]  図１０は、ブロック内の２×２領域のための２つの異なる区分オプションを図示するブロック図である。
【図１１】[0017]  図１１は、ブロック予測モードのためのエントロピーコーディンググループを図示するブロック図である。
【図１２】[0018]  図１２は、２×８ブロックのための探索空間を図示するブロック図である。
【図１３】[0019]  図１３は、ブロックの異なる領域に関して使用されている異なる区分サイズを図示するブロック図である。
【図１４】[0020]  図１４は、可変の区分サイズを使用してブロック予測モードでビデオデータのブロックを予測するための方法を示すフローチャートである。
【図１５】[0021]  図１５は、４：２：０クロマサブサンプリングの２×２区分に関する例示的なブロック予測探索を図示するブロック図である。
【図１６】[0022]  図１６は、４：２：０クロマサブサンプリングの１×２区分に関する例示的なブロック予測探索を図示するブロック図である。
【図１７】[0023]  図１７は、４：２：２クロマサブサンプリングの２×２区分に関する例示的なブロック予測探索を図示するブロック図である。
【図１８】[0024]  図１８は、４：２：２クロマサブサンプリングの１×２区分に関する例示的なブロック予測探索を図示するブロック図である。
【図１９】[0025]  図１９は、ブロック予測モードについての単一の探索範囲を図示するブロック図である。
【図２０】[0026]  図２０は、ブロック予測モードについての複数の探索範囲を図示するブロック図である。
【図２１】[0027]  図２１は、複数の探索範囲を使用してブロック予測モードでビデオデータのブロックを予測するための方法を示すフローチャートである。
【図２２】[0028]  図２２は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。
【図２３】[0029]  図２３は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。
【図２４】[0030]  図２４は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。
【図２５】[0031]  図２５は、簡略化されたブロック予測モードのための例示的な探索領域を図示するブロック図である。
【図２６】[0032]  図２６は、簡略化されたブロック予測モードでビデオデータのブロックを予測するための方法を図示するフローチャートである。
【発明の概要】
【０００６】
[0033]  ＤＳＣ規格は、ビデオデータの各ブロックが、エンコーダによって符号化され、同様に、デコーダによって復号され得る、いくつかのコーディングモードを含む。いくつかの実装では、エンコーダおよび／またはデコーダは、前にコーディングされたブロックに基づいてコーディングされる現在ブロックを予測し得る。
【０００７】
[0034]  しかしながら、既存のコーディングモード（例えば、変換コーディング、差分パルスコード変調など）は、ビデオデータ中の極めて複雑な領域（highly complex region）を圧縮する満足のいく方法を提供しない。しばしば、このタイプのデータ（すなわち、高度に圧縮されたビデオデータ）について、コーディングされる現在ブロック（または現在ブロックの構成サブブロック（constituent sub-blocks））は、コーダ（例えば、エンコーダまたはデコーダ）によって遭遇された前のブロック（previous blocks）にコンテンツが類似する。しかしながら、既存のイントラ予測は、そのような現在ブロックの満足のいく予測（例えば、現在ブロックに十分に類似し、従って十分に小さい残差（residual）をもたらすであろう現在ブロックの予測）を行うには制限されすぎていることがある。従って、ビデオデータのブロックをコーディングする改善された方法が望まれる。
【０００８】
[0035]  本開示のシステム、方法およびデバイスは、各々いくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示される望ましい属性を単独で担うものではない。
【０００９】
[0036]  一態様では、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法は、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも（i）現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの第１のラインは、現在ブロック中の少なくとも１つのピクセルを含み、現在スライスの全体の幅にわたる、（ii）現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの第２のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第１の領域または第２の領域のうちの１つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を含み得る。
【００１０】
[0037]  別の態様では、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成された装置は、ビデオデータの現在スライスの１つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、メモリと通信状態にある１つまたは複数のプロセッサと、を含み得る。１つまたは複数のプロセッサは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも（i）現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの第１のラインは、現在ブロック中の少なくとも１つのピクセルを含み、現在スライスの全体の幅にわたる、（ii）現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの第２のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第１の領域または第２の領域のうちの１つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を行うように構成され得る。
【００１１】
[0038]  別の態様では、非一時的物理的コンピュータストレージは、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備え得る。コードは、実行されたとき、装置に、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも（i）現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの第１のラインは、現在ブロック中の少なくとも１つのピクセルを含み、現在スライスの全体の幅にわたる、（ii）現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの第２のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定することと、候補ブロックのピクセル位置は、第１の領域または第２の領域のうちの１つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングすることと、を行わせ得る。
【００１２】
[0039]  別の態様では、ビデオコーディングデバイスは、固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成され得る。ビデオコーディングデバイスは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の範囲は、少なくとも（i）現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの第１のラインは、現在ブロック中の少なくとも１つのピクセルを含み、現在スライスの全体の幅にわたる、（ii）現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの第２のラインは、現在ブロック中のいずれのピクセルも含まないが、現在スライスの全体の幅にわたる、を備え、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、候補ブロックのピクセル位置は、第１の領域または第２の領域のうちの１つにあり、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングするための手段と、を備え得る。
【詳細な説明】
【００１３】
[0040]  概して、本開示は、例えば、ディスプレイリンクビデオ圧縮で利用されるもののような、ビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、適応型探索範囲選択を使用してブロック予測モードでビデオデータのブロックをコーディングするためのシステムおよび方法に関する。
【００１４】
[0041]  ある特定の実施形態について、ディスプレイリンクビデオ圧縮技法の例である、ＤＳＣ規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示されるシステムおよび方法が任意の適切なビデオコーディング規格に適用可能であり得ることを、当業者は理解するだろう。例えば、本明細書で開示される実施形態は、下記の規格、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ． ２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ムービングピクチャエキスパートグループ１（ＭＰＥＧ−１）Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ． ２６２またはＩＳＯ／ＩＥＣ ＭＰＥＧ−２ Ｖｉｓｕａｌ、ＩＴＵ−Ｔ Ｈ． ２６３、ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ ＡＶＣとしても知られる）ＩＴＵ−Ｔ Ｈ． ２６４、高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding)のうちの１つまたは複数、およびそのような規格に対する任意の拡張に適用可能であり得る。また、本開示で説明される技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００１５】
[0042]  ＤＳＣ規格は、ビデオデータの各ブロックが、エンコーダによって符号化され、同様に、デコーダによって復号され得る、いくつかのコーディングモードを含む。いくつかの実装では、エンコーダおよび／またはデコーダは、前にコーディングされたブロックに基づいてコーディングされるべき現在ブロックを予測し得る。
【００１６】
[0043]  しかしながら、既存のコーディングモード（例えば、変換コーディング、差分パルスコード変調など）は、ビデオデータ中の極めて複雑な領域を圧縮する満足のいく方法を提供しない。しばしば、このタイプのデータ（すなわち、高度に圧縮されたビデオデータ）について、コーディングされる現在ブロック（または現在ブロックの構成サブブロック）は、コーダ（例えば、エンコーダまたはデコーダ）によって遭遇された前のブロックにコンテンツが類似する。しかしながら、既存のイントラ予測は、そのような現在ブロックの満足のいく予測（例えば、現在ブロックに十分に類似し、従って十分に小さい残差をもたらすであろう現在ブロックの予測）を行うには制限されすぎていることがある。従って、ビデオデータのブロックをコーディングする改善された方法が望まれる。
【００１７】
[0044]  本開示では、ブロック予測モードでブロックをコーディングする改善された方法が説明される。例えば、現在ブロックを（または現在ブロック内の現在領域）予測するために使用される候補ブロック（または候補領域）を探索するとき、探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致であり得る潜在的な候補（potential candidates）へのアクセスを有するように定義され得る。別の例では、エンコーダは、レート歪み（ＲＤ：rate distortion)分析に基づいて、現在ブロックをコーディングするために複数の探索範囲のうちのどの１つを使用するかを決定し得る。さらに別の例では、エンコーダは、前にコーディングされたピクセルのうちのどの１つが、現在ブロックのロケーション、ＲＤコストなどのような様々なファクタに基づいて、現在ブロックをコーディングするために使用される探索範囲に含まれるかを決定し得る。エンコーダ側でより多くの動作を実行すること（例えば、コンピューティングリソースと処理能力（power）とを消費し得る、現在ブロックを予測するために使用される候補ブロックを探索すること、現在ブロックに関する候補ブロックのロケーションを識別するベクトルを計算すること、関連付けられたコストを異なる探索範囲を使用することと比較することなど）によって、本方法はデコーダ複雑さ（decoder complexity）を低減し得る。追加的に、複数のおよび／または適用可能探索範囲がブロック予測モードでブロックをコーディングするために使用されることを可能にすることによって、より良い候補区分に位置している可能性が高くなり得、それにより、ブロック予測モードのコーディング効率および／またはコーディング性能を改善する。さらに、探索範囲を適応可能に選択するためのエンコーダが各ブロックをコーディングするために使用されることを可能にすることによって、ブロック予測方式の性能は、さらに改善され得る。
【００１８】
ビデオコーディング規格
[0045]  ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成される画像のようなデジタル画像は、水平ラインおよび垂直ラインで配置されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい（sheer）量は、リアルタイム画像送信を実行不可能（impractical）にするであろう。送信される情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ． ２６３規格などの、いくつかの異なる圧縮方法が開発された。
【００１９】
[0046]  ビデオコーディング規格は、ＩＴＵ−Ｔ Ｈ． ２６１と、ＩＳＯ／ＩＥＣ ＭＰＥＧ−１ Ｖｉｓｕａｌと、ＩＴＵ−Ｔ Ｈ． ２６２またはＩＳＯ／ＩＥＣ ＭＰＥＧ−２ Ｖｉｓｕａｌと、ＩＴＵ−Ｔ Ｈ． ２６３と、ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ Ｖｉｓｕａｌと、（ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ ＡＶＣとしても知られる）ＩＴＵ−Ｔ Ｈ． ２６４と、そのような規格の拡張を含むＨＥＶＣとを含む。
【００２０】
[0047]  さらに、ＶＥＳＡによって、あるビデオコーディング規格、すなわち、ＤＳＣが開発された。ＤＳＣ規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータの全てを送信するための帯域幅を有しない可能性がある。従って、ＤＳＣ規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。
【００２１】
[0048]  ＤＳＣ規格は、Ｈ． ２６４およびＨＥＶＣなどの、他のビデオコーディング規格とは異なる。ＤＳＣは、フレーム内圧縮（intra-frame compression）を含むが、フレーム間圧縮（inter-frame compression）を含まず、これは、ビデオデータをコーディングする際にＤＳＣ規格によって時間的情報が使用されない可能性があることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。
【００２２】
ビデオコーディングシステム
[0049]  添付の図面を参照して新規のシステム、装置、および方法の様々な態様が以下でより十分に説明される。しかしながら、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が綿密で完全になり、本開示の範囲を当業者に十分に伝えるために提供されるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の任意の他の態様とは無関係に実装されようと、本開示の任意の他の態様と組み合わせて実装されようと、本明細書で開示される新規のシステム、装置、および方法のいずれの態様をもカバーすると意図されていることを、当業者は理解するべきである。例えば、本明細書に記載されるいずれの数の態様を使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーすることが意図される。本明細書で開示されるいずれの態様も請求項の１つまたは複数の要素によって具現化され得ることを理解されたい。
【００２３】
[0050]  本明細書では特定の態様が説明されるが、これらの態様の多くの変形および置換は本開示の範囲内に入る。適切な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されることを意図したものではない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であることを意図したものであり、それらのいくつかを例として、図および適切な（preferred）態様の以下の説明において図示する。詳細な説明および図面は、本開示を限定するものではなく単に説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００２４】
[0051]  添付の図面は例を図示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語（例えば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
【００２５】
[0052]  図１Ａは、本開示で説明される態様による技法を利用し得る例示的なビデオコーディングシステム１０を図示するブロック図である。本明細書で使用され説明される「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明される態様は、トランスコーダ（transcoder）（例えば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（middlebox）（例えば、ビットストリームを変更、変換、および／または他の場合には操作することができるデバイス）など、他の関係するデバイスに拡張され得る。
【００２６】
[0053]  図１Ａに示されているように、ビデオコーディングシステム１０は、宛先デバイス１４（すなわち、「ビデオコーディングデバイス１４」または「コーディングデバイス１４」）によって後で復号される符号化ビデオデータを生成するソースデバイス１２（すなわち、「ビデオコーディングデバイス１２」または「コーディングデバイス１２」）を含む。図１Ａの例では、ソースデバイス１２および宛先デバイス１４は、別個のデバイスを構成する。しかしながら、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
【００２７】
[0054]  もう一度図１Ａを参照すると、ソースデバイス１２および宛先デバイス１４は、それぞれ、デスクトップコンピュータ、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、デバイス（ビデオコーディングデバイスとも呼ばれる）の広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され（すなわち、ワイヤレス通信を介して通信するように構成され）得る。
【００２８】
[0055]  ビデオコーディングシステム１０のビデオコーディングデバイス１２、１４は、ワイヤレスワイドエリアネットワーク（ＷＷＡＮ）（例えば、セルラ）および／またはワイヤレスローカルエリアネットワーク（ＷＬＡＮ）キャリアのようなワイヤレスネットワークおよび無線技術を介して通信するように構成され得る。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。ビデオコーディングデバイス１２、１４の各々は、ユーザ機器（ＵＥ）、ワイヤレスデバイス、端末、モバイル局、加入者局などであり得る。
【００２９】
[0056]  ＷＷＡＮキャリアは、例えば、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、周波数分割多元接続（ＦＤＭＡ）、直交ＦＤＭＡ（ＯＦＤＭＡ）、シングルキャリアＦＤＭＡ（ＳＣ−ＦＤＭＡ）、および他のネットワークのようなワイヤレス通信ネットワークを含み得る。ＣＤＭＡネットワークは、ユニバーサル地上無線アクセス（ＵＴＲＡ）、ｃｄｍａ２０００などのような無線技術を実装し得る。ＵＴＲＡは、広帯域ＣＤＭＡ（ＷＣＤＭＡ（登録商標））およびＣＤＭＡの他の変形を含む。ＣＤＭＡ２０００は、ＩＳ−２０００、ＩＳ−９５およびＩＳ−８５６規格をカバーする。ＴＤＭＡネットワークは、グローバル・システム・フォー・モバイルコミュニケーションズ（ＧＳＭ）（登録商標）のような無線技術を実装し得る。ＯＦＤＭＡネットワークは、発展型ＵＴＲＡ（Ｅ−ＵＴＲＡ）、ウルトラ・モバイル・ブロードバンド（ＵＭＢ）、ＩＥＥＥ ８０２． １１（Ｗｉ−Ｆｉ）、ＩＥＥＥ ８０２． １６（ＷｉＭＡＸ）、ＩＥＥＥ ８０２． ２０、Ｆｌａｓｈ−ＯＦＤＭ（登録商標）などのような無線技術を実装し得る。ＵＴＲＡおよびＥ−ＵＴＲＡは、ユニバーサル・モバイル・テレコミュニケーション・システム（ＵＭＴＳ）の一部である。３ＧＰＰ（登録商標）ロングタームエボリューション（ＬＴＥ（登録商標））およびＬＴＥアドバンスト（ＬＴＥ−Ａ）は、Ｅ−ＵＴＲＡを使用するＵＭＴＳの最新リリースである。ＵＴＲＡ、Ｅ−ＵＴＲＡ、ＵＭＴＳ、ＬＴＥ、ＬＴＥ−ＡおよびＧＳＭは、「第３世代パートナーシッププロジェクト」（３ＧＰＰ）と名付けられた団体からの文書で説明されている。ＣＤＭＡ２０００およびＵＭＢは、「第３世代パートナーシッププロジェクト２」（３ＧＰＰ２）名付けられた団体からの文書で説明されている。
【００３０】
[0057]  ビデオコーディングシステム１０のビデオコーディングデバイス１２、１４はまた、例えば、８０２．１１ａ−１９９９（通常、「８０２．１１ａ」と呼ばれる）、８０２．１１ｂ−１９９９（通常、「８０２．１１ｂ」と呼ばれる）、８０２．１１ｇ−２００３（通常、「８０２．１１ｇ」と呼ばれる）などの修正を含む、ＩＥＥＥ８０２．１１規格のような、１つまたは複数の規格に従ったＷＬＡＮ基地局上で互いと通信し得る。
【００３１】
[0058]  宛先デバイス１４は、復号される符号化ビデオデータを、リンク１６を介して受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図１Ａの例では、リンク１６は、ソースデバイス１２が符号化ビデオデータをリアルタイムで宛先デバイス１４に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送路などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００３２】
[0059]  図１Ａの例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０（単に、エンコーダ２０とも呼ばれる）と、出力インターフェース２２とを含む。いくつかの場合には、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、例えばビデオカメラ、前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックデータを生成するためのコンピュータグラフィックシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に図示されるように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。しかしながら、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。
【００３３】
[0060]  キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に送信され得る。符号化ビデオデータはまた（あるいは代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３１上に記憶され得る。図１Ａおよび図１Ｂに図示されるビデオエンコーダ２０は、図２Ａに示されるビデオエンコーダ２０、または本明細書で説明される他のビデオエンコーダを備え得る。
【００３４】
[0061]  図１Ａの例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０（単に、デコーダ３０とも呼ばれる）と、ディスプレイデバイス３２とを含む。いくつかの場合には、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介しておよび／またはストレージデバイス３１から符号化ビデオデータを受信し得る。リンク１６を介して通信され、またはストレージデバイス３１上に提供された符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するためのビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。図１Ａおよび図１Ｂに図示されているビデオデコーダ３０は、図２Ｂに図示されているビデオデコーダ３０、または本明細書で説明される他のビデオデコーダを備え得る。
【００３５】
[0062]  ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【００３６】
[0063]  関係する態様では、図１Ｂは例示的なビデオコーディングシステム１０’を示し、ここにおいて、ソースデバイス１２および宛先デバイス１４はデバイス１１上にあるかまたはそれの一部である。デバイス１１は、「スマート」フォンなどのような電話ハンドセットであり得る。デバイス１１は、ソースデバイス１２および宛先デバイス１４と動作可能に通信している（随意に存在する）プロセッサ／コントローラデバイス１３を含み得る。図１Ｂのビデオコーディングシステム１０’およびそれのコンポーネントは、他の場合には図１Ａのビデオコーディングシステム１０およびそれのコンポーネントと同様である。
【００３７】
[0064]  ビデオエンコーダ２０およびビデオデコーダ３０は、ＤＳＣなどの、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ Ｈ． ２６４規格、ＨＥＶＣなどの、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ＭＰＥＧ−２およびＩＴＵ−Ｔ Ｈ． ２６３を含む。
【００３８】
[0065]  図１Ａおよび図１Ｂの例には示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は、各々オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ Ｈ． ２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３９】
[0066]  ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの、様々な適切なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダの一部として統合され得る。
【００４０】
ビデオコーディングプロセス
[0067]  上記で簡潔に述べたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム（frame）」と呼ばれ得る。ビデオエンコーダ２０がビデオデータ（例えば、ビデオコーディングレイヤ（ＶＣＬ）データおよび／または非ＶＣＬデータ）を符号化するとき、ビデオエンコーダ２０は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。ＶＣＬデータは、コード化ピクチャデータ（すなわち、（１つまたは複数の）コード化ピクチャのサンプルに関連付けられた情報）を含み、非ＶＣＬデータは、１つまたは複数のコード化ピクチャに関連付けられた制御情報（例えば、パラメータセットおよび／または補足的な拡張情報）を含み得る。
【００４１】
[0068]  ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、量子化パラメータ（ＱＰ：quantization parameter)などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックは複数のサンプルの２次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション（例えば、コーディングモード）を定義し得る。コーディングオプションは、所望のＲＤ性能を達成するために選択され得る。
【００４２】
[0069]  いくつかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残り（the rest of the regions）からの情報なしに独立して復号され得る、画像（例えば、フレーム）中の空間的に別個の領域を含み得る。各画像またはビデオフレームは、単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームは、いくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるビットの数は、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス（coded slice）」と呼ばれ得る。
【００４３】
ＤＳＣビデオエンコーダ
[0070]  図２Ａは、本開示で説明される態様による技法を実装し得るビデオエンコーダ２０の一例を図示するブロック図である。ビデオエンコーダ２０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオエンコーダ２０の様々なコンポーネント間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明される技法の一部または全部を実行するように構成され得る。
【００４４】
[0071]  説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００４５】
[0072]  図２Ａの例では、ビデオエンコーダ２０は複数の機能コンポーネントを含む。ビデオエンコーダ２０の機能コンポーネントは、色空間変換器(color-space converter)１０５と、バッファ１１０と、平坦度検出器(flatness detector)１１５と、レートコントローラ(rate controller)１２０と、予測器(predictor)、量子化器(quantizer)、および再構成器コンポーネント(reconstructor component)１２５と、ラインバッファ(line buffer)１３０と、インデックスカラー履歴(indexed color history)１３５と、エントロピーエンコーダ(entropy encoder)１４０と、サブストリームマルチプレクサ(substream multiplexor)１４５と、レートバッファ(rate buffer)１５０とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能コンポーネントを含み得る。
【００４６】
[0073]  色空間変換器１０５は、入力色空間をコーディング実装において使用される色空間に変換し得る。例えば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青（ＲＧＢ）色空間中にあり、コーディングは、ルミナンスＹ、クロミナンスグリーンＣｇ、およびクロミナンスオレンジＣｏ（ＹＣｇＣｏ）色空間において実装される。色空間変換は、ビデオデータへのシフトおよび追加を含む（１つまたは複数の）方法によって実行され得る。他の色空間（other color-spaces）中の入力ビデオデータが処理され得、他の色空間への変換も実行され得ることに留意されたい。
【００４７】
[0074]  関係する態様では、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０、および／またはレートバッファ１５０を含み得る。例えば、バッファ１１０は、色空間変換されたビデオデータを、ビデオエンコーダ２０の他の部分によるそれの使用に先立って保持（例えば、記憶）し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータはＲＧＢ色空間中で記憶され得、色空間変換が必要に応じて実行され得る。
【００４８】
[0075]  レートバッファ１５０はビデオエンコーダ２０においてレート制御メカニズムの一部として機能し得、それは、レートコントローラ１２０に関して以下でより詳細に説明される。各ブロックを符号化することに費やされるビット数は、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ１５０は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、レートバッファ（例えば、レートバッファ１５０）中に記憶されたビットが固定ビットレート（ＣＢＲ：constant bit rate)でレートバッファから削除されるＣＢＲバッファモデルが採用される。ＣＢＲバッファモデルでは、ビデオエンコーダ２０がビットストリームにあまりに多くのビットを加えた場合、レートバッファ１５０はオーバーフローし得る。一方、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフローを防ぐために、十分なビットを加える必要があり得る。
【００４９】
[0076]  ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下でさらに詳細に説明される図２Ｂを参照）に加えられ得、ビデオデコーダ３０は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
【００５０】
[0077]  いくつかの実施形態では、バッファフルネス（ＢＦ：buffer fullness)は、バッファに現在あるビットの数を表す値BufferCurrentSizeと、レートバッファ１５０のサイズ、すなわち、任意の時点においてレートバッファ１５０に記憶され得るビットの最大数を表すBufferMaxSizeとに基づいて定義され得る。ＢＦは次のように計算され得る。
【数１】
2018536364.tif 000003
【００５１】
[0078]  平坦度検出器１１５は、ビデオデータ中の複雑な（すなわち、平坦でない）エリアからビデオデータ中の平坦な（すなわち、単純なまたは均一な）エリアへの変化を検出することができる。「複雑な」および「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用される。従って、本明細書で使用される複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０が符号化することが複雑であることを表し、例えば、テクスチャードビデオデータ（textured video data）、高い空間周波数、および／または符号化することが複雑である他の特徴を含み得る。本明細書で使用する平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０がエンコーダすることが単純であることを表し、例えば、ビデオデータ中の滑らかな勾配、低い空間周波数、および／または符号化することが単純である他の特徴を含み得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ中の量子化アーティファクト（quantization artifact）を低減するために、ビデオエンコーダ２０によって使用され得る。詳細には、レートコントローラ１２０、ならびに予測器、量子化器、および再構成器コンポーネント１２５は、複雑な領域から平坦な領域への遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
【００５２】
[0079]  レートコントローラ１２０は、コーディングパラメータのセット、例えば、ＱＰを決定する。ＱＰは、レートバッファ１５０がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ１５０のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適ＲＤ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション（例えば、特定のモード）を選択する。レートコントローラ１２０は、再構成された画像の歪みを、レートコントローラ１２０がビットレート制約を満たすように、すなわち、全体的実コーディングレート（overall actual coding rate）がターゲットビットレート内に収まるように最小限に抑える。
【００５３】
[0080]  予測器、量子化器、および再構成器コンポーネント１２５は、ビデオエンコーダ２０の少なくとも３つの符号化演算を実行し得る。予測器、量子化器、および再構成器コンポーネント１２５は、いくつかの異なるモードで予測を実行し得る。１つの例示的なプレディケーションモード（predication mode）は、メディアン適応予測（median-adaptive prediction）の修正バージョンである。メディアン適応予測はロスレスＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実装され得る。予測器、量子化器、および再構成器コンポーネント１２５によって実行され得るメディアン適応予測の修正バージョンは、３つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、上のラインまたは同じラインの左にある、前に再構成されたピクセルからサンプルが予測される。いくつかの実施形態では、ビデオエンコーダ２０およびビデオデコーダ３０は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行し得、従って、ビットはブロック予測モードで送られる必要がない。他の実施形態では、ビデオエンコーダ２０は、ビデオデコーダ３０が別個の探索を実行する必要がないように、探索を実行し、ビットストリームにおいてブロック予測ベクトルをシグナリングし得る。成分範囲（component range）の中点を使用してサンプルが予測される中点予測モード（midpoint prediction mode）も実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の抑制（bounding）を可能にし得る。図３−２６を参照して以下でさらに論じられるように、予測器、量子化器、および再構成器コンポーネント１２５は、本明細書で説明される１つまたは複数の技法に基づいて、ビデオデータのブロック（または予測の任意の他のユニット）をコーディング（例えば、符号化または復号）するように構成され得る。例えば、予測器、量子化器、および再構成器コンポーネント１２５は、図３−２６で図示される方法を実行するように構成され得る。他の実施形態では、予測器、量子化器、および再構成器コンポーネント１２５は、ビデオエンコーダ２０の１つまたは複数の他のコンポーネントを用いて本明細書で説明される１つまたは複数の方法または技法を実行するように構成され得る。
【００５４】
[0081]  予測器、量子化器、および再構成器コンポーネント１２５はまた、量子化を実行する。例えば、量子化は、シフタを使用して実装され得る２のべき乗量子化器（power-of-2 quantizer）を介して実行され得る。２のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。予測器、量子化器、および再構成器コンポーネント１２５によって実行される量子化は、レートコントローラ１２０によって決定されたＱＰに基づき得る。最終的に、予測器、量子化器、および再構成器コンポーネント１２５はまた、予測値に逆量子化された残差を加えることと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。
【００５５】
[0082]  予測器、量子化器、および再構成器コンポーネント１２５によって実行される予測、量子化、および再構成に対する上記で説明された例示的な手法は、単なる事例すぎず、他の手法が実装され得ることに留意されたい。また、予測器、量子化器、および再構成器コンポーネント１２５は、予測、量子化、および／または再構成を実行するための（１つまたは複数の）サブコンポーネントを含み得ることに留意されたい。さらに、予測、量子化、および／または再構成は、予測器、量子化器、および再構成器コンポーネント１２５の代わりにいくつかの別個のエンコーダコンポーネントによって実行され得ることに留意されたい。
【００５６】
[0083]  ラインバッファ１３０は、予測器、量子化器、および再構成器コンポーネント１２５ならびにインデックスカラー履歴（indexed color history）１３５が、バッファされたビデオデータを使用することができるように、予測器、量子化器、および再構成器コンポーネント１２５からの出力を保持（例えば、記憶）する。インデックスカラー履歴１３５は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ２０によって直接参照され得る。
【００５７】
[0084]  エントロピーエンコーダ１４０は、インデックスカラー履歴１３５と、平坦度検出器１１５によって識別された平坦度遷移（flatness transitions）とに基づいて、予測器、量子化器、および再構成器コンポーネント１２５から受信された予測残差および任意の他のデータ（例えば、予測器、量子化器、および再構成器コンポーネント１２５によって識別されたインデックス）を符号化する。いくつかの例では、エントロピーエンコーダ１４０は、サブストリームエンコーダごとにクロックごとに３つのサンプルを符号化し得る。サブストリームマルチプレクサ１４５は、ヘッダレスパケット多重化方式（headerless packet multiplexing scheme）に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ３０が並列に３つのエントロピーデコーダを動作させることを可能にし、クロックごとの３つのピクセルの復号を容易にする。サブストリームマルチプレクサ１４５は、パケットがビデオデコーダ３０によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの２のべき乗個のピクセル（例えば、２つのピクセル／クロックまたは４つのピクセル／クロック）の復号を容易にし得る、エントロピーコーディングに対する異なる手法が実装され得ることに留意されたい。
【００５８】
ＤＳＣビデオデコーダ
[0085]  図２Ｂは、本開示で説明される態様による技法を実装し得るビデオデコーダ３０の一例を図示するブロック図である。ビデオデコーダ３０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオデコーダ３０の様々なコンポーネント間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明される技法の一部または全部を実行するように構成され得る。
【００５９】
[0086]  説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００６０】
[0087]  図２Ｂの例では、ビデオデコーダ３０は複数の機能コンポーネントを含む。ビデオデコーダ３０の機能コンポーネントは、レートバッファ１５５と、サブストリームデマルチプレクサ１６０と、エントロピーデコーダ１６５と、レートコントローラ１７０と、予測器、量子化器、および再構成器コンポーネント１７５と、インデックスカラー履歴１８０と、ラインバッファ１８５と、色空間変換器１９０とを含む。ビデオデコーダ３０の図示されたコンポーネントは、図２Ａ中のビデオエンコーダ２０に関して上記で説明された対応するコンポーネントに類似する。従って、ビデオデコーダ３０のコンポーネントの各々は、上記で説明されたビデオエンコーダ２０の対応するコンポーネントと同様の様式で動作し得る。いくつかの実施形態では、ビデオエンコーダ２０および／またはビデオデコーダ３０の１つまたは複数のコンポーネントは、このようなコンポーネントのタスクを行うように構成されたソフトウェアコードを実行するように構成された１つまたは複数のハードウェアプロセッサで実装され得る。他の実施形態では、ビデオエンコーダ２０および／またはビデオデコーダ３０の１つまたは複数のコンポーネントは、このようなコンポーネントのタスクを行うように構成されたハードウェア回路で実装され得る。
【００６１】
ＤＳＣにおけるスライス
[0088]  上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなく独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、またはそれはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。
【００６２】
ブロック予測モード
[0089]  ビデオデータの単一のブロックはいくつかのピクセルを含み得、ビデオデータの各ブロックは、ブロックがコーディングされ得るいくつかの潜在的なコーディングモードを有する。そのようなコーディングモードのうちの１つが、ブロック予測モードである。ブロック予測モードでは、コーダは、（例えば、現在ブロックが現在スライスの第１のライン中にない場合）前の再構成されたライン中で、または（例えば、現在ブロックが現在スライスの第１のライン中にある場合）コーディングされる現在ブロックに（例えば、ピクセル値が）近い、同じライン中の前の再構成されたブロック中で候補ブロックを見つけることを試みる。いくつかの実施形態では、差分絶対値和（ＳＡＤ：Sum of Absolute Differences)メトリックによって、ピクセル値間の近さが決定される。コーダは、（例えば、エンコーダとデコーダの両方に知られているあらかじめ定められた値であり得る）探索範囲によって定義された前に再構成されたブロックの任意の部分中で候補ブロックを見つけることを試み得る。探索範囲は、エンコーダが、探索コストを最小限に抑えながら、良好な一致を見つけるために、探索範囲内に潜在的な候補を有するように定義される。ブロック予測モードのコーディング効率は、良好な候補（すなわち、コーディングされる現在ブロックにピクセル値が近いと決定された、探索範囲内の候補）が発見された場合、候補ブロックと現在ブロックとの間の（残差として知られる）差分が小さくなるという事実から来る。小さい残差は、現在ブロックの実際のピクセル値をシグナリングするために必要とされるビットの数と比較して、シグナリングするためにより少数のビットを要し、それにより、より低いＲＤコストが生じ、ＲＤメカニズムによって選択される可能性が増加する。ある特定のタイプのグラフィックコンテンツについて、ブロック予測モードを有効にすることからの性能ブーストが極めて著しい。
【００６３】
ブロック予測モードでのパラメータ
[0090]  ブロック予測モードは、指定された探索範囲が与えられると、符号化される現在ブロックからの最小歪みを提供する候補ブロックを生成するように設計される。いくつかの実施形態では、最小歪みは、ＳＡＤを使用して定義される。本開示のいくつかの実装では、ブロック予測方法は、３つのパラメータ、すなわち、探索範囲（ＳＲ：search range)と、スキュー（skew）（α）と、区分サイズ（partition size）（β）とによって定義される。これらの３つのパラメータは、ブロック予測モードの性能に影響を及ぼし、実装中に調整（すなわち、修正または再構成）され得る。これらのパラメータは、エンコーダとデコーダの両方に知られ得る。
【００６４】
ブロック予測モードでの探索空間
[0091]  本開示のいくつかの実施形態では、探索空間（例えば、エンコーダが、候補ブロックを見つけるために探索し得る、ピクセルの空間ロケーション）は、現在ブロックの特性に基づいて異なり得る。探索空間は、全ての前に再構成されたブロック／ピクセルを包含し得るが、エンコーダおよび／またはデコーダは、例えば、計算複雑さ（computational complexity）を低減するために、候補ブロックのための探索を探索空間内の指定された部分（例えば、ビットストリーム中であらかじめ定義されるかまたはシグナリングされるかのいずれかである１つまたは複数のパラメータによって定義される「探索範囲」）に制限し得る。ブロック予測探索空間の例が図３−図６に示される。図３および図４は、現在スライスの第１のライン中にない現在ブロック（例えば、現在ブロック３０８および４０８）を伴う場合を示す。図５および図６は、現在スライスの第１のライン中にある現在ブロック（例えば、現在ブロック５０６および６０６）を伴う場合を示す。これらの２つの場合は、スライス中の第１のラインが垂直ネイバー（vertical neighbor）を有していないので、別々に処理される。従って、現在ラインからの再構成されたピクセルは、探索範囲（例えば、探索範囲５０８および６０８）として活用され得る。本開示では、現在スライス中の第１のラインはＦＬＳと呼ばれ得、現在スライス中の任意の他のラインはＮＦＬＳと呼ばれ得る。
【００６５】
[0092]  さらに、本明細書で説明されるブロック予測技法は、単一のラインバッファ（すなわち、１Ｄブロックサイズ）を使用するコーデックまたは複数のラインバッファ（すなわち、２Ｄブロックサイズ）を使用するコーデックのいずれかにおいて実装され得る。１Ｄの場合のための探索空間の例が図３および図５に示され、２Ｄの場合のための探索空間の例が図４および図６に示される。２Ｄの場合、探索範囲は、前の再構成されたライン（例えば、前のライン４０２）からのピクセル、または２Ｄブロック中のラインと同じラインからの再構成されたブロック（例えば、現在ブロック６０６のすぐ左にある、現在ライン６０２中の前の６０４）を含み得る。２Ｄブロックは、水平方向または垂直方向のいずれかあるいはその両方に区分され得る。ブロック区分を伴う場合、各ブロック区分について、ブロック予測ベクトルが指定され得る。
【００６６】
ブロック予測モードの例示的な実装
[0093]  本開示のいくつかの実施形態では、ＳＡＤ以外の歪みメトリック、例えば２乗差分和（ＳＳＤ：sum of squared difference)が使用され得る。代替または追加として、歪みは重み付けによって修正され得る。例えば、ＹＣｏＣｇ色空間が使用されている場合、コストは次のように計算され得る。
【数２】
2018536364.tif 000004
【００６７】
[0094]  本明細書で説明されるブロック予測技法は、ＲＧＢ色空間またはＹＣｏＣｇ色空間のいずれか中で実行され得る。さらに、代替の実装は、両方の色空間を使用し、２つの色空間のうちのどちらが選択されるか（例えば、レートおよび歪みに関して最低コストを有するのがどちらの色空間か）を示す１ビットフラグをデコーダにシグナリングし得る。
【００６８】
[0095]  ＦＬＳに関する本開示のいくつかの実施形態では、１つまたは複数の直前の再構成されたブロック（direct previous reconstructed block or blocks）は、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。例えば、ハードウェア実装に応じて、コーダは、現在ブロックがコーダによって処理される時までに、直前の再構成されたブロックの処理を完了しない可能性があり（例えば、前のブロックのための再構成されたピクセルは、コーダが現在ブロックを処理し始めるときに知られていない可能性があり）、その結果、遅延または失敗が生じる。そのような実装では、前の再構成されたブロックの使用を、再構成されたピクセル値が知られているブロックに制限することによって（例えば、１つまたは複数の直前の再構成されたブロックを除外することによって）、上記に示されたパイプライン化問題は解決され得る。ＮＦＬＳに関する本開示のいくつかの実施形態では、現在ブロックの左の探索範囲は、前の再構成されたラインではなく、同じラインからであり得る。このような実施形態のうちのいくつかでは、１つまたは複数の前の再構成されたブロックは、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。
【００６９】
ＮＦＬＳの例示的な実装
[0096]  図３に示されているように、ブロック予測方法は、現在ブロック３０８のための候補を見つけるために、探索空間中で探索範囲３１０（ＳＲ）を探索し得る（および図４の探索空間４００中でも同様である）。符号化される現在ブロック３０８の第１のピクセルのｘ座標位置がｊである場合、探索空間内の全ての候補ブロックの開始位置のセットｋが次のように与えられ得る。
【数３】
2018536364.tif 000005
【００７０】
[0097]  この例では、パラメータαは、符号化される現在ブロックに対する探索範囲３１０のｘ座標位置をスキューする（skews）。αのより高い値が探索範囲３１０を右にシフトし、一方、αのより低い値が探索範囲３１０を左にシフトする。例えば、（i）３２のＳＲおよび１５のαが探索範囲３１０を前のライン３０２の中央に置き（place）得、（ii）３２のＳＲおよび０のαが探索範囲３１０を前のライン３０２の左側に置き得、（iii）３２のＳＲおよび３１のαが探索範囲３１０を前のライン３０２の右側に置き得る。
【００７１】
[0098]  本開示のいくつかの実装では、探索範囲内にあるが、スライス境界の外側にあるピクセルが、そのピクセルのためのダイナミックレンジの１／２に設定され得る。例えば、コンテンツがＲＧＢ８８８である場合、Ｒ、Ｇ、およびＢのために１２８のデフォルト値が使用され得る。コンテンツがＹＣｏＣｇ空間中にある場合、Ｙのために１２８のデフォルト値が使用され得、ＣｏおよびＣｇのために０のデフォルト値が使用され得る（例えば、ＣｏおよびＣｇは、０を中心とする９ビット値である）。
【００７２】
ＦＬＳの例示的な実装
[0099]  図５に示されているように、探索範囲は、ＦＬＳの場合について異なり得る。これは、垂直ネイバーが、そのような垂直ネイバーが現在フレームの外側にあるので、またはそのような垂直ネイバーが異なるスライス内に含まれているので、利用可能でないからである。ＦＬＳの場合に関する本開示のいくつかの実施形態では、ブロック予測のために現在ライン中のピクセルが使用され得る。一実施形態では、現在ブロックの左の現在ライン中の任意のピクセルは探索範囲の一部として考慮され得る。別の実施形態では、１つまたは複数の前にコーディングされたブロック（例えば、現在ブロックのすぐ左にある前のブロック５０４）は、パイプライン化制約およびタイミング制約により探索範囲から除外され得る。
【００７３】
[0100]  ＦＬＳのいくつかの実装では、スライスの第１のライン中の最初の数個のブロックのための利用可能な範囲は、一般に他のブロックのために予想される探索範囲よりも小さくなり得る。これは、候補ブロックのための有効な位置が、ラインの最初に開始し、現在ブロックの前に終了するからである。ＦＬＳ中の最初の数個のブロックの場合、この有効範囲は、所望の範囲（例えば、３２個または６４個の位置）よりも小さくなり得る。従って、これらのブロックの場合、探索範囲は、候補ブロックの各ブロック区分が探索範囲内に完全に含まれているように調整される必要があり得る。ＮＦＬＳの場合、探索範囲は、探索位置の総数が、定義された探索範囲（例えば、３２個または６４個のピクセル位置）に等しくなるように左または右にシフトされ得る。ｊが現在ブロック中の第１のピクセルであるので、現在ブロック中の最後のピクセルはｊ＋blkWidth−１である。この理由で、探索範囲は、左に（blkWidth−１）ピクセルシフトされる必要があり得る。
【００７４】
[0101]  ＦＬＳのいくつかの実装では、符号化される現在ブロックの第１のピクセルのｘ座標ロケーションがｊと呼ばれる場合、探索範囲内の全ての候補ブロックの開始位置のセットが次のように与えられ得る。
【００７５】
[0102]  （i）直近の前の再構成されたブロックが探索範囲の一部であり、例えば、α＝１である場合、
【数４】
2018536364.tif 000006
【００７６】
[0103]  （ii）ｎ個の直近の前の再構成されたブロックが探索範囲から除外されるである場合、
【数５】
2018536364.tif 000007
【００７７】
[0104]  ここで、ｂｌｋｘはブロック幅である。ＮＦＬＳの場合に関して上記で説明されたように、スライス境界の外側の任意のピクセルがデフォルト値に設定され得る。また、スキューパラメータ（skew parameter）がＦＬＳの場合に関連付けられる必要がないことに留意されたい。
【００７８】
ブロック予測モードでコーディングするための例示的なフローチャート
[0105]  図７を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図７に示されているステップは、ビデオエンコーダ（例えば、図２Ａ中のビデオエンコーダ２０）、ビデオデコーダ（例えば、図２Ｂ中のビデオデコーダ３０）、またはそれらの（１つまたは複数の）コンポーネントによって実行され得る。便宜上、方法７００は、ビデオエンコーダ２０、ビデオデコーダ３０、または別のコンポーネントであり得る、（単にコーダとも呼ばれる）ビデオコーダによって実行されるものとして説明される。
【００７９】
[0106]  方法７００はブロック７０１において開始する。ブロック７０５において、コーダは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定する。候補ブロックは、１つまたは複数のブロック予測パラメータによって定義された複数のロケーション（または複数のピクセル位置）の範囲内にあり得る。例えば、ブロック予測パラメータは、（i）複数のロケーションの範囲のサイズを定義する探索範囲パラメータと、（ii）現在ブロックに関する複数のロケーションの範囲の相対ロケーション（relative location）を定義するスキューパラメータと、（iii）現在ブロック中の各区分のサイズを定義する区分サイズパラメータとを含み得る。本開示のいくつかの実施形態では、探索範囲パラメータ、スキューパラメータ、および区分サイズパラメータの各々は、時間的にではなく、空間的に、候補ブロックの複数のロケーションを定義する。
【００８０】
[0107]  ブロック７１０において、コーダは、候補ブロックと現在ブロックとに基づいて予測ベクトルを決定する。予測ベクトルは、現在ブロックに関する候補ブロックのロケーションを識別し得る。予測ベクトルは、１つまたは複数の座標値（例えば、１Ｄ空間中のオフセットを示す座標値）を含み得る。ブロック７１５において、コーダは、予測ベクトルをシグナリングすることを少なくとも部分的に介して、ブロック予測モードで現在ブロックをコーディングする。いくつかの実施形態では、コーダはまた、候補ブロックと現在ブロックとの間の残差をシグナリングし得る。現在ブロックの実際のピクセル値をシグナリングしなければならないのではなく、候補ブロックのロケーションを識別する予測ベクトルと、現在ブロックと候補ブロックとの間の差分を表す残差とをシグナリングすることによって、ビット節約（Bit saving）が達成され得る。方法７００はブロック７２０において終了する。
【００８１】
[0108]  方法７００では、図７に示されているブロックのうちの１つまたは複数は削除される（例えば、実行されない）可能性があり、および／または方法が実行される順序は入れ替えられ得る。いくつかの実施形態では、さらなるブロックが方法７００に追加され得る。本開示の実施形態は、図７に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
【００８２】
候補ブロックを見つけた後
[0109]  最良の候補ブロックが決定された後、候補ブロックのピクセル値は、現在ブロックのピクセル値から減算され、その結果、残差が生じる。残差は、ブロック予測モードに関連付けられたあらかじめ選択されたＱＰに基づいて量子化され得る。量子化された残差は、（固定長または可変長のいずれかであり得る）コードブックを使用して符号化され、固定長コード（fixed-length code）または可変長コード（variable-length code）を使用してシグナリングされ得る。選択されたコードブックは、コーディング効率およびハードウェア複雑さ要件に基づき得る。例えば、選択されたコードブックは指数ゴロムコードブック（Exp-Golomb codebook）であり得る。本開示のいくつかの実施形態では、既存のＤＳＣ実装のデルタサイズ単位可変長コーディング（ＤＳＵ−ＶＬＣ：delta size unit variable length coding)と同様であるエントロピーコーディング方式が使用され得る。いくつかの実施形態では、残差は、上記で説明された量子化の前に、（例えば、直接コサイン変換、アダマール変換、または他の知られている変換を使用して）変換され得る。
【００８３】
[0110]  本開示のいくつかの実施形態では、現在ブロックの残差中のサンプルは複数のグループに区分され得る（例えば、１６個のサンプルを含んでいるブロックに関して、グループごとに４つのサンプル）。ブロック中の全ての係数が０である場合、ブロックの残差は、スキップモードを使用してコーディングされ、すなわち、ブロック中の現在成分がスキップモードを使用してコーディングされるか否かを示すための、ブロックごとの（成分ごとの）１ビットフラグがシグナリングされる。少なくとも１つの０でない値がブロック内に含まれている場合、各グループは、グループが１つの０でない値を有する場合のみ、ＤＳＵ−ＶＬＣを使用してコーディングされ得る。グループ（例えば、残差中の１６個のサンプルのうちの４つのサンプル）が０でない値を含んでいない場合、グループは、スキップモードを使用してコーディングされ、すなわち、グループがスキップモードを使用してコーディングされるか否かを示すための、グループごとの１ビットフラグがシグナリングされる。より詳細には、各グループについて、グループ中の全ての値が０であるかどうかを決定するために、探索が実行され得る。グループ中の全ての値が０である場合、「１」の値がデコーダにシグナリングされ得、他の場合（少なくとも１つの値が０でない場合）、「０」の値がデコーダにシグナリングされ、その後にＤＳＵ−ＶＬＣコーディングのコーディングが続き得る。代替例では、グループ中の全ての値が０である場合、「０」の値がシグナリングされ得、グループが少なくとも１つの０でない値を含んでいる場合、「１」の値がシグナリングされ得る。
【００８４】
[0111]  本開示のいくつかの実施形態では、最良の候補ブロックは、最良のオフセットを含んでいる固定長コードを送信することによって、デコーダに明示的にシグナリングされる。オフセットは「ベクトル」と呼ばれ得る。ベクトルをデコーダに明示的にシグナリングすることの利点は、デコーダがブロック探索自体を実行する必要がないことである。むしろ、デコーダは、明示的にベクトルを受信し、現在ブロックのピクセル値を決定するために、復号された、逆量子化された残差値に、候補ブロックを加える。
【００８５】
ブロック区分
[0112]  本開示のいくつかの実施形態では、コーディングされる現在ブロックが区分され、その結果、ブロックごとに複数の候補ブロックと複数のベクトルとが生じ得る。そのような実施形態のうちのいくつかでは、（１つまたは複数の）ベクトルは、固定長コードを使用して明示的にシグナリングされ得る。例えば、この固定長コードの長さはｌｏｇ２（ＳＲ）であり得る。別の実施形態では、（１つまたは複数の）ベクトルは、指数ゴロムまたはゴロムライスコード（Golomb-Rice code）ファミリからのコードなどの、可変長コードを使用して明示的にシグナリングされ得る。このコードブックは、（１つまたは複数の）ベクトルに関連付けられた統計的分布に基づいて選択され得る。また別の実施形態では、（１つまたは複数の）ベクトルは、前にコーディングされた（１つまたは複数の）ベクトルに基づいて予測され得、（１つまたは複数の）ベクトルの残差は、何らかの固定長または可変長コードを使用してコーディングされ得る。また別の実施形態では、（１つまたは複数の）ベクトルは、前にコーディングされた（１つまたは複数の）ベクトルに基づいて予測され得、２つのベクトルが同じであるかどうかをシグナリングするための１ビットフラグが使用され得る。このフラグはSameFlagと呼ばれ得る。SameFlag＝１である場合、ベクトル値自体はデコーダにシグナリングされる必要がない。SameFlag=0である場合、ベクトルは、（例えば、固定長コードまたは可変長コードのいずれかを使用して）明示的にシグナリングされる。例示的なブロック区分方式が図８に示されている。
【００８６】
[0113]  図８の図８００に示されているように、現在ブロック８０２が単一の区分を含んでいる。現在ブロック８０２のためにシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルＡ、およびペイロードを備える。現在ブロック８０４は、２つの区分、区分Ａと区分Ｂとを含んでいる。現在ブロック８０４のためにシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルＡ、ベクトルSameFlag、ベクトルＢ、およびペイロードを備える。上記で説明されたように、上記で列挙された１つまたは複数の項目はシグナリングされない可能性がある。例えば、ベクトルSameFlagが１に等しい場合、後続のベクトルはシグナリングされる必要がない。
【００８７】
[0114]  区分サイズβは、別個のサブブロックへの現在ブロックの区分を決定し得る。そのような場合、各サブブロックについて、別個のブロック予測が実行され得る。例えば、ブロックサイズがＮ＝１６であり、区分サイズβ＝８β＝８である場合、探索は１６／８＝２つの区分の各々について実行される。別の例では、β＝Ｎである場合、ブロック区分は無効にされる。β＜Ｎである場合、各ベクトルはデコーダに明示的にシグナリングされ得る。（例えば、現在ベクトルを定義するために、前にシグナリングされたベクトルを使用する）ベクトル予測が採用されない場合、各ベクトルは、固定長または可変長コードを使用してシグナリングされる。ベクトル予測が採用される場合、第１のベクトルは、前のコーディングされたベクトルから予測され（例えば、メモリに記憶され）得、ｎ＞０について、ベクトルｎはベクトルｎ−１から予測される。
【００８８】
ブロック予測モードにおける可変の区分サイズ
[0115]  上記の例は、１×８のサイズを有する（例えば、１ピクセルの高さと８ピクセルの幅とを有する）、または２×８（例えば、２ピクセルの高さと８ピクセルの幅とを有する）ブロックが、どのようにブロック予測モードでコーディングされ得るかを例示する。図８に示されているように、ブロックは、複数の領域に区分され得、各領域は、異なる区分方式を使用して（例えば、１×２区分を使用して、２×２区分を使用して、など）コーディングされ得、ブロック予測ベクトルは、各区分について指定され得る（例えば、各区分に関連付けられた残差とともにビットストリームにおいてシグナリングされる）。例えば、各ブロックは、２つのピクセル（または、他の固定されたサイズの区分）を含む複数の１×２区分に区分され得る。
【００８９】
[0116]  他の実施形態では、エンコーダは、（ブロック内の各サブ領域についての）各ブロックについての最も効率的であるブロック区分サイズを決定し得る。効率は、所与のブロック区分サイズを使用して、ブロック（またはその中のサブ領域）をコーディングすることに関連付けられたレートおよび歪みに基づいて測定され得る。例えば、４つの２×２領域を含むブロックをコーディングするとき、エンコーダは、単一の区分（例えば、各２×２領域についての単一の２×２区分）を使用して第１の３つの２×２領域をコーディングすること、および２つの区分（例えば、２つの１×２区分）を使用して第４の２×２領域をコーディングすることによって、最大コーディング効率が達成され得ることを決定し得る。エンコーダが各ブロックについての区分サイズを適用可能に選択するのを可能にすることによって、ブロック予測方式の性能はさらに改善され得る。これは、大きい区分が、領域（例えば、領域にわたるピクセル値において、変化がないかまたは閾値量の変化よりも小さいことを示す領域）を平滑化するために使用され得、それにより、ブロック予測ベクトル（例えば、領域のサイズに関連する）をシグナリングするためにより少ないビットを要求するからであり、一方より小さい区分を使用することは、（歪みおよび／またはエントロピーコーディングレートの減少が追加のシグナリングコストを重み付けする）複雑な領域のために使用され得る。例えば、エンコーダは、所与の領域またはブロックが平滑化閾値条件を満たすかどうかを決定し得、所与の領域またはブロックが平滑化閾値条件を満たすと決定することに応答して、より大きい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化（他の場合には、より小さい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化）し得る。別の例として、エンコーダは、所与の領域またはブロックが複雑さ閾値条件を満たすかどうかを決定し得、所与の領域またはブロックが複雑さ閾値条件を満たすと決定することに応答して、より小さい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化（他の場合には、より大きい区分サイズを使用してブロック予測モードで所与の領域またはブロックを符号化）し得る。異なる区分サイズを適用可能に選択するための能力は、ブロック予測モードが、コンテンツタイプ（例えば、グラフィックコンテンツ、自然画像、テストパターン、細かいテキストレンダリング）のより広い範囲で使用されることを可能にし得る。
【００９０】
ブロック予測モードにおけるコーディングの例示的なデータフロー
[0117]  図９は、適応型区分サイズを使用してブロック予測モードでブロックをコーディングするための例示的なデータフロー９００を図示する。図９に図示さていれるように、ブロック予測モードで予測される現在ブロック９０２は、ブロック区分９０４を含む。一例では、ブロック区分は、１×２または２×２のサイズを有する。ブロック予測（ＢＰ：block prediction）探索９０６は、ブロック予測モードで現在ブロック９０２（またはブロック区分９０４）を予測するために利用可能なおよび既にコーディングされているブロックまたは区分を識別するために実施される。図９に示されているように、ＢＰ探索９０６は、例えば、前のライン（例えば、すぐ前のライン（immediately preceding line）または別の先行するラインなどの、現在ブロックを含む現在のラインをコーディングすることに先立ってコーディングされたライン）中の１つまたは複数の前の再構成されたブロック９０７Ａ、および／または現在のライン（例えば、現在ブロックを含むライン）からの前の再構成されたブロック９０７Ｂを含む、探索範囲内を探索し得る。
【００９１】
[0118]  エンコーダは、探索範囲において識別された候補ブロックまたは区分に基づいてブロック予測器９０８を決定する。ブロック予測器９０８は、ブロック９１０において現在ブロック９０２（または候補ブロック９０２内の現在ブロック区分９０４）から減算され、減算に基づいて決定された残差は、ブロック９１２において量子化される。量子化された残差は、エントロピーコーダ９２０によってエントロピーコーディングされる。さらに、逆量子化９１４は、量子化された残差に対して実行され、結果が、再構成されたブロック９１８を生成するためにブロック９１６においてブロック予測器９０８に加えられる。ＢＰ区分サイズ選択９２２は、再構成されたブロック９１８の歪み性能（Ｄ）およびエントロピー符号化された残差のレート性能（Ｒ）に基づいて実行される。ビットストリーム９２４は、選択されたＢＰ区分サイズに基づいて生成される。
【００９２】
[0119]  例えば、ＢＰ区分サイズ選択９２２は、現在ブロック９０２内の各区分領域（例えば、２×２）のレート（例えば、Ｒ）および歪み（例えば、Ｄ）を入力として受け取り、区分領域が単一のブロック予測ベクトル（ＢＰＶ：block prediction vector)（例えば、単一の２×２区分について合計１ＢＰＶ）を使用してコーディングされるべきか、または複数のＢＰＶ（例えば、２つの１×２区分について各々１ＢＰＶである、合計２ＢＰＶ）を使用して区分およびコーディングされるべきかを、２つのオプション間のＲＤトレードオフに基づく予測のために決定し得る。本明細書で論じられるいくつかの例は２×２の区分領域サイズを含む（それにより、選択可能なオプションとして１×２、２×１、および２×２の区分サイズを有する）が、エンコーダによって選択可能な区分サイズは、このような例（例えば、１×２および２×２）で使用されるものに限定されず、ブロックサイズおよび／または領域サイズに基づいて他のサイズ（例えば、２×１）を含み得る。
【００９３】
[0120]  いくつかの実施形態では、区分サイズは、現在区分領域またはブロック中で固定される（例えば、１×２、２×２、またはピクセルの任意の他のサブコンビネーション。例えば、あるブロックは、２×８のブロックサイズを有し得、そのブロックは、２×２のサイズを有するサブブロックまたは領域に分割され得る。２×８ブロック内の２×２サブブロックまたは領域は、１×２のサイズを有する区分にさらに区分され得る。このような例では、他の区分から独立して、各１×２区分は単一のＢＰＶを使用して予測され得る。他の実施形態では、区分サイズは可変であり、どの区分サイズを使用して各ブロック、サブブロック、および／または領域がブロック予測においてどのようにコーディングされるかは、各区分方式のレートおよび歪み性能に基づいてエンコーダによって決定され得る。例えば、現在ブロック内の２×２領域（例えば、現在領域）について、２つの１×２区分に現在領域を分割することによって現在領域を予測すること、および（例えば、定義された探索範囲内の、前にコーディングされた１×２区分に各々が向けられている）２つのＢＰＶを別個に使用して２つの１×２区分を予測することが、（例えば、２×２のような他の区分方式と比較して）より良いレートおよび／または歪み性能をもたらす場合、現在領域は、１×２区分方式を使用して予測され得る。一方、（例えば、定義された探索範囲内の、前にコーディングされた２×２区分を示す）１つのＢＰＶを使用して単一の２×２区分として現在領域を予測することが、（例えば、１×２のような他の区分方式と比較して）より良いレートおよび／または歪み性能をもたらす場合、現在領域は、２×２区分方式を使用して予測され得る。予測モードにおいてブロックをコーディングするために使用される区分方式を決定するプロセスは、図１４を参照して下記でより詳細に説明される。
【００９４】
ブロックサイズおよびサブブロックサイズ
[0121]  Ｍ×Ｎのブロックサイズについて、いくつかの実施形態は、Ｍｓｕｂ≦ＭかつＮｓｕｂ≦Ｎである、サイズＭｓｕｂ×Ｎｓｕｂのサブブロック（本明細書では、領域とも呼ばれる）を参照して説明される。いくつかの実装では、計算を簡単にするために、ＭｓｕｂとＮｓｕｂとの両方がＭ×Ｎブロック内のエントロピーコーディンググループにアラインされる（aligned）。ブロック内の各サブブロックＭｓｕｂ×Ｎｓｕｂは、各区分のために使用されるＢＰＶを用いて、（i）さらに区分されることなく単一のＢＰＶを使用して予測されるか、あるいは（ii）複数の区分に（例えば、２つの１×２区分に）区分されるかのいずれかであり得る。サブブロック全体について単一のＢＰＶを使用すること、または各々がそれ自体のＢＰＶを有する区分にサブブロックを区分することの間の効率的なトレードオフは、より多くのＢＰＶをシグナリングすることがビットストリーム中の余分なレートをもたらす可能性があるが、しかしながら、より多くのＢＰＶを使用することによって、歪みおよびエントロピーコーディングレートは減少し得る。言い換えれば、さらなるＢＰＶをシグナリングするためにより多くのビットを使用することによって、残差（候補ブロック／領域と現在ブロック／領域との間の差）をシグナリングするために使用されるビットの数が減少し、それはさらに、エントロピーコーディングのために使用されるビットの数もまた同様に減少することを引き起こす。エンコーダは、ＲＤコストに関して各オプション（例えば、区分が存在しないこと対複数の区分）を比較し、そのコスト比較に基づいて各サブブロックまたは領域を区分するか否かを選択するか、あるいは最良のＲＤ性能を提供する複数の区分方式から１つの区分方式を選択し得る。
【００９５】
例示的な区分方式
[0122]  図１０は、例示的な区分方式を図示する図１０００を図示する。図１０には、２×２サブブロックまたは領域についての２つの区分オプションが図示されている。この例では、ブロック１００２（例えば、ピクセルＸ０〜Ｘ１５を含む）は、２×８のサイズを有しており、ブロック内のサブブロックまたは領域１００４（例えば、ピクセルＸ０、Ｘ１、Ｘ８、およびＸ９を含む）は、２×２のサイズを有している。区分オプション１００６は、単一のＢＰＶを使用してサブブロックまたは領域１００４が予測される例を図示しており、区分オプション１００８は、サブブロックまたは領域１００４内の各１×２区分について２つのＢＰＶを使用してサブブロックまたは領域１００４が予測される例を図示している。図１１で示される、ブロック予測モードについてのエントロピーコーディンググループ構造１１００にサブブロックまたは領域をアラインするために、アドバンストＤＳＣ（Ａｄｖ−ＤＳＣ）のようないくつかの実装において、２×２のサイズを有するサブブロックまたは領域が使用される。図１１の例では、エントロピーコーディンググループ０、１、２、および３が図示されており、各々が、ブロック内の４つの２×２サブブロックまたは領域のうちの１つに対応する。しかしながら、本明細書で説明される技法は、このような実施形態に限定されるものではなく、いずれのブロックサイズＭ×ＮおよびいずれのサブブロックサイズＭｓｕｂ×Ｎｓｕｂにも拡張され得る。しかしながら、下記に図示される例では、パラメータＭ＝２、Ｎ＝８、Ｍｓｕｂ＝２、Ｎｓｕｂ＝２が使用される。いくつかの実施形態では、サブブロックおよび／または区分方式は、エントロピーコーディンググループに基づいて決定され得る。例えば、サブブロックおよび／または区分方式は、各サブブロックおよび／または区分方式が単一のエントロピーコーディンググループ内に含まれるように決定され得る。
【００９６】
区分サイズを決定する
[0123]  エンコーダは、（i）単一の２×２区分として各２×２領域をコーディングするか、または（ii）２つの１×２区分に領域を分割し、最小ＲＤコストに基づいて各１×２区分を別個にコーディングするかを決定し得る。ＲＤコストは、下記に示されるように計算され得る。
【数６】
2018536364.tif 000008
【００９７】
[0124]  いくつかの実装では、ＢＰＶは、ｌｏｇ２（ＳＲ）ｌｏｇ２（ＳＲ）に等しい、固定数のビット（ＢＰＶｂｉｔｓ）を用いてシグナリングされ、ここで、ＳＲはブロック予測モードに関連付けられた探索空間（または探索範囲）である。例えば、探索空間が６４個の位置からなる場合、ｌｏｇ２（６４）＝６ビットが各ＢＰＶをシグナリングするために使用される。
【００９８】
[0125]  可変の区分サイズを用いたブロック予測のための探索空間は、図３〜６を参照して論じられる探索範囲とは若干異なり得る。特に、Ｍｓｕｂ×Ｎｓｕｂサブブロックは、高さＭｓｕｂを用いた探索空間を利用し得る。このような場合には、可変の区分サイズを用いないブロック予測に対して、可変の区分サイズを用いたブロック予測を実装するために、追加のラインバッファを必要とし得る。このような探索空間の例が、２×２のサブブロックサイズに関する図１２において証明される。図１２は、例示的な探索範囲を図示する図１２００を図示する。図１２に示されているように、現在ライン１２０２は、（i）現在サブブロック１２０６を有する現在ブロック１２０４と、（ii）前のブロック１２０８とを含む。図１２の例では、前のライン１２１０は、現在サブブロック１２０６を予測するために候補サブブロック１２１４をエンコーダが選択し得る探索範囲１２１２を含む。１Ｄ区分（例えば、１×２）についての探索範囲または空間は、図３を参照して先に説明された探索範囲に類似しており、単一の前の再構成されたラインに依存し得る。
【００９９】
[0126]  いくつかの実施形態では、歪みＤ２×２およびＤ１×２は、ＹＣｏＣｇ色空間中の修正された差分絶対値和（ＳＡＤ）を使用して計算され得る。例えば、ＹＣｏＣｇ色空間中のピクセルＡ（例えば、現在サブブロックまたは区分中の）とピクセルＢ（例えば、候補サブブロックまたは領域中の）との間のＳＡＤ歪みは、下記のように計算され得る。
【数７】
2018536364.tif 000009
【０１００】
[0127]  現在サブブロックまたは区分が１より多いピクセルを有する場合、全体の現在サブブロックまたは区分についての歪みは、現在サブブロックまたは区分中の各ピクセルについて計算された個々のＳＡＤを合計することによって計算され得る。現在サブブロックまたは区分のピクセル値は、実際のピクセル値または再構成されたピクセル値（例えば、候補予測器（candidate predictor）および残差に基づいて計算された）であり得る。いくつかの実装では、ラムダパラメータは、２の値で固定され得る。他の実装では、このパラメータは、ブロックサイズ、ビットレート、または他のコーディングパラメータに依存して調整され（be tuned）得る。
【０１０１】
[0128]  エントロピーコーディングコストＥＣｂｉｔｓは、各２×２の領域について計算され得る。各エントロピーコーディンググループにおける４つのサンプルは、単一のＢＰＶ（例えば、２×２区分）から予測される２×２の量子化された残差、または２つのベクトル（例えば、２つの１×２区分）を利用する２×２の量子化された残差のいずれかに由来し得る。例えば、エントロピーコーディングコストは、（例えば、（１つまたは複数の）ベクトルおよび残差を含む）ビットストリーム中の各エントロピーコーディンググループをシグナリングするために必要とされるビットの数を表し得る。計算されたエントロピーコーディングコストに基づいて、エンコーダは、各２×２領域についての最低コストを有する区分方式を選択し得る。いくつかの実施形態は、２×２サブブロックサイズ、２×２エントロピーコーディンググループ、および２つの区分方式（１×２および２×２）を有する２×８ブロックを参照して論じられるが、本明細書で説明される技法は、他のブロックサイズ、サブブロックサイズ、エントロピーコーディンググループ、および／または区分方式に拡張され得る。
【０１０２】
ビットストリーム中のシグナリングコーディング情報
[0129]  図１０に示される２×８ブロック１００２では、４つの２×２領域の各々が、上記で説明されたＲＤコスト分析に基づいて区分され得る。例えば、各２×２領域は、単一の２×２区分または２つの１×２区分のいずれかに区分され得る。このような区分の４つの例が、図１３の図１３００で図示される。図１３に示されているように、ブロック１３０２は、２×２区分方式に基づいて予測された４つのサブブロックを有し、ブロック１３０４は、２×２区分方式に基づいて予測された３つのサブブロックと、１×２区分方式に基づいて予測された１つのサブブロックとを有し、ブロック１３０６は、１×２区分方式に基づいて予測された４つのサブブロックを有し、ブロック１３０８は、２×２区分に基づいて予測された１つのサブブロックと、１×２区分方式に基づいて予測された３つのサブブロックとを有する。デコーダにＢＰＶをシグナリングすることに加えて、エンコーダはまた、デコーダが区分を適切に推測することができるように、各２×２領域についての１ビットを送り得る。Ａｄｖ−ＤＳＣ実装のようないくつかの実装では、ブロック内の各領域（例えば、２×８ブロックにおける各２×２領域）のために選択された区分方式を示す４つのビットのグループは、ビットストリームにおいてシグナリングされる。このような実装では、４つのビット「１０１１」は、ブロック中の第１、第３、および第４の領域（例えば、２×２サブブロック）が第１の区分方式に基づいて（例えば、１×２区分に基づいて）予測またはコーディングされ、一方、第２の領域（例えば、２×２サブブロック）は、第２の区分方式に基づいて（例えば、２×２区分に基づいて）予測またはコーディングされることを示し得る。いくつかの実施形態では、ビットストリーム中のこれら４つのビットに後続して、ＢＰＶが、ＢＰＶごとの固定されたビットを使用してシグナリングされ得る。先の例（例えば、「１０１１」のビットシーケーンス）では、７ＢＰＶがシグナリングされ得る。
【０１０３】
ブロック予測モードでコーディングするための例示的なフローチャート
[0130]  図１４を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図１４に図示されるステップは、ビデオエンコーダ（例えば、図２Ａのビデオエンコーダ２０）、またはそれらの（１つまたは複数の）コンポーネントによって実行され得る。便宜上、方法１４００は、ビデオエンコーダ２０、または別のコンポーネントであり得る、（単にコーダとも呼ばれる）ビデオコーダによって実行されるものとして説明される。
【０１０４】
[0131]  方法１４００はブロック１４０１において開始する。ブロック１４０５において、コーダは、第１の区分方式を使用して現在領域（例えば、ブロック予測モードでコーディングされるビデオデータのブロック内の）を予測するために使用される１つまたは複数の第１の候補領域を決定する。例えば、第１の候補領域は、２×８ブロックにおける２×２領域のうちの１つであり得る。第１の区分方式は、現在領域が複数の区分（例えば、２つの１×２区分）に区分される区分方式であり得る。いくつかの実施形態では、１つまたは複数の第１の候補領域は、第１の区分方式に関連付けられたロケーションの第１の範囲（例えば、第１の区分方式に関連付けられた探索範囲）内にある。１つまたは複数の第１の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
【０１０５】
[0132]  ブロック１４１０において、コーダは、第２の区分方式を使用して現在領域を予測するために使用される１つまたは複数の第２の候補領域を決定する。例えば、第２の区分方式は、現在領域が複数の区分に区分されない（例えば、現在領域が単一の２×２区分としてコーディングされる）区分方式であり得る。別の例では、第２の区分方式は、現在領域が、第１の区分方式のために使用される区分の数とは異なる区分の数に区分される区分方式であり得る。いくつかの実施形態では、１つまたは複数の第２の候補領域は、第２の区分方式に関連付けられたロケーションの第２の範囲（例えば、第２の区分方式に関連付けられた探索範囲）内にある。１つまたは複数の第２の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
【０１０６】
[0133]  ブロック１４１５において、コーダは、第１の区分方式を使用して現在領域をコーディングすることに関連付けられた第１のコストが、第２の区分方式を使用して現在領域をコーディングすることに関連付けられた第２のコストよりも大きいことを決定する。例えば、コーダは、第１の区分方式を使用して現在領域をコーディングすることに関連付けられたレートおよび歪みに基づくコスト、および第２の区分方式を使用する現在領域をコーディングすることに関連付けられたレートおよび歪みに基づくコストを計算し、計算されたコストを比較し得る。
【０１０７】
[0134]  ブロック１４２０において、コーダは、現在領域に関する１つまたは複数の第２の候補領域のロケーションを識別する１つまたは複数の予測ベクトルをシグナリングすることを少なくとも部分的に介して、第２の区分方式を使用して現在領域をコーディングする。方法１４００はブロック１４２５において終了する。
【０１０８】
[0135]  方法１４００では、図１４に示されているブロックのうちの１つまたは複数は削除され（例えば、実行されない）得、および／または方法が実行される順序は入れ替えられ得る。いくつかの実施形態では、さらなるブロックが方法１４００に追加され得る。本開示の実施形態は、図１４に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
【０１０９】
４：２：０および４：２：２クロマサブサンプリングフォーマットへの拡張
[0136]  いくつかの実装では、本開示で説明されるブロック予測技法（例えば、ブロック予測モードで可変の区分サイズを使用する）は、４：４：４クロマサンプリングフォーマットのみに対して利用され得る。このフォーマットは、主にグラフィックコンテンツのために使用される。例えば、４：４：４クロマサンプリングフォーマットは、（例えば、クロマサブサンプリングを使用しない）同じサンプリングレートを有する色成分（例えば、ルーマ成分およびクロマ成分）を含むイメージまたはビデオデータを利用する。しかしながら、４：４：４クロマサンプリングフォーマットは、他のビデオアプリケーションのために主に使用される頻度は少ない可能性がある。クロマサブサンプリングが提供し得る大幅な圧縮のために、４：２：０および４：２：２の両方のクロマサブサンプリングフォーマットは、ビデオアプリケーションのために主に使用される。例えば、ＤＳＣのいくつかのバージョン（例えば、ＤＳＣｖ１．ｘ）は、４：２：０および４：２：２をサポートし得る。このようなクロマサブサンプリングフォーマットについてのサポートは、将来的なＤＳＣ実装で利用または要求され得る。よって、いくつかの実施形態では、本開示で説明されるブロック予測技法（例えば、ブロック予測モードで可変の区分サイズを使用する）は、４：２：０および／または４：２：２フォーマットに拡張される。４：２：０および４：２：２クロマサブサンプリングフォーマットが本明細書で使用されるが、本出願で説明される様々な技法は、他の既知のサンプリングフォーマットに適用され得る。
【０１１０】
[0137]  いくつかの実施形態では、可変の区分サイズを用いたブロック予測のためのアルゴリズムは、クロマサンプリングフォーマットから独立して、同じ方法で大いに機能する。このような実施形態では、フォーマット（例えば、４：４：４、４：２：２、４：２：０など）に関係なく、単一の区分（例えば、２×２）を使用するか、または複数の区分（例えば、２つの別個の１×２区分）を使用するかの決定、あるいは、現在サブブロックまたは領域をコーディングするために使用される区分の数（例えば、１、２、３、４など）の決定は、ルーマサンプルの各サブブロックまたは領域（例えば、２×２ブロック）のためになされ得る。しかしながら、各区分におけるまたは各ブロックにおけるクロマサンプルの数は、サブサンプリングフォーマットに依存して異なり得る。加えて、エントロピーコーディンググループとのアライメントがクロマ成分にもはや利用可能ではない可能性があるため、エンコーダの決定は、４：２：２および／または４：２：０クロマサブサンプリングフォーマットにおいて修正されることを必要とし得る。従って、エンコーダの決定（例えば、最小ＲＤコストに基づいて、エンコーダが単一の２×２区分または２つの１×２区分に各２×２領域を分割するかどうかを決定するとき）のための各区分についてのレート（例えば、単一の２×２区分、または２つの別個の１×２区分のような区分に関連付けられたレート値）は、４：２：２および４：２：０についてのルーマサンプルだけに依存し得る。例えば、ＳＡＤ歪みを計算するとき、（１つまたは複数の）クロマ成分に関連した任意の項（terms）は、ゼロに設定され得る。
【０１１１】
４：２：０クロマサブサンプリングフォーマットのためのＢＰ探索
[0138]  ４：２：０モード（４：２：０クロマサブサンプリングフォーマット）での２×２区分に関して、各区分は、クロマ成分（例えば、ＣｏおよびＣｇ、またはＣｂおよびＣｒ）の各々について単一のクロマサンプルを含み得る。いくつかの実施形態では、（例えば、現在領域またはブロックにおいて、ＲＤコストを計算するためにおよび／またはサンプルを予測するために）使用されるクロマサンプルは、区分と交差する（intersects）ものである。他の実施形態では、使用されるクロマサンプルは、隣接する区分から導出され得る。４：２：０モードのための例示的な２×２探索１５００が図１５で示されている。図１５では、クロマサイト（chroma sites）（例えば、クロマサンプルを有するサンプル／ピクセルロケーション）は、「Ｘ」を使用して示される。例えば、区分Ａの左上のサンプル、区分Ｂの右上のサンプル、および現在区分の左上のサンプルは、それぞれの区分と交差するクロマサイトを備える。このようなクロマサイトは、それぞれの区分のために行われる全ての計算のために（例えば、クロマサンプル値を使用して差分値を計算するために）使用され得る。
【０１１２】
[0139]  ４：２：０モードでの１×２区分について、現在ブロックの第２のライン中にクロマサイトが存在しないため、現在ブロックの第１のライン中の１×２区分と、現在ブロックの第２のライン中の１×２区分との間で区別（distinction）がなされる必要があり得る。例えば、現在ブロックの第１のライン中の区分について、歪み値の計算は、２つのルーマサンプルと各クロマ成分についての１つのクロマサンプルとを含み得る。現在ブロックの第２のライン中の区分に関して、歪み値の計算は、ルーマサンプル（例えば、２つのルーマサンプル）のみを含み得る。図１６の例１６００では、現在の１×２区分Ａは、第１のライン中にあり、クロマサイトを含む。よって、現在の１×２区分Ａを予測するために選択される候補区分は、候補の１×２区分Ａであり、それはまた、クロマサイトを含む。同様に、現在の１×２区分Ｂは、第２のライン中にあり、クロマサイトを含まない。よって、現在の１×２区分Ｂを予測するために選択される候補区分は、候補の１×２区分Ｂであり、それはまた、クロマサイトを含まない。
【０１１３】
４：２：２クロマサブサンプリングフォーマットのためのＢＰ探索
[0140]  ４：２：２モード（４：２：２クロマサブサンプリングフォーマット）での２×２区分に関して、各区分は、４つのルーマサンプルと、クロマ成分（例えば、ＣｏおよびＣｇ、またはＣｂおよびＣｒ）の各々についての２つのクロマサンプルとを含み得る。４：２：２モードのための例示的な２×２探索１７００が図１７で示される。図１７では、クロマサイト（例えば、クロマサンプルを有するピクセルロケーション）は、「Ｘ」を使用して示される。例えば、区分Ａの２つの左のサンプル、区分Ｂの２つの右のサンプル、および現在区分の２つの左のサンプルは、それぞれの区分と交差するクロマサイトを備える。このようなクロマサイトは、それぞれの区分のために行われる全ての計算のために（例えば、クロマサンプル値を使用して差分値を計算するために）使用され得る。
【０１１４】
[0141]  ４：２：２モードでの１×２区分について、各区分は、２つのルーマサンプルと、クロマ成分（例えば、ＣｏおよびＣｇ、またはＣｂおよびＣｒ）の各々についての１つのクロマサンプルとを含む。４：２：０モードとは異なり、４：２：２モードにおいて現在ブロックの第１のライン中の区分と、現在ブロックの第２のライン中の区分との間の区別は存在しない可能性がある。４：２：２クロマサブサンプリングのための１×２区分についての例示的なブロック予測探索１８００が図１８で図示される。図１８の例では、現在の１×２区分Ａは第１のライン中にあり、現在の１×２区分Ｂは第２のライン中にあり、現在区分ＡおよびＢの各々は、クロマサイトを含む。現在区分Ａは、候補の１×２区分Ａに基づいて予測され、それは、第１のサンプル中にクロマサイトを含み、現在区分Ｂは、候補の１×２区分Ｂに基づいて予測され、それは、第２のサンプル中にクロマサイトを含む。よって、クロマサイトが候補区分内に位置するかどうかに関わらず、クロマサンプルは、現在区分中のクロマサンプルを予測するために使用され得る。
【０１１５】
エンコーダの決定
[0142]  ４：２：２および４：２：０フォーマットでは、各クロマ成分について、ブロックごとに４未満のエントロピーコーディンググループが存在し得る。例えば、４つのエントロピーコーディンググループは、ルーマ成分のために使用され得、２つ（または１つ）のエントロピーコーディンググループは、オレンジのクロマ成分のために使用され得、２つ（または１つ）のエントロピーコーディンググループは、緑のクロマ成分のために使用され得る。所与のブロックをコーディングするために使用されるエントロピーコーディンググループの数は、所与のブロック中のルーマまたはクロマサンプルの数に基づいて決定され得る。いくつかの実施形態では、エントロピーコーディンググループは、所与のブロックがコーディングされるコーディングモードに基づいて、エンコーダによって決定される。他の実施形態では、エントロピーコーディンググループは、適用可能なコーディング規格で（例えば、所与のブロックがコーディングされるコーディングモードに基づいて）設定される。
【０１１６】
[0143]  いくつかの実施形態では、量ＥＣｂｉｔｓは、クロマについてエンコーダによって必ずしも正確には決定されない。このような実施形態のうちのいくつかでは、４：２：２および４：２：０フォーマットのためにルーマサンプルのみを使用して計算されるエントロピーコーディングレートに基づいて、エンコーダは、１×２区分を使用するか、または２×２区分を使用するかを決定し得る。他の実施形態では、量ＥＣｂｉｔｓは、クロマについてエンコーダによって決定され、４：２：２および４：２：０フォーマットのためにルーマおよびクロマサンプルの両方を使用して計算されたエントロピーコーディングレートに基づいて、エンコーダは、１×２区分を使用するか、または２×２区分を使用するかを決定し得る。
【０１１７】
シグナリング
[0144]  いくつかの実施形態では、エンコーダから、各ブロックについてまたは各色成分ついてデコーダに送信されるエントロピーコーディンググループの数は、クロマサブサンプリングフォーマットに依存して変更され得る。いくつかの実装では、エントロピーコーディンググループの数は、コーデックスループットが十分高いことを保証するように変更される。例えば、４：４：４モードでは、２×８ブロックは、図１１で図示されるような４つのエントロピーコーディンググループを含み得る。このような例では、４つのエントロピーコーディンググループは、各色成分（color components）（例えば、Ｙ、Ｃｏ、およびＣｇ）のために使用され（例えば、エンコーダによってシグナリングされ）得る。表１は、４：２：２および４：２：０モードのために使用されるエントロピーコーディンググループの数への、例示的な変更を説明する。上記で説明されたシグナリングの残り（remainder）（例えば、ＢＰＶのシグナリング、区分方式のインジケーションのシグナリングなど）は、４：２：２および４：２：０モードについて（４：４：４モードに関して説明されたシグナリングから）変更されない可能性がある。例えば、表１では、成分０がルーマ（Ｙ）に対応し得、成分１がオレンジクロマ（Ｃｏ）に対応し得、成分２がグリーンクロマ（Ｃｇ）に対応し得る。
【表１】
2018536364.tif 000010
【０１１８】
利点
[0145]  本開示で説明される１つまたは複数のブロック予測モード技法は、非対称設計を使用して実装され得る。非対称設計は、より費用がかかるプロシージャがエンコーダ側で実行されることを可能にし、デコーダの複雑さを減少させる。例えば、（１つまたは複数の）ベクトルがデコーダに明示的にシグナリングされるので、エンコーダは、デコーダと比較して作業の大部分を行う。これは、エンコーダが、しばしば、最先端のプロセスノード（例えば、２０ｎｍ以下）上で高い周波数で動作するシステムオンチップ（ＳｏＣ）設計の一部であるので望ましい。一方、デコーダは、制限されたクロック速度とはるかに大きいプロセスサイズ（例えば、６５ｎｍ以上）とを有するディスプレイドライバ集積回路（ＤＤＩＣ）チップオングラス（ＣＯＧ：chip-on-glass)ソリューションで実装される可能性がある。
【０１１９】
[0146]  さらに、ブロック区分サイズの適応可能な選択は、ブロック予測モードがコンテンツタイプのより広い範囲に対して使用されることを可能にする。ＢＰＶを明示的にシグナリングすることは費用がかかるので、可変の区分サイズは、２×２区分を使用して十分に予測されることができるイメージ領域についての低減されたシグナリングコストを可能にする。極めて複雑な領域について、より高いシグナリングコストを補うようにエントロピーコーディングレートが十分に低減され得る場合、またはＲＤトレードオフが１×２をさらに支持する（in favor of）ように歪みが十分に低減され得る場合、１×２区分サイズが選択され得る。例えば、ブロック区分サイズの適応可能な選択は、自然画像、テストパターン、細かいテキストレンダリングなどを含む、全てのコンテンツタイプにわたる性能を上昇させ得る。いくつかの実施形態では、本明細書で説明される適応可能な区分技法は、２×２よりも大きいブロック区分サイズおよび／または２×８よりも大きいブロックサイズを考慮することで拡張され得る。
【０１２０】
[0147]  本明細書で説明される１つまたは複数の技法は、固定ビットレートバッファモデルを用いて固定されたビット（fixed-bit）のコーデックにおいて実装され得る。このようなモデル、レートバッファ中に記憶されたビットは、固定ビットレートにおいてレートバッファから削除される。よって、ビデオエンコーダがビットストリームにあまりに多くのビットを加えた場合、レートバッファはオーバーフローし得る。一方、ビデオエンコーダは、レートバッファのアンダーフローを防ぐために、十分なビットを加える必要があり得る。さらに、ビデオデコーダ側では、ビットは、固定ビットレートでレートバッファに加えられ得、ビデオデコーダは、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダのレートバッファは、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。本明細書で説明される１つまたは複数の技法は、符号化および／または復号中、このようなアンダーフローまたはオーバーフローが起こらないことを保証し得る。いくつかの実施形態では、エンコーダは、ビットバジェット制約（a bit-budget constraint）下で動作し得、ここで、エンコーダは、所与の領域、スライス、またはフレームをコーディングするために固定数のビットを有する。このような実施形態では、ビットバジェットまたは制約に関連した他のビット／帯域幅が満たされ得ることをエンコーダが保証できるように、複数のコーディングモードのうちの各１つの、いくつのビットが、所与の領域、スライス、またはフレームをコーディングできることが必要であるかを正確に（推定する必要なく）知ることができることは、エンコーダにとって不可欠（critical）である。例えば、所与の領域、スライス、またはフレームのコーディングが、推定されたより多くのビットを必要とする場合、いずれの予備的な測定も実施しなければならないということなく、エンコーダは、所与のコーディングモードにおいて所与の領域、スライス、またはフレームをコーディングし得る。
【０１２１】
[0148]  さらに、本明細書で説明される１つまたは複数の技法は、ディスプレイリンクを介した送信におけるビデオ圧縮技術に関連付けられた特定の技術的問題を克服する。ある領域が複数の候補領域（例えば、複数の候補領域のうちの対応する１つに基づいて予測される領域中の各区分）に基づいてコーディングされることを可能にすることによって、ビデオエンコーダおよびデコーダは、領域の性質（例えば、平滑、複雑など）に基づいて、カスタマイズされた予測を提供することができ、それによりビデオエンコーダおよびデコーダ（例えば、ハードウェアおよびソフトウェアコーデック）性能を改善する。
【０１２２】
ブロック予測モードのための複数の探索範囲
[0149]  図３〜６を参照して説明されるように、探索空間（例えば、エンコーダが、候補ブロックを見つけるために探索し得る、ピクセルの空間ロケーション）は、現在ブロックの特性に基づいて異なり得る。例えば、探索空間は、全ての前に再構成されたブロック／ピクセルを潜在的に含み得る。いくつかの実施形態では、エンコーダおよび／またはデコーダは、例えば、計算複雑さを低減するために、候補ブロックのための探索を探索空間内の指定された部分（例えば、ビットストリーム中であらかじめ定義されるかまたはシグナリングされるかのいずれかである１つまたは複数のパラメータによって定義される「探索範囲」）に制限し得る。いくつかの実装では、ブロック予測は、ブロック予測モードでコーディングされた各ブロックについての単一の探索範囲を利用する。これらの実装では、現在ブロックに関する探索範囲のロケーションは、現在ブロックがＦＬＳ（スライスの第１のライン）にあるかＮＦＬＳ（スライスの第１でないライン）にあるかに依存し得る。図１９の図１９００に示されているように、現在ブロック１９１０がＦＬＳである場合、探索範囲は、同じブロックライン中の現在ブロックの左にあり得（例えば、ＦＬＳ探索範囲１９２０）、現在ブロックがＮＦＬＳにある場合、探索範囲は、現在ブロックラインのすぐ上のブロックラインにあり得る（例えば、ＮＦＬＳ探索範囲１９３０）。ブロックラインという用語は、その通常の意味を有していることに加え、ブロックに属する全てのラスタスキャンラインを含み得る。例えば、ブロックサイズが２×８ピクセルである（アドバンストディスプレイストリーム圧縮［ＡＤＳＣ：Advanced Display Stream Compression]が２×８ピクセルの標準的なブロックサイズを有する)場合、ブロックラインは、２つのラスタスキャンラインを含むであろう。
【０１２３】
[0150]  対照的に、本開示のいくつかの実施形態では、エンコーダおよび／またはデコーダは、複数の探索範囲を維持し得る。複数の探索範囲がブロック予測モードでブロックをコーディングするために使用されることを可能にすることによって、より良い候補区分に位置している可能性が高くなり得（例えば、ブロック予測モードでコーディングされた各ブロックについて単一の探索範囲のみを考慮する前の実装と比較して）、それにより、ブロック予測モードのコーディング効率および／またはコーディング性能を改善する。さらに、探索範囲を適用可能に選択するためのエンコーダが各ブロックをコーディングするために使用されることを可能にすることによって、ブロック予測方式の性能は、さらに改善され得る。
【０１２４】
[0151]  このような実施形態のうちのいくつかでは、ブロック予測モードで所与のブロックをコーディングする際に使用するために複数の探索範囲が考慮され得るが、探索範囲のうちの１つのみが、ある時間において使用されることが可能であり得る。例えば、ブロック予測モードでコーディングされている各ブロックは、複数の探索範囲のうちの、両方ではなく１つに関連付けられ得る。いくつかの実施形態では、ブロック予測モードでコーディングされるブロックが複数の区分を有する場合、それらの区分のコーディングは、ブロックのために選択された同じ探索範囲を使用して各区分がコーディングされるように、制約され得る。単一のブロックのために使用される探索範囲の数を制限することによって、エンコーダは、単一のビットを使用して、どの探索範囲が使用されるかをデコーダに容易にシグナリングすることができる。他の実施形態では、１より多い探索範囲は、単一のブロックのために使用され得る。例えば、第１の探索範囲は、単一のブロック中の第１の区分をコーディングするために使用され得、第１の探索範囲とは異なる第２の探索範囲は、単一のブロック中の第２の区分をコーディングするために使用され得る。
【０１２５】
[0152]  本開示のいくつかの実施形態では、２つの探索範囲（ＳＲ０およびＳＲ１）は、図２０の図２０００に示されているように、エンコーダおよび／またはデコーダによって維持される。ＦＬＳ内のブロックについて、参照のために現在ブロックラインを使用することが唯一のオプションであるので、２つの探索範囲間の区別は存在しない可能性がある（または、ブロック予測の結果または性能において差異が存在しない可能性がある）。例えば、現在ブロック２０１０がＦＬＳ内にある場合、ＳＲ０探索範囲２０２０のみが現在ブロック２０１０をコーディングするために使用され得、ＳＲ０探索範囲２０３０が利用可能ではない可能性がある。一方、現在ブロック２０１０がＮＦＬＳ内にある場合、ＳＲ０探索範囲２０２０およびＳＲ１探索範囲２０３０は両方とも利用可能であり得、探索範囲２０２０と２０３０のうちのいずれかが、ブロック予測モードで現在ブロック２０１０をコーディングするために使用され得る。図２０に図示されるように、ＳＲ０探索範囲２０３０は、前の再構成されたブロックライン（例えば、最も最近再構成された１つまたは複数のブロックライン）からのデータ（例えば、現在ブロックのコーディングに先立ってコーディングされたピクセル）を含み、ＳＲ１探索範囲２０２０は、現在ブロックラインから（例えば、現在ブロックの左まで）のデータ（例えば、現在ブロックのコーディングに先立ってコーディングされたピクセル）を含む。いくつかの実施形態では、１つまたは複数の最も最近再構成されたピクセルまたはブロックは、パイプライン化の理由（pipelining reasons）から、（１つまたは複数の）探索範囲から除かれ得る。例えば、現在ブロックすぐ左にある、１つまたは複数のブロック（例えば、ピクセルまたはブロックの閾値数）は、探索範囲ＳＲ１から除かれ得る。（１つまたは複数の）探索範囲から除かれたピクセルまたはブロックの数は、パイプライン化制約（pipelining constraints）に依存し得る。
【０１２６】
[0153]  エンコーダは、２つの探索範囲に関して独立して、現在ブロック内の全ての区分のためにブロック予測探索を行い得る。例えば、現在ブロックが２つの区分を有する場合、エンコーダは、第１の探索範囲において第１の区分のためにブロック予測探索を行い得、次に、第１の探索範囲において第２の区分のためにブロック予測探索を行い得る。その探索に基づいて、エンコーダは、第１の探索範囲において複数のブロックまたは複数のブロック区分を使用して現在ブロック中の２つの区分をコーディングするための第１のコストを決定し得る。次に、エンコーダは、第２の探索範囲において第１の区分のためにブロック予測探索を行い得、次に、第２の探索範囲において第２の区分のためにブロック予測探索を行い得る。この探索に基づいて、エンコーダは、第２の探索範囲において複数のブロックまたは複数のブロック区分を使用して現在ブロック中の２つの区分をコーディングするための第２のコストを決定し得る。レートおよび歪みコストが現在ブロック全体について最小化されるように（例えば、現在ブロック内の全ての区分を予測するために）、探索範囲におけるブロックまたはブロック区分が選択され得る。
【０１２７】
[0154]  各探索範囲についてのコスト（例えば、レートおよび歪み推定）を決定すると、エンコーダは、本開示で論じられるようなＲＤコスト（例えば、Ｄ＋λ・Ｒ）を最小化することによって、２つのオプション間で選択することができる。エンコーダは、最低ＲＤコストをもたらす探索範囲を選択し、選択された探索範囲を使用して、現在ブロックをコーディングし得る。現在ブロックを復号するために使用される探索範囲のインジケーションは、例えば、ビットストリームにおいて明示的に各ブロックについての１ビットフラグをシグナリングすることによって、デコーダに送信される。よって、複数の探索範囲の使用によって必要とされるデコーダ側の変更は、最小限である。本質的に、一方の探索範囲は、もう一方と置き換えられ、ブロック予測のための全ての他のステップは、複数の探索範囲を使用しない実装においてのように行われ得る。
【０１２８】
[0155]  他の実施形態では、選択された探索範囲をシグナリングする１ビットフラグは、省略され得る。このような実施形態では、探索範囲は、ブロック予測モードの別個のインスタンスに各々関連付けられ得、ここで、探索範囲インデックスは、モードヘッダによって暗黙的にシグナリングされ得る。例えば、ブロックに関連付けられたコーディングモードをシグナリングために３ビットが使用される場合、６つのコーディングモードのみがエンコーダまたはデコーダに利用可能であり、同じ３ビットのシンタックス要素が、２つのさらなるコーディングモード（例えば、一方は、第１の探索範囲を常に使用するかまたは、デフォルトで第１の探索範囲を使用するブロック予測モード、そしてもう一方は、第２の探索範囲を常に使用するかまたは、デフォルトで第２の探索範囲を使用するブロック予測モード）をシグナリングするために使用され得る。よって、コーディングモードをシグナリングするために使用される既存のシンタックス要素を利用することによって、ビットの節約が達成され得る。
【０１２９】
複数の探索範囲を使用するブロック予測モードにおけるコーディング
[0156]  図２１を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図２１に示されているステップは、ビデオエンコーダ（例えば、図２Ａ中のビデオエンコーダ２０）、またはそれらの（１つまたは複数の）コンポーネントによって実行され得る。便宜上、方法２１００について、ビデオエンコーダ２０、または別のコンポーネントであり得る、コーダによって実行されるものとして説明する。
【０１３０】
[0157]  方法２１００はブロック２１０１において開始する。ブロック２１０５において、コーダは、現在ブロックに対応するロケーションの第１の範囲内の第１の候補領域に基づいて、現在ブロック（例えば、現在コーディングされているビデオデータのブロック）をコーディングすることに関連付けられた第１のコストを決定する。第１の候補領域は、現在ブロックと同じサイズ（例えば、同じ寸法および／または同じ数のピクセル）を有し得る。第１の候補領域は、前にコーディングされた１つのブロックまたはブロックの一部分を含み得、現在ブロックをコーディングするために現在使用されている。いくつかの実施形態では、第１の候補領域は、現在ブロックの異なる部分をコーディングするために各々使用される、ブロックまたはブロック区分の集合（collection）であり得る。例えば、現在ブロックは、４つのブロック区分を含み得、４つのブロック区分の各々は、ロケーションの第１の範囲内の第１の候補領域の異なるブロックまたはブロック区分を使用して、予測またはコーディングされ得る。いくつかの実装では、現在ブロック内の複数のブロック区分は、複数のロケーションの第１の範囲内の第１の候補領域の同じブロックまたはブロック区分に基づいてコーディングされ得る。複数のロケーションの第１の範囲（例えば、第１の探索範囲）は、エンコーダによって、または適用可能なコーディング規格によって指定された探索範囲であり得る。複数のロケーションの第１の範囲は、本開示で論じられる例示的な探索範囲のうちの１つに類似し得る。複数のロケーションの第１の範囲は、（例えば、コーディング順またはラスタスキャニング順で）後に続く複数のブロックおよび／または複数のブロック区分を予測またはコーディングするために再構成および使用される、複数のブロックまたはブロック区分を備え得る。複数のロケーションの第１の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含み得る。他の実施形態では、複数のロケーションの第１の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含まない。第１の候補領域に関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
【０１３１】
[0158]  ブロック２１１０において、コーダは、現在ブロックに対応する複数のロケーションの第２の範囲内の第２の候補領域に基づいて、現在ブロックをコーディングすることに関連付けられた第２のコストを決定する。第２の候補領域は、現在ブロックと同じサイズ（例えば、同じ寸法および／または同じ数のピクセル）を有し得る。第２の候補領域は、前にコーディングされた１つのブロックまたはブロックの一部を含み得、現在ブロックをコーディングするために現在使用されている。いくつかの実施形態では、第２の候補領域は、現在ブロックの異なる部分をコーディングするために各々使用される、ブロックまたはブロック区分の集合であり得る。例えば、現在ブロックは、４つのブロック区分を含み得、４つのブロック区分の各々は、複数のロケーションの第２の範囲内の第１の候補領域の異なるブロックまたはブロック区分を使用して、予測またはコーディングされ得る。いくつかの実装では、現在ブロック内の複数のブロック区分は、複数のロケーションの第２の範囲内の第１の候補領域の同じブロックまたはブロック区分に基づいてコーディングされ得る。複数のロケーションの第２の範囲は、エンコーダによって、または利用可能なコーディング規格によって指定された探索範囲であり得る。複数のロケーションの第２の範囲は、本開示で論じられる例示的な探索範囲に類似し得る。複数のロケーションの第２の範囲は、（例えば、コーディング順またはラスタスキャニング順で）後に続く複数のブロックおよび／または複数のブロック区分を予測またはコーディングするために再構成および使用される、複数のブロックまたはブロック区分を備え得る。いくつかの実施形態では、複数のロケーションの第１の範囲および複数のロケーションの第２の範囲は、相互に排他的である。代替的にまたは追加的に、複数のロケーションの第１の範囲および複数のロケーションの第２の範囲は、異なるラスタスキャンラインを占有し得る。複数のロケーションの第２の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含み得る。他の実施形態では、複数のロケーションの第２の範囲は、現在ブロックとオーバーラップするラスタスキャンラインを含まない。例えば、図２０に示されているように、２つの探索範囲２０２０および２０３０は、互いとオーバーラップしない。第２の候補領域に関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
【０１３２】
[0159]  ブロック２１１５において、コーダは、第１の候補領域に基づいて現在ブロックをコーディングすることに関連付けられた第１のコストが、第２の候補領域に基づいて現在ブロックをコーディングすることに関連付けられた第２のコストよりも大きいかどうかを決定する。例えば、コーダは、複数のロケーションの第１の範囲内（例えば、第１の探索範囲内）の第１の候補領域を使用して現在ブロックをコーディングすることに関連付けられたレートおよび歪みに基づくコストと、複数のロケーションの第２の範囲内（例えば、第２の探索範囲内）の第２の候補領域を使用して現在ブロックをコーディングすることに関連付けられたレートおよび歪みに基づくコストとを計算し、これら計算されたコストを比較し得る。いくつかの実施形態では、現在ブロックは、複数のブロック区分を備え得る。このような実施形態のうちのいくつかでは、第１および第２のコストを計算することは、（i）現在ブロック中の対応する複数のブロック区分をコーディングするために使用される関連する探索範囲（例えば、それぞれ、第１の探索範囲および第２の探索範囲）内の複数のブロック区分を決定することと、（ii）関連する探索範囲内の複数のブロック区分に基づいて現在ブロック内の個々のブロック区分をコーディングするために個々のコストを決定することと、（iii）個々のコストに基づいて第１および第２のコストを計算することと、を含み得る。例えば、第１および第２のコストは、個々のコストを合計することによって計算され得る。代替的に、第１および第２のコストは、個々のコストを平均化することによって計算され得る。
【０１３３】
[0160]  ブロック２１２０において、コーダは、第１のコストが第２のコストよりも大きいと決定することに応答して、第２の範囲に関連付けられたインジケーションを提供することを少なくとも部分的に介して、複数のロケーションの第２の範囲内の第２の候補領域に基づいて現在ブロックをコーディングする。いくつかの実施形態では、インジケーションは、現在ブロックが（i）複数のロケーションの第１の範囲内の第１の候補領域に基づいてコーディングされるか、または（ii）複数のロケーションの第２の範囲内の第２の候補領域に基づいてコーディングされるかを示す１ビットフラグであり得る。例えば、フラグ値が０に等しい場合、そのフラグは、現在ブロックが（例えば、複数のロケーションの第１の範囲内の第１の候補領域に基づいて）第１の探索範囲において１つまたは複数のブロックまたはブロック区分に基づいてコーディングされることを示し得、フラグ値が１に等しい場合、そのフラグは、現在ブロックが（例えば、複数のロケーションの第２の範囲内の第２の候補領域に基づいて）第２の探索範囲において１つまたは複数のブロックまたはブロック区分に基づいてコーディングされることを示し得る。他の実施形態では、インジケーションは、現在ブロックに関連付けられたコーディングモードを示すように構成されるマルチビットシンタックス要素であり得る。例えば、シンタックス要素は、複数のコーディングモードのうちのどの１つが現在ブロックをコーディングするために使用されるべきかを示し得る。コーディングモードのうちの１つが、ブロック予測モードであり得る。いくつかの実施形態では、シンタックス要素が（複数の可能性のある値のうちの）１つの値を有する場合、現在ブロックは、第１の探索範囲のみを使用する（または、他のものに提供されない限り、デフォルトで第１の探索範囲を使用する）ブロック予測モードでコーディングされ、シンタックス要素が（複数の可能性のある値のうちの）別の値を有する場合、現在ブロックは、第２の探索範囲のみを使用する（または、他のものに提供されない限り、デフォルトで第２の探索範囲を使用する）ブロック予測モードでコーディングされる。シンタックス要素が（複数の可能性のある値のうちの）さらに別の値を有し得る場合、現在ブロックは、ブロック予測モード以外のコーディングモードでコーディングされ得る。方法２１００はブロック２１２５において終了する。
【０１３４】
[0161]  方法２１００では、図２１に示されているブロックのうちの１つまたは複数は削除される（例えば、実行されない）可能性があり、および／または方法が実行される順序は入れ替えられ得る。例えば、いくつかの実施形態では、ブロック２１０５、２１１０、および２１１５のうちの１つまたは複数は、（例えば、スライス中の第１のラインのような）同じスライス中の任意の先行するラスタスキャンラインを有していないラスタスキャンラインを現在ブロックが含むことをコーダが決定する場合に省略され得る。いくつかの実施形態では、さらなるブロックが方法２１００に追加され得る。本開示の実施形態は、図２１に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
【０１３５】
複数の探索範囲を使用する利点
[0162]  ブロック予測モードでブロックをコーディングするときに、複数の探索範囲を使用することに関連した技法は、ブロック予測モードに関連付けられたコーディング効率を改善し、それにより、特にグラフィックタイプイメージおよびグラフィックコンテンツに関して、コーディング性能を上昇させる。これらの技法のうちの１つまたは複数を実装することは、エンコーダ側における計算複雑さを増大させ得る。しかしながら、エンコーダがより小さいプロセスノード（２０ｎｍまたはそれに満たない）において実装されるので、エンコーダは一般に、増大した計算複雑さに対してさらなる許容度（greater degree of tolerance）を示す。重要なことに、デコーダ複雑さは、複数の探索範囲がブロック予測モードでブロックをコーディングするために使用される場合でさえ、大部分が同じままであるだろう。デコーダは一般に、はるかに大きいプロセスサイズ（６０ｎｍ以上）で実装され得、より厳しいハードウェア要件（例えば、ゲートカウントが最小化されなければならないなど）に従い得る。よって、ブロック予測モードで複数の探索範囲を使用するための本開示の技法は、計算複雑さの比較的少ない増加で、コーディング性能を改善する。
【０１３６】
簡略化されたブロック予測モード
[0163]  いくつかの場合には、ブロック予測モードで現在ブロックをコーディングするために上記で説明された技法は、さらに簡略化されることができる。例えば、コストが制限された（cost-constrained）ハードウェア実装について、上記で説明された１つまたは複数の特徴は、（エンコーダ側、デコーダ側、または両方において）コーダの計算複雑さを低減するために削除または修正され得る。このような場合、下記の変更のうちの１つまたは複数は、性能を大きく悪化させることなく、ブロック予測モードでブロックをコーディングする方法を行うことができる：（i）コーダは、上記で説明されたような複数の探索範囲を使用する代わりに、現在ブロックまたは区分を予測するために、単一の探索範囲を使用し得る；（ii）探索範囲は、前の再構成されたライン（例えば、現在ラインのすぐ前のライン）と現在ラインとの両方からのピクセルを含み、ここにおいて、このようなライン中のサンプルは、既に再構成されており（例えば、現在ブロックまたは区分がコーディングされる時間までに）、および／または（iii）単一の前に再構成されたラインは（複数のラインを含み得る）前の再構成されたブロックラインを使用する代わりに、現在ブロックまたは区分を予測するために使用される。
【０１３７】
[0164]  コーディング性能とハードウェア複雑さとの間の所与の実装の所望のトレードオフに依存して、本明細書で説明されるブロック予測モード（例えば、標準的なブロック予測モード、複数の範囲を使用するブロック予測モード、簡略化されたブロック予測モードなど）においてブロックをコーディングするための技法の様々なバージョンおよび修正が使用され得る。ブロック予測モードのうちのいくつかのバージョンは性能とハードウェア複雑さとの間のＶＥＳＡタスクグループの譲歩（compromise）に依存して、ＡＤＳＣのために選択され得る。
【０１３８】
[0165]  上記で説明されたように、いくつかの実施形態では、簡略化されたブロック予測モードは、単一の探索範囲を使用し得る。このような実施形態のうちのいくつかでは、可能性のあるブロック予測ベクトルの総数は、いくつかのｎに関して２ｎのように決定される。例えば、ＡＤＳＣは一般に、ｎ＝６を使用し、その場合には、可能性のあるブロック予測ベクトルの総数は、６４個の位置であるだろう。探索範囲内の候補ピクセルは、領域Ａ、領域Ｂ、および領域Ｃと本明細書では呼ばれ得る、３つの領域のうちのいずれかに由来し得る。探索範囲（ＳＲ）および探索範囲内の位置（ＳＲ ｐｏｓ）へのＢＶＰインデックスの例示的なマッピングが表２で示される。例えば、このマッピングは、関連するＳＲの長さＳｒＬｅｎｉ，ｉ∈｛Ａ，Ｂ，Ｃ｝から計算され得る。
【表２】
2018536364.tif 000011
【０１３９】
[0166]  いくつかの実施形態では、エンコーダがデコーダに明示的にシグナリングするブロック予測ベクトルは、範囲［０，２ｎ−１］における整数であり得る。インデックスから探索範囲へのマッピングは、ＳｒＬｅｎｉに依存し得る。表２は、ＳｒＬｅｎＡ＝２６、ＳｒＬｅｎＢ＝８、ＳｒＬｅｎＣ＝３０である例を示す。
【０１４０】
[0167]  図２２の図２２００では、原因となる利用可能なイメージ（causally-available image）（例えば、前に再構成されたピクセル）の異なる領域からのピクセルを備える単一の探索範囲を、簡略化されたブロック予測が使用する例が図示されている。各特定の領域中の候補の数は、コーデックのパラメータに依存して調整され得る。図２２の例では、ＳＲＡ／ＳＲＢは、前の再構成されたラインから形成されるが、一方、ＳＲＣは、現在ブロックラインから形成される。例えば、ＳＲＡは、図２２に図示されているような現在ブロック２３４０の真上（例えば、それと垂直方向に（vertically）オーバーラップする）、または右のいずれかであるピクセルを含み、ＳＲＢは、図２２に図示されているような現在ブロック２３４０の左にあるピクセル（例えば、現在ブロック２３４０と垂直方向にオーバーラップせず、現在ブロック２３４０中のピクセルよりも小さいｘ座標値を有する）を含む。図２２は、ＳＲＡ２２２０、ＳＲＢ２２１０、ＳＲＣ２２３０、および現在ブロック２２４０を図示する。図２２に図示されているように、ＳＲＡ２２２０およびＳＲＢ２２１０は、前の再構成されたライン中にあり、ＳＲＣ２２３０は、現在ブロックライン中にある。
【０１４１】
[0168]  図２３の図２３００では、可変の区分サイズ（２×２）を用いた簡略化されたブロック予測モードの例が図示されている。ＳＲＣ内の探索は、本明細書で説明されるように（例えば、ＳＲＣ内の２×２ブロックを使用して現在ブロックをコーディングすることに関連付けられたコストを決定することによって）行われ得る。ＳＲＡ／ＳＲＢ内の探索について、候補区分は、２×２候補を作成するためにｙ方向に拡張またはパディングされ得る。図２３は、ＳＲＡ２３２０、ＳＲＢ２３１０、ＳＲＣ２３３０、および現在ブロック２３４０を図示する。図２３では、ＳＲＡ２３２０およびＳＲＢ２３１０は、前の再構成されたライン中にあり、ＳＲＣ２３３０は、現在ブロックライン中にある。
【０１４２】
[0169]  図２４の図２４００では、可変の区分サイズ（１×２）を用いた簡略化されたブロック予測モードの例が図示されている。ＳＲＡ／ＳＲＢ内の探索は、本明細書で説明されるように（例えば、ＳＲＡ／ＳＲＢ内の１×２ブロックを使用して現在ブロックをコーディングすることに関連付けられたコストを決定することによって）実行され得る。ＳＲＣ（現在ブロックライン）内の探索について、現在ブロックのラインｌ内の区分が、ＳＲＣのラインｌから探索される。図２４は、ＳＲＡ２４２０、ＳＲＢ２４１０、ＳＲＣ２４３０、および現在ブロック２４４０を図示する。図２４では、ＳＲＡ２４２０およびＳＲＢ２４１０は、前の再構成されたライン中にあり、ＳＲＣ２４３０は、現在ブロックライン中にある。
【０１４３】
[0170]  例えば、特定の領域（例えば、領域Ａ、Ｂ、またはＣ）についての探索位置の数は、領域ｉについてのＳｒＬｅｎｉと本明細書で呼ばれ得る。このような例では、下記の制約が確立され得る：ＳｒＬｅｎＡ＋ＳｒＬｅｎＢ＋ＳｒＬｅｎＣ≦２ｎ。例えば、ブロック予測が単一の探索範囲を使用して実行され、かつ単一の探索範囲における位置の最大数が２ｎであると定義される場合、それらの領域の各々における位置の合計は、最大数以下である必要があるだろう。ＳｒＬｅｎｉのための値は、コーデックの必要性に依存して調整され得る。加えて、これらの値は、現在スライス内の区分または現在ブロックのロケーションに基づいて、容易に動的に調整されることができる。例えば、現在ブロックまたは区分がＦＬＳに位置する場合、エンコーダおよびデコーダは、ＳＲＡおよびＳＲＢが現在ブロックをコーディングするために使用できないと推測し得る。従って、多数の位置がＳＲＣに（例えば、単一の探索範囲に割り付けられた最大値まで）割り振られ得る。
【０１４４】
[0171]  単一の探索範囲を使用することに加えて、または代替として、簡略化されたブロック予測モードで、エンコーダ／デコーダが前の再構成されたブロックラインを記憶するための要件が削除され得る。代わりに、１つの前の再構成されたラインのみが記憶され得る。例えば、任意のブロックサイズＰ×Ｑに関して、１つの再構成されたラインのみがＰラインの代わりに記憶され得る（および図２４のＳＲＡのような探索範囲内に含まれる）。
【０１４５】
[0172]  可変の区分サイジング（sizing）が活用される（be leveraged）場合、後続のロジック変更が簡略化されたブロック予測モードのために実装され得る。
【０１４６】
[0173]  いくつかの実装では、２×２区分が現在ブロックをコーディングするために使用される場合、ＳＲＡ／ＳＲＢからのいずれの候補位置も、図２３を参照して上記で説明されたように、２×２候補を生成するために、ｙ方向に拡張またはパディングされ得る。例えば、図２３に図示されるように、１×２候補２３５０は、２×２候補２３６０を生成するためにサンプル値を複製することによって、ｙ方向に拡張またはパディングされ得る。同様の技法が、任意のサイズのブロックに拡張され得る。例えば、候補は、現在ブロックまたは区分の高さに一致するようにｙ方向に拡張またはパディングされ得る。一方、２×２候補２３８０は、拡張またはパディングされないものとして使用され得る。他の実装では、現在ブロック内の２×２区分がどのようにコーディングされるかは、どの探索範囲（例えば、図２２〜２４におけるＳＲＡ、ＳＲＢ、またはＳＲＣ）が２×２区分をコーディングするために使用されるかに依存し得る。このような技法は、図２５を参照して下記でより詳細に説明される。
【０１４７】
[0174]  １×２区分が現在ブロックをコーディングするために使用される場合、ＳＲＣからのいずれの候補位置も、図２４を参照して上記で説明されたように、現在ブロック中の現在の１×２区分と同じラインから選択され得る。例えば、図２４に図示されるように、現在区分２４５０は、同じライン中の１×２候補２４６０に基づいて予測され、現在区分２４７０は、同じライン中の１×２候補２４８０に基づいて予測される。このような例では、現在区分２４５０のための候補を発見するために、コーダは、現在区分２４５０と同じライン内の探索範囲２４３０における個々の１×２ブロックに基づいて、現在区分２４５０をコーディングするコストを比較し、現在区分２４７０のための候補を発見するために、コーダは、現在区分２４７０と同じライン内の探索範囲２４３０における個々の１×２ブロックに基づいて、現在区分２４７０をコーディングするコストを比較する。
【０１４８】
簡略化されたブロック予測モードでのコーディングの利点
[0175]  簡略化されたブロック予測モードでのコーディングに関する技法は、エンコーダ側とデコーダ側の両方において、性能と複雑さとの間のトレードオフを提供する。これは、ハードウェアコストにおいて制約されるいずれの実装にとっても望ましい。
【０１４９】
簡略化されたブロック予測モードのさらなる簡略化
[0176]  ＡＳＩＣ／ＦＰＧＡのためのＡＤＳＣ実装のエリアを低減するために、上記で説明された簡略化されたブロック予測モードで使用される探索範囲へのさらなる修正がなされ得る。ＡＤＳＣデコーダのハードウェア実装は、探索範囲内の全て位置への高速ランダムアクセスを要求し得る。例えば、このようなハードウェア実装は、（例えば、最悪のケースでは）探索範囲のサイズに比例したフリップフロップのアレイを含み得る。よって、（例えば、探索範囲内の領域のサイズなどの）探索範囲の各部分内の可能性のある位置の最大数を制限することが望ましいだろう。一例では、探索範囲内の各領域内の可能性のある位置の最大数は、下記の通りであり得る：ＳＲＡ＝２０，ＳＲＢ＝１２，ＳＲＣ＝３２。例えば、それぞれの領域中の位置の数は、他の領域中にいくつ位置があるかに関係なくこのような最大数に制限され得る。処理されている現在ブロックがスライスの第１のライン内の位置ｘ＝１２８（例えば、同じライン内の現在ブロックの前の１２８ピクセルを有する）にある場合、探索範囲ＡおよびＢが現在ブロックをコーディングするために利用可能なピクセルを有しておらず、探索範囲の最大サイズを超えることなく、追加のピクセルが探索範囲Ｃに含まれ得る（例えば、探索範囲の最大サイズが６４ピクセルである場合、１２８の前にコーディングされたピクセルのうちの６４が探索範囲に含まれ得る）という事実にも関わらず、探索範囲Ｃについての位置の数は、３２に制限され得る。ハードウェアにおいて要求されるストレージの量を制限するために、コーディング効率を犠牲にしてこのような制限が置かれ得る。エンコーダの観点から、他の３２の探索範囲位置（例えば、６４の位置探索範囲のうちの、最初の２０ピクセルおよび最後の１２ピクセル）はスライスの第１のライン内の任意の現在ブロックに対して「無効（invalid）」であり得る。いくつかの実装では、探索範囲のそれぞれの部分は常に、同じ数の位置に割り当てられ、各位置は、その位置におけるピクセルが存在するかどうか、あるいは現在ブロックをコーディングする時間にエンコーダに利用可能であるかどうかに依存して、「有効（valid）」または「無効」となり得る。ブロック予測探索および全ての他の動作（例えば、コスト計算および比較）は、このような無効位置に関してスキップされ得る。有効な位置の数は、（例えば、探索範囲２５２０が後続のブロックラインに拡張される、図２５の第２の列によって図示されているような）スライスの第１のラインの右エッジへと増加するであろう。他の実装では、探索範囲のそれぞれの位置における位置の数の和は、最大数（例えば、６４個の位置）以下に制限され得る。このような実装では、処理されている現在ブロックが、スライスの第１のライン内の位置ｘ＝１２８（（例えば、同じライン内の現在ブロックの前の１２８ピクセルを有する）にある場合、探索範囲Ｃについての位置の数は、他の探索範囲（例えば、ＡおよびＢ）が空であり得るので、３２よりも大きいものに等しくなり得る（例えば、最大数が６４である場合、最大６４）。
【０１５０】
[0177]  コーディング効率に対する影響を制限するために、ある特定の状況下では、より少ない数のビットがビットストリーム中のブロック予測ベクトルをシグナリングするために使用され得る。例えば、現在ブロックがある特定の位置の範囲内（例えば、スライスの第１のライン）にある場合、エンコーダおよびデコーダの両方は、より少ない数のビットがブロック予測ベクトルをシグナリングするために使用されると推測し、探索範囲内の個々の位置の各々を正確に識別するために必要とされるビットの数よりも少ないものを使用してシグナリングされるブロック予測ベクトルを使用して（例えば、探索範囲が６４個の位置を有する場合、６ビット）、候補ブロックまたは区分を正確に識別し得る。６４個の位置のうちの３２が「無効」であると決定される上記の例では、６４の探索範囲位置のうちの３２のみがその時間中に有効であるので、６の代わりに、ブロック予測ベクトルごとに５ビットがスライスの第１のラインの大部分中で使用され得る。
【０１５１】
[0178]  加えて、ブロックタイミングに関して、一定レートで探索範囲のフリップフロップを満たすための能力は、ＡＤＳＣのハードウェア実装のために有利であり得る。これは、探索範囲がブロック時間ごとに１ブロック幅で効率的にシフトするべきであることを意味する。結果として、探索範囲Ｃ内のある特定の位置（certain positions）は、一旦、現在ブロックがスライスの次のラインに進むと、現在ブロックに関して技術的には前のブロックライン中にあり得る。この特徴の例示は、図２５の図２５００で示される。現在ブロック２５１０がスライスの右エッジへと移動し、次いで、次のブロックラインへと移動するとき、探索範囲２５３０（例えば、現在ブロックライン内の探索範囲の部分）は、図２５の第４および第５の行（rows）に示されているように、前のブロックライン中に残る。
【０１５２】
[0179]  いくつかの実施形態では、探索範囲Ｂ（例えば、図２５の探索範囲２５４０の最上位ライン）が現在ブロックラインの前のラインと第１のラインとにわたる２×２の予測候補を生成するために使用され得る。図２５に示されているように、探索範囲２５４０の最上位ラインは探索範囲Ｂであり、探索範囲２５４０の最下位ラインは、探索範囲Ｂに関してコロケートされる探索範囲Ｃの一部分（例えば、探索範囲２５３０）である。よって、このような実施形態のうちのいくつかでは、２×２の予測候補を生成するために探索範囲Ｂ中の１×２予測候補を拡張またはパディングするかわりに、コーダは、前の再構成されたラインからの２つのピクセル（例えば、探索範囲Ｂからの２つのピクセル）と、現在ブロックラインの第１のラインからの２つのピクセル（例えば、探索範囲Ｂ中の２つのピクセルに関してコロケートされた、探索範囲Ｃからの２つのピクセル）とを含む、２×２予測候補を利用し得る。このアプローチは、（例えば、探索範囲Ａ中のピクセルのすぐ下の）探索範囲Ａ中のピクセルに関してコロケートされた現在ブロックラインからのピクセルが、現在ブロック２５１０をコーディングする時間において原因となる利用可能ではないため、探索範囲Ａ（例えば、探索範囲２５２０）のために使用されることはできない。
【０１５３】
簡略化された探索範囲を使用するブロック予測モードでのコーディング
[0180]  図２６を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的なプロシージャが説明される。図２６に示されているステップは、ビデオエンコーダ（例えば、図２Ａ中のビデオエンコーダ２０）、またはそれらの（１つまたは複数の）コンポーネントによって実行され得る。便宜上、方法２６００は、ビデオエンコーダ２０、または別のコンポーネントであり得る、コーダによって実行されるものとして説明される。
【０１５４】
[0181]  方法２６００は、ブロック２６０１において開始する。ブロック２６０５において、コーダは、現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定し、ここで、候補ブロックは、現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置（例えば、探索範囲）の範囲内にある。例えば、コーダは、複数のピクセル位置の範囲において複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、現在ブロックをコーディングすることに関連付けられたコストを決定し、最低コストを有するブロックのうちの１つを候補ブロックとして識別する。各潜在的な候補ブロックは、複数のピクセル位置の範囲内のピクセル位置のうちの１つに対応し得る。複数のピクセル位置の範囲は、現在スライス中のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域を含み得、ここで、複数のピクセルの第１のラインは、現在ブロックとオーバーラップする。例えば、複数のピクセルの第１のラインは、現在スライスの全体の幅にわたり得、複数のピクセルの第１のラインは、現在ブロック中の少なくとも１つのピクセルを含み得る。さらに、複数のピクセル位置の範囲は、現在スライス中のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域を含み、ここで、複数のピクセルの第２のラインは、現在ブロックとオーバーラップしない。例えば、複数のピクセルの第２のラインは、現在スライスの全体の幅にわたり得、現在ブロック中の任意のピクセルを含まない。複数のピクセルの第２のラインは、現在スライス中の第１のラインにすぐ前に先行し得る。第１のおよび第２のラインの各々は、現在スライス内のラスタスキャンラインであり得る。いくつかの実施形態では、第１の領域および第２の領域は、異なるラスタスキャンラインを占有する。第１の領域は、（例えば、ラスタスキャンラインおよび現在ブロックが少なくとも１つの共通ピクセルを含む）現在ブロックとオーバーラップするラスタスキャンライン内にあり得る。複数のピクセル位置の範囲は、第２のライン中（例えば、第２の領域を含む同じライン中）の１つまたは複数の第３のピクセル位置を含む第３の領域をさらに含み得る。例えば、第３の領域中の１つまたは複数の第３のピクセル位置は、現在ブロックの一部である第１のライン中のピクセル位置に関してコロケートされる（または、現在ブロックと垂直方向にオーバーラップする）第２のライン中のいずれのピクセル位置も含まない可能性があり、一方、第２の領域中の１つまたは複数の第２のピクセル位置のうちの少なくとも１つは、現在ブロックの一部である第１のライン中のピクセル位置に関してコロケートされる（または、現在ブロックと垂直にオーバーラップする）第２のライン中の１つまたは複数の第２のピクセルを含み得る。本明細書で説明されるように、領域は、異なる数のピクセル位置を各々含み得る。例えば、第１の領域中のピクセル位置の数は、第２の領域中のピクセル位置の数よりも多く、それは、第３の領域よりも多い数のピクセル位置を有する。いくつかの実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の１×２区分である。他の実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の２×２区分である。いくつかの他の実施形態では、現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロックである。複数のピクセル位置の範囲における各潜在的な候補ブロックは、複数のピクセル位置の範囲中の任意のピクセル位置（例えば、第１の領域、第２の領域、または第３の領域中の複数のピクセル位置）に対応し得る（例えば、左上のピクセルまたは別の参照ピクセルとして含む）。候補ブロックに関連付けられたビデオデータは、ビデオ符号化デバイスのメモリに記憶され得る。
【０１５５】
[0182]  ブロック２６１０において、コーダは、複数のピクセル位置の範囲内の候補ブロックのピクセル位置を示す予測ベクトルを決定する。例えば、候補ブロックのピクセル位置は、第１の領域または第２の領域のうちの１つにあり得る。
【０１５６】
[0183]  ブロック２６１５において、コーダは、予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで現在ブロックをコーディングする。コーダは、固定数のビット（例えば、ピクセル位置の範囲における各ピクセル位置を一意に識別するために必要とされる最小数のビット）を使用して、予測ベクトルをシグナリングし得る。例えば、複数のピクセル位置の範囲内に６４個のピクセル位置が存在する場合、６ビットが各予測ベクトルをシグナリングするために使用され得る。いくつかの実施形態では、現在スライス内の現在ブロックのロケーションは、複数のピクセル位置の範囲が最大数のピクセル位置よりも小さいある特定数のピクセル位置よりも多いものを有することを妨げる場合、コーダは、複数のピクセル位置の範囲内の最大数のピクセル位置を一意に識別するために必要とされるビットの数よりも小さいものを使用して予測ベクトルをシグナリングし得る。例えば、コーダは、現在スライス内の現在ブロックのロケーションのために、複数のピクセルロケーションの範囲が３２個のピクセル位置よりも多くを有することができない（例えば、現在ラインが現在スライス中の第１のラインであり、ラスタスキャン順で現在ブロックに先行する３２個の再構成されたブロックのみが存在する）場合、低減されたビットの数（例えば、この場合は５個）は、現在ブロックをコーディングするために使用される候補ブロックのピクセル位置を示す予測ベクトルをシグナリングするために使用され得る。方法２６００はブロック２６２０において終了する。
【０１５７】
[0184]  方法２６００では、図２６に示されているブロックのうちの１つまたは複数は削除され得（例えば、実行されない）、および／または方法が実行される順序は入れ替えられることがある。いくつかの実施形態では、さらなるブロックが方法２６００に追加され得る。例えば、いくつかの実施形態では、コーダは、現在スライス中の複数のピクセルの第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを現在ブロックが含むことを決定し得、ここで、複数のピクセルの第３のラインは、現在スライスの全体の幅にわたり、現在ブロック中の少なくとも１つのピクセルを含み、ここで、第３のラインは、第１のラインとは異なる。このような決定に基づいて、コーダは、（i）第１のブロックに基づいて、現在ブロックをコーディングすることに関連付けられたコストを決定し、ここで、第１のブロックは、第１の領域中の少なくとも１つのピクセルと、第２の領域中の少なくとも１つのピクセルとを含み、（ii）第１のブロックに基づいて現在ブロックをコーディングすることに関連付けられたコストに基づいて、現在ブロックを予測するために使用される候補ブロックとなる第１のブロックを決定し得る。別の実施形態では、コーダは、現在スライス中の複数のピクセルの第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを現在ブロックが含むことを決定し得、ここで、複数のピクセルの第３のラインは、現在スライスの全体の幅にわたり、現在ブロック中の少なくとも１つのピクセルを含み、ここで、第３のラインは、第１のラインとは異なる。このような決定に基づいて、コーダは、（i）現在ブロックよりも少ない数のピクセルを有する第１のブロックに基づいて、現在ブロックをコーディングすることに関連付けられた第１のコストを決定し、ここで、第１のブロックは、第２の領域中の各々にある１つまたは複数のピクセルを含み、（ii）現在ブロックと同じ数のピクセルを有する第２のブロックに基づいて、現在ブロックをコーディングすることに関連付けられた第２のコストを決定し、ここで、第２のブロックは、第１のブロック中の１つまたは複数のピクセルの全てと、第１の領域中の各々にある１つまたは複数の追加のピクセルとを含み、（iii）第２のコストが第１のコストよりも大きいとの決定に基づいて、現在ブロックを予測するために使用される候補ブロックとなる第１のブロックを決定し得る。本開示の実施形態は、図２６に示されている例にまたはそれによって限定されず、他の変形が本開示の趣旨から逸脱することなく実装され得る。
【０１５８】
他の考慮事項
[0185]  本明細書で開示する情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【０１５９】
[0186]  本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定のアプリケーションおよび全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱をもたらすものと解釈されるべきではない。
【０１６０】
[0187]  本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたはコンポーネントとして説明された任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１６１】
[0188]  プログラムコードは、１つまたは複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積回路またはディスクリート論理回路などの、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。従って、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に適切な任意の他の構造または装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得るか、または複合ビデオエンコーダ−デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１６２】
[0189]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネントまたはユニットが説明されたが、それらは、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ、上記で説明されたように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１６３】
[0190]  上記で様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。しかしながら、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるものではない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
【図１Ａ】
2018536364.tif 000012
【図１Ｂ】
2018536364.tif 000013
【図２Ａ】
2018536364.tif 000014
【図２Ｂ】
2018536364.tif 000015
【図３】
2018536364.tif 000016
【図４】
2018536364.tif 000017
【図５】
2018536364.tif 000018
【図６】
2018536364.tif 000019
【図７】
2018536364.tif 000020
【図８】
2018536364.tif 000021
【図９】
2018536364.tif 000022
【図１０】
2018536364.tif 000023
【図１１】
2018536364.tif 000024
【図１２】
2018536364.tif 000025
【図１３】
2018536364.tif 000026
【図１４】
2018536364.tif 000027
【図１５】
2018536364.tif 000028
【図１６】
2018536364.tif 000029
【図１７】
2018536364.tif 000030
【図１８】
2018536364.tif 000031
【図１９】
2018536364.tif 000032
【図２０】
2018536364.tif 000033
【図２１】
2018536364.tif 000034
【図２２】
2018536364.tif 000035
【図２３】
2018536364.tif 000036
【図２４】
2018536364.tif 000037
【図２５】
2018536364.tif 000038
【図２６】
2018536364.tif 000039
【手続補正書】
【提出日】平成30年8月10日(2018.8.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックを符号化するための方法であって、前記方法は、
（i）現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の探索範囲と、ここで、複数のピクセルの前記第１のラインは、前記現在スライス中の現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の探索範囲と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を決定することと、
前記第１の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第１のレート−歪みコストを決定することと、
前記第２の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第２のレート−歪みコストを決定することと、
前記第１のレート−歪みコストと前記第２のレート−歪みコストとの比較に基づいて、前記現在ブロックを予測するために使用される前記第１の探索範囲および前記第２の探索範囲のうちの１つを選択することと、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つを示すフラグを符号化することと、ここにおいて、第１の値を有する前記フラグは、前記第１の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、前記第１の値とは異なる第２の値を有する前記フラグは、前記第２の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つに基づいて、前記簡略化されたブロック予測モードで前記現在ブロックを符号化することと
を備える、方法。
【請求項２】
複数のピクセルの前記第１のラインおよび複数のピクセルの前記第２のラインは、前記現在スライスの２つの隣接するラスタスキャンラインを備える、請求項１に記載の方法。
【請求項３】
前記現在ブロックは、１×２区分を備える２×８ブロック、または、２×２区分を備える２×８ブロックのうちの１つである、請求項１に記載の方法。
【請求項４】
前記フラグは、２つの可能性のある値のうちの１つを有する単一ビットフラグであり、前記２つの可能性のある値は、前記第１の値と前記第２の値とを含む、請求項１に記載の方法。
【請求項５】
前記第２の探索範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項１に記載の方法。
【請求項６】
前記１つまたは複数の第２のピクセル位置および前記１つまたは複数の第３のピクセル位置は、同じラスタスキャンラインを占有する、請求項５に記載の方法。
【請求項７】
前記第１の探索範囲は、第１の数のピクセル位置を含み、前記第１の数は、前記１つまたは複数の第２のピクセル位置の第２の数よりも大きく、かつ前記１つまたは複数の第３のピクセル位置の第３の数よりも大きい、請求項５に記載の方法。
【請求項８】
前記第１、第２、および第３の数は、互いに異なる、請求項７に記載の方法。
【請求項９】
前記第１の探索範囲および前記第２の探索範囲における複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックを予測することに関連付けられたレート−歪みコストを決定することと、
最低レート−歪みコストを有する前記複数の潜在的な候補ブロックのうちの１つを、前記現在ブロックを予測するために使用される候補ブロックとして識別することと
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つにおける各ピクセル位置を一意に識別するために必要とされるビットの数は、第１の数に等しく、前記方法は、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第１の数よりも小さいものを使用して、前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つ内の候補ブロックを示す予測ベクトルをシグナリングすることと
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
第１のブロックに基づいて前記現在ブロックを予測することに関連付けられたレート−歪みコストを決定することと、前記第１のブロックは、前記第１の探索範囲中の少なくとも１つのピクセルと前記第２の探索範囲中の少なくとも１つのピクセルとを含む、
前記第１のブロックに基づいて前記現在ブロックを予測することに関連付けられた前記レート−歪みコストに基づいて、前記現在ブロックを予測するために使用される、候補ブロックとなる前記第１のブロックを決定することと
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第１のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第１の候補レート−歪みコストを決定することと、前記第１のブロックは、前記第２の探索範囲中の各々にある１つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第２のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第２の候補レート−歪みコストを決定することと、前記第２のブロックは、前記第１のブロック中の前記１つまたは複数のピクセルの全てと、前記第１の探索範囲中の各々にある１つまたは複数の追加のピクセルとを含む、
前記第２の候補レート−歪みコストが前記第１の候補レート−歪みコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される、候補ブロックとなる前記第１のブロックを決定することと
をさらに備える、請求項１に記載の方法。
【請求項１３】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックを符号化するための装置であって、前記装置は、
ビデオデータの現在スライスの１つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、
前記メモリと通信状態にある１つまたは複数のプロセッサとを備え、前記１つまたは複数のプロセッサは、
（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の探索範囲と、ここで、複数のピクセルの前記第１のラインは、前記現在スライス中の現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の探索範囲と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を決定することと、
前記第１の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第１のレート−歪みコストを決定することと、
前記第２の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第２のレート−歪みコストを決定することと、
前記第１のレート−歪みコストと前記第２のレート−歪みコストとの比較に基づいて、前記現在ブロックを予測するために使用される前記第１の探索範囲および前記第２の探索範囲のうちの１つを選択することと、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つを示すフラグを符号化することと、ここにおいて、第１の値を有する前記フラグは、前記第１の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、前記第１の値とは異なる第２の値を有する前記フラグは、前記第２の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つに基づいて、前記簡略化されたブロック予測モードで前記現在ブロックを符号化することと
を行うように構成される、装置。
【請求項１４】
複数のピクセルの前記第１のラインおよび複数のピクセルの前記第２のラインは、前記現在スライスの２つの隣接するラスタスキャンラインを備える、請求項１３に記載の装置。
【請求項１５】
前記現在ブロックは、１×２区分を備える２×８ブロック、または、２×２区分を備える２×８ブロックのうちの１つである、請求項１３に記載の装置。
【請求項１６】
前記フラグは、２つの可能性のある値のうちの１つを有する単一ビットフラグであり、前記２つの可能性のある値は、前記第１の値と前記第２の値とを含む、請求項１３に記載の装置。
【請求項１７】
前記第２の探索範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項１３に記載の装置。
【請求項１８】
前記１つまたは複数の第２のピクセル位置および前記１つまたは複数の第３のピクセル位置は、同じラスタスキャンラインを占有する、請求項１７に記載の装置。
【請求項１９】
前記第１の探索範囲は、第１の数のピクセル位置を含み、前記第１の数は、前記１つまたは複数の第２のピクセル位置の第２の数よりも大きく、かつ前記１つまたは複数の第３のピクセル位置の第３の数よりも大きい、請求項１７に記載の装置。
【請求項２０】
前記第１、第２、および第３の数は、互いに異なる、請求項１９に記載の装置。
【請求項２１】
前記１つまたは複数のプロセッサは、
前記第１の探索範囲および前記第２の探索範囲における複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックを予測することに関連付けられたレート−歪みコストを決定することと、
最低レート−歪みコストを有する前記複数の潜在的な候補ブロックのうちの１つを、前記現在ブロックを予測するために使用される候補ブロックとして識別することと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２２】
前記第１の探索範囲および前記第２の探索のうちの前記選択された１つにおける各ピクセル位置を一意に識別するために必要とされるビットの数は、第１の数に等しく、前記１つまたは複数のプロセッサは、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第１の数よりも小さいものを使用して、前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つ内の候補ブロックを示す予測ベクトルをシグナリングすることと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２３】
前記１つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
第１のブロックに基づいて前記現在ブロックを予測することに関連付けられたレート−歪みコストを決定することと、前記第１のブロックは、前記第１の探索範囲中の少なくとも１つのピクセルと前記第２の探索範囲中の少なくとも１つのピクセルとを含む、
前記第１のブロックに基づいて前記現在ブロックを予測することに関連付けられた前記レート−歪みコストに基づいて、前記現在ブロックを予測するために使用される、候補ブロックとなる前記第１のブロックを決定することと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２４】
前記１つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第１のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第１の候補レート−歪みコストを決定することと、前記第１のブロックは、前記第２の探索範囲中の各々にある１つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第２のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第２の候補レート−歪みコストを決定することと、前記第２のブロックは、前記第１のブロック中の前記１つまたは複数のピクセルの全てと、前記第１の探索範囲中の各々にある１つまたは複数の追加のピクセルとを含む、
前記第２の候補レート−歪みコストが前記第１の候補レート−歪みコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される、候補ブロックとなる前記第１のブロックを決定することと
を行うようにさらに構成される、請求項１３に記載の装置。
【請求項２５】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックを符号化するように構成されたコードを備える非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の探索範囲と、ここで、複数のピクセルの前記第１のラインは、前記現在スライス中の現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の探索範囲と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を決定することと、
前記第１の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第１のレート−歪みコストを決定することと、
前記第２の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第２のレート−歪みコストを決定することと、
前記第１のレート−歪みコストと前記第２のレート−歪みコストとの比較に基づいて、前記現在ブロックを予測するために使用される前記第１の探索範囲および前記第２の探索範囲のうちの１つを選択することと、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つを示すフラグを符号化することと、ここにおいて、第１の値を有する前記フラグは、前記第１の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、前記第１の値とは異なる第２の値を有する前記フラグは、前記第２の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つに基づいて、前記簡略化されたブロック予測モードで前記現在ブロックを符号化することと
を行わせる、非一時的物理的コンピュータストレージ。
【請求項２６】
前記第２の探索範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項２５に記載の非一時的物理的コンピュータストレージ。
【請求項２７】
前記第１の探索範囲は、第１の数のピクセル位置を含み、前記第１の数は、前記１つまたは複数の第２のピクセル位置の第２の数よりも大きく、かつ前記１つまたは複数の第３のピクセル位置の第３の数よりも大きい、請求項２６に記載の非一時的物理的コンピュータストレージ。
【請求項２８】
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックを符号化するように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の探索範囲と、ここで、複数のピクセルの前記第１のラインは、前記現在スライス中の現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の探索範囲と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を決定するための手段と、
前記第１の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第１のレート−歪みコストを決定するための手段と、
前記第２の探索範囲に基づいて前記現在ブロックを予測することに関連付けられた第２のレート−歪みコストを決定するための手段と、
前記第１のレート−歪みコストと前記第２のレート−歪みコストとの比較に基づいて、前記現在ブロックを予測するために使用される前記第１の探索範囲および前記第２の探索範囲のうちの１つを選択するための手段と、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つを示すフラグを符号化するための手段と、ここにおいて、第１の値を有する前記フラグは、前記第１の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、前記第１の値とは異なる第２の値を有する前記フラグは、前記第２の探索範囲が前記現在ブロックを予測するために使用されるものであることを示し、
前記第１の探索範囲および前記第２の探索範囲のうちの前記選択された１つに基づいて、前記簡略化されたブロック予測モードで前記現在ブロックを符号化するための手段と
を備える、ビデオコーディングデバイス。
【請求項２９】
前記第２の探索範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、請求項２８に記載のビデオコーディングデバイス。
【請求項３０】
前記第１の探索範囲は、第１の数のピクセル位置を含み、前記第１の数は、前記１つまたは複数の第２のピクセル位置の第２の数よりも大きく、かつ前記１つまたは複数の第３のピクセル位置の第３の数よりも大きい、請求項２９に記載のビデオコーディングデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１６３
【補正方法】変更
【補正の内容】
【０１６３】
[0190]  上記で様々な異なる実施形態に関して説明したが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。しかしながら、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるものではない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための方法であって、前記方法は、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を備える、方法。
［Ｃ２］
複数のピクセルの前記第１のラインおよび複数のピクセルの前記第２のラインは、前記現在スライスの２つの隣接するラスタスキャンラインを備える、Ｃ１に記載の方法。
［Ｃ３］
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の１×２区分である、Ｃ１に記載の方法。
［Ｃ４］
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の２×２区分である、Ｃ１に記載の方法。
［Ｃ５］
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、Ｃ１に記載の方法。
［Ｃ６］
前記第２の領域および前記第３の領域は、同じラスタスキャンラインを占有する、Ｃ５に記載の方法。
［Ｃ７］
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、Ｃ５に記載の方法。
［Ｃ８］
前記第１、第２、および第３の数は、互いに異なる、Ｃ７に記載の方法。
［Ｃ９］
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第１および第２の領域中の前記第１および第２のピクセル位置の１つに各々対応する、
最低コストを有する前記第１および第２の領域中の前記複数の潜在的な候補ブロックのうちの１つを、前記候補ブロックとして識別することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１０］
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第１の数に等しく、前記方法は、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第１の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第１のブロックは、前記第１の領域中の少なくとも１つのピクセルと前記第２の領域中の少なくとも１つのピクセルとを含む、
前記第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第１のブロックを決定することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１２］
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第１のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第１のコストを決定することと、前記第１のブロックは、前記第２の領域中の各々にある１つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第２のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第２のコストを決定することと、前記第２のブロックは、前記第１のブロック中の前記１つまたは複数のピクセルの全てと、前記第１の領域中の各々にある１つまたは複数の追加のピクセルとを含む、
前記第２のコストが前記第１のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第１のブロックを決定することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１３］
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするための装置であって、前記装置は、
ビデオデータの現在スライスの１つまたは複数の再構成されたピクセルを記憶するように構成されたメモリと、
前記メモリと通信状態にある１つまたは複数のプロセッサとを備え、前記１つまたは複数のプロセッサは、
前記現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行うように構成される、装置。
［Ｃ１４］
複数のピクセルの前記第１のラインおよび複数のピクセルの前記第２のラインは、前記現在スライスの２つの隣接するラスタスキャンラインを備える、Ｃ１３に記載の装置。
［Ｃ１５］
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の１×２区分である、Ｃ１３に記載の装置。
［Ｃ１６］
前記現在ブロックは、簡略化されたブロック予測モードで予測された２×８ブロック内の２×２区分である、Ｃ１３に記載の装置。
［Ｃ１７］
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、Ｃ１３に記載の装置。
［Ｃ１８］
前記第２の領域および前記第３の領域は、同じラスタスキャンラインを占有する、Ｃ１７に記載の装置。
［Ｃ１９］
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、Ｃ１７に記載の装置。
［Ｃ２０］
前記第１、第２、および第３の数は、互いに異なる、Ｃ１９に記載の装置。
［Ｃ２１］
前記１つまたは複数のプロセッサは、
複数の潜在的な候補ブロックの各潜在的な候補ブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記複数の潜在的な候補ブロックは、前記第１および第２の領域中の前記第１および第２のピクセル位置の１つに各々対応する、
最低コストを有する前記第１および第２の領域中の前記複数の潜在的な候補ブロックのうちの１つを、前記候補ブロックとして識別することと
を行うようにさらに構成される、Ｃ１３に記載の装置。
［Ｃ２２］
複数のピクセル位置の前記範囲中の各ピクセル位置を一意に識別するために必要とされるビットの数は、第１の数に等しく、前記１つまたは複数のプロセッサは、
前記現在スライス内のあらかじめ定められた領域内に前記現在ブロックがあると決定することと、
ビットの前記第１の数よりも小さいものを使用して前記予測ベクトルをシグナリングすることと
を行うようにさらに構成される、Ｃ１３に記載の装置。
［Ｃ２３］
前記１つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられたコストを決定することと、前記第１のブロックは、前記第１の領域中の少なくとも１つのピクセルと前記第２の領域中の少なくとも１つのピクセルとを含む、
前記第１のブロックに基づいて前記現在ブロックをコーディングすることに関連付けられた前記コストに基づいて、前記現在ブロックを予測するために使用される、前記候補ブロックとなる前記第１のブロックを決定することと
を行うようにさらに構成される、Ｃ１３に記載の装置。
［Ｃ２４］
前記１つまたは複数のプロセッサは、
前記現在スライス中の複数のピクセルの前記第１のライン中の少なくとも１つのピクセルと、複数のピクセルの第３のライン中の少なくとも１つのピクセルとを前記現在ブロックが含むことを決定することと、複数のピクセルの前記第３のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの前記全体の幅にわたり、ここにおいて、前記第３のラインは、前記第１のラインとは異なる、
前記現在ブロックよりも少ない数のピクセルを有する第１のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第１のコストを決定することと、前記第１のブロックは、前記第２の領域中の各々にある１つまたは複数のピクセルを含む、
前記現在ブロックと同じ数のピクセルを有する第２のブロックに基づいて、前記現在ブロックをコーディングすることに関連付けられた第２のコストを決定することと、前記第２のブロックは、前記第１のブロック中の前記１つまたは複数のピクセルの全てと、前記第１の領域中の各々にある１つまたは複数の追加のピクセルとを含む、
前記第２のコストが前記第１のコストよりも大きいとの決定に基づいて、前記現在ブロックを予測するために使用される前記候補ブロックとなる前記第１のブロックを決定することと
を行うようにさらに構成される、Ｃ１３に記載の装置。
［Ｃ２５］
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを備える非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定することと、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定することと、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングすることと
を行わせる、非一時的物理的コンピュータストレージ。
［Ｃ２６］
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、Ｃ２５に記載の非一時的物理的コンピュータストレージ。
［Ｃ２７］
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、Ｃ２６に記載の非一時的物理的コンピュータストレージ。
［Ｃ２８］
固定ビットレートビデオコーディング方式の簡略化されたブロック予測モードでビデオデータのブロックをコーディングするように構成されたビデオコーディングデバイスであって、前記ビデオコーディングデバイスは、
現在スライス中の現在ブロックを予測するために使用される候補ブロックを決定するための手段と、前記候補ブロックは、前記現在スライス中の再構成されたピクセルに各々対応する複数のピクセル位置の範囲内にあり、複数のピクセル位置の前記範囲は、少なくとも（i）前記現在スライス中の複数のピクセルの第１のライン中の１つまたは複数の第１のピクセル位置を含む第１の領域と、ここで、複数のピクセルの前記第１のラインは、前記現在ブロック中の少なくとも１つのピクセルを含み、前記現在スライスの全体の幅にわたる、（ii）前記現在スライス中の複数のピクセルの第２のライン中の１つまたは複数の第２のピクセル位置を含む第２の領域と、ここで、複数のピクセルの前記第２のラインは、前記現在ブロック中のいずれのピクセルも含まないが、前記現在スライスの前記全体の幅にわたる、を備える、
複数のピクセル位置の前記範囲内の前記候補ブロックのピクセル位置を示す予測ベクトルを決定するための手段と、前記候補ブロックの前記ピクセル位置は、前記第１の領域または前記第２の領域のうちの１つにある、
前記予測ベクトルをシグナリングすることを少なくとも部分的に介して、簡略化されたブロック予測モードで前記現在ブロックをコーディングするための手段と
を備える、ビデオコーディングデバイス。
［Ｃ２９］
複数のピクセル位置の前記範囲は、複数のピクセルの前記第２のライン中の１つまたは複数の第３のピクセル位置を備える第３の領域をさらに含み、前記１つまたは複数の第３のピクセル位置は、前記現在ブロックの一部である前記第１のライン中のピクセル位置に関してコロケートされた前記第２のライン中のいずれのピクセル位置も含まない、Ｃ２８に記載のビデオコーディングデバイス。
［Ｃ３０］
前記第１の領域は、第１の数のピクセル位置を含み、前記第２の領域は、第２の数のピクセル位置を含み、前記第３の領域は、第３の数のピクセル位置を含み、前記第１の数は、前記第２の数よりも大きく、かつ前記第３の数よりも大きい、Ｃ２９に記載のビデオコーディングデバイス。
【国際調査報告】
2018536364.tif 000040
2018536364.tif 000041
2018536364.tif 000042