(57)【要約】  ビデオデータを復号する方法であって、第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信するステップと、ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すステップと、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測するステップとを含む方法。
2019530330.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信するステップと、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すステップと、
前記第1のビデオデータのブロックのための前記再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測するステップと
を含む方法。
【請求項２】
前記第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、前記2つ以上の線形予測モデルの各々のためのパラメータを決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
第1のしきい値よりも大きい前記再構成されたルーマサンプルを、複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類するステップと、
前記第1のしきい値以下である前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類するステップと、
前記第1のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用するステップと、
前記第2のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用するステップであって、前記第2の線形予測モデルが前記第1の線形予測モデルとは異なる、ステップと、
前記適用された第1の線形予測モデルと前記適用された第2の線形予測モデルとに基づいて、前記第1のビデオデータのブロック中の前記予測されたクロマサンプルを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記第1のしきい値が、隣接コード化ルーマサンプルおよびクロマサンプルに依存する、請求項3に記載の方法。
【請求項５】
前記再構成されたルーマサンプルをダウンサンプリングするステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
前記再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定するステップと、
前記決定されたダウンサンプリングフィルタを使用して、前記再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成するステップと、
前記ダウンサンプリングされたルーマサンプルと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定するステップ
をさらに含み、
前記第2のビデオデータのブロックの前記クロマサンプルが、前記線形予測モデルを使用してコーディングされない場合、前記方法が、
線形モード角度予測モードが有効化されると決定するステップと、
角度モード予測パターンを、前記第2のビデオデータのブロックの前記クロマサンプルに適用して、第1の予測されたクロマ値を作成するステップと、
線形モデル予測パターンを、前記第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成するステップと、
前記第1の予測されたクロマ値と前記第2の予測されたクロマ値との加重平均を決定することによって、前記第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
線形予測モデルコーディングモードを使用してコーディングされる、前記第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの決定された数に基づいて、前記線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更するステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記コードワードを動的に変更するステップが、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、前記しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用するステップと
を含む、請求項8に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
第1のビデオデータのブロックのためのルーマサンプルのブロックを符号化するステップと、
前記ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すステップと、
前記第1のビデオデータのブロックのための前記再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測するステップと
を含む方法。
【請求項１１】
前記第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、前記2つ以上の線形予測モデルの各々のためのパラメータを決定するステップ
をさらに含む、請求項10に記載の方法。
【請求項１２】
第1のしきい値よりも大きい前記再構成されたルーマサンプルを、複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類するステップと、
前記第1のしきい値以下である前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類するステップと、
前記第1のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用するステップと、
前記第2のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用するステップであって、前記第2の線形予測モデルが前記第1の線形予測モデルとは異なる、ステップと、
前記適用された第1の線形予測モデルと前記適用された第2の線形予測モデルとに基づいて、前記第1のビデオデータのブロック中の前記予測されたクロマサンプルを決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項１３】
前記第1のしきい値が、隣接コード化ルーマサンプルおよびクロマサンプルに依存する、請求項12に記載の方法。
【請求項１４】
前記再構成されたルーマサンプルをダウンサンプリングするステップ
をさらに含む、請求項10に記載の方法。
【請求項１５】
前記再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定するステップと、
前記決定されたダウンサンプリングフィルタを使用して、前記再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成するステップと、
前記ダウンサンプリングされたルーマサンプルと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測するステップと
をさらに含む、請求項10に記載の方法。
【請求項１６】
前記2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定するステップ
をさらに含み、
前記第2のビデオデータのブロックの前記クロマサンプルが、前記線形予測モデルを使用してコーディングされない場合、前記方法が、
線形モード角度予測モードが有効化されると決定するステップと、
角度モード予測パターンを、前記第2のビデオデータのブロックの前記クロマサンプルに適用して、第1の予測されたクロマ値を作成するステップと、
線形モデル予測パターンを、前記第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成するステップと、
前記第1の予測されたクロマ値と前記第2の予測されたクロマ値との加重平均を決定することによって、前記第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項１７】
線形予測モデルコーディングモードを使用してコーディングされる、前記第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの決定された数に基づいて、前記線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更するステップと
をさらに含む、請求項10に記載の方法。
【請求項１８】
前記コードワードを動的に変更するステップが、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、前記しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用するステップと
を含む、請求項17に記載の方法。
【請求項１９】
ビデオデータを復号するように構成された装置であって、
第1のビデオデータのブロックを受信するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
前記第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信すること、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと、および
前記第1のビデオデータのブロックのための前記再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測すること
を行うように構成される、装置。
【請求項２０】
前記1つまたは複数のプロセッサが、
前記第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、前記2つ以上の線形予測モデルの各々のためのパラメータを決定すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２１】
前記1つまたは複数のプロセッサが、
第1のしきい値よりも大きい前記再構成されたルーマサンプルを、複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類すること、
前記第1のしきい値以下である前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類すること、
前記第1のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用すること、
前記第2のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用することであって、前記第2の線形予測モデルが前記第1の線形予測モデルとは異なる、こと、および
前記適用された第1の線形予測モデルと前記適用された第2の線形予測モデルとに基づいて、前記第1のビデオデータのブロック中の前記予測されたクロマサンプルを決定すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２２】
前記第1のしきい値が、隣接コード化ルーマサンプルおよびクロマサンプルに依存する、請求項21に記載の装置。
【請求項２３】
前記1つまたは複数のプロセッサが、
前記再構成されたルーマサンプルをダウンサンプリングすること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２４】
前記1つまたは複数のプロセッサが、
前記再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定すること、
前記決定されたダウンサンプリングフィルタを使用して、前記再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成すること、および
前記ダウンサンプリングされたルーマサンプルと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２５】
前記1つまたは複数のプロセッサが、
前記2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定すること
を行うようにさらに構成され、
前記第2のビデオデータのブロックの前記クロマサンプルが、前記線形予測モデルを使用してコーディングされない場合、前記1つまたは複数のプロセッサが、
線形モード角度予測モードが有効化されると決定すること、
角度モード予測パターンを、前記第2のビデオデータのブロックの前記クロマサンプルに適用して、第1の予測されたクロマ値を作成すること、
線形モデル予測パターンを、前記第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成すること、および
前記第1の予測されたクロマ値と前記第2の予測されたクロマ値との加重平均を決定することによって、前記第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２６】
前記1つまたは複数のプロセッサが、
線形予測モデルコーディングモードを使用してコーディングされる、前記第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定すること、および
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの決定された数に基づいて、前記線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２７】
前記コードワードを動的に変更するために、前記1つまたは複数のプロセッサが、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用すること、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用すること、および
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、前記しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用すること
を行うようにさらに構成される、請求項26に記載の装置。
【請求項２８】
ビデオデータを符号化するように構成された装置であって、
第1のビデオデータのブロックを受信するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
第1のビデオデータのブロックのためのルーマサンプルのブロックを符号化すること、
前記ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すこと、および
前記第1のビデオデータのブロックのための前記再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測すること
を行うように構成される、装置。
【請求項２９】
ビデオデータを復号するように構成された装置であって、
第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信するための手段と、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すための手段と、
前記第1のビデオデータのブロックのための前記再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測するための手段と
を備える装置。
【請求項３０】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、実行されたとき、ビデオデータを復号するように構成された1つまたは複数のプロセッサに、
第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信すること、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと、および
前記第1のビデオデータのブロックのための前記再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのためのクロマサンプルを予測すること
を行わせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、2016年9月15日に出願された米国仮出願第62/395,145号の利益を主張するものである。
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4, Part 10、アドバンストビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)規格、ITU-T H.265/高効率ビデオコーディング(HEVC)によって規定された規格、およびそのような規格の拡張に記載されているビデオコーディング技法などのビデオコーディング技法を実施する。ビデオデバイスは、そのようなビデオコーディング技法を実施することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【０００４】
ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオピクチャ、またはビデオピクチャの一部分)は、ビデオブロックに区分されてよく、ビデオブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU)、および/またはコーディングノードと呼ばれることもある。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらし得、残差変換係数は、次いで、量子化され得る。最初に2次元アレイに配置される量子化変換係数は、変換係数の1次元ベクトルを作成するために走査される場合があり、さらなる圧縮を実現するために、エントロピーコーディングが適用される場合がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Chen他、「CE6.a.4: Chroma intra prediction by reconstructed luma samples」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG1のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、第5回会合、ジュネーブ、2011年3月16〜23日、JCTVC-E266
【非特許文献２】Chen他、「Algorithm Description of Joint Exploration Test Model 3」のセクション2.2.4、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Video Exploration Team(JVET)、第3回会合、ジュネーブ、スイス、2016年5月26日〜6月1日、JVET-C1001
【発明の概要】
【課題を解決するための手段】
【０００７】
概して、本開示は、拡張線形モデルクロマイントラ予測のための技法について説明する。本開示は、2つ以上の線形予測モデルを使用して、対応するルーマサンプルのブロックのためのクロマサンプルを予測することを含む技法について説明する。他の例では、ルーマサンプルのブロックは、複数のダウンサンプリングフィルタのうちの1つを使用してダウンサンプリングされ得る。次いで、ダウンサンプリングされたルーマサンプルは、線形モデル予測技法を使用して対応するクロマサンプルを予測するために使用され得る。他の例では、クロマサンプルは、線形モデル予測および角度予測の組合せを使用して予測され得る。
【０００８】
本開示の一例では、ビデオデータを復号する方法は、第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信するステップと、ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すステップと、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測するステップとを含む。
【０００９】
本開示の別の例では、ビデオデータを符号化する方法は、第1のビデオデータのブロックのためのルーマサンプルのブロックを符号化するステップと、ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すステップと、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測するステップとを含む。
【００１０】
本開示の別の例では、ビデオデータを復号するように構成された装置は、第1のビデオデータのブロックを受信するように構成されたメモリと、1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信すること、ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと、および、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行うように構成される。
【００１１】
本開示の別の例では、ビデオデータを符号化するように構成された装置は、第1のビデオデータのブロックを受信するように構成されたメモリと、1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサが、第1のビデオデータのブロックのためのルーマサンプルのブロックを符号化すること、ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すこと、および、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行うように構成される。
【００１２】
本開示の別の例では、ビデオデータを復号するように構成された装置は、第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信するための手段と、ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すための手段と、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測するための手段とを備える。
【００１３】
別の例では、本開示は、命令を記憶するコンピュータ可読記憶媒体であって、命令が、実行されたとき、ビデオデータを復号するように構成された1つまたは複数のプロセッサに、第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信すること、ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと、および、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行わせる、コンピュータ可読記憶媒体について説明する。
【００１４】
一例では、ビデオデータをコーディングする方法は、第1のビデオデータのブロックのためのルーマサンプルを決定するステップと、第1のビデオデータのブロックのためのルーマサンプルと、2つ以上の予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測するステップとを含む。一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、第1のビデオデータのブロックのためのルーマサンプルを決定すること、および、第1のビデオデータのブロックのためのルーマサンプルと、2つ以上の予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行うように構成される。
【００１５】
一例では、ビデオデータをコーディングする方法は、第1のビデオデータのブロックのためのルーマサンプルを決定するステップと、第1のビデオデータのブロックのためのクロマサンプルを予測するために使用するべき予測モデルを決定するステップと、ルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定するステップと、決定されたダウンサンプリングフィルタを使用して、ルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成するステップと、第1のビデオデータのブロックのためのダウンサンプリングされたルーマサンプルと、予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測するステップとを含む。
【００１６】
一例では、ビデオデータをコーディングする方法は、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされるか否かを決定するステップと、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされる場合、線形モデルを使用して、ビデオデータの現在のクロマブロックをコーディングするステップとを含み、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされない場合、方法は、
現在のブロックが、線形モデルを使用してコーディングされないと決定されるとき、線形モード角度予測が有効化されるか否かを決定するステップと、線形モード角度予測が有効化される場合、角度モード予測パターンおよび線形モデル予測パターンを、現在のクロマブロックのサンプルに適用するステップと、適用された角度モード予測パターンおよび線形モデル予測パターンの加重和として、現在のクロマブロックのサンプルのための最終的な線形モード角度予測を決定するステップとをさらに含む。
【００１７】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされるか否かを決定すること、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされる場合、線形モデルを使用して、ビデオデータの現在のクロマブロックをコーディングすることを行うように構成され、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされない場合、1つまたは複数のプロセッサは、現在のブロックが、線形モデルを使用してコーディングされないと決定されるとき、線形モード角度予測が有効化されるか否かを決定すること、線形モード角度予測が有効化される場合、角度モード予測パターンおよび線形モデル予測パターンを、現在のクロマブロックのサンプルに適用すること、ならびに、適用された角度モード予測パターンおよび線形モデル予測パターンの加重和として、現在のクロマブロックのサンプルのための最終的な線形モード角度予測を決定することを行うように、さらに構成される。
【００１８】
一例では、ビデオデータをコーディングする方法は、線形モデルコーディングモードを使用してコーディングされる、現在のブロックビデオデータに対する、隣接クロマブロックの数を決定するステップと、線形モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更するステップとを含む。
【００１９】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、線形モデルコーディングモードを使用してコーディングされる、現在のブロックビデオデータに対する、隣接クロマブロックの数を決定すること、および、線形モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更することを行うように構成される。
【００２０】
一例では、ビデオデータをコーディングする方法は、ビデオデータの現在のクロマブロックのサイズを決定するステップと、現在のクロマブロックのサイズをしきい値と比較するステップと、現在のクロマブロックのサイズがしきい値を満たすとき、複数の線形モデルモードのうちの線形モデルモードを適用するステップと、現在のクロマブロックのサイズがしきい値を満たさないとき、複数の線形モデルモードのうちの線形モデルモードを適用しないステップとを含む。
【００２１】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、ビデオデータの現在のクロマブロックのサイズを決定すること、現在のクロマブロックのサイズをしきい値と比較すること、現在のクロマブロックのサイズがしきい値を満たすとき、複数の線形モデルモードのうちの線形モデルモードを適用すること、および、現在のクロマブロックのサイズがしきい値を満たさないとき、複数の線形モデルモードのうちの線形モデルモードを適用しないことを行うように構成される。
【００２２】
一例では、ビデオデータをコーディングするように構成されたデバイスは、本開示で説明する方法の任意の組合せを実行するための手段を備える。別の例では、コンピュータ可読媒体は、命令を用いて符号化され、命令は、実行されたとき、ビデオデータをコーディングするように構成されたデバイスの1つまたは複数のプロセッサに、本開示で説明する方法の任意の組合せを実行させる。別の例では、本開示で説明する技法の任意の組合せが実行され得る。
【００２３】
1つまたは複数の例の詳細が、添付の図面および以下の説明において記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００２４】
【図１】本開示で説明するマルチモデル線形モデルクロマイントラ予測のための技法を利用し得る、例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】本開示で説明するマルチモデル線形モデルクロマイントラ予測のための技法を実装し得る、例示的なビデオエンコーダを示すブロック図である。
【図３】本開示で説明するマルチモデル線形モデルクロマイントラ予測のための技法を実装し得る、例示的なビデオデコーダを示すブロック図である。
【図４】線形モデルクロマイントラ予測のためのモデルパラメータαおよびモデルパラメータβを導出するために使用されるサンプルの例示的なロケーションの概念図である。
【図５】ルーマ(Y)成分とクロマ(C)成分との間の線形回帰の一例のグラフである。
【図６】ルーマサンプルダウンサンプリングの一例の概念図である。
【図７Ａ】本開示の例による隣接サンプルの分類のグラフである。
【図７Ｂ】本開示の例による隣接サンプルの分類のグラフである。
【図７Ｃ】本開示の例による隣接サンプルの分類のグラフである。
【図７Ｄ】本開示の例による隣接サンプルの分類のグラフである。
【図７Ｅ】本開示の例による隣接サンプルの分類のグラフである。
【図８Ａ】本開示の例による、線形モデルを導出するために使用される隣接クロマサンプルの概念図である。
【図８Ｂ】本開示の例による、線形モデルを導出するために使用される隣接クロマサンプルの概念図である。
【図８Ｃ】本開示の例による、線形モデルを導出するために使用される隣接クロマサンプルの概念図である。
【図８Ｄ】本開示の例による、線形モデルを導出するために使用される隣接クロマサンプルの概念図である。
【図９】本開示の例による、隣接サンプル分類の概念図である。
【図１０】本開示の例による、2つのグループに分類された隣接コード化ルーマサンプルのための2つの線形モデルの概念図である。
【図１１】本開示の例による、2つの線形モデルのうちの1つの線形モデルであるモデル1を、現在のブロックのすべてのピクセルに適用する概念図である。
【図１２】本開示の例による、2つの線形モデルのうちの別の線形モデルであるモデル2を、現在のブロックのすべてのピクセルに適用する概念図である。
【図１３】本開示の例による予測手順の概念図である。
【図１４Ａ】本開示の一例によるルーマサブサンプリングフィルタの概念図である。
【図１４Ｂ】本開示の一例によるルーマサブサンプリングフィルタの概念図である。
【図１４Ｃ】本開示の一例によるルーマサブサンプリングフィルタの概念図である。
【図１５】本開示の一例によるLM角度予測(LAP)モードにおけるシグナリングのフローチャートである。
【図１６】本開示の一例によるLAPのブロック図である。
【図１７】現在のブロックの隣接ブロックの概念図である。
【図１８】本開示の例示的な符号化方法を示すフローチャートである。
【図１９】本開示の例示的な符号化方法を示すフローチャートである。
【図２０】現在のブロックを符号化するための例示的な方法を示すフローチャートである。
【図２１】ビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【００２５】
本開示は、ビデオコーデックにおける成分間予測に関し、より詳細には、線形モデル(LM)クロマイントラ予測のための技法に関する。本開示の一例では、マルチモデルLM(MMLM)技法について説明する。クロマイントラ予測のためにMMLMを使用するとき、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、ルーマ成分の対応するブロック(たとえば、コーディングユニット(CU)または予測ユニット(PU))からクロマ成分のブロックを予測するための2つ以上の線形モデルを使用し得る。現在のブロックの隣接ルーマサンプルおよび隣接クロマサンプルは、いくつかのグループに分類され得、各グループは、別個の線形モデルを導出するためにトレーニングセットとして使用され得る。一例では、対応するルーマブロックのサンプルは、隣接サンプルの分類のための同じルールに基づいて、さらに分類され得る。ビデオコーダは、分類に応じて、現在のルーマブロックの部分に各線形モデルを適用して、部分的な予測クロマブロックを取得し得る。複数の線形モデルからの部分的な予測クロマブロックが組み合わせられて、最終的な予測クロマブロックが取得され得る。
【００２６】
本開示の別の例では、マルチフィルタLMモードのための技法について説明する。マルチフィルタLM(MFLM)クロマ予測技法を使用するとき、ビデオデータが4:4:4フォーマットではない場合、ビデオコーダは、2つ以上のルーマダウンサンプリングフィルタを使用し得る。すなわち、クロマブロックが、ルーマ値と比較してサブサンプリングされる(すなわち、ビデオデータが4:4:4ではない)場合、ビデオコーダは、成分間クロマイントラ予測のために、ルーマブロックをダウンサンプリングし得る。このようにして、ルーマサンプルとクロマサンプルとの間の1:1相関がある。本開示のMFLM技法は、Joint Video Exploration Team(JVET)によって現在開発中のJoint Exploratory Model(JEM-3.0)の例において定義されたダウンサンプリングフィルタに加えて使用され得る。
【００２７】
本開示の別の例では、LM角度予測モードのための技法について説明する。LM角度予測(LAP)を使用するとき、あるタイプの角度予測(たとえば、角度予測は、方向性予測、DC予測、平面予測、または他の非成分間イントラ予測を含み得る)、およびあるタイプのLM予測が一緒に組み合わせられて、クロマブロックのための最終的な予測が取得され得る。本明細書で説明するマルチモデルLM(MMLM)クロマ予測技法(マルチフィルタLM(MFLM)有りまたは無し)、および/またはLM角度予測(LAP)予測技法のいずれかを、単独か組合せかにかかわらず使用することによって、符号化時間のわずかな増大(たとえば、104%の符号化時間)とともに、ルーマ成分およびクロマ成分において約0.4%および3.5%のビットレートひずみ(BDレート)コーディング利得が個別にもたらされ得る。
【００２８】
図1は、本開示で説明する線形モデルクロマイントラ予測のための技法を利用し得る、例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、後で宛先デバイス14によって復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広い範囲のデバイスのうちのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信用に装備される場合がある。
【００２９】
宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12がリアルタイムで宛先デバイス14へ符号化ビデオデータを直接送信することを可能にする通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調されてよく、宛先デバイス14へ送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００３０】
いくつかの例では、符号化データは、出力インターフェース22から、記憶デバイスとして構成されるコンピュータ可読媒体16に出力され得る。同様に、符号化データは、入力インターフェース28によって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、分散されるかまたはローカルでアクセスされる様々なデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶するとともにその符号化ビデオデータを宛先デバイス14へ送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに好適である、両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【００３１】
本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上へ符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートする際にビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向ビデオ送信をサポートするように構成され得る。
【００３２】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20、および/または宛先デバイス14のビデオデコーダ30は、本開示で説明する拡張線形モデルクロマイントラ予測のための技法を適用するように構成され得る。他の例では、ソースデバイス12および宛先デバイス14は、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００３３】
図1の図示したシステム10は一例にすぎない。本開示で説明する拡張線形モデルクロマイントラ予測のための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、技法はまた、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への送信用のコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化および復号構成要素を含むように実質的に対称的な方法で動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス12、14の間の一方向または双方向のビデオ送信をサポートし得る。
【００３４】
ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータ生成されたビデオとの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤードの適用例に適用され得る。各場合において、キャプチャされた、以前にキャプチャされた、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。次いで、符号化ビデオ情報は、出力インターフェース22によって、コンピュータ可読媒体16上に出力され得る。
【００３５】
コンピュータ可読媒体16は、ワイヤレスブロードキャストもしくはワイヤードネットワーク送信などの一時媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)が、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化ビデオデータを受信し得、符号化ビデオデータを宛先デバイス14に提供し得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスが、ソースデバイス12から符号化ビデオデータを受信し得、符号化ビデオデータを含むディスクを製造し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００３６】
宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコード化ユニットの特性および/または処理を記述するシンタックス要素を含み、ビデオデコーダ30によっても使用される、ビデオエンコーダ20によって定義されるシンタックス情報を含み得る。ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【００３７】
ビデオエンコーダ20およびビデオデコーダ30は、ITU-T H.265とも呼ばれる高効率ビデオコーディング(HEVC)規格などのビデオコーディング規格に従って動作し得る。他の例では、ビデオエンコーダ20およびビデオデコーダは、JVETによって現在開発中の規格を含む、将来のビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4, Part 10と呼ばれるITU-T H.264規格、アドバンストビデオコーディング(AVC)、またはそのような規格の拡張など、他のプロプライエタリな規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されず、将来のビデオコーディング規格に適用され得る。ビデオコーディング規格の他の例には、MPEG-2およびITU-T H.263が含まれる。図1には示していないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびデコーダと一体化されてもよく、共通データストリームまたは別々のデータストリームにおけるオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニットまたは他のハードウェアおよびソフトウェアを含んでもよい。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【００３８】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、固定関数および/またはプログラマブル処理回路を含み得る、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するための1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されることがある。
【００３９】
一般に、ITU-T H.265によれば、ビデオピクチャは、ルーマサンプルとクロマサンプルの両方を含み得るコーディングツリーユニット(CTU)(または最大コーディングユニット(LCU))のシーケンスに分割され得る。代替的に、CTUは、モノクロームデータ(すなわち、ルーマサンプルのみ)を含み得る。ビットストリーム内のシンタックスデータは、ピクセル数に換算して最大コーディングユニットであるCTUのためのサイズを定義し得る。スライスは、コーディング順にいくつかの連続するCTUを含む。ビデオピクチャは、1つまたは複数のスライスに区分され得る。各CTUは、4分木に従ってコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードがCTUに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
【００４０】
4分木データ構造の各ノードは、対応するCUのためのシンタックスデータを提供し得る。たとえば、4分木の中のノードは、ノードに対応するCUがサブCUに分割されているかどうかを示す分割フラグを含み得る。CUのためのシンタックス要素は再帰的に定義されることがあり、CUがサブCUに分割されるかどうかに依存することがある。CUがそれ以上分割されない場合、それはリーフCUと呼ばれる。本開示では、リーフCUの4つのサブCUはまた、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUと呼ばれる。たとえば、16×16サイズのCUがそれ以上分割されない場合、4つの8×8サブCUもリーフCUと呼ばれるが、16×16CUは決して分割されない。
【００４１】
CUは、CUがサイズの区別を持たないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、CTUは、4つの(サブCUとも呼ばれる)子ノードに分割されることがあり、各子ノードは、次に親ノードになり、別の4つの子ノードに分割されることがある。4分木のリーフノードと呼ばれる、最終の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、CTUが分割され得る最大回数を規定し得、コーディングノードの最小サイズも定義し得る。したがって、ビットストリームはまた、最小コーディングユニット(SCU)を定義し得る。本開示は、HEVCの文脈におけるCU、予測ユニット(PU)、もしくは変換ユニット(TU)のいずれか、または、他の規格の文脈における同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそのサブブロック)を指すために、「ブロック」という用語を使用する。
【００４２】
CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズはコーディングノードのサイズに対応し、一般的には、形状が正方形である。CUのサイズは、8×8ピクセルから最大サイズ、たとえば64×64ピクセル以上を有するCTUのサイズまでにわたり得る。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがスキップもしくは直接モードで符号化されているか、イントラ予測モードで符号化されているか、またはインター予測モードで符号化されているかに応じて異なり得る。PUは、形状が非正方形であるように区分され得る。CUに関連するシンタックスデータはまた、たとえば、4分木による1つまたは複数のTUへのCUの区分を記述し得る。TUは、形状が正方形または非正方形(たとえば、矩形)であり得る。
【００４３】
HEVC規格は、CUによって異なり得る、TUに従う変換を可能にする。TUは、典型的には、区分されたCTUについて定義された所与のCU内のPU(またはCUの区分)のサイズに基づいてサイズが決められるが、これは必ずしもそうではないことがある。TUは、典型的には、PU(または、たとえばイントラ予測の場合、CUの区分)とサイズが同じであるか、またはより小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれることがある。TUに関連付けられたピクセル差分値は、変換係数を作成するために変換され得、変換係数は、量子化され得る。
【００４４】
リーフCUは、インター予測を使用して予測されるとき、1つまたは複数の予測ユニット(PU)を含み得る。一般に、PUは、対応するCUのすべてまたは一部分に対応する空間エリアを表し、PUのための参照サンプルを取り出すためおよび/または生成するためのデータを含み得る。その上、PUは、予測に関連するデータを含む。CUがインターモード符号化されるとき、CUの1つまたは複数のPUは、1つまたは複数の動きベクトルなどの動き情報を定義するデータを含むことがあり、またはPUはスキップモードでコーディングされることがある。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルのための分解能(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0またはリスト1)を記述し得る。
【００４５】
リーフCUはまた、イントラモード予測され得る。一般に、イントラ予測は、イントラモードを使用してリーフCU(またはその区分)を予測することを伴う。ビデオコーダは、リーフCU(またはその区分)を予測するために使用するべき、リーフCUに隣接する以前にコーディングされたピクセルのセットを選択し得る。
【００４６】
リーフCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上記で説明したように、RQT(TU4分木構造とも呼ばれる)を使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるか否かを示し得る。次いで、各TUは、さらなるサブTUにさらに分割され得る。TUは、それ以上分割されないとき、リーフTUと呼ばれることがある。一般に、イントラコーディングでは、1つのリーフCUに属するすべてのリーフTUは、同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードは、一般に、リーフCUのすべてのTUに対する予測値を計算するために適用される。イントラコーディングでは、ビデオエンコーダは、各リーフTUに対する残差値を、TUに対応するCUの部分と元のブロックとの間の差分としてイントラ予測モードを使用して計算し得る。TUは、必ずしもPUのサイズに限定されるとは限らない。したがって、TUは、PUよりも大きくても小さくてもよい。イントラコーディングでは、CUの区分、またはCU自体が、CUの対応するリーフTUと併置され得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
【００４７】
その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれるそれぞれの4分木データ構造に関連し得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されているのかを示す4分木を含み得る。TUの4分木のルートノードは、概してリーフCUに対応し、CUの4分木のルートノードは、概してCTU(または、LCU)に対応する。分割されないRQTのTUは、リーフTUと呼ばれる。概して、本開示は、別段に記載されていない限り、それぞれ、リーフCUおよびリーフTUを指すためにCUおよびTUという用語を使用する。
【００４８】
ビデオシーケンスは通常、ランダムアクセスポイント(RAP)ピクチャで始まる、一連のビデオフレームまたはピクチャを含む。ビデオシーケンスは、ビデオシーケンスの特性を含むシンタックスデータをシーケンスパラメータセット(SPS)の中に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロック上で動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは固定サイズまたは可変サイズを有してもよく、指定されたコーディング規格に従ってサイズが異なり得る。
【００４９】
一例として、予測は、様々なサイズのPUに対して実行され得る。特定のCUのサイズが2N×2Nであると仮定すると、イントラ予測は、2N×2NまたはN×NのPUサイズに対して実行され、インター予測は、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズに対して実行され得る。インター予測用の非対称区分も、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズに対して実行され得る。非対称区分では、CUの一方の方向は区分されないが、他方の方向は25%および75%に区分される。25%区分に対応するCUの部分は、「n」とそれに続く「上」、「下」、「左」、または「右」という表示によって示される。したがって、たとえば、「2N×nU」とは、上に2N×0.5NのPUおよび下に2N×1.5NのPUで水平方向に区分されている、2N×2NのCUを指す。
【００５０】
本開示では、「N×N」および「N掛けるN」は、垂直方向および水平方向の寸法に関するビデオブロックのピクセルの寸法、たとえば、16×16ピクセル、または16掛ける16ピクセルを指すために、互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)と水平方向に16ピクセル(x=16)とを有することになる。同様に、N×Nブロックは、一般に、垂直方向にNピクセルと水平方向にNピクセルとを有し、ここでNは、負ではない整数値を表す。ブロック中のピクセルは、行および列に配置され得る。その上、ブロックは、必ずしも水平方向で垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックは、N×Mピクセルを備えてもよく、ここでMは、必ずしもNと等しいとは限らない。
【００５１】
CUのPUを使用するイントラ予測またはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、空間領域(ピクセル領域とも呼ばれる)における予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備えてもよく、TUは、変換、たとえば離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用することに続いて、変換領域における係数を備えてもよい。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応してもよい。ビデオエンコーダ20は、CUのための残差データを表す量子化変換係数を含めるようにTUを形成し得る。すなわち、ビデオエンコーダ20は、(残差ブロックの形式で)残差データを計算し得、残差ブロックを変換して変換係数のブロックを生成し得、次いで、変換係数を量子化して量子化変換係数を形成し得る。ビデオエンコーダ20は、量子化変換係数を含むTU、ならびに他のシンタックス情報(たとえば、TUのための分割情報)を形成し得る。
【００５２】
上述のように、変換係数を作成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮が行われるプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、nビット値は、量子化の間にmビット値に丸められることがあり、ここで、nはmよりも大きい。
【００５３】
量子化に続いて、ビデオエンコーダは、変換係数を走査し、量子化変換係数を含む2次元行列から1次元ベクトルを作成し得る。走査は、より高いエネルギー(それゆえより低い周波数)の係数をアレイの前方に置き、より低いエネルギー(それゆえより高い周波数)の係数をアレイの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するために事前定義された走査順を利用し得る。他の例では、ビデオエンコーダ20は、適応走査を実行し得る。1次元ベクトルを形成するために、量子化変換係数を走査した後、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30によって使用するための符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
【００５４】
CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルにコンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このように、VLCの使用は、たとえば、送信されるべき各シンボルに等長コードワードを使用して、ビットの節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００５５】
概して、ビデオデコーダ30は、ビデオエンコーダ20によって実行されるプロセスと逆ではあるが実質的に同様のプロセスを実行して、符号化データを復号する。たとえば、ビデオデコーダ30は、受信されたTUの係数を逆量子化および逆変換して、残差ブロックを再生する。ビデオデコーダ30は、予測されたブロックを形成するために、シグナリングされた予測モード(イントラ予測またはインター予測)を使用する。次いで、ビデオデコーダ30は、予測ブロックと残差ブロックとを(ピクセルごとに)合成して、元のブロックを再生する。ブロック境界に沿った視覚的アーティファクトを低減するためにデブロッキングプロセスを実行するなど、追加の処理が実行され得る。さらに、ビデオデコーダ30は、ビデオエンコーダ20のCABAC符号化プロセスと逆ではあるが実質的に同様の方法で、CABACを使用してシンタックス要素を復号し得る。
【００５６】
ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、または、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、もしくはビデオパラメータセット(VPS)などの他のシンタックスデータにおいて、ビデオデコーダ30に送り得る。
【００５７】
図2は、本開示で説明する拡張線形モデルクロマイントラ予測のための技法を実装し得る、ビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測(Pモード)または双方向(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
【００５８】
図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64(復号ピクチャバッファ(DPB)と呼ばれることもある)と、ビデオデータメモリ65と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。デブロッキングフィルタ(図2に図示せず)もまた、再構成されたビデオからブロッキネスアーティファクトを除去するために、ブロック境界をフィルタリングするために含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタリングする。追加のフィルタ(ループ内またはループ後)もまた、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタリングし得る。
【００５９】
図2に示すように、ビデオエンコーダ20は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ65に記憶する。ビデオデータメモリ65は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ65に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。参照ピクチャメモリ64は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ65および参照ピクチャメモリ64は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ65および参照ピクチャメモリ64は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ65は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【００６０】
符号化プロセスの間に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレームの中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測符号化を実行する。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測符号化を実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに対する適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００６１】
その上、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初にフレームまたはスライスをCTUに区分し得、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてCTUの各々をサブCUに区分し得る。モード選択ユニット40は、CTUをサブCUに区分することを示す4分木データ構造をさらに作成し得る。4分木のリーフノードCUは、1つまたは複数のPUおよび1つまたは複数のTUを含み得る。
【００６２】
モード選択ユニット40は、たとえば、誤差結果に基づいて、予測モードのうちの一方、すなわち、イントラ予測またはインター予測を選択し得、得られた予測ブロックを、残差データを生成するために加算器50に、また参照フレームとして使用するために符号化ブロックを再構成するために加算器62に提供する。可能なイントラ予測モードの中で、モード選択ユニット40は、本開示の技法による線形モデルクロマイントラ予測モードを使用することを決定し得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に提供する。
【００６３】
動き推定ユニット42および動き補償ユニット44は、高集積されてよいが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する、参照フレーム(または他のコード化ユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得る、ピクセル差分の観点で、コーディングされるべきブロックと厳密に一致することが見出されるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置のための値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行し得、分数ピクセル精度で動きベクトルを出力し得る。
【００６４】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスの中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されることがあり、それらの各々が、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを特定する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44へ送る。
【００６５】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。この場合も、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックを位置特定し得る。加算器50は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。一般に、動き推定ユニット42は、ルーマ成分に対する動き推定を実行し、動き補償ユニット44は、ルーマ成分に基づいて計算された動きベクトルをクロマ成分とルーマ成分の両方に使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
【００６６】
イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。具体的には、イントラ予測ユニット46は、現在のブロックを符号化するために使用するべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードの中から使用するべき適切なイントラ予測モードを選択し得る。
【００６７】
たとえば、イントラ予測ユニット46は、テストされた様々なイントラ予測モードに対してレートひずみ分析を使用して、レートひずみ値を計算し、テストされたモードの間で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを作成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに、符号化ブロックを作成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【００６８】
ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る、送信されたビットストリーム構成データ内に、コンテキストの各々のために使用するべき、様々なブロックのための符号化コンテキストの定義と、最もあり得るイントラ予測モードの指示と、イントラ予測モードインデックステーブルと、変更されたイントラ予測モードインデックステーブルとを含み得る。
【００６９】
以下でより詳細に説明するように、イントラ予測ユニット46は、本開示で説明する拡張線形モデルクロマイントラ予測技法を実行するように構成され得る。
【００７０】
ビデオエンコーダ20は、モード選択ユニット40からの予測データをコーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、離散サイン変換(DST)、または他のタイプの変換が、DCTの代わりに使用され得る。いずれの場合にも、変換処理ユニット52は、変換を残差ブロックに適用し、変換係数のブロックを生成する。変換は、残差情報をピクセル領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【００７１】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後の送信もしくは取出しのためにアーカイブされ得る。
【００７２】
逆量子化ユニット58および逆変換ユニット60は、それぞれ、逆量子化および逆変換を適用して、ピクセル領域における残差ブロックを再構成する。具体的には、加算器62は、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを作成するために、動き補償ユニット44またはイントラ予測ユニット46によって早期に作成された動き補償された予測ブロックに、再構成された残差ブロックを加える。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために、参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【００７３】
このようにして、図2のビデオエンコーダ20は、第1のビデオデータのブロックのためのルーマサンプルのブロックを符号化すること、ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すこと、および、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行うように構成された、ビデオエンコーダの一例を表す。
【００７４】
一例では、ビデオデータをコーディングする方法は、第1のビデオデータのブロックのためのルーマサンプルを決定すること、第1のビデオデータのブロックのためのクロマサンプルを予測するために使用するべき予測モデルを決定すること、ルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定すること、決定されたダウンサンプリングフィルタを使用して、ルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成すること、および、第1のビデオデータのブロックのためのダウンサンプリングされたルーマサンプルと、予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを含む。
【００７５】
一例では、ビデオデータをコーディングする方法は、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされるか否かを決定すること、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされる場合、線形モデルを使用して、ビデオデータの現在のクロマブロックをコーディングすることを含み、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされない場合、方法は、
現在のブロックが、線形モデルを使用してコーディングされないと決定されるとき、線形モード角度予測が有効化されるか否かを決定すること、線形モード角度予測が有効化される場合、角度モード予測パターンおよび線形モデル予測パターンを、現在のクロマブロックのサンプルに適用すること、ならびに、適用された角度モード予測パターンおよび線形モデル予測パターンの加重和として、現在のクロマブロックのサンプルのための最終的な線形モード角度予測を決定することをさらに含む。
【００７６】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされるか否かを決定すること、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされる場合、線形モデルを使用して、ビデオデータの現在のクロマブロックをコーディングすることを行うように構成され、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされない場合、1つまたは複数のプロセッサは、現在のブロックが、線形モデルを使用してコーディングされないと決定されるとき、線形モード角度予測が有効化されるか否かを決定すること、線形モード角度予測が有効化される場合、角度モード予測パターンおよび線形モデル予測パターンを、現在のクロマブロックのサンプルに適用すること、ならびに、適用された角度モード予測パターンおよび線形モデル予測パターンの加重和として、現在のクロマブロックのサンプルのための最終的な線形モード角度予測を決定することを行うように、さらに構成される。
【００７７】
一例では、ビデオデータをコーディングする方法は、線形モデルコーディングモードを使用してコーディングされる、現在のブロックビデオデータに対する、隣接クロマブロックの数を決定すること、および、線形モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更することを含む。
【００７８】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、線形モデルコーディングモードを使用してコーディングされる、現在のブロックビデオデータに対する、隣接クロマブロックの数を決定すること、および、線形モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更することを行うように構成される。
【００７９】
一例では、ビデオデータをコーディングする方法は、ビデオデータの現在のクロマブロックのサイズを決定すること、現在のクロマブロックのサイズをしきい値と比較すること、現在のクロマブロックのサイズがしきい値を満たすとき、複数の線形モデルモードのうちの線形モデルモードを適用すること、および、現在のクロマブロックのサイズがしきい値を満たさないとき、複数の線形モデルモードのうちの線形モデルモードを適用しないことを含む。
【００８０】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、ビデオデータの現在のクロマブロックのサイズを決定すること、現在のクロマブロックのサイズをしきい値と比較すること、現在のクロマブロックのサイズがしきい値を満たすとき、複数の線形モデルモードのうちの線形モデルモードを適用すること、および、現在のクロマブロックのサイズがしきい値を満たさないとき、複数の線形モデルモードのうちの線形モデルモードを適用しないことを行うように構成される。
【００８１】
図3は、本開示で説明する拡張線形モデルクロマイントラ予測のための技法を実装し得る、ビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、ビデオデータメモリ85と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成し得るが、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。
【００８２】
復号プロセスの間に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ30は、受信された符号化ビデオビットストリームをビデオデータメモリ85内に記憶する。ビデオデータメモリ85は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ85に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16を介して、記憶媒体から、またはカメラなどのローカルビデオソースから、または物理的データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ85は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。参照ピクチャメモリ82は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する、参照ピクチャメモリであり得る。ビデオデータメモリ85および参照ピクチャメモリ82は、DRAM、SDRAM、MRAM、RRAM(登録商標)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ85および参照ピクチャメモリ82は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ85は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【００８３】
ビデオデコーダ30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成する。エントロピー復号ユニット70は、動き補償ユニット72に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。
【００８４】
ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、BまたはP)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを作成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから作成され得る。ビデオデコーダ30は、参照ピクチャメモリ82内に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、リスト0およびリスト1を構成し得る。
【００８５】
動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって、現在のビデオスライスのビデオブロックのための予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを作成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数のための構成情報、スライスの各インター符号化ビデオブロックのための動きベクトル、スライスの各インターコード化ビデオブロックのためのインター予測状態、および現在のビデオスライス中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【００８６】
動き補償ユニット72は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット72は、ビデオブロックの符号化の間にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間された値を計算し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、補間フィルタを使用して、予測ブロックを作成し得る。
【００８７】
以下でより詳細に説明するように、イントラ予測ユニット74は、本開示で説明する拡張線形モデルクロマイントラ予測技法を実行するように構成され得る。
【００８８】
逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオデコーダ30によって計算された量子化パラメータQPYをビデオスライス中の各ビデオブロックに使用することを含み得る。
【００８９】
逆変換ユニット78は、ピクセル領域において残差ブロックを作成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【００９０】
動き補償ユニット72が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックの予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを、動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、デブロッキングフィルタもまた、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタリングするために適用され得る。ピクセル遷移を平滑化し、またはビデオ品質を別の方法で改善するために、(コーディングループ中またはコーディングループ後のいずれかの)他のフィルタも使用され得る。所与のフレームまたはピクチャの中の復号ビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82の中に記憶される。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後に提示するための復号ビデオを記憶する。
【００９１】
このようにして、図3のビデオデコーダ30は、第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信すること、ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと、および、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行うように構成された、ビデオデコーダの一例を表す。
【００９２】
一例では、ビデオデータをコーディングする方法は、第1のビデオデータのブロックのためのルーマサンプルを決定すること、第1のビデオデータのブロックのためのクロマサンプルを予測するために使用するべき予測モデルを決定すること、ルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定すること、決定されたダウンサンプリングフィルタを使用して、ルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成すること、および、第1のビデオデータのブロックのためのダウンサンプリングされたルーマサンプルと、予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを含む。
【００９３】
一例では、ビデオデータをコーディングする方法は、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされるか否かを決定すること、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされる場合、線形モデルを使用して、ビデオデータの現在のクロマブロックをコーディングすることを含み、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされない場合、方法は、現在のブロックが、線形モデルを使用してコーディングされないと決定されるとき、線形モード角度予測が有効化されるか否かを決定すること、線形モード角度予測が有効化される場合、角度モード予測パターンおよび線形モデル予測パターンを、現在のクロマブロックのサンプルに適用すること、ならびに、適用された角度モード予測パターンおよび線形モデル予測パターンの加重和として、現在のクロマブロックのサンプルのための最終的な線形モード角度予測を決定することをさらに含む。
【００９４】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされるか否かを決定すること、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされる場合、線形モデルを使用して、ビデオデータの現在のクロマブロックをコーディングすることを行うように構成され、ビデオデータの現在のクロマブロックが、線形モデルを使用してコーディングされない場合、1つまたは複数のプロセッサは、現在のブロックが、線形モデルを使用してコーディングされないと決定されるとき、線形モード角度予測が有効化されるか否かを決定すること、線形モード角度予測が有効化される場合、角度モード予測パターンおよび線形モデル予測パターンを、現在のクロマブロックのサンプルに適用すること、ならびに、適用された角度モード予測パターンおよび線形モデル予測パターンの加重和として、現在のクロマブロックのサンプルのための最終的な線形モード角度予測を決定することを行うように、さらに構成される。
【００９５】
一例では、ビデオデータをコーディングする方法は、線形モデルコーディングモードを使用してコーディングされる、現在のブロックビデオデータに対する、隣接クロマブロックの数を決定すること、および、線形モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更することを含む。
【００９６】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、線形モデルコーディングモードを使用してコーディングされる、現在のブロックビデオデータに対する、隣接クロマブロックの数を決定すること、および、線形モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更することを行うように構成される。
【００９７】
一例では、ビデオデータをコーディングする方法は、ビデオデータの現在のクロマブロックのサイズを決定すること、現在のクロマブロックのサイズをしきい値と比較すること、現在のクロマブロックのサイズがしきい値を満たすとき、複数の線形モデルモードのうちの線形モデルモードを適用すること、および、現在のクロマブロックのサイズがしきい値を満たさないとき、複数の線形モデルモードのうちの線形モデルモードを適用しないことを含む。
【００９８】
一例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するメモリと、1つまたは複数のプロセッサを備えるビデオコーダとを備え、1つまたは複数のプロセッサが、ビデオデータの現在のクロマブロックのサイズを決定すること、現在のクロマブロックのサイズをしきい値と比較すること、現在のクロマブロックのサイズがしきい値を満たすとき、複数の線形モデルモードのうちの線形モデルモードを適用すること、および、現在のクロマブロックのサイズがしきい値を満たさないとき、複数の線形モデルモードのうちの線形モデルモードを適用しないことを行うように構成される。
【００９９】
線形モデル(LM)クロマイントラ予測は、Chen他、「CE6.a.4: Chroma intra prediction by reconstructed luma samples」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG1のジョイントコラボレーティブチームオンビデオコーディング(JCT-VC)、第5回会合、ジュネーブ、2011年3月16〜23日、JCTVC-E266において、JCT-VCに提案されており、この文書は、http://phenix.int-evry.fr/jct/doc_end_user/documents/5_Geneva/wg11/JCTVC-E0266-v4.zipにおいて入手可能である。LMモードはまた、JVETにも提案されており、
Chen他、「Algorithm Description of Joint Exploration Test Model 3」のセクション2.2.4、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Video Exploration Team(JVET)、
第3回会合、ジュネーブ、スイス、2016年5月26日〜6月1日、JVET-C1001において記載されており、この文書は、http://phenix.int-evry.fr/jvet/doc_end_user/documents/3_Geneva/wg11/JVET-C1001-v3.zipにおいて入手可能である。LMモードは、ビデオのブロックのルーマ成分とクロマ成分との間に線形関係があると仮定する。LMモードに従ってビデオデータをコーディングするとき、ビデオエンコーダ20(たとえば、イントラ予測ユニット46)およびビデオデコーダ30(たとえば、イントラ予測ユニット74)は、線形回帰手法を利用して、ルーマサンプルとクロマサンプルとの間の関係を決定することによって、ビデオデータのブロックの隣接再構成ピクセルを解析するように構成され得る。LMモードが使用されるとき、ビデオエンコーダ20およびビデオデコーダ30は、次のように、同じブロックの再構成されたルーマ値から、クロマ値(たとえば、CrクロマサンプルとCbクロマサンプルの両方)を予測するように構成され得る。
PredC[x,y]=α・RecL'[x,y]+β  (1)
ただし、PredCは、ブロック中のクロマサンプルの予測を示し、RecLは、ブロック中の再構成されたルーマサンプルを示す。パラメータαおよびβは、現在のブロックに隣接する因果的な再構成されたサンプルから導出される。
【０１００】
いくつかの例では、クロマ成分のサンプリング率は、ルーマ成分のサンプリング率の半分であり、クロマ成分は、YUV420サンプリング(たとえば、4:2:0クロマサブサンプリングとも呼ばれる)において、垂直方向の0.5ピクセル位相差分を有する。再構成されたルーマサンプルは、次のように、クロマ信号のサイズおよび位相(すなわち、ブロック中の予想されるクロマ成分の数)に一致するように、垂直方向にダウンサンプリングされ、水平方向にサブサンプリングされる。
RecL'[x,y]=(RecL[2x,2y]+RecL[2x,2y+1])>>1  (2)
ただし、>>は、論理右シフトである。
【０１０１】
LMの一例は、ダウンサンプリングされたルーマ成分の因果的な再構成されたデータと、因果的なクロマ成分との間の線形最小2乗解を利用して、線形モデルパラメータαおよびβを導出する。たとえば、モデルパラメータαおよびβは、次のように導出され得る。
【数１】
2019530330.tif 000003
【数２】
2019530330.tif 000004
ただし、RecC(i)およびRecL'(i)は、ターゲットブロックに隣接する、再構成されたクロマサンプルおよびダウンサンプリングされたルーマサンプルを示し、Iは、隣接データのサンプルの総数を示す。
【０１０２】
図4は、モデルパラメータαおよびモデルパラメータβを導出するために使用されるサンプルのロケーションを示す概念図である。図4に示すように、グレーの円としてマークが付けられた左および上の因果的サンプルのみが、サンプル総数Iを2のべき乗として保つために、モデルパラメータαおよびモデルパラメータβの計算に含まれる。ターゲットのN×Nクロマブロックでは、左と上の両方の因果的サンプルが利用可能であるとき、含まれるサンプルの総数は2Nであり、左または上の因果的サンプルのみが利用可能であるとき、含まれるサンプルの総数はNである。
【０１０３】
図5は、ルーマ(Y)成分とクロマ(C)成分との間の線形回帰の一例のグラフである。図5に示すように、一例によれば、ルーマ成分とクロマ成分との間の線形関係は、線形回帰法を使用して解くことができる。図5では、概念図における点が、1対のサンプルRec'L[x,y]、Recc[x,y]に対応する。
【０１０４】
図6は、JEM3.0におけるルーマサンプルダウンサンプリングの一例を示す概念図である。図6の例では、三角形の記号が、ダウンサンプリングされたルーマ値を表し、円の記号が、元の再構成されたルーマサンプル(すなわち、いかなるダウンサンプリングよりも前のもの)を表す。直線は、元のルーマサンプルのうちのどれが、各固有のダウンサンプリングフィルタに従って、ダウンサンプリングされたルーマ値を作り出すために使用されるかを表す。一例では、JVETは、本開示の図6に示すように、JEM3.0におけるLMモードのためのより高度なルーマサンプルダウンサンプリングフィルタを使用し、ただし、次の通りである。
Rec'L[x,y]=(2・RecL[2x,2y]+2・RecL[2x,2y+1]+RecL[2x-1,2y]+RecL[2x+1,2y]+RecL[2x-1,2y+1]+RecL[2x+1,2y+1]+4)>>3
【０１０５】
サンプルがピクチャ境界に位置するとき、上記の式(2)に示すように、2タップフィルタが適用され得る。
【０１０６】
LMクロマ予測のための以前の技法は、再構成されたルーマ値からクロマ値を予測するための、単一の線形回帰モデルを使用した。しかしながら、この手法は、いくつかのビデオシーケンスにとって欠点を有することがある。たとえば、ルーマサンプルとクロマサンプルとの間の関係は、すべての可能なルーマ値にわたって線形でないことがある。したがって、LMクロマ予測は、いくつかの例では、復号ビデオ中に望ましくない量のひずみを導入することがある。このことは、広範囲のルーマ値を有するビデオデータのブロックに特に当てはまり得る。本開示は、ルーマサブサンプリングのための技法を含む、LMクロマ予測と、組み合わせられたLMクロマ予測および角度予測モードとを実行するための技法について説明する。本開示の技法は、LMクロマ予測モードを使用して符号化および復号されたビデオデータの視覚的品質を改善し得る。
【０１０７】
いくつかの例では、本開示は、複数のルーマサブサンプリングフィルタの概念について説明する。一例では、LMクロマ予測モードが有効化されるとき、ダウンサンプリングフィルタの1つまたは複数のセットが、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはスライスヘッダのいずれかにおいてさらにシグナリングされ得る。一例では、補足エンハンスメント情報(SEI)メッセージシンタックスが、ダウンサンプリングフィルタを記述するために導入され得る。一例では、デフォルトのダウンサンプリングフィルタ、たとえば、6タップフィルタ[1,2,1;1,2,1]が、シグナリングなしで定義され得る。一例では、ビデオエンコーダ20は、1つのPU/CU/最大CUにおいて、LM予測モードで使用されるフィルタのインデックスをシグナリングし得る。一例では、フィルタタップの使用は、シグナリングなしにオンザフライで導出され得る。たとえば、ビデオデコーダ30は、明示的なシグナリングなしに、符号化ビデオビットストリームおよび/またはコーディングモードの特性から、フィルタタップの使用を決定するように構成され得る。
【０１０８】
以下でさらに詳細に説明するように、本開示は、マルチモデルLM(MMLM)方法、マルチフィルタLM(MFLM)方法、およびLM角度予測(LAP)について説明し、その各々が単独で、または任意の組合せで利用され得る。
【０１０９】
一例では、MMLM方法が利用されるとき、ビデオエンコーダ20およびビデオデコーダ30は、単一のブロック/コーディングユニット(CU)/変換ユニット(TU)について、2つ以上の線形モデル(たとえば、複数の線形モデル)を使用して、ブロックのルーマ成分からブロックのクロマ成分を予測するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、隣接ルーマサンプルと隣接クロマサンプルとを使用して、複数の線形モデルを導出するように構成され得る。
【０１１０】
現在のブロックの隣接ルーマサンプルおよび隣接クロマサンプルは、サンプルの値に基づいて、いくつかのグループに分類され得る。各グループは、異なる線形モデルを導出するためのトレーニングセットとして使用される(すなわち、特定のαおよびβが、各特定のグループについて導出される)。一例では、さらに、ビデオエンコーダ20およびビデオデコーダ30は、隣接サンプルの分類のための同じルールに基づいて、対応する現在のルーマブロック(すなわち、現在のクロマブロックに対応するルーマブロック)のサンプルを分類するように構成される。
【０１１１】
一例では、ビデオエンコーダ20およびビデオデコーダ30は、部分的な予測されたクロマブロックを取得するために、各線形モデルを対応する分類されたルーマサンプルに適用するように構成される。ビデオエンコーダ20およびビデオデコーダ30は、線形モデルの各々から取得された各部分的な予測されたクロマブロックを組み合わせて、最終的な予測されたクロマブロックを取得するように構成される。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、各線形モデルを現在のブロックのルーマサンプルのすべてに適用して、複数の予測されたクロマブロックを取得するように構成され得る。次いで、ビデオエンコーダ20およびビデオデコーダ30は、加重平均を複数の予測されたクロマブロックの各々に適用して、最終的な予測されたクロマブロックを取得し得る。
【０１１２】
いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、分類後のグループ中のサンプルの数が、特定の数以上であること(たとえば、分類グループ当たり少なくとも2つのサンプル)を必要とするように構成され得る。一例では、1つの分類グループ中のサンプルの最も少数があらかじめ定義され、同じ値がすべてのブロックサイズについて使用される。別の例では、1つの分類グループ中のサンプルの最も少数が可変であり得、現在のブロックのサイズに依存し得、かつ/または、他の特徴に依存し得る(たとえば、どの分類グループが最も少数のサンプルを含むかは、隣接ブロックの予測モードに依存し得る)。グループ中のサンプルの数が、あるブロックについて定義された最小値よりも小さい場合、他のグループ中のサンプルが、このグループに変更され得る(たとえば、隣接する分類グループからのサンプルが組み合わせられ得る)。たとえば、大部分のサンプルをもつグループ中のサンプルが、ブロックについて定義された最小数未満のサンプルをもつグループに変更され得る。
【０１１３】
一例では、大部分のサンプルをもつグループ(グループAと呼ばれる)中のサンプルは、それがブロックについて定義された最小数未満のサンプルをもつグループ(グループBと呼ばれる)中の既存のサンプルにとって最も近いサンプルである場合、グループBに変更され得る。一例では、「最も近い」は、ピクセル位置において最も近いことを指すことがある。別の例では、「最も近い」は、最も近い強度(たとえば、クロマまたはルーマ値)を指すことがある。別の例では、ブロックについて定義された最小数は、コーディングブロックの幅および/または高さに依存し得る。
【０１１４】
一例では、隣接ルーマサンプルおよびクロマサンプルの分類は、サンプルの強度(たとえば、ルーマおよび/またはクロマ隣接サンプルの値)、ならびに/あるいは隣接ルーマサンプルおよび/またはクロマサンプルの位置に基づき得る。一例では、ビデオエンコーダ20は、使用されるべき分類方法を示すシンタックス要素を、ビデオデコーダ30にシグナリングするように構成され得る。
【０１１５】
一例では、クラスの数は、すべてのビデオシーケンスについてあらかじめ定義され、固定され得る。一例では、ビデオエンコーダ20は、PPS、SPS、および/またはスライスヘッダのうちの1つまたは複数において、符号化ビデオビットストリームにおけるクラスの数を、ビデオデコーダ30にシグナリングするように構成され得る。一例では、クラスの数は、現在のルーマ/クロマブロックのブロックサイズ、たとえば、幅および/または高さに依存し得る。MMLMのためのM個のクラスの一例は、次のように与えられる。
【数３】
2019530330.tif 000005
【０１１６】
上記の例では、T1-TM-1は、各分類グループのためのしきい値レベルであり、したがって、各対応する線形モデルのためのしきい値レベル
【数４】
2019530330.tif 000006
である。上記の例では、しきい値は、ルーマサンプルの値として定義され得る。2つの連続するしきい値の間の値(たとえば、Tm-1<Rec'L[x,y]≦Tm)をもつ隣接ルーマサンプル(Rec'L[x,y])は、m番目のグループ(mは、両端値を含む1からMまでである)に分類される。一例では、T-1は、負値、たとえば、-1として定義され得る。(T1...TM-1)によって示された(M-1)個のしきい値が、ビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。他の例では、しきい値は、あらかじめ定義され、ビデオエンコーダ20およびビデオデコーダ30の各々に記憶され得る。
【０１１７】
一例では、ビデオエンコーダ20およびビデオデコーダ30は、隣接コード化ルーマ/クロマサンプルのすべてもしくは部分的サブセット、および/または現在のブロック中のコード化ルーマサンプルに応じて、しきい値を計算するように構成され得る。
【０１１８】
図7A〜図7Eは、本開示の例による、複数のグループへの隣接サンプルの分類と、各グループのための線形モデルの決定とを示すグラフである。2つのグループへの隣接サンプルの分類を図7Aに示し、3つのグループへの隣接サンプルの分類を図7Bに示し、2つ以上の不連続グループへの隣接サンプルの分類を図7C〜図7Eに示す。いくつかの例では、しきい値の定義または計算は、異なるM値の下で異なり得る(たとえば、グループの数、およびしたがって、線形モデルの数に応じて、異なるしきい値)。
【０１１９】
一例では、図7Aに示すように、Mが2に等しいとき、隣接サンプルが2つのグループに分類され得る。Rec'L[x,y]≦しきい値である隣接サンプルは、グループ1に分類され得るが、Rec'L[x,y]>しきい値である隣接サンプルは、グループ2に分類され得る。ビデオエンコーダ20およびビデオデコーダ30は、次のように2つの線形モデル(グループごとに1つずつ)を導出するように構成され得る。
【数５】
2019530330.tif 000007
【０１２０】
図7Aによる一例(すなわち、2つのグループが分類される場合)では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値を、隣接コード化(「再構成された」としても示される)ルーマサンプルの平均値として計算するように構成され得る。上記で説明したように、ビデオエンコーダ20およびビデオデコーダ30は、クロマ成分がサブサンプリングされる(たとえば、4:4:4以外のクロマサブサンプリングフォーマットが使用される)場合、再構成されたルーマサンプルをダウンサンプリングするように構成され得る。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値を隣接コード化ルーマサンプルの中央値として計算するように構成され得る。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値をminVとmaxVとの平均として計算するように構成され得、minVおよびmaxVは、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの最小値および最大値である。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値を、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、現在のブロック中のコード化ルーマサンプルとの平均値として計算するように構成され得る。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値を、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、現在のブロック中のコード化ルーマサンプルとの中央値として計算するように構成され得る。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値をminVとmaxVとの平均として計算するように構成され得、minVおよびmaxVは、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、現在のブロック中のコード化ルーマサンプルとの最小値および最大値である。
【０１２１】
一例では、図7Bに示すように、Mが3に等しいとき、隣接サンプルが3つのグループに分類され得る。Rec'L[x,y]≦しきい値1である隣接サンプル(たとえば、ルーマサンプル)は、グループ1に分類され得、しきい値1<Rec'L[x,y]≦しきい値2である隣接サンプルは、グループ2に分類され得、Rec'L[x,y]>しきい値2である隣接サンプルは、グループ3に分類され得る。ビデオエンコーダ20およびビデオデコーダ30は、次のように3つの線形モデルを導出するように構成され得る。
【数６】
2019530330.tif 000008
【０１２２】
一例では、ビデオエンコーダ20およびビデオデコーダ30は、Mが2に等しい場合、上記で説明した方法を使用して、しきい値を計算するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、しきい値1(たとえば、図7Bに示すもの)を、minVとしきい値との平均として計算するようにさらに構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、しきい値2(たとえば、図7Bに示すもの)を、maxVとしきい値との平均として計算するように構成され得る。minVおよびmaxVの値は、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの最小値および最大値であり得る。
【０１２３】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値1を、sumVの1/3として計算するように構成され得、しきい値2は、sumVの2/3として計算され得、ただし、sumVは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの累積合計値である。
【０１２４】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値1を、S[N/3]とS[N/3+1]との間の値として計算するように構成され得、しきい値2は、S[2*N/3]とS[2*N/3+1]との間の値として計算され得る。この例では、Nは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの総数であり得る。S[0]、S[1]、....S[N-2]、S[N-1]は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの昇順ソートシーケンスであり得る。
【０１２５】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、Mが2に等しい場合、上記で説明したいずれかの方法を使用して、しきい値を計算するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、しきい値1を、minVとしきい値との平均として計算するようにさらに構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、しきい値2を、maxVとしきい値との平均として計算するように構成され得る。この例では、minVおよびmaxVの値は、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルの両方の、最小値および最大値であり得る。
【０１２６】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値1をsumVの1/3として計算するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、しきい値2をsumVの2/3として計算するように構成され得る。この例では、sumVは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルの両方の、累積合計値であり得る。
【０１２７】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、しきい値1を、S[N/3]とS[N/3+1]との間の値として計算するように構成され得、しきい値2は、S[2*N/3]とS[2*N/3+1]との間の値として計算され得る。この例では、Nは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルとの、総数であり得る。S[0]、S[1]、....S[N-2]、S[N-1]は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルとの、昇順ソートシーケンスであり得る。
【０１２８】
一例では、各グループの導出された線形関係(図7A〜図7Eにおいて直線として表される)は、図7Aおよび図7Bの場合のように連続区分的であり得、ただし、隣接するグループのための線形モデルは、以下の式(8)および(9)に示すように、様々なしきい値において同じ値を生じる。
図7Aにおいて、Rec'L[x,y]=しきい値の場合、α1・Rec'L[x,y]+β1=α2・Rec'L[x,y]+β2  (8)
であり、図7Bにおいて、
【数７】
2019530330.tif 000009
である。
【０１２９】
別の例では、各グループの導出された線形関係(は、図7Cおよび図7Eの場合のように不連続、区分的であり得、ただし、隣接するグループのための線形モデルは、以下の式(10)および(11)に示すように、様々なしきい値において同じ値を生じない。
図7Cにおいて、Rec'L[x,y]=しきい値の場合、α1・Rec'L[x,y]+β1≠α2・Rec'L[x,y]+β2  (10)
であり、図7Eにおいて、
【数８】
2019530330.tif 000010
である。
【０１３０】
不連続区分的線形モデル(たとえば、図7Cに示す不連続区分的線形モデル)を、連続区分的線形モデルに変換するために、ビデオエンコーダ20およびビデオデコーダ30は、2つのしきい値の間で遷移ゾーンを生成するように構成され得る。遷移ゾーンにおける線形モデルのセグメントは、元の線形モデルを接続する。この場合、不連続の2モデル関係は、変換後、3モデル関係(図7Dに示す)を生じる。ビデオエンコーダ20およびビデオデコーダ30は、分類のための元のしきい値の値と、隣接サンプルの値および/または現在のブロックサンプルのための値とに基づいて、遷移ゾーンの境界(図7DにおけるZoからZ1)を導出するように構成され得る。
【０１３１】
遷移ゾーンのある例では、線形モデルは次のように定義され得る。
Rec'L[x,y]が、遷移ゾーン[Z0,Z1]中にある場合、
【数９】
2019530330.tif 000011
一例では、
s=Z1-Z0,ω1=Z1-Rec'L[x,y],ω2=s-ω1
一例では、
s=2n=Z1-Z0,ω1=Z1-Rec'L[x,y],ω2=s-ω1
【数１０】
2019530330.tif 000012
【０１３２】
変換された連続区分的線形モデルは、不連続連続区分的線形モデルを置き換えるために使用され得るか、または追加のLM予測モードとして挿入され得る。
【０１３３】
本開示のMMLM技法では、より以前のLM予測モード技法に対して、より多くの隣接ルーマおよび/またはクロマサンプルが、線形モデルを導出するために使用され得る。図8Aは、LMモードの以前の例において使用される隣接クロマサンプルを示す。同じ隣接クロマサンプルが、本開示のMMLM技法のために使用され得る。図8B〜図8Dは、本開示の例による、MMLMモードで線形モデルを導出するために使用される隣接クロマサンプルの他の例示的なグループの概念図である。図8B〜図8Dでは、図8Aに対して、より多くの隣接サンプルが、MMLMにおいて線形モデルを導出するために使用される。図8A〜図8Dにおける黒い点は、本開示のMMLM技法の2つ以上の線形モデルを導出するために使用される、隣接クロマサンプルを表す。ブロックの外側の白い点は、使用されない他の隣接クロマサンプルを示す。ボックスの内側の白い点は、予測されるべきブロックのクロマサンプルを表す。対応するダウンサンプリングされたルーマサンプルもまた、線形モデルを導出するために使用され得る。
【０１３４】
図9は、本開示のMMLM技法の一例による、隣接サンプル分類の概念図である。図9は、現在のブロックおよび隣接ブロックにおける、コード化隣接クロマサンプルをもつ、4×4の現在のコーディングクロマブロック(Recc)と、対応するコード化ルーマサンプル(4:4:4フォーマットでない場合にダウンサンプリングされ得る、Rec'L)とを示す。一例によれば、MMLMモードでは、ビデオエンコーダ20およびビデオデコーダ30は、隣接コード化ルーマサンプルをグループに分類するように構成され得る。図9の例では、隣接コード化ルーマサンプルが2つのグループに分類される。Rec'L[x,y]≦しきい値である隣接ルーマサンプルは、グループ1に分類され得るが、Rec'L[x,y]>しきい値である隣接サンプルは、グループ2に分類され得る。この例では、しきい値は、たとえば、17であり得る。ビデオエンコーダ20およびビデオデコーダ30は、対応する隣接ルーマサンプルの分類に従って、隣接クロマサンプルを分類するように構成され得る。すなわち、対応するクロマサンプルが、同じ位置における対応するルーマサンプルと同じグループに分類される。
【０１３５】
図9に示すように、現在のブロックと隣接ルーマサンプルの両方における、ルーマサンプルの各々は、各円の中に示された関連するルーマ値を有する。しきい値(この場合、17)以下である隣接ルーマ値は、黒い影付きである(グループ1)。しきい値よりも大きいルーマ値は、白のまま、すなわち、影なしである(グループ2)。隣接クロマサンプルは、同じ位置における対応するルーマサンプルの分類に基づいて、グループ1およびグループ2に分類される。
【０１３６】
図10は、2つのグループに分類される隣接コード化ルーマサンプルのための2つの線形モデルの概念図である。隣接サンプルが(たとえば、図9に示すように)2つのグループに分類された後、ビデオエンコーダ20およびビデオデコーダ30は、図10に示すように、2つのグループ上で別個に、2つの独立した線形モデルを導出するように構成され得る。この例では、次のように、2つの線形モデルが2つのクラスのために取得され得る。
【数１１】
2019530330.tif 000013
線形モデルのためのパラメータは、上記で説明した方法と同じ方法で導出され得、ただし、パラメータは、そのモデルのための特定の分類グループのためのサンプルを使用して、線形モデルごとに導出される。
【０１３７】
図11は、2つの線形モデルのうちの1つの線形モデルであるモデル1を、現在のブロックのすべてのピクセルに適用する概念図である。図12は、2つの線形モデルのうちの別の線形モデルであるモデル2を、現在のブロックのすべてのピクセルに適用する概念図である。一例では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、図11および図12に示すように、モデル1またはモデル2のうちの一方を、現在コーディングされているクロマブロックに対応するダウンサンプリングされたルーマブロック(Rec'L)のサンプルのすべてに適用して、現在のブロックのための予測されたクロマサンプル(Predc)を取得するように構成され得る。一例では、ビデオエンコーダ20およびビデオデコーダ30は、並行して2つのモデルを用いて、予測されたクロマブロックを形成するように構成され得る。次いで、各位置のためのグループ分類に基づいて(すなわち、各クロマ位置における各ルーマ値のグループ分類に基づいて)、2つの予測されたブロックから、特定の予測されたクロマサンプルを選択することによって、最終的な予測が達成され得る。
【０１３８】
別の例では、ビデオエンコーダ20およびビデオデコーダ30は、モデル1とモデル2の両方を、現在コーディングされているクロマブロックに対応するダウンサンプリングされたルーマブロック(Rec'L)のサンプルのすべてに適用して、現在のブロックのための予測されたクロマサンプル(Predc)の2つのバージョンを取得するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、予測されたクロマサンプルの2つのバージョンの加重平均を計算するようにさらに構成される。(モデル1またはモデル2を使用する)2つの予測ブロックの加重平均は、現在のクロマブロックの最終的な予測ブロックとして扱われ得る。任意の重み付けが使用され得る。一例として、0.5/0.5重み付けが使用され得る。
【０１３９】
図13は、本開示のMMLM技法による、別の例示的な予測技法の概念図である。図13に示すように、ビデオエンコーダ20およびビデオデコーダ30は、最初に、現在のブロック中で再構成されたルーマサンプル(Rec'L)を分類し得る。ビデオエンコーダ20およびビデオデコーダ30は、第1の線形モデル(たとえば、図10のモデル1)を(図13において黒い円によって表される)第1の分類グループ中のルーマサンプルに適用するようにさらに構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、第2の線形モデル(たとえば、図10のモデル2)を(図13において白い円によって表される)第2の分類グループ中のルーマサンプルに適用するようにさらに構成され得る。
【０１４０】
図13の例では、(4:4:4フォーマットでない場合にダウンサンプリングされる)コード化ルーマサンプルは、サンプルの強度(たとえば、値)に応じて、2つのグループに分類され得る。しきい値以下の値をもつルーマサンプル(たとえば、Rec'L[x,y]≦しきい値)は、グループ1に分類され得るが、しきい値よりも大きい値をもつルーマサンプル(たとえば、Rec'L[x,y]>しきい値)は、グループ2に分類され得る。この例では、しきい値は17であり得、上記で説明したように、隣接コード化ルーマサンプルを使用して計算される。一例では、現在のブロック中の再構成されたルーマサンプルのための分類方法は、コード化隣接ルーマサンプルのために使用される分類方法と同じである。
【０１４１】
図13に示すように、ビデオエンコーダ20およびビデオデコーダ30は、第1の分類グループ(黒い円)における現在のブロック中の(4:4:4フォーマットでない場合にダウンサンプリングされる)コード化ルーマサンプルに、モデル1を適用して、現在のブロック中の対応する予測されたクロマサンプルを導出するように構成され得る。同様に、ビデオエンコーダ20およびビデオデコーダ30は、第2の分類グループ(白い円)における現在のブロック中の(4:4:4フォーマットでない場合にダウンサンプリングされる)コード化ルーマサンプルに、モデル2を適用して、現在のブロック中の対応する予測されたクロマサンプルを導出するように構成され得る。結果として、現在のブロック中の予測されたクロマサンプルが、2つの線形モデルに従って導出される。より多くのグループがあるとき、より多くの線形モデルが、予測されたクロマサンプルを取得するために使用され得る。
【０１４２】
一例では、ビデオエンコーダ20は、ルーマサンプルが分類されるべきであるグループの数を、ビデオデコーダ30にシグナリングし得る。その数が1である場合、元のLMモードが利用される。別の例では、異なる数のグループをもつLMモードが、異なるLMモードとして扱われ得る。たとえば、LM-MM1モードは1つのグループを含み、LM-MM2モードは2つのグループを含み、LM-MM3モードは3つのグループを含む。LM-MM1は、元のLMモードに等しくなり得るが、LM-MM2およびLM-MM3は、本開示の技法に従って実行され得る。さらに別の例では、ビデオデコーダ30は、ビデオエンコーダ20がグループの数をシグナリングすることなしに、グループの数を導出し得る。
【０１４３】
本開示の別の例では、マルチフィルタLM(MFLM)モードについて説明する。MFLMモードでは、ビデオデータが4:4:4クロマサブサンプリングフォーマットでない場合、2つ以上のルーマダウンサンプリングフィルタが定義され得る。たとえば、JEM-3.0において定義されたダウンサンプリングフィルタ(本開示の図6に示す)のほかに、追加のダウンサンプリングフィルタが使用され得る。フィルタは、次の形式であり得る。
Rec'L[x,y]=a・RecL[2x,2y]+b・RecL[2x,2y+1]+c・RecL[2x-1,2y]+d・RecL[2x+1,2y]+e・RecL[2x-1,2y+1]+f・RecL[2x+1,2y+1]+g  (12)
ただし、フィルタ重みa、b、c、d、e、f、gは、実数である。
または、
Rec'L[x,y]=(a・RecL[2x,2y]+b・RecL[2x,2y+1]+c・RecL[2x-1,2y]+d・RecL[2x+1,2y]+e・RecL[2x-1,2y+1]+f・RecL[2x+1,2y+1]+g)/h  (13)
ただし、フィルタ重みa、b、c、d、e、f、g、hは、整数である。
または、
Rec'L[x,y]=(a・RecL[2x,2y]+b・RecL[2x,2y+1]+c・RecL[2x-1,2y]+d・RecL[2x+1,2y]+e・RecL[2x-1,2y+1]+f・RecL[2x+1,2y+1]+g)>>h  (14)
ただし、フィルタ重みa、b、c、d、e、f、g、hは、整数である。
【０１４４】
図14A〜図14Cは、本開示の一例によるルーマサブサンプリングフィルタの概念図である。図14A〜図14Cの例では、三角形の記号が、ダウンサンプリングされたルーマ値を表し、円の記号が、元の再構成されたルーマサンプル(すなわち、いかなるダウンサンプリングよりも前のもの)を表す。直線は、元のルーマサンプルのうちのどれが、各固有のダウンサンプリングフィルタに従って、ダウンサンプリングされたルーマ値を作り出すために使用されるかを表す。図14A〜図14Cに示す様々なダウンサンプリングフィルタのための式を、以下に示す。
(a) Rec'L[x,y]=(RecL[2x,2y]+RecL[2x+1,2y]+1)>>1
(b) Rec'L[x,y]=(RecL[2x+1,2y]+RecL[2x+1,2y+1]+1)>>1
(c) Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+1)>>1
(d )Rec'L[x,y]=(RecL[2x,2y+1]+RecL[2x+1,2y+1]+1)>>1
(e) Rec'L[x,y]=(RecL[2x,2y]+RecL[2x+1,2y+1]+1)>>1
(f) Rec'L[x,y]=(RecL[2x,2y+1]+RecL[2x+1,2y]+1)>>1
(g) Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+RecL[2x-1,2y]+RecL[2x-1,2y+1]+2)>>2
(h) Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+RecL[2x+1,2y]+RecL[2x+1,2y+1]+2)>>2
(i) Rec'L[x,y]=(2・RecL[2x,2y]+RecL[2x+1,2y]+RecL[2x-1,2y]+2)>>2
(j) Rec'L[x,y]=(2・RecL[2x,2y+1]+RecL[2x+1,2y+1]+RecL[2x-1,2y+1]+2)>>2
(k) Rec'L[x,y]=(RecL[2x-1,2y]+RecL[2x-1,2y+1]+1)>>1
(l) Rec'L[x,y]=(RecL[2x,2y+1]+RecL[2x-1,2y+1]+1)>>1
(m) Rec'L[x,y]=(RecL[2x-1,2y]+RecL[2x,2y+1]+1)>>1
(n) Rec'L[x,y]=(RecL[2x,2y]+RecL[2x-1,2y+1]+1)>>1
(o) Rec'L[x,y]=(RecL[2x,2y]+RecL[2x-1,2y]+1)>>1
(p) Rec'L[x,y]=(2・RecL[2x+1,2y]+RecL[2x+1,2y]+RecL[2x+1,2y+1]+2)>>2
(q) Rec'L[x,y]=(2・RecL[2x+1,2y+1]+RecL[2x,2y+1]+RecL[2x+1,2y]+2)>>2
(r) Rec'L[x,y]=(5・RecL[2x,2y+1]+RecL[2x-1,2y+1]+RecL[2x+1,2y+1]+RecL[2x,2y]+4)>>3
【０１４５】
ビデオシーケンスが、4:4:4クロマサブサンプリングフォーマットでない(すなわち、クロマサブサンプリングがない)場合、ビデオエンコーダ20およびビデオデコーダ30は、元のLMモード(たとえば、単一モデルLMモード)と、図14A〜図14Cに示すフィルタのうちの1つまたは複数(または、JEM-3.0において定義され、図6に示したものに加えて、フィルタの任意の集合)とを使用して、MFLMを実行するように構成され得る。加えて、本開示のMFLM技法は、上記で説明したMMLM技法とともに使用され得る。
【０１４６】
いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、5つのフィルタなど、いくつかの候補ダウンサンプリングフィルタのうちの1つを使用するように、あらかじめ構成され得る。ビデオエンコーダ20は、所与のビデオシーケンスのために使用するべき最適なフィルタを(たとえば、ビットレートひずみテストに基づいて)決定し、符号化ビデオビットストリームにおいてビデオデコーダ30にフィルタインデックスをシグナリングし得る。フィルタインデックスは、シンタックス要素のシーケンスレベルにおいて(たとえば、VPS/SPSにおいて)、ピクチャレベルにおいて(たとえば、PPSにおいて)、スライスレベルにおいて(たとえば、スライスヘッダまたはスライスセグメントヘッダにおいて)、コーディングツリーユニットレベル(CTUにおいて)、コーディングユニットレベル(CUにおいて)、予測ユニットレベル(PUにおいて)、変換ユニットレベル(TUにおいて)、または任意の他のレベルにおいてシグナリングされ得る。
【０１４７】
一例では、5つの候補フィルタは、以下に示すようなものであり得る。
フィルタ0: Rec'L[x,y]=(2・RecL[2x,2y]+2・RecL[2x,2y+1]+RecL[2x-1,2y]+RecL[2x+1,2y]+RecL[2x-1,2y+1]+RecL[2x+1,2y+1]+4)>>3
フィルタ1: Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+RecL[2x+1,2y]+RecL[2x+1,2y+1]+2)>>2
フィルタ2: Rec'L[x,y]=(RecL[2x,2y]+RecL[2x+1,2y]+1)>>1
フィルタ3: Rec'L[x,y]=(RecL[2x+1,2y]+RecL[2x+1,2y+1]+1)>>1
フィルタ4: Rec'L[x,y]=(RecL[2x,2y+1]+RecL[2x+1,2y+1]+1)>>1
フィルタ1は、JEM-3.0における元の6タップフィルタである。
【０１４８】
異なるフィルタをもつLMモードは、LM-MF0、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、異なるLMモードとして扱われ得る。上記の例では、LM-MF0は、元のLMモードに等しい。別の例では、ビデオデコーダ30は、ビデオエンコーダ20がダウンサンプリングフィルタをシグナリングすることなしに、ダウンサンプリングフィルタを導出し得る。フィルタリングされた結果は、有効なルーマ値範囲に短縮され得る。
【０１４９】
図15は、本開示の一例によるLM角度予測(LAP)モードにおけるシグナリングのフローチャートである。LM角度予測(LAP)では、いくつかの種類の角度予測(方向性予測、DC予測、平面予測、または他の非成分間イントラ予測を含み得る)が、本開示のMMLM技法を含む、LM予測技法と組み合わせられて、クロマブロックの最終的な予測が取得され得る。現在のクロマブロックが、従来のイントラ予測を用いるが、いかなるLMモードでもなくコーディングされる場合、たとえば、LAP_flagと呼ばれるフラグなどのシンタックス要素がシグナリングされ得る。現在のクロマブロックのための予測モードがモードXであると仮定すると、次いで、Xは、ある種類の角度イントラ予測(平面モードおよびDCモードを含む)であり得る。現在のクロマブロックが、DMモードとしてシグナリングされる場合、対応するルーマブロックのある種類の角度予測モードに等しいので、現在のクロマブロックは、角度モードとしても扱われることに留意されたい。
【０１５０】
LAP予測モードをシグナリングする一例を、図15に示す。ビデオデコーダ30は、LMモードが現在のクロマブロックを符号化するために使用されたか否かを決定し得る(120)。yesの場合、ビデオデコーダ30は、ビデオエンコーダ20によって使用されたLMモードを使用して、現在のクロマブロックを復号するように進む(124)。noの場合、ビデオデコーダ30は、LAP_flagを読み取り、パースする(122)。LAP_flagが、LAP予測モードが使用されるべきであると示す場合(たとえば、LAP_flag==1)、ビデオデコーダ30は、LAP予測モードを使用して、現在のクロマブロックを復号する(128)。LAP_flagが、LAP予測モードが使用されるべきではないと示す場合(たとえば、LAP_flag==0)、ビデオデコーダ30は、角度予測を使用して現在のクロマブロックを復号する(126)。
【０１５１】
LAPでは、2つの予測パターンが、最初にクロマブロックについて生成され、次いで、2つの予測パターンが一緒に組み合わせられる。一方の予測パターンは、いくつかの角度予測モードのうちの1つ(たとえば、角度モードX)を用いて生成され得る。他方の予測は、上記で説明したLM-MM2モードなど、一種のLMモードを用いて生成され得る。
【０１５２】
図16は、本開示の一例によるLAPのブロック図である。図16に示すように、LAPの一例では、最初に、現在のブロック中の各サンプルのための予測が、角度予測モードXを用いて生成され、P1(x,y)として示され得る。次いで、現在のブロック中の各サンプルの予測が、LM-MM2モードを用いて生成され、P2(x,y)として示され得る。次いで、最終的なLM角度予測が次のように計算され得る。
P(x,y)=w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y)  (15)
ただし、(x,y)は、ブロック中のサンプルの座標を表し、w1(x,y)およびw2(x,y)は実数である。一例では、w1およびw2は、0.5の値を有し得る。式(15)では、w1(x,y)およびw2(x,y)が以下を満たし得る。
w1(x,y)+w2(x,y)=1  (16)
別の例では、
P(x,y)=(w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y)+a)/b  (17)
ただし、w1(x,y)、w2(x,y)、aおよびbは整数である。
式(17)では、w1(x,y)およびw2(x,y)が以下を満たし得る。
w1(x,y)+w2(x,y)=b  (18)
別の例では、
P(x,y)=(w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y)+a)>>b  (19)
ただし、w1(x,y)、w2(x,y)、aおよびbは整数である。
式(17)では、w1(x,y)およびw2(x,y)が以下を満たし得る。
w1(x,y)+w2(x,y)=2b  (20)
一例では、w1(x,y)およびw2(x,y)は、異なる(x,y)によって異なり得る。別の例では、w1(x,y)およびw2(x,y)は、すべての(x,y)について不変のままであり得る。一例では、
すべての(x,y)について、P(x,y)=(P1(x,y)+P2(x,y)+1)>>1  (21)
である。
【０１５３】
一例では、LAP_flagは、CABACを使用してコーディングされ得る。コーディングコンテキストは、隣接ブロックのコード化/復号LAP_flagに依存し得る。たとえば、LAP_flagのための3つのコンテキスト、すなわち、LAPctx[0]、LAPctx[1]、およびLAPctx[2]があり得る。図17は、現在のブロックの隣接ブロックの概念図である。変数ctxは、ctx=LAP_flag_A+LAP_flag_Bとして計算され、ただし、LAP_flag_AおよびLAP_flag_Bは、それぞれ、図17に示すように、隣接ブロックAおよびB、または隣接ブロックA1およびB1のLAP_flagである。一例では、P(x,y)は、有効クロマ値範囲に短縮され得る。
【０１５４】
本開示の提案する方法を使用することで、JEM-3.0において指定されたLMモードと比較して、はるかに多いタイプの使用されるLMモードがあり得る。本開示は、特定のブロックのために使用されるクロマイントラ予測モードをコーディングするための効率的な方法についてさらに説明する。概して、ビデオエンコーダ20およびビデオデコーダ30は、隣接ブロックのクロマイントラ予測モード、および/または現在のブロックの他の情報に応じて、(可能なMMLMモード、MFLMモード、または組み合わせられたMMLMおよびMFLMモードを含む)使用されるLM予測モードをコーディングするように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、使用される可能性が最も高いモードが、モードを指定するために使用された最小のコードワードとともにコーディングされるように、使用されるLM予測モードをコーディングするように構成され得る。このようにして、より少ないビットが、LMモードを示すために使用され得る。どのモードが、最小のコードワードとともに指定されるかは、隣接ブロックのクロマイントラ予測モード、および/または現在のブロックの他の情報に基づいて適応的であり得る。
【０１５５】
一例では、LM、LM-MM2(2つの線形モデル)、LM-MM3(3つの線形モデル)、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、いくつかのLMモードが、候補LMモードである。モードLM-MFXは、特定のサブセットのルーマダウンサンプリングフィルタを使用する、特定のLMモードを示し得る。LM-MFモードは、単一の線形モデルLMモード、または本開示の技法によるMMLMを使用し得る。この例では、7つの候補LMモードがあり、現在のブロックが角度モードでコーディングされ、LMモードではない場合を表すために、Non-LMモードが付加される。Non-LMがシグナリングされる場合、JEM-3.0またはいずれかの他の方法の場合のように、角度モードがシグナリングされる。提案するLMモードシグナリング方法は、説明したような特定のLM予測モードに限定されない。コーディング方法(コードワードマッピングおよび2値化、他を含む)は、任意の他の種類のLMモード、またはクロマイントラ予測モードシグナリングのために適用され得る。ビデオエンコーダ20およびビデオデコーダ30は、DM_flagを最初にコーディングする。クロマ予測モードがDMモードではない場合、現在のクロマ予測モードを示すために、提案するLM_coding()モジュールが呼び出される。LM_coding()モジュールがNon-LMモードをコーディングする場合、Chroma_intra_mode_coding()モジュールが呼び出されて、角度クロマ予測モードがコーディングされる。例示的なコーディング論理は、次のようになる。
{
DM_flag,
if(DM_flag==0)
{
LM_coding();
if(IsNotLM(mode))
{
Chroma_intra_mode_coding();
}
}
}
【０１５６】
8つの可能なモード(非LMモードを含む)をシグナリングするために、異なるコードワード、または2値化をもつ、8つのシンボル0、1、...、6、7が、8つの可能なモードを表すために使用され得る。より小さい数をもつシンボルは、より大きい数をもつシンボルのコード長(ビット単位)よりも長いコード長を有するべきではない。シンボルは、固定長コード、単項コード、短縮単項コード、指数ゴロムコードなど、何らかの方法で2値化され得る。各シンボルのための別の例示的な2値化は、次のようになる。
0: 00
1: 01
2: 100
3: 101
4: 1100
5: 1101
6: 1110
7: 1111
【０１５７】
別の例では、各シンボルのためのコードワードは、次のようになり得る。
0: 0
1: 100
2: 101
3: 1100
4: 1101
5: 1110
6: 11110
7: 11111
【０１５８】
一例では、ビデオエンコーダ20およびビデオデコーダ30は、シンボルとモードとの間のデフォルトマッピング、すなわち、コード化値とコーディングモードとの間のマッピングを実行するように構成され得る。たとえば、デフォルトマッピングリストは、次のようになり得る。
0: LM
1: LM-MM2
2: LM-MM3
3: LM-MF1
4: LM-MF2
5: LM-MF3
6: LM-MF4
7: Non-LM
【０１５９】
一例によれば、マッピングが固定され得る。別の例では、マッピングは、隣接ブロックの復号情報、および/または現在のブロックの復号情報に従って、動的であり得る。一例では、モードNon-LMのためのシンボルが、Kとして示された、LMモードでコーディングされた隣接クロマブロックの数に応じて、マッピングリストに挿入され得る。一例では、隣接クロマブロックは、図17に示すように、マージ候補リスト構成プロセスにおいて利用された5つのブロック、すなわち、A0、A1、B0、B1、およびB2であるように定義され得る。次いで、シンボルマッピングリストは、次のようになり得る。
-  K==0の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  0<K≦3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  K>3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
【０１６０】
別の例では、モードNon-LMのためのシンボルが、K'として示された、LMモードでコーディングされていない隣接クロマブロックの数に応じて、マッピングリストに挿入され得る。次いで、シンボルマッピングリストは、次のようになり得る。
-  K'==5の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  2≦K'<5の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  K'≦2の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
【０１６１】
別の例では、モードNon-LMのためのシンボルが、K'として示された、LMモードではなく、イントラモードでコーディングされていない隣接クロマブロックの数に応じて、マッピングリストに挿入され得る。次いで、シンボルマッピングリストは、次のようになり得る。
-  K'≧3の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  2≦K'<3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  1≦K'<2の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: Non-LM,6: LM-MF3,7: LM-MF4;
-  K'==0の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
【０１６２】
別の例では、モード非LMのためのシンボルが、K'として示された、LMモードではなく、イントラモードでコーディングされていない隣接クロマブロックの数に応じて、マッピングリストに挿入され得る。次いで、シンボルマッピングリストは、次のようになり得る。
-  K'≧3の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  1≦K'<3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  K==0の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: Non-LM,6: LM-MF3,7: LM-MF4;
【０１６３】
別の例では、モード非LMのためのシンボルが、K'として示された、LMモードではなく、イントラモードでコーディングされていない隣接クロマブロックの数に応じて、マッピングリストに挿入され得る。次いで、シンボルマッピングリストは、次のようになり得る。
-  K'≧3の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  2≦K'<3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  K'<2の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
【０１６４】
別の例では、モードNon-LMのためのシンボルが、K'として示された、LMモードではなく、イントラモードでコーディングされていない隣接クロマブロックの数に応じて、マッピングリストに挿入され得る。次いで、シンボルマッピングリストは、次のようになり得る。
-  K'≧3の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  1≦K'<3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
-  K'==0の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
【０１６５】
いくつかの例では、本開示のLMの使用は、ブロックサイズに依存し得る。一例では、現在のクロマブロックのサイズがM×Nである場合、M×N≦Tである場合、LM-Xは適用可能ではない。Tは、固定数であり得るか、またはTの値は、ビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。LM-Xは、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、いずれかの提案する新しいLMモードであり得る。
【０１６６】
別の例では、現在のクロマブロックのサイズがM×Nである場合、M+N≦Tである場合、LM-Xは適用可能ではない。Tは、固定数であり得るか、またはTの値は、ビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。LM-Xは、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、いずれかの提案する新しいLMモードであり得る。
【０１６７】
さらに別の例では、現在のクロマブロックのサイズがM×Nである場合、Min(M,N)≦Tである場合、LM-Xは適用可能ではない。Tは、固定数であり得るか、またはTの値は、ビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。LM-Xは、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、いずれかの提案する新しいLMモードであり得る。
【０１６８】
さらに別の例では、現在のクロマブロックのサイズがM×Nである場合、Max(M,N)≦Tである場合、LM-Xは適用可能ではない。Tは、固定数であり得るか、またはTの値は、ビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。LM-Xは、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、いずれかの提案する新しいLMモードであり得る。
【０１６９】
提案するLAPモードの使用は、ブロックサイズに依存し得る。一例では、M×N≦Tである場合、LAPは適用可能ではない。Tは、固定数であり得るか、またはTの値は、ビデオエンコーダ20からビデオデコーダ30にシグナリングされ得る。別の例では、M+N≦Tである場合、LAPは適用可能ではない。さらに別の例では、Min(M,N)≦Tである場合、LAPは適用可能ではない。さらに別の例では、Max(M,N)≦Tである場合、LAPは適用可能ではない。Tは、たとえば、4、5、6、7、8、9、10、11、12、13、14、15、16、...、など、任意の整数であり得る。
【０１７０】
図18は、本開示の例示的な符号化方法を示すフローチャートである。図18の技法は、ビデオエンコーダ20の1つまたは複数の構成要素によって実行され得る。
【０１７１】
本開示の一例では、ビデオエンコーダ20は、第1のビデオデータのブロックのためのルーマサンプルのブロックを符号化すること(132)、ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すこと(134)、および、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測すること(136)を行うように構成され得る。
【０１７２】
本開示の別の例では、ビデオエンコーダ20は、第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、2つ以上の線形予測モデルの各々のためのパラメータを決定するように構成され得る。一例では、ビデオエンコーダ20は、第1のしきい値よりも大きい再構成されたルーマサンプルを、複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類すること、第1のしきい値以下である再構成されたルーマサンプルを、複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類すること、第1のサンプルグループ中の再構成されたルーマサンプルに、2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用すること、第2のサンプルグループ中の再構成されたルーマサンプルに、2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用することであって、第2の線形予測モデルが第1の線形予測モデルとは異なる、こと、および、適用された第1の線形予測モデルと適用された第2の線形予測モデルとに基づいて、第1のビデオデータのブロック中の予測されたクロマサンプルを決定することを行うように構成され得る。一例では、第1のしきい値は、隣接コード化ルーマサンプルおよびクロマサンプルに依存する。
【０１７３】
本開示の別の例では、ビデオエンコーダ20は、再構成されたルーマサンプルをダウンサンプリングするように構成され得る。本開示の別の例では、ビデオエンコーダ20は、再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定すること、決定されたダウンサンプリングフィルタを使用して、再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成すること、および、ダウンサンプリングされたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行うように構成され得る。
【０１７４】
本開示の別の例では、ビデオエンコーダ20は、2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定するように構成され得る。第2のビデオデータのブロックのクロマサンプルが、線形予測モデルを使用してコーディングされない場合、ビデオエンコーダ20は、線形モード角度予測モードが有効化されると決定すること、角度モード予測パターンを、第2のビデオデータのブロックのクロマサンプルに適用して、第1の予測されたクロマ値を作成すること、線形モデル予測パターンを、第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成すること、および、第1の予測されたクロマ値と第2の予測されたクロマ値との加重平均を決定することによって、第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定することを行うように構成され得る。
【０１７５】
本開示の別の例では、ビデオエンコーダ20は、線形予測モデルコーディングモードを使用してコーディングされる、第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定すること、および、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更することを行うように構成され得る。一例では、ビデオエンコーダ20は、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用すること、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用すること、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの数が、しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用することを行うように構成され得る。
【０１７６】
図19は、本開示の例示的な符号化方法を示すフローチャートである。図19の技法は、ビデオデコーダ30の1つまたは複数の構成要素によって実行され得る。
【０１７７】
本開示の一例では、ビデオデコーダ30は、第1のビデオデータのブロックのためのルーマサンプルの符号化ブロックを受信すること(142)、ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと(144)、および、第1のビデオデータのブロックのための再構成されたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測すること(146)を行うように構成され得る。
【０１７８】
本開示の別の例では、ビデオデコーダ30は、第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、2つ以上の線形予測モデルの各々のためのパラメータを決定するように構成され得る。一例では、ビデオデコーダ30は、第1のしきい値よりも大きい再構成されたルーマサンプルを、複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類すること、第1のしきい値以下である再構成されたルーマサンプルを、複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類すること、第1のサンプルグループ中の再構成されたルーマサンプルに、2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用すること、第2のサンプルグループ中の再構成されたルーマサンプルに、2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用することであって、第2の線形予測モデルが第1の線形予測モデルとは異なる、こと、および、適用された第1の線形予測モデルと適用された第2の線形予測モデルとに基づいて、第1のビデオデータのブロック中の予測されたクロマサンプルを決定することを行うように構成され得る。一例では、第1のしきい値は、隣接コード化ルーマサンプルおよびクロマサンプルに依存する。
【０１７９】
本開示の別の例では、ビデオデコーダ30は、再構成されたルーマサンプルをダウンサンプリングするように構成され得る。本開示の別の例では、ビデオデコーダ30は、再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定すること、決定されたダウンサンプリングフィルタを使用して、再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成すること、および、ダウンサンプリングされたルーマサンプルと、2つ以上の線形予測モデルとを使用して、第1のビデオデータのブロックのためのクロマサンプルを予測することを行うように構成され得る。
【０１８０】
本開示の別の例では、ビデオデコーダ30は、2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定するように構成され得る。第2のビデオデータのブロックのクロマサンプルが、線形予測モデルを使用してコーディングされない場合、ビデオデコーダ30は、線形モード角度予測モードが有効化されると決定すること、角度モード予測パターンを、第2のビデオデータのブロックのクロマサンプルに適用して、第1の予測されたクロマ値を作成すること、線形モデル予測パターンを、第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成すること、および、第1の予測されたクロマ値と第2の予測されたクロマ値との加重平均を決定することによって、第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定することを行うように構成され得る。
【０１８１】
本開示の別の例では、ビデオデコーダ30は、線形予測モデルコーディングモードを使用してコーディングされる、第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定すること、および、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの決定された数に基づいて、線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更することを行うように構成され得る。一例では、ビデオデコーダ30は、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用すること、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用すること、線形予測モデルコーディングモードを使用してコーディングされたビデオデータの隣接クロマブロックの数が、しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用することを行うように構成され得る。
【０１８２】
図20は、現在のブロックを符号化するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUまたは現在のCUの一部分を備え得る。ビデオエンコーダ20(図1および図2)に関して説明するが、他のデバイスが、図20の方法に類似する方法を実行するように構成されてもよいことを理解されたい。
【０１８３】
この例では、ビデオエンコーダ20は、最初に、現在のブロックを予測する(150)。たとえば、ビデオエンコーダ20は、現在のブロックのための1つまたは複数の予測ユニット(PU)を計算し得る。次いで、ビデオエンコーダ20は、たとえば、変換ユニット(TU)を作成するために、現在のブロックのための残差ブロックを計算し得る(152)。残差ブロックを計算するために、ビデオエンコーダ20は、元のコーディングされていないブロックと現在のブロックのための予測ブロックとの間の差分を計算し得る。次いで、ビデオエンコーダ20は、残差ブロックの係数を変換および量子化し得る(154)。次に、ビデオエンコーダ20は、残差ブロックの量子化変換係数を走査し得る.(156)。走査中、または走査に続いて、ビデオエンコーダ20は、係数をエントロピー符号化し得る(158)。たとえば、ビデオエンコーダ20は、CAVLCまたはCABACを使用して係数を符号化し得る。次いで、ビデオエンコーダ20は、ブロックの係数のためのエントロピーコード化データを出力し得る(160)。
【０１８４】
図21は、ビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUまたは現在のCUの一部分を備え得る。ビデオデコーダ30(図1および図3)に関して説明するが、他のデバイスが、図21の方法に類似する方法を実行するように構成されてもよいことを理解されたい。
【０１８５】
ビデオデコーダ30は、たとえば、現在のブロックのための予測ブロックを計算するためにイントラまたはインター予測モードを使用して、現在のブロックを予測し得る(200)。ビデオデコーダ30はまた、現在のブロックに対応する残差ブロックの係数のためのエントロピーコード化データなど、現在のブロックのためのエントロピーコード化データを受信し得る(202)。ビデオデコーダ30は、エントロピーコード化データをエントロピー復号して、残差ブロックの係数を再生し得る(204)。次いで、ビデオデコーダ30は、量子化変換係数のブロックを作り出すために、再生された係数を逆走査し得る(206)。次いで、ビデオデコーダ30は、係数を逆量子化および逆変換して、残差ブロックを作成し得る(208)。ビデオデコーダ30は、最終的に、予測されたブロックと残差ブロックとを組み合わせることによって現在のブロックを復号し得る(210)。
【０１８６】
以下で、上記で説明した本開示の例を要約する。上記で説明した、マルチモデル方法、マルチフィルタ方法、およびLM角度予測を使用するLM予測の例は、個別に、または任意の組合せにおいて適用され得る。コーディングブロック/コーディングユニット(CU)/変換ユニット(TU)中のルーマ成分とクロマ成分との間に、2つ以上の線形モデルがあり得る。現在のブロックの隣接ルーマサンプルおよびクロマサンプルは、いくつかのグループに分類され得、各グループは、線形モデルを導出するためにトレーニングセットとして使用され得る(すなわち、特定のαおよびβが、特定のグループのために導出される)。一例では、サンプルの分類は、サンプルの強度または位置に基づき得る。別の例では、分類方法は、エンコーダからデコーダにシグナリングされ得る。
【０１８７】
一例では、図7Aに示すように、隣接サンプルが2つのグループに分類され得る。Rec'L[x,y]≦しきい値である隣接サンプルは、グループ1に分類され得るが、Rec'L[x,y]>しきい値である隣接サンプルは、グループ2に分類され得る。一例では、しきい値は、隣接コード化ルーマ/クロマサンプルと、現在のブロック中のコード化ルーマサンプルとに応じて計算され得る。一例では、しきい値は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの平均値として計算され得る。別の例では、しきい値は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの中央値として計算され得る。さらに別の例では、しきい値は、minVとmaxVとの平均として計算され得、minVおよびmaxVは、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの最小値および最大値である。別の例では、しきい値は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、現在のブロック中のコード化ルーマサンプルとの平均値として計算され得る。別の例では、しきい値は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、現在のブロック中のコード化ルーマサンプルとの中央値として計算され得る。別の例では、しきい値は、minVとmaxVとの平均として計算され得、minVおよびmaxVは、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、現在のブロック中のコード化ルーマサンプルとの最小値および最大値である。一例では、しきい値は、エンコーダ20からデコーダ30にシグナリングされ得る。
【０１８８】
一例では、図7Bに示すように、隣接サンプルが3つのグループに分類され得る。Rec'L[x,y]≦しきい値1である隣接サンプルは、グループ1に分類され得、しきい値1<Rec'L[x,y]≦しきい値2である隣接サンプルは、グループ2に分類され得、Rec'L[x,y]>しきい値2である隣接サンプルは、グループ3に分類され得る。一例では、しきい値1およびしきい値2は、隣接コード化ルーマ/クロマサンプルと、現在のブロック中のコード化ルーマサンプルとに応じて計算され得る。一例では、しきい値は、上記で説明したように最初に計算され得る。次いで、しきい値1は、minVとしきい値との平均として計算され得る。しきい値2は、maxVとしきい値との平均として計算され得る。minVおよびmaxVは、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの最小値および最大値であり得る。別の例では、しきい値1は、sumVの1/3として計算され得る。しきい値2は、sumVの2/3として計算され得る。sumVは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの累積合計値であり得る。別の例では、しきい値1は、S[N/3]とS[N/3+1]との間の値として計算され得る。しきい値2は、S[2*N/3]とS[2*N/3+1]との間の値として計算され得る。Nは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの総数であり得る。S[0]、S[1]、....S[N-2]、S[N-1]は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルの昇順ソートシーケンスであり得る。別の例では、しきい値は、上記で説明したように最初に計算され得る。次いで、しきい値1が、minVとしきい値との平均として計算され得る。しきい値2は、maxVとしきい値との平均として計算され得る。minVおよびmaxVは、それぞれ、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルとの、最小値および最大値であり得る。別の例では、しきい値1は、sumVの1/3として計算され得る。しきい値2は、sumVの2/3として計算され得る。sumVは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルとの、累積合計値であり得る。別の例では、しきい値1は、S[N/3]とS[N/3+1]との間の値として計算され得る。しきい値2は、S[2*N/3]とS[2*N/3+1]との間の値として計算され得る。Nは、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルとの、総数であり得る。S[0]、S[1]、....S[N-2]、S[N-1]は、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)隣接コード化ルーマサンプルと、(4:4:4フォーマットでない場合にダウンサンプリングされ得る)現在のブロック中のコード化ルーマサンプルとの、昇順ソートシーケンスであり得る。一例では、しきい値1およびしきい値2は、エンコーダ20からデコーダ30にシグナリングされ得る。一例では、より多くの隣接サンプルが、たとえば、図8A〜図8Dに示した例のように、上記で線形モデルを導出するために使用され得る。
【０１８９】
一例では、MMLMにおいて導出されたモデル1またはモデル2は、それぞれ、図11および図12に示すように、現在のブロック中のすべてのピクセルに適用され得る。別の例では、図13に示すように、現在のブロック中のピクセルが最初に分類され得、次いで、それらの一部がモデル1を適用することを選択し、他のものがモデル2を適用することを選択する。一例では、分類方法が、コード化隣接ルーマサンプルの場合、および現在のブロック中のコード化ルーマサンプルの場合で等しくなるべきであることが必要とされ得る。
【０１９０】
一例では、図13に示すように、グループ1における現在のブロック中の(4:4:4フォーマットでない場合にダウンサンプリングされる)コード化ルーマサンプルは、モデル1を適用して、現在のブロック中の対応する予測されたクロマサンプルを導出し得るが、グループ2における現在のブロック中の(4:4:4フォーマットでない場合にダウンサンプリングされる)コード化ルーマサンプルは、モデル2を適用して、現在のブロック中の対応する予測されたクロマサンプルを導出し得る。このようにして、現在のブロック中の予測されたクロマサンプルが、2つの線形モデルに従って導出され得る。より多くのグループがあるとき、より多くの線形モデルが、予測されたクロマサンプルを取得するために使用され得る。
【０１９１】
一例では、分類後のグループ中のサンプルの数が、2または3など、特定の数よりも大きいことが必要とされ得る。一例では、グループ中のサンプルの数が特定の数よりも小さい場合、他のグループ中のサンプルがこのグループに変更され得る。たとえば、大部分のサンプルをもつグループ中のサンプルが、特定の数未満のサンプルをもつグループに変更され得る。一例では、大部分のサンプルをもつグループ(グループAと呼ばれる)中のサンプルは、それが特定の数未満のサンプルをもつグループ(グループBと呼ばれる)中の既存のサンプルにとって最も近いサンプルである場合、グループBに変更され得る。「最も近い」は、ピクセル位置において最も近いことを指すことがある。または、「最も近い」は、最も近い強度を指すことがある。一例では、エンコーダ20は、サンプルが分類されるべきであるグループの数を、デコーダ30にシグナリングし得る。数が1である場合、それは元のLMモードである。別の例では、異なる数のグループをもつLMモードは、異なるLMモード、たとえば、1つのグループをもつLM-MM1、2つのグループをもつLM-MM2、および3つのグループをもつLM-MM3として扱われ得る。LM-MM1は、元のLMモードに等しい。別の例では、デコーダ30は、エンコーダ20がグループの数をシグナリングすることなしに、グループの数を導出し得る。
【０１９２】
一例では、図6に示したように、JEM-3.0において定義されたダウンサンプリングフィルタ以外に、4:4:4フォーマットではないとき、2つ以上のルーマダウンサンプリングフィルタがあり得る。一例では、フィルタは、次の形式であり得る。
a.  Rec'L[x,y]=a・RecL[2x,2y]+b・RecL[2x,2y+1]+c・RecL[2x-1,2y]+d・RecL[2x+1,2y]+e・RecL[2x-1,2y+1]+f・RecL[2x+1,2y+1]+g
ただし、a、b、c、d、e、f、gは、実数である。
b.  Rec'L[x,y]=(a・RecL[2x,2y]+b・RecL[2x,2y+1]+c・RecL[2x-1,2y]+d・RecL[2x+1,2y]+e・RecL[2x-1,2y+1]+f・RecL[2x+1,2y+1]+g)/h
ただし、a、b、c、d、e、f、g、hは、整数である。
c.  Rec'L[x,y]=(a・RecL[2x,2y]+b・RecL[2x,2y+1]+c・RecL[2x-1,2y]+d・RecL[2x+1,2y]+e・RecL[2x-1,2y+1]+f・RecL[2x+1,2y+1]+g)>>h
ただし、a、b、c、d、e、f、g、hは、整数である。
【０１９３】
たとえば、次の可能なフィルタなど、可能なフィルタの例を、図14A〜図14Cに示す。
a.  Rec'L[x,y]=(RecL[2x,2y]+RecL[2x+1,2y]+1)>>1;
b.  Rec'L[x,y]=(RecL[2x+1,2y]+RecL[2x+1,2y+1]+1)>>1;
c.  Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+1)>>1;
d.  Rec'L[x,y]=(RecL[2x,2y+1]+RecL[2x+1,2y+1]+1)>>1;
e.  Rec'L[x,y]=(RecL[2x,2y]+RecL[2x+1,2y+1]+1)>>1;
f.  Rec'L[x,y]=(RecL[2x,2y+1]+RecL[2x+1,2y]+1)>>1;
g.  Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+RecL[2x-1,2y]+RecL[2x-1,2y+1]+2)>>2;
h.  Rec'L[x,y]=(RecL[2x,2y]+RecL[2x,2y+1]+RecL[2x+1,2y]+RecL[2x+1,2y+1]+2)>>2;
i.  Rec'L[x,y]=(2・RecL[2x,2y]+RecL[2x+1,2y]+RecL[2x-1,2y]+2)>>2;
j.  Rec'L[x,y]=(2・RecL[2x,2y+1]+RecL[2x+1,2y+1]+RecL[2x-1,2y+1]+2)>>2;
k.  Rec'L[x,y]=(RecL[2x-1,2y]+RecL[2x-1,2y+1]+1)>>1;
l.  Rec'L[x,y]=(RecL[2x,2y+1]+RecL[2x-1,2y+1]+1)>>1;
m.  Rec'L[x,y]=(RecL[2x-1,2y]+RecL[2x,2y+1]+1)>>1;
n.  Rec'L[x,y]=(RecL[2x,2y]+RecL[2x-1,2y+1]+1)>>1;
o.  Rec'L[x,y]=(RecL[2x,2y]+RecL[2x-1,2y]+1)>>1;
p.  Rec'L[x,y]=(2・RecL[2x+1,2y]+RecL[2x+1,2y]+RecL[2x+1,2y+1]+2)>>2;
q.  Rec'L[x,y]=(2・RecL[2x+1,2y+1]+RecL[2x,2y+1]+RecL[2x+1,2y]+2)>>2;
r.  Rec'L[x,y]=(5・RecL[2x,2y+1]+RecL[2x-1,2y+1]+RecL[2x+1,2y+1]+RecL[2x,2y]+4)>>3;
【０１９４】
一例では、シーケンスが4:4:4フォーマットではない場合、LMモードは、JEM-3.0において定義され、本開示の図6に示したフィルタのほかに、任意のダウンサンプリングフィルタとともに動作し得る。一例では、デコーダ30は、エンコーダ20がダウンサンプリングフィルタをシグナリングすることなしに、ダウンサンプリングフィルタを導出することができる。一例では、フィルタリングされた結果が、有効クロマ値範囲に短縮され得る。角度予測のタイプおよびLM予測のタイプが一緒に組み合わせられて、最終的な予測が取得され得る。現在のクロマブロックが、イントラ予測を用いるが、いかなるLMモードでもなくコーディングされる場合、LAP_flagと呼ばれるフラグがシグナリングされ得る。一例では、現在のクロマブロックのための予測モードがモードXである場合、Xは、あるタイプの角度イントラ予測(平面モードおよびDCモードを含む)であり得る。現在のクロマブロックがDMモードとしてシグナリングされる場合、対応するルーマブロックのあるタイプの角度予測モードに等しいので、現在のクロマブロックは角度モードとしても扱われることに留意されたい。一例では、2つの予測パターンが、最初にクロマブロックについて生成され、次いで一緒に組み合わせられ得る。一方の予測パターンは、角度モードXを用いて生成され得る。他方の予測は、たとえば、LM-MM2モードなど、あるタイプのLMモードを用いて生成され得る。
【０１９５】
図16に示すように、最初に、現在のブロック中の各サンプルのための予測が、角度予測モードXを用いて生成され、P1(x,y)として示され得る。次いで、現在のブロック中の各サンプルの予測が、LM-MM2モードを用いて生成され、P2(x,y)として示され得る。次いで、最終的なLM角度予測が、P(x,y)=w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y)として計算され得、ただし、(x,y)は、ブロック中のサンプルの座標を表し、w1(x,y)およびw2(x,y)は実数である。w1(x,y)およびw2(x,y)は、w1(x,y)+w2(x,y)=1を満たし得る。別の例では、最終的なLM角度予測が次のように計算され得る。
P(x,y)=(w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y)+a)/b
ただし、w1(x,y)、w2(x,y)、a、およびbは整数であり、w1(x,y)およびw2(x,y)は、w1(x,y)+w2(x,y)=bを満たし得る。
【０１９６】
別の例では、最終的なLM角度予測が次のように計算され得る。
P(x,y)=(w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y)+a>>b
【０１９７】
ただし、w1(x,y)、w2(x,y)、a、およびbは整数であり、w1(x,y)およびw2(x,y)は、w1(x,y)+w2(x,y)=2bを満たし得る。一例では、w1(x,y)およびw2(x,y)は、異なる(x,y)によって異なり得る。別の例では、w1(x,y)およびw2(x,y)は、すべての(x,y)について不変であり得る。一例では、
すべての(x,y)について、P(x,y)=(P1(x,y)+P2(x,y)+1)>>1である。
【０１９８】
一例では、LAP_flagは、CABACによってコーディングされ得る。コーディングコンテキストは、隣接ブロックのコード化/復号LAP_flagに依存し得る。たとえば、LAP_flagのための3つのコンテキスト、すなわち、LAPctx[0]、LAPctx[1]、およびLAPctx[2]があり得る。変数ctxは、ctx=LAP_flag_A+LAP_flag_Bとして計算され得、ただし、LAP_flag_AおよびLAP_flag_Bは、それぞれ、図17に示すように、隣接ブロックAおよびBのLAP_flagである。一例では、P(x,y)は、有効クロマ値範囲に短縮され得る。一例では、LMモードのコーディングは、隣接ブロックのクロマイントラ予測モードに依存し得る。一例では、LM、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、いくつかのLMモードが候補LMモードであり得る。この例では、7つの候補LMモードがあり、現在のブロックが角度モードでコーディングされ、LMモードではない場合を表すために、Non-LMモードが付加される。Non-LMがシグナリングされる場合、JEM-3.0またはいずれかの他の非LM方法の場合のように、角度モードがシグナリングされ得る。
【０１９９】
例示的なコーディング論理では、DM_flagが最初にコーディングされ得る。クロマ予測モードがDMモードではない場合、現在のクロマ予測モードを示すために、提案するLM_coding()モジュールが呼び出され得る。LM_coding()モジュールがNon-LMモードをコーディングする場合、Chroma_intra_mode_coding()モジュールが呼び出されて、角度クロマ予測モードがコーディングされ得る。
{
DM_flag,
if(DM_flag==0)
{
LM_coding();
if(IsNotLM(mode))
{
Chroma_intra_mode_coding();
}
}
}
【０２００】
一例では、可能なN個のモード(Non-LMを含む)をシグナリングするために、異なるコードワード、または2値化と呼ばれるものをもつ、N個のシンボル0、1、...、6、7が、N個の可能なモードを表すために使用され得る。より小さい数をもつシンボルは、より大きい数をもつシンボルのコード長よりも長いコード長を有していないことがある。シンボルは、固定長コード、単項コード、短縮単項コード、指数ゴロムコードなど、何らかの方法で2値化され得る。一例では、シンボルとモードとの間にデフォルトのマッピングがあり得る。一例では、マッピングは固定であり得るか、または、復号された隣接ブロックに従って動的であり得る。
【０２０１】
一例では、モードNon-LMのためのシンボルが、Kとして示された、LMモードでコーディングされた隣接クロマブロックの数に応じて、マッピングリストに挿入され得る。一例では、シンボルマッピングリストは、次のようになり得る。
K==0の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
0<K≦3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
K>3の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
一例では、モードNon-LMのためのシンボルが、K'として示された、LMモードでコーディングされていない隣接クロマブロックの数に応じて、マッピングリストに挿入され得、シンボルマッピングリストは、次のようになり得る。
K'==5の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
2≦K'<5の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7:LM-MF4;
K'≦2の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
【０２０２】
一例では、モードNon-LMのためのシンボルが、K'として示された、LMモードでコーディングされていない隣接クロマブロックの数に応じて、マッピングリストに挿入され得、シンボルマッピングリストは、次のようになり得る。
K'==5の場合、0: LM,1: Non-LM,2: LM-MM2,3: LM-MM3,4: LM-MF1,5: LM-MF2,6: LM-MF3,7: LM-MF4;
2≦K'<5の場合、0: LM,1: LM-MM2,2: LM-MM3,3: Non-LM,4: LM-MF1,5: LM-MF2,6: LM-MF3,7:LM-MF4;
K'≦2の場合、0: LM,1: LM-MM2,2: LM-MM3,3: LM-MF1,4: LM-MF2,5: LM-MF3,6: LM-MF4,7: Non-LM;
【０２０３】
一例では、提案するLM改良の使用は、ブロックサイズに依存し得る。一例では、現在のクロマブロックのサイズがM×Nである場合、M×N≦Tである場合、LM-Xは適用可能でないことがあり、ただし、Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。LM-Xは、たとえば、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、任意のLMモードであり得る。一例では、M+N≦Tである場合、LM-Xは適用可能でないことがあり、ただし、Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。LM-Xは、たとえば、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、任意のLMモードであり得る。一例では、Min(M,N)≦Tである場合、LM-Xは適用可能でないことがあり、ただし、Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。LM-Xは、たとえば、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、任意のLMモードであり得る。別の例では、Max(M,N)≦Tである場合、LM-Xは適用可能でないことがある。Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。LM-Xは、LM-MM2、LM-MM3、LM-MF1、LM-MF2、LM-MF3、およびLM-MF4など、任意のLMモードであり得る。一例では、M×N≦Tである場合、LAPは適用可能でないことがあり、ただし、Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。一例では、M+N≦Tである場合、LAPは適用可能でないことがあり、ただし、Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。別の例では、Min(M,N)≦Tである場合、LAPは適用可能でないことがあり、ただし、Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。一例では、Max(M,N)≦Tである場合、LAPは適用可能でないことがあり、ただし、Tは、固定数であり得るか、またはエンコーダ20からデコーダ30にシグナリングされ得る。
【０２０４】
例に応じて、本明細書で説明した技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行されてよく、一緒に追加され、統合され、または除外されてよい(たとえば、説明したすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて同時に実行され得る。
【０２０５】
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  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
40  モード選択ユニット
42  動き推定ユニット
44、72  動き補償ユニット
46、74  イントラ予測ユニット
48  区分ユニット
50、62、80  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58、76  逆量子化ユニット
60、78  逆変換ユニット
64、82  参照ピクチャメモリ
65、85  ビデオデータメモリ
70  エントロピー復号ユニット
【図１】
2019530330.tif 000014
【図２】
2019530330.tif 000015
【図３】
2019530330.tif 000016
【図４】
2019530330.tif 000017
【図５】
2019530330.tif 000018
【図６】
2019530330.tif 000019
【図７Ａ】
2019530330.tif 000020
【図７Ｂ】
2019530330.tif 000021
【図７Ｃ】
2019530330.tif 000022
【図７Ｄ】
2019530330.tif 000023
【図７Ｅ】
2019530330.tif 000024
【図８Ａ】
2019530330.tif 000025
【図８Ｂ】
2019530330.tif 000026
【図８Ｃ】
2019530330.tif 000027
【図８Ｄ】
2019530330.tif 000028
【図９】
2019530330.tif 000029
【図１０】
2019530330.tif 000030
【図１１】
2019530330.tif 000031
【図１２】
2019530330.tif 000032
【図１３】
2019530330.tif 000033
【図１４Ａ】
2019530330.tif 000034
【図１４Ｂ】
2019530330.tif 000035
【図１４Ｃ】
2019530330.tif 000036
【図１５】
2019530330.tif 000037
【図１６】
2019530330.tif 000038
【図１７】
2019530330.tif 000039
【図１８】
2019530330.tif 000040
【図１９】
2019530330.tif 000041
【図２０】
2019530330.tif 000042
【図２１】
2019530330.tif 000043
【手続補正書】
【提出日】平成31年3月18日(2019.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
第1のビデオデータのブロックのルーマサンプルの符号化ブロックを受信するステップと、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すステップと、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルを、複数のサンプルグループに分類するステップであって、前記複数のサンプルグループの各々が、2つ以上の線形予測モデルのうちのそれぞれの線形予測モデルに対応する、ステップと、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルの前記複数のサンプルグループと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測するステップと
を含む方法。
【請求項２】
前記第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、前記2つ以上の線形予測モデルの各々のためのパラメータを決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
第1のしきい値よりも大きい前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類するステップと、
前記第1のしきい値以下である前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類するステップと、
前記第1のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用するステップと、
前記第2のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用するステップであって、前記第2の線形予測モデルが前記第1の線形予測モデルとは異なる、ステップと、
前記適用された第1の線形予測モデルと前記適用された第2の線形予測モデルとに基づいて、前記第1のビデオデータのブロック中の前記予測されたクロマサンプルを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記第1のしきい値が、隣接コード化ルーマサンプルおよびクロマサンプルに依存する、請求項3に記載の方法。
【請求項５】
前記再構成されたルーマサンプルをダウンサンプリングするステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
前記再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定するステップと、
前記決定されたダウンサンプリングフィルタを使用して、前記再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成するステップと、
前記ダウンサンプリングされたルーマサンプルと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定するステップ
をさらに含み、
前記第2のビデオデータのブロックの前記クロマサンプルが、前記線形予測モデルを使用してコーディングされない場合、前記方法が、
線形モード角度予測モードが有効化されると決定するステップと、
角度モード予測パターンを、前記第2のビデオデータのブロックの前記クロマサンプルに適用して、第1の予測されたクロマ値を作成するステップと、
線形モデル予測パターンを、前記第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成するステップと、
前記第1の予測されたクロマ値と前記第2の予測されたクロマ値との加重平均を決定することによって、前記第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
線形予測モデルコーディングモードを使用してコーディングされる、前記第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの決定された数に基づいて、前記線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更するステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記コードワードを動的に変更するステップが、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、前記しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用するステップと
を含む、請求項8に記載の方法。
【請求項１０】
ビデオデータを符号化する方法であって、
第1のビデオデータのブロックのルーマサンプルのブロックを符号化するステップと、
前記ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すステップと、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルを、複数のサンプルグループに分類するステップであって、前記複数のサンプルグループの各々が、2つ以上の線形予測モデルのうちのそれぞれの線形予測モデルに対応する、ステップと、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルの前記複数のサンプルグループと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測するステップと
を含む方法。
【請求項１１】
前記第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、前記2つ以上の線形予測モデルの各々のためのパラメータを決定するステップ
をさらに含む、請求項10に記載の方法。
【請求項１２】
第1のしきい値よりも大きい前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類するステップと、
前記第1のしきい値以下である前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類するステップと、
前記第1のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用するステップと、
前記第2のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用するステップであって、前記第2の線形予測モデルが前記第1の線形予測モデルとは異なる、ステップと、
前記適用された第1の線形予測モデルと前記適用された第2の線形予測モデルとに基づいて、前記第1のビデオデータのブロック中の前記予測されたクロマサンプルを決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項１３】
前記第1のしきい値が、隣接コード化ルーマサンプルおよびクロマサンプルに依存する、請求項12に記載の方法。
【請求項１４】
前記再構成されたルーマサンプルをダウンサンプリングするステップ
をさらに含む、請求項10に記載の方法。
【請求項１５】
前記再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定するステップと、
前記決定されたダウンサンプリングフィルタを使用して、前記再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成するステップと、
前記ダウンサンプリングされたルーマサンプルと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測するステップと
をさらに含む、請求項10に記載の方法。
【請求項１６】
前記2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定するステップ
をさらに含み、
前記第2のビデオデータのブロックの前記クロマサンプルが、前記線形予測モデルを使用してコーディングされない場合、前記方法が、
線形モード角度予測モードが有効化されると決定するステップと、
角度モード予測パターンを、前記第2のビデオデータのブロックの前記クロマサンプルに適用して、第1の予測されたクロマ値を作成するステップと、
線形モデル予測パターンを、前記第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成するステップと、
前記第1の予測されたクロマ値と前記第2の予測されたクロマ値との加重平均を決定することによって、前記第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項１７】
線形予測モデルコーディングモードを使用してコーディングされる、前記第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの決定された数に基づいて、前記線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更するステップと
をさらに含む、請求項10に記載の方法。
【請求項１８】
前記コードワードを動的に変更するステップが、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用するステップと、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、前記しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用するステップと
を含む、請求項17に記載の方法。
【請求項１９】
ビデオデータを復号するように構成された装置であって、
第1のビデオデータのブロックを受信するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
前記第1のビデオデータのブロックのルーマサンプルの符号化ブロックを受信すること、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルを、複数のサンプルグループに分類することであって、前記複数のサンプルグループの各々が、2つ以上の線形予測モデルのうちのそれぞれの線形予測モデルに対応する、こと、および
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルの前記複数のサンプルグループと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測すること
を行うように構成される、装置。
【請求項２０】
前記1つまたは複数のプロセッサが、
前記第1のビデオデータのブロックに隣接するビデオデータのブロックからのルーマサンプルおよびクロマサンプルを使用して、前記2つ以上の線形予測モデルの各々のためのパラメータを決定すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２１】
前記1つまたは複数のプロセッサが、
第1のしきい値よりも大きい前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第1のサンプルグループ中のものであるとして分類すること、
前記第1のしきい値以下である前記再構成されたルーマサンプルを、前記複数のサンプルグループのうちの第2のサンプルグループ中のものであるとして分類すること、
前記第1のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第1の線形予測モデルを適用すること、
前記第2のサンプルグループ中の前記再構成されたルーマサンプルに、前記2つ以上の線形予測モデルのうちの第2の線形予測モデルを適用することであって、前記第2の線形予測モデルが前記第1の線形予測モデルとは異なる、こと、および
前記適用された第1の線形予測モデルと前記適用された第2の線形予測モデルとに基づいて、前記第1のビデオデータのブロック中の前記予測されたクロマサンプルを決定すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２２】
前記第1のしきい値が、隣接コード化ルーマサンプルおよびクロマサンプルに依存する、請求項21に記載の装置。
【請求項２３】
前記1つまたは複数のプロセッサが、
前記再構成されたルーマサンプルをダウンサンプリングすること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２４】
前記1つまたは複数のプロセッサが、
前記再構成されたルーマサンプルをダウンサンプリングするために使用するべき、複数のダウンサンプリングフィルタのうちの1つを決定すること、
前記決定されたダウンサンプリングフィルタを使用して、前記再構成されたルーマサンプルをダウンサンプリングして、ダウンサンプリングされたルーマサンプルを作成すること、および
前記ダウンサンプリングされたルーマサンプルと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２５】
前記1つまたは複数のプロセッサが、
前記2つ以上の線形予測モデルのうちの線形予測モデルを使用して、第2のビデオデータのブロックのクロマサンプルがコーディングされるか否かを決定すること
を行うようにさらに構成され、
前記第2のビデオデータのブロックの前記クロマサンプルが、前記線形予測モデルを使用してコーディングされない場合、前記1つまたは複数のプロセッサが、
線形モード角度予測モードが有効化されると決定すること、
角度モード予測パターンを、前記第2のビデオデータのブロックの前記クロマサンプルに適用して、第1の予測されたクロマ値を作成すること、
線形モデル予測パターンを、前記第2のビデオデータのブロックの対応するルーマサンプルに適用して、第2の予測されたクロマ値を作成すること、および
前記第1の予測されたクロマ値と前記第2の予測されたクロマ値との加重平均を決定することによって、前記第2のビデオデータのブロックのための最終的な予測されたクロマ値のブロックを決定すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２６】
前記1つまたは複数のプロセッサが、
線形予測モデルコーディングモードを使用してコーディングされる、前記第1のビデオデータのブロックに対する、隣接クロマブロックの数を決定すること、および
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの決定された数に基づいて、前記線形予測モデルコーディングモードの特定のタイプを示すために使用されたコードワードを動的に変更すること
を行うようにさらに構成される、請求項19に記載の装置。
【請求項２７】
前記コードワードを動的に変更するために、前記1つまたは複数のプロセッサが、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が0であることに基づいて、第1のシンボルマッピングリストを使用すること、
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、しきい値未満であることに基づいて、第2のシンボルマッピングリストを使用すること、および
前記線形予測モデルコーディングモードを使用してコーディングされた前記ビデオデータの前記隣接クロマブロックの数が、前記しきい値よりも大きいことに基づいて、第3のシンボルマッピングリストを使用すること
を行うようにさらに構成される、請求項26に記載の装置。
【請求項２８】
ビデオデータを符号化するように構成された装置であって、
第1のビデオデータのブロックを受信するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
第1のビデオデータのブロックのルーマサンプルのブロックを符号化すること、
前記ルーマサンプルの符号化ブロックを再構成して、再構成されたルーマサンプルを作り出すこと、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルを、複数のサンプルグループに分類することであって、前記複数のサンプルグループの各々が、2つ以上の線形予測モデルのうちのそれぞれの線形予測モデルに対応する、こと、および
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルの前記複数のサンプルグループと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測すること
を行うように構成される、装置。
【請求項２９】
ビデオデータを復号するように構成された装置であって、
第1のビデオデータのブロックのルーマサンプルの符号化ブロックを受信するための手段と、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すための手段と、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルを、複数のサンプルグループに分類するための手段であって、前記複数のサンプルグループの各々が、2つ以上の線形予測モデルのうちのそれぞれの線形予測モデルに対応する、手段と、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルの前記複数のサンプルグループと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測するための手段と
を備える装置。
【請求項３０】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、実行されたとき、ビデオデータを復号するように構成された1つまたは複数のプロセッサに、
第1のビデオデータのブロックのルーマサンプルの符号化ブロックを受信すること、
前記ルーマサンプルの符号化ブロックを復号して、再構成されたルーマサンプルを作り出すこと、
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルを、複数のサンプルグループに分類することであって、前記複数のサンプルグループの各々が、2つ以上の線形予測モデルのうちのそれぞれの線形予測モデルに対応する、こと、および
前記第1のビデオデータのブロックの前記再構成されたルーマサンプルの前記複数のサンプルグループと、前記2つ以上の線形予測モデルとを使用して、前記第1のビデオデータのブロックのクロマサンプルを予測すること
を行わせる、コンピュータ可読記憶媒体。
【国際調査報告】
2019530330.tif 000044
2019530330.tif 000045
2019530330.tif 000046
2019530330.tif 000047