(57)【要約】  ディスプレイリンクを介した送信のために固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするための方法が開示される。一態様では、本方法は、第1の区分方式を使用してビデオデータのブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定するステップと、第2の区分方式を使用して現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定するステップと、第1の区分方式を使用して現在の領域をコーディングすることに関連する第1のコストが、第2の区分方式を使用して現在の領域をコーディングすることに関連する第2のコストよりも大きいと判断するステップと、第2の区分方式を使用して現在の領域をコーディングするステップとを含む。
2018532317.tif 000002
【特許請求の範囲】
【請求項１】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするための方法であって、
ブロック予測モードに関連する第1の区分方式に基づいてビデオデータの前記ブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定するステップであって、前記1つまたは複数の第1の候補領域は、前記現在の領域に関連するロケーションの第1の範囲内にあり、前記1つまたは複数の第1の候補領域は、ビデオ符号化デバイスのメモリに記憶される、ステップと、
ブロック予測モードに関連する第2の区分方式に基づいて前記現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定するステップであって、前記1つまたは複数の第2の候補領域は、前記現在の領域に関連するロケーションの第2の範囲内にあり、前記1つまたは複数の第2の候補領域は、前記ビデオ符号化デバイスの前記メモリに記憶される、ステップと、
前記第1の区分方式に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断するステップと、
前記第1のコストが前記第2のコストよりも大きいとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングするステップと
を含む方法。
【請求項２】
前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングするステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記残差は、ルーマ残差およびクロマ残差を含み、前記方法は、(i)第1の数のエントロピーコーディンググループを使用して、前記ルーマ残差に対してエントロピーコーディングを実行するステップ、および(ii)前記第1の数とは異なる第2の数のエントロピーコーディンググループを使用して、前記クロマ残差に対してエントロピーコーディングを実行するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記ビットストリームの中で、前記ブロック内の少なくとも1つの他の領域に対する1つまたは複数の第1の候補領域のロケーションを示す1つまたは複数の予測ベクトルをシグナリングするステップをさらに含み、前記少なくとも1つの他の領域に関してシグナリングされる予測ベクトルの数は、前記現在の領域に関してシグナリングされる予測ベクトルの数とは異なる、請求項2に記載の方法。
【請求項５】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、同じ1つまたは複数の候補領域を含む、請求項1に記載の方法。
【請求項６】
(i)前記現在の領域と前記1つまたは複数の第2の候補領域との間の絶対差分和、ならびに(ii)前記ビットストリームの中で前記1つまたは複数の予測ベクトルおよび対応する残差をシグナリングするために必要とされるビットの数に少なくとも部分的に基づいて前記第2のコストを決定するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記ビットストリームの中でパーティションインジケータをシグナリングするステップさらに含み、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含む、請求項1に記載の方法。
【請求項８】
前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項7に記載の方法。
【請求項９】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、異なるサイズを有する、請求項1に記載の方法。
【請求項１０】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、同じサイズを有する、請求項1に記載の方法。
【請求項１１】
ビデオデータの前記ブロックは、4:2:0クロマサブサンプリングフォーマットまたは4:2:2クロマサブサンプリングフォーマットのうちの1つに関連付けられる、請求項1に記載の方法。
【請求項１２】
前記1つまたは複数の第2の候補領域は、第1の数のクロマサンプルを有する第1の領域、および前記第1の数とは異なる第2の数のクロマサンプルを有する第2の領域を含み、前記第1および第2の領域は重複しない、請求項1に記載の方法。
【請求項１３】
前記1つまたは複数の第2の候補領域は、いかなるクロマサンプルにも関連付けられない少なくとも1つの領域を含む、請求項1に記載の方法。
【請求項１４】
前記現在の領域は、第1の数のクロマサンプルに関連する第1の現在の領域、および前記第1の数とは異なる第2の数のクロマサンプルに関連する第2の現在の領域を含み、前記1つまたは複数の第2の候補領域は、前記第1の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第1のもの、および前記第2の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第2のものを含む、請求項1に記載の方法。
【請求項１５】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成された装置であって、
1つまたは複数の候補領域に関連するビデオデータを記憶するように構成されたメモリと、
前記メモリと通信している1つまたは複数のプロセッサと
を含み、前記1つまたは複数のプロセッサは、
ブロック予測モードに関連する第1の区分方式に基づいてビデオデータの前記ブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定することであって、前記1つまたは複数の第1の候補領域は、前記現在の領域に関連するロケーションの第1の範囲内にある、決定することと、
ブロック予測モードに関連する第2の区分方式に基づいて前記現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定することであって、前記1つまたは複数の第2の候補領域は、前記現在の領域に関連するロケーションの第2の範囲内にある、決定することと、
前記第1の区分方式に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断することと、
前記第1のコストが前記第2のコストよりも大きいとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングすることと
を行うように構成される、装置。
【請求項１６】
前記1つまたは複数のプロセッサは、前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングするようにさらに構成される、請求項15に記載の装置。
【請求項１７】
前記残差は、ルーマ残差およびクロマ残差を含み、前記方法は、(i)第1の数のエントロピーコーディンググループを使用して、前記ルーマ残差に対してエントロピーコーディングを実行するステップ、および(ii)前記第1の数とは異なる第2の数のエントロピーコーディンググループを使用して、前記クロマ残差に対してエントロピーコーディングを実行するステップをさらに含む、請求項16に記載の装置。
【請求項１８】
前記1つまたは複数のプロセッサは、前記ビットストリームの中で、前記ブロック内の少なくとも1つの他の領域に対する1つまたは複数の第1の候補領域のロケーションを示す1つまたは複数の予測ベクトルをシグナリングするようにさらに構成され、前記少なくとも1つの他の領域に関してシグナリングされる予測ベクトルの数は、前記現在の領域に関してシグナリングされる予測ベクトルの数とは異なる、請求項16に記載の装置。
【請求項１９】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、同じ1つまたは複数の候補領域を含む、請求項15に記載の装置。
【請求項２０】
前記1つまたは複数のプロセッサは、(i)前記現在の領域と前記1つまたは複数の第2の候補領域との間の絶対差分和、ならびに(ii)前記ビットストリームの中で前記1つまたは複数の予測ベクトルおよび対応する残差をシグナリングするために必要とされるビットの数に少なくとも部分的に基づいて前記第2のコストを決定するようにさらに構成される、請求項15に記載の装置。
【請求項２１】
前記1つまたは複数のプロセッサは、前記ビットストリームの中でパーティションインジケータをシグナリングするようにさらに構成され、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含み、前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項15に記載の装置。
【請求項２２】
前記1つまたは複数の第2の候補領域は、第1の数のクロマサンプルを有する第1の領域、および前記第1の数とは異なる第2の数のクロマサンプルを有する第2の領域を含み、前記第1および第2の領域は重複しない、請求項15に記載の装置。
【請求項２３】
前記1つまたは複数の第2の候補領域は、いかなるクロマサンプルにも関連付けられない少なくとも1つの領域を含む、請求項15に記載の装置。
【請求項２４】
前記現在の領域は、第1の数のクロマサンプルに関連する第1の現在の領域、および前記第1の数とは異なる第2の数のクロマサンプルに関連する第2の現在の領域を含み、前記1つまたは複数の第2の候補領域は、前記第1の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第1のもの、および前記第2の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第2のものを含む、請求項15に記載の装置。
【請求項２５】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを含む非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
ブロック予測モードに関連する第1の区分方式に基づいてビデオデータの前記ブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定することであって、前記1つまたは複数の第1の候補領域は、前記現在の領域に関連するロケーションの第1の範囲内にある、決定することと、
ブロック予測モードに関連する第2の区分方式に基づいて前記現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定することであって、前記1つまたは複数の第2の候補領域は、前記現在の領域に関連するロケーションの第2の範囲内にある、決定することと、
前記第1の区分方式に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断することと、
前記第1のコストが前記第2のコストよりも大きいとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングすることと
を行わせる、非一時的物理的コンピュータストレージ。
【請求項２６】
前記コードは、前記装置に、前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングすることをさらに行わせる、請求項25に記載の非一時的物理的コンピュータストレージ。
【請求項２７】
前記コードは、前記装置に、前記ビットストリームの中でパーティションインジケータをシグナリングすることをさらに行わせ、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含み、前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項25に記載の非一時的物理的コンピュータストレージ。
【請求項２８】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成されたビデオコーディングデバイスであって、
ブロック予測モードに関連する第1の区分方式に基づいてビデオデータの前記ブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定するための手段であって、前記1つまたは複数の第1の候補領域は、前記現在の領域に関連するロケーションの第1の範囲内にある、手段と、
ブロック予測モードに関連する第2の区分方式に基づいて前記現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定するための手段であって、前記1つまたは複数の第2の候補領域は、前記現在の領域に関連するロケーションの第2の範囲内にある、手段と、
前記第1の区分方式に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断するための手段と、
前記第1のコストが前記第2のコストよりも大きいとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングするための手段と
を含むビデオコーディングデバイス。
【請求項２９】
前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングするための手段をさらに含む、請求項28に記載のビデオコーディングデバイス。
【請求項３０】
前記ビットストリームの中でパーティションインジケータをシグナリングするための手段をさらに含み、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含み、前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項28に記載のビデオコーディングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイリンクビデオ圧縮など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
デジタルビデオ能力は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲のディスプレイに組み込まれ得る。ディスプレイを適切なソースデバイスに接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、したがって、高解像度ディスプレイは大帯域幅ディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。より小さい帯域幅のディスプレイリンクが高解像度ディスプレイにデジタルビデオを提供するために使用され得るように、ビデオ圧縮を使用して帯域幅要件を低減することができる。
【０００３】
ピクセルデータに対する画像圧縮を伴うコーディング方式がある。しかしながら、そのような方式は、時には視覚的ロスレスでなく、または従来のディスプレイデバイスにおいて実装するのが難しく、コストがかかる場合がある。
【０００４】
ビデオエレクトロニクス規格協会(VESA:Video Electronics Standards Association)が、ディスプレイリンクビデオ圧縮のための規格としてディスプレイストリーム圧縮(DSC)を開発した。DSCなどのディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスである(すなわち、圧縮がアクティブであることがユーザにわからないようなレベルの品質をピクチャが有する)ピクチャ品質を提供すべきである。ディスプレイリンクビデオ圧縮技法は、従来のハードウェアを用いてリアルタイムで実装するのが容易であり、コストがかからない方式も提供すべきである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ディスプレイストリーム圧縮(DSC)規格は、ビデオデータの各ブロックがエンコーダによって符号化され、同様に、デコーダによって復号され得るいくつかのコーディングモードを含む。いくつかの実装形態では、エンコーダおよび/またはデコーダは、コーディングされるべき現在のブロックを、以前コーディングされたブロックに基づいて予測し得る。
【０００６】
しかしながら、既存のコーディングモード(たとえば、変換コーディング、差分パルス符号変調など)は、ビデオデータにおける非常に複雑な領域を圧縮する十分な方法を提供しない。しばしば、このタイプのデータ(すなわち、高度に圧縮されたビデオデータ)の場合、コーディングされるべき現在のブロック(または現在のブロックの構成要素であるサブブロック)は、コーダ(たとえば、エンコーダまたはデコーダ)が遭遇した以前のブロックと内容が類似している。しかしながら、既存のイントラ予測は非常に限られていて、そのような現在のブロックの十分な予測(たとえば、以前のブロックと十分に類似しており、そのため十分に小さい残差を生じさせることになる、現在のブロックの予測)をもたらさないことがある。したがって、ビデオデータのブロックをコーディングする改善された方法が望まれる。
【課題を解決するための手段】
【０００７】
本開示のシステム、方法、およびデバイスは、いくつかの発明的態様をそれぞれ有し、それらの態様はどれも、本明細書で開示する望ましい属性を単独で担うものでない。
【０００８】
一態様では、固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするための方法が、ブロック予測モードに関連する第1の区分方式に基づいてビデオデータのブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定するステップであって、1つまたは複数の第1の候補領域は、現在の領域に関連するロケーションの第1の範囲内にあり、1つまたは複数の第1の候補領域は、ビデオ符号化デバイスのメモリに記憶される、ステップと、ブロック予測モードに関連する第2の区分方式に基づいて現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定するステップであって、1つまたは複数の第2の候補領域は、現在の領域に関連するロケーションの第2の範囲内にあり、1つまたは複数の第2の候補領域は、ビデオ符号化デバイスのメモリに記憶される、ステップと、第1の区分方式に基づいて現在の領域をコーディングすることに関連する第1のコストが、第2の区分方式に基づいて現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断するステップと、第1のコストが第2のコストよりも大きいとの判断に応答して、1つまたは複数の第2の候補領域に基づいて現在の領域をビットストリームの中でコーディングするステップとを含み得る。
【０００９】
別の態様では、固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成された装置が、1つまたは複数の候補領域に関連するビデオデータを記憶するように構成されたメモリと、メモリと通信している1つまたは複数のプロセッサとを含み得る。1つまたは複数のプロセッサは、ブロック予測モードに関連する第1の区分方式に基づいてビデオデータのブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定することであって、1つまたは複数の第1の候補領域は、現在の領域に関連するロケーションの第1の範囲内にある、決定することと、ブロック予測モードに関連する第2の区分方式に基づいて現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定することであって、1つまたは複数の第2の候補領域は、現在の領域に関連するロケーションの第2の範囲内にある、決定することと、第1の区分方式に基づいて現在の領域をコーディングすることに関連する第1のコストが、第2の区分方式に基づいて現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断することと、第1のコストが第2のコストよりも大きいとの判断に応答して、1つまたは複数の第2の候補領域に基づいて現在の領域をビットストリームの中でコーディングすることとを行うように構成され得る。
【００１０】
別の態様では、非一時的物理的コンピュータストレージが、固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを含み得る。コードは、実行されたとき、装置に、ブロック予測モードに関連する第1の区分方式に基づいてビデオデータのブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定することであって、1つまたは複数の第1の候補領域は、現在の領域に関連するロケーションの第1の範囲内にある、決定することと、ブロック予測モードに関連する第2の区分方式に基づいて現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定することであって、1つまたは複数の第2の候補領域は、現在の領域に関連するロケーションの第2の範囲内にある、決定することと、第1の区分方式に基づいて現在の領域をコーディングすることに関連する第1のコストが、第2の区分方式に基づいて現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断することと、第1のコストが第2のコストよりも大きいとの判断に応答して、1つまたは複数の第2の候補領域に基づいて現在の領域をビットストリームの中でコーディングすることとを行わせ得る。
【００１１】
別の態様では、ビデオコーディングデバイスが、固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成され得る。ビデオコーディングデバイスは、ブロック予測モードに関連する第1の区分方式に基づいてビデオデータのブロック内の現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定するための手段であって、1つまたは複数の第1の候補領域は、現在の領域に関連するロケーションの第1の範囲内にある、手段と、ブロック予測モードに関連する第2の区分方式に基づいて現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定するための手段であって、1つまたは複数の第2の候補領域は、現在の領域に関連するロケーションの第2の範囲内にある、手段と、第1の区分方式に基づいて現在の領域をコーディングすることに関連する第1のコストが、第2の区分方式に基づいて現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断するための手段と、第1のコストが第2のコストよりも大きいとの判断に応答して、1つまたは複数の第2の候補領域に基づいて現在の領域をビットストリームの中でコーディングするための手段とを含み得る。
【図面の簡単な説明】
【００１２】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図１Ｂ】本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】技法を実装し得るビデオエンコーダの一例を示すブロック図である。
【図２Ｂ】技法を実装し得るビデオデコーダの一例を示すブロック図である。
【図３】1-Dブロックの第1以外のラインの探索空間を示すブロック図である。
【図４】2-Dブロックの第1以外のラインの探索空間を示すブロック図である。
【図５】1-Dブロックの第1のラインの探索空間を示すブロック図である。
【図６】2-Dブロックの第1のラインの探索空間を示すブロック図である。
【図７】ブロック予測モードでビデオデータのブロックを予測するための方法を示すフローチャートである。
【図８】パーティションを有するブロックを示すブロック図である。
【図９】適応的パーティションサイズを伴うブロック予測モードのためのデータフローを示すブロック図である。
【図１０】ブロック内の2×2領域のための2つの異なるパーティションオプションを示すブロック図である。
【図１１】ブロック予測モードのためのエントロピーコーディンググループを示すブロック図である。
【図１２】2×8ブロックの探索空間を示すブロック図である。
【図１３】ブロックの異なる領域に使用されている異なるパーティションサイズを示すブロック図である。
【図１４】可変パーティションサイズを使用してブロック予測モードでビデオデータのブロックを予測するための方法を示すフローチャートである。
【図１５】4:2:0クロマサブサンプリングのための2×2パーティションの例示的なブロック予測探索を示すブロック図である。
【図１６】4:2:0クロマサブサンプリングのための1×2パーティションの例示的なブロック予測探索を示すブロック図である。
【図１７】4:2:2クロマサブサンプリングのための2×2パーティションの例示的なブロック予測探索を示すブロック図である。
【図１８】4:2:2クロマサブサンプリングのための1×2パーティションの例示的なブロック予測探索を示すブロック図である。
【発明を実施するための形態】
【００１３】
概して、本開示は、たとえば、ディスプレイリンクビデオ圧縮において利用されるようなビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、可変パーティションサイズを使用してブロック予測モードでビデオデータのブロックをコーディングするためのシステムおよび方法に関する。
【００１４】
いくつかの実施形態が、ディスプレイリンクビデオ圧縮技法の一例であるDSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示するシステムおよび方法が、任意の適切なビデオコーディング規格に適用可能であり得ることが当業者には諒解されよう。たとえば、本明細書で開示する実施形態は、国際電気通信連合(ITU)電気通信規格化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)Moving Picture Experts Group-1(MPEG 1)Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG 4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)、高効率ビデオコーディング(HEVC)という規格のうちの1つまたは複数、およびそのような規格の拡張に適用可能であり得る。また、本開示で説明する技法は、将来的に開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、以前開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および今後のビデオコーディング規格に適用可能であり得る。
【００１５】
DSC規格は、ビデオデータの各ブロックがエンコーダによって符号化され、同様に、デコーダによって復号され得るいくつかのコーディングモードを含む。いくつかの実装形態では、エンコーダおよび/またはデコーダは、コーディングされるべき現在のブロックを、以前コーディングされたブロックに基づいて予測し得る。
【００１６】
しかしながら、既存のコーディングモード(たとえば、変換コーディング、差分パルス符号変調など)は、ビデオデータにおける非常に複雑な領域を圧縮する十分な方法を提供しない。しばしば、このタイプのデータ(すなわち、高度に圧縮されたビデオデータ)の場合、コーディングされるべき現在のブロック(または現在のブロックの構成要素であるサブブロック)は、コーダ(たとえば、エンコーダまたはデコーダ)が遭遇した以前のブロックと内容が類似している。しかしながら、既存のイントラ予測は非常に限られていて、そのような現在のブロックの十分な予測(たとえば、以前のブロックと十分に類似しており、そのため十分に小さい残差を生じさせることになる、現在のブロックの予測)をもたらさないことがある。したがって、ビデオデータのブロックをコーディングする改善された方法が望まれる。
【００１７】
本開示では、ブロック予測モードでブロックをコーディングする改善された方法について説明する。たとえば、現在のブロック(または現在のブロック内の現在の領域)を予測するために使用されるべき候補ブロック(または候補領域)を探索するとき、探索コストを最小限にする一方で、良好なマッチであり得る潜在的候補にエンコーダがアクセスできるように、探索範囲が規定され得る。別の例では、本方法は、各ブロック(または各パーティション)の予測を明示的にシグナリングするステップを含み得る。別の例では、エンコーダは、レートひずみ(RD)分析に基づいて、現在のブロックを単一のパーティションを使用してコーディングするか、それとも複数のパーティションを使用してコーディングするかを決定し得る。エンコーダ側でさらなる動作を実行すること(たとえば、計算リソースおよび処理能力を消費し得る、現在のブロックを予測するために使用されるべき候補ブロックを探索すること、現在のブロックに対する候補ブロックのロケーションを識別するベクトルを計算すること、異なるパーティションサイズに関するRDコストを計算すること、どのパーティションサイズが最良のコーディング効率をもたらすかを判断することなど)によって、本方法は、デコーダの複雑性を低減し得る。さらに、エンコーダが各ブロックのパーティションサイズを適応的に選択することを可能にすることによって、ブロック予測方式のパフォーマンスはさらに改善され得る。
【００１８】
ビデオコーディング規格
ビデオ画像、TV画像、静止画像、またはビデオレコーダもしくはコンピュータによって生成された画像などのデジタル画像は、水平ラインおよび垂直ラインをなして配列されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は通常、数万である。各ピクセルは通常、ルミナンス情報およびクロミナンス情報を含む。圧縮を用いないと、画像エンコーダから画像デコーダへ伝えられるべき莫大な量の情報が、リアルタイム画像送信を非実用的にさせることになる。送信されるべき情報の量を低減するために、JPEG、MPEG、およびH.263規格などの、いくつかの異なる圧縮方法が開発されている。
【００１９】
ビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)、およびHEVC(そのような規格の拡張を含む)を含む。
【００２０】
加えて、ビデオコーディング規格、すなわちDSCが、VESAによって開発された。DSC規格は、ディスプレイリンクを介した送信用にビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増大するにつれて、ディスプレイを駆動するのに必要なビデオデータの帯域幅は、それに相応して増大する。いくつかのディスプレイリンクは、そのような解像度にとって、ビデオデータのすべてをディスプレイに送信するための帯域幅を有しないことがある。したがって、DSC規格は、相互動作可能な、ディスプレイリンクを介した視覚的ロスレス圧縮のための圧縮規格を規定する。
【００２１】
DSC規格は、H.264およびHEVCなどの他のビデオコーディング規格とは異なる。DSCは、フレーム内圧縮を含むがフレーム間圧縮は含まず、そのことは、ビデオデータをコーディングする際に時間情報がDSC規格によって使用され得ないことを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。
【００２２】
ビデオコーディングシステム
新規のシステム、装置、および方法の様々な態様が、添付の図面を参照して以下でより十分に説明される。ただし、本開示は、多くの異なる形態で具現化されてよく、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきでない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように提供される。本明細書の教示に基づいて、本開示の範囲が、本開示の任意の他の態様とは無関係に実施されるにせよ、本開示の任意の他の態様と組み合わせて実施されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様もカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載した任意の数の態様を使用して、装置が実装されてよく、または方法が実践されてよい。加えて、本開示の範囲は、本明細書に記載した本開示の様々な態様に加えて、またはそうした態様以外に、他の構造、機能、または構造および機能を使用して実践されるような装置または方法をカバーするものとする。本明細書で開示する任意の態様が特許請求の範囲の1つまたは複数の要素によって具現化され得ることを理解されたい。
【００２３】
特定の態様について本明細書で説明するが、これらの態様の多くの変形形態および置換形態が、本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が言及されるが、本開示の範囲は、特定の利益、用途、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であるであるものとし、そのうちのいくつかが例として図面および好ましい態様の以下の説明において示される。発明を実施するための形態および図面は、限定的でなく、本開示の例示にすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００２４】
添付の図面は例を示す。添付の図面において参照番号によって示される要素は、以下の説明において同様の参照番号によって示される要素に対応する。本開示では、序数語(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名称を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは類似のタイプの異なる要素を指すために使用されるにすぎない。
【００２５】
図1Aは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用し、説明する「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化およびビデオ復号を総称的に指す場合がある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ(たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス)およびミドルボックス(たとえば、ビットストリームを修正し、変換し、かつ/またはさもなければ操作することができるデバイス)など、他の関連デバイスに拡張され得る。
【００２６】
図1Aに示すように、ビデオコーディングシステム10は、宛先デバイス14(すなわち、「ビデオコーディングデバイス14」または「コーディングデバイス14」)によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12(すなわち、「ビデオコーディングデバイス12」または「コーディングデバイス12」)を含む。図1Aの例において、ソースデバイス12および宛先デバイス14は別個のデバイスを構成する。ただし、ソースデバイス12および宛先デバイス14が、図1Bの例に示すように同じデバイス上にあるか、またはその一部であってよいことに留意されたい。
【００２７】
図1Aを再度参照すると、ソースデバイス12および宛先デバイス14はそれぞれ、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイス(ビデオコーディングデバイスとも呼ばれる)のいずれかを含み得る。様々な実施形態において、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されて(すなわち、ワイヤレス通信を介して通信するように構成されて)もよい。
【００２８】
ビデオコーディングシステム10のビデオコーディングデバイス12、14は、ワイヤレスワイドエリアネットワーク(WWAN)(たとえば、セルラー)および/またはワイヤレスローカルエリアネットワーク(WLAN)キャリアなどのワイヤレスネットワークおよび無線技術を介して通信するように構成され得る。「ネットワーク」および「システム」という用語は、多くの場合に互換的に使用される。ビデオコーディングデバイス12、14の各々は、ユーザ機器(UE)、ワイヤレスデバイス、端末、移動局、加入者ユニットなどであり得る。
【００２９】
WWANキャリアは、たとえば、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交FDMA(OFDMA)、シングルキャリアFDMA(SC-FDMA)および他のネットワークなどのワイヤレス通信ネットワークを含み得る。CDMAネットワークは、ユニバーサル地上無線アクセス(UTRA:Universal Terrestrial Radio Access)、CDMA2000などの無線技術を実装し得る。UTRAは、広帯域CDMA(WCDMA(登録商標))およびCDMAの他の変形態を含む。CDMA2000は、IS-2000規格、IS-95規格およびIS-856規格をカバーする。TDMAネットワークは、モバイル通信用グローバルシステム(GSM(登録商標))などの無線技術を実装し得る。OFDMAネットワークは、発展型UTRA(E-UTRA:Evolved UTRA)、ウルトラモバイルブロードバンド(UMB)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、Flash-OFDMAなどの無線技術を実装し得る。UTRAおよびE-UTRAはユニバーサルモバイルテレコミュニケーションシステム(UMTS)の一部である。3GPPロングタームエボリューション(LTE)およびLTEアドバンスト(LTE-A)は、E-UTRAを使用するUMTSの新たなリリースである。UTRA、E-UTRA、UMTS、LTE、LTE-A、およびGSM(登録商標)は、「第3世代パートナーシッププロジェクト」(3GPP)と称する団体からの文書に記載されている。CDMA2000およびUMBは、「第3世代パートナーシッププロジェクト2」(3GPP2)と称する団体からの文書に記載されている。
【００３０】
ビデオコーディングシステム10のビデオコーディングデバイス12、14はまた、IEEE 802.11規格などの1つまたは複数の規格(たとえば、これらの修正である802.11a-1999(一般に「802.11a」と呼ばれる)、802.11b-1999(一般に「802.11b」と呼ばれる)、802.11g-2003(一般に「802.11g」と呼ばれる)などを含む)に従ってWLAN基地局を介して互いに通信することができる。
【００３１】
宛先デバイス14は、復号されるべき符号化ビデオデータを、リンク16を介して受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを含み得る。図1Aの例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムで宛先デバイス14に送信することを可能にするための通信媒体を含み得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され得、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体または有線通信媒体を含み得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００３２】
図1Aの例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20(単にエンコーダ20とも呼ばれる)と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前キャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に示すように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。しかしながら、本開示で説明する技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレスおよび/または有線の用途に適用され得る。
【００３３】
キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に送信され得る。符号化ビデオデータは、同様に(または、代替として)、復号および/または再生のために宛先デバイス14または他のデバイスによって後でアクセスできるように、記憶デバイス31上に記憶され得る。図1Aおよび図1Bに示すビデオエンコーダ20は、図2Aに示すビデオエンコーダ20または本明細書で説明する任意の他のビデオエンコーダを含み得る。
【００３４】
図1Aの例では、宛先デバイス14は、入力インターフェース28、ビデオデコーダ30(単にデコーダ30とも呼ばれる)、およびディスプレイデバイス32を含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して、かつ/または記憶デバイス31から、符号化ビデオデータを受信し得る。リンク16を介して通信されるかまたは記憶デバイス31上で提供される符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含められてよい。図1Aおよび図1Bに示すビデオデコーダ30は、図2Bに示すビデオデコーダ30または本明細書で説明する任意の他のビデオデコーダを含み得る。
【００３５】
ディスプレイデバイス32は、宛先デバイス14と統合されてよく、またはその外部にあってもよい。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含んでよく、外部ディスプレイデバイスとインターフェースするように構成されてもよい。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを含み得る。
【００３６】
関連する態様では、図1Bは、ソースデバイス12および宛先デバイス14がデバイス11上にあるかまたはその一部である、例示的なビデオコーディングシステム10'を示す。デバイス11は、「スマート」フォンなどの電話ハンドセットであってよい。デバイス11は、ソースデバイス12および宛先デバイス14と動作可能に通信するプロセッサ/コントローラデバイス13(随意に存在する)を含み得る。図1Bのビデオコーディングシステム10'およびその構成要素は、その他の点では、図1Aのビデオコーディングシステム10およびその構成要素と同様である。
【００３７】
ビデオエンコーダ20およびビデオデコーダ30は、DSCなどのビデオ圧縮規格に従って動作し得る。代替として、ビデオエンコーダ20およびビデオデコーダ30は、MPEG-4、Part 10、AVCと代替的に呼ばれるITU-T H.264規格、HEVC、またはそのような規格の拡張などの他のプロプライエタリ規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、MPEG-2およびITU-T H.263を含む。
【００３８】
図1Aおよび図1Bの例には示されていないが、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびオーディオデコーダと一体化され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。該当する場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、または、ユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠してもよい。
【００３９】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体の中にソフトウェア用の命令を記憶し、本開示の技法を実行するための1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、それらのいずれもが、複合エンコーダ/デコーダの一部としてそれぞれのデバイスの中に統合されてよい。
【００４０】
ビデオコーディングプロセス
上で簡略に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは、1つまたは複数のピクチャを含み得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ20がビデオデータ(たとえば、ビデオコーディングレイヤ(VCL)データおよび/または非VCLデータ)を符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャおよび関連データを含み得る。コード化ピクチャは、ピクチャのコード化表現である。VCLデータは、コード化ピクチャデータ(すなわち、コード化ピクチャのサンプルに関連する情報)を含んでよく、非VCLデータは、1つまたは複数のコード化ピクチャに関連する制御情報(たとえば、パラメータセットおよび/または補足エンハンスメント情報)を含んでよい。
【００４１】
ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化動作を実行し得る。ビデオエンコーダ20がピクチャに対して符号化動作を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャおよび関連データを生成し得る。関連データは、量子化パラメータ(QP)などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを、等しいサイズのビデオブロックに区分し得る。ビデオブロックは、サンプルの2次元アレイであり得る。コーディングパラメータは、ビデオデータのすべてのブロックに対してコーディングオプション(たとえば、コーディングモード)を規定し得る。コーディングオプションは、所望のRD性能を達成するように選択され得る。
【００４２】
いくつかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしに独立して復号できる、画像(たとえば、フレーム)中の空間的に別個の領域を含み得る。各画像またはビデオフレームは単一のスライスの中で符号化されてよく、あるいは各画像またはビデオフレームはいくつかのスライスの中で符号化されてもよい。DSCにおいて、各スライスを符号化するために割り振られるビットの数は、実質的に固定であり得る。ピクチャに対して符号化動作を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化動作を実行し得る。ビデオエンコーダ20がスライスに対して符号化動作を実行するとき、ビデオエンコーダ20は、スライスに関連する符号化データを生成し得る。スライスに関連する符号化データは、「コード化スライス」と呼ばれ得る。
【００４３】
DSCビデオエンコーダ
図2Aは、本開示で説明する態様による技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、本開示の技法のうちの一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素の間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明する技法のうちの一部または全部を実行するように構成され得る。
【００４４】
説明の目的で、本開示は、DSCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００４５】
図2Aの例では、ビデオエンコーダ20は、複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、色空間変換器105、バッファ110、平坦度検出器115、レートコントローラ120、予測器、量子化器、および再構成器構成要素125、ラインバッファ130、インデックス付き色履歴135、エントロピーエンコーダ140、サブストリームマルチプレクサ145、ならびにレートバッファ150を含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００４６】
色空間変換器105は、入力色空間を、コーディング実装において使用される色空間に変換し得る。たとえば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青(RGB)色空間にあり、コーディングは、ルミナンスY、クロミナンス緑Cg、およびクロミナンス橙Co(YCgCo)色空間において実装される。色空間変換は、ビデオデータへのシフトおよび加算を含む方法によって実行され得る。他の色空間における入力ビデオデータが処理されてよく、他の色空間への変換も実行され得ることに留意されたい。
【００４７】
関連する態様では、ビデオエンコーダ20は、バッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。たとえば、バッファ110は、色空間変換されたビデオデータを、ビデオエンコーダ20の他の部分によるそれの使用の前に保持(たとえば、記憶)し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータがRGB色空間において記憶されてよく、色空間変換は必要に応じて実行されてよい。
【００４８】
レートバッファ150は、レートコントローラ120に関して以下でより詳細に説明する、ビデオエンコーダ20の中のレート制御機構の一部として機能し得る。各ブロックを符号化するのに費やされるビットの数は、ブロックの性質に基づいてかなり大幅に変わることがある。レートバッファ150は、圧縮ビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、レートバッファ(たとえば、レートバッファ150)に記憶されたビットがレートバッファから固定ビットレートで取り去られる固定ビットレート(CBR)バッファモデルが利用される。CBRバッファモデルでは、ビデオエンコーダ20がビットストリームにあまりにも多くのビットを追加した場合、レートバッファ150はオーバーフローし得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防止するために、十分なビットを追加する必要があり得る。
【００４９】
ビデオデコーダ側において、ビットは、ビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明する図2Bを参照)に固定ビットレートで追加されてよく、ビデオデコーダ30は、ブロックごとに可変数のビットを取り去ってよい。適正な復号を確実にするために、ビデオデコーダ30のレートバッファ155は、圧縮ビットストリームの復号中に「アンダーフロー」も「オーバーフロー」もすべきでない。
【００５０】
いくつかの実施形態では、バッファフルネス(BF:buffer fullness)は、バッファの中に現在あるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズを表すBufferMaxSize、すなわち、任意の時点においてレートバッファ150に記憶され得るビットの最大数とに基づいて、規定され得る。BFは、次のように計算され得る。
BF=((BufferCurrentSize*100)/BufferMaxSize)
【００５１】
平坦度検出器115は、ビデオデータ中の複雑(すなわち、非平坦)エリアから、ビデオデータ中の平坦(すなわち、単純または均一)エリアへの変更を検出し得る。「複雑」および「平坦」という用語は、本明細書において、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの難しさを指すために使用される。したがって、本明細書で使用される「複雑」という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのが複雑なものとして記述し、たとえば、テクスチャ化ビデオデータ、高い空間周波数、および/または符号化するのが複雑な他の特徴を含み得る。本明細書で使用される「平坦」という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのが簡単なものとして記述し、たとえば、ビデオデータ中の平滑勾配、低い空間周波数、および/または符号化するのが簡単な他の特徴を含み得る。複雑領域と平坦領域との間の遷移は、ビデオエンコーダ20によって、符号化ビデオデータにおける量子化乱れを削減するために使用され得る。具体的には、複雑領域から平坦領域への遷移が識別されると、レートコントローラ120ならびに予測器、量子化器、および再構成器構成要素125がそのような量子化乱れを削減することができる。
【００５２】
レートコントローラ120は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ150がオーバーフローもアンダーフローもしないことを確実にするターゲットビットレートに対するピクチャ品質を最大限にするために、レートバッファ150のバッファフルネスおよびビデオデータの画像活動度に基づいて、レートコントローラ120によって調節され得る。レートコントローラ120はまた、最適なRD性能を達成するために、ビデオデータのブロックごとに特定のコーディングオプション(たとえば、特定のモード)を選択する。レートコントローラ120は、レートコントローラ120がビットレート制約を満たすように、すなわち、全体的な実際のコーディングレートがターゲットビットレート内に収まるように、再構成画像のひずみを最小限にする。
【００５３】
予測器、量子化器、および再構成器構成要素125は、ビデオエンコーダ20の少なくとも3つの符号化動作を実行し得る。予測器、量子化器、および再構成器構成要素125は、いくつかの異なるモードで予測を実行し得る。1つの例示的な予測モードが、メディアン適応予測の修正バージョンである。メディアン適応予測は、ロスレスJPEG規格(JPEG-LS)によって実施され得る。予測器、量子化器、および再構成器構成要素125によって実行され得るメディアン適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードは、ブロック予測である。ブロック予測では、サンプルは、上のラインの中の、または同じラインの中で左の、以前再構成されたピクセルから予測される。いくつかの実施形態では、ビデオエンコーダ20およびビデオデコーダ30は両方とも、ブロック予測の使用を決定するために再構成ピクセルに対して同一の探索を実行し得、したがって、ビットがブロック予測モードで送られる必要はない。他の実施形態では、ビデオデコーダ30が別個の探索を実行する必要がないように、ビデオエンコーダ20が探索を実行し得るとともにブロック予測ベクトルをビットストリームの中でシグナリングし得る。成分範囲の中間点を使用してサンプルが予測される、中間点予測モードも実施されてよい。中間点予測モードは、ワーストケースサンプルにおいてさえ、圧縮ビデオにとって必要なビット数のバウンディングを可能にし得る。図3〜図18を参照して以下でさらに説明するように、予測器、量子化器、および再構成器構成要素125は、本明細書で説明する1つまたは複数の技法に基づいて、ビデオデータのブロック(または任意の他の予測単位)をコーディングする(たとえば、符号化または復号する)ように構成されてよい。たとえば、予測器、量子化器、および再構成器構成要素125は、図7および図14に示す方法を実行するように構成され得る。他の実施形態では、予測器、量子化器、および再構成器構成要素125は、ビデオエンコーダ20の1つまたは複数の他の構成要素とともに、本明細書で説明する1つまたは複数の方法または技法を実行するように構成され得る。
【００５４】
予測器、量子化器、および再構成構成要素125はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実施され得る2のべき乗量子化器により実行され得る。2のべき乗量子化器の代わりに他の量子化技法が実施され得ることに留意されたい。予測器、量子化器、および再構成器構成要素125によって実行される量子化は、レートコントローラ120によって決定されたQPに基づき得る。最後に、予測器、量子化器、および再構成器構成要素125はまた、逆量子化残差を予測値に加算すること、および結果がサンプル値の有効範囲の外にならないことを確実にすることを含む、再構成を実行する。
【００５５】
予測器、量子化器、および再構成器構成要素125によって実行される予測、量子化、および再構成のための上記の例示的な手法が例示にすぎないこと、ならびに他の手法が実施され得ることに留意されたい。予測器、量子化器、および再構成器構成要素125が、予測、量子化、および/または再構成を実行するための下位構成要素を含み得ることにも留意されたい。予測、量子化、および/または再構成は、予測器、量子化器、および再構成器構成要素125の代わりに、いくつかの別個のエンコーダ構成要素によって実行され得ることにさらに留意されたい。
【００５６】
予測器、量子化器、および再構成器構成要素125ならびにインデックス付き色履歴135が、バッファリングされたビデオデータを使用できるように、ラインバッファ130は、予測器、量子化器、および再構成器構成要素125からの出力を保持する(たとえば、記憶する)。インデックス付き色履歴135は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介して、ビデオエンコーダ20によって直接参照され得る。
【００５７】
エントロピーエンコーダ140は、予測器、量子化器、および再構成器構成要素125から受信された予測残差および任意の他のデータ(たとえば、予測器、量子化器、および再構成器構成要素125によって識別されたインデックス)を、インデックス付き色履歴135、および平坦度検出器115によって識別された平坦度遷移に基づいて符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとにクロックあたり3サンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。このことにより、ビデオデコーダ30は、3つのエントロピーデコーダを並行して動作させることができ、クロックあたり3ピクセルの復号を容易にする。サブストリームマルチプレクサ145は、ビデオデコーダ30によってパケットが効率的に復号され得るようにパケット順序を最適化し得る。クロックあたり2のべき乗個のピクセル(たとえば、2ピクセル/クロックまたは4ピクセル/クロック)の復号を容易にし得る、エントロピーコーディングの異なる手法が実施され得ることに留意されたい。
【００５８】
DSCビデオデコーダ
図2Bは、本開示で説明する態様による技法を実装し得るビデオデコーダ30の一例を示すブロック図である。ビデオデコーダ30は、本開示の技法のうちの一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素の間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明する技法のうちの一部または全部を実行するように構成され得る。
【００５９】
説明の目的で、本開示は、DSCコーディングのコンテキストにおいてビデオデコーダ30について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００６０】
図2Bの例では、ビデオデコーダ30は、複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、レートバッファ155、サブストリームデマルチプレクサ160、エントロピーデコーダ165、レートコントローラ170、予測器、量子化器、および再構成器構成要素175、インデックス付き色履歴180、ラインバッファ185、ならびに色空間変換器190を含む。ビデオデコーダ30の図示の構成要素は、図2Aのビデオエンコーダ20に関して上記で説明した対応する構成要素に類似している。したがって、ビデオデコーダ30の構成要素の各々は、上記で説明したようなビデオエンコーダ20の対応する構成要素と同様に動作し得る。いくつかの実施形態では、ビデオエンコーダ20および/またはビデオデコーダ30の1つまたは複数の構成要素は、そのような構成要素のタスクを実行するように構成されたソフトウェアコードを実行するように構成された1つまたは複数のハードウェアプロセッサによって実装され得る。他の実施形態では、ビデオエンコーダ20および/またはビデオデコーダ30の1つまたは複数の構成要素は、そのような構成要素のタスクを実行するように構成されたハードウェア回路によって実装され得る。
【００６１】
DSCにおけるスライス
上述したように、スライスは概して、画像またはフレーム中の領域の残りからの情報を使わずに独立して復号できる、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライスの中で符号化されてよく、あるいはいくつかのスライスの中で符号化されてもよい。DSCにおいて、各スライスを符号化するために割り振られるターゲットビットは、実質的に固定であり得る。
【００６２】
ブロック予測モード
ビデオデータの単一のブロックはいくつかのピクセルを含んでよく、ビデオデータの各ブロックは、ブロックがコーディングされ得るいくつかの起こり得るコーディングモードを有する。そのようなコーディングモードのうちの1つが、ブロック予測モードである。ブロック予測モードでは、コーダは、コーディングされるべき現在のブロックに(たとえば、ピクセル値が)近い、以前の再構成ライン(たとえば、現在のブロックが現在のスライスの第1のラインにない場合)または同じラインにおける以前の再構成ブロック(たとえば、現在のブロックが現在のスライスの第1のラインにある場合)における候補ブロックを発見しようと試みる。いくつかの実施形態では、ピクセル値の間の近さは、絶対差分和(SAD)メトリックによって決定される。コーダは、(たとえば、エンコーダとデコーダの両方に知られている所定の値であり得る)探索範囲によって規定された以前再構成されたブロックの任意の部分における候補ブロックを発見しようと試み得る。探索コストを最小限にする一方で、良好なマッチを発見するために、探索範囲内の潜在的候補をエンコーダが有するように、探索範囲が規定され得る。ブロック予測モードのコーディング効率は、良好な候補(すなわち、コーディングされるべき現在のブロックにピクセル値が近いと判断された探索範囲内の候補)が発見された場合に、候補ブロックと現在のブロックとの間の差(残差として知られている)が小さいことから来る。小さい残差は、現在のブロックの実際のピクセル値をシグナリングするために必要とされるビット数と比較して、シグナリングするためにより少ないビット数を要し、その結果、RDコストが低くなり、RD機構によって選択される確率が高まる。ブロック予測モードを有効化することによるパフォーマンスの向上は、いくつかのタイプのグラフィックスコンテンツにとって極めて重要である。
【００６３】
ブロック予測モードでのパラメータ
ブロック予測モードは、指定された探索範囲を仮定すると、符号化されるべき現在のブロックからの最小のひずみをもたらす候補ブロックを生成するように設計される。いくつかの実施形態では、最小のひずみは、SADを使用して規定される。本開示のいくつかの実装形態では、ブロック予測方法は3つのパラメータ、すなわち、探索範囲(SR)、スキュー(α)、およびパーティションサイズ(β)によって規定される。これらの3つのパラメータは、ブロック予測モードのパフォーマンスに影響を与え、実装中に調整され(たとえば、修正または再構成され)得る。これらのパラメータは、エンコーダとデコーダの両方に知られていることがある。
【００６４】
ブロック予測モードでの探索空間
本開示のいくつかの実施形態では、探索空間(たとえば、エンコーダが候補ブロックを発見するために探索し得るピクセルの空間ロケーション)は、現在のブロックの特性に基づいて異なり得る。探索空間は、すべての以前再構成されたブロック/ピクセルを包含し得るが、エンコーダおよび/またはデコーダは、たとえば、計算上の複雑性を低減するために、候補ブロックの探索を、探索空間内の指定された部分(たとえば、既定のもの、またはビットストリームの中でシグナリングされるもののいずれかである1つまたは複数のパラメータによって規定された「探索範囲」)に限定し得る。ブロック予測探索空間の例が図3〜図6に示されている。図3および図4は、現在のスライスの第1のラインにない現在のブロック(たとえば、現在のブロック308および408)を伴うケースを示す。図5および図6は、現在のスライスの第1のラインにある現在のブロック(たとえば、現在のブロック506および606)を伴うケースを示す。これらの2つのケースは、スライスにおける第1のラインが縦のネイバーを有しないので、別個に扱われる。したがって、現在のラインからの再構成ピクセルは、探索範囲(たとえば、探索範囲508および608)として活用され得る。本開示では、現在のスライスにおける第1のラインはFLSと呼ばれることがあり、現在のスライスにおける任意の他のラインはNFLSと呼ばれることがある。
【００６５】
さらに、本明細書で説明するブロック予測技法は、単一のラインバッファ(すなわち、1-Dブロックサイズ)を使用するコーデックまたは複数のラインバッファ(すなわち、2-Dブロックサイズ)を使用するコーデックのいずれかで実装され得る。コーデックは、固定ビットコーデックであってよく、1-Dのケースの探索空間の例が図3および図5に示されており、2-Dのケースの探索空間の例が図4および図6に示されている。2-Dのケースでは、探索範囲は、以前の再構成ライン(たとえば、以前のライン402)または2-Dブロック中のものと同じラインからの再構成ブロック(たとえば、現在のブロック606のすぐ左にある、現在のライン602における以前のブロック604)からのピクセルを含み得る。2-Dブロックは、水平もしくは垂直または両方のいずれかに区分され得る。ブロックパーティションを伴うケースでは、ブロック予測ベクトルがブロックパーティションごとに指定され得る。
【００６６】
ブロック予測モードの例示的な実装形態
本開示のいくつかの実施形態では、SAD以外のひずみメトリック、たとえば、2乗差分和(SSD)が使用されることがある。代替または追加として、ひずみは重み付けによって修正され得る。たとえば、YCoCg色空間が使用されている場合、コストは次のように計算され得る。
【００６７】
【数１】
2018532317.tif 000003
【００６８】
本明細書で説明するブロック予測技法は、RGB色空間またはYCoCg色空間のいずれかにおいて実行され得る。さらに、代替実装形態は、両方の色空間を使用し、2つの色空間のうちのどちらが(たとえば、レートおよびひずみの点で最低のコストを有する色空間であればどちらでも)選択されているかを示す1ビットフラグをデコーダにシグナリングし得る。
【００６９】
FLSに関する本開示のいくつかの実施形態では、直前の1つまたは複数の再構成ブロックは、パイプライン化およびタイミング制約に起因して探索範囲から除外され得る。たとえば、ハードウェア実装形態に応じて、コーダは、直前の再構成ブロックの処理を、現在のブロックがコーダによって処理されるときまでに完了させていないことがあり(たとえば、コーダが現在のブロックを処理し始めるときに、以前のブロックの再構成ピクセルが知られていないことがあり)、その結果、遅延または障害が発生することがある。そのような実装形態では、以前の再構成ブロックの使用を、再構成ピクセル値が知られているブロックに制限することによって(たとえば、直前の1つまたは複数の再構成ブロックを除外することによって)、上記で示したパイプライン化問題が解決され得る。NFLSに関する本開示のいくつかの実施形態では、現在のブロックの左にある探索範囲は、以前の再構成ラインではなく同じラインからであり得る。そのような実施形態のうちのいくつかでは、1つまたは複数の以前の再構成ブロックは、パイプライン化およびタイミング制約に起因して探索範囲から除外され得る。
【００７０】
NFLSの例示的な実装形態
図3に示すように、ブロック予測方法は、現在のブロック308の候補を発見するために探索空間において(また同様に、図4の探索空間400において)探索範囲310(SR)を通じて探索し得る。符号化されるべき現在のブロック308の第1のピクセルのx座標位置がjである場合、探索空間内のすべての候補ブロックの開始位置のセットkは、以下として与えられ得る。
k∈[j-SR+(α+1),j+α]
【００７１】
この例では、パラメータαは、符号化されるべき現在のブロックに対して探索範囲310のx軸位置をスキューする。αの値が高くなると、探索範囲310は右にシフトし、αの値が低くなると、探索範囲310は左にシフトする。たとえば、(i)32のSRおよび15のαは、探索範囲310を以前のライン302の中央に配置することができ、(ii)32のSRおよび0のαは、探索範囲310を以前のライン302の左側に配置することができ、(iii)32のSRおよび31のαは、探索範囲310を以前のライン302の右側に配置することができる。
【００７２】
本開示のいくつかの実装形態では、探索範囲内にあるが、スライス境界の外にあるピクセルは、そのピクセルに関するダイナミックレンジの半分に設定され得る。たとえば、コンテンツがRGB888である場合、128のデフォルト値がR、G、およびBに使用され得る。コンテンツがYCoCg空間にある場合、128のデフォルト値がYに使用され得、0のデフォルト値がCoおよびCgに使用され得る(たとえば、CoおよびCgは、0を中心とする9ビット値である。)。
【００７３】
FLSの例示的な実装形態
図5に示すように、FLSのケースでは探索範囲が異なり得る。これは、縦のネイバーが現在のフレームの外にあるので、または縦のネイバーが異なるスライス内に含まれているので、そのような縦のネイバーが利用可能ではないためである。FLSのケースに関する本開示のいくつかの実施形態では、現在のラインにおけるピクセルがブロック予測に使用され得る。一実施形態では、現在のブロックの左にある現在のラインにおける任意のピクセルが、探索範囲の一部と見なされ得る。別の実施形態では、1つまたは複数の以前コーディングされたブロック(たとえば、現在のブロックのすぐ左にある以前のブロック504)は、パイプライン化およびタイミング制約に起因して探索範囲から除外され得る。
【００７４】
FLSのいくつかの実装形態では、スライスの第1のラインにおける最初の数個のブロックに関する利用可能範囲は、他のブロックに関して一般に予想される探索範囲よりも小さいことがある。これは、候補ブロックの有効な位置がラインの最初に始まり、現在のブロックの前に終わるからである。FLSにおける最初の数個のブロックに関して、この有効範囲は、所望の範囲(たとえば、32個または64個の位置)よりも小さいことがある。したがって、これらのブロックに関しては、候補ブロックの各ブロックパーティションが探索範囲内に十分に含まれるように、探索範囲が調節される必要があり得る。NFLSに関しては、探索位置の総数が規定された探索範囲(たとえば、32個または64個のピクセル位置)に等しくなるように、探索範囲が左または右にシフトされ得る。jは現在のブロックにおける第1のピクセルであるので、現在のブロックにおける最後のピクセルはj+blkWidth-1となる。この理由で、探索範囲は、左に(blkWidth-1)ピクセルだけシフトされる必要があり得る。
【００７５】
FLSのいくつかの実装形態では、符号化されるべき現在のブロックの第1のピクセルのx座標ロケーションがjと呼ばれる場合、探索範囲内のすべての候補ブロックの開始位置のセットは、以下として与えられる。
【００７６】
(i)直近の再構成ブロックが探索範囲の一部である場合、たとえば、α=1の場合、
k∈[j-SR-(blkWidth-1),j-1-(blkWidth-1)]
【００７７】
(ii)n個の直近の再構成ブロックが探索範囲から除外されることになる場合、
k∈[j-(n・blkx+SR)-(blkWidth-1),j-(n・blkx+1)-(blkWidth-1)]
【００７８】
上式で、blkxはブロック幅である。スライス境界の外にある任意のピクセルは、NFLSのケースに関して上記で説明したようにデフォルト値に設定され得る。また、スキューパラメータがFLSのケースに関連付けられる必要がないことに留意されたい。
【００７９】
ブロック予測モードでコーディングするための例示的なフローチャート
図7を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的な手順について説明する。図7に示すステップは、ビデオエンコーダ(たとえば、図2Aのビデオエンコーダ20)、ビデオデコーダ(たとえば、図2Bのビデオデコーダ30)、またはそれらの構成要素によって実行され得る。便宜上、方法700については、ビデオエンコーダ20、ビデオデコーダ30、または他の構成要素であってもよいビデオコーダ(単にコーダとも呼ばれる)によって実行されるものとして説明する。
【００８０】
方法700は、ブロック701において開始する。ブロック705において、コーダは、現在のスライスにおける現在のブロックを予測するために使用されるべき候補ブロックを決定する。候補ブロックは、1つまたは複数のブロック予測パラメータによって規定されたロケーションの範囲内にあり得る。たとえば、ブロック予測パラメータは、(i)ロケーションの範囲のサイズを規定する探索範囲パラメータ、(ii)現在のブロックに対するロケーションの範囲の相対ロケーションを規定するスキューパラメータ、および(iii)現在のブロックにおける各パーティションのサイズを規定するパーティションサイズパラメータを含み得る。本開示のいくつかの実施形態では、探索範囲パラメータ、スキューパラメータ、およびパーティションサイズパラメータの各々は、時間的にではなく空間的に、候補ブロックのロケーションを規定する。
【００８１】
ブロック710において、コーダは、候補ブロックおよび現在のブロックに基づいて予測ベクトルを決定する。予測ベクトルは、現在のブロックに対する候補ブロックのロケーションを識別し得る。予測ベクトルは、1つまたは複数の座標値(たとえば、1-D空間におけるオフセットを示す座標値)を含み得る。ブロック715において、コーダは、少なくとも部分的に、予測ベクトルをシグナリングすることによって、ブロック予測モードで現在のブロックをコーディングする。いくつかの実施形態では、コーダはまた、候補ブロックと現在のブロックとの間の残差をシグナリングし得る。現在のブロックの実際のピクセル値をシグナリングしなければならないことの代わりに、候補ブロックのロケーションを識別する予測ベクトルおよび現在のブロックと候補ブロックとの間の差を表す残差をシグナリングすることによって、ビット節約が達成され得る。方法700は、ブロック720において終了する。
【００８２】
方法700において、図7に示すブロックのうちの1つもしくは複数が除去されてよく(たとえば、実行されなくてよく)、かつ/または方法が実行される順序が交換されてよい。いくつかの実施形態では、追加ブロックが方法700に追加されてもよい。本開示の実施形態は、図7に示す例に限定されず、または図7に示す例によって限定されず、本開示の趣旨から逸脱することなく、他の変形形態が実装されてよい。
【００８３】
候補ブロックを発見した後
最良の候補ブロックが決定された後、候補ブロックのピクセル値が現在のブロックのピクセル値から減算されて、残差が生じる。残差は、ブロック予測モードに関連する事前選択されたQPに基づいて量子化され得る。量子化残差は、(固定長または可変長のいずれかであり得る)コードブックを使用して符号化され、固定長コードまたは可変長コードを使用してシグナリングされ得る。選択されるコードブックは、コーディング効率およびハードウェア複雑性要件に基づき得る。たとえば、選択されるコードブックは、指数ゴロムコードブックであり得る。本開示のいくつかの実施形態では、既存のDSC実装形態のデルタサイズユニット可変長コーディング(DSU-VLC:delta size unit variable length coding)と同様であるエントロピーコーディング方式が使用され得る。いくつかの実施形態では、残差は、上記で説明した量子化の前に(たとえば、直接コサイン変換、アダマール変換、または他の既知の変換を使用して)変換され得る。
【００８４】
本開示のいくつかの実施形態では、現在のブロックの残差におけるサンプルは、複数のグループ(たとえば、16個のサンプルを含んでいるブロックの場合にグループあたり4個のサンプル)に区分され得る。ブロックにおける係数すべてがゼロである場合、ブロックの残差は、スキップモードを使用してコーディングされる、すなわち、(成分あたり)ブロックあたり1ビットフラグが、ブロックにおける現在の成分がスキップモードを使用してコーディングされるかどうかを示すためにシグナリングされる。ブロック内に少なくとも1つの非ゼロ値が含まれる場合、各グループは、そのグループが1つの非ゼロ値を有する場合のみ、DSU-VLCを使用してコーディングされ得る。グループ(たとえば、残差における16個のサンプルのうちの4個のサンプル)が非ゼロ値をまったく含まない場合、グループは、スキップモードを使用してコーディングされる、すなわち、グループあたり1ビットフラグが、グループがスキップモードを使用してコーディングされるかどうかを示すためにシグナリングされる。より詳細には、グループごとに、そのグループにおける値すべてがゼロであるかどうかを判断するために探索が実行され得る。グループにおける値すべてがゼロである場合、「1」の値がデコーダにシグナリングされ得、そうでない場合(少なくとも1つの値が非ゼロである場合)、「0」の値がデコーダにシグナリングされ、その後にDSU-VLCコーディングのコーディングが続くことができる。代替例では、グループにおける値すべてがゼロである場合に「0」の値がシグナリングされ得、グループが少なくとも1つの非ゼロ値を含む場合に「1」の値がシグナリングされ得る。
【００８５】
本開示のいくつかの実施形態では、最良のオフセットを含む固定長コードを送信することによって、最良の候補ブロックがデコーダに明示的にシグナリングされ得る。このオフセットは「ベクトル」と呼ばれることがある。ベクトルをデコーダに明示的にシグナリングすることの利点は、デコーダがブロック探索自体を実行する必要がなくなることである。むしろ、デコーダは、ベクトルを明示的に受信し、復号され逆量子化された残差値に候補ブロックを加算して、現在のブロックのピクセル値を決定することになる。
【００８６】
ブロック区分
本開示のいくつかの実施形態では、コーディングされるべき現在のブロックが区分されて、複数の候補ブロックおよびブロックあたり複数のベクトルが生じ得る。そのような実施形態のうちのいくつかでは、ベクトルは固定長コードを使用して明示的にシグナリングされ得る。たとえば、この固定長コードの長さは、log2(SR)であり得る。別の実施形態では、ベクトルは、指数ゴロムまたはゴロムライスコードファミリーによるコードなどの可変長コードを使用して明示的にシグナリングされ得る。このコードブックは、ベクトルに関連する統計的分布に基づいて選択され得る。また別の実施形態では、ベクトルは、以前コーディングされたベクトルに基づいて予測され得、ベクトルの残差は、何らかの固定長コードまたは可変長コードを使用してコーディングされ得る。また別の実施形態では、ベクトルは、以前コーディングされたベクトルに基づいて予測され得、2つのベクトルが同一であるかどうかをシグナリングするために、1ビットフラグが使用され得る。このフラグは、SameFlagと呼ばれることがある。SameFlag=1の場合、ベクトル値自体はデコーダにシグナリングされる必要はない。SameFlag=0の場合、ベクトルは(たとえば、固定長コードまたは可変長コードのいずれかを使用して)明示的にシグナリングされる。例示的なブロック区分方式が図8に示されている。
【００８７】
図8に示すように、現在のブロック802は単一のパーティションを含む。現在のブロック802に関してシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルA、およびペイロードを含む。現在のブロック804は2つのパーティション、すなわち、パーティションAおよびパーティションBを含む。現在のブロック804に関してシグナリングされる情報は、モードヘッダ、ベクトルSameFlag、ベクトルA、ベクトルSameFlag、ベクトルB、およびペイロードを含む。上述したように、上記の1つまたは複数の項目は、シグナリングされないことがある。たとえば、ベクトルSameFlagが1に等しい場合、後続のベクトルはシグナリングされる必要がない。
【００８８】
パーティションサイズβは、別個のサブブロックへの現在のブロックの区分を決定し得る。そのような場合、サブブロックごとに別個のブロック予測が実行され得る。たとえば、ブロックサイズがN=16であり、パーティションサイズβ=8の場合、探索は、16/8=2つのパーティションの各々に対して実行される。別の例では、β=Nの場合、ブロック区分は無効化される。β<Nの場合、各ベクトルがデコーダに明示的にシグナリングされ得る。(たとえば、現在のベクトルを規定するために、以前シグナリングされたベクトルを使用する)ベクトル予測が利用されない場合、各ベクトルは固定長コードまたは可変長コードを使用してシグナリングされる。ベクトル予測が利用される場合、第1のベクトルは(たとえば、メモリに記憶された)以前のコード化ベクトルから予測され得、n>0の場合、ベクトルnはベクトルn-1から予測される。
【００８９】
ブロック予測モードでの可変パーティションサイズ
上記の例は、1×8のサイズを有する(たとえば、1ピクセルの高さおよび8ピクセルの幅を有する)ブロックまたは2×8のサイズを有する(たとえば、2ピクセルの高さおよび8ピクセルの幅を有する)ブロックがブロック予測モードでどのようにコーディングされ得るかを示す。図8に示すように、ブロックが複数の領域に区分され得、異なる区分方式を使用して(たとえば、1×2パーティションを使用して、2×2パーティションを使用して、など)各領域がコーディングされ得、ブロック予測ベクトルがパーティションごとに指定され(たとえば、各パーティションに関連する残差とともにビットストリームの中でシグナリングされ)得る。たとえば、各ブロックは、2つのピクセルを含む複数の1×2パーティション(または他の固定サイズのパーティション)に区分され得る。
【００９０】
他の実施形態では、エンコーダは、ブロックごとに(ブロック内のサブ領域ごとに)最も効率的であるブロックパーティションサイズを決定し得る。効率性は、所与のブロックパーティションサイズを使用してブロック(またはその中のサブ領域)をコーディングすることに関連するレートおよびひずみに基づいて測定され得る。たとえば、4つの2×2領域を含むブロックをコーディングするとき、エンコーダは、最初の3つの2×2領域を単一のパーティション(たとえば、2×2領域ごとに単一の2×2パーティション)を使用してコーディングし、第4の2×2領域を2つのパーティション(たとえば、2つの1×2パーティション)を使用してコーディングすることによって最大コーディング効率が達成され得ると判断し得る。エンコーダが各ブロックのパーティションサイズを適応的に選択することを可能にすることによって、ブロック予測方式のパフォーマンスはさらに改善され得る。これは、大きいパーティションが平滑な領域(たとえば、領域にわたってピクセル値の変化がないか、または変化のしきい値量を下回る領域)に使用され得、それによって、(たとえば、領域のサイズに対して)ブロック予測ベクトルをシグナリングするためにより少ないビットを必要とする一方、より小さいパーティションが(ひずみおよび/またはエントロピーコーディングレートの低減が追加のシグナリングコストを上回る)複雑な領域に使用され得るからである。たとえば、エンコーダは、所与の領域またはブロックが平滑性しきい値条件を満たすかどうかを判断し、所与の領域またはブロックが平滑性しきい値条件を満たすとの判断に応答して、より大きいパーティションサイズを使用してブロック予測モードで所与の領域またはブロックを符号化する(当該条件を満たさない場合には、より小さいパーティションサイズを使用してブロック予測モードで所与の領域またはブロックを符号化する)ことができる。別の例として、エンコーダは、所与の領域またはブロックが複雑性しきい値条件を満たすかどうかを判断し、所与の領域またはブロックが複雑性しきい値条件を満たすとの判断に応答して、より小さいパーティションサイズを使用してブロック予測モードで所与の領域またはブロックを符号化する(当該条件を満たさない場合には、より大きいパーティションサイズを使用してブロック予測モードで所与の領域またはブロックを符号化する)ことができる。異なるパーティションサイズを適応的に選択する能力は、ブロック予測モードがより大きい範囲のコンテンツタイプ(たとえば、グラフィックスコンテンツ、自然な画像、テストパターン、細部テキストレンダリング(fine text rendering)など)で使用されることを可能にし得る。
【００９１】
ブロック予測モードでのコーディングの例示的なデータフロー
図9は、適応的パーティションサイズを使用してブロック予測モードでブロックをコーディングするための例示的なデータフロー900を示す。図9に示すように、ブロック予測モードで予測されるべき現在のブロック902は、ブロックパーティション904を含む。一例では、ブロックパーティションは、1×2または2×2のサイズを有する。すでにコーディングされていて、ブロック予測モードで現在のブロック902(またはブロックパーティション904)を予測するために利用可能であるブロックまたはパーティションを識別するために、ブロック予測(BP)探索906が行われる。図9に示すように、BP探索906は、たとえば、以前のライン(たとえば、直前ラインもしくは別の先行ラインなど、現在のブロックを含む現在のラインをコーディングする前にコーディングされたライン)における1つもしくは複数の以前の再構成ブロック907Aおよび/または現在のライン(たとえば、現在のブロックを含むライン)からの以前の再構成ブロック907Bを含む、探索範囲内で探索し得る。
【００９２】
エンコーダは、探索範囲において識別された候補ブロックまたはパーティションに基づいて、ブロック予測子908を決定する。ブロック予測子908はブロック910において、現在のブロック902(または現在のブロック902内の現在のブロックパーティション904)から減算され、減算に基づいて決定された残差が、ブロック912において量子化される。量子化残差は、エントリピーコーダ920によってエントロピーコーディングされる。さらに、量子化残差に対して逆量子化914が実行され、結果がブロック916においてブロック予測子908に加算されて、再構成ブロック918を生成する。再構成ブロック918のひずみ性能(D)およびエントロピー符号化残差のレート性能(R)に基づいて、BPパーティションサイズ選択922が実行される。選択されたBPパーティションサイズに基づいて、ビットストリーム924が生成される。
【００９３】
たとえば、BPパーティションサイズ選択922は、入力として現在のブロック902内の各パーティション領域(たとえば、2×2)のレート(たとえば、R)およびひずみ(たとえば、D)を取り、パーティション領域が予測のために単一のブロック予測ベクトル(BPV)(たとえば、単一の2×2パーティションに対して合計1つのBPV)を使用してコーディングされるべきか、それとも複数のBPV(たとえば、2つの1×2パーティションに対してそれぞれ1つのBPV、合計2つのBPV)を使用して区分およびコーディングされるべきかを、2つのオプションの間のRDトレードオフに基づいて判断し得る。本明細書で説明するいくつかの例は、2×2のパーティション領域サイズを伴う(それによって、選択可能なオプションとして、1×2、2×1、および2×2のパーティションサイズを有する)が、エンコーダによって選択可能なパーティションサイズは、そのような例において使用されるサイズ(たとえば、1×2および2×2)に限定されず、ブロックサイズおよび/または領域サイズに基づいて他のサイズ(たとえば、2×1)を含み得る。
【００９４】
いくつかの実施形態では、パーティションサイズは固定である(たとえば、1×2、2×2、または現在のパーティション領域もしくはブロックにおけるピクセルの任意の他の部分組合せ)。たとえば、ブロックは、2×8のブロックサイズを有することができ、ブロックは、2×2のサイズを有するサブブロックまたは領域に分割され得る。2×8ブロック内の2×2サブブロックまたは領域はさらに、1×2のサイズを有するパーティションに区分され得る。そのような例では、各1×2パーティションは、他のパーティションとは無関係に、単一のBPVを使用して予測され得る。他の実施形態では、パーティションサイズは可変であり、各ブロック、サブブロック、および/または領域がどのパーティションサイズを使用してブロック予測でどのようにコーディングされるかが、各区分方式のレートおよびひずみ性能に基づいてエンコーダによって決定され得る。たとえば、現在のブロック内の2×2領域(たとえば、現在の領域)に関して、現在の領域を2つの1×2パーティションに分割し、(たとえば、規定された探索範囲内の以前コーディングされた1×2パーティションをそれぞれ指す)2つのBPVを使用して別個に2つの1×2パーティションを予測することによって、現在の領域を予測することが、(たとえば、2×2などの他の区分方式と比較して)より良好なレートおよび/またはひずみ性能をもたらす場合、現在の領域は、1×2区分方式を使用して予測され得る。一方、(たとえば、規定された探索範囲内の以前コーディングされた2×2パーティションを指す)1つのBPVを使用して単一の2×2パーティションとして現在の領域を予測することが、(たとえば、1×2などの他の区分方式と比較して)より良好なレートおよび/またはひずみ性能をもたらす場合、現在の領域は、2×2区分方式を使用して予測され得る。予測モードでブロックをコーディングするために使用されるべき区分方式を決定するプロセスについては、図14を参照して以下でより詳細に説明する。
【００９５】
ブロックサイズおよびサブブロックサイズ
M×Nのブロックサイズに関して、いくつかの実施形態について、サイズMsub×Nsub(Msub≦MおよびNsub≦N)のサブブロック(本明細書では領域とも呼ばれる)を参照して説明する。いくつかの実装形態では、計算を簡単にするために、MsubとNsubの両方は、M×Nブロック内のエントロピーコーディンググループと整合される。ブロック内の各サブブロックMsub×Nsubは、(i)さらに区分されずに単一のBPVを使用して予測されるか、または(ii)複数のパーティションに(たとえば、2つの1×2パーティションに)区分され、パーティションごとにBPVが使用されるかのいずれかであり得る。サブブロック全体に単一のBPVを使用するか、それともそれ自体のBPVをそれぞれ有するパーティションにサブブロックを区分するかの間の効果的なトレードオフとしては、より多くのBPVをシグナリングすると、ビットストリームの中でさらなるレートが生じるが、より多くのBPVを使用することによって、ひずみおよびエントロピーコーディングレートは低減し得る。言い換えれば、追加のBPVをシグナリングするためにより多くのビットを使用することによって、残差(候補ブロック/領域と現在のブロック/領域との間の差)をシグナリングするために使用されるビットの数は低減され得、それによりさらに、エントロピーコーディングに使用されるビットの数も低減され得る。エンコーダは、RDコストの点で各オプション(たとえば、パーティションなし対複数のパーティション)を比較し、コスト比較に基づいて各サブブロックもしくは領域を区分するかどうかを選択するか、または最良のRD性能をもたらす区分方式を複数の区分方式から選択することができる。
【００９６】
例示的な区分方式
図10は、例示的な区分方式を示す図1000を示す。図10では、2×2サブブロックまたは領域の場合の2つの区分オプションが示されている。この例では、(たとえば、ピクセルX0〜X15を含む)ブロック1002が2×8のサイズを有し、ブロック内の(たとえば、ピクセルX0、X1、X8、およびX9を含む)サブブロックまたは領域1004が2×2のサイズを有する。区分オプション1006は、単一のBPVを使用してサブブロックまたは領域1004が予測される例を示し、区分オプション1008は、サブブロックまたは領域1004内の各1×2パーティションに2つのBPVを使用してサブブロックまたは領域1004が予測される例を示す。アドバンストDSC(Adv-DSC)など、いくつかの実装形態では、図11に示すブロック予測モードのためのエントロピーコーディンググループ構造1100とサブブロックまたは領域を整合させるために、2×2のサイズを有するサブブロックまたは領域が使用される。図11の例では、エントロピーコーディンググループ0、1、2、および3が示されており、各々が、ブロック内の4つの2×2サブブロックまたは領域のうちの1つに対応する。ただし、本明細書で説明する技法は、そのような実施形態に限定されず、任意のブロックサイズM×Nおよび任意のサブブロックサイズMsub×Nsubに拡張されてよい。ただし、以下で示す例では、パラメータM=2、N=8、Msub=2、Nsub=2が使用される。いくつかの実施形態では、サブブロックおよび/または区分方式は、エントロピーコーディンググループに基づいて決定され得る。たとえば、サブブロックおよび/または区分方式は、各サブブロックおよび/または区分方式が単一のエントロピーコーディンググループ内に含まれるように決定され得る。
【００９７】
パーティションサイズの決定
エンコーダは、最小RDコストに基づいて、(i)各2×2領域を単一の2×2パーティションとしてコーディングするか、それとも(ii)領域を2つの1×2パーティションに分割し、各1×2パーティションを別個にコーディングするかを決定し得る。RDコストは以下に示すように計算され得る。
コスト(2×2)=D2×2+λ・R2×2
コスト(1×2)=D1×2+λ・R1×2
【００９８】
【数２】
2018532317.tif 000004
【００９９】
【数３】
2018532317.tif 000005
【０１００】
いくつかの実装形態では、BPVは、log2(SR)に等しい固定数のビット(BPVbits)によりシグナリングされ、SRが、ブロック予測モードに関連する探索空間(または探索範囲)である。たとえば、探索空間が64個の位置からなる場合、各BPVをシグナリングするためにlog2(64)=6ビットが使用される。
【０１０１】
可変パーティションサイズを伴うブロック予測のための探索空間は、図3〜図6に関して説明した探索範囲とは若干異なり得る。特に、Msub×Nsubサブブロックが、高さMsubを伴う探索空間を利用し得る。そのような場合、可変パーティションサイズを伴わないブロック予測に対して、可変パーティションサイズを伴うブロック予測を実施するために、追加のラインバッファが必要とされ得る。そのような探索空間の例が、2×2のサブブロックサイズに関して図12に示されている。図12は、例示的な探索範囲を示す図1200を示す。図12に示すように、現在のライン1202は、(i)現在のサブブロック1206を有する現在のブロック1204および(ii)以前のブロック1208を含む。図12の例では、以前のライン1210は、エンコーダが現在のサブブロック1206を予測するために候補サブブロック1214を選択し得る探索範囲1212を含む。1-Dパーティション(たとえば、1×2)の探索範囲または空間は、単一の以前の再構成ラインに依存する図3を参照して前述した探索範囲と同様であり得る。
【０１０２】
いくつかの実施形態では、ひずみD2×2およびD1×2は、YCoCg色空間において修正絶対差分和(SAD)を使用して計算され得る。たとえば、YCoCg色空間における(たとえば、現在のサブブロックまたはパーティションにおける)ピクセルAと(たとえば、候補サブブロックまたは領域における)ピクセルBとの間のSADひずみは、次のように計算され得る。
【０１０３】
【数４】
2018532317.tif 000006
【０１０４】
現在のサブブロックまたはパーティションが2つ以上のピクセルを有する場合、現在のサブブロックまたはパーティション全体のひずみは、現在のサブブロックまたはパーティションにおけるピクセルごとに計算された個々のSADを合計することによって計算され得る。現在のサブブロックまたはパーティションのピクセル値は、実際のピクセル値または(たとえば、候補予測子および残差に基づいて計算された)再構成ピクセル値であり得る。いくつかの実装形態では、ラムダパラメータは、2の値に固定され得る。他の実装形態では、このパラメータは、ブロックサイズ、ビットレート、または他のコーディングパラメータに応じて調整され得る。
【０１０５】
エントロピーコーディングコストECbitsは、2×2領域ごとに計算され得る。各エントロピーコーディンググループにおける4つのサンプルは、単一のBPV(たとえば、2×2パーティション)から予測された2×2量子化残差、または2つのベクトル(たとえば、2つの1×2パーティション)を利用した2×2量子化残差のいずれかから来ることがある。たとえば、エントロピーコーディングコストは、(たとえば、ベクトルおよび残差を含む)ビットストリームの中で各エントロピーコーディンググループをシグナリングするために必要とされるビットの数を表し得る。計算されたエントロピーコーディングコストに基づいて、エンコーダは、2×2領域ごとに最低コストを有する区分方式を選択し得る。いくつかの実施形態について、2×2サブブロックサイズを有する2×8ブロック、2×2エントロピーコーディンググループ、ならびに2つの区分方式(1×2および2×2)を参照して説明しているが、本明細書で説明する技法は、他のブロックサイズ、サブブロックサイズ、エントロピーコーディンググループ、および/または区分方式に拡張されてよい。
【０１０６】
ビットストリームにおけるコーディング情報のシグナリング
図10に示す2×8ブロック1002において、4つの2×2領域の各々が、上記で説明したRDコスト分析に基づいて区分され得る。たとえば、各2×2領域は、単一の2×2パーティションまたは2つの1×2パーティションのいずれかに区分され得る。そのような区分の4つの例が図13の図1300によって示されている。図13に示すように、ブロック1302は、2×2区分方式に基づいて予測される4つのサブブロックを有し、ブロック1304は、2×2区分方式に基づいて予測される3つのサブブロックおよび1×2区分方式に基づいて予測される1つのサブブロックを有し、ブロック1306は、1×2区分方式に基づいて予測される4つのサブブロックを有し、ブロック1308は、2×2区分方式に基づいて予測される1つのサブブロックおよび1×2区分方式に基づいて予測される3つのサブブロックを有する。デコーダにBPVをシグナリングすることに加えて、エンコーダは、デコーダが区分を適切に推測することができるように、2×2領域ごとに1ビットを送ることもできる。Adv-DSC実装形態などのいくつかの実装形態では、ブロック内の領域ごとに(たとえば、2×8ブロックにおける2×2領域ごとに)選択された区分方式を示す4ビットのグループが、ビットストリームの中でシグナリングされる。そのような実装形態では、4ビット「1011」は、ブロックにおける第1、第3、および第4の領域(たとえば、2×2サブブロック)が第1の区分方式に基づいて(たとえば、1×2パーティションに基づいて)予測またはコーディングされるべきである一方、第2の領域(たとえば、2×2サブブロック)が第2の区分方式に基づいて(たとえば、2×2パーティションに基づいて)予測またはコーディングされるべきであることを示し得る。いくつかの実施形態では、ビットストリームにおけるこれらの4ビットに続いて、BPVあたり固定ビットを使用してBPVがシグナリングされ得る。前述の例(たとえば、「1011」のビットシーケンス)では、7つのBPVがシグナリングされ得る。
【０１０７】
ブロック予測モードでコーディングするための例示的なフローチャート
図14を参照して、ブロック予測モードでビデオデータのブロックをコーディングするための例示的な手順について説明する。図14に示すステップは、ビデオエンコーダ(たとえば、図2Aのビデオエンコーダ20)またはその構成要素によって実行され得る。便宜上、方法1400については、ビデオエンコーダ20または別の構成要素であってもよいコーダによって実行されるものとして説明する。
【０１０８】
方法1400は、ブロック1401において開始する。ブロック1405において、コーダは、第1の区分方式に基づいて(たとえば、ブロック予測モードでコーディングされるビデオデータのブロック内の)現在の領域を予測するために使用されるべき1つまたは複数の第1の候補領域を決定する。たとえば、現在の領域は、2×8ブロックにおける2×2領域のうちの1つであり得る。第1の区分方式は、現在の領域が複数のパーティション(たとえば、2つの1×2パーティション、または現在の領域のサイズに基づいて決定されたパーティションサイズを有するパーティションの他の組合せ)に区分される区分方式であり得る。代替的に、第1の区分方式は、現在の領域が全体として(たとえば、2×2パーティションとして)使用され、複数のパーティションに区分されない区分方式であり得る。いくつかの実施形態では、1つまたは複数の第1の候補領域は、第1の区分方式に関連するロケーションの第1の範囲(たとえば、第1の区分方式に関連する探索範囲)内にある。1つまたは複数の第1の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
【０１０９】
ブロック1410において、コーダは、第2の区分方式に基づいて現在の領域を予測するために使用されるべき1つまたは複数の第2の候補領域を決定する。たとえば、第2の区分方式は、現在の領域が複数のパーティションに区分されない(たとえば、現在の領域が単一の2×2パーティションとしてコーディングされる)区分方式であり得る。別の例では、第2の区分方式は、現在の領域が、第1の区分方式に使用されるパーティションの数とは異なる数のパーティションに区分される区分方式であり得る。また別の例では、第2の区分方式は、現在の領域が複数のパーティション(たとえば、2つの1×2パーティション、または現在の領域のサイズに基づいて決定されたパーティションサイズを有するパーティションの他の組合せ)に区分される区分方式であり得る。いくつかの実施形態では、1つまたは複数の第2の候補領域は、第2の区分方式に関連するロケーションの第2の範囲(たとえば、第2の区分方式に関連する探索範囲)内にある。いくつかの実施形態では、第2の範囲は、1つまたは複数の第1の候補領域を識別するために使用される第1の範囲と同じである。場合によっては、1つまたは複数の第2の候補領域は、1つまたは複数の第1の候補領域と同一であり得る。他の場合には、1つまたは複数の第2の候補領域は、1つまたは複数の第1の候補領域を含む。代替的に、1つまたは複数の第1の候補領域は、1つまたは複数の第2の候補領域を含み得る。場合によっては、1つまたは複数の第1の候補領域は、1つまたは複数の第2の候補領域と重複しない。1つまたは複数の第2の候補領域のサイズは、1つまたは複数の第1の候補領域のサイズとは異なり得る。他の実施形態では、第2の範囲は、1つまたは複数の第1の候補領域を識別するために使用される第1の範囲とは異なる。1つまたは複数の第2の候補領域は、ビデオ符号化デバイスのメモリに記憶され得る。
【０１１０】
ブロック1415において、コーダは、第1の区分方式に基づいて現在の領域をコーディングすることに関連する第1のコストが、第2の区分方式に基づいて現在の領域をコーディングすることに関連する第2のコストよりも大きいかどうかを判断する。たとえば、コーダは、第1の区分方式に基づいて現在の領域をコーディングすることに関連するレートおよびひずみに基づく第1のコスト、および第2の区分方式に基づいて現在の領域をコーディングすることに関連するレートおよびひずみに基づく第2のコストを計算し、計算された第1のコストと第2のコストとを比較し得る。一例では、第1のコストは、(第1のひずみ値+(ラムダパラメータ*第1のレート値))として決定され得、第1のひずみ値が、1つまたは複数の第1の候補領域に対するYCoCg色空間における現在の領域(またはそのパーティション)における個々のピクセルの修正SADに基づいて計算され得、第2のコストは、(第2のひずみ値+(ラムダパラメータ*第2のレート値))として決定され得、第2のひずみ値が、1つまたは複数の第2の候補領域に対するYCoCg色空間における現在の領域(またはそのパーティション)における個々のピクセルの修正SADに基づいて計算され得る。いくつかの実施形態では、コーダは、(i)現在の領域と1つまたは複数の第1の候補領域との間の絶対差分和、ならびに(ii)ビットストリームの中で1つまたは複数の予測ベクトルおよび対応する残差をシグナリングするために必要とされるビットの数に少なくとも部分的に基づいて第1のコストを決定し、(i)現在の領域と1つまたは複数の第2の候補領域との間の絶対差分和、ならびに(ii)ビットストリームの中で1つまたは複数の予測ベクトルおよび対応する残差をシグナリングするために必要とされるビットの数に少なくとも部分的に基づいて第2のコストを決定することができる。
【０１１１】
ブロック1420において、コーダが、第1の区分方式に基づいて現在の領域をコーディングすることに関連する第1のコストが、第2の区分方式に基づいて現在の領域をコーディングすることに関連する第2のコストよりも大きいと判断した場合、方法1400はブロック1425に進む。そうでない場合、方法1400はブロック1430に進む。
【０１１２】
ブロック1425において、コーダは、1つまたは複数の第2の候補領域に基づいて現在の領域をビットストリームへコーディングする。コーダは、ビットストリームの中で、現在の領域に対する1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および1つまたは複数の第2の候補領域と現在の領域との間の差(たとえば、対応するピクセル値の間の差)を示す量子化残差をシグナリングし得る。たとえば、コーダは、1つまたは複数の第2の候補領域の第1または最初のピクセルのロケーションを示す単一のベクトルをシグナリングすることができ、単一のベクトルの値が、そのような第1または最初のピクセルと現在の領域の第1または最初のピクセルとの間の距離に基づく。1つまたは複数の予測ベクトルが複数のベクトルを含む場合、コーダは、現在の領域のパーティションのうちの1つを予測するために使用されるべきそれぞれの候補領域のロケーションをそれぞれ示す複数のベクトルをシグナリングし得る。
【０１１３】
ブロック1430において、コーダは、1つまたは複数の第1の候補領域に基づいて現在の領域をビットストリームへコーディングする。コーダは、ビットストリームの中で、現在の領域に対する1つまたは複数の第1の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および1つまたは複数の第1の候補領域と現在の領域との間の差を示す量子化残差をシグナリングし得る。たとえば、コーダは、1つまたは複数の第1の候補領域の第1または最初のピクセルのロケーションを示す単一のベクトルをシグナリングすることができ、単一のベクトルの値が、そのような第1または最初のピクセルと現在の領域の第1または最初のピクセルとの間の距離に基づく。1つまたは複数の予測ベクトルが複数のベクトルを含む場合、コーダは、現在の領域のパーティションのうちの1つを予測するために使用されるべきそれぞれの候補領域のロケーションをそれぞれ示す複数のベクトルをシグナリングし得る。コーダは、ビットストリームの中でパーティションインジケータをさらにシグナリングすることができ、パーティションインジケータが、ブロック内の各領域に関連する区分方式を示し、ブロックが、現在の領域以外の少なくとも1つの領域を含む。たとえば、パーティションインジケータは、現在の領域が第2の区分方式に関連付けられることを示し得る。パーティションインジケータは、ブロックにおける現在の領域以外の少なくとも1つの領域が、第2の区分方式とは異なる第1の区分方式に関連付けられることをさらに示し得る。方法1400は、ブロック1435において終了する。
【０１１４】
方法1400において、図14に示すブロックのうちの1つもしくは複数が除去されてよく(たとえば、実行されなくてよく)、かつ/または方法が実行される順序が交換されてよい。いくつかの実施形態では、追加のブロックが方法1400に追加されてよい。本開示の実施形態は、図14に示す例に限定されず、または図14に示す例によって限定されず、本開示の趣旨から逸脱することなく、他の変形形態が実装されてよい。
【０１１５】
4:2:0および4:2:2のクロマサブサンプリングフォーマットへの拡張
いくつかの実装形態では、(たとえば、ブロック予測モードで可変パーティションサイズを使用する)本開示で説明するブロック予測技法は、4:4:4のクロマサンプリングフォーマットのみに利用され得る。このフォーマットは一般的に、グラフィックスコンテンツに使用される。たとえば、4:4:4のクロマサンプリングフォーマットは、(たとえば、クロマサブサンプリングを使用しない)同じサンプリングレートを有する色成分(たとえば、ルーマ成分およびクロマ成分)を含む画像またはビデオデータを利用する。しかしながら、4:4:4のクロマサンプリングフォーマットは、他のビデオ用途にはさほど一般的には使用されないことがある。クロマサブサンプリングがもたらし得る著しい圧縮に起因して、4:2:0と4:2:2の両方のクロマサブサンプリングフォーマットが、ビデオ用途には一般的には使用される。たとえば、DSCのいくつかのバージョン(たとえば、DSCv1.x)は、4:2:0および4:2:2をサポートし得る。そのようなクロマサブサンプリングフォーマットに対するサポートは、将来のDSC実装形態によって利用されるか、または必要とされる可能性がある。したがって、いくつかの実装形態では、(たとえば、ブロック予測モードで可変パーティションサイズを使用する)本開示で説明するブロック予測技法は、4:2:0および/または4:2:2のフォーマットに拡張される。本明細書では4:2:0および4:2:2のクロマサブサンプリングフォーマットが使用されるが、本出願で説明する様々な技法は、他の既知のサンプリングフォーマットに適用されてよい。
【０１１６】
いくつかの実施形態では、可変パーティションサイズを伴うブロック予測のためのアルゴリズムは、クロマサンプリングフォーマットとは無関係にほぼ同じように働く。そのような実施形態では、フォーマット(たとえば、4:4:4、4:2:2、4:2:0など)にかかわらず、単一のパーティション(たとえば、2×2)を使用するか、それとも複数のパーティション(たとえば、2つの別個の1×2パーティション)を使用するかの決定、または現在のサブブロックもしくは領域(たとえば、1、2、3、4など)をコーディングするために使用されるべきパーティションの数の決定は、ルーマサンプルのサブブロックまたは領域(たとえば、2×2ブロック)ごとに行われ得る。だが、各パーティション中または各ブロック中のクロマサンプルの数は、サブサンプリングフォーマットに応じて異なり得る。さらに、エントロピーコーディンググループとの整合がクロマ成分にとって可能ではなくなり得るので、エンコーダ決定は4:2:2および/または4:2:0のクロマサブサンプリングフォーマットにおいて修正される必要があり得る。したがって、(たとえば、エンコーダが、最小RDコストに基づいて、各2×2領域を単一の2×2パーティションに分割するか、それとも2つの1×2パーティションに分割するかを決定するときの)エンコーダ決定のためのパーティションごとのレート(たとえば、単一の2×2パーティションまたは2つの別個の1×2パーティションなど、パーティションに関連するレート値)は、4:2:2および4:2:0の場合にルーマサンプルにのみ依存し得る。たとえば、SADひずみを計算するとき、クロマ成分に関係するいかなる項もゼロに設定され得る。
【０１１７】
4:2:0クロマサブサンプリングフォーマットの場合のBP探索
4:2:0モード(4:2:0クロマサブサンプリングフォーマット)での2×2パーティションの場合、各パーティションは、クロマ成分(たとえば、CoおよびCg、またはCbおよびCr)の各々に関する単一のクロマサンプルを含み得る。いくつかの実施形態では、(たとえば、RDコストを計算するために、かつ/または現在の領域もしくはブロックにおけるサンプルを予測するために)使用されるべきクロマサンプルは、パーティションと交差するものである。他の実施態様では、使用されるべきクロマサンプルは、隣接するパーティションから導出され得る。4:2:0モードのための例示的な2×2探索1500が図15に示されている。図15では、クロマサイト(たとえば、クロマサンプルを有するサンプル/ピクセルロケーション)が「X」を使用して示されている。たとえば、パーティションAの左上サンプル、パーティションBの右上サンプル、および現在のパーティションの左上サンプルは、それぞれのパーティションを交差するクロマサイトを含む。そのようなクロマサイトは、(たとえば、クロマサンプル値を使用して差値を計算するために)それぞれのパーティションに関して実行されるすべての計算に使用され得る。
【０１１８】
4:2:0モードでの1×2パーティションの場合、現在のブロックの第2のラインにクロマサイトがなくてよいので、現在のブロックの第1のラインにおける1×2パーティションと現在のブロックの第2のラインにおける1×2パーティションとの間で区別が行われる必要があり得る。たとえば、現在のブロックの第1のラインにおけるパーティションの場合、ひずみ値の計算は、2つのルーマサンプルと、各クロマ成分に関する1つのクロマサンプルとを伴い得る。現在のブロックの第2のラインにおけるパーティションの場合、ひずみ値の計算は、ルーマサンプルのみ(たとえば、2つのルーマサンプル)を伴い得る。図16の例1600では、現在の1×2パーティションAは第1のラインにあり、クロマサイトを含む。したがって、現在の1×2パーティションAを予測するために選択される候補パーティションは、候補1×2パーティションAであり、同じくクロマサイトを含む。同様に、現在の1×2パーティションBは、第2のラインにあり、クロマサイトを含まない。したがって、現在の1×2パーティションBを予測するために選択される候補パーティションは、候補1×2パーティションBであり、同じくクロマサイトを含まない。
【０１１９】
4:2:2クロマサブサンプリングフォーマットの場合のBP探索
4:2:2モード(4:2:2クロマサブサンプリングフォーマット)での2×2パーティションの場合、各パーティションは、4つのルーマサンプルと、クロマ成分(たとえば、CoおよびCg、またはCbおよびCr)の各々に関する2つのクロマサンプルとを含み得る。4:2:2モードのための例示的な2×2探索1700が図17に示されている。図17では、クロマサイト(たとえば、クロマサンプルを有するピクセルロケーション)が「X」を使用して示されている。たとえば、パーティションAの2つの左サンプル、パーティションBの2つの右サンプル、および現在のパーティションの2つの左サンプルは、それぞれのパーティションを交差するクロマサイトを含む。そのようなクロマサイトは、(たとえば、クロマサンプル値を使用して差値を計算するために)それぞれのパーティションに関して実行されるすべての計算に使用され得る。
【０１２０】
4:2:2モードでの1×2パーティションの場合、各パーティションは、2つのルーマサンプルと、クロマ成分(たとえば、CoおよびCg、またはCbおよびCr)の各々に関する1つのクロマサンプルとを含む。4:2:0モードの場合とは異なり、4:2:2モードでは、現在のブロックの第1のラインにおけるパーティションと現在のブロックの第2のラインにおけるパーティションとの間に区別がなくてよい。4:2:2クロマサブサンプリングのための1×2パーティションの例示的なブロック予測探索1800が図18に示されている。図18の例では、現在の1×2パーティションAは第1のラインにあり、現在の1×2パーティションBは第2のラインにあり、現在のパーティションAおよびBの各々はクロマサイトを含む。現在のパーティションAは、候補1×2パーティションAに基づいて予測され、候補1×2パーティションAは、第1のサンプルにクロマサイトを含み、現在のパーティションBは、候補1×2パーティションBに基づいて予測され、候補1×2パーティションBは、第2のサンプルにクロマサイトを含む。したがって、クロマサイトが候補パーティション内のどこに位置するかにかかわらず、クロマサンプルは、現在のパーティションにおけるクロマサンプルを予測するために使用され得る。
【０１２１】
エンコーダの決定
4:2:2および4:2:0フォーマットでは、クロマ成分ごとのブロックあたりエントロピーコーディンググループが4つよりも少ないことがある。たとえば、4つのエントロピーコーディンググループがルーマ成分に使用されることがあり、2つ(または1つ)のエントロピーコーディンググループが橙のクロマ成分に使用されることがあり、2つ(または1つ)のエントロピーコーディンググループが緑のクロマ成分に使用されることがある。所与のブロックをコーディングするために使用されるエントロピーコーディンググループの数は、所与のブロックにおけるルーマサンプルまたはクロマサンプルの数に基づいて決定され得る。いくつかの実施形態では、エントロピーコーディンググループはエンコーダによって、所与のブロックがコーディングされるコーディングモードに基づいて決定される。他の実施形態では、エントロピーコーディンググループは、適用可能なコーディング規格によって(たとえば、所与のブロックがコーディングされるコーディングモードに基づいて)設定される。
【０１２２】
いくつかの実施形態では、量ECbitsは、クロマに関してエンコーダによって正確に決定されるものではない。そのような実施形態のうちのいくつかでは、エンコーダは、4:2:2および4:2:0フォーマットの場合にルーマサンプルのみを使用して計算されたエントロピーコーディングレートに基づいて、1×2パーティションを使用するか、それとも2×2パーティションを使用するかを決定し得る。他の実施形態では、量ECbitsは、クロマに関してエンコーダによって決定され、エンコーダは、4:2:2および4:2:0フォーマットの場合にルーマサンプルとクロマサンプルの両方を使用して計算されたエントロピーコーディングレートに基づいて、1×2パーティションを使用するか、それとも2×2パーティションを使用するかを決定し得る。
【０１２３】
シグナリング
いくつかの実施形態では、ブロックごとに、または色成分ごとにエンコーダからデコーダに送信されるべきエントロピーコーディンググループの数は、クロマサブサンプリングフォーマットに応じて変更され得る。いくつかの実装形態では、エントロピーコーディンググループの数は、コーデックスループットが十分に高くなるように変更される。たとえば、4:4:4モードでは、図11に示すように、2×8ブロックが4つのエントロピーコーディンググループを含み得る。そのような例では、色成分(たとえば、Y、Co、およびCg)ごとに4つのエントロピーコーディンググループが使用され(たとえば、エンコーダによってシグナリングされ)得る。Table 1(表1)は、4:2:2および4:2:0モードに使用されるエントロピーコーディンググループの数の例示的な変更を記述している。上述のシグナリングの残り(たとえば、BPVのシグナリング、区分方式の指示のシグナリングなど)は、4:2:2および4:2:0モードの場合に(4:4:4モードに関して説明したシグナリングから)変更されなくてよい。たとえば、Table 1(表1)では、成分0はルーマ(Y)に対応することができ、成分1は橙クロマ(Co)に対応することができ、成分2は緑クロマ(Cg)に対応することができる。
【０１２４】
【表１】
2018532317.tif 000007
【０１２５】
利点
本開示で説明する1つまたは複数のブロック予測モード技法は、非対称的な設計を使用して実装され得る。非対称的な設計は、よりコストがかかる手順がエンコーダ側で実行されることを可能にし、デコーダの複雑度を低下させる。たとえば、ベクトルがデコーダに明示的にシグナリングされるので、エンコーダは、デコーダと比較して作業の大部分を行う。これは、エンコーダが、最先端のプロセスノード(たとえば、20nm以下)上で高頻度で稼動しているシステムオンチップ(SoC)設計の一部であることが多いので、望ましい。一方、デコーダは、限られたクロック速度およびはるかに大きいプロセスサイズ(たとえば、65nm以上)を有するディスプレイドライバ集積回路(DDIC)チップオングラス(COG)ソリューション上に実装される可能性が高い。
【０１２６】
さらに、ブロックパーティションサイズの適応的選択は、ブロック予測モードがより広い範囲のコンテンツタイプに使用されることを可能にする。BPVを明示的にシグナリングすることはコストがかかることがあるので、可変パーティションサイズは、2×2パーティションを使用して良好に予測され得る画像領域のシグナリングコストの低減を可能にする。非常に複雑な領域に関しては、エントロピーコーディングレートがシグナリングコストの上昇を埋め合わせるのに十分に低減され得る場合、またはRDトレードオフが依然として1×2に有利となるようにひずみが十分に低減され得る場合に、1×2パーティションサイズが選択され得る。たとえば、ブロックパーティションサイズの適応的選択は、自然な画像、テストパターン、細部テキストレンダリングなどを含む、すべてのコンテンツタイプにわたってパフォーマンスを高め得る。いくつかの実施形態では、本明細書で説明する適応的区分技法は、2×2よりも大きいブロックパーティションサイズおよび/または2×8よりも大きいブロックサイズを考慮することによって拡張され得る。
【０１２７】
本明細書で説明する1つまたは複数の技法は、固定ビットレートバッファモデルを利用する固定ビットコーデックにおいて実装され得る。そのようなモデルでは、レートバッファに記憶されたビットは、固定ビットレートでレートバッファから取り去られる。したがって、ビデオエンコーダがビットストリームにあまりにも多くのビットを追加した場合、レートバッファはオーバーフローし得る。一方、ビデオエンコーダは、レートバッファのアンダーフローを防止するために、十分なビットを追加する必要があり得る。さらに、ビデオデコーダ側では、ビットは固定ビットレートでレートバッファに追加され得、ビデオデコーダはブロックごとに可変数のビットを取り去り得る。適正な復号を確実にするために、ビデオデコーダのレートバッファは、圧縮ビットストリームの復号中に「アンダーフロー」も「オーバーフロー」もすべきでない。本明細書で説明する1つまたは複数の技法は、符号化および/または復号中にそのようなアンダーフローまたはオーバーフローが防止されるようにし得る。いくつかの実施形態では、エンコーダは、所与の領域、スライス、またはフレームをコーディングするための固定数のビットをエンコーダが有するビットバジェット制約下で動作し得る。そのような実施形態では、複数のコーディングモードの各々が所与の領域、スライス、またはフレームをコーディングできるために必要とするビットの数を正確に把握できること(また推定する必要がないこと)が、エンコーダにとって不可欠であり、それによりエンコーダは、ビットバジェットまたは他のビット/帯域幅関連の制約が満たされ得るようにすることができる。たとえば、エンコーダは、所与の領域、スライス、またはフレームのコーディングが推定よりも多くのビットを必要とする場合に備えたいかなる予防策も実施する必要なしに、所与のコーディングモードで所与の領域、スライス、またはフレームをコーディングし得る。
【０１２８】
さらに、本明細書で説明する1つまたは複数の技法は、ディスプレイリンクを介した送信におけるビデオ圧縮技術に関連する固有の技術的問題を克服する。ある領域が複数の候補領域(たとえば、複数の候補領域のうちの対応する1つに基づいて予測される当該領域における各パーティション)に基づいてコーディングされることを可能にすることによって、ビデオエンコーダおよびデコーダは、領域の性質(たとえば、平滑、複雑など)に基づくカスタマイズされた予測を実現し、それによって、ビデオエンコーダおよびデコーダ(たとえば、ハードウェアおよびソフトウェアコーデック)のパフォーマンスを改善することができる。
【０１２９】
他の考慮事項
本明細書で開示する情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０１３０】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップは、概して、それらの機能の観点から上記で説明された。そのような機能がハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきでない。
【０１３１】
本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明した任意の特徴は、集積論理デバイスの中で一緒に実装されてよく、または個別であるが相互運用可能な論理デバイスとして別々に実装されてもよい。ソフトウェアで実装される場合、技法は、実行されたとき、上記で説明した方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気データ記憶媒体または光データ記憶媒体などの、メモリまたはデータ記憶媒体を含み得る。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされてよく、読み取られてよく、かつ/または実行されてよいコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１３２】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくは個別論理回路などの、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明した技法のうちのいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明した技法の実装にとって適した任意の他の構造もしくは装置のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内で提供され得るか、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、技法は、1つまたは複数の回路または論理要素で完全に実装されてもよい。
【０１３３】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、様々なデバイスまたは装置において実装されてもよい。様々な構成要素またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１３４】
上記のことは様々な異なる実施形態に関して説明されたが、1つの実施形態からの特徴または要素が、本開示の教示から逸脱することなく他の実施形態と組み合わせられてよい。ただし、それぞれの実施形態の間での特徴の組合せは、必ずしもそれらに限定されるとは限らない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は、以下の特許請求の範囲に入る。
【符号の説明】
【０１３５】
10  ビデオコーディングシステム
10'  ビデオコーディングシステム
11  デバイス
12  ソースデバイス、ビデオコーディングデバイス、コーディングデバイス
13  プロセッサ/コントローラデバイス
14  宛先デバイス、ビデオコーディングデバイス、コーディングデバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ、エンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ、デコーダ
31  記憶デバイス
32  ディスプレイデバイス
105  色空間変換器
110  バッファ
115  平坦度検出器
120  レートコントローラ
125  予測器、量子化器、および再構成器構成要素
130  ラインバッファ
135  インデックス付き色履歴
140  エントロピーエンコーダ
145  サブストリームマルチプレクサ
150  レートバッファ
155  レートバッファ
160  サブストリームデマルチプレクサ
165  エントロピーデコーダ
170  レートコントローラ
175  予測器、量子化器、および再構成器構成要素
180  インデックス付き色履歴
185  ラインバッファ
190  色空間変換器
302  以前のライン
308  現在のブロック
310  探索範囲
400  探索空間
402  以前のライン
408  現在のブロック
504  以前のブロック
506  現在のブロック
508  探索範囲
602  現在のライン
604  以前のブロック
606  現在のブロック
608  探索範囲
700  方法
802  現在のブロック
804  現在のブロック
900  データフロー
902  現在のブロック
904  ブロックパーティション
906  ブロック予測(BP)探索
907A  以前の再構成ブロック
907B  以前の再構成ブロック
908  ブロック予測子
910  ブロック
912  ブロック
914  逆量子化
916  ブロック
918  再構成ブロック
920  エントリピーコーダ
922  BPパーティションサイズ選択
924  ビットストリーム
1000  図
1002  ブロック
1004  サブブロックまたは領域
1006  区分オプション
1008  区分オプション
1100  エントロピーコーディンググループ構造
1200  図
1202  現在のライン
1204  現在のブロック
1206  現在のサブブロック
1208  以前のブロック
1210  以前のライン
1212  探索範囲
1214  候補サブブロック
1300  図
1302  ブロック
1304  ブロック
1306  ブロック
1308  ブロック
1400  方法
1500  2×2探索
1600  例
1700  2×2探索
1800  ブロック予測探索
【図１Ａ】
2018532317.tif 000008
【図１Ｂ】
2018532317.tif 000009
【図２Ａ】
2018532317.tif 000010
【図２Ｂ】
2018532317.tif 000011
【図３】
2018532317.tif 000012
【図４】
2018532317.tif 000013
【図５】
2018532317.tif 000014
【図６】
2018532317.tif 000015
【図７】
2018532317.tif 000016
【図８】
2018532317.tif 000017
【図９】
2018532317.tif 000018
【図１０】
2018532317.tif 000019
【図１１】
2018532317.tif 000020
【図１２】
2018532317.tif 000021
【図１３】
2018532317.tif 000022
【図１４】
2018532317.tif 000023
【図１５】
2018532317.tif 000024
【図１６】
2018532317.tif 000025
【図１７】
2018532317.tif 000026
【図１８】
2018532317.tif 000027
【手続補正書】
【提出日】平成30年3月20日(2018.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするための方法であって、
ビデオデータの前記ブロック内の現在の領域を区分するための第1の区分方式に基づいて、前記現在の領域の外にあるロケーションの第1の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第1の候補領域を決定するステップであって、前記1つまたは複数の第1の候補領域は、ビデオ符号化デバイスのメモリに記憶される、ステップと、
前記第1の区分方式とは異なる前記現在の領域を区分するための第2の区分方式に基づいて、前記現在の領域の外にあるロケーションの第2の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第2の候補領域を決定するステップであって、前記1つまたは複数の第2の候補領域は、前記ビデオ符号化デバイスの前記メモリに記憶される、ステップと、
前記第1の区分方式で前記1つまたは複数の第1の候補領域に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式で前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいと判断し、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが、前記固定ビットレートビデオコーディング方式の下で前記現在の領域に関連するビットバジェット制約を満たすと判断するステップと、
前記第1のコストが前記第2のコストよりも大きいとの判断、および前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが前記ビットバジェット制約を満たすとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングするステップと
を含む方法。
【請求項２】
前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングするステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記残差は、ルーマ残差およびクロマ残差を含み、前記方法は、(i)第1の数のエントロピーコーディンググループを使用して、前記ルーマ残差に対してエントロピーコーディングを実行するステップ、および(ii)前記第1の数とは異なる第2の数のエントロピーコーディンググループを使用して、前記クロマ残差に対してエントロピーコーディングを実行するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記ビットストリームの中で、前記ブロック内の少なくとも1つの他の領域に対する1つまたは複数の第1の候補領域のロケーションを示す1つまたは複数の予測ベクトルをシグナリングするステップをさらに含み、前記少なくとも1つの他の領域に関してシグナリングされる予測ベクトルの数は、前記現在の領域に関してシグナリングされる予測ベクトルの数とは異なる、請求項2に記載の方法。
【請求項５】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、同じ1つまたは複数の候補領域を含む、請求項1に記載の方法。
【請求項６】
(i)前記現在の領域と前記1つまたは複数の第2の候補領域との間の絶対差分和、ならびに(ii)前記ビットストリームの中で前記1つまたは複数の予測ベクトルおよび対応する残差をシグナリングするために必要とされるビットの数に少なくとも部分的に基づいて前記第2のコストを決定するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記ビットストリームの中でパーティションインジケータをシグナリングするステップさらに含み、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含む、請求項1に記載の方法。
【請求項８】
前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項7に記載の方法。
【請求項９】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、異なるサイズを有する、請求項1に記載の方法。
【請求項１０】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、同じサイズを有する、請求項1に記載の方法。
【請求項１１】
ビデオデータの前記ブロックは、4:2:0クロマサブサンプリングフォーマットまたは4:2:2クロマサブサンプリングフォーマットのうちの1つに関連付けられる、請求項1に記載の方法。
【請求項１２】
前記1つまたは複数の第2の候補領域は、第1の数のクロマサンプルを有する第1の領域、および前記第1の数とは異なる第2の数のクロマサンプルを有する第2の領域を含み、前記第1および第2の領域は重複しない、請求項1に記載の方法。
【請求項１３】
前記1つまたは複数の第2の候補領域は、いかなるクロマサンプルにも関連付けられない少なくとも1つの領域を含む、請求項1に記載の方法。
【請求項１４】
前記現在の領域は、第1の数のクロマサンプルに関連する第1の現在の領域、および前記第1の数とは異なる第2の数のクロマサンプルに関連する第2の現在の領域を含み、前記1つまたは複数の第2の候補領域は、前記第1の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第1のもの、および前記第2の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第2のものを含む、請求項1に記載の方法。
【請求項１５】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成された装置であって、
1つまたは複数の候補領域に関連するビデオデータを記憶するように構成されたメモリと、
前記メモリと通信している1つまたは複数のプロセッサと
を含み、前記1つまたは複数のプロセッサは、
ビデオデータの前記ブロック内の現在の領域を区分するための第1の区分方式に基づいて、前記現在の領域の外にあるロケーションの第1の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第1の候補領域を決定することと、
前記第1の区分方式とは異なる前記現在の領域を区分するための第2の区分方式に基づいて、前記現在の領域に関連するロケーションの第2の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第2の候補領域を決定することと、
前記第1の区分方式で前記1つまたは複数の第1の候補領域に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式で前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいと判断し、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが、前記固定ビットレートビデオコーディング方式の下で前記現在の領域に関連するビットバジェット制約を満たすと判断することと、
前記第1のコストが前記第2のコストよりも大きいとの判断、および前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが前記ビットバジェット制約を満たすとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングすることと
を行うように構成される、装置。
【請求項１６】
前記1つまたは複数のプロセッサは、前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングするようにさらに構成される、請求項15に記載の装置。
【請求項１７】
前記残差は、ルーマ残差およびクロマ残差を含み、前記方法は、(i)第1の数のエントロピーコーディンググループを使用して、前記ルーマ残差に対してエントロピーコーディングを実行するステップ、および(ii)前記第1の数とは異なる第2の数のエントロピーコーディンググループを使用して、前記クロマ残差に対してエントロピーコーディングを実行するステップをさらに含む、請求項16に記載の装置。
【請求項１８】
前記1つまたは複数のプロセッサは、前記ビットストリームの中で、前記ブロック内の少なくとも1つの他の領域に対する1つまたは複数の第1の候補領域のロケーションを示す1つまたは複数の予測ベクトルをシグナリングするようにさらに構成され、前記少なくとも1つの他の領域に関してシグナリングされる予測ベクトルの数は、前記現在の領域に関してシグナリングされる予測ベクトルの数とは異なる、請求項16に記載の装置。
【請求項１９】
前記1つまたは複数の第1の候補領域および前記1つまたは複数の第2の候補領域は、同じ1つまたは複数の候補領域を含む、請求項15に記載の装置。
【請求項２０】
前記1つまたは複数のプロセッサは、(i)前記現在の領域と前記1つまたは複数の第2の候補領域との間の絶対差分和、ならびに(ii)前記ビットストリームの中で前記1つまたは複数の予測ベクトルおよび対応する残差をシグナリングするために必要とされるビットの数に少なくとも部分的に基づいて前記第2のコストを決定するようにさらに構成される、請求項15に記載の装置。
【請求項２１】
前記1つまたは複数のプロセッサは、前記ビットストリームの中でパーティションインジケータをシグナリングするようにさらに構成され、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含み、前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項15に記載の装置。
【請求項２２】
前記1つまたは複数の第2の候補領域は、第1の数のクロマサンプルを有する第1の領域、および前記第1の数とは異なる第2の数のクロマサンプルを有する第2の領域を含み、前記第1および第2の領域は重複しない、請求項15に記載の装置。
【請求項２３】
前記1つまたは複数の第2の候補領域は、いかなるクロマサンプルにも関連付けられない少なくとも1つの領域を含む、請求項15に記載の装置。
【請求項２４】
前記現在の領域は、第1の数のクロマサンプルに関連する第1の現在の領域、および前記第1の数とは異なる第2の数のクロマサンプルに関連する第2の現在の領域を含み、前記1つまたは複数の第2の候補領域は、前記第1の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第1のもの、および前記第2の数のクロマサンプルを含む前記1つまたは複数の第2の候補領域のうちの第2のものを含む、請求項15に記載の装置。
【請求項２５】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成されたコードを含む非一時的物理的コンピュータストレージであって、前記コードは、実行されたとき、装置に、
ビデオデータの前記ブロック内の現在の領域を区分するための第1の区分方式に基づいて、前記現在の領域の外にあるロケーションの第1の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第1の候補領域を決定することと、
前記第1の区分方式とは異なる前記現在の領域を区分するための第2の区分方式に基づいて、前記現在の領域に関連するロケーションの第2の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第2の候補領域を決定することと、
前記第1の区分方式で前記1つまたは複数の第1の候補領域に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式で前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいと判断し、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが、前記固定ビットレートビデオコーディング方式の下で前記現在の領域に関連するビットバジェット制約を満たすと判断することと、
前記第1のコストが前記第2のコストよりも大きいとの判断、および前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが前記ビットバジェット制約を満たすとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングすることと
を行わせる、非一時的物理的コンピュータストレージ。
【請求項２６】
前記コードは、前記装置に、前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングすることをさらに行わせる、請求項25に記載の非一時的物理的コンピュータストレージ。
【請求項２７】
前記コードは、前記装置に、前記ビットストリームの中でパーティションインジケータをシグナリングすることをさらに行わせ、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含み、前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項25に記載の非一時的物理的コンピュータストレージ。
【請求項２８】
固定ビットレートビデオコーディング方式のブロック予測モードでビデオデータのブロックをコーディングするように構成されたビデオコーディングデバイスであって、
ビデオデータの前記ブロック内の現在の領域を区分するための第1の区分方式に基づいて、前記現在の領域の外にあるロケーションの第1の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第1の候補領域を決定するための手段と、
前記第1の区分方式とは異なる前記現在の領域を区分するための第2の区分方式に基づいて、前記現在の領域の外にあるロケーションの第2の範囲から前記現在の領域を予測するために使用可能な1つまたは複数の第2の候補領域を決定するための手段と、
前記第1の区分方式で前記1つまたは複数の第1の候補領域に基づいて前記現在の領域をコーディングすることに関連する第1のコストが、前記第2の区分方式で前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることに関連する第2のコストよりも大きいと判断し、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが、前記固定ビットレートビデオコーディング方式の下で前記現在の領域に関連するビットバジェット制約を満たすと判断するための手段と、
前記第1のコストが前記第2のコストよりも大きいとの判断、および前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をコーディングすることが前記ビットバジェット制約を満たすとの判断に応答して、前記1つまたは複数の第2の候補領域に基づいて前記現在の領域をビットストリームへコーディングするための手段と
を含むビデオコーディングデバイス。
【請求項２９】
前記ビットストリームの中で、前記現在の領域に対する前記1つまたは複数の第2の候補領域のロケーションを示す1つまたは複数の予測ベクトル、および前記1つまたは複数の第2の候補領域と前記現在の領域との間の差を示す残差をシグナリングするための手段をさらに含む、請求項28に記載のビデオコーディングデバイス。
【請求項３０】
前記ビットストリームの中でパーティションインジケータをシグナリングするための手段をさらに含み、前記パーティションインジケータは、前記ブロック内の各領域に関連する区分方式を示し、前記ブロックは、前記現在の領域以外の少なくとも1つの領域を含み、前記パーティションインジケータは、前記現在の領域が前記第2の区分方式に関連付けられること、および前記ブロックにおける前記現在の領域以外の前記少なくとも1つの領域が、前記第2の区分方式とは異なる前記第1の区分方式に関連付けられることを示す、請求項28に記載のビデオコーディングデバイス。
【国際調査報告】
2018532317.tif 000028
2018532317.tif 000029