(57)【要約】  ビデオコーダは、ビデオデータの第1のブロックがイントラモードコーディングされると判断し、第1のブロックの第1の高さおよび第1の幅に基づいて、ビデオデータの第1のブロック用の、N個の利用可能なイントラ予測モードのグループを識別し、N個の利用可能なイントラ予測モードのグループから、ビデオデータの第1のブロックをコーディングするのに使われる第1のイントラ予測モードを選択し、第1のイントラ予測モードを使用して第1のブロックをコーディングする。ビデオコーダは、ブロック用の第1の最確モード(MPM)候補リストを生成し、ブロックをコーディングするのに使われる実際のイントラ予測モードが第1のMPM候補リスト中に含まれないことを示す第1のフラグをコーディングし、第1のMPM候補リスト中のイントラ予測モードに基づいて少なくとも1つの候補イントラ予測モードを導出することによって、第2のMPM候補リストを生成する。
2019530367.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための方法であって、
前記ビデオデータの第1のブロックがイントラモードコーディングされると判断するステップであって、前記ビデオデータの前記第1のブロックは、第1の高さおよび第1の幅を有する、ステップと、
前記第1の高さおよび前記第1の幅に基づいて、ビデオデータの前記第1のブロック用の、N個の利用可能なイントラ予測モードのグループを識別するステップであって、Nは、2よりも大きい整数値である、ステップと、
N個の利用可能なイントラ予測モードの前記グループから、前記ビデオデータの前記第1のブロックをコーディングするのに使われる第1のイントラ予測モードを選択するステップと、
前記第1のイントラ予測モードを使用して前記第1のブロックをコーディングするステップとを含む方法。
【請求項２】
前記ビデオデータの第2のブロックがイントラモードコーディングされると判断するステップであって、前記ビデオデータの前記第2のブロックは第2の高さおよび第2の幅を有する、ステップと、
前記第2の高さおよび前記第2の幅に基づいて、前記ビデオデータの前記第2のブロック用の、M個の利用可能なイントラ予測モードのグループを識別するステップであって、Mは、Nとは異なる整数値であり、2よりも大きい、ステップと、
M個の利用可能なイントラ予測モードの前記グループから、前記ビデオデータの前記第2のブロックをコーディングするのに使われる第2のイントラ予測モードを選択するステップとをさらに含む、請求項1に記載の方法。
【請求項３】
前記ビデオデータ中で閾値をシグナリングするステップと、
前記第1のブロックが、前記閾値よりも大きい面積を有することに応答して、Nについての値を決定するステップと、
前記第2のブロックが前記閾値未満の面積を有することに応答して、Mについての値を決定するステップであって、MはNよりも小さい、ステップとをさらに含む、請求項2に記載の方法。
【請求項４】
N個の利用可能なイントラ予測モードの前記グループの中の各イントラ予測モードは、0〜N-1にわたる一意のインデックスを有し、M個の利用可能なイントラ予測モードの前記グループの中の各イントラ予測モードは、0〜M-1にわたる一意のインデックスを有する、請求項2に記載の方法。
【請求項５】
前記第1の高さは前記第1の幅よりも大きく、前記方法は、
前記ビデオデータの第2のブロックがイントラモードコーディングされると判断するステップであって、前記ビデオデータの前記第2のブロックは第2の高さおよび第2の幅を有し、前記第2の幅は前記第2の高さよりも大きい、ステップと、
前記第2の高さおよび前記第2の幅に基づいて、前記ビデオデータの前記第2のブロック用の、M個の利用可能なイントラ予測モードのグループを識別するステップであって、M個の利用可能なイントラ予測モードの前記グループは、N個の利用可能なイントラ予測モードの前記グループには含まれない少なくとも1つのイントラ予測モードを含む、ステップと、
M個の利用可能なイントラ予測モードの前記グループから、前記ビデオデータの前記第2のブロックをコーディングするのに使われる第2のイントラ予測モードを選択するステップとをさらに含む、請求項1に記載の方法。
【請求項６】
前記第1の高さおよび前記第1の幅に基づいて前記第1のブロックの面積を決定するステップと、
前記面積に基づいて、Nについての値を決定するステップとをさらに含む、請求項1に記載の方法。
【請求項７】
前記第1のイントラ予測モードを使用して前記第1のブロックをコーディングするステップは、
前記第1のイントラ予測モードを使用して前記第1のブロックを符号化するステップ、または
前記第1のイントラ予測モードを使用して前記第1のブロックを復号するステップのうちの1つを含む、請求項1に記載の方法。
【請求項８】
ビデオデータをコーディングするためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記ビデオデータの第1のブロックがイントラモードコーディングされると判断することであって、前記ビデオデータの前記第1のブロックは、第1の高さおよび第1の幅を有する、判断することと、
前記第1の高さおよび前記第1の幅に基づいて、ビデオデータの前記第1のブロック用の、N個の利用可能なイントラ予測モードのグループを識別することであって、Nは、2よりも大きい整数値である、識別することと、
N個の利用可能なイントラ予測モードの前記グループから、前記ビデオデータの前記第1のブロックをコーディングするのに使われる第1のイントラ予測モードを選択することと、
前記第1のイントラ予測モードを使用して前記第1のブロックをコーディングすることとを行うように構成される、デバイス。
【請求項９】
前記1つまたは複数のプロセッサは、
前記ビデオデータの第2のブロックがイントラモードコーディングされると判断することであって、前記ビデオデータの前記第2のブロックは第2の高さおよび第2の幅を有する、判断することと、
前記第2の高さおよび前記第2の幅に基づいて、前記ビデオデータの前記第2のブロック用の、M個の利用可能なイントラ予測モードのグループを識別することであって、Mは、Nとは異なる整数値であり、2よりも大きい、識別することと、
M個の利用可能なイントラ予測モードの前記グループから、前記ビデオデータの前記第2のブロックをコーディングするのに使われる第2のイントラ予測モードを選択することとを行うようにさらに構成される、請求項8に記載のデバイス。
【請求項１０】
前記1つまたは複数のプロセッサは、
前記ビデオデータ中で閾値をシグナリングすることと、
前記第1のブロックが、前記閾値よりも大きい面積を有することに応答して、Nについての値を決定することと、
前記第2のブロックが前記閾値未満の面積を有することに応答して、Mについての値を決定することであって、MはNよりも小さい、決定することとを行うようにさらに構成される、請求項9に記載のデバイス。
【請求項１１】
N個の利用可能なイントラ予測モードの前記グループの中の各イントラ予測モードは、0〜N-1にわたる一意のインデックスを有し、M個の利用可能なイントラ予測モードの前記グループの中の各イントラ予測モードは、0〜M-1にわたる一意のインデックスを有する、請求項9に記載のデバイス。
【請求項１２】
前記第1の高さは前記第1の幅よりも大きく、前記1つまたは複数のプロセッサは、
前記ビデオデータの第2のブロックがイントラモードコーディングされると判断することであって、前記ビデオデータの前記第2のブロックは第2の高さおよび第2の幅を有し、前記第2の幅は前記第2の高さよりも大きい、判断することと、
前記第2の高さおよび前記第2の幅に基づいて、前記ビデオデータの前記第2のブロック用の、M個の利用可能なイントラ予測モードのグループを識別することであって、M個の利用可能なイントラ予測モードの前記グループは、N個の利用可能なイントラ予測モードの前記グループには含まれない少なくとも1つのイントラ予測モードを含む、識別することと、
M個の利用可能なイントラ予測モードの前記グループから、前記ビデオデータの前記第2のブロックをコーディングするのに使われる第2のイントラ予測モードを選択することとを行うようにさらに構成される、請求項8に記載のデバイス。
【請求項１３】
前記1つまたは複数のプロセッサは、
前記第1の高さおよび前記第1の幅に基づいて前記第1のブロックの面積を決定することと、
前記面積に基づいて、Nについての値を決定することとを行うようにさらに構成される、請求項8に記載のデバイス。
【請求項１４】
前記第1のイントラ予測モードを使用して前記第1のブロックをコーディングするために、前記1つまたは複数のプロセッサは、
前記第1のイントラ予測モードを使用して前記第1のブロックを符号化すること、または
前記第1のイントラ予測モードを使用して前記第1のブロックを復号することのうちの少なくとも1つを行うようにさらに構成される、請求項8に記載のデバイス。
【請求項１５】
符号化ビデオデータを受信するように構成された受信機をさらに備えるワイヤレス通信デバイスを備える、請求項8に記載のデバイス。
【請求項１６】
前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記受信機が、ワイヤレス通信規格に従って、前記符号化ビデオデータを備える信号を復調するように構成される、請求項15に記載のデバイス。
【請求項１７】
ビデオデータをコーディングするための方法であって、
前記ビデオデータのブロックがイントラモードコーディングされると判断するステップと、
前記ブロック用の第1の最確モード(MPM)候補リストを生成するステップと、
前記ブロックをコーディングするのに使われる実際のイントラ予測モードが前記第1のMPM候補リスト中に含まれないことを示す第1のフラグをコーディングするステップと、
前記ブロック用の第2のMPM候補リストを生成するステップであって、前記ブロック用の前記第2のMPM候補リストを生成することは、
前記第1のMPM候補リスト中のイントラ予測モードに基づいて、前記第2のMPM候補リスト中に含めるための少なくとも1つの候補イントラ予測モードを導出することを含む、ステップと、
前記ブロックをコーディングするのに使われる実際のイントラ予測モードが前記第2のMPM候補リスト中に含まれるかどうかを示す第2のフラグをコーディングするステップとを含む方法。
【請求項１８】
前記第1のMPM候補リスト中の前記イントラ予測モードに基づいて、前記第2のMPM候補リスト中に含めるための前記少なくとも1つの候補イントラ予測モードを導出することは、前記第1のMPM候補リスト中の前記イントラ予測モードにオフセットを追加することを含む、請求項17に記載の方法。
【請求項１９】
前記第1のMPM候補リスト中の前記イントラ予測モードは、前記ブロックの隣接ブロックをコーディングするのに使われるイントラ予測モードに対応するか、または前記隣接ブロックをコーディングするのに使われる前記イントラ予測モードに基づいて導出される、請求項17に記載の方法。
【請求項２０】
前記第2のMPM候補リスト中のすべてのモードが、前記第1のMPM候補リスト中のすべてのモードとは異なるように、前記第2のMPM候補リストを生成するステップをさらに含む、請求項17に記載の方法。
【請求項２１】
前記ブロック用の前記第2のMPM候補リストを生成するステップは、
前記第2のMPM候補リストに少なくとも1つのデフォルト候補を追加するステップをさらに含む、請求項17に記載の方法。
【請求項２２】
前記ブロックをコーディングするのに使われる前記実際のイントラ予測モードが前記第1のMPM候補リストに含まれないことを示す前記第1のフラグをコーディングするステップ、および前記ブロックをコーディングするのに使われる前記実際のイントラ予測モードが前記第2のMPM候補リスト中に含まれるかどうかを示す前記第2のフラグをコーディングするステップは、
前記第1のフラグおよび前記第2のフラグを符号化するステップ、または
前記第1のフラグおよび前記第2のフラグを復号するステップのうちの1つを含む、請求項17に記載の方法。
【請求項２３】
前記第2のMPM候補リスト中に含めるための前記少なくとも1つの候補モードを導出するステップは、M個の候補モードを導出するステップを含み、Mは整数値であり、前記方法は、
前記第1のMPM候補リスト中の前記モードのモードインデックスに基づいて、Mについての前記整数値を決定するステップをさらに含む、請求項17に記載の方法。
【請求項２４】
ビデオデータをコーディングするためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記ビデオデータのブロックがイントラモードコーディングされると判断することと、
前記ブロック用の第1の最確モード(MPM)候補リストを生成することと、
前記ブロックをコーディングするのに使われる実際のイントラ予測モードが前記第1のMPM候補リスト中に含まれないことを示す第1のフラグをコーディングすることと、
前記ブロック用の第2のMPM候補リストを生成することであって、前記ブロック用の前記第2のMPM候補リストを生成することは、
前記第1のMPM候補リスト中のイントラ予測モードに基づいて、前記第2のMPM候補リスト中に含めるための少なくとも1つの候補イントラ予測モードを導出することを含む、生成することと、
前記ブロックをコーディングするのに使われる実際のイントラ予測モードが前記第2のMPM候補リスト中に含まれるかどうかを示す第2のフラグをコーディングすることとを行うように構成される、デバイス。
【請求項２５】
前記第1のMPM候補リスト中の前記イントラ予測モードに基づいて、前記第2のMPM候補リスト中に含めるための前記少なくとも1つの候補イントラ予測モードを導出するために、前記1つまたは複数のプロセッサは、前記第1のMPM候補リスト中の前記イントラ予測モードにオフセットを追加するように構成される、請求項24に記載のデバイス。
【請求項２６】
前記第1のMPM候補リスト中の前記イントラ予測モードは、前記ブロックの隣接ブロックをコーディングするのに使われるイントラ予測モードに対応するか、または前記隣接ブロックをコーディングするのに使われる前記イントラ予測モードに基づいて導出される、請求項24に記載のデバイス。
【請求項２７】
前記1つまたは複数のプロセッサは、前記第2のMPM候補リスト中のすべてのモードが、前記第1のMPM候補リスト中のすべてのモードとは異なるように、前記第2のMPM候補リストを生成するように構成される、請求項24に記載のデバイス。
【請求項２８】
前記ブロック用の前記第2のMPM候補リストをさらに生成するために、前記1つまたは複数のプロセッサは、
前記第2のMPM候補リストに少なくとも1つのデフォルト候補を追加するように構成される、請求項24に記載のデバイス。
【請求項２９】
前記ブロックをコーディングするのに使われる前記実際のイントラ予測モードが前記第1のMPM候補リストに含まれないことを示す前記第1のフラグをコーディングし、前記ブロックをコーディングするのに使われる前記実際のイントラ予測モードが前記第2のMPM候補リスト中に含まれるかどうかを示す前記第2のフラグをコーディングするために、前記1つまたは複数のプロセッサは、
前記第1のフラグおよび前記第2のフラグを符号化すること、または
前記第1のフラグおよび前記第2のフラグを復号することのうちの1つを行うように構成される、請求項24に記載のデバイス。
【請求項３０】
前記第2のMPM候補リスト中に含めるための前記少なくとも1つの候補モードを導出することは、M個の候補モードを導出することを含み、Mは整数値であり、前記1つまたは複数のプロセッサは、
前記第1のMPM候補リスト中の前記モードのモードインデックスに基づいて、Mについての前記整数値を決定するように構成される、請求項24に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2016年10月4日に出願された米国仮特許出願第62/404,128号の利益を主張し、その内容全体は、参照により本明細書に組み込まれる。
【０００２】
本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4, Part 10、アドバンストビデオコーディング(AVC)、最近最終決定された高効率ビデオコーディング(HEVC)規格、およびそのような規格の拡張によって定義された規格に記載されるものなどのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実施することにより、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶することができる。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実施する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分化される場合があり、ビデオブロックは、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれる場合もある。ピクチャのイントラコード化(I)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャの中の参照サンプルに対する時間予測を使用し得る。ピクチャは、フレームと呼ばれる場合があり、参照ピクチャは、参照フレームと呼ばれる場合がある。
【０００５】
空間予測または時間予測は、コーディングされるべきブロックに対する予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらす場合があり、残差変換係数は、次いで量子化される場合がある。最初に2次元アレイに配置される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査される場合があり、さらなる圧縮を実現するために、エントロピーコーディングが適用される場合がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
本開示は、イントラ予測に関連した、より詳細には、ビデオエンコーダからビデオデコーダへのイントラ予測モードのシグナリングに関連した技法について記載する。
【０００７】
一例では、ビデオデータをコーディングするための方法は、ビデオデータの第1のブロックがイントラモードコーディングされると判断するステップであって、ビデオデータの第1のブロックは、第1の高さおよび第1の幅を有する、ステップと、第1の高さおよび第1の幅に基づいて、ビデオデータの第1のブロック用の、N個の利用可能なイントラ予測モードのグループを識別するステップであって、Nは、2よりも大きい整数値である、ステップと、N個の利用可能なイントラ予測モードのグループから、ビデオデータの第1のブロックをコーディングするのに使われる第1のイントラ予測モードを選択するステップと、第1のイントラ予測モードを使用して第1のブロックをコーディングするステップとを含む。
【０００８】
別の例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータの第1のブロックがイントラモードコーディングされると判断することであって、ビデオデータの第1のブロックは、第1の高さおよび第1の幅を有する、判断することと、第1の高さおよび第1の幅に基づいて、ビデオデータの第1のブロック用の、N個の利用可能なイントラ予測モードのグループを識別することであって、Nは、2よりも大きい整数値である、識別することと、N個の利用可能なイントラ予測モードのグループから、ビデオデータの第1のブロックをコーディングするのに使われる第1のイントラ予測モードを選択することと、第1のイントラ予測モードを使用して第1のブロックをコーディングすることとを行うように構成された1つまたは複数のプロセッサとを含む。
【０００９】
別の例では、ビデオデータをコーディングするための方法は、ビデオデータのブロックがイントラモードコーディングされると判断するステップと、ブロック用の第1の最確モード(MPM)候補リストを生成するステップと、ブロックをコーディングするのに使われる実際のイントラ予測モードが第1のMPM候補リスト中に含まれないことを示す第1のフラグをコーディングするステップと、ブロック用の第2のMPM候補リストを生成するステップであって、ブロック用の第2のMPM候補リストを生成することは、第1のMPM候補リスト中のイントラ予測モードに基づいて、第2のMPM候補リスト中に含めるための少なくとも1つの候補イントラ予測モードを導出することを含む、ステップと、ブロックをコーディングするのに使われる実際のイントラ予測モードが第2のMPM候補リスト中に含まれるかどうかを示す第2のフラグをコーディングするステップとを含む。
【００１０】
別の例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータのブロックがイントラモードコーディングされると判断することと、ブロック用の第1の最確モード(MPM)候補リストを生成することと、ブロックをコーディングするのに使われる実際のイントラ予測モードが第1のMPM候補リスト中に含まれないことを示す第1のフラグをコーディングすることと、ブロック用の第2のMPM候補リストを生成することであって、ブロック用の第2のMPM候補リストを生成することは、第1のMPM候補リスト中のイントラ予測モードに基づいて、第2のMPM候補リスト中に含めるための少なくとも1つの候補イントラ予測モードを導出することを含む、生成することと、ブロックをコーディングするのに使われる実際のイントラ予測モードが第2のMPM候補リスト中に含まれるかどうかを示す第2のフラグをコーディングすることとを行うように構成された1つまたは複数のプロセッサとを含む。
【００１１】
本開示の1つまたは複数の態様の詳細が、添付図面および以下の説明に記載される。本開示で説明される技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】本開示に記載される技法を利用することができる例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】ビデオデータのブロックのイントラ予測の例を示す概念図である。
【図３】イントラ予測モードおよび対応するモードインデックスの例を示す概念図である。
【図４】JEMにおいて定義されるイントラ予測モードおよび対応するモードインデックスの例を示す概念図である。
【図５】本開示の例による、JEMにおいて定義されるイントラ予測モードの例を示す概念図である。
【図６】本開示に記載される技法を実施することができる例示的なビデオエンコーダを示すブロック図である。
【図７】本開示に記載される技法を実施することができる例示的なビデオデコーダを示すブロック図である。
【図８】本開示の技法による例示的なビデオコーディングプロセスを示す流れ図である。
【図９】本開示の技法による例示的なビデオコーディングプロセスを示す流れ図である。
【発明を実施するための形態】
【００１３】
最近開発された高効率ビデオコーディング(HEVC)規格を含む様々なビデオコーディング規格は、ビデオブロックに対する予測コーディングモードを含み、予測コーディングモードでは、現在コーディングされているブロックが、ビデオデータのすでにコーディングされたブロックに基づいて予測される。イントラ予測モードでは、現在ブロックは、現在ブロックと同じピクチャ内の1つまたは複数の以前コーディングされた隣接ブロックに基づいて予測され、インター予測モードでは、現在ブロックは、異なるピクチャ内のすでにコーディングされたブロックに基づいて予測される。インター予測モードでは、予測ブロックとして使用するために以前コーディングされたピクチャのブロックを特定するプロセスは、動き推定と呼ばれるときがあり、それは概してビデオエンコーダによって実施され、予測ブロックを識別し取り出すプロセスは、動き補償と呼ばれるときがあり、それはビデオエンコーダとビデオデコーダの両方によって実施される。HEVCの拡張およびHEVCの後継は、イントラブロックコピー、辞書、およびパレットコーディングモードなどの追加コーディングモードも使う場合がある。
【００１４】
本開示は、イントラ予測に関連した、より詳細には、予測方向の選択(すなわち、イントラ予測モード)および予測方向のコーディングに関連した技法について記載する。本開示の技法は、HEVCなど、既存のビデオコーデックのうちのいずれかとともに使われてもよく、または現在のHEVC規格およびその拡張のものを超え得る圧縮能力をもつ将来のビデオコーディング技術での使用のための効率的コーディングツールであり得る。本開示の技法は、たとえば、現時点で開発中であるH.266規格またはHEVCに対する他の後継規格とともに使うことができる。
【００１５】
本開示は、ときにはビデオコーダに言及し得る。ビデオコーダは、ビデオ符号化またはビデオ復号のいずれかを指す総称語であることが意図されている。同様に、ビデオコーディングという用語は、ビデオ符号化またはビデオ復号のいずれかを指す総称語であることが意図されている。ビデオ符号化またはビデオ復号のいずれかに関して、本開示のいくつかの技法が記載される場合があるが、別段に明記されていない限り、それらの技法は、ビデオ符号化またはビデオ復号の他方に等しく適用可能でないことは想定されるべきでない。本開示は、たとえば、最確モード(MPM)候補リストを生成するため、およびMPM候補リストに関連付けられた特定の情報をエントロピーコーディングするためのコンテキストを判断するための技法を記載する。MPM候補リストを生成し、コンテキストを判断するための技法は、ビデオエンコーダとビデオデコーダの両方によって実施され、そうすることにより、ビデオデコーダは、ビデオエンコーダからビデオデコーダへの明示的シグナリングがほとんどなしで、またはまったくなしで、ビデオエンコーダと同じMPM候補リストまたは同じコンテキストを判断し得る。したがって、本開示のいくつかの技法が、ビデオエンコーダまたはビデオデコーダのうちの1つに関して記載される場合であっても、技法は概して、ビデオエンコーダまたはビデオデコーダの他方にも適用可能であると想定されるべきである。
【００１６】
本開示は、現在ブロック、現在ピクチャなどの用語を使う場合もある。本開示のコンテキストでは、現在という用語は、たとえば、以前もしくはすでにコーディングされたブロックもしくはピクチャ、またはまだコーディングされていないブロックもしくはピクチャとは反対に、現在コーディングされているブロックまたはピクチャを識別することを意図している。
【００１７】
図1は、本開示に記載される技法を利用することができる例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、後で宛先デバイス14によって復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信用に装備される場合がある。
【００１８】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に直接符号化ビデオデータを送信することを可能にするために、通信媒体を備える場合がある。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。
【００１９】
別の例では、符号化データは、出力インターフェース22から記憶デバイス26に出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイス26からアクセスされ得る。記憶デバイス26は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または、符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス26は、ソースデバイス12によって生成された符号化ビデオデータを保持し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス26からの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14へ送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。これには、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せが含まれる場合がある。記憶デバイス26からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであってよい。
【００２０】
本開示の技法は、ワイヤレスの適用例または設定に必ずしも限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途などの、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
【００２１】
図1の例では、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成する場合がある。しかしながら、本開示に記載される技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレス用途および/またはワイヤード用途に適用され得る。
【００２２】
キャプチャされたビデオ、以前キャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化される場合がある。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して、宛先デバイス14に直接送信される場合がある。符号化ビデオデータは、同様に(または、代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために、記憶デバイス17に記憶される場合がある。
【００２３】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信された、または記憶デバイス26上に提供された符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体に記憶された、またはファイルサーバに記憶された符号化ビデオデータとともに含まれる場合がある。
【００２４】
ディスプレイデバイス32は、宛先デバイス14と統合されるか、または宛先デバイス14の外部にあってよい。いくつかの例では、宛先デバイス14は、集積ディスプレイデバイスを含み、また外部ディスプレイデバイスとインターフェースするように構成される場合もある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備える場合がある。
【００２５】
ビデオエンコーダ20およびビデオデコーダ30は、最近確定されたHEVC規格などのビデオ圧縮規格に従って動作することができる。ビデオエンコーダ20およびビデオデコーダ30はさらに、ビデオコーディング共同研究部会(JCT-VC)、ならびに、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)の3Dビデオコーディング拡張開発に関する共同研究部会(JCT-3V)によって最近開発された、範囲拡張、マルチビュー拡張(MV-HEVC)、またはスケーラブル拡張(SHVC)などのHEVC拡張に従って動作することができる。
【００２６】
ビデオエンコーダ20およびビデオデコーダ30はまた、ISO/IEC MPEG-4, Part 10、アドバンストビデオコーディング(AVC)と代替的に呼ばれるITU-T H.264規格など、他の独自規格もしくは業界規格、またはスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張など、そのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、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 VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は今は、現在のHEVC規格(その現在の拡張ならびにスクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングのための目先の拡張を含む)を大きく超える圧縮能力を有する、将来のビデオコーディング技術の標準化の潜在的な必要性について研究している。このグループは、提案されている圧縮技術の設計を評価するために、共同ビデオ探索チーム(JVET:Joint Video Exploration Team)として知られている共同研究においてこの調査活動に一緒に取り組んでいる。JVETは、2015年10月19〜21日の間に最初に開かれた。参照ソフトウェアの1つのバージョン、すなわち、共同探索モデル2(JEM 2: Joint Exploration Model 2)は、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-2.0/からダウンロードすることができる。JEM2用のアルゴリズムが、その記述が参照によって本明細書に組み込まれている、J. Chen、E. Alshina、G. J. Sullivan、J.-R. Ohm、J. Boyce、「Algorithm description of Joint Exploration Test Model 2」、JVET-B1001、サンディエゴ、2016年3月に記載されている。参照ソフトウェアの別のバージョン、すなわち、共同探索モデル3(JEM 3)は、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-3.0/からダウンロードすることができる。JEM3用のアルゴリズム記述は、J. Chen、E. Alshina、G. J. Sullivan、J.-R. Ohm、J. Boyce、「Algorithm description of Joint Exploration Test Model 3」、JVET-C1001、ジュネーブ、2016年5月26日〜6月1日に記載されており、参照によって本明細書に組み込まれている。
【００２８】
本開示の技法は、説明を簡単にするためにHEVC用語を利用することがある。しかしながら、本開示の技法がHEVCに限定されることが仮定されるべきでなく、事実上、本開示の技法がHEVCの後継規格およびその拡張において実施され得ることが明示的に企図される。
【００２９】
図1には示さないが、いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、好適なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでよい。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
【００３０】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路またはデコーダ回路のいずれかとして実装される場合がある。本技法が部分的にソフトウェアに実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェア用の命令を記憶し、1つまたは複数のプロセッサを使用してハードウェアにおいてその命令を実行して、本開示の技法を実施することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されることがある。
【００３１】
HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは、「フレーム」と呼ばれることもある。1つの例示的な手法では、ピクチャは、SL、SCb、およびSCrと表記される3つのサンプルアレイを含み得る。そのような例示的な手法では、SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「彩度」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであることがあり、ルーマサンプルのアレイしか含まないことがある。
【００３２】
ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成することができる。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を含み得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、CTUは、単一のコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を含み得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。HEVCのCTUは、H.264/AVCなどの他の規格のマクロブロックに概して類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含む場合がある。スライスは、ラスタ走査順序で連続的に順序付けられた整数個のCTUを含む場合がある。
【００３３】
コード化CTUを生成するために、ビデオエンコーダ20は、CTUのコーディングツリーブロック上で4分木区分化を再帰的に実施して、コーディングツリーブロックをコーディングブロックに分割することができ、したがって、「コーディングツリーユニット」という名前である。コーディングブロックは、サンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、CUは、単一のコーディングブロック、およびコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。
【００３４】
ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分化し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を含み得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、PUは、単一の予測ブロック、および予測ブロックを予測するために使用されるシンタックス構造を含み得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックに対する、予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成し得る。
【００３５】
ビデオエンコーダ20は、PUに関する予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成することができる。
【００３６】
ビデオエンコーダ20がCUの1つまたは複数のPUに関する予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成した後、ビデオエンコーダ20は、CUに関するルーマ残差ブロックを生成し得る。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つの中のルーマサンプルとCUの元のルーマコーディングブロックの中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ20は、CUに関するCb残差ブロックを生成することができる。CUのCb残差ブロックの中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロックの中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20は、CUに関するCr残差ブロックを生成することもできる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルとCUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００３７】
さらに、ビデオエンコーダ20は、4分木区分化を使用して、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックと関連付けられ得る。TUと関連付けられるルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別個のカラープレーンを有するピクチャでは、TUは、単一の変換ブロック、および変換ブロックのサンプルを変換するために使用されるシンタックス構造を備え得る。
【００３８】
ビデオエンコーダ20は、TUに関するルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUに関するCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUに関するCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【００３９】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後に、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実施することができる。
【００４０】
ビデオエンコーダ20は、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ネットワーク抽象化レイヤ(NAL)ユニットのシーケンスを含み得る。NALユニットは、NALユニットの中のデータのタイプの表示、および必要に応じてエミュレーション防止ビットが散在させられているローバイトシーケンスペイロード(RBSP)の形態でそのデータを含むバイトを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含む場合がある。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは、0個のビットを含む。
【００４１】
様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはPPS用のRBSPをカプセル化することができ、第2のタイプのNALユニットはコード化スライス用のRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIメッセージ用のRBSPをカプセル化することができ、以下同様である。(パラメータセットおよびSEIメッセージ用のRBSPとは対照的に)ビデオコーディングデータ用のRBSPをカプセル化するNALユニットは、VCL NALユニットと呼ばれる場合がある。
【００４２】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。加えて、ビデオデコーダ30は、ビットストリームを構文解析してビットストリームからシンタックス要素を取得し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するためのプロセスは、全般に、ビデオエンコーダ20によって実施されるプロセスの逆であり得る。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在のCUのTUと関連付けられた変換ブロックを再構築するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ30は、現在のCUのPUの予測ブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構築し得る。ピクチャのCUごとにコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築し得る。
【００４３】
図2は、ビデオエンコーダ20またはビデオデコーダ30によって実施され得る、ビデオデータのブロックのイントラ予測の例を示す概念図である。イントラ予測では、ビデオデータのブロック(たとえば、PU)は、空間的に隣接している再構築画像サンプルを使用して予測される。画像ブロック40、たとえば16×16の画像ブロックのためのイントラ予測の典型的な例が、図2に示されている。イントラ予測を用いると、ビデオエンコーダ20またはビデオデコーダ30は、選択された予測方向(矢印42により示されるような)に沿った上および左の隣接する再構築サンプル(参照サンプル)をコピーすることによって画像ブロック40を予測する。
【００４４】
図3は、HEVC規格において使われる、イントラ予測モードおよび対応するモードインデックスの例を示す概念図である。図3に示されるように、HEVCでは、平面モード(すなわち、平面イントラ予測モード)、DCモード、および33個の角度モード(すなわち、角度イントラ予測モード)を含む、ルーマブロックのイントラ予測のための35個のモードがある。HEVCにおいて定義されるイントラ予測の35個のモードは、以下の表1(Table 1)において示されるようにインデックスを付けられる。
【００４５】
【表１】
2019530367.tif 000003
【００４６】
図4は、JEMにおいて定義されるイントラ予測モードおよび対応するモードインデックスの例を示す概念図である。JEM-3.0における1つのイントラ関連コーディングツールは、図4に示すような、67個のイントラ予測モードの導入である。HEVCにおけるイントラ予測モードと比較して、図4の点線によって示されるように、32個の追加角度イントラ予測角が導入される。HEVCの33個の角度イントラ予測モードは、実線で示される。イントラモードインデックス0および1は、HEVCにおける同じ平面およびDCモードを指す。イントラモードインデックス2〜66は、異なるイントラ予測角を指し、インデックス18、34および50は、それぞれ、純粋水平予測、対角線予測、および純粋垂直予測に対応する。67個のイントラ予測モードを用いると、HEVCの35個のイントラ予測モードと比較して、より厳密なイントラ予測精度を達成することができる。
【００４７】
イントラモードをシグナリングするために、ビデオエンコーダ20およびビデオデコーダ30はMPMリストを組み立てることができる。ビデオエンコーダ20は、ブロックをコーディングするのに使われる実際のイントラ予測モードが、MPMリスト中のモードのうちの1つであるかどうかを示すフラグをシグナリングする。実際のモードが、MPMリスト中のモードのうちの1つである場合、ビデオエンコーダ20は、符号化ビデオデータのビットストリームに含めるためのインデックス値を示すシンタックス要素を生成することもでき、インデックス値は、MPMリスト中のどのエントリが実際のイントラ予測モードに対応するかを示す。符号化ビデオデータを復号するとき、ビデオデコーダ30は、ブロックをコーディングするのに使われるイントラ予測モードに対応する、リスト中のエントリを決定するために、フラグおよびインデックス値を復号することができる。ビデオエンコーダ20およびビデオデコーダ30は、同じMPMリストを生成するように構成されるので、ビデオデコーダ30は、ビデオエンコーダ20によってブロックを符号化するのに使われるイントラ予測モードを決定することができる。ブロックをコーディングするのに使われる実際のイントラモードが、MPMリストの選択されたモードからのものではない場合、ビデオエンコーダ20は、ブロックをコーディングするのに使われるモードのモードインデックスを明示的にシグナリングすればよい。モードインデックスの最大値は、MPMおよび選択されたモードを削除することによって低減され得る。選択されたモードのリストは、たとえば、4つおきのモードをとることによって組み立てられ、すなわち均一にサンプリングされ得る。
【００４８】
JEMにおけるイントラ予測モードシグナリングのための現在の実装は潜在的に、本開示の態様によって対処され得るいくつかの問題を有する。一例として、JEMにおけるイントラ角度方向の数は、HEVCにおけるイントラ角度方向の数と比較して2倍にされているが、より厳密な予測方向が、依然として所望され得る。ただし、より小さいブロックサイズのための方向の数を増しても、予測品質を大幅に向上することはできず、実際には、シグナリングオーバーヘッドを望ましくない程増大し得る。JEMでは、均一にサンプリングされた選択されたモードをもつMPMリストが、特定のブロック用の最良イントラ予測モードを最も効果的に表すわけではなく、というのは、そのようなMPMリストは、ネイバーまたはすでに選ばれたMPMリストに依存しないからである。JEMでは、イントラモードの数が増大されており、これにより、イントラモードシグナリングコストも増大し得る。JEMでは、矩形ブロックがイントラ予測用に可能にされているが、JEMは、イントラモードシグナリングのためのブロック形状および対応するエッジ特徴は考慮しない。潜在的問題の別の例として、より多くの角度イントラモードが導入されているので、MPMインデックス用のコンテキストモデルは、さらに改良される必要があり得る。
【００４９】
上で言及した問題に対処し得るために、本開示は、イントラ予測モードおよびイントラ予測モードのシグナリングに関連したいくつかの技法を導入する。開示する技法は、個々に適用されてよく、または、別途記載がない限り、任意の組合せで適用されてもよい。以下の技法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかによって適用され得る。いくつかの事例では、ビデオデコーダ30が、ビデオエンコーダ20によって実施される符号化処理とは逆の復号プロセスを実施し得る。一例として、ビデオエンコーダ20が特定の情報を送信する場合、ビデオデコーダ30は、そのような情報を受信し得る。MPMリストを組み立てるケースでは、ビデオエンコーダ20およびビデオデコーダ30は、同じリストを組み立てるために同じ技法を実施し得る。
【００５０】
本開示の技法によると、ビデオエンコーダ20およびビデオデコーダ30は、すべてのイントラコード化ブロックが同じ利用可能なイントラモードを有するわけではないように、可変数のイントラモードを使うように構成され得る。図5は、本開示の例による、JEMに含まれ得るイントラ予測モードの例を示す概念図である。図5は、本開示によって導入される131個のイントラモードを示す。図5における数2、34、66、98、および130は、角度モードについてのモードインデックスを表し、数0および1はそれぞれ、平面およびDCモードについてのモードインデックスを表す。図5において明示的には示さないが、他の角度モードも、関連付けられたインデックスを有する。実線(たとえば、参照番号53で標示されるモード)は、HEVCにおける35個のモード(33個の角度モードに、DCおよび平面を加えたもの)を表す。JEMの現在の実装は、67個のイントラモードを利用し、追加モードは、33個のHEVC角度モードの中間の追加角度モードに対応する。参照番号55で標示されるモードは、現在のバージョンのJEMに含まれる追加モードの例である。本開示は、33個のHEVC角度モードと追加の32個のJEM角度モードとの間に追加モードを追加することを提案する。参照番号57で標示されるモードは、本開示によって提案される追加角度モードの例である。
【００５１】
ただし、イントラモード予測方向の数を増すだけでは、コーディング性能を向上するのに役立たない場合があり、というのは、方向の数が増大されると、追加変動性によりオーバーヘッドシグナリングも増大するからである。第2に、イントラモード方向のさらなる多様性は、すべてのブロックサイズにとって効率的なわけではない。たとえば、小さいブロックサイズにとっては、より小さいオーバーヘッドにより、より少ないイントラ方向が好ましい場合があり、より大きいブロックにとっては、より多くのイントラ方向がより有利であり得る。
【００５２】
一例では、ビデオエンコーダ20およびビデオデコーダ30は、コーディングされるブロックのサイズ(たとえば、高さおよび幅)に依存して、モードの様々なグループ分けを利用し得る。イントラモードの数は、ブロックサイズ、またはブロック面積(幅*高さ)ごとにシグナリングされ得る。ブロックサイズまたはブロック面積ごとの、イントラモード方向の選択された数は、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ、ブロックのグループの中で、CTUレベルで、ブロックレベルで、または他の所でシグナリングされ得る。一例では、イントラモード方向の数のシグナリングは、SPS中で行われ得る。
【００５３】
一例では、イントラモードの数をシグナリングするために、ビデオエンコーダ20は、ブロックサイズまたはブロック面積を示す閾値をシグナリングしてよく、閾値よりも小さいか、または同程度のブロック用に、ビデオエンコーダ20は、ある特定の数のイントラモードを使い得る。閾値は、デフォルト数に相対して、またはシグナリングされるべき閾値と、最も小さい可能ブロックサイズもしくは面積との間の差としてシグナリングされ得る。たとえば、最も小さいブロックサイズは4×4であり得るので、log2(イントラモードの特定の数に対応するブロックサイズ)-log2(4)がシグナリングされる。4の代わりに、どの他のサイズが使われてもよい。シグナリングにおける最も小さいブロックサイズは、以下で説明するように、シグナリングが示すイントラモードの数に依存し得る。
【００５４】
上述したように、様々なブロックサイズが、異なる数のイントラモードを有し得る。たとえば、ブロックサイズまたはブロック面積を示す第1の閾値がシグナリングされ、ブロックサイズまたはブロック面積が第1の閾値よりも小さいか、またはそれ以下の場合、イントラモードの数は第1の数に等しい。たとえば、第1の閾値は32(ブロック面積)であってよく、シグナリングされる値はlog2(32)-log2(16)=1であり、16は4×4ブロックの面積であり、この例では、第1の数のイントラモード用の最も小さいブロックと見なされ、第1の閾値32と同程度の面積をもつブロック用には、たとえば35個のイントラモードに等しい、第1の数のイントラモードが使われてよい。
【００５５】
同様に、ビデオエンコーダ20は、第2の数のイントラモードが使われることを示すための第2の閾値をシグナリングし得る。たとえば、第2の閾値は256に等しく設定されてよく、シグナリングされる値はlog2(256)-log2(64)=2であり、64は、8×8ブロックの面積であり、この例では第2の数のイントラモード用に最も小さく設定され、第2の数のイントラモードは、たとえば、67個のモードに等しく設定される。第2の閾値よりも小さいか、またはそれ以下のブロック用には、第1の閾値との比較を行う間にイントラモードの数がすでに割り当てられたブロックを任意選択で除いて、第2の数のイントラモードが使われてよい。
【００５６】
他のブロックは、デフォルト数のイントラモード、たとえば131個のイントラモードを使用してよい。上の例は、以下の表で要約され得る。
【００５７】
【表２】
2019530367.tif 000004
【００５８】
一例では、シグナリングされる閾値は、ピクチャサイズ(たとえば、ピクチャ解像度)に依存し得る。一例では2つの閾値が利用され得るが、2つよりも多いか、または少ない閾値が、他の数のイントラモードとともに使われ得る。別の例では、イントラモードの数は、限定されるものではないが、ブロック幅および/または高さ、ブロック幅(高さ)に対する高さ(幅)の比、参照サンプルのどのラインがイントラ予測に使われるか、ピクチャ依存予測組合せ(PDPC)(2017年3月30日に公開された米国特許公開第2017/0094285号に記載されている)、拡張型複合変換(EMT:enhanced multiple transform)(2016年7月28日に公開された米国特許公開第2016/0219290号に記載されている)または1次変換のタイプ、非分離型2次変換(NSST:non-separable secondary transform)(両方とも2017年3月30日に公開された、米国特許公開第2017/0094313号および米国特許公開第2017/0094314号に記載されている)または2次変換モードのタイプが現在ブロックに適用されるかどうか、現在ブロックがイントラスライスそれともインター(PまたはB)スライス中でコーディングされているか、隣接する再構築値、隣接イントラモードを含む、他の復号された情報に依存してよい。たとえば、隣接ブロックのほとんどが平面またはDCモードを使用している場合、現在ブロックは、現在ブロック用のデフォルト数よりも小さい数のイントラモードを使用してよく、そうでない場合、デフォルト数のイントラモードが現在ブロックに適用される。
【００５９】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、符号化および復号プロセス中にイントラモードの数を更新することができる。たとえば、選択されたイントラモードとしてどれだけ頻繁にMPMモードが使われているかをカウントするのにカウンタが使われてよく、MPMモードが非常に頻繁に使われる場合、イントラモードの総数は削減され(たとえば、131から67に削減され)てよく、そうではなく、MPMモードが頻繁には使われない場合、イントラモードの総数は増大され(たとえば、35から67に増大され)てよい。
【００６０】
MPMの数は、イントラモードの総数に依存し得る。たとえば、イントラモードの総数が第1の値、たとえば67などに等しい場合、ある数のMPM、たとえば6などが、イントラモードコーディングに使われてよい。イントラモードの総数が第2の値、たとえば131などに等しい場合、第2の数のMPM、たとえば7または5つなどのMPMが、イントラモードコーディングに使われてよい。
【００６１】
使われるイントラ補間フィルタ(タイプおよび長さ)は、イントラモードの総数に依存し得る。たとえば、イントラモードの総数が第1の数、たとえば67に等しい場合、たとえば4タップA3次補間フィルタなど、特定のフィルタ長をもつ第1のフィルタが適用されてよく、次いで、第2の数、たとえば131などに等しいイントラモードの総数には、たとえば6タップ6次補間フィルタなど、別のフィルタ長をもつ別のフィルタが適用されてよい。
【００６２】
イントラモードの数が67から131個のモードに増大されると、モード依存イントラ平滑化の閾値は、たとえば、2倍の数の角度方向のためには閾値を2で乗算することなどによって、増大した数の方向のために拡張されてよい。
【００６３】
本開示の技法によると、ビデオエンコーダ20およびビデオデコーダ30は、イントラモードコンバージョンを実施するように構成され得る。複数のイントラモードが使われ得るので、イントラモードは、ある範囲のイントラモードから別の範囲へコンバートされる必要があり得る。たとえば、現在ブロックは131個のモードを使い得るが、ネイバーブロックは67個のモードを使い得る。MPMリストが現在ブロック用に組み立てられると、ネイバーブロック用に使われるイントラモードの数が異なる場合、イントラモードは、現在の数のイントラモードを使うイントラモードにマップされ得る。
【００６４】
たとえば、ネイバーブロックが水平モードを有する場合があり、水平モード番号は、35個のイントラモードがある10、67個のイントラモードがある18、および131個のイントラモードがある34である。したがって、ネイバーブロックが67個のイントラモードを使う場合、ビデオエンコーダ20および/またはビデオデコーダ30は、水平モード番号10または18を、たとえば、34にマップすればよい。
【００６５】
一例では、イントラモードの選ばれたサブセット、たとえば131個のモードからの67個のモードが、1つおきの第2のモード(DCおよび平面を除く)を含まない場合がある。言い換えると、選ばれたサブセットは、JEMにおいて現在利用されている67個のモードのみを含み、本開示によって提案される追加の64個の角度モードは含まない場合がある。一例では、1つおきの第2のモードの選択は、角度モードにのみ該当する場合があり、平面(モード0)およびDCモード(モード1)は通常、より頻繁であり、より小さいサブセット中に常に含まれ得る。一例では、画像の特性と最良適合する、67個のモードのサブセットが、131個のモードから、たとえば、オフライン実験および/またはトレーニングにたとえば基づいて選択され得る。67個のモードをこのようにして選択すると、予測精度を改善することができ、このことが、向上したコーディング性能につながり得る。選択された67個のモードはルックアップテーブル(LUT)に記憶され得る。より大きいイントラモードセット(すなわち、131個のモード)からより小さいイントラモードセット(すなわち、67個のモード)への、およびその反対のマッピングは、ルックアップテーブルを使用して実施され得る。同様の方法が、131個のモードから35個のモードのサブセットを選択するために適用されてよく、ルックアップテーブルが、このマッピングを実施するのに使われ得る。
【００６６】
ビデオエンコーダ20および/またはビデオデコーダ30は概して、ルックアップテーブルに従ってマッピングまたはコンバージョンプロセスを実施することができ、入力またはあるインデックスは、コンバートされるべきモードであり、出力または第2のインデックスは、コンバートされたモードである。コンバージョンは、両方向で、すなわち、より大きいイントラモードセットからより小さいセットへ、またはより小さいセットからより大きいセットへ行われ得る。より小さいイントラモードセットは、より大きいイントラモードセットのサブセットであってよく、イントラモードのより大きいセットは、より小さいイントラモードセットのスーパーセットであってよい。たとえば、より大きいセットの最も頻繁に使われるモードに基づいて、または選択された方向の近隣に基づいて、サブセットが導出され得る。選択された方向は、たとえば、水平、垂直、対角線または他のモードであってよい。最も頻繁に使われるモードのいくつかの例は、DCモードまたは平面モードであり得る。
【００６７】
一例では、ブロックとともに記憶されるイントラモードは、ブロックが、比較的小さい数のイントラモードを使うとしても、最も大きい数のイントラモード、たとえば131個のイントラモードによって表されるモード数に設定され得る。最大数のイントラモードによって表されるモードから、ブロック用に使われる所望の数のイントラモード内のモードへのマッピングまたはコンバージョンプロセスが、実際のモードを導出するために実施され得る。
【００６８】
マッピングまたはコンバージョン規則は、ビデオエンコーダ20およびビデオデコーダ30向けに固定されてよく、または、たとえば、インデックスをシグナリングする規則のリストを使用して、ビットストリーム中で示すことができる。別の例では、コンバージョン規則は、符号化および復号プロセス中に更新されてよい。
【００６９】
一例では、LUTベースのマッピングを使う代わりに、マッピングプロセスは、閉形式表現に基づいてよい。131個のモードによって表されるモードを、67個のモードによって表されるモードにコンバートするために、shift=1とセットすることによって、(((mode-2)>>shift)<<shift)+2が適用されてよく、これは、ゼロにより近い、最も近い1つおきのモードに向かって丸まる。67個のモードは、たとえば、図5のライン53および55によって参照されるモードを含むことになるが、ライン57によって参照されるモードは含まない。同様に、一例では、コンバージョンが131から35個のモードへ行われる場合、シフト値は、1ではなく2であってよい。この例では、モードは、図5のライン53によって参照されるモードを含むことになるが、ライン55および57によって参照されるモードは含まない。別の例では、1<<(shift-1)というオフセット値が、最も近いモードに丸まるように、右シフト演算の前に追加されてよい。非角度モード(DCおよび平面)の数によりマイナス2が追加されてよく、というのは、非角度モードは、角度方向の数が増大されたときは拡張されない場合があり、イントラモードの数にかかわらず、それぞれ、DCおよび平面モードにマップされ得るからである。
【００７０】
一例では、すべてのネイバーイントラモードが現在ブロック用に適用可能であり得るわけではないので、マッピングはMPMリスト構築中に行われ得る。また、導出されるモードを算出するとき、MPMリスト導出におけるステッププラスまたはマイナス1が、たとえば、131個のイントラモードすべてを使うブロック用に使われ得る。別の例では、2倍小さい数のモード(67)用にはプラスまたはマイナス2が使われてよく、4倍小さい数のイントラモード(35)用には、ステッププラスまたはマイナス4が使われてよく、以下同様である。導出されるモードを算出するのに、ステッププラスまたはマイナス2、プラスまたはマイナス4が使われるとき、たとえば、閉形式表現に基づくか、またはLUTに基づくマッピング規則などのマッピング規則が適用され得る。
【００７１】
一例では、より小さいイントラモード(たとえば、67)の固定セットを使うよりもむしろ、コーディングする間にイントラモードを選択するのに、適応型方法が使われてよい。エンコーダ20およびデコーダ30は、たとえば、同じ方法を使用して、初期セットから始まるイントラモードセットを更新する。一例では、ビデオエンコーダ20は、イントラモードの初期セットから始め得る。初期セットは、どのセットであっても、たとえば、上述したように、オフライン実験から、またはより大きいモードを均一にサンプリングすることから学習されたセットであってよい。次いで、エンコーダ20は、すでにコーディングされた領域中で起きた、頻繁に使われる、および頻繁には使われないコーディングモードの両方を、より大きいイントラモードセット(たとえば、131)中で追跡することができる。次いで、頻繁に使われるイントラモードを追加し、頻繁でないイントラモードを削除することによって、初期セットが更新され得る。更新プロセスは、たとえば各CU、PU、TU、もしくはCTUまたはブロックもしくはユニットのグループ用に、様々な粒度レベルで実施されてよい。すでにコーディングされた領域に基づいて更新ステップが実践されるとき、デコーダ30は同じ方法に従えばよい。
【００７２】
さらに、現在ブロックに対して適用されるイントラ補間フィルタは、イントラモードコンバージョン/マッピングプロセスに依存し得る。イントラモードコンバージョンまたはマッピングは、より多数のイントラモードによって表されるモード用に、より小さい数のイントラモードによって表されるモードにコンバートするために行われてよく、たとえばモードが、131個のイントラモードのセットから、67個のイントラモードのセットからのモードにマップされ得る。コンバージョン中、マップされるべきイントラモード方向がより小さいモードセット中に存在しないときなどは、マップされるべきモードおよびマップされたモードのイントラモード方向は必ずしも合致しなくてよい。ただし、イントラモード情報に基づいて導出または適用される、いくつかの他のパラメータまたは導出プロセスがあってよい。一例では、より大きいセットからのモードが、マップまたはコンバートされたイントラモードを使う代わりに、そのようなパラメータを導出するのに使われ得る。たとえば、イントラ補間フィルタ(たとえば、イントラ予測を実施するための非整数サンプルを導出するのに使われる)がイントラモードに依存してよく、そのような事例では、より大きいイントラセットからのコンバートされていないモードが、フィルタを決定するのに使われてよい。このイントラ補間フィルタ選択方法を用いると、予測精度を向上することができるが、イントラモードの総数は変えられなくてよい。
【００７３】
さらに、上述したマッピング規則は、PDPC、EMTまたは1次変換、NSSTまたは2次変換およびそれ以外など、イントラモードに関連した他のツール用にも使われ得る。
【００７４】
ビデオエンコーダ20およびビデオデコーダ30は、以下でより詳しく説明する、様々なイントラモードコーディング技法を実施するように構成され得る。異なる数のイントラモードが使われ得るとき、モードをシグナリングするために、MPMリストサイズも変わり得る。別の例では、MPMリストサイズはすべてのイントラモード用に同じであってよい。モードのより小さいセット(たとえば、67または35)がLUT中に記憶されているとき、モードに対応する、LUTのインデックスが、モード値自体の代わりにシグナリングされ得る。デコーダ30は、復号されたインデックスから、およびLUTを使用して、実際のモードを復号することができる。
【００７５】
モードがMPMでない場合、モードは、たとえば、現在JEMにおいて使われているように、選択されたモードセットからのモードであるものとして、または選択されたモードセットからではないモードであるものとして、さらに分類され得る。同様に、選択されるモードの数は、イントラモードの数に依存して変わり得る。たとえば、選択されるモードの数は、131個のモードに対しては32、67個のモードに対しては16、35個のモードに対しては8であってよい。コーディングされるべきモードが、選択されたモードのうちの1つである場合、モード値自体ではなく、選択されたモードセット中のモードのインデックスがシグナリングされ得る。
【００７６】
同様に、非選択モードについての最大モード数は、イントラモードの使われる数に依存して変わり得る。たとえば、最大モード数は、131個のモードおよび6というMPMリストサイズに対しては93個のモード、67個のモードおよび6つのMPMモードに対しては45、35個のモードおよび6つのMPMモードに対しては21であってよい。概して、モード値は、(モードの数)-(MPMモード)-(選択されたモードの数)として算出することができる。
【００７７】
モードをシグナリングするために、MPMリストへ含められるモードおよびシグナリングされるべきモードは、最も大きい数のイントラモード(131)によって表されるモードから、所望の数のイントラモードによって表されるモードにコンバートされ得る。この例では、モードがMPMでない場合、シグナリングされるべきイントラモード値は、HEVCおよびJEMにおいて現在行われているMPMモードを減算することによって調節され得る。
【００７８】
クロマ成分は、ルーマ成分用に使われるイントラモード(DMモード)を、クロマイントラ予測を導出するために適用することができる。この例では、クロマ成分用に使われるイントラモードは、クロマ用に使われるモードの数に対応するイントラモードにコンバートされ得る。クロマ用に使われるモードの数は、ブロックサイズまたはブロック面積依存であってよい。たとえば、対応するルーマ成分からのブロックのイントラモードであり、あるイントラモード範囲(たとえば、131)からであるが、対応するクロマブロックは別のイントラモード範囲(たとえば、67)からのモードを有し得るDMモードでは、ルーマモードは、たとえば上記例において記載したように、クロマイントラ予測を導出するのに先立って、131というモードから67というモードにコンバートされ得る。異なるルーマおよびクロマブロックサイズは、たとえば、ルーマおよびクロマ成分が別々にコーディングされるが、クロマ成分をコーディングするのにルーマ情報が使われ得るときに生じ得る。別の例では、コンバートされていないイントラモードが使われ得るが、というのは、クロマイントラモードシグナリングはイントラモードの総数に依存しなくてよく、ルーマイントラモードが使われ得るかどうかを示すフラグがシグナリングされ得るからである。
【００７９】
MPMリストサイズが、たとえば、6個のモードから7個のモードなどに増大され得る。MPMインデックスをコーディングするために、MPMインデックスを表すのに使われる2値化は、たとえば、MPMインデックスに依存して異なり得る。たとえば、ある2値化方法が、より小さい、すなわち特定の閾値よりも小さいMPMインデックス用に使われてよく、別の2値化方法が他のMPMインデックス用に使われてよく、ここで、他のMPMインデックスは、実際のMPMインデックスマイナス閾値としてコーディングされ得る。一例では、単項または短縮単項コードが第1の2値化方法として使われてよく、固定長バイナリコードまたは短縮バイナリコードが第2の2値化方法として使われてよい。
【００８０】
上述したMPMリストに加え、ビデオエンコーダ20およびビデオデコーダ30は、2次MPMリストを組み立てるようにも構成され得る。上述したように、選択されたモードは、イントラモードの可能範囲から均一に選択され得る。本開示では、選択されたモードは、MPMモードから導出されてよく、したがって2次MPMリストを作成する。
【００８１】
2つのMPMリストを使うとき、ビデオエンコーダ20は、たとえば、ビデオのブロックをコーディングするのに使われる実際のイントラ予測モードが第1のMPMリストに含まれているかどうかを示す第1のシンタックス要素を生成することができる。実際のイントラ予測モードが第1のMPMリストに含まれている場合、ビデオエンコーダ20は、第1のリスト中のどのエントリが実際のイントラ予測モードに対応するかを示すシンタックス要素を生成することができる。実際のイントラ予測モードが第1のMPMリストに含まれていない場合、ビデオエンコーダ20は、ビデオのブロックをコーディングするのに使われる実際のイントラ予測モードが第2のMPMリストに含まれているかどうかを示す第2のシンタックス要素を生成すればよい。実際のイントラ予測モードが第2のMPMリストに含まれている場合、ビデオエンコーダ20は、第2のリスト中のどのエントリが実際のイントラ予測モードに対応するかを示すシンタックス要素を生成することができる。実際のイントラ予測モードが第2のMPMリストに含まれていない場合、ビデオエンコーダ20は、残りのモードのうちのどれが実際のイントラ予測モードに対応するかを示すシンタックス要素を生成すればよい。ビデオエンコーダ20と同じ第1および第2のMPMリストを生成することによって、およびビデオエンコーダ20によって生成された様々なシンタックスを受信することによって、ビデオデコーダ30は、ブロックをコーディングするのに使われるイントラ予測モードを決定することができる。
【００８２】
各MPMモードから導出されるモードの数は、MPMインデックスに依存してよく、またはモードは、すべてのMPMから均一に導出され得る。たとえば、MPMモード0に対しては、4つの2次モードが導出される。ビデオエンコーダ20およびビデオデコーダ30は、たとえば、オフセット-+1、-+2、-+3、...をMPMモード0値に適用することによって、2次モードを導出することができる。いくつかの実装形態では、ビデオエンコーダ20およびビデオデコーダ30は、一意のモード、すなわち、MPMリストまたは2次MPMリストのいずれかにまだ追加されていないモードを、2次MPMリストに含めるだけでよい。この導出は、すべてのMPMモード用に、またはいくつかのMPMモード用にのみ、繰り返すことができる。たとえば、MPMモード1用に、プロセスは繰り返し、3つの2次一意のモードが、たとえば、導出され、2次MPMリストに追加され、最後のMPMモードまで続いてよい。概して、導出は、すべての可能イントラモードから、所与のモードの辺りのモードのサブセットを選択するものとして記述され得る。
【００８３】
導出される2次モードの数は、MPMモードインデックスに依存してよく、導出されるモードの数は、MPMモード0またはより小さいMPMインデックスを有するモード用に最も大きくてよい。たとえば、導出されるモードの数は、6つのMPMモード用には{4,3,3,2,2,2}であり、ここで各値は、各MPMモードから導出される2次モードの数であり、すなわち、4つのモードが第1のMPMモードから導出され、3つのモードが第2および第3のMPMモードから導出され、2つのモードが、第4以降のMPMモードから導出される。
【００８４】
別の例では、導出は、いくつかのMPMモードにのみ適用され得る。たとえば、導出は、角度モード(DCでも平面でもないモード)にのみ適用され得る。概して、導出は、MPMモードのサブセットに適用され得る。上記例では、{4,3,3,2,2,2}が、角度MPMモード(たとえば、平面でもDCでもない)に適用されるだけであり、ここで各値は、各角度MPMモードから導出される2次モードの数である。別の例では、すべてのMPMモードが、2次モードを生成するのに使われるわけではない。この例では、隣接ブロックからのMPMモードのみが関与し得る。
【００８５】
MPMモードに基づいて生成された2次モードが、第2のMPMリストを完全に満たすことができないことが可能であり得る。したがって、デフォルトの2次MPMリストが、リスト中の残りのモードを埋めるのに使われ得る。一例では、このデフォルトの第2のMPMリストは、サブサンプリング角度モードによって、たとえば、任意選択で毎回2倍にされ得るサブサンプルステップサイズを用いて均一に導出され得る。たとえば、65個の角度モードに対して、デフォルトの第2のMPMリストは{2,18,34,50,66;10,26,42,58;6,14,22,30,38,46,54,62,など}であってよく、ここで初期ステップサイズは16または8であってよい。上述したように、2次MPMリスト中のモードの数は、現在ブロック用に使うことができるイントラモードの数に依存し得る。
【００８６】
別の例では、イントラモードが、選択されたモードのうちの1つであることを示すためのフラグまたはインデックスをシグナリングする代わりに、実際のモードがサブセットに属することを示すフラグを、ビデオエンコーダ20は生成し、ビデオデコーダ30は受信し得る。サブセットの数は2以上であってよく、サブセットのサイズは異なってよい。たとえば、対角線モードの後のモード(垂直のようなモード)は垂直サブセットの中に置けばよく、他のモードは水平サブセットの中に置けばよい。フラグまたはインデックス(2よりも多いサブセットが使われる場合)は、コーディングされるべきモードがどのサブセットに属するかを示す。第2のステップとして、コーディングされるべきモードはMPMモードではないので、その選ばれたサブセットに属するすべてのMPMモードがサブセットから削除されてよく、したがってサブセットサイズが削減される。その後、サブセット中のモード値またはモードインデックスが、短縮2値化を使用してシグナリングされてよく、たとえば、max値がサブセットサイズであってよい。フラグまたはインデックスはコンテキストコーディングされてよく、コンテキストは、サブセットタイプもしくはサブセットインデックスに、MPMリスト中のモードに依存してよく、またはイントラモードサブセット中に含まれるイントラモードの数に依存してよい。
【００８７】
イントラ予測モードをシグナリングするために、ビデオエンコーダ20およびビデオデコーダ30は、MPMとコンテキストモデリングのスワップを実施するようにも構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、ブロック形状に基づいてモードをスワップするように構成され得る。JEMでは、矩形ブロックはイントラコーディング、すなわち水平(ブロックの高さがブロックの幅よりも小さい)および垂直(ブロックの高さがブロックの幅よりも大きい)用に使われ得る。
【００８８】
現在ブロックのネイバーブロック位置および形状によっては、ネイバーイントラモード(たとえば、隣接ブロック用に使われるイントラモード)がより頻繁に選ばれ得る。同様に、現在ブロック形状によっては、いくつかのイントラモード方向が、より好ましい場合がある。たとえば、左ネイバーブロックからのイントラモードまたは垂直角度モード(たとえば、67個のイントラモードのケースには、図4に示される対角線モード34よりも大きいインデックスをもつモード)が、垂直形状ブロックにはより好ましい場合があり、同様に、上ネイバー用のイントラモードまたは水平イントラモード(たとえば、67個のイントラモードのケースには、図4に示される対角線モード34未満のインデックスをもつ角度モード)が、水平形状ブロックにはより好ましい場合がある。
【００８９】
したがって、ビデオエンコーダ20およびビデオデコーダ30は、イントラモードコーディング中にブロック形状を考慮すればよい。たとえば、MPMリストへ含められるモードまたは割り当てられるMPMインデックスは、現在ブロック形状および/またはMPMモードが好まれるイントラモードからどれだけ離れているかに依存してよく、好まれるモード(たとえば、水平または垂直モードなど)は、上述したように現在ブロック形状に依存してよい。たとえば、垂直形状ブロックに対しては、第1の2つのMPMが両方とも角度である場合、好まれるモード、たとえば垂直モードにより近い一方が、第1のMPMとして設定されてよく、他方は第2のMPMとして設定されてよい。同様に、第1または2次MPMリスト中に含まれない他のイントラモードをシグナリングするとき、イントラモードは、垂直および水平方向のためのモードなど、好まれるモードからのモードの距離に基づいてコードワードを割り当てられ得る。一例として、垂直ブロックに対して、垂直方向により近いイントラモードが、垂直方向からより離れているモードよりも短いコードワードを割り当てられ得る。
【００９０】
一例では、あるブロック形状に対応する好まれるモードは、シグナリングの前に、別のブロック形状に対応する好まれるモードにマップされ得る。それらの好まれるモードは、より小さいモードインデックスを有し得るか、またはより短いコードワードを割り当て得る。このようにして、異なるブロック形状の好まれるモードが、一緒にコーディングされ、任意選択で同じコンテキストモデリングを共有することができ、結果として潜在的に、より効率的なコーディングとなり得る。たとえば、垂直イントラモード方向(たとえば、より大きいモードインデックスをもつモード)が、イントラモードシグナリングの前に、水平イントラモード方向(たとえば、より短いモードインデックスをもつモード)にマップされ得る。一例では、これはインデックス再マッピングによって遂行することができ、ここでは、たとえば、ModeIndexをもつモードに対しては、NewModeIndexへの再マッピングが、NewModeIndex=MaxModeIndex-ModeIndexとして行われてよく、ここでMaxModeIndexは、最も大きいイントラモードインデックスである。
【００９１】
ビデオデコーダ30は、たとえばいくつかのブロック形状に対して、水平方向を垂直方向にマップし戻すために、逆マッピングを実施し得る。一例では、記載されるマッピングは、幅以上の高さを有するブロックに対してなど、選択されたブロック形状またはブロックサイズに対してのみ適用され得る。
【００９２】
正方形ブロックに対しては、隣接ブロックからのMPMが、利用可能であり一意であるとき、モードの選ばれたサブセットに属するモードを選好することによって並べ替えられてもよい。たとえば、MPM1が第1のセット{平面、DC、2、水平、垂直、diagonal1、diagonal2}に属し、MPM0がそのセットには属さない場合、MPM0とMPM1がスワップされる。この例では、モードdiagonal1およびdiagonal2は、それぞれ、一例では、図4のイントラモード2および66などの対角線イントラモードに対応し得る。
【００９３】
ビデオエンコーダ20およびビデオデコーダ30は、コンテキストグループ化を実施するように構成され得る。現行のJEMでは、MPMインデックスコーディングについてのコンテキストは、3つのグループ、すなわち平面およびDC(非角度セット)、水平セット(左下から右上への対角線方向からのモードから、対角線モードまでを含む)、および垂直セット(対角線モードから、右上から左下への対角線方向まで)に分けられる。
【００９４】
コンテキストセットは、イントラMPMモード方向および/もしくは現在ブロック形状、ならびに/またはMPMリスト中のMPMモードの数に基づいて改良され得る。
【００９５】
たとえば、イントラモードの総数が67であるとき(図4)、MPMインデックスについてのコンテキストは、以下のテーブルに示すように、コンテキストモデルが、好ましいイントラモード、たとえば垂直または水平方向までの距離に依存するようにグループ化され得る。
【００９６】
【表３】
2019530367.tif 000005
【００９７】
一例では、より一般的な手法において、MPMインデックスをコーディングするのに使われるコンテキストが、デフォルトまたはあらかじめ選択されたイントラモードからの特定のMPMモード(特定のMPMインデックスをもつモード)の距離、言い換えると、現在のMPMモードがデフォルトモードからどれだけ離れているかに従って割り当てられる。それらのデフォルトモードは、たとえば、水平、垂直、対角線またはどの他の方向であってもよい。
【００９８】
図6は、本開示に記載される技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施することができる。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または除去するために空間予測に依存する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間冗長性を低減または除去するために時間予測に依存する。イントラモード(Iモード)とは、いくつかの空間ベース圧縮モードのうちのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードとは、いくつかの時間ベース圧縮モードのうちのいずれかを指し得る。
【００９９】
図6の例では、ビデオエンコーダ20は、ビデオデータメモリ33、区分ユニット35、予測処理ユニット41、加算器50、変換処理ユニット52、量子化ユニット54、エントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット(MEU)42、動き補償ユニット(MCU)44、およびイントラ予測ユニット46を含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62と、フィルタユニット64と、復号ピクチャバッファ(DPB)66とを含む。
【０１００】
図6に示すように、ビデオエンコーダ20は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ33に記憶する。ビデオデータメモリ33は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ33内に記憶されるビデオデータは、たとえば、ビデオソース18から取得される場合がある。DPB66は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する、参照ピクチャメモリであり得る。ビデオデータメモリ33およびDPB66は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成される場合がある。ビデオデータメモリ33およびDPB66は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ33は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１０１】
区分ユニット35は、ビデオデータメモリ33からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分化は、スライス、タイル、または他のより大きい単位への区分化、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分化を含む場合もある。ビデオエンコーダ20は、全体的に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロック(および、場合によっては、タイルと呼ばれるビデオブロックのセット)に分割される場合がある。予測処理ユニット41は、エラー結果(たとえば、コーディングレートおよびひずみのレベル)に基づいて、現在ビデオブロックのために、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択することができる。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に、得られたイントラまたはインターコード化ブロックを提供し得る。
【０１０２】
予測処理ユニット41内のイントラ予測ユニット46は、空間圧縮を実現するために、コーディングされるべき現在ブロックと同じフレームまたはスライス内の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実施することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を実現するために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実施する。
【０１０３】
動き推定ユニット42は、ビデオシーケンス用の所定のパターンに従って、ビデオスライス用のインター予測モードを決定するように構成される場合がある。所定のパターンは、シーケンス内のビデオスライスをPスライスまたはBスライスとして指定することができる。動き推定ユニット42および動き補償ユニット44は、高度に集積される場合があるが、概念的な目的のために別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。
【０１０４】
予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明したブロックである。いくつかの例では、ビデオエンコーダ20は、DPB66内に記憶された参照ピクチャのサブ整数ピクセル位置のための値を計算してよい。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力することができる。
【０１０５】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスの中のビデオブロックのPU用の動きベクトルを計算する。参照ピクチャは、その各々がDPB66に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送信する。
【０１０６】
動き補償ユニット44によって実施される動き補償は、場合によっては、サブピクセル精度への補間を実施する、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴う場合がある。現在ビデオブロックのPUに対する動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算してピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
【０１０７】
予測処理ユニット41が、イントラ予測またはインター予測のいずれかを介して現在ビデオブロック用の予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含められ、変換処理ユニット52に適用される場合がある。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域にコンバートすることができる。
【０１０８】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実施し得る。別の例では、エントロピー符号化ユニット56が走査を実施する場合がある。
【０１０９】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化の方法もしくは技法を実施することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されるか、または後の送信もしくはビデオデコーダ30による取出しのためにアーカイブされる場合がある。エントロピー符号化ユニット56は、コーディングされている現在ビデオスライスの動きベクトルおよび他のシンタックス要素をエントロピー符号化することもできる。
【０１１０】
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ、逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するための、ピクセル領域における残差ブロックを再構築する。動き補償ユニット44は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することにより、参照ブロックを計算することができる。動き補償ユニット44は、再構築残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算することもできる。加算器62は、再構築されたブロックを生成するために、再構築された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算する。
【０１１１】
フィルタユニット64は、再構築ブロック(たとえば、加算器62の出力)をフィルタリングし、フィルタリングされた再構築ブロックを参照ブロックとして使用するためにDPB66に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。フィルタユニット64は、デブロックフィルタリング、SAOフィルタリング、および/もしくはALF、ならびに/または他のタイプのループフィルタなど、どのタイプのフィルタリングも実施することができる。デブロックフィルタは、たとえば、ブロック境界をフィルタリングして再構築ビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタリングを適用し得る。
【０１１２】
図7は、本開示に記載される技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。図7のビデオデコーダ30は、たとえば、図6のビデオエンコーダ20に関して上述したシグナリングを受信するように構成され得る。図7の例では、ビデオデコーダ30は、ビデオデータメモリ78、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB94を含む。予測処理ユニット81は、動き補償ユニット82、イントラ予測ユニット84を含む。ビデオデコーダ30は、いくつかの例では、図6からのビデオエンコーダ20に関して記載された符号化パスとは全体的に逆の復号パスを実施することができる。
【０１１３】
復号プロセスの間に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ30は、受信された符号化ビデオビットストリームをビデオデータメモリ78に記憶する。ビデオデータメモリ78は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ78に記憶されたビデオデータは、たとえば、記憶デバイス26から、またはカメラなどのローカルビデオソースから、または物理的データ記憶媒体にアクセスすることによって、リンク16を介して取得され得る。ビデオデータメモリ78は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。DPB94は、たとえば、イントラコーディングモードまたはインターコーディングモードにおいて、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ78およびDPB94は、DRAM、SDRAM、MRAM、RRAM(登録商標)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ78およびDPB94は、同じメモリデバイスまたは別個のメモリデバイスによって提供される場合がある。様々な例では、ビデオデータメモリ78は、ビデオデコーダ30の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【０１１４】
ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ78に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81にフォワードする。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。
【０１１５】
ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの、前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックに対する予測データを生成し得る。ビデオフレームがインターコード化スライス(たとえば、BスライスまたはPスライス)としてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックについての予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成される場合がある。ビデオデコーダ30は、DPB94に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、リスト0およびリスト1を構築し得る。
【０１１６】
動き補償ユニット82は、動きベクトルおよび他のシンタックス要素を構文解析することにより、現在ビデオスライスのビデオブロックについての予測情報を特定し、予測情報を使用して、復号されている現在ビデオブロック用の予測ブロックを生成する。たとえば、動き補償ユニット82は、受信されたシンタックス要素のうちのいくつかを使用して、現在ビデオスライス内のビデオブロックを復号するために、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数のための構築情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測状態、および他の情報を特定する。
【０１１７】
動き補償ユニット82は、補間フィルタに基づいて補間を実施することもできる。動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって使用されたような補間フィルタを使用して、参照ブロックのサブ整数ピクセル用の補間値を計算することができる。このケースでは、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０１１８】
逆量子化ユニット86は、ビットストリーム中で与えられエントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、量子化解除(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス内のビデオブロックごとの、ビデオエンコーダ20によって計算された量子化パラメータの使用を含む場合がある。逆変換処理ユニット88は、ピクセル領域内の残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１１９】
予測処理ユニットが、たとえばイントラ予測またはインター予測を使用して現在ビデオブロックの予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、再構築ビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。フィルタユニット92は、たとえば、1つまたは複数のフィルタ技法を使用して、再構築ビデオブロックをフィルタリングする。
【０１２０】
フィルタユニット92は、再構築ブロック(たとえば、加算器90の出力)をフィルタリングし、フィルタリングされた再構築ブロックを参照ブロックとして使用するためにDPB94に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き補償ユニット82によって使用され得る。フィルタユニット92は、デブロックフィルタリング、SAOフィルタリング、および/もしくはALF、ならびに/または他のタイプのループフィルタなど、どのタイプのフィルタリングも実施することができる。デブロックフィルタは、たとえば、ブロック境界をフィルタリングして再構築ビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタリングを適用し得る。
【０１２１】
図8は、本開示に記載される例示的ビデオコーディング技法を示す流れ図である。図8の技法は、たとえば、ビデオデコーダ30などのビデオデコーダに、またはビデオエンコーダ20などのビデオエンコーダに対応し得る汎用ビデオコーダを参照して記載される。図8の例では、ビデオコーダは、ビデオデータの第1のブロックがイントラモードコーディングされると判断する(100)。第1の高さおよび第1の幅に基づいて、ビデオコーダは、ビデオデータの第1のブロック用の、N個の利用可能なイントラ予測モードのグループを識別する(102)。Nは、2よりも大きい整数値である。ビデオコーダは、たとえば、第1の高さおよび第1の幅に基づいて第1のブロックの面積を決定し、面積に基づいて、Nについての値を決定し得る。別の例では、ビデオコーダは、第1の高さおよび第1の幅に基づいて第1のブロックの形状を判断し、形状に基づいて、Nについての値を決定し得る。形状は、たとえば、垂直矩形または水平矩形に対応し得る。
【０１２２】
ビデオコーダは、N個の利用可能なイントラ予測モードのグループから、ビデオデータの第1のブロックをコーディングするのに使われる第1のイントラ予測モードを選択する(104)。ビデオコーダは、第1のイントラ予測モードを使用して第1のブロックをコーディングする(106)。ビデオコーダがビデオエンコーダである例では、ビデオコーダは、第1のイントラ予測モードを使用して第1のブロックを符号化することによって、第1のイントラ予測モードを使用して第1のブロックをコーディングし得る。ビデオコーダがビデオデコーダである例では、ビデオコーダは、第1のイントラ予測モードを使用して第1のブロックを復号することによって、第1のイントラ予測モードを使用して第1のブロックをコーディングし得る。
【０１２３】
図8に示すステップに加え、ビデオコーダはまた、ビデオデータの第2のブロックがイントラモードコーディングされると判断することであって、ビデオデータの第2のブロックは第2の高さおよび第2の幅を有する、判断することと、第2の高さおよび第2の幅に基づいて、ビデオデータの第2のブロック用の、M個の利用可能なイントラ予測モードのグループを識別することとを行うことができる。Mは、Nとは異なる整数値であり、2よりも大きい。ビデオコーダは、M個の利用可能なイントラ予測モードのグループから、ビデオデータの第2のブロックをコーディングするのに使われる第2のイントラ予測モードを選択する。ビデオコーダは、ビデオデータ中で閾値をシグナリングし、第1のブロックが、閾値よりも大きい面積を有することに応答して、Nについての値を決定し得る。第2のブロックが閾値未満の面積を有することに応答して、ビデオコーダはMについての値を決定し、MはNよりも小さい。N個の利用可能なイントラ予測モードのグループの中の各イントラ予測モードは、0〜N-1にわたる一意のインデックスを有することができ、M個の利用可能なイントラ予測モードのグループの中の各イントラ予測モードは、0〜M-1にわたる一意のインデックスを有することができる。
【０１２４】
一例では、第1の高さは第1の幅よりも大きくてよく、ビデオコーダは、ビデオデータの第2のブロックがイントラモードコーディングされ、第2の高さおよび第2の幅を有すると判断してよく、第2の幅は第2の高さよりも大きい。第2の高さおよび第2の幅に基づいて、ビデオコーダは、ビデオデータの第2のブロック用の、M個の利用可能なイントラ予測モードのグループを識別し、M個の利用可能なイントラ予測モードのグループは、N個の利用可能なイントラ予測モードのグループには含まれない少なくとも1つのイントラ予測モードを含む。ビデオコーダは、M個の利用可能なイントラ予測モードのグループから、ビデオデータの第2のブロックをコーディングするのに使われる第2のイントラ予測モードを選択する。
【０１２５】
図9は、本開示に記載される例示的ビデオコーディング技法を示す流れ図である。図9の技法は、たとえば、ビデオデコーダ30などのビデオデコーダに、またはビデオエンコーダ20などのビデオエンコーダに対応し得る汎用ビデオコーダを参照して記載される。図9の例では、ビデオコーダは、ビデオデータのブロックがイントラモードコーディングされると判断する(120)。ビデオコーダは、ブロック用の第1のMPM候補リストを生成する(122)。ビデオコーダは次いで、実際のイントラ予測モードが第1のMPMリスト中に含まれるかどうかを示すフラグをコーディングする(124)。ビデオエンコーダのケースでは、ビデオエンコーダは、符号化ビデオデータのビットストリームに含めるためのフラグを生成する。ビデオデコーダのケースでは、ビデオデコーダは、ビットストリーム中のフラグを受信し、フラグを復号する。ビデオコーダが、ブロックをコーディングするのに使われる実際のイントラ予測モードが第1のMPM候補リスト中に含まれる(124、YES)ことを示す第1のフラグをコーディングする場合、ビデオコーダは、第1のMPM候補リスト中のどのエントリが、ブロックをコーディングするのに使われる実際のイントラ予測モードに対応するかを識別するインデックス値をコーディングする(たとえば、生成または受信のいずれかを行う)(126)。
【０１２６】
ビデオコーダが、ブロックをコーディングするのに使われる実際のイントラ予測モードが第1のMPM候補リスト中に含まれない(124、NO)ことを示す第1のフラグをコーディングする場合、ビデオコーダは、ブロック用の第2のMPM候補リストを生成する(128)。本開示の技法によると、ビデオコーダは、第1のMPM候補リスト中のイントラ予測モードに基づいて、第2のMPM候補リスト中に含めるための少なくとも1つの候補イントラ予測モードを導出することによって、第2のMPM候補リストを生成することができる。第1のMPM候補リスト中のイントラ予測モードは、たとえば、ブロックの隣接ブロックをコーディングするのに使われるイントラ予測モードに対応し得るか、または隣接ブロックをコーディングするのに使われるイントラ予測モードに基づいて導出される。ビデオコーダは、第1のMPM候補リスト中のイントラ予測モードにオフセットを追加することによって、第1のMPM候補リスト中のイントラ予測モードに基づいて、第2のMPM候補リスト中に含めるための少なくとも1つの候補イントラ予測モードを導出することができる。ビデオコーダは、第2のMPM候補リスト中のすべてのモードが、第1のMPM候補リスト中のすべてのモードとは異なるように、第2のMPM候補リストを生成し得る。ビデオコーダは、第2のMPM候補リストに少なくとも1つのデフォルト候補を追加することによって、第2のMPM候補リストを生成することができる。第2のMPM候補リスト中に含めるための少なくとも1つの候補モードを導出するために、ビデオコーダは、第1のMPM候補リスト中のモードのモードインデックスに基づいて、Mについての整数値を決定することによって、M個の候補モードを導出することができ、Mは整数値である。
【０１２７】
ビデオコーダは次いで、実際のイントラ予測モードが第2のMPMリスト中に含まれるかどうかを示す第2のフラグをコーディングする(130)。ビデオコーダが、ブロックをコーディングするのに使われる実際のイントラ予測モードが第2のMPM候補リスト中に含まれる(130、YES)ことを示す第2のフラグをコーディングする場合、ビデオコーダは、第2のMPM候補リスト中のどのエントリが、ブロックをコーディングするのに使われる実際のイントラ予測モードに対応するかを識別するインデックス値をコーディングする(たとえば、生成または受信のいずれかを行う)(132)。ビデオコーダが、ブロックをコーディングするのに使われる実際のイントラ予測モードが第1のMPM候補リスト中に含まれない(130、NO)ことを示す第2のフラグをコーディングする場合、ビデオコーダは、残りのイントラ予測モードのうちのどれが実際のイントラ予測モードに対応するかを識別するシンタックスをコーディングする(134)。
【０１２８】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示に記載される技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１２９】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【０１３０】
命令は、1つもしくは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または他の等価な集積論理回路機構もしくは個別論理回路機構などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書において使用される「プロセッサ」という用語は、上記の構造、または本明細書において説明される技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書において説明される機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で与えられることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素において完全に実装される可能性がある。
【０１３１】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示された技法を実施するように構成されたデバイスの機能的側面を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてよく、または好適なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１３２】
様々な例を説明してきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１３３】
10  ビデオ符号化および復号システム、システム
12  ソースデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
26  記憶デバイス
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
33  ビデオデータメモリ
35  区分ユニット
41  予測処理ユニット
42  動き推定ユニット
44  動き補償ユニット
46  イントラ予測ユニット
50  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58  逆量子化ユニット
60  逆変換処理ユニット
62  加算器
64  フィルタユニット
66  復号ピクチャバッファ(DPB)
78  ビデオデータメモリ
80  エントロピー復号ユニット
81  予測処理ユニット
82  動き補償ユニット
84  イントラ予測ユニット
86  逆量子化ユニット
88  逆変換処理ユニット
90  加算器
92  フィルタユニット
94  DPB
【図１】
2019530367.tif 000006
【図２】
2019530367.tif 000007
【図３】
2019530367.tif 000008
【図４】
2019530367.tif 000009
【図５】
2019530367.tif 000010
【図６】
2019530367.tif 000011
【図７】
2019530367.tif 000012
【図８】
2019530367.tif 000013
【図９】
2019530367.tif 000014
【国際調査報告】
2019530367.tif 000015
2019530367.tif 000016
2019530367.tif 000017
2019530367.tif 000018
2019530367.tif 000019