(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-18
(54)【発明の名称】ビデオコーディングにおける一般化されたイントラ予測によるサブブロックコーディング
(51)【国際特許分類】
H04N 19/593 20140101AFI20220411BHJP
【FI】
H04N19/593
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021549317
(86)(22)【出願日】2020-02-26
(85)【翻訳文提出日】2021-08-20
(86)【国際出願番号】 US2020019919
(87)【国際公開番号】W WO2020176634
(87)【国際公開日】2020-09-03
(32)【優先日】2019-02-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-03-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-06-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-02-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ラマスブラモニアン、アダルシュ・クリシュナン
(72)【発明者】
【氏名】ファン・デル・オーウェラ、ゲールト
(72)【発明者】
【氏名】シェ、チェン-テ
(72)【発明者】
【氏名】セレジン、バディム
(72)【発明者】
【氏名】ファン・バン、ルオン
(72)【発明者】
【氏名】カルチェビチ、マルタ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159RC12
5C159TA31
5C159TA33
5C159TA35
5C159TB08
5C159TC26
5C159TC42
5C159UA02
5C159UA05
(57)【要約】
ビデオコーダは、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成することにより、ビデオデータをコード化するように構成されていてもよい。ビデオコーダは、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化してもよい。ビデオコーダは、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築してもよい。
【選択図】
図14
【特許請求の範囲】
【請求項1】
ビデオデータをコード化する方法において、
イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成し、前記予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含むことと、
前記予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化することと、
前記第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、前記第1のPBG中に含まれている予測ブロックのサンプルを再構築することとを含む方法。
【請求項2】
前記予測ブロックのセットのうちの複数を第1のPBGにグループ化することが、前記予測ブロックのセットのうちの第1の複数を前記第1のPBGにグループ化することを含み、
前記方法は、
前記予測ブロックのセットのうちの第2の複数を第2のPBGにグループ化し、前記予測ブロックのセットのうちの第2の複数と前記予測ブロックのセットのうちの第1の複数は、予測ブロックのオーバーラップしていないセットを含むことと、
前記第2のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、前記第2のPBG中に含まれている予測ブロックのサンプルを再構築することをさらに含む請求項1記載の方法。
【請求項3】
前記第2のPBG中に含まれている予測ブロックのサンプルを再構築することが、前記第1のPBG中に含まれている予測ブロックのサンプルに基づいて、前記第2のPBG中に含まれている予測ブロックのサンプルを再構築することを含む請求項2記載の方法。
【請求項4】
前記第1のPBGが、少なくとも4のサンプルサイズ幅を構成する請求項1記載の方法。
【請求項5】
前記第1のPBGに関係する第1の変換ブロックが、前記第1の予測ブロックのサイズに等しいサイズを有する請求項1記載の方法。
【請求項6】
予測ブロックのサンプルを再構築することが、
少なくとも前記第1の予測ブロックと前記第2の予測ブロックとの総計された幅に等しい幅を有する予測サンプルアレイを発生させることを含む請求項1記載の方法。
【請求項7】
前記第1の予測ブロックが、2以下のサンプル幅を構成する請求項1記載の方法。
【請求項8】
前記第1の予測ブロックと前記第2の予測ブロックとが同じ幅のものである請求項7記載の方法。
【請求項9】
前記コーディングユニットの幅と前記第1の予測ブロックの幅とに基づいて、予測ブロックグループの量を決定することと、
前記CUが前記予測ブロックグループの量を構成するように、前記予測ブロックグループの量にしたがって、前記CUをコード化することとをさらに含む請求項1記載の方法。
【請求項10】
前記方法が、1つ以上のプロセッサにより実行される請求項1記載の方法。
【請求項11】
コード化されたビデオビットストリーム中で、ビデオデータの前記CUに対する予測情報を表す1つ以上のシンタックス要素と、ビデオデータの前記CUに対する残差データを表す1つ以上のシンタックス要素とをエンコードすることをさらに含む請求項1記載の方法。
【請求項12】
コード化されたビデオビットストリームから、ビデオデータの前記CUに対する予測情報を表す1つ以上のシンタックス要素と、ビデオデータの前記CUに対する残差データを表す1つ以上のシンタックス要素とをデコードすることをさらに含む請求項1記載の方法。
【請求項13】
前記CUの分割を実行することが、垂直分割、水平分割、または、水平分割と垂直分割との組み合わせのうちの1つ以上を使用して、前記CUを分割することを含む請求項1記載の方法。
【請求項14】
ビデオデータをコード化するデバイスにおいて、
ビデオデータを記憶するように構成されているメモリと、
回路中で実現されている1つ以上のプロセッサとを具備し、
前記1つ以上のプロセッサは、
イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成し、前記予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含むようにと、
前記予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化するようにと、
前記第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、前記第1のPBG中に含まれている予測ブロックのサンプルを再構築するように構成されているデバイス。
【請求項15】
前記予測ブロックのセットのうちの複数を第1のPBGにグループ化するために、前記1つ以上のプロセッサが、前記予測ブロックのセットのうちの第1の複数を前記第1のPBGにグループ化するように構成され、
前記1つ以上のプロセッサが、
前記予測ブロックのセットのうちの第2の複数を第2のPBGにグループ化し、前記予測ブロックのセットのうちの第2の複数と前記予測ブロックのセットのうちの第1の複数が、予測ブロックのオーバーラップしていないセットを含むようにと、
前記第2のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、前記第2のPBG中に含まれている予測ブロックのサンプルを再構築するようにさらに構成されている請求項14記載のデバイス。
【請求項16】
前記第2のPBG中に含まれている予測ブロックのサンプルを再構築するために、前記1つ以上のプロセッサが、前記第1のPBG中に含まれている予測ブロックのサンプルに基づいて、前記第2のPBG中に含まれている予測ブロックのサンプルを再構築するように構成されている請求項15記載のデバイス。
【請求項17】
前記第1のPBGが、少なくとも4のサンプルサイズ幅を構成する請求項14記載のデバイス。
【請求項18】
前記第1のPBGに関係する第1の変換ブロックが、前記第1の予測ブロックのサイズに等しいサイズを有する請求項14記載のデバイス。
【請求項19】
前記予測ブロックのサンプルを再構築するために、前記1つ以上のプロセッサが、
少なくとも前記第1の予測ブロックと前記第2の予測ブロックとの総計された幅に等しい幅を有する予測サンプルアレイを発生させるように構成されている請求項14記載のデバイス。
【請求項20】
前記第1の予測ブロックが、2以下のサンプル幅を構成する請求項14記載のデバイス。
【請求項21】
前記第1の予測ブロックと前記第2の予測ブロックとが同じ幅のものである請求項20記載のデバイス。
【請求項22】
前記1つ以上のプロセッサが、
前記コーディングユニットの幅と前記第1の予測ブロックの幅とに基づいて、予測ブロックグループの量を決定するようにと、
前記CUが前記予測ブロックグループの量を構成するように、前記予測ブロックグループの量にしたがって、前記CUをコード化するようにさらに構成されている請求項14記載のデバイス。
【請求項23】
前記1つ以上のプロセッサが、ビデオエンコーダ中に含まれている請求項14記載のデバイス。
【請求項24】
前記1つ以上のプロセッサが、ビデオデコーダ中に含まれている請求項14記載のデバイス。
【請求項25】
前記CUの分割を実行するために、前記1つ以上のプロセッサが、垂直分割を使用して、前記CUを分割するように構成されている請求項14記載のデバイス。
【請求項26】
命令を記憶している非一時的コンピュータ読取可能記憶媒体において、
前記命令は、実行されるときに、1つ以上のプロセッサに、
イントラ副区分(ISP)を使用させて、ビデオデータのコーディングユニット(CU)の分割を実行させて、予測ブロックのセットを形成させ、前記予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含み、
前記予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化させ、
前記第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、前記第1のPBG中に含まれている予測ブロックのサンプルを再構築させる非一時的コンピュータ読取可能記憶媒体。
【請求項27】
ビデオデータをコード化する装置において、
イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の垂直分割を実行して、予測ブロックのセットを形成し、前記予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含む手段と、
前記予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化する手段と、
前記第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、前記第1のPBG中に含まれている予測ブロックのサンプルを再構築する手段とを具備する装置。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001]
本出願は、2019年2月28日に出願された米国仮特許出願第62/812078号、2019年3月12日に出願された米国仮特許出願第62/817474号、および、2019年6月18日に出願された米国仮特許出願第62/862936号の利益を主張する、2020年2月25日に出願された米国特許出願第16/800467号に対する優先権を主張するものであり、これらのそれぞれの内容全体が参照により組み込まれている。
【技術分野】
【0002】
[0002]
本開示は、ビデオエンコーディングおよびビデオデコーディングに関連する。
【背景】
【0003】
[0003]
デジタルビデオ能力は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、パーソナルデジタルアシスタント(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、e-ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラまたは衛星無線電話機、いわゆる「スマートフォン」、ビデオ電話会議デバイス、ビデオストリーミングデバイス、および、これらに類するものを含む、幅広い範囲のデバイスに組み込むことができる。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、パート10、高度ビデオコーディング(AVC)、ITU-T H.265/高効率ビデオコーディング(HEVC)、および、このような標準規格の拡張によって規定される標準規格に記述されているもののような、ビデオコーディング技法を実現する。ビデオデバイスは、このようなビデオコーディング技法を実現することによって、より効率的にデジタルビデオ情報を送信、受信、エンコード、デコード、および/または、記憶してもよい。
【0004】
[0004]
ビデオコーディング(例えば、ビデオエンコーディングおよび/またはビデオデコーディング)は、典型的に、同じピクチャー中のビデオデータの既にコード化されているブロック(例えば、イントラ予測)、または、異なるピクチャー中のビデオデータの既にコード化されているブロック(例えば、インター予測)のいずれかから、ビデオデータのブロックを予測することを伴う。ビデオコーディング技法は、ビデオシーケンスに内在する冗長を低減または取り除くために、空間的(イントラピクチャー)予測、および/または、時間的(インターピクチャー)予測を含んでいる。ブロックベースのビデオコーディングに対して、ビデオスライス(例えば、ビデオピクチャーまたはビデオピクチャーの一部分)は、コーディングツリーユニット(CTU)、コーディングユニット(CU)および/またはコーディングノードとして呼ばれることもあるかもしれないビデオブロックに区分してもよい。ピクチャーのイントラコード化された(I)スライスにおけるビデオブロックは、同じピクチャーにおける隣接ブロック中の参照サンプルに関する空間的予測を使用してエンコードされる。ピクチャーのインターコード化された(PまたはB)スライスにおけるビデオブロックは、同じピクチャーにおける隣接ブロック中の参照サンプルに関する空間的予測、または、他の参照ピクチャーにおける参照サンプルに関する時間的予測を使用してもよい。ピクチャーは、フレームとして呼ばれることがあり、参照ピクチャーは参照フレームとして呼ばれることがある。
【概要】
【0005】
[0005]
一般的に、本開示は、イントラ副区分(ISP)コーディングを使用して、予測ブロックグループへの複数の予測ブロックのコーディングに関連する技法を説明している。特に、ビデオコーダ(例えば、ビデオエンコーダおよび/またはビデオデコーダ)は、コーディングユニットの複数のサブブロックのような、複数の予測ブロックを予測ブロックグループにグループ化してもよい。例えば、単一の予測ブロックグループは、コーディングユニットの1つより多い予測ブロックまたはサブブロックを含んでいてもよい。1つの例では、第1の予測ブロックグループは、コーディングユニットの第1のサブブロックとコーディングユニットの第2のサブブロックとを含んでいてもよい。
【0006】
[0006]
いくつかの例では、ビデオコーダは、第1の予測ブロックグループ中に含まれている他の予測ブロックのサンプルの再構築とは無関係に、その同じ予測ブロックグループ中に含まれている予測ブロックのサンプルを再構築してもよい。例えば、ビデオコーダは、同じ予測ブロックグループ中に含まれている別の予測ブロックのサンプルの再構築の前に、再構築なしで、または、再構築と並行して、1つの予測ブロックのサンプルを再構築してもよい。いくつかの事例では、垂直分割、水平分割、水平分割と垂直分割との組み合わせ等のような、コーディングユニットの分割を含めるために、イントラ副区分コーディングのインスタンスを使用するときに、本開示の予測ブロックグループ化技法を実現してもよい。さらに、予測ブロックの寸法が予測ブロックグループ化に対して予め規定されているしきい値を満たすように、予測ブロックが比較的狭い寸法(例えば、狭い高さ、狭い幅等)を有するときに、本開示の予測ブロックグループ化技法を実現してもよい。予測ブロックを予測ブロックグループにグループ化するために本明細書で説明されている1つ以上の技法は、HEVC(高効率ビデオコーディング)またはH.266/バーサタイルビデオコーディング(VVC)標準規格のような、既存のビデオコーデックのいずれかに適用してもよく、または、何らかの将来のビデオコーディング標準規格において使用してもよい。
【0007】
[0007]
1つの例によると、ビデオデータをコード化する方法が開示されている。本方法は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成し、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含むことと、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化することと、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築することとを含んでいる。
【0008】
[0008]
別の例によると、ビデオデータをコード化するデバイスが開示されている。デバイスは、ビデオデータを記憶するように構成されているメモリと、回路中で実現されている1つ以上のプロセッサとを含み、1つ以上のプロセッサは、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成し、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含むようにと、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化するようにと、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築するように構成されている。
【0009】
[0009]
別の例によると、非一時的コンピュータ読取可能記憶媒体が開示されている。非一時的コンピュータ読取可能記憶媒体は、命令を記憶しており、命令は、実行されるときに、1つ以上のプロセッサに、イントラ副区分(ISP)を使用させて、ビデオデータのコーディングユニット(CU)の分割を実行させて、予測ブロックのセットを形成させ、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含み、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化させ、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築させる。
【0010】
[0010]
別の例によると、ビデオデータをコード化する装置が開示されている。装置は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成し、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含む手段と、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化する手段と、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築する手段とを含んでいる。
【0011】
[0011]
1つ以上の例の詳細が、添付の図面および以下の説明に記載されている。本開示で説明されている技法の他の特徴、目的および利点は、説明、図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】[0012]
図1は、本開示の技法を実行してもよい、例示的なビデオエンコーディングおよびデコーディングシステムを図示するブロック図である。
【
図2】[0013]
図2は、例示的なイントラ予測モードを図示する図である。
【
図3】[0014]
図3は、8×4長方形ブロックの例を図示するブロック図である。
【
図4A】[0015]
図4Aは、斜め方向範囲外のモードに対するモードマッピングプロセスの図を提供するブロック図である。
【
図4B】
図4Bは、斜め方向範囲外のモードに対するモードマッピングプロセスの図を提供するブロック図である。
【
図4C】
図4Cは、斜め方向範囲外のモードに対するモードマッピングプロセスの図を提供するブロック図である。
【
図5】[0016]
図5は、VTM2で採用されている広角を図示するブロック図である。
【
図6】[0017]
図6は、VTM3で採用されているより広角を図示するブロック図である。
【
図7】[0018]
図7は、VTM3におけるpredModeIntraと角度パラメータintraPredAngleとのマッピング表を特定する表である。
【
図8】[0019]
図8は、イントラ副区分コーディングに対するブロックの例示的な分割を図示するブロック図である。
【
図9】[0020]
図9は、イントラ副区分コーディングに対するブロックの例示的な分割を図示するブロック図である。
【
図10】[0021]
図10は、複数の参照ライン予測を図示するブロック図である。
【
図11】[0022]
図11は、コーディングブロックがどのように4つの水平planar予測ブロックに分割されるかもしれないかの例を図示する概念図である。
【
図12】[0023]
図12は、コーディングブロックがどのように4つの垂直planar予測ブロックに分割されるかもしれないかの例を図示する概念図である。
【
図13】[0024]
図13は、このようなplanar予測ブロック構造の例を図示する概念図である。
【
図14】[0025]
図14は、コーディングブロックがどのように4つの予測ブロックに分割されるかを図示するブロック図である。
【
図15】[0026]
図15は、4×Nコーディングブロックがイントラ副区分および垂直区分でコード化される例を図示するブロック図である。
【
図16】[0027]
図16は、M×Nコーディングブロックが4つの予測ブロックに分割される例を図示する概念図である。
【
図17】[0028]
図17は、イントラ副区分コーディング(ISP)および垂直分割でコード化されている4×Nコーディングブロックに対して垂直イントラモード予測のみが許容される例を図示する概念図である。
【
図18】[0029]
図18は、8×N(N>4)コーディングブロックがISPでコード化され、垂直方向に分割されている例を図示する概念図である。
【
図19A】[0030]
図19Aは、例示的な4分ツリー2分ツリー(QTBT)構造と、対応するコーディングツリーユニット(CTU)とを図示する概念図である。
【
図19B】
図19Bは、例示的な4分ツリー2分ツリー(QTBT)構造と、対応するコーディングツリーユニット(CTU)とを図示する概念図である。
【
図20】[0031]
図20は、本開示の技法を実行してもよい、例示的なビデオエンコーダを図示するブロック図である。
【
図21】[0032]
図21は、本開示の技法を実行してもよい、例示的なビデオデコーダを図示するブロック図である。
【
図22】[0033]
図22は、現在ブロックをエンコードするための例示的な方法を示すフローチャートである。
【
図23】[0034]
図23は、現在ブロックをデコードするための例示的な方法を示すフローチャートである。
【
図24】[0035]
図24は、ビデオデータの現在ブロック上で予測ブロックグループ化を実行するための例示的な方法を図示するフローチャートである。
【詳細な説明】
【0013】
[0036]
一般的に、本開示は、イントラ副区分(ISP)コーディングにおいて予測ブロックグループを使用して、予測ブロックのコーディングおよび/またはデコーディングの改善に関する技法を説明している。このような技法は、現在開発中のバーサタイルビデオコーディング(VVC)標準規格を含む、現在または将来のビデオコーディング標準規格に適用してもよい。
【0014】
[0037]
いくつかの例では、ビデオコーダは、ISPコーディングを使用して、ビデオデータのブロックをコード化してもよい。例えば、ビデオコーダは、ビデオデータのブロックをサブブロック(例えば、予測ブロック)に区分してもよい。いくつかの例では、サブブロックは、1つ以上の寸法において、比較的に狭いサイズを有していてもよい。実例となる例では、コーディングブロックのようなコーディングユニット(CU)は、幅(W)×高さ(H)の寸法を有していてもよい。1つの例では、CUのWは4に等しくてもよく、HはN>0に等しくてもよい。実例となる例では、ビデオコーダは、ISPコーディングを使用して、4×NのCUをコード化してもよい。例えば、ビデオコーダは、垂直分割または水平分割を使用して、CUを区分してもよい。別の例では、ビデオコーダは、垂直分割と水平分割との組み合わせを使用してもよい。このような事例では、ビデオコーダは、垂直分割を使用して、CUの第1の1つ以上の部分を区分し、水平分割を使用して、同じCUの第2の1つ以上の部分を区分してもよい。
【0015】
[0038]
垂直分割を伴う例では、結果として生じるサブブロックは1×Nのサイズを有していてもよい。加えて、Nは8よりも大きくてもよい(例えば、Hは8よりも大きい)。このような例では、ビデオコーダは、サンプルの行方向の記憶装置を利用してもよい。ビデオコーダがサンプルの行方向の記憶装置を使用するときには、予め規定されているしきい値を下回る寸法を有するもののような、狭いサブブロックは、ビデオコーダが、非効率で時間を消費するメモリアクセス手順を実行することをもたらす。例えば、このような事例では、ビデオコーダは、メモリアクセス手順を実行するとき、サブブロック中のサンプルの数と比較して、メモリからのより多くのサンプルにアクセスする(例えば、読み出す)かもしれない。ブロックがサイズM×Nであるときには、メモリからの各行中のM個のサンプルにアクセスすることは、アクセス毎のサンプルの最小数における制限が原因で、M個のサンプルよりも多くにアクセスするような、オーバーヘッドを伴うことがよくあるかもしれない。例えば、所定のメモリアクセス手順は、別の行からのサンプルを読み出す前に、第1の行のサンプルを読み出すことをビデオコーダに要求するかもしれない。このような例では、ビデオコーダは、したがって、1つの狭いサブブロック中のターゲットサンプルにアクセスする前に、最小X個のサンプルを読み出すかもしれない。Xは、その狭いサブブロック中のサンプルの数よりも大きい。1×Nおよび2×Nサブブロックの狭い形状が原因で、狭いサブブロックに対して行の数がより多くなると、この問題は悪化する。例えば、4×4CUは、4つの行のみを有しているかもしれない。このような例では、サブブロックが4×4CUと同じ数のサンプルを有しているとしても、ビデオコーダは、1×16サブブロックに対して、16行をアクセスする必要があるかもしれない。結果的なオーバーヘッドは、特に、高いソリューションシーケンス中にいくつかの小さいコーディングブロックがある最悪のケースでは、コーディングプロセスの間に、ビデオコーダに遅延を経験させるかもしれない。加えて、CU中のサブブロックの再構築は、デコーディング順序において先行する、コーディングブロック中の他のサブブロックの再構築に依存する。このような事例では、この性質のサブブロックが原因で、ビデオコーダは、CUをコーディングまたはデコーディングする際に、増加した遅延を経験する可能性がある。
【0016】
[0039]
上述の問題は、とりわけ、予測ブロック(例えば、サブブロック)を予測ブロックグループ(PBG)にグループ化し、1つのPBG中に含まれている他の予測ブロックのサンプルとは無関係に、同じPBG中に含まれている予測ブロックのサンプルを再構築することにより、開示されている予測ブロックグループ化技法により取り扱うことができる。具体的には、イントラ副区分(ISP)を使用して、コーディングユニットを、垂直に、水平に、または、水平と垂直との組み合わせに分割して、その後にさまざまなPBGにグループ化されるかもしれない予測ブロックを形成してもよい。
【0017】
[0040]
本開示におけるさまざまな技法は、ビデオコーダを参照して、または、ビデオコーディングを参照して説明されているかもしれず、それらは、ビデオエンコーダおよびビデオコーディングまたはビデオデコーダのいずれかを指すことがある一般用語であることを意図している。明示的に述べられていない限り、ビデオエンコーダまたはビデオデコーダに関して説明されている技法は、ビデオエンコーダまたはビデオデコーダのうちの他方により実行することができないことが仮定されるべきではない。例えば、多くの実例では、ビデオデコーダは、エンコードされたビデオデータをデコードするために、ビデオエンコーダと同じ、または、ときには逆のコーディング技法を実行する。多くの事例において、ビデオエンコーダはまた、ビデオデコーディングループを含み、したがって、ビデオエンコーダは、ビデオデータをエンコードすることの一部としてビデオデコーディングを実行する。したがって、明示的に述べられていない限り、ビデオデコーダに関して本開示で説明されている技法はまた、ビデオエンコーダにより実行されてもよく、その逆も同様である。
【0018】
[0041]
図1は、本開示の技法を実行してもよい、例示的なビデオエンコーディングおよびデコーディングシステム100を図示するブロック図である。本開示の技法は、一般的に、ビデオデータをコード化(エンコードおよび/またはデコード)することに向けられている。一般的に、ビデオデータは、ビデオを処理するための任意のデータを含んでいる。したがって、ビデオデータは、生のコード化されていないビデオ、エンコードされたビデオ、デコードされた(例えば、再構築された)ビデオ、および、シグナリングデータのようなビデオメタデータを含んでいてもよい。
【0019】
[0042]
図1に示すように、システム100は、この例では、宛先デバイス116によってデコードされ、表示されるべき、エンコードされたビデオデータを提供する、発信元デバイス102を含んでいる。特に、発信元デバイス102は、コンピュータ読取可能媒体110を介して、ビデオデータを宛先デバイス116に提供する。発信元デバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンのような電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または、これらに類するものを含む、広範囲のデバイスのうちのいずれを含んでいてもよい。いくつかのケースでは、発信元デバイス102および宛先デバイス116は、ワイヤレス通信のために備えられてもよく、したがって、ワイヤレス通信デバイスとして呼ばれることがある。
【0020】
[0043]
図1の例では、発信元デバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含んでいる。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含んでいる。本開示によると、発信元デバイス102のビデオエンコーダ200および宛先デバイス116のビデオデコーダ300は、一般化されたイントラ予測のための技法を適用するように構成されていてもよい。したがって、発信元デバイス102はビデオエンコーディングデバイスの例を表す一方で、宛先デバイス116はビデオデコーディングデバイスの例を表している。他の例では、発信元デバイスおよび宛先デバイスは、他のコンポーネントまたは構成を含んでいてもよい。例えば、発信元デバイス102は、外部カメラのような外部ビデオソースからビデオデータを受け取ってもよい。同様に、宛先デバイス116は、統合されたディスプレイデバイスを含むよりもむしろ、外部ディスプレイデバイスとインターフェースしていてもよい。
【0021】
[0044]
図1に示されているシステム100は1つの例にすぎない。一般的に、任意のデジタルビデオエンコーディングおよび/またはデコーディングデバイスが、一般化されたイントラ予測のための技法を実行してもよい。発信元デバイス102および宛先デバイス116は、発信元デバイス102が宛先デバイス116への送信のためにコード化されたビデオデータを発生させる、このようなコーディングデバイスの例にすぎない。本開示は、データのコーディング(エンコーディングおよび/またはデコーディング)を実行するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200およびビデオデコーダ300は、コーディングデバイスの例を、特に、それぞれビデオエンコーダおよびビデオデコーダを表している。いくつかの例では、デバイス102、116は、デバイス102、116のそれぞれがビデオエンコーディングコンポーネントとビデオデコーディングコンポーネントとを含むように、実質的に対称的に動作してもよい。したがって、システム100は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、または、ビデオ電話に対する、ビデオデバイス102とデバイス116との間の一方向または双方向ビデオ送信をサポートしてもよい。
【0022】
[0045]
一般的に、ビデオソース104は、ビデオデータ(すなわち、生のコード化されていないビデオデータ)のソースを表し、ビデオデータの(「フレーム」としても呼ばれる)シーケンシャルな一連のピクチャーを、ピクチャーに対するデータをエンコードするビデオエンコーダ200に提供する。発信元デバイス102のビデオソース104は、ビデオカメラのようなビデオキャプチャデバイス、以前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/または、ビデオコンテンツプロバイダからビデオを受け取るためのビデオフィードインターフェースを含んでいてもよい。さらなる代替として、ビデオソース104は、ソースビデオとしてのコンピュータグラフィックスベースのデータを、または、ライブビデオとアーカイブビデオとコンピュータ発生ビデオとの組み合わせを発生させてもよい。各ケースにおいて、ビデオエンコーダ200は、キャプチャされた、事前キャプチャされた、または、コンピュータが発生させたビデオデータをエンコードする。ビデオエンコーダ200は、(ときには「表示順序」として呼ばれる)受け取った順序から、コーディングのためのコーディング順序にピクチャーを再構成してもよい。ビデオエンコーダ200は、エンコードされたビデオデータを含むビットストリームを発生させてもよい。発信元デバイス102は、その後、例えば、宛先デバイス116の入力インターフェース122による受け取りおよび/または取り出しのために、出力インターフェース108を介して、コンピュータ読取可能媒体110上に、エンコードされたビデオデータを出力してもよい。
【0023】
[0046]
発信元デバイス102のメモリ106および宛先デバイス116のメモリ120は、汎用メモリを表している。いくつかの例では、メモリ106、120は、生のビデオデータ、例えば、ビデオソース104からの生ビデオと、ビデオデコーダ300からの生のデコードされたビデオデータとを記憶してもよい。追加的にまたは代替的に、メモリ106、120は、例えば、ビデオエンコーダ200およびビデオデコーダ300それぞれによって実行可能なソフトウェア命令を記憶していてもよい。この例では、メモリ106およびメモリ120は、ビデオエンコーダ200およびビデオデコーダ300とは別個に示されているが、ビデオエンコーダ200およびビデオデコーダ300はまた、機能的に同様または同等の目的のために内部メモリを含んでいてもよいことを理解すべきである。さらに、メモリ106、120は、例えば、ビデオエンコーダ200から出力され、ビデオデコーダ300に入力される、エンコードされたビデオデータを記憶してもよい。いくつかの例では、メモリ106、120の一部分は、1つ以上のビデオバッファとして割り振られ、例えば、生のデコードされたおよび/またはエンコードされたビデオデータを記憶してもよい。
【0024】
[0047]
コンピュータ読取可能媒体110は、発信元デバイス102から宛先デバイス116へとエンコードされたビデオデータを転送することが可能な任意のタイプの媒体またはデバイスを表していてもよい。1つの例では、コンピュータ読取可能媒体110は、発信元デバイス102が、例えば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、エンコードされたビデオデータをリアルタイムで宛先デバイス116に直接送信することを可能にする通信媒体を表している。ワイヤレス通信プロトコルのような通信標準規格にしたがって、出力インターフェース108は、エンコードされたビデオデータを含む送信信号を変調してもよく、入力インターフェース122は、受け取った送信信号を復調してもよい。通信媒体は、無線周波数(RF)スペクトルまたは1つ以上の物理送信ラインのような、何らかのワイヤレスまたはワイヤード通信媒体を備えていてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、または、インターネットのようなグローバルネットワークのような、パケットベースのネットワークの一部を形成していてもよい。通信媒体は、ルータ、スイッチ、基地局、または、発信元デバイス102から宛先デバイス116への通信を容易にするのに役立つかもしれない他の何らかの機器を含んでいてもよい。
【0025】
[0048]
いくつかの例では、コンピュータ読取可能媒体110は、記憶デバイス112を含んでいてもよい。発信元デバイス102は、出力インターフェース108からコンピュータ読取可能媒体110(例えば、記憶デバイス112)にエンコードされたデータを出力してもよい。同様に、宛先デバイス116は、入力インターフェース122を介して、コンピュータ読取可能媒体110(例えば、記憶デバイス112)からのエンコードされたデータにアクセスしてもよい。記憶デバイス112は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは、エンコードされたビデオデータを記憶するための他の何らかの適切なデジタル記憶媒体のような、さまざまな分散またはローカルにアクセスされるデータ記憶媒体のいずれかを含んでいてもよい。
【0026】
[0049]
いくつかの例では、コンピュータ読取可能媒体110は、ファイルサーバ114、または、発信元デバイス102により発生されたエンコードされたビデオデータを記憶してもよい別の中間記憶デバイスを含んでいてもよい。発信元デバイス102は、エンコードされたビデオデータを、ファイルサーバ114に、または、発信元デバイス102によって発生させたエンコードされたビデオを記憶してもよい別の中間記憶デバイスに出力してもよい。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されているビデオデータにアクセスしてもよい。ファイルサーバ114は、エンコードされたビデオを記憶することと、宛先デバイス116にエンコードされたビデオを送信することとができる、任意のタイプのサーバデバイスであってもよい。ファイルサーバ114は、(例えば、ウェブサイトに対する)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、または、ネットワーク接続記憶(NAS)デバイスを表していてもよい。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通して、ファイルサーバ114からのエンコードされたビデオデータにアクセスしてもよい。これは、ファイルサーバ114上に記憶されている、エンコードされたビデオデータにアクセスするのに適している、ワイヤレスチャネル(例えば、Wi-Fi接続)、ワイヤード接続(例えば、デジタル加入者線(DSL)、ケーブルモデム等)、または、その両方の組み合わせを含んでいてもよい。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、または、これらの組み合わせにしたがって動作するように構成されていてもよい。
【0027】
[0050]
出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキングコンポーネント(例えば、イーサネット(登録商標)カード)、さまざまなIEEE802.11標準規格のいずれかにしたがって動作するワイヤレス通信コンポーネント、または、他の物理コンポーネントを表していてもよい。出力インターフェース108および入力インターフェース122がワイヤレスコンポーネントを備えている例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5G、または、これらに類するもののようなセルラ通信標準規格にしたがって、エンコードされたビデオデータのようなデータを転送するように構成されていてもよい。出力インターフェース108がワイヤレス送信機を備えているいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(例えば、ZigBee(商標))、Bluetooth(登録商標)(商標)標準規格、または、これらに類するもののような他のワイヤレス標準規格にしたがって、エンコードされたビデオデータのようなデータを転送するように構成されていてもよい。いくつかの例では、発信元デバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含んでいてもよい。例えば、発信元デバイス102は、ビデオエンコーダ200および/または出力インターフェース108に備わる機能性を実行するためのSoCデバイスを含んでいてもよく、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に備わる機能性を実行するSoCデバイスを含んでいてもよい。
【0028】
[0051]
本開示の技法は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、HTTPを通した動的アダプティブストリーミング(DASH)のようなインターネットストリーミングビデオ送信、データ記憶媒体上にエンコードされたデジタルビデオ、データ記憶媒体上に記憶されているデジタルビデオのデコーディング、または、他のアプリケーションのような、さまざまなマルチメディアアプリケーションのうちのいずれかをサポートするビデオコーディングに適用してもよい。
【0029】
[0052]
宛先デバイス116の入力インターフェース122は、コンピュータ読取可能媒体110(例えば、通信媒体、記憶デバイス112、ファイルサーバ114、または、これらに類するもの)からエンコードされたビデオビットストリームを受け取る。エンコードされたビデオビットストリームは、ビデオブロックまたは他のコード化されたユニット(例えば、スライス、ピクチャー、ピクチャーのグループ、シーケンス、または、これらに類するもの)の特性および/または処理を記述する値を有するシンタックス要素のような、ビデオエンコーダ200によって規定され、ビデオデコーダ300によっても使用されるシグナリング情報を含んでいてもよい。ディスプレイデバイス118は、デコードされたビデオデータのデコードされたピクチャーをユーザに表示する。ディスプレイデバイス118は、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または、別のタイプのディスプレイデバイスのような、さまざまなディスプレイデバイスのうちのいずれかを表していてもよい。
【0030】
[0053]
図1には示されていないが、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、それぞれオーディオエンコーダおよび/またはオーディオデコーダと統合されていてもよく、適切なMUX-DEMUXユニットあるいは他のハードウェアおよび/またはソフトウェアを含んでいて、共通のデータストリームにおけるオーディオおよびビデオの両方を含む多重化されたストリームを取り扱ってもよい。適用可能である場合には、MUX-DEMUXユニットは、ITU.H.223マルチプレクサプロトコル、または、ユーザデータグラムプロトコル(UDP)のような他のプロトコルにしたがっていてもよい。
【0031】
[0054]
ビデオエンコーダ200およびビデオデコーダ300はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、または、これらの組み合わせのような、さまざまな適したエンコーダおよび/またはデコーダ回路のいずれかとして実現してもよい。技法が部分的にソフトウェアで実現されるとき、デバイスは、適切な、非一時的コンピュータ読取可能媒体においてソフトウェアに対する命令を記憶していてもよく、1つ以上のプロセッサを使用して、ハードウェアにおいて命令を実行して、本開示の技法を実行してもよい。ビデオエンコーダ200およびビデオデコーダ300のそれぞれは、1つ以上のエンコーダまたはデコーダ中に含まれていてもよく、エンコーダまたはデコーダのどちらかは、それぞれのデバイスにおいて、組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合されていてもよい。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/または、セルラ電話機のようなワイヤレス通信デバイスを備えていてもよい。
【0032】
[0055]
ビデオエンコーダ200およびビデオデコーダ300は、高効率ビデオコーディング(HEVC)としても呼ばれるITU-T H.265のようなビデオコーディング標準規格に、または、マルチビューおよび/またはスケーラブルビデオコーディング拡張のような、高効率ビデオコーディング(HEVC)に対する拡張にしたがって動作してもよい。代替的に、ビデオエンコーダ200およびビデオデコーダ300は、共同調査テストモデル(JEM)またはバーサタイルビデオコーディング(VVC)としても呼ばれるITU-T H.266のような、他のプロプライエタリまたは業界標準規格にしたがって動作してもよい。VVC標準規格の最近のドラフトは、ブロスらにおける「バーサタイルビデオコーディング(ドラフト4)」、ITU-T SG16WP3およびISO/IEC JTC1/SC29/WG11のジョイントビデオエキスパートチーム(JVET)、第13回ミーティング:マサチューセッツ州マラケシ、2019年1月9日~18日、JVET-M1001-v2(以下「VVCドラフト4」)で説明されている。しかしながら、本開示の技術は、何らかの特定のコーディング標準規格には限定されない。
【0033】
[0056]
一般的に、ビデオエンコーダ200およびビデオデコーダ300は、ピクチャーのブロックベースコーディングを実行してもよい。「ブロック」という用語は、一般的に、処理される(例えば、エンコードされる、デコードされる、または、そうでなければ、エンコーディングおよび/またはデコーディングプロセスにおいて使用される)データを含む構造を指している。例えば、ブロックは、ルミナンスデータおよび/またはクロミナンスデータのサンプルの2次元行列を含んでいてもよい。一般的に、ビデオエンコーダ200およびビデオデコーダ300は、YUV(例えば、Y、Cb、Cr)フォーマットで表されるビデオデータをコード化してもよい。すなわち、ピクチャーのサンプルに対する赤、緑および青(RGB)データをコード化するよりもむしろ、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分とクロミナンス成分とをコード化してもよく、ここで、クロミナンス成分は、赤の色相と青の色相の両方のクロミナンス成分を含んでいてもよい。いくつかの例では、ビデオエンコーダ200は、エンコーディングの前に、受け取ったRGBフォーマットされたデータをYUV表現に変換し、ビデオデコーダ300は、YUV表現をRGBフォーマットに変換する。代替的に、(図示されていない)前処理ユニットおよび後処理ユニットがこれらの変換を実行してもよい。
【0034】
[0057]
本開示は、一般的に、ピクチャーのデータをエンコードまたはデコードするプロセスを含むように、ピクチャーのコーディング(例えば、エンコーディングおよびデコーディング)に言及しているかもしれない。同様に、本開示は、ブロックに対するデータをエンコーディングまたはデコーディングするプロセス、例えば、予測および/または残差コーディングを含むように、ピクチャーのブロックのコーディングに言及しているかもしれない。エンコードされたビデオビットストリームは、一般的に、コーディング決定(例えば、コーディングモード)とブロックへのピクチャーの区分とを表す、シンタックス要素に対する一連の値を含んでいる。したがって、ピクチャーまたはブロックをコード化することへの言及は、一般的に、ピクチャーまたはブロックを形成するシンタックス要素に対する値をコーディングすることとして理解すべきである。
【0035】
[0058]
HEVCは、コーディングユニット(CU)、予測ユニット(PU)および変換ユニット(TU)を含む、さまざまなブロックを規定する。HEVCにしたがうと、(ビデオエンコーダ200のような)ビデオコーダは、4分ツリー構造にしたがって、コーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUおよびCUを4つの等しい、オーバーラップしない正方形に区分し、4分ツリーの各ノードは、ゼロまたは4つの子ノードのいずれかを有する。子ノードのないノードは、「リーフノード」として呼ばれることがあり、このようなリーフノードのCUは、1つ以上のPUおよび/または1つ以上のTUを含んでいてもよい。ビデオコーダは、PUとTUとをさらに区分してもよい。例えば、HEVCでは、残差4分ツリー(RQT)はTUの区分を表している。HEVCでは、PUはインター予測データを表す一方で、TUは残差データを表している。イントラ予測されるCUは、イントラモードインジケーションのようなイントラ予測情報を含んでいる。本開示は、一般的に、区分という用語を使用して、TU、PUまたはCUとしてブロックを表し、または、複数のブロックまたは複数のブロックを含む領域を表しているかもしれない。
【0036】
[0059]
別の例として、ビデオエンコーダ200およびビデオデコーダ300は、JEMまたはVVCにしたがって動作するように構成されていてもよい。JEMまたはVVCによると、(ビデオエンコーダ200のような)ビデオコーダは、ピクチャーを複数のコーディングツリーユニット(CTU)に区分する。ビデオエンコーダ200は、4分ツリー-2分ツリー(QTBT)構造またはマルチタイプツリー(MTT)構造のようなツリー構造にしたがって、CTUを区分してもよい。QTBT構造は、HEVCのCUとPUとTUとの間の分離のような、複数の区分タイプの概念を除去する。QTBT構造は、4分ツリー区分にしたがって区分される第1のレベルと、2分ツリー区分にしたがって区分される第2のレベルと、の2つのレベルを含んでいる。QTBT構造のルートノードはCTUに対応する。2分ツリーのリーフノードは、コーディングユニット(CU)に対応する。
【0037】
[0060]
MTT区分構造では、4分ツリー(QT)区分と、2分ツリー(BT)区分と、3分ツリー(TT)区分との1つ以上のタイプを使用して、ブロックを区分してもよい。3分ツリー区分は、ブロックが3つのサブブロックに分割される区分である。いくつかの例では、3分ツリー区分は、中心を通して元のブロックを分けずに、ブロックを3つのサブブロックに分ける。MTTにおける区分タイプ(例えば、QT、BTおよびTT)は、対称または非対称であってもよい。
【0038】
[0061]
いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、単一のQTBTまたはMTT構造を使用して、ルミナンス成分とクロミナンス成分のそれぞれを表してもよい一方で、他の例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分のために1つのQTBT/MTT構造と、両方のクロミナンス成分のために別のQTBT/MTT構造(または、それぞれのクロミナンス成分のために2つのQTBT/MTT構造)のように、2つ以上のQTBTまたはMTT構造を使用してもよい。
【0039】
[0062]
ビデオエンコーダ200およびビデオデコーダ300は、HEVC毎の4分ツリー区分、QTBT区分、MTT区分、または、他の区分構造を使用するように構成されていてもよい。説明のために、本開示の技法の説明は、QTBT区分に関して提示する。しかしながら、本開示の技法はまた、4分ツリー区分、または、他のタイプの区分も同様に使用するように構成されているビデオコーダに適用してもよいことを理解されたい。
【0040】
[0063]
本開示は、「N×N」および「NバイN」を交換可能に使用して、垂直寸法および水平寸法に関する(CUまたは他のビデオブロックのような)ブロックのサンプル寸法、例えば、16×16サンプルまたは16バイ16サンプルを指すかもしれない。一般的に、16×16のCUは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×NのCUは、一般的に、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表している。CU中のサンプルは、行および列に配置されていてもよい。さらに、CUは、必ずしも水平方向に垂直方向と同じ数のサンプルを有する必要はない。例えば、CUはN×Mのサンプルを備えていてもよく、ここで、Mは必ずしもNに等しいとは限らない。
【0041】
[0064]
ビデオエンコーダ200は、予測および/または残差情報を、ならびに、他の情報を表す、CUに対するビデオデータをエンコードする。予測情報は、CUに対する予測ブロックを形成するために、CUがどのように予測されるべきかを示している。残差情報は、一般的に、エンコーディング前のCUのサンプルと予測ブロックとの間のサンプル毎の差分を表している。
【0042】
[0065]
CUを予測するために、ビデオエンコーダ200は、一般的に、インター予測またはイントラ予測を通して、CUに対する予測ブロックを形成してもよい。インター予測は、一般的に、以前にコード化されたピクチャーのデータからCUを予測することを指す一方で、イントラ予測は、一般的に、同じピクチャーの以前にコード化されたデータからCUを予測することを指している。インター予測を実行するために、ビデオエンコーダ200は、1つ以上の動きベクトルを使用して、予測ブロックを発生させてもよい。ビデオエンコーダ200は、一般的に、動きサーチを実行して、例えば、CUと参照ブロックとの間の差分に関して、CUに密接に一致する参照ブロックを識別してもよい。ビデオエンコーダ200は、絶対差分の和(SAD)、二乗差分の和(SSD)、平均絶対差分(MAD)、平均二乗差分(MSD)、または、他のこのような差分計算を使用して、差分メトリックを計算し、参照ブロックが現在CUに密接に一致するか否かを決定してもよい。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して、現在CUを予測してもよい。
【0043】
[0066]
JEMおよびVVCのいくつかの例はまた、インター予測モードと見なしてもよいアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはズームアウト、回転、透視動き、または、他の不規則な動きタイプのような、並進しない動きを表す2つ以上の動きベクトルを決定してもよい。
【0044】
[0067]
イントラ予測を実行するために、ビデオエンコーダ200は、イントラ予測モードを選択して、予測ブロックを発生させてもよい。JEMおよびVVCのいくつかの例は、さまざまな方向性モードとともに、planarモードおよびDCモードを含む、67個のイントラ予測モードを提供する。一般的に、ビデオエンコーダ200は、現在ブロックのサンプルを予測する、現在ブロック(例えば、CUのブロック)に隣接するサンプルを記述するイントラ予測モードを選択する。ビデオエンコーダ200がラスター走査順序(左から右、上から下)でCTUおよびCUをコード化すると仮定すると、このようなサンプルは、一般的に、現在ブロックと同じピクチャー中で、現在ブロックの上、左上または左にあってもよい。
【0045】
[0068]
ビデオエンコーダ200は、現在ブロックに対する予測モードを表すデータをエンコードする。例えば、インター予測モードに対して、ビデオエンコーダ200は、さまざまな利用可能なインター予測モードのうちのどれが使用されるかを表すデータとともに、対応するモードに対する動き情報をエンコードしてもよい。単方向または双方向インター予測に対して、例えば、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して、動きベクトルをエンコードしてもよい。ビデオエンコーダ200は、類似するモードを使用して、アフィン動き補償モードに対する動きベクトルをエンコードしてもよい。
【0046】
[0069]
ブロックのイントラ予測またはインター予測のような予測に続いて、ビデオエンコーダ200は、ブロックに対する残差データを計算してもよい。残差ブロックのような残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックに対する予測ブロックとの間の、サンプル毎の差分を表している。ビデオエンコーダ200は、1つ以上の変換を残差ブロックに適用して、サンプルドメインの代わりに変換ドメインにおいて、変換されたデータを生成させてもよい。例えば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または、概念的に類似する変換を残差ビデオデータに適用してもよい。さらに、ビデオエンコーダ200は、モード依存分離不可能2次変換(MDNSST)、信号依存変換、カルーネンレーベ変換(KLT)、または、これらに類するもののような、第1の変換に続く2次変換を適用してもよい。ビデオエンコーダ200は、1つ以上の変換の適用に続いて、変換係数を生成させる。
【0047】
[0070]
上述のように、変換係数を生成させるための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実行してもよい。量子化は、一般的に、変換係数が量子化されて、変換係数を表すために使用されるデータの量を場合によっては低減させ、さらなる圧縮を提供するプロセスを指している。量子化プロセスを実行することによって、ビデオエンコーダ200は、変換係数のいくつか、または、すべてに関係するビット深度を低減させてもよい。例えば、ビデオエンコーダ200は、量子化の間にn-ビット値をm-ビット値に切り捨ててもよく、ここで、nはmよりも大きい。いくつかの例では、量子化を実行するために、ビデオエンコーダ200は、量子化されるべき値のビット単位の右シフトを実行してもよい。
【0048】
[0071]
量子化に続いて、ビデオエンコーダ200は、変換係数を走査し、量子化された変換係数を含む2次元行列から1次元ベクトルを生成させてもよい。走査は、より高いエネルギー(したがって、より低い周波数)の変換係数をベクトルの前部に配置し、より低いエネルギー(したがって、より高い周波数)の変換係数をベクトルの後部に配置するように設計されていてもよい。いくつかの例では、ビデオエンコーダ200は、予め規定された走査順序を利用して、量子化変換係数を走査し、シリアル化ベクトルを生成させ、その後、ベクトルの量子化変換係数をエントロピーエンコードしてもよい。他の例では、ビデオエンコーダ200は、適応走査を実行してもよい。量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ200は、例えば、コンテキスト適応バイナリ算術コーディング(CABAC)にしたがって、1次元ベクトルをエントロピーエンコードしてもよい。ビデオエンコーダ200はまた、ビデオデータをデコードする際に、ビデオデコーダ300によって使用するために、エンコードされたビデオデータに関係するメタデータを記述するシンタックス要素に対する値をエントロピーエンコードしてもよい。
【0049】
[0072]
CABACを実行するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを送信されるべきシンボルに割り当ててもよい。コンテキストは、例えば、シンボルの隣接する値がゼロ値にされているか否かに関連していてもよい。確率決定は、シンボルに割り当てられているコンテキストに基づいていてもよい。
【0050】
[0073]
ビデオエンコーダ200はさらに、例えば、ピクチャーヘッダ中で、ブロックヘッダ中で、スライスヘッダ中で、あるいは、シーケンスパラメータセット(SPS)、ピクチャーパラメータセット(PPS)、または、ビデオパラメータセット(VPS)のような他のシンタックスデータ中で、ビデオデコーダ300への、ブロックベースのシンタックスデータ、ピクチャーベースのシンタックスデータ、および、シーケンスベースのシンタックスデータのようなシンタックスデータを発生させてもよい。ビデオデコーダ300は、同様に、このようなシンタックスデータをデコードして、対応するビデオデータをどのようにデコードするかを決定してもよい。
【0051】
[0074]
このようにして、ビデオエンコーダ200は、エンコードされたビデオデータを含む、例えば、ブロック(例えば、CU)へのピクチャーの区分と、ブロックに対する予測および/または残差情報とを記述する、シンタックス要素を含む、ビットストリームを発生させてもよい。最終的に、ビデオデコーダ300は、ビットストリームを受け取り、エンコードされたビデオデータをデコードしてもよい。
【0052】
[0075]
一般的に、ビデオデコーダ300は、ビデオエンコーダ200によって実行されたプロセスとは逆のプロセスを実行して、ビットストリームのエンコードされたビデオデータをデコードする。例えば、ビデオデコーダ300は、ビデオエンコーダ200のCABACエンコーディングプロセスと、逆ではあるが、実質的に類似する方法で、CABACを使用して、ビットストリームのシンタックス要素に対する値をデコードしてもよい。シンタックス要素は、CTUにピクチャーを区分するための区分情報と、QTBT構造のような、対応する区分構造にしたがって、各CTUを区分することとを規定して、CTUのCUを規定していてもよい。シンタックス要素は、ビデオデータのブロック(例えば、CU)に対する予測および残差情報をさらに規定していてもよい。
【0053】
[0076]
残差情報は、例えば、量子化変換係数によって表されていてもよい。ビデオデコーダ300は、ブロックの量子化された変換係数を逆量子化および逆変換して、ブロックに対する残差ブロックを再生させてもよい。ビデオデコーダ300は、シグナリングされた予測モード(イントラ予測またはインター予測)と、関連する予測情報(例えば、インター予測に対する動き情報)とを使用して、ブロックに対する予測ブロックを形成する。ビデオデコーダ300は、その後、(サンプル毎のベースで)予測ブロックと残差ブロックとを組み合わせて、元のブロックを再生させてもよい。ビデオデコーダ300は、デブロッキングプロセスを実行することのような、追加の処理を実行して、ブロックの境界に沿った視覚的アーティファクトを低減させてもよい。
【0054】
[0077]
本開示の技法によると、ビデオエンコーダ200および/またはビデオデコーダ300は、一般化イントラ予測を実行してもよい。例えば、ビデオエンコーダ200および/またはビデオデコーダ300は、ビデオデータの現在コーディングブロックに対する一般化予測の実行のインジケーションをコード化し、インジケーションに基づいて、現在コーディングブロックを1つ以上の予測ブロックに分割し、1つ以上の予測ブロックに基づいて、1つ以上の予測ブロックグループ(PBG)を規定し、PBGのコーディング順序を決定し、コーディング順序でPBGをコード化してもよい。
【0055】
[0078]
いくつかの例では、ビデオコーダ(例えば、ビデオエンコーダ200および/またはビデオデコーダ300)は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成してもよい。例えば、ビデオコーダは、CUの垂直分割または水平分割を実行してもよい。別の例では、ビデオコーダは、CUの垂直分割と水平分割との組み合わせとして、CUの分割を実行してもよい。例えば、ビデオコーダは、CUの一部分において垂直分割を実行し、CUの他の部分に対して水平分割を実行してもよい。いずれのケースでも、ビデオコーダは、さまざまな分割または区分技法を介してCUを分割して、予測ブロックのセットを形成してもよい。
【0056】
[0079]
いくつかの例では、予測ブロックは、少なくとも第1の予測ブロックと第2の予測ブロックとを含んでいてもよい。いくつかの例では、CUは単一の予測ブロックを含んでいてもよい。予測ブロックは、狭い垂直ブロック、狭い水平ブロック、または、垂直ブロックと水平ブロックとの組み合わせを含んでいてもよい。この文脈で、用語「狭い」は、一般的に、非正方形ブロック(例えば、長方形ブロック等)を含んでいることに留意すべきである。
【0057】
[0080]
加えて、ビデオコーダは、予測ブロックのセットのうちの複数を第1の予測ブロックグループ(PBG)にグループ化してもよい。いくつかの例では、PBGは、少なくとも2つの予測ブロックを含んでいてもよい。例えば、PBGは、1つ以上の垂直予測ブロック、1つ以上の水平予測ブロック、または、垂直予測ブロックと水平予測ブロックとの1つ以上の組み合わせを含んでいてもよい。別の例では、PBGは単一の予測ブロックを含んでいてもよい。さらに、CUは、さまざまなサイズのPBGを含んでいてもよい。例えば、単一のCUが、1つ以上の予測ブロック(例えば、垂直ブロック、水平ブロック、または、垂直ブロックと水平ブロックの両方)をグループ化することにより形成された第1のPBGと、少なくとも2つの予測ブロック(例えば、垂直ブロック、水平ブロック、または、垂直ブロックと水平ブロックの両方)をグループ化することにより形成された第2のPBGとを有する複数のPBGを含んでいてもよい。いくつかの例では、単一のCUが、追加的に、少なくとも2つの予測ブロック(例えば、垂直ブロック、水平ブロック、または、垂直ブロックと水平ブロックの両方)をグループ化することにより形成された第3のPBGと、少なくとも3つの予測ブロック(例えば、垂直ブロック、水平ブロック、または、両方)をグループ化することにより形成された第4のPBG等とを含んでいてもよい。
【0058】
[0081]
加えて、1つ以上の後続するCUが、予測ブロックおよび/またはPBGの同じまたは異なる配置を含んでいてもよい。例えば、第2のCUが、1つ以上の先行するCUの区分と、同じ区分または少なくとも類似する区分を含んでいてもよい。別の例では、第2のCUが、1つ以上の先行するCUの区分と異なる区分スキームを含んでいてもよい。例えば、ビデオコーダは、垂直分割を使用して、第1のCUを区分し、水平分割を使用して、第2のCUを区分し、水平分割と垂直分割との組み合わせを使用して、第3のCUを区分し、(例えば、他の区分された予測ブロックに関してより多いまたはより少ない狭い予測ブロックを形成するために)異なるタイプの水平分割を使用して、第4のCUを区分し、あるいは、他の何らかの組み合わせまたはバリエーションで、区分してもよい。
【0059】
[0082]
本開示は、垂直分割に関して、または、いくつかの事例では水平分割に関していくつかの例を説明しているが、本開示の技法は、説明されているように、そのようには限定されないことが理解されるだろう。追加の非限定的な例では、例示の目的で、ビデオデコーダが、少なくとも2つのCUを区分するために垂直分割を使用することによるものと、同じ区分スキームを使用して、複数のCUを区分してもよい。ビデオコーダは、追加的に、それぞれ区分されたCUに対して、異なってまたは同じに、区分された予測ブロックをグループ化してもよい。例えば、ビデオコーダは、第1のCUにおいて垂直分割を実行して、少なくとも3つのPBGのグループを形成してもよい一方、ビデオコーダは、1つ以上の後続するCUにおいて類似する垂直分割を実行するが、少なくとも2つのPBGを形成してもよい。すなわち、ビデオコーダが、例えば、垂直分割を使用して、各CUを区分するケースでも、各CUに対するPBGの量は、1つの区分されたCUから次の区分されたCUまで必ずしも等しくなくてもよい。簡潔さのために、すべてのオプションが明示的に描写されているわけではないが、本開示で説明されているさまざまな技法または技法のバリエーションのうちの1つ以上により、他の分割および/またはグループ化オプションを達成してもよいことを理解されたい。加えて、ビデオコーダは、上記で説明され、以下でさらに説明されているように、このようなPBGの独立した再構築を実行してもよい。
【0060】
[0083]
ビデオコーダは、その後、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築してもよい。例えば、ビデオコーダは、デコーディングループの一部として、サンプルを再構築してもよい。他の事例では、ビデオデコーダ300が、CUを分割して、予測ブロックのセットを形成し、予測ブロックをPBGにグループ化してもよい。
【0061】
[0084]
本開示は、一般的に、シンタックス要素のような、ある情報を「シグナリングすること」に関連しているかもしれない。「シグナリング」という用語は、一般的に、シンタックス要素のおよび/またはエンコードされたビデオデータをデコードするのに使用される他のデータの値の通信に関連しているかもしれない。すなわち、ビデオエンコーダ200は、ビットストリーム中でシンタックス要素に対する値をシグナリングしてもよい。一般的に、シグナリングは、ビットストリーム中で値を発生させることを指している。上述のように、発信元デバイス102は、実質的にリアルタイムで、または、宛先デバイス116による後の取り出しのために、シンタックス要素を記憶デバイス112中に記憶させるときに起こるかもしれないような、リアルタイムではなく、ビットストリームを宛先デバイス116に転送してもよい。
【0062】
[0085]
図2は、例示的なイントラ予測モードを図示する図である。イントラ予測の例は広角イントラ予測である。いくつかの例では、ルーマブロックのイントラ予測は、Planar予測モードと、DC予測モードと、33個のangular(または、方向)予測モードとを含む、35個のモードを含んでいる。例えば、正方形ブロックに対する方向予測は、いくつかの事例では、
図2に図示されているように、VVCテストモデル2(VTM2)(「バーサタイルビデオコーディングおよびテストモデル2(VTM2)のためのアルゴリズム説明」、第11回JVETミーティング、リュブリャナ、SI、2018年7月、J.Chen、Y.YeおよびS.KimによるJVET-K1002を参照されたい)におけるような、現在ブロック250の-135度~45度の間の方向を使用してもよい。イントラ予測の35個のモードは、以下の表1に示されているようにインデックス付けされている。
【0063】
【0064】
[0086]
VTM2では、イントラ予測に対する予測ブロックを特定するために使用されるブロック構造は正方形(幅w=高さh)に限定されない。例えば、長方形の予測ブロック(w>hまたはw<h)は、コンテンツの特性に基づいて、コーディング効率を高めることができる。
【0065】
[0087]
このような長方形ブロックでは、イントラ予測の方向を-135度から45度内に制限することは、イントラ予測のためにより近い参照サンプルよりむしろ、より遠い参照サンプルが使用される状況をもたらすことがある。このような設計は、コーディング効率に影響を及ぼす可能性がある。予測のために(-135~45度の角度を超える)より近い参照サンプルが使用されるように、制限の範囲を緩和させることがより有益であるかもしれない。このようなケースの例を
図3に示している。
【0066】
[0088]
図3は、8×4の長方形ブロックの例を図示するブロック図である。
図3の例では、イントラ予測方向が-135度~45度の範囲であるように制限されるので、(円3002により示されている)「より近い」参照サンプルは使用されないが、(円3006により示されている)「より遠い」参照サンプルが使用されるかもしれない。すなわち、
図3の例では、-135度以内であるが円3002により示されているものよりも遠いいくつかの参照サンプルが使用されるかもしれないが、いくつかの参照サンプルは、他のサンプルよりも近いが、例えば、円3006により示されているサンプルよりも近いが使用されない。
【0067】
[0089]
図4A~
図4Cは、斜め方向範囲外のモードに対するモードマッピングプロセスの図を提供するブロック図である。
図4Aの例では、正方形ブロックCU402は、angularモード再マッピングを必要としない。
図4Bは、水平非正方形ブロックCU404に対するangularモード再マッピングを図示している。
図4Cは、垂直非正方形ブロックCU406に対するangularモード再マッピングを図示している。
【0068】
[0090]
図5は、VTM2において採用される広角イントラ予測を図示するブロック図である。いくつかの例では、広角イントラ予測は、ブロック550のような、正方形ブロックおよび非正方形ブロックに対するangularイントラ予測を含んでいる。
【0069】
[0091]
第12回のJVETミーティング間に、広角イントラ予測の修正がVVCテストモデル3(VTM3)に採用され、その詳細は、(i)L.Zhao,X.Zhao,S.LiuおよびX.Liによる「CE3関連:正方形ブロックおよび非正方形ブロックに対するangularイントラ予測の統一」、第12回のJVETミーティング,マカオSAR,CN,2018年10月,JVET-L0279;(ii)J.Chen,Y.YeおよびS.Kimによる「バーサタイルビデオコーディングおよびテストモデル3(VTM3)に対するアルゴリズム説明」、第12回のJVETミーティング,マカオSAR,CN,2018年10月,JVET-L1002;および(iii)B.Bross,J.ChenおよびS.Liuによる「バーサタイルビデオコーディング(ドラフト3)」、第12回のJVETミーティング,マカオSAR,CN,2018年10月,JVET-L1001から入手可能である。
【0070】
[0092]
この採用は、正方形ブロックおよび非正方形ブロックに対するangularイントラ予測を統一するための2つの修正を含んでいる。第1に、すべてのブロック形状の斜め方向をカバーするように、angular予測方向が修正されている。第2に、
図4A~
図4Cに図示され、上述したように、すべてのブロックアスペクト比(正方形および非正方形)に対して、左下斜め方向と右上斜め方向との間の範囲内に角度方向を維持するかもしれない。加えて、上部参照行および左参照列中の参照サンプルの数は、すべてのブロック形状に対して、2*幅+1および2*高さ+1に制限されている。
図5の例では、65個のangularモードに加えて、広角(-1~-10および67~76)が描かれている。
【0071】
[0093]
図6は、VTM3において採用されているブロック650の予測のためのより広い角度を図示するブロック図である。VTM3は、任意のブロックサイズに対して95個のモードを規定しているが、67個のモードのみが許容されてもよい。許容される正確なモードは、ブロック幅とブロック高さとの比に依存する。これは、あるブロックサイズに対してモード範囲を制限することにより行われる。
図6は、合計93個のangularモードに対して、モード2および66を超えるVTM3における広角(-1~-14および67~80)の図を提供する。
【0072】
[0094]
図7は、VTM3におけるpredModeIntraと角度パラメータintraPredAngleとの間の例示的なマッピングを提供する例示的なマッピング表であり、このさらなる詳細は、B.Bross,J.ChenおよびS.Liuによる「バーサタイルビデオコーディング(ドラフト3)」、第12回のJVETミーティング、マカオSAR、CN、2018年10月、JVET-L1001から入手可能である。以下では、正のintraPredAngle値を有するangularモードは、正のangularモード(モードインデックス<18または>50)と呼び、負のintraPredAngle値を有するangularモードは、負のangularモード(モードインデックス>18および<50)として呼ぶ。
【0073】
[0095]
逆角度パラメータinvAngleは、式(1)にしたがうように、intraPredAngleに基づいて導出される。
【0074】
【0075】
[0096]
32の倍数であるintraPredAngle値(すなわち、この例では0,32,64,128,256,512の値)は、VTM3仕様のケースのように、非小数参照アレイサンプルからの予測に対応することに留意すべきである。以下の表2は、さまざまなブロックアスペクト比に対応する斜めモードを図示している。
【0076】
【0077】
[0097]
イントラ副区分コーディング(ISP)を本開示の以下の部分で説明する。イントラ副区分コーディング(ISP)((S.De Luxan Hernandez,H.Schwarz,D.Marpe,T.Wiegand(HHI)「CE3:ラインベースのイントラコーディングモード」,JVET-L0076)は、コーディングブロック(例えば、コーディングユニット)を複数のサブブロックに分割または区分する方法である。例えば、コーディングユニットを2つのサブブロック、4つのサブブロック等に分割または区分してもよい。いくつかの実例では、サブブロックは、予測ブロックとして呼ばれることがある。いくつかの例では、コーディングブロック内の各サブブロックは、デコーディング順序中で後続のサブブロックの再構築の前に、デコーディング順序で再構築される。VVCの第4のワーキングドラフト(以下では「VVC WD4」であり、phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M1001-v2.zipにおいて入手可能である)では、ISPは、ルーマコーディングブロックにのみ適用してもよい。このような例では、これらのISPコード化ブロックに対する参照サンプルは、コーディングブロックに最も近い参照ラインからのものであるように制限される(複数の参照ライン予測を参照して以下で説明されているMRLIdx=0を参照)。
【0078】
[0098]
図8および
図9は、ISPコーディングのためのブロックの例示的な分割を図示するブロック図である。
図8は、4×8ブロックと8×4ブロックの分割の例を図示している。
図9は、4×8ブロックと8×4ブロックと4×4ブロックとを除いたすべてのブロックの分割の例を図示している。
【0079】
[0099]
1ビットを使用して、コーディングブロックがイントラ副区分に分割されるか否かをシグナリングし、第2のビットを使用して、分割タイプを示す。例示的な分割タイプは、水平分割、垂直分割、垂直および水平分割等を含んでいる。使用されるイントラモードおよび分割タイプに基づいて、通常順序および逆処理順序として呼ばれる、2つの異なるクラスの処理順序を使用してもよい。通常順序では、処理される最初の副区分は、CUの左上のサンプルを含む副区分であり、その後、下方向(水平分割)または右方向(垂直分割)に継続する。一方、逆処理順序は、CUの左下のサンプルを含む副区分で開始して上方向(水平分割)に継続するか、または、CUの右上のサンプルを含む副区分で開始して左方向(垂直分割)に継続する。
【0080】
[0100]
いくつかの例では、ISPのバリエーションは、VVC WD4におけるように、通常処理順序のみを使用してもよい。用語「サブブロック」および「サブ区分」は、本明細書では交換可能に使用されるかもしれないことに留意されたい。いずれのケースでも、両方の用語は、ISPを使用して、コーディングブロックを区分することにより取得されるブロックを指している。
【0081】
[0101]
VVC WD4におけるISPに関係するいくつかのシンタックス(例えば、表3および4)およびセマンティクスが以下に示され、イタリック体は、関係するシンタックスを示している。
【0082】
【0083】
【0084】
[0102]
コーディングユニットのセマンティクス。
【0085】
[0103]
1に等しいintra_subpartitions_mode_flag[x0][y0]は、現在イントラコーディングユニットがNumIntraSubPartitions[x0][y0]長方形変換ブロック副区分に区分されることを指定する。0に等しいintra_subpartitions_mode_flag[x0][y0]は、現在イントラコーディングユニットが長方形変換ブロック副区分に区分されないことを指定する。
【0086】
[0104]
intra_subpartitions_mode_flag[x0][y0]が存在しないときには、intra_subpartitions_mode_flagの値は0に等しいと推測される。
【0087】
[0105]
いくつかの例では、イントラ副区分分割フラグを使用して、分割タイプを示してもよい。例えば、intra_subpartitions_split_flag[x0][y0]は、分割タイプまたは多数のさまざまな分割タイプを指定してもよい。いくつかの例では、イントラ副区分分割タイプが、水平、垂直、長方形、垂直と水平の混合、または、他の何らかの分割タイプであるか否かを、イントラ副区分分割フラグが示してもよい。intra_subpartitions_mode_flag[x0][y0]が存在しないときには、ビデオコーダは、フラグが0に等しいと推測してもよい。
【0088】
[0106]
変数IntraSubPartitionsSplitTypeは、以下の表5に図示されているように、現在ルーマコーディングブロックに対して使用される分割のタイプを指定する。IntraSubPartitionsSplitTypeは、以下のように導出される。
【0089】
[0107]
intra_subpartitions_mode_flag[x0][y0]が0に等しい場合には、IntraSubPartitionsSplitTypeは0に等しいように設定される。
【0090】
[0108]
そうでない場合、IntraSubPartitionsSplitTypeは、1+intra_subpartitions_split_flag[x0][y0]に等しくなるように設定される。
【0091】
【0092】
[0109]
変数NumIntraSubPartitionsは、イントラルーマコーディングブロックが分割される変換ブロック副区分の数を指定する。NumIntraSubPartitionsは、以下のように導出される。
【0093】
[0110]
IntraSubPartitionsSplitTypeが、ISP_NO_SPLITに等しい場合には、NumIntraSubPartitionsは、1に等しくなるように設定される。
【0094】
[0111]
そうではなく、以下の条件のうちの1つが真である場合には、NumIntraSubPartitionsは、2に等しくなるように設定される:(1)cbWidthが4に等しく、cbHeightが8に等しい、または、(2)cbWidthが8に等しく、cbHeightが4に等しい。そうでなければ、NumIntraSubPartitionsは、4に等しくなるように設定される。
【0095】
[0112]
本開示の以下の部分で、複数の参照ライン予測を説明する。ブロックのイントラ予測のために、コーディングブロックの近傍のサンプルを使用する。典型的には、イントラ予測のための参照サンプルとして、コーディングブロックの左境界および上境界に最も近い再構築された参照サンプルラインを使用する。VVC WD4におけるようないくつかの例では、ビデオコーダは、コーディングブロックまたはCUの近傍におけるサンプルのような他のサンプルを参照サンプルとして使用してもよい。
【0096】
[0113]
図10は、イントラ予測のために使用されるかもしれない参照サンプルラインを図示するブロック図である。各コーディングブロックに対して、使用される参照ラインを示すインデックスがシグナリングされる。
【0097】
[0114]
VVC WD4におけるようないくつかの例では、ビデオコーダは、0、1または3に等しいMRLIdxを有する参照ラインのみを使用してもよい。ビデオコーダは、切捨て単項コードワードを用いて、ブロックをコード化するために使用される参照ラインへのインデックス(例えば、それぞれMRLIdx0、1および3を有するラインを示す値0、1および2)をコード化してもよい。MRLIdx>0を有する使用される参照ラインに対して、PlanarモードおよびDCモードは使用されない。
【0098】
[0115]
いくつかの例では、ブロック(例えば、コーディングユニット(CU))のイントラ副区分(ISP)コーディングは、1つ以上の寸法において非常に小さいサイズを有するサブブロック(例えば、予測ブロック)となるかもしれない。例えば、ビデオコーダが、ISPコーディングを使用して、サイズ4×N(W×H)のコーディングブロックをコード化し、垂直分割が使用されるときには、Nが8よりも大きいとき、結果として生じるサブブロックはサイズ1×Nを有する。サンプルの行方向記憶装置に依存するインプリメンテーションでは、サブブロックがますます狭くなると、サブブロック中のサンプルの数よりも多いサンプルのメモリアクセスが生じるかもしれない。ブロックがサイズM×Nであるときには、メモリから各行中のM個のサンプルにアクセスすることは、アクセス毎にサンプルの最小数における制限が原因で、M個よりも多いサンプルにアクセスすることのようなオーバーヘッドを伴うことが多いかもしれない。
【0099】
[0116]
1×Nおよび2×Nブロックの狭い形状が原因で、狭いブロックに対して行の数がより多くなると、この問題は、悪化するかもしれない。例えば、4×4ブロックは、4つの行のみを有しているかもしれない。1×16サブブロックは、4×4ブロックと同じ数のサンプルを有するが、アクセスされるべき16行を有する。結果的なオーバーヘッドは、遅延クリティカルなケースでは、特に、高いソリューションシーケンス中にいくつかの小さいコーディングブロックがある最悪のケースでは、問題を有するかもしれない。コーディングブロック中のサブブロックの再構築は、デコーディング順序において先行する、コーディングブロック中の他のサブブロックの再構築に依存するかもしれないので、これらのサブブロックは、ブロックをデコードするために遅延を増加させる可能性があり、これは望ましくないかもしれない。
【0100】
[0117]
この問題を取り扱うためのいくつかの解決策が提案されている。しかしながら、提案された解決策のそれぞれは、コード化の非効率性をもたらすかもしれない欠点を伴う。1つの提案された解決策は、それぞれサイズ1×Nおよび2×Nのブロックをもたらす4×Nおよび8×Nブロックの垂直分割をディセーブルすることである。しかしながら、この提案された解決策は、ISPの効率を低下させるかもしれない。別の提案された解決策(すなわち、S.De Luxan Hernandez,V.George,J.Ma,T.Nguyen,H.Schwarz,D.Marpe,T.Wiegand(HHI),「CE3:イントラ副区分コーディングモード」JVET-M0102)は、それらがコーディングブロック中の他のサブブロックの再構築に依存しないように、1×Nサブブロックの予測をVER予測モードに制限することである。しかしながら、この提案された解決策は、コーディングブロックに対して許容されるイントラモードを制限することになり、コード化の非効率性をもたらす。
【0101】
[0118]
本開示は、CUの副区分コーディングの設計を改善するための技法を提案する。本明細書で開示されている技法のうちの1つ以上は、別々に実現するか、または、何らかの組み合わせで一緒に実現してもよい。
【0102】
[0119]
第1の提案技法によると、ビデオコーダ(例えば、ビデオエンコーダ200および/またはビデオデコーダ300)は、サブブロック(例えば、予測ブロック)の一般化予測を実行してもよい。1つの例として、ビデオコーダは、インジケーション(例えば、シンタックス要素)をコード化して、コーディングブロックに対する一般化予測を実行してもよい。いくつかの例では、一般化予測を実行するためのインジケーションは、コーディングブロックがISPでコード化されることのインジケーションを伴っていてもよい。いくつかの例では、一般化予測を実行するためのインジケーションは、例えば、ブロック幅がしきい値範囲内にあるとき、または、ブロック高がしきい値範囲内にあるとき、または、ブロック中のサンプルの数がしきい値範囲内にあるとき、または、ブロック幅とブロック高との和がしきい値範囲内にあるとき、または、ブロック幅とブロック高との最小値または最大値がしきい値範囲内にあるとき、のようないくつかの特性を有するブロックのみに適用してもよい。いくつかの例では、ブロックに対して、ブロックに対して許容されているイントラモードのセットからのイントラモードのサブセットを規定してもよい。このような例では、サブセットに属するイントラモードによりブロックがコード化されるときのみ、一般化予測をブロックに適用してもよい。いくつかの例では、インジケーションは、ブロックの特性/特徴、隣接ブロックのイントラモードおよび特性により推測してもよく、すなわち、明示的なシグナリングが使用されなくてもよい。例えば、ブロック幅が特定のしきい値よりも小さいときには、一般化予測を適用してもよい。
【0103】
[0120]
別の例として、一般化予測を実行するというインジケーションに基づいて、ビデオコーダは、コーディングユニットを1つ以上の予測ブロックに分割してもよい。
【0104】
[0121]
別の例として、ビデオコーダは、1つ以上の予測ブロックグループ(PBG)を規定してもよい。PBGは1つ以上の予測ブロックを含んでいてもよい。PBG中の何らかのサンプルの予測は、PBG中の他の何らかのサンプルの予測された値に直接的に依存していないかもしれない。例えば、ビデオコーダは、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、同じPBG中に含まれている予測ブロックのサンプルを再構築してもよい。このようにして、第1のPBG中のサンプルの予測は、第1のPBG中の他のサンプルの予測された値に依存しない。
【0105】
[0122]
いくつかの例では、各PBGは、ちょうど1つの予測ブロックを含んでいる。いくつかの例では、各PBGは、nPB個の予測ブロック(例えば、予測ブロック量)を含んでいてもよい。このような例では、ビデオコーダは、コーディングユニットの幅と高さとに基づいて、nPBの値を決定してもよい。別の例では、ビデオコーダは、コーディングユニットのサンプルの数に基づいて、または、コーディングユニットのサンプルの数と幅および高さとに基づいて、nPBの値を決定してもよい。いくつかの例では、ビデオコーダはまた、分割タイプ(例えば、水平、垂直、長方形、水平と垂直との混合等)および/またはイントラモード(例えば、angular等)を使用して、コーディングユニットまたはコーディングブロックに対するnPBの値を決定してもよい。いくつかの例では、ビデオコーダは、形状が長方形でない予測ブロックを指定してもよい。
【0106】
[0123]
いくつかの例では、「PBG中の何らかのサンプルの予測は、PBG中の他の何らかのサンプルの予測された値に依存しないかもしれない」という制限が緩和されるかもしれない。例えば、PBG内のサンプルの予測された値間に依存性をもたらすかもしれない、あるフィルタリング動作を予測されたブロック上に適用するときには、PBG内のサンプルの予測依存性の制限は、(後予測フィルタリング動作がない)通常イントラ予測が依存性とならない限り、依然として有効であると見なされるかもしれない。例えば、制限は、位置依存イントラ予測組み合わせ(PDPC)、境界フィルタリング、または、他の類似する動作に起因する依存性に適用されないかもしれない。いくつかの例では、コーディングブロック中の各予測ブロックは、1つのそして1つのみのPBG中に含まれているかもしれない。いくつかの例では、この制限はより厳しくてもよい。例えば、コーディングブロック中の各予測ブロックが、1つのPBG中に、そして1つのみのPBG中に含まれていなければならないとの制限がされるかもしれない。
【0107】
[0124]
別の例として、ビデオコーダは、PBGのデコーディング順序を指定してもよく、デコーディング順序は、P1がデコーディング順序でP2に先行するときに、PBG P1中のサンプルがPBG P2中のサンプルに依存しないように規定されてもよい。
【0108】
[0125]
別の例として、各PBGに対して、ビデオコーダは、(以下で説明されている)利用可能な参照サンプルのセットを指定してもよい。
【0109】
[0126]
別の例として、ビデオコーダは、PBGに対して利用可能な参照サンプルと、予測のために使用されるイントラモードとに基づいて、PBG中のサンプルに対する予測された値を取得してもよい。
【0110】
[0127]
第2の提案技法によると、ビデオコーダは、一般化planar予測を実行してもよい。1つの例として、ビデオコーダは、コーディングブロックに対する予測ブロックのセットを規定してもよい。いくつかの例では、ビデオコーダは、Planarモードで予測ブロックのうちの1つ以上をコード化してもよい。ビデオコーダは、以下のうちの1つ以上により、コーディングブロックをplanar予測ブロックに分割する決定を実行してもよい。
【0111】
[0128]
1.ブロックがplanar予測ブロックに分割されることになるという、ビットストリーム中のインジケーション(例えば、フラグ)。いくつかの例では、コーディングブロックは、Planarモードによりコード化されるようになることが示されてもよい。別の例では、インジケーションは、コーディングブロックが、ISPを使用してコード化されることであってもよい。
【0112】
[0129]
2.Planar予測ブロックは、別個のモード値MPPBにより示されてもよい。ブロックがMPPBでコード化されるようになることが示されるときには、ブロックはplanar予測ブロックに分割される。
【0113】
[0130]
3.決定は、あるブロック特徴と、ビットストリーム中の他のシンタックス要素とに基づいて、推測されてもよい。例えば、ある最大数のサンプルを有し、ISPでコード化されているブロックは、planar予測ブロックに分割されてもよい。
【0114】
[0131]
いくつかの例では、ビデオコーダは、以下のうちの1つ以上により、planar予測ブロックの数NPPBと、分割決定とを決定してもよい。NPPBは、(例えば、すべてのブロックに対して、または、ある特徴を有するブロックに対して)ビットストリーム中でシグナリングされてもよく、または、ブロック特徴と、ビットストリーム中の他のシンタックス要素とに基づいて、導出されてもよい。例えば、NPPBは、コーディングブロックに対するイントラ副区分ブロックの数に等しくなるように設定されてもよい。他の例では、NPPBの値は4に等しくなるように設定されてもよい。分割方向または方法は、ブロック特徴により決定してもよく、または、ビットストリーム中のシンタックス要素から導出してもよい。
【0115】
[0132]
いくつかの例では、ブロックは、水平に、NPPB個のplanar予測ブロックに分割してもよい。水平に分割する決定は、例えば、水平分割方向が示されているか否かにより決定してもよい。
【0116】
[0133]
図11は、コーディングブロックがどのように4つの水平planar予測ブロックに分割されるかもしれないかの例を図示する概念図である。
【0117】
[0134]
いくつかの例では、ビデオコーダは、ブロックを垂直にNPPB個のplanar予測ブロックに分割してもよい。ビデオコーダは、例えば、垂直分割方向が示されているか否かに基づいて、垂直に分割するか否かを決定してもよい。
【0118】
[0135]
図12は、コーディングブロックがどのように4つの垂直planar予測ブロックに分割されるかもしれないかの例を図示する概念図である。
【0119】
[0136]
いくつかの例では、ビデオコーダは、ブロックを水平および垂直に分割して、合計NPPB個のplanar予測ブロックをもたらしてもよい。ビデオコーダは、ブロックの1つ以上の特徴(例えば、CUの特徴)に基づいて、水平および垂直に分割するか否かを決定してもよい。いくつかの例では、ビデオコーダは、分割方向が示されていないときには、水平および垂直に分割するか否かを決定してもよい。
【0120】
[0137]
いくつかの例では、ブロックは、コーディングブロックと同じ左上サンプルを共有する、N
PPB個の長方形領域に分割されてもよく、各長方形領域が連続的にそれより前のものを含んでいる。第1のplanar予測ブロックとして規定されている最小ブロックから開始して、次の長方形領域に属するが前の長方形領域に属しないサンプルは、後続のplanar予測ブロックを構成すると言われる。
図13は、このようなplanar予測ブロック構造の例を図示する概念図である。
【0121】
[0138]
いくつかの例では、ビデオコーダはまた、planar予測モードに類似する方法により、planar予測ブロックを予測してもよい。
【0122】
[0139]
いくつかの例では、ビデオコーダは、予測ブロックに対するコーディング順序を規定してもよい。例えば、コーディング順序は、以下(a.ないしd.)のことを考慮することにより規定してもよい。
【0123】
[0140]
a.各予測ブロックに対する代表サンプル、例えば、予測ブロックの左上サンプルを割り当てる。いくつかのケース(非長方形ブロック)では、左上サンプルは規定されないことがあり、代表サンプルは、予測ブロックのサンプルの最上行中にある最も左のサンプルとして指定されてもよい。コーディング順序は、代表サンプルの他の規定により指定されてもよいことを理解しなければならない。
【0124】
[0141]
b.代表サンプルの走査順序(例えば、ラスタ走査、ジグザグ走査)を規定する。
【0125】
[0142]
c.走査順序においてより早い代表サンプルを有する予測ブロックが、走査順序においてより遅い代表サンプルを有する予測ブロックよりも早くコード化される。
【0126】
[0143]
コーディング順序の類似する規定が、予測ブロックグループに対して指定されてもよい。
【0127】
[0144]
いくつかの例では、ビデオコーダは、上記で説明したPBGの概念と同様に、1つ以上のplanar予測ブロックを含むplanar予測ブロックグループ(Planar PBG)を指定してもよい。
【0128】
[0145]
planar予測ブロック間の境界は、コーディングブロック内の予測ブロック境界に渡ってフィルタリングを適用することにより平滑化してもよい。このようなフィルタリングの1つの例はローパスフィルタリングである。第2の例は、PDPCモード中で行われる処理である。第3の例は、デブロッキングフィルタプロセスである。これらのプロセスは、予測の後の第2の処理ステップとして、または、後処理ステップとして適用してもよい。
【0129】
[0146]
planar予測ブロックの上記の例は、概念を例示するためのいくつかの例にすぎないことを理解すべきである。コーディングブロック中のサンプルは、planar予測ブロックとして規定される空間領域に分割されてもよく、本出願で開示する1つ以上の方法が、それらに適用してもよい。
【0130】
[0147]
さらに、本明細書で使用されるブロック(コーディングブロック、予測ブロック等)という用語は、ルーマブロックまたはクロマブロック(または両方)に、あるいは、一般にビデオの任意の成分のコーディングブロックに適用してもよい。
【0131】
[0148]
第3の提案技法によると、ビデオコーダは、参照サンプルの利用可能性を決定してもよい。各PBGに対して、利用可能な参照サンプルは、以下のように指定してもよい。
【0132】
[0149]
いくつかの例では、利用可能な参照サンプルのセットは、コーディングブロック中のすべての予測ブロックに対して同じである。このようなシステムの複数のインプリメンテーションがあるかもしれない。1つの例として、参照サンプル導出プロセスは変更されず、予測プロセスに対して変更が行われる。利用可能な参照サンプルのセットは、コーディングブロックに対して一度導出される。いくつかの例では、参照サンプルが予測ブロックに直接隣接しないことを、または、予測ブロックに関してMRLIdxにより指定されないことを確実にするために、予測プロセスに対して変更が行われてもよい。
【0133】
[0150]
いくつかの例では、参照サンプル導出が変更され、予測プロセスに対して変更は行われない。このような例では、予測ブロックに対する利用可能な参照サンプルは、コーディングブロックに対する利用可能な参照サンプルのセットから導出される。導出は、使用される参照サンプルラインに対応する(すなわち、MRLIdxの値に基づいている)位置における予測ブロックに対する参照サンプルの導出された値をもたらすかもしれない。
【0134】
[0151]
いくつかの例では、デコーディング順序で先行するPBGからの予測されたサンプルは、利用不可能としてマークされる。
【0135】
[0152]
いくつかの例では、隣接するコーディングブロックからの参照サンプルに加えて、同じコーディングブロックの以前にコード化されたPBGの処理された値を、PBGのイントラ予測に対して使用してもよい。1つの例として、処理された値は、PBGの再構築されたサンプルを指している。別の例として、処理された値は、ループフィルタリング/後フィルタリング動作の前のPBGの再構築されたサンプルを指している。別の例として、処理された値は、PBGの予測サンプルを指している。
【0136】
[0153]
第4の提案技法によると、ビデオコーダは、変換コーディングを実行してもよい。ブロック中のサンプルの予測は、本明細書で説明されている1つ以上の方法により実行してもよい。しかしながら、このセクションにおける技法はまた、上記で説明したような一般化予測を使用して予測されないコーディングブロックに適用してもよい。
【0137】
[0154]
いくつかの例では、ビデオコーダは、PBG中の残差サンプルに変換を適用してもよい。適用可能な形状のセットは、ビデオコーダが適用可能な形状のすべてのサンプルに変換を適用してもよいように規定されていてもよい。例えば、適用可能な形状は、正方形および/または長方形の形状を含んでいてもよい。いくつかの例では、ブロックの変換コーディングは、コーディングブロック全体を1つのブロックと捉えることにより実行してもよい。このような例では、その中で規定されている予測ブロックの数にかかわらず、1つの変換コーディングのみを、コーディングブロック中のサンプルに適用してもよい。いくつかの例では、PBGの形状が、変換が適用されるかもしれない適用可能な形状であるときには、ビデオコーダは、変換コーディングをPBGに適用してもよい。例えば、PBG中のサンプルが長方形領域を形成する場合には、変換をPBGのサンプルに適用してもよい。いくつかの例では、ビデオコーダは、このような各サブセット中のサンプルが適用可能な形状を形成するように、PBG中のサンプルの1つ以上のサブセットに変換コーディングを適用してもよい。1つの例として、PBGのサブセットは、互いに排他的であるように制約されていてもよい。別の例として、PBGのサブセットは、集合的にPBGのすべてのサンプルを含むように制約されていてもよい。
【0138】
[0155]
いくつかの例では、変換を適用することはまた、ブロック上での変換スキップ決定を含んでいてもよい。それにより、ブロックのサンプル値は不変であり、恒等変換が適用され、または、スケーリングされた恒等変換が適用される。1つの例として、ビデオコーダは、変換スキップでPBG中のいくつかの予測ブロックをコード化してもよい。加えて、ビデオコーダは、他のタイプの変換でいくつかの予測ブロックをコード化してもよい。変換カーネルまたは変換スキップを適用する決定は、(例えば、ブロック特徴、イントラモード、隣接ブロックに基づいて、)推測されるか、または、ビットストリーム中でシグナリングされてもよい。
【0139】
[0156]
いくつかの例では、指定された予測ブロックとは異なる変換コーディングに対して、サブブロック区分スキームが規定されていてもよい。予測ブロックに対して規定されているのと同様に、変換ブロックグループ(TBG)が、変換サブブロックを使用して規定されていてもよい。上述した1つ以上の技法をTBGに適用してもよい。例えば、イントラサブ区分がサイズ2×Nのサブブロックをもたらすとき(予測ブロックはサイズ2×Nであるかもしれない)、変換ブロックは1×Nとして規定されていてもよく、各変換ブロックは独立して変換コード化されていてもよい。別の例では、予測ブロックは、サイズ2×Nのものであってもよく、予測ブロックグループは、サイズ4×Nのものであってもよく、変換ブロックは、サイズ4×Nのものであってもよい。別の例では、予測ブロックは、サイズ2×Nのものであってもよく、予測ブロックグループは、サイズ4×Nのものであってもよく、変換ブロックは、8×Nコーディングブロックに対して、サイズ2×Nのものであってもよい。
【0140】
[0157]
第5の提案技法によると、ビデオコーダは、あるイントラモードを許容しないかもしれない。ブロックのイントラ予測に対して、いくつかのイントラモードが規定される(例えば、angularおよびnon-angular)。PBGに対して、イントラモードのサブセットのみが許容モードとして指定されていてもよい。言い換えると、あるイントラモードは、PBGに対して許容されないかもしれない。許容されないイントラモードの決定は、以下のうちの1つ以上を考慮することにより達成してもよい。:(1)分割方向、(2)コーディングブロックの幅、高さ、または、幅および高さの関数、(3)予測ブロックの幅、高さ、または、幅および高さの関数、あるいは、(4)隣接コーディングブロックの上ブロック特徴、および、隣接コーディングブロックをコード化するために使用されるイントラモード。
【0141】
[0158]
(例を含む)上記の説明は、関与する技法を決して限定するものではなく、本明細書で説明されていないかもしれない他の方法と組み合わせてもよいことを理解されたい。1つ以上の決定またはインジケーションはまた、タイルグループタイプ、区分タイプ、1つ以上の隣接ブロックの特徴(幅、高さ、イントラモード、予測タイプ)等を含む他の条件に依存していてもよい。
【0142】
[0159]
以下のものは、上記技法の2つの特定の例である。
【0143】
[0160]
第1の例では、予測ブロックグループ(PBG)は、4つのサンプルの最小幅を有するように指定されている。例えば、サイズ4×Nのコーディングブロックの垂直区分は、幅1または2のサブブロックとなるかもしれず、8×Nコーディングブロックの垂直区分は、幅2または4のサブブロックとなるかもしれない。
【0144】
[0161]
図14は、コーディングブロック1402がどのように4つの予測ブロック(PB1~PB4)に分割されるかを図示するブロック図である。例示的な例では、コーディングブロック1402は、ビデオコーダがISPと垂直分割とでコード化する8×Nコーディングブロックであってもよい。この例では、予測ブロックPB1、PB2、PB3およびPB4は、サイズ2×Nのものである。予測ブロックグループPBG1およびPBG2は、4つのサンプルの最小幅(nW)で規定されている。例えば、PBG1はサイズ4×Nの予測ブロックグループであり、PBG2はサイズ4×Nの第2の予測ブロックグループでもある。PBG1のサンプルは、隣接する参照サンプルから予測される。いくつかの例では、PBG1中のサンプルの予測される値は、PBG1中の他のサンプル値に依存していないかもしれない。PBG2のサンプルは、隣接する参照サンプルから、そして、PBG1の予測されたサンプルから予測される。
【0145】
[0162]
いくつかの例では、変換ブロック(例えば、変換ユニット(TU))は、予測ブロックと同じサイズのものであると規定されていてもよい。例えば、ビデオコーダは、PBG中に含まれているいずれか1つの予測ブロックのサイズと等しくなるように、TUのサイズを決定してもよい。
【0146】
[0163]
いくつかの例では、PBG2のサンプルは、隣接するコーディングブロックからの参照サンプルから、そして、PBG1のエリアに属する再構築されたサンプルから、または、隣接するコーディングブロックからの参照サンプルのみから予測されてもよい。
【0147】
[0164]
図15は、ビデオコーダがISPと垂直区分とでコーディングブロック1502をコード化するかもしれない例を図示するブロック図である。例示的な例では、コーディングブロック1502は、4×Nコーディングブロックであってもよい。このような例では、予測ブロック(PB1~PB4)は、サイズ1×Nであってもよい。いくつかの例では、PBGは、少なくとも4つのサンプルの幅を有するように規定されていてもよい。このような例では、ビデオコーダは、4つの予測ブロック(PB1~PB4)を1つの予測ブロックグループ(例えば、PBG1)にグループ化してもよい。このようなことから、PBG1は、サイズ4×NのPBGであってもよい。
【0148】
[0165]
いくつかのケースでは、(本明細書で説明されている予測ブロックおよび予測ブロックグループを指定する)一般化予測は、ブロックサイズ、ブロック形状、サブブロック幅および高さ、イントラモード等に依存していてもよい、1つ以上の基準を満たすブロックのサブセットにのみ適用される。例えば、条件は、2以下の幅を有するサブブロックを発生させるコーディングブロックにのみ適用してもよい。他のケースでは、条件は、32個以下のサンプルの総数を有するサブブロックに適用してもよい。
【0149】
[0166]
別の例では、コーディングブロックのすべての予測ブロックのサンプルは、隣接するコーディングブロックの再構築された参照サンプルから予測される。このような例では、コーディングユニットの予測ブロック内の予測の依存性はない。いくつかの例では、変換ユニットサイズは、予測ブロックのサイズに等しくてもよい。
【0150】
[0167]
図16は、M×Nコーディングブロック1602が4つの予測ブロック(例えば、PB1~PB4)に分割される例を図示する概念図である。例示的な例では、予測ブロック(PB1~PB4)は、(M/4)×Nのサイズを有している。参照サンプル1604は、4つの予測ブロックに対する参照サンプルとして使用される。1つの予測ブロックの予測されたサンプルと他のものとの間に依存性はない。例えば、PB1の予測されたサンプルと、PB2、PB3またはPB4の予測されたサンプルとの間に依存性はない。
【0151】
[0168]
いくつかのケースでは、4つの予測されるサブブロックが並行に予測されてもよい。別の例では、4つのサブブロック(PB1~PB4)は、予測に対して、まとめて1つのブロックとして見なしてもよい。例えば、4つのサブブロック(PB1~PB4)は、予測に対して、まとめて1つのPBGとして見なしてもよい。
【0152】
[0169]
いくつかの例では、ビデオコーダは、4つのサンプルの幅を有する少なくとも1つの予測ブロックグループを使用して、いくつかのコーディングブロックのサンプルを予測してもよく、他のいくつかのコーディングユニットは、制限されたイントラモードで予測される。ISPでコード化される4×Nコーディングブロックおよび8×Nコーディングブロックのコーディングに適用される以下の制限が、仕様において追加される。
【0153】
[0170]
ISPで垂直方向に分割された4×N個のコーディングブロック(N>4)に対して、イントラ予測に対して垂直モードのみが許容される。このことは、副区分(N>8である、4×N個のコーディングブロックのケースでは1×N個の副区分、4×8個のコーディングブロックのケースでは2×N個の副区分)のいずれの予測も、確実に、コーディングブロック中の他の副区分と無関係にするだろう。このようにして、ビデオコーダは、並行に、または、予測のために、すべての副区分を4×Nブロックと見なすことにより、副区分の予測を実行してもよい。このようなコーディングブロックに対して、イントラモードは、シグナリングされないかもしれない。
【0154】
[0171]
図17は、ビデオコーダがISPおよび垂直分割でコード化する4×Nコーディングブロック1702に対して、ビデオコーダが垂直イントラ(VER Intra)モード予測のみを実行することが許容される例を図示する概念図である。すなわち、
図17は、4×Nコーディングブロック1702の垂直分割副区分が、どのように予測のために垂直イントラモードのみを使用するかもしれないかの例を示している。例示的な例では、コーディングブロック1702は、少なくとも8サンプルサイズ(N>8)の高さを有していてもよい。このような例では、コーディングブロック1702は、4つの1×N副区分(例えば、サブブロック、予測ブロック)に分割されてもよい。いずれのケースでも、逆変換動作は、依然として1×N副区分レベルで実行される。
【0155】
[0172]
N>4である、ISPで垂直に分割される8×Nコーディングブロックに対して、サンプルの予測は、幅が4つのサンプルである予測ブロックグループ(PBG)上で実行される。例えば、コーディングブロックサイズが8×N(N>4)であるときには、ビデオコーダは、それぞれが4×Nのサイズを有する2つのPBGを識別してもよい。
図18は、8×N副区分が、どのようにそれぞれサイズ4×Nの2つの予測領域(PBG1または領域1およびPBG2または領域2)に分割されるかの例を示しており、それぞれサイズ2×Nの4つの変換である。
図18の例では、ビデオコーダは、ISPおよび垂直分割で8×N(N>4)コーディングブロック1802をコード化してもよい。このような例では、ビデオコーダは、4×N予測領域(または、PBG)上で予測を実行してもよい。加えて、変換(SP)サイズは、2×Nであってもよい。いくつかの例では、領域2の予測は、領域1の再構築に依存する。したがって、コーディングブロック1802内の任意のサンプルの予測は、隣接するコーディングブロックと先行する4×N予測領域とからの再構築されたサンプルにのみ依存する。
【0156】
[0173]
図17では、
図18に類似して、サイズ1×Nの4つのライン残差であり、1つの予測領域(予測領域1または2)内で、並行してまたは1つのステップで一緒に、2×Nの2つの残差ブロックを発生させることができる。例えば、ISP中のすべての副区分に対する垂直変換が同一であるので、各予測領域内の2つの2×N副区分の垂直逆変換動作は、4×Nブロックとして領域を見なすことにより実行してもよい。別個の処理により、または、単一の4×Nブロックとして2つの副区分を見なし、2つのより小さい水平逆変換動作の組み合わせとして水平逆変換動作を見なすことにより、のいずれかで、2×N副区分に対して、水平変換はまた、並行に行われてもよい。
【0157】
[0174]
以下の表6は、予測サイズおよび変換サイズに対する区分サイズを要約している。いくつかの例では、予測サイズおよび変換サイズは、他のコーディングブロックサイズに対して、異なっていてもよい。例えば、予測サイズおよび変換サイズは、VVC WD4中のISPに対して指定されたものであってもよい。
【0158】
【0159】
[0175]
VVCの第5のワーキングドラフト(以下、「VVC WD5」、phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v8.zipにおいて入手可能)における仕様の関連セクションに対する変更は、変更マークとともに以下に提供されている。削除された項目は取り消し線で示され、追加された項目は太字のイタリック体で示されている。
【0160】
[0176]
いくつかの例では、ビデオエンコーダは、コーディングプロセスを実行するために、以下の入力を使用してもよい。
【0161】
[0177]
1.現在ピクチャーの左上サンプルに関して、現在変換ブロックの左上サンプルを指定するサンプルロケーション(xTb0,yTb0)。
【0162】
[0178]
2.現在変換ブロックの幅を指定する変数nTbW。
【0163】
[0179]
3.現在の変換ブロックの高さを指定する変数nTbH。
【0164】
[0180]
4.イントラ予測モードを指定する変数predModeIntra。
【0165】
[0181]
5.現在ブロックの色成分を指定する変数cIdx。
【0166】
[0182]
プロセスの出力は、インループフィルタリング前の修正された再構築ピクチャーである。
【0167】
[0183]
最大変換ブロックサイズmaxTbSizeは、式2を使用して、以下のように導出される。
maxTbSize=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/2 (2)。
【0168】
[0184]
ルーマサンプルロケーションは、式3を使用して、以下のように導出される。
(xTbY,yTbY)=(cIdx==0)?(xTb0,yTb0):(xTb0*2,yTb0*2) (3)。
【0169】
[0185]
maxTbSizeに依存して、以下が適用される。
【0170】
[0186]
IntraSubPartitionsSplitTypeがNO_ISP_SPLITに等しく、nTbWがmaxTbSizeより大きいか、または、nTbHがmaxTbSizeより大きい場合には、以下の順序付けられたステップ(1~5)が適用される。
【0171】
[0187]
1.変数newTbWおよびnewTbHは、以下のように導出される:
newTbW=(nTbW>maxTbSize)?(nTbW/2):nTbW
newTbH=(nTbH>maxTbSize)?(nTbH/2):nTbH。
【0172】
[0188]
2.この節で特定されているイントラブロックに対する一般的なデコーディングプロセスは、ロケーション(xTb0,yTb0)と、newTbWに等しくなるように設定されている変換ブロック幅nTbWと、newTbHに等しくなるように設定されている高さnTbHと、イントラ予測モードpredModeIntraと、変数cIdxとを入力として呼び出され、出力は、インループフィルタリングの前の修正された再構築ピクチャーである。
【0173】
[0189]
3.nTbWがmaxTbSizeより大きい場合には、この節で特定されているイントラブロックに対する一般的なデコーディングプロセスは、(xTb0+newTbW,yTb0)に等しくなるように設定されているロケーション(xTb0,yTb0)と、newTbWに等しくなるように設定されている変換ブロック幅nTbWと、newTbHに等しくなるように設定されている高さnTbHと、イントラ予測モードpredModeIntraと、変数cIdxとを入力として呼び出され、出力は、インループフィルタリング前の修正された再構築ピクチャーである。
【0174】
[0190]
4.nTbHがmaxTbSizeより大きい場合には、この節で特定されているイントラブロックに対する一般的なデコーディングプロセスは、(xTb0,yTb0+newTbH)に等しくなるように設定されているロケーション(xTb0,yTb0)と、newTbWに等しくなるように設定されている変換ブロック幅nTbWと、newTbHに等しくなるように設定されている高さnTbHと、イントラ予測モードpredModeIntraと、変数cIdxとを入力として呼び出され、出力は、インループフィルタリングの前の修正された再構築ピクチャーである。
【0175】
[0191]
5.nTbWがmaxTbSizeより大きく、nTbHがmaxTbSizeより大きい場合には、この節で特定されているイントラブロックに対する一般的なデコーディングプロセスは、(xTb0+newTbW、yTb0+newTbH)に等しくなるように設定されているロケーション(xTb0,yTb0)と、newTbWに等しくなるように設定されている変換ブロック幅nTbWと、newTbHに等しくなるように設定されている高さnTbHと、イントラ予測モードpredModeIntraと、変数cIdxとを入力として呼び出され、出力は、インループフィルタリング前の修正された再構築ピクチャーである。
【0176】
[0192]
さもなければ、以下の順序付けられたステップが適用される(1.および2.)。例えば、IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくないことをビデオコーダが決定するときには(例えば、IntraSubPartitionsSplitTypeがISP_VER_SPLITまたはISP_HOR_SPLITのいずれかに等しいときには)、または、nTbWおよびnTbHが両方ともmaxTbSize以下であるときには、ビデオコーダは、以下の変数を導出してもよい。
【0177】
[0193]
1.いくつかの例では、ビデオコーダは、nW、nH、xPartIncrement、yPartIncrement、nPbWおよびpbFactorを含む、複数の変数を導出してもよい。例えば、ビデオコーダは、以下のように、式(6)~(11)を使用して、このような変数を導出してもよい。
nW=IntraSubPartitionsSplitType==ISP_VER_SPLIT?nTbW/NumIntraSubPartitions:nTbW (6)
nH=IntraSubPartitionsSplitType==ISP_HOR_SPLIT?nTbH/NumIntraSubPartitions:nTbH (7)
xPartIncrement=ISP_VER_SPLIT?1;0 (8)
yPartIncrement=ISP_HOR_SPLIT?1;0 (9)
nPbW=max(4,nW) (10)
pbFactor=nPbW/nW (11)。
【0178】
[0194]
2.さらに、変数xPartIdxおよびyPartIdxは0に等しくなるように設定される。
【0179】
[0195]
このような例では、ビデオコーダは、i=0..NumIntraSubPartitions-1に対して、以下の順序付けられたステップ(1~4)を連続的に適用してもよい。
【0180】
[0196]
1.変数xPartIdx、yPartIdx。xPartPbIdxは、以下のように更新される。
xPartIdx=xPartIdx+xPartIncrement (12)
yPartIdx=yPartIdx+yPartIncrement (13)
xPartPbIdx=xPartIdx%pbFactor (14)。
【0181】
[0197]
2.いくつかの例では、xPartPbIdxが0に等しいときには、ビデオコーダは、8.4.5.2において特定されているようなイントラサンプル予測プロセスを呼び出してもよい。このような例では、ビデオコーダは、(xTb0+nW*xPartIdx,yTb0+nH*yPartIdx)に等しくなるように設定されているロケーション(xTbCmp,yTbCmp)と、イントラ予測モードpredModeIntraと、nPbWおよびnHに等しくなるように設定されている変換ブロック幅nTbWおよび高さnTbHと、nTbWに等しくなるように設定されているコーディングブロック幅nCbWと、nTbHに等しくなるように設定されているコーディングブロック高さnCbHと、変数cIdxとを入力として、イントラサンプル予測プロセスを呼び出してもよく、出力は(nPbW)×(nH)アレイpredSamples(例えば、予測サンプルアレイ)である。
【0182】
[0198]
3.節8.7.2において特定されているスケーリングおよび変換プロセスは、(xTbY+nW*xPartIdx,yTbY+nH*yPartIdx)に等しくなるように設定されているルーマロケーション(xTbY,yTbY)と、変数cIdxと、nWおよびnHに等しくなるように設定されている変換幅nTbWおよび変換高さnTbHとを入力として呼び出され、出力は、(nPbW)×(nH)アレイresSamples(例えば、残差サンプルアレイ)である。1つの例では、出力は、(nW)×(nH)アレイresSamplesであってもよい。
【0183】
[0199]
4.節8.7.5において特定されている色成分に対するピクチャー再構築プロセスは、(xTb0+nW*xPartIdx,yTb0+nH*yPartIdx)に等しくなるように設定されている変換ブロックロケーション(xTbComp,yTbComp)と、nWおよびnHに等しくなるように設定されている変換ブロック幅nTbWおよび変換ブロック高さnTbHと、変数cIdxと、x=xPartPbIdx*nW..(xPartPbIdx+1)*nW-1,y=0..nH-1である(nW)×(nH)アレイpredSamples[x][y]と、(nW)×(nH)アレイresSamplesとを入力として呼び出され、出力は、インループフィルタリング前の修正された再構築ピクチャーである。
【0184】
[0200]
いくつかの例では、以下の変更は、いくつかのブロックサイズ対して、イントラ予測モードを垂直イントラモードに制限するかもしれない。例示的な変更は、VVC WD5のセクション7.3.7.5におけるシグナリングに対して行われる。削除された項目は取り消し線で示され、追加された項目はイタリック体で示されている。
【0185】
【0186】
[0201]
例示的な変更が、VVC WD5のセクション8.4.3におけるルーマイントラ予測モードに対する導出プロセスに対して行われる。削除された項目は取り消し線で示され、追加された項目はイタリック体で示されている。
【0187】
[0202]
例えば、ビデオコーダは、ルーマイントラ予測モードに対する導出プロセスを実行してもよい。このプロセスへの入力は、(1)現在ピクチャーの左上ルーマサンプルに対する現在ルーマコーディングブロックの左上サンプルを指定するルーマロケーション(xCb,yCb)、(2)ルーマサンプル中の現在コーディングブロックの幅を指定する変数cbWidth、および/または、(3)ルーマサンプル中の現在コーディングブロックの高さを指定する変数cbHeightを含んでいる。
【0188】
[0203]
このプロセスでは、上記の入力に基づいて、ビデオコーダは、ルーマイントラ予測モードIntraPredModeY[xCb][yCb]を導出してもよい。
【0189】
[0204]
表8は、イントラ予測モードIntraPredModeY[xCb][yCb]に対する値と関係する名前とを特定している。イントラ予測モードINTRA_LT_CCLM、INTRA_L_CCLMおよびINTRA_T_CCLMは、クロマ成分にのみ適用可能であってもよいことに留意されたい。
【0190】
【0191】
[0205]
IntraPredModeY[xCb][yCb]は、以下のように導出される:BdpcmFlag[xCb][yCb]が1に等しいか、または、intra_luma_not_planar_flag[xCb][yCb]が0に等しい場合には、IntraPredModeY[xCb][yCb]は、INTRA_PLANARに等しくなるように設定される。そうではなく、IntraSubPartitionsSplitTypeがISP_VER_SPLITに等しく、cbWidthが4に等しい場合には、IntraPredModeY[xCb][yCb]は、INTRA_ANGULAR50に等しく設定される。そうではない場合には(例えば、intra_luma_not_planar_flag[xCb][yCb]が1に等しい)、隣接ロケーション(xNbA、yNbA)および(xNbB、yNbB)は、それぞれ(xCb-1,yCb+cbHeight-1)および(xCb+cbWidth-1,yCb-1)に等しくなるように設定される。
【0192】
[0206]
図19Aおよび
図19Bは、例示的なQTBT構造130と、対応するコーディングツリーユニット(CTU)132とを図示する概念図である。実線は4分ツリー分割を表し、点線は2分ツリー分割を表している。2分ツリーの各分割(すなわち、非リーフ)ノードにおいて、どの分割タイプが使用されるか(例えば、水平、垂直等)を示すために1つのフラグがシグナリングされる。例示的で非限定的な例では、0の値が水平分割を示していてもよく、1の値が垂直分割を示していてもよい。4分ツリー分割を伴う別の例では、4分ツリーノードは、一般的に、ブロックを4つのサブブロック(例えば、予測ブロック)に水平および垂直に分割するので、分割タイプを示す必要はないかもしれない。このような例では、サブブロックは等しいサイズであってもよく、または、等しいサイズのものであってもよい。したがって、QTBT構造130の領域ツリーレベル(すなわち、第1のレベル)に対する(分割情報のような)シンタックス要素(すなわち、実線)と、QTBT構造130の予測ツリーレベル(すなわち、第2のレベル)に対する(分割情報のような)シンタックス要素(すなわち、破線)を、ビデオエンコーダ200はエンコードしてもよく、ビデオデコーダ300は、デコードしてもよい。QTBT構造130の終端リーフノードにより表されるCUに対する予測データおよび変換データのようなビデオデータを、ビデオエンコーダ200はエンコードしてもよく、ビデオデコーダ300は、デコードしてもよい。
【0193】
[0207]
一般的に、
図19BのCTU132は、第1および第2のレベルにおけるQTBT構造130のノードに対応するブロックのサイズを規定するパラメータと関係しているかもしれない。これらのパラメータは、(サンプル中のCTU132のサイズを表す)CTUサイズと、(MinQTSize、最小許容4分ツリーリーフノードサイズを表す)最小4分ツリーサイズと、(MaxBTSize、最大許容2分ツリールートノードサイズを表す)最大2分ツリーサイズと、(MaxBTDepth、最大許容2分ツリー深度を表す)最大2分ツリー深度と、(MinBTSize、最小許容2分ツリーリーフノードサイズを表す)最小2分ツリーサイズとを含んでいてもよい。
【0194】
[0208]
CTUに対応するQTBT構造のルートノードは、QTBT構造の第1のレベルにおいて4つの子ノードを有してもよく、それぞれが4分ツリー区分にしたがって、区分されていてもよい。すなわち、第1のレベルのノードは、(子ノードを有さない)リーフノードであるか、または、4つの子ノードを有していてもよい。QTBT構造130の例は、親ノードと、分岐に対する実線を有する子ノードとを含むようなノードを表している。第1のレベルのノードが最大許容2分ツリールートノードサイズ(MaxBTSize)より大きくない場合には、ノードは、それぞれの2分ツリーによりさらに区分することができる。分割により得られたノードが最小許容2分ツリーリーフノードサイズ(MinBTSize)または最大許容2分ツリー深度(MaxBTDepth)に達するまで、1つのノードの2分ツリー分割を繰り返すことができる。QTBT構造130の例は、分岐に対して破線を有するようなノードを表している。2分ツリーリーフノードは、コーディングユニット(CU)として呼ばれ、これは、何らかのさらなる区分なく、予測(例えば、イントラピクチャーまたはインターピクチャー予測)および変換に対して使用される。上記で説明したように、CUは、「ビデオブロック」、「コーディングブロック」または「ブロック」として呼ばれることもある。
【0195】
[0209]
QTBT区分構造の1つの例では、CTUサイズは128×128(ルーマサンプルおよび2つの対応する64×64クロマサンプル)として設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、(幅および高さの両方に対して)MinBTSizeは4として設定され、MaxBTDepthは4として設定される。まず、CTUに対して4分ツリー区分を適用して、4分ツリーリーフノードを発生させる。4分ツリーリーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有していてもよい。4分ツリーリーフノードが128×128である場合には、サイズがMaxBTSize(すなわち、この例では、64×64)を超えることから、ノードは、2分ツリーにより、さらに分割されないだろう。そうでなければ、4分ツリーリーフノードは、2分ツリーにより、さらに区分されるであろう。したがって、4分ツリーリーフノードはまた、2分ツリーに対するルートノードであり、0としての2分ツリー深度を有する。2分ツリー深度がMaxBTDepth(この例では、4)に達するときには、それ以上の分割は許されない。2分ツリーノードがMinBTSize(この例では、4)に等しい幅を有するときには、それ以上の垂直分割は許されないことを意味する。同様に、MinBTSizeに等しい高さを有する2分ツリーノードは、その2分ツリーノードに対してそれ以上の水平分割は許されないことを意味する。上述したように、2分ツリーのリーフノードはCUと呼ばれ、さらなる区分なしで、予測および変換にしたがって、さらに処理される。
【0196】
[0210]
図20は、本開示の技法を実行してもよい、例示的なビデオエンコーダ200を図示するブロック図である。
図20は、説明の目的のために提供されており、本開示において広く例示し説明しているような技法の限定と見なすべきではない。説明の目的のために、本開示は、開発中のHEVCビデオコーディング標準規格およびH.266ビデオコーディング標準規格のような、ビデオコーディング標準規格の状況で、ビデオエンコーダ200を説明している。しかしながら、本開示の技法は、これらのビデオコーディング標準規格には限定されず、一般的に、ビデオエンコーディングおよびデコーディングに適用可能である。
【0197】
[0211]
図20の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差発生ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、デコードピクチャーバッファ(DBP)218と、エントロピーエンコーディングユニット220とを含んでいる。ビデオデータメモリ230と、モード選択ユニット202と、残差発生ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、DBP218と、エントロピーエンコーディングユニット220のいずれかまたはすべてを、1つ以上のプロセッサ中で、または、処理回路中で実現してもよい。さらに、ビデオエンコーダ200は、これらまたは他の機能を実行するために、追加または代替のプロセッサまたは処理回路を含んでいてもよい。
【0198】
[0212]
ビデオデータメモリ230は、ビデオエンコーダ200のコンポーネントによってエンコードされるべきビデオデータを記憶していてもよい。ビデオエンコーダ200は、例えば、ビデオソース104(
図1)からのビデオデータメモリ230中に記憶されているビデオデータを受け取ってもよい。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用するための参照ビデオデータを記憶する参照ピクチャーメモリとして機能してもよい。ビデオデータメモリ230およびDPB218は、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または、他のタイプのメモリデバイスのような、さまざまなメモリデバイスのうちのいずれかによって形成されていてもよい。ビデオデータメモリ230およびDPB218は、同じメモリデバイスまたは別個のメモリデバイスによって提供されていてもよい。さまざまな例では、ビデオデータメモリ230は、図示するように、ビデオエンコーダ200の他のコンポーネントとともにオンチップであってもよく、または、これらのコンポーネントに対してオフチップであってもよい。
【0199】
[0213]
本開示では、ビデオデータメモリ230への参照は、そのように具体的に説明されない限り、ビデオエンコーダ200に対して内部であるメモリ、または、そのように具体的に説明されない限り、ビデオエンコーダ200に対して外部であるメモリに限定されるものとして解釈すべきではない。むしろ、ビデオデータメモリ230への参照は、ビデオエンコーダ200がエンコードするために受け取るビデオデータ(例えば、エンコードされるべき現在ブロックに対するビデオデータ)を記憶する参照メモリとして理解すべきである。
図1のメモリ106はまた、ビデオエンコーダ200のさまざまなユニットからの出力の一時記憶装置を提供してもよい。
【0200】
[0214]
図20のさまざまなユニットは、ビデオエンコーダ200によって実行される動作の理解を助けるために図示されている。ユニットは、固定機能回路、プログラマブル回路、または、これらの組み合わせとして実現してもよい。固定機能回路は、特定の機能性を提供する回路を指し、実行できる動作に対して予め設定される。プログラマブル回路は、さまざまなタスクを実行するようにプログラムでき、実行できる動作において柔軟な機能性を提供できる回路を指している。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって規定される方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行してもよい。固定機能回路は、(例えば、パラメータを受け取るまたはパラメータを出力するために)ソフトウェア命令を実行するかもしれないが、固定機能回路が実行する動作のタイプは一般的に不変である。いくつかの例では、ユニットのうちの1つ以上は、別個の回路ブロック(固定機能またはプログラマブル)であってよく、いくつかの例では、1つ以上のユニットは集積回路であってよい。
【0201】
[0215]
ビデオエンコーダ200は、プログラマブル回路から形成される、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/または、プログラマブルコアを含んでいてもよい。ビデオエンコーダ200の動作がプログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(
図1)は、ビデオエンコーダ200が受け取って実行するソフトウェアのオブジェクトコードを記憶していてもよく、または、ビデオエンコーダ200内の(図示されていない)別のメモリがこのような命令を記憶していてもよい。
【0202】
[0216]
ビデオデータメモリ230は、受け取ったビデオデータを記憶するように構成されている。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャーを取り出し、ビデオデータを残差発生ユニット204およびモード選択ユニット202に提供してもよい。ビデオデータメモリ230中のビデオデータは、エンコードされるべき生のビデオデータであってもよい。
【0203】
[0217]
モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含んでいる。モード選択ユニット202は、他の予測モードにしたがってビデオ予測を実行するための追加の機能ユニットを含んでいてもよい。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であってもよい)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニット、または、これらに類するものを含んでいてもよい。
【0204】
[0218]
モード選択ユニット202は、一般的に、複数のエンコーディングパスを調整して、エンコーディングパラメータの組み合わせをテストし、結果として、このような組み合わせに対するレート歪み値を得る。エンコーディングパラメータは、CTUのCUへの区分、CUに対する予測モード、CUの残差データに対する変換タイプ、CUの残差データに対する量子化パラメータ等を含んでいてもよい。モード選択ユニット202は、最終的に、他のテストされた組み合わせよりも良好なレート歪み値を有するエンコーディングパラメータの組み合わせを選択してもよい。
【0205】
[0219]
ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャーを一連のCTUに区分し、スライス内に1つ以上のCTUをカプセル化してもよい。モード選択ユニット202は、上記で説明したQTBT構造またはHEVCの4分ツリー構造のようなツリー構造にしたがって、ピクチャーのCTUを区分してもよい。上記で説明したように、ビデオエンコーダ200は、ツリー構造にしたがってCTUを区分することから1つ以上のCUを形成してもよい。このようなCUは、一般的に、「ビデオブロック」または「ブロック」として呼ばれることもある。
【0206】
[0220]
一般的に、モード選択ユニット202はまた、そのコンポーネント(例えば、動き推定ユニット222、動き補償ユニット224、および、イントラ予測ユニット226)を制御して、現在ブロック(例えば、現在CU、または、HEVCでは、PUとTUとのオーバーラップする部分)に対する予測ブロックを発生させる。現在ブロックのインター予測のために、動き推定ユニット222は、動きサーチを実行して、1つ以上の参照ピクチャー(例えば、DPB218中に記憶されている1つ以上の以前にコード化されたピクチャー)中の1つ以上の密接に一致する参照ブロックを識別してもよい。特に、動き推定ユニット222は、例えば、絶対差分の和(SAD)、二乗差分の和(SSD)、平均絶対差分(MAD)、平均二乗差分(MSD)、または、これらに類するものにしたがって、潜在的参照ブロックが現在ブロックにどれだけ類似しているかを表す値を計算してもよい。動き推定ユニット222は、一般的に、現在ブロックと考慮されている参照ブロックとの間のサンプル毎の差分を使用して、これらの計算を実行してもよい。動き推定ユニット222は、現在ブロックに最も密接に一致する参照ブロックを示す、これらの計算から結果的に生じる最低値を有する参照ブロックを識別してもよい。
【0207】
[0221]
動き推定ユニット222は、現在ピクチャー中の現在ブロックの位置に対する、参照ピクチャー中の参照ブロックの位置を規定する、1つ以上の動きベクトル(MV)を形成してもよい。動き推定ユニット222は、その後、動きベクトルを動き補償ユニット224に提供してもよい。例えば、単方向インター予測に対して、動き推定ユニット222は単一の動きベクトルを提供するかもしれない一方で、双方向インター予測に対して、動き推定ユニット222は2つの動きベクトルを提供するかもしれない。動き補償ユニット224は、その後、動きベクトルを使用して、予測ブロックを発生させてもよい。例えば、動き補償ユニット224は、動きベクトルを使用して、参照ブロックのデータを取り出してもよい。別の例として、動きベクトルが小数サンプル精度を有する場合には、動き補償ユニット224は、1つ以上の補間フィルタにしたがって、予測ブロックに対する値を補間してもよい。さらに、双方向インター予測に対して、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックに対するデータを取り出し、サンプル毎の平均化または重み付き平均化を通してのように、取り出されたデータを組み合わせてもよい。
【0208】
[0222]
別の例として、イントラ予測またはイントラ予測コーディングに対して、イントラ予測ユニット226は、現在ブロックに隣接するサンプルから予測ブロックを発生させてもよい。例えば、方向モードに対して、イントラ予測ユニット226は、一般的に、隣接サンプルの値を数学的に組み合わせ、現在ブロックに渡って規定された方向でこれらの計算された値を格納して、予測ブロックを生成させてもよい。別の例として、DCモードに対して、イントラ予測ユニット226は、現在ブロックに対する隣接サンプルの平均を計算し、予測ブロックの各サンプルに対するこの結果として得られる平均を含むように予測ブロックを発生させてもよい。
【0209】
[0223]
モード選択ユニット202は、予測ブロックを残差発生ユニット204に提供する。残差発生ユニット204は、ビデオデータメモリ230から現在ブロックの生のコード化されていないバージョンを受け取り、モード選択ユニット202から予測ブロックを受け取る。残差発生ユニット204は、現在ブロックと予測ブロックとの間のサンプル毎の差分を計算する。結果として得られるサンプル毎の差分は、現在ブロックに対する残差ブロックを規定する。いくつかの例では、残差発生ユニット204はまた、残差ブロック中のサンプル値間の差分を決定して、残差パルスコード変調(RDPCM)を使用して、残差ブロックを発生させてもよい。いくつかの例では、残差発生ユニット204は、バイナリ減算を実行する1つ以上の減算器回路を使用して形成されていてもよい。
【0210】
[0224]
モード選択ユニット202がCUをPUに区分する例では、各PUは、ルーマ予測ユニットおよび対応するクロマ予測ユニットに関係していてもよい。ビデオエンコーダ200およびビデオデコーダ300は、さまざまなサイズを有するPUをサポートしていてもよい。上記で示したように、CUのサイズは、CUのルーマコーディングブロックのサイズを指していてもよく、PUのサイズは、PUのルーマ予測ユニットのサイズを指していてもよい。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測に対する2N×2NまたはN×NのPUサイズと、インター予測に対する2N×2N、2N×N、N×2N、N×N、または、これらに類する対称PUサイズとをサポートしていてもよい。ビデオエンコーダ200およびビデオデコーダ300はまた、2N×nU、2N×nD、nL×2N、および、nR×2NのPUサイズに対する非対称区分をサポートしていてもよい。
【0211】
[0225]
モード選択ユニット202がCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックおよび対応するクロマコーディングブロックに関係していてもよい。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指していてもよい。ビデオエンコーダ200およびビデオデコーダ300は、2N×2N、2N×N、または、N×2NのCUサイズをサポートしていてもよい。
【0212】
[0226]
イントラブロックコピーモードコーディング、アフィンモードコーディング、および、線形モデル(LM)モードコーディングのような、他のビデオコーディング技法に対して、いくつかの例として、モード選択ユニット202は、コーディング技法に関係するそれぞれのユニットを介して、エンコードされている現在ブロックに対する予測ブロックを発生させる。パレットモードコーディングのようないくつかの例では、モード選択ユニット202は、予測ブロックを発生させず、代わりに、選択されたパレットに基づいて、ブロックを再構築する方法を示すシンタックス要素を発生させてもよい。このようなモードでは、モード選択ユニット202は、これらのシンタックス要素を、エンコードされるようにエントロピーエンコーディングユニット220に提供してもよい。
【0213】
[0227]
上記で説明したように、残差発生ユニット204は、現在ブロックおよび対応する予測ブロックに対するビデオデータを受け取る。残差発生ユニット204は、その後、現在ブロックに対する残差ブロックを発生させる。残差ブロックを発生させるために、残差発生ユニット204は、予測ブロックと現在ブロックとの間のサンプル毎の差分を計算する。
【0214】
[0228]
変換処理ユニット206は、残差ブロックに1つ以上の変換を適用して、(ここでは「変換係数ブロック」として呼ばれる)変換係数のブロックを発生させる。変換処理ユニット206は、残差ブロックにさまざまな変換を適用して、変換係数ブロックを形成してもよい。例えば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、または、概念的に類似する変換を、残差ブロックに適用してもよい。いくつかの例では、変換処理ユニット206は、残差ブロックに対して複数の変換、例えば、回転変換のような、1次変換と2次変換とを実行してもよい。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
【0215】
[0229]
量子化ユニット208は、変換係数ブロック中の変換係数を量子化して、量子化された変換係数ブロックを生成させてもよい。量子化ユニット208は、現在ブロックに関係する量子化パラメータ(QP)値にしたがって、変換係数ブロックの変換係数を量子化してもよい。ビデオエンコーダ200は(例えば、モード選択ユニット202を介して)、CUに関係するQP値を調節することによって、現在ブロックに関係する変換係数ブロックに適用される量子化の程度を調節してもよい。量子化は、情報の損失をもたらすかもしれず、したがって、量子化された変換係数は、変換処理ユニット206によって生成された元の変換係数よりも低い精度を有するかもしれない。
【0216】
[0230]
逆量子化ユニット210および逆変換処理ユニット212は、逆量子化および逆変換をそれぞれ量子化された変換係数ブロックに適用して、変換係数ブロックから残差ブロックを再構築してもよい。再構築ユニット214は、再構築された残差ブロックと、モード選択ユニット202によって発生させた予測ブロックとに基づいて、(潜在的にある程度の歪みを有するが)現在ブロックに対応する再構築されたブロックを生成させてもよい。例えば、再構築ユニット214は、再構築された残差ブロックのサンプルを、モード選択ユニット202によって発生させた予測ブロックからの対応するサンプルに追加して、再構築されたブロックを生成させてもよい。
【0217】
[0231]
フィルタユニット216は、再構築されたブロックに対して1つ以上のフィルタ動作を実行してもよい。例えば、フィルタユニット216は、デブロッキング動作を実行して、CUのエッジに沿ったブロッキネスアーティファクトを低減させてもよい。いくつかの例では、フィルタユニット216の動作はスキップしてもよい。
【0218】
[0232]
ビデオエンコーダ200は、再構築されたブロックをDPB218中に記憶させる。例えば、フィルタユニット216の動作が必要とされない例では、再構築ユニット214は、再構築されたブロックをDPB218中に記憶させてもよい。フィルタユニット216の動作が必要とされる例では、フィルタユニット216は、再構築されフィルタされたブロックをDPB218中に記憶させてもよい。動き推定ユニット222および動き補償ユニット224は、再構築された(そして、潜在的にフィルタ処理された)ブロックから形成された参照ピクチャーをDPB218から取り出して、後にエンコードされるピクチャーのブロックをインター予測してもよい。加えて、イントラ予測ユニット226は、現在ピクチャーのDPB218中の再構築されたブロックを使用して、現在ピクチャー中の他のブロックをイントラ予測してもよい。
【0219】
[0233]
一般的に、エントロピーエンコーディングユニット220は、ビデオエンコーダ200の他の機能的なコンポーネントから受け取ったシンタックス要素をエントロピーエンコードしてもよい。例えば、エントロピーエンコーディングユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピーエンコードしてもよい。別の例として、エントロピーエンコーディングユニット220は、モード選択ユニット202からの予測シンタックス要素(例えば、インター予測に対する動き情報またはイントラ予測に対するイントラモード情報)をエントロピーエンコードしてもよい。エントロピーエンコーディングユニット220は、ビデオデータの別の例であるシンタックス要素に関して、1つ以上のエントロピーエンコーディング動作を実行して、エントロピーエンコードされたデータを発生させてもよい。例えば、エントロピーエンコーディングユニット220は、データに、コンテキスト適応可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースのコンテキスト適応バイナリ算術コードディング(SBAC)動作、確率区間区分化エントロピー(PIPE)コーディング動作、指数ゴロムエンコーディング動作、または、別のタイプのエントロピーエンコーディング動作を実行してもよい。いくつかの例では、エントロピーエンコーディングユニット220は、シンタックス要素がエントロピーエンコードされないバイパスモードで動作してもよい。
【0220】
[0234]
ビデオエンコーダ200は、スライスまたはピクチャーのブロックを再構築するのに必要とされるエントロピーエンコードされたシンタックス要素を含むビットストリームを出力してもよい。特に、エントロピーエンコーディングユニット220は、ビットストリームを出力してもよい。
【0221】
[0235]
上記で説明している動作は、ブロックに関して説明している。このような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックに対する動作として理解すべきである。上述したように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
【0222】
[0236]
いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックに対して繰り返す必要はない。1つの例として、ルーマコーディングブロックに対する動きベクトル(MV)および参照ピクチャーを識別する動作は、クロマブロックに対するMVおよび参照ピクチャーを識別するために繰り返す必要はない。むしろ、ルーマコーディングブロックに対するMVをスケーリングして、クロマブロックに対するMVを決定してもよく、参照ピクチャーは同じであってもよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックに対して同じであってもよい。
【0223】
[0237]
ビデオエンコーダ200は、本開示で説明されている予測ブロックグループ化技法のいずれかを実行するように構成されていてもよい。例えば、イントラ予測ユニット226は、ISPコーディングを実行して、コーディングユニット(CU)をサブブロック(例えば、予測ブロック)に区分してもよい。加えて、イントラ予測ユニット226は、サブブロックを予測ブロックグループにグループ化してもよい。このようにして、ビデオエンコーダ200は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割(例えば、垂直分割)を実行して、予測ブロックのセットを形成するように構成され、回路中で実現される1つ以上のプロセッサを含んでいると見なしてもよい。予測ブロックは、少なくとも第1の予測ブロックと第2の予測ブロックとを含んでいてもよい。ビデオエンコーダ200は、その後、予測ブロックのセットのうちの複数を、第1の予測ブロックグループ(PBG)にグループ化してもよい。加えて、ビデオエンコーダ200は、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築してもよい。
【0224】
[0238]
図21は、本開示の技法を利用してもよい、例示的なビデオデコーダ300を図示するブロック図である。
図21は、説明の目的のために提供されており、本開示で広く例示し説明しているような技法には限定されない。説明の目的で、本開示は、JEM、VVCおよびHEVCの技法にしたがうビデオデコーダ300を説明している。しかしながら、本開示の技法は、他のビデオコーディング標準規格に構成されているビデオコーディングデバイスによって実行してもよい。
【0225】
[0239]
図21の例では、ビデオデコーダ300は、コード化ピクチャーバッファ(CPB)メモリ320と、エントロピーデコーディングユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、デコードピクチャーバッファ(DPB)314とを含んでいる。CPBメモリ320と、エントロピーデコーディングユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、DPB314のいずれかまたはすべてを、1つ以上のプロセッサ中で、または、処理回路中で実現してもよい。さらに、ビデオデコーダ300は、これらまたは他の機能を実行するために、追加または代替のプロセッサまたは処理回路を含んでいてもよい。
【0226】
[0240]
予測処理ユニット304は、動き補償ユニット316とイントラ予測ユニット318とを含んでいる。予測処理ユニット304は、他の予測モードにしたがって予測を実行するための追加ユニットを含んでいてもよい。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成していてもよい)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニット、または、これらに類するものを含んでいてもよい。他の例では、ビデオデコーダ300は、より多い、より少ない、または、異なる機能的コンポーネントを含んでいてもよい。
【0227】
[0241]
CPBメモリ320は、ビデオデコーダ300のコンポーネントによってデコードされるべき、エンコードされたビデオビットストリームのようなビデオデータを記憶してもよい。CPBメモリ320中に記憶されるビデオデータは、例えば、コンピュータ読取可能媒体110(
図1)から取得されてもよい。CPBメモリ320は、エンコードされたビデオビットストリームからのエンコードされたビデオデータ(例えば、シンタックス要素)を記憶するCPBを含んでいてもよい。また、CPBメモリ320は、ビデオデコーダ300のさまざまなユニットからの出力を表す一時データのような、コード化されたピクチャーのシンタックス要素以外のビデオデータを記憶してもよい。DPB314は、一般的に、デコードされたピクチャーを記憶し、エンコードされたビデオビットストリームの後続のデータまたはピクチャーをデコードするときに、ビデオデコーダ300が、このデコードされたピクチャーを、参照ビデオデータとして出力および/または使用してもよい。CPBメモリ320およびDPB314は、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または、他のタイプのメモリデバイスのような、さまざまなメモリデバイスのいずれかによって形成されていてもよい。CPBメモリ320およびDPB314は、同じメモリデバイスまたは別個のメモリデバイスによって提供されてもよい。さまざまな例では、CPBメモリ320は、ビデオデコーダ300の他のコンポーネントとともにオンチップであるか、または、これらのコンポーネントに対してオフチップであってもよい。
【0228】
[0242]
追加的にまたは代替的に、いくつかの例では、ビデオデコーダ300は、メモリ120(
図1)からコード化されたビデオデータを取り出してもよい。すなわち、メモリ120は、CPBメモリ320を用いて上記で説明したようなデータを記憶していてもよい。同様に、ビデオデコーダ300の機能性のいくつかまたはすべてが、ビデオデコーダ300の処理回路によって実行されるソフトウェアで実現されるとき、メモリ120は、ビデオデコーダ300によって実行されるべき命令を記憶していてもよい。
【0229】
[0243]
図21に示されているさまざまなユニットは、ビデオデコーダ300によって実行される動作の理解を助けるために図示されている。ユニットは、固定機能回路、プログラマブル回路、または、これらの組み合わせとして実現してもよい。
図20と同様に、固定機能回路は、特定の機能性を提供する回路を指し、実行できる動作に対して予め設定される。プログラマブル回路は、さまざまなタスクを実行するようにプログラムでき、実行できる動作において柔軟な機能性を提供できる回路を指している。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって規定される方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行してもよい。固定機能回路は、(例えば、パラメータを受け取るまたはパラメータを出力するために)ソフトウェア命令を実行するかもしれないが、固定機能回路が実行する動作のタイプは一般的に不変である。いくつかの例では、ユニットのうちの1つ以上は、別個の回路ブロック(固定機能またはプログラマブル)であってもよく、いくつかの例では、1つ以上のユニットは集積回路であってもよい。
【0230】
[0244]
ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/または、プログラマブル回路から形成されているプログラマブルコアを含んでいてもよい。ビデオデコーダ300の動作がプログラマブル回路上で実行するソフトウェアによって実行される例では、オンチップまたはオフチップメモリが、ビデオデコーダ300が受け取って実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶していてもよい。
【0231】
[0245]
エントロピーデコーディングユニット302は、CPBからエンコードされたビデオデータを受け取り、ビデオデータをエントロピーデコードして、シンタックス要素を再生させてもよい。予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構築ユニット310、および、フィルタユニット312は、ビットストリームから抽出されたシンタックス要素に基づいて、デコードされたビデオデータを発生させてもよい。
【0232】
[0246]
一般的に、ビデオデコーダ300は、ブロック毎のベースでピクチャーを再構築する。ビデオデコーダ300は、各ブロックに対して個別に再構築動作を実行してもよい(現在再構築されている、すなわち、デコードされているブロックは、「現在ブロック」として呼ばれることがある)。
【0233】
[0247]
エントロピーデコーディングユニット302は、量子化された変換係数ブロックの量子化された変換係数を規定するシンタックス要素とともに、量子化パラメータ(QP)および/または変換モードインジケーションのような変換情報をエントロピーデコードしてもよい。逆量子化ユニット306は、量子化変換係数ブロックに関係するQPを使用して、量子化の程度を、そして、同様に逆量子化ユニット306が適用する逆量子化の程度を決定してもよい。逆量子化ユニット306は、例えば、ビット単位の左シフト演算を実行して、量子化変換係数を逆量子化してもよい。それによって、逆量子化ユニット306は、変換係数を含む変換係数ブロックを形成してもよい。
【0234】
[0248]
逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、変換係数ブロックに1つ以上の逆変換を適用して、現在ブロックに関係する残差ブロックを発生させてもよい。例えば、逆変換処理ユニット308は、変換係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または、別の逆変換を適用してもよい。
【0235】
[0249]
さらに、予測処理ユニット304は、エントロピーデコーディングユニット302によってエントロピーデコードされた予測情報シンタックス要素にしたがって、予測ブロックを発生させる。例えば、現在ブロックがインター予測されることを予測情報シンタックス要素が示す場合、動き補償ユニット316が予測ブロックを発生させてもよい。このケースでは、予測情報シンタックス要素は、参照ブロックを取り出すべきDPB314中の参照ピクチャーとともに、現在ピクチャー中の現在ブロックのロケーションに対する、参照ピクチャー中の参照ブロックのロケーションを識別する動きベクトルを示していてもよい。動き補償ユニット316は、一般的に、動き補償ユニット224(
図20)に関して説明した方法と実質的に類似する方法で、インター予測プロセスを実行してもよい。
【0236】
[0250]
別の例として、現在ブロックがイントラ予測されることを予測情報シンタックス要素が示している場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されているイントラ予測モードにしたがって、予測ブロックを発生させてもよい。再度説明すると、イントラ予測ユニット318は、一般的に、イントラ予測ユニット226(
図20)に関して説明した方法と実質的に類似する方法で、イントラ予測プロセスを実行してもよい。イントラ予測ユニット318は、現在ブロックに対する隣接するサンプルのデータをDPB314から取り出してもよい。
【0237】
[0251]
再構築ユニット310は、予測ブロックと残差ブロックとを使用して、現在ブロックを再構築してもよい。例えば、再構築ユニット310は、残差ブロックのサンプルを予測ブロックの対応するサンプルに追加して、現在ブロックを再構築してもよい。
【0238】
[0252]
フィルタユニット312は、再構築されたブロックに対して1つ以上のフィルタ動作を実行してもよい。例えば、フィルタユニット312は、デブロッキング動作を実行して、再構築されたブロックのエッジに沿ったブロッキネスアーティファクトを低減させてもよい。フィルタユニット312の動作は、必ずしもすべての例において実行する必要はない。
【0239】
[0253]
ビデオデコーダ300は、再構築されたブロックをDPB314中に記憶させてもよい。例えば、フィルタユニット312の動作が実行されていない例では、再構築ユニット310が、再構築されたブロックをDPB314に記憶させてもよい。フィルタユニット312の動作が実行されている例では、フィルタユニット312が、再構築されフィルタされたブロックをDPB314に記憶させてもよい。上記で説明したように、DPB314は、イントラ予測に対する現在ピクチャーと、後続の動き補償のための以前にデコードされたピクチャーとのサンプルのような参照情報を、予測処理ユニット304に提供してもよい。さらに、ビデオデコーダ300は、
図1のディスプレイデバイス118のようなディスプレイデバイス上での後続の提示のために、DPB314からデコードされたピクチャーを出力してもよい。
【0240】
[0254]
ビデオデコーダ300は、本開示で説明されている予測ブロックグループ化技法のいずれかを実行するように構成されていてもよい。例えば、イントラ予測ユニット318は、ISPコーディングを実行して、コーディングユニット(CU)をサブブロック(例えば、予測ブロック)に区分してもよい。加えて、イントラ予測ユニット318は、サブブロックを予測ブロックグループにグループ化してもよい。このようにして、ビデオデコーダ300は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割(例えば、垂直分割)を実行して、予測ブロックのセットを形成するように構成され、回路中で実現されている1つ以上のプロセッサを含んでいると見なされてもよい。予測ブロックは、少なくとも第1の予測ブロックと第2の予測ブロックとを含んでいてもよい。ビデオデコーダ300は、予測ブロックのセットのうちの複数を第1の予測ブロックグループにグループ化してもよい。加えて、ビデオデコーダ300は、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築してもよい。
【0241】
[0255]
図22は、現在ブロックをエンコードするための方法の例を図示するフローチャートである。現在ブロックは、現在CUを含んでいてもよい。ビデオエンコーダ200(
図1および
図20)に関して説明したが、
図22の方法と類似する方法を実行するように他のデバイスが構成されてもよいことを理解されたい。
【0242】
[0256]
この例では、ビデオエンコーダ200は、最初に現在ブロックを予測する(350)。例えば、ビデオエンコーダ200は、現在ブロックに対する予測ブロックを形成してもよい。ビデオエンコーダ200は、その後、現在ブロックに対する残差ブロックを計算してもよい。(352)。言い換えると、ビデオエンコーダ200は、現在ブロックに対するルーマ残差データとクロマ残差データとを計算してもよい。残差ブロックを計算するために、ビデオエンコーダ200は、現在ブロックに対する元のコード化されていないブロックと予測ブロックとの間の差分を計算してもよい。ビデオエンコーダ200は、その後、残差ブロックの係数を変換および量子化してもよい(354)。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査してもよい(356)。走査の間、または、走査に続いて、ビデオエンコーダ200は、変換係数をエントロピーエンコードしてもよい(358)。例えば、ビデオエンコーダ200は、CAVLCまたはCABACを使用して、変換係数をエンコードしてもよい。ビデオエンコーダ200は、その後、ブロックのエントロピーエンコード化されたデータを出力してもよい(360)。例えば、ビデオエンコーダ200は、再構築ループを実現して、本開示で説明されている予測ブロックグループ化技法を使用して、コード化ビデオデータを再構築してもよい。
【0243】
[0257]
図23は、ビデオデータの現在ブロックをデコードするための例示的な方法を図示するフローチャートである。現在ブロックは、現在CUを含んでいてもよい。ビデオデコーダ300(
図1および
図21)に関して説明したが、
図23の方法と類似する方法を実行するように他のデバイスが構成されてもよいことを理解されたい。
【0244】
[0258]
ビデオデコーダ300は、現在ブロックに対応する残差ブロックの変換係数に対する、エントロピーコード化予測情報およびエントロピーコード化データのような、現在ブロックに対するエントロピーコード化データを受け取ってもよい。(370)ビデオデコーダ300は、エントロピーコード化データをエントロピーデコードして、現在ブロックに対する予測情報を決定し、残差ブロックの変換係数を再生させてもよい(372)。ビデオデコーダ300は、例えば、現在ブロックに対する予測情報により示されているイントラ予測モードまたはインター予測モードを使用して現在ブロックを予測して、現在ブロックに対する予測ブロックを計算してもよい(374)。ビデオデコーダ300は、その後、再生された変換係数を逆走査して、量子化された変換係数のブロックを生成させてもよい(376)。ビデオデコーダ300は、その後、係数を逆量子化および逆変換して、残差ブロックを生成させてもよい(378)。ビデオデコーダ300は、最終的に、予測ブロックと残差ブロックとを組み合わせることにより、現在ブロックをデコードしてもよい(380)。ビデオデコーダ300は、本開示で説明されている予測ブロックグループ化技法を使用して、現在ブロックのサンプルを再構築してもよい。
【0245】
[0259]
図24は、ビデオデータの現在ブロック上で予測ブロックグループ化を実行するための例示的な技法を図示するフローチャートである。現在ブロックは、現在CUを含んでいてもよい。ビデオエンコーダ200(
図1および
図20)および/またはビデオデコーダ300(
図1および
図21)に関して説明したが、
図24の方法と類似する方法を実行するように、他のデバイスが構成されてもよいことを理解されたい。
【0246】
[0260]
いくつかの例では、ビデオコーダ(例えば、ビデオエンコーダ200および/またはビデオデコーダ300)は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割(例えば、垂直分割)を実行してもよい。例えば、ビデオコーダは、第1のCUの垂直および/または水平分割を実行して、予測ブロックのセットを形成してもよい(2402)。例示的な例では、ビデオコーダは、第1のCUの垂直分割を実行して、予測ブロックのセットを形成してもよい。何らかのケースにおいて、予測ブロックのセットは、CUのすべての予測ブロックをまたはCUの予測ブロックのサブセットのみを含んでいてもよい。すなわち、ビデオコーダは、CUのすべての予測ブロックを含むとは限らない予測ブロックのセットを形成してもよい。例えば、ビデオコーダは、第1のCUの分割を実行して、予測ブロックの第1のセットと、予測ブロックの1つ以上の他のセットとを形成してもよい。予測ブロックの1つ以上の他のセットは、互にそして予測ブロックの第1のセットと相互に排他的であってもよい。いくつかの例では、CUの1つの部分が、1つより多い予測ブロックに区分されてもよいように、予測ブロックのセットは、互いにある程度オーバーラップしていてもよい。本開示のさまざまな技法は、CUを予測ブロックのセットに区分するビデオコーダについて説明されているが、本開示の技法はそのように限定されず、ビデオコーダはCUを予測ブロックの複数のセットに区分してもよい。
【0247】
[0261]
いくつかの例では、予測ブロックのセットのうちの予測ブロックは、少なくとも第1の予測ブロックと第2の予測ブロックと(例えば、少なくとも2つの垂直予測ブロック)を含んでいてもよい。いくつかの例では、第1の予測ブロックは、2以下のサンプル幅を構成していてもよい。例えば、第1の予測ブロックは、1または2のサンプル幅を有していてもよい。加えて、第2の予測ブロックは、1または2のサンプル幅を有していてもよい。いくつかの例では、第1の予測ブロックと第2の予測ブロックは、同じ幅を有していてもよい。例えば、第1の予測ブロックと第2の予測ブロックは両方、2のサンプル幅を有していてもよい。しかしながら、いくつかの例では、第1の予測ブロックが2の幅を有し、第2の予測ブロックが1の幅を有するように、第1の予測ブロックと第2の予測ブロックは、異なる幅を有していてもよい。このような例では、第1のPBGが、少なくとも4サンプルサイズの幅を有していてもよいように、第3の予測ブロックが、第1のPBGに含まれていてもよい。
【0248】
[0262]
いくつかの例では、ビデオコーダは、予測ブロックのセットから、複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化してもよい(2404)。例では、ビデオコーダは、予測ブロックの第1のセットからの1つ以上の予測ブロックを第1のPBGにグループ化してもよい。例えば、ビデオコーダは、予測ブロックの第1のセットから、第1の予測ブロックと第2の予測ブロックとを第1のPBGにグループ化してもよい。いくつかの例では、第1のPBGは、予測ブロックの第1のセットからの1つの予測ブロックのみを含んでいてもよい。
【0249】
[0263]
いくつかの例では、ビデオコーダは、CUの予測ブロックの第1のセットをグループ化して、1つ以上のPBGを形成してもよい。このような例では、ビデオコーダは、同じCUの予測ブロックの1つ以上の他のセットに関して、同様にまたは異なってPBGをグループ化してもよい。例えば、ビデオコーダは、予測ブロックの第1のセットからの少なくとも1つの垂直予測ブロックと、予測ブロックの同じセットからの少なくとも1つの水平予測ブロックとを、第1のPBGにグループ化してもよい。このような例では、ビデオコーダは、予測ブロックの第2のセットからの少なくとも1つの垂直予測ブロックと、予測ブロックの第2のセットからの少なくとも1つの水平予測ブロックとを、第2のPBGにグループ化してもよい。しかしながら、いくつかの例では、ビデオコーダは、代わりに、予測ブロックの第2のセットからの垂直予測ブロックのみ、および/または、予測ブロックの第2のセットからの水平予測ブロックのみを、第2のPBGにグループ化してもよく、予測ブロックの第1のセットは、垂直サブブロックのみ、水平サブブロックのみ、垂直および水平ブロックの混合等を含み、予測ブロックの第2のセットは、垂直サブブロックのみ、水平サブブロックのみ、垂直および水平ブロックの混合等を含んでいる。いくつかの例では、ビデオコーダは、特定のタイプの予測ブロックのみをPBGにグループ化してもよい。複数の分割タイプ(例えば、単一CUの垂直および水平分割)を使用して区分されたCUを伴う非限定的な例では、ビデオコーダは、全体的な分割スキームの垂直分割部分の結果である予測ブロックのみをPBGにグループ化してもよい。このようなことから、ビデオコーダは、(例えば、水平分割を使用して)ビデオコーダが異なって区分した予測ブロックのグループ化を先行してもよい。別の例では、ビデオコーダは、垂直予測ブロックと、垂直予測ブロックに隣接する1つ以上の水平予測ブロックとを含むグループを形成してもよい。ビデオコーダは、追加的に、何らかの残りの予測ブロック(例えば、非隣接予測ブロック)を含むグループを形成してもよく、または、CUの予測ブロックの1つ以上のセット中のある予測ブロックに対するグループを形成しないように決定してもよい。加えて、ビデオコーダは、特定のサイズ(例えば、予め定められているサイズしきい値を満たすサイズ)のものである予測ブロックのみをグループ化してもよい。
【0250】
[0264]
いくつかの例では、PBGは、nWサンプルの最小寸法を有するように指定されていてもよい。例えば、PBGは、4サンプル(例えば、nW=4)の最小幅を有していてもよい。すなわち、第1のPBGは、少なくとも4つのサンプルサイズ幅を有していてもよい。このようなケースでは、サブブロックの寸法サイズがnWより小さい場合には、隣接する1つ以上の予測ブロックは、寸法サイズnWサンプルの1つのPBGとして扱ってもよい。寸法サイズは、高さ、幅、または、高さおよび幅から導出される関数(例えば、幅*高さ)に適用してもよい。
【0251】
[0265]
ビデオコーダは、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築してもよい(2406)。ビデオコーダが、アクセスすること、読み出すこと、または、他のメモリアクセス手順を実行することなく、1つのサブブロックから1つのサンプルを再構築して、同じPBG内の別のサブブロック中のサンプルを識別または再構築するときには、ビデオコーダは、PBG内の他の予測ブロックとは無関係に、予測ブロックのサンプルを再構築してもよい。当然の結果として、ビデオコーダがシーケンシャルな動作を実行するときには、ビデオコーダは、別のグループからのサンプルの再構築に依存している1つのグループからのサンプルを再構築してもよい。すなわち、シーケンシャルな動作は、最初に第1のグループから1つ以上のサンプルを再構築し、その後、第1のグループからのサンプルに基づいて、別のグループから1つ以上のサンプルを再構築することを伴う。いくつかの事例では、独立した再構築は、ビデオコーダが、同じ第1のPBG中にある第2の予測ブロックからサンプルを再構築するのと並行して、または、実質的に同時に(例えば、必要な時間遅延なしに)、ビデオコーダが第1のPBGの第1の予測ブロックからサンプルを再構築する並行手順を伴っていてもよい。
【0252】
[0266]
第1のPBGが第1の予測ブロックと第2の予測ブロックとを含む例では、ビデオコーダは、第2の予測ブロックのサンプルとは無関係に、第1の予測ブロックのサンプルを再構築してもよい。いくつかの例では、PBG内のサンプルの予測された値間の依存性をもたらすかもしれない、あるフィルタリング動作が予測ブロックに適用されるときには、(ポスト予測フィルタリング動作がない)通常のイントラ予測が依存性をもたらさない限り、PBG内のサンプルの予測依存性の制限は依然として有効であると見なされてもよい。例えば、制限は、PDPC、境界フィルタリング、または、他の類似する動作に起因する依存性に適用されないかもしれない。
【0253】
[0267]
いくつかの例では、ビデオコーダは、単一のCUが少なくとも2つのPBGを含むように、第2のPBGを形成してもよい。例えば、ビデオコーダは、1つ以上の予測ブロックを第1のPBGにグループ化してもよい。同様に、ビデオコーダは、予測ブロックの第2のセットを第2のPBGにグループ化してもよい。各PBGの予測ブロックは、予測ブロックのオーバーラップしないセットを含んでいてもよい。すなわち、1つのPBGの予測ブロックは、別のPBGの予測ブロックと相互に排他的であってもよい。いずれのケースでも、ビデオコーダは、第2のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第2のPBG中に含まれている予測ブロックのサンプルを再構築してもよい。
【0254】
[0268]
加えて、ビデオコーダは、いくつかの例では、第1のPBG中に含まれている予測ブロックのサンプルに基づいて、第2のPBG中に含まれている予測ブロックのサンプルを再構築してもよい。すなわち、1つのPBG中のサンプルの再構築は、別のPBG中のサンプルの再構築に依存していてもよい。このような例では、ビデオコーダは、依然として、単一のPBG内のサンプルの予測独立性を維持してもよい。いくつかの例では、第2のPBG中に含まれているサンプルの予測は、第1のPBG中に含まれている予測ブロックに基づいていないことがあるが、代わりに、隣接するCUのような別のCU中に含まれている予測ブロックに基づいていてもよい。
【0255】
[0269]
いくつかの例では、ビデオコーダは、CUを1つ以上の変換ブロックに分割してもよい。このような例では、変換ブロックのサイズは、第1の予測ブロックまたはCUの何らかの1つの予測ブロックのサイズに等しくてもよい。いくつかの例では、変換ブロックのサイズは、第1のPBG中に含まれている最小予測ブロックのサイズよりも小さくてもよい。さらに、変換ブロックのサイズは、第1のPBG中に含まれている予測ブロックの総和のサイズよりも小さくてもよい。別の例では、変換ブロックは、PBGのサイズと等しいサイズを有していてもよい。いずれのケースでも、第1のPBGに関係する第1の変換ブロックは、第1のPBG中に含まれている第1の予測ブロックまたは第2の予測ブロックのサイズに等しいサイズを有していてもよい。
【0256】
[0270]
いくつかの例では、ビデオコーダは、少なくとも第1の予測ブロックと第2の予測ブロックとの総計された幅に等しい幅を有する予測サンプルアレイを発生させてもよい。例えば、ビデオコーダは、サイズ(nPbW)×(nH)のアレイを出力してもよい。いくつかの例では、ビデオコーダは、予測ブロックのサンプルを再構築するとき、少なくとも第1の予測ブロックと第2の予測ブロックとの総計された幅に等しい幅を有する予測サンプルアレイを発生させてもよい。
【0257】
[0271]
いくつかの例では、ビデオコーダは、コーディングユニットの幅と第1の予測ブロックの幅とに基づいて、予測ブロックグループの量を決定してもよい。ビデオコーダは、CUが予測ブロックグループの量を構成するように、予測ブロックグループの量にしたがって、CUをコード化してもよい。予測ブロックグループの量はpbFactor(例えば、予測ブロックグループファクター)として本明細書で呼ばれることがある。このような事例では、ビデオコーダは、CUの幅を予測ブロックグループの幅で除算することにより、pbFactorを計算してもよい。PBGの幅は、少なくとも4のサンプルサイズの幅を有するように予め規定されていてもよい。
【0258】
[0272]
いくつかの例では、ビデオコーダは、サブブロック幅(例えば、予測ブロック幅)をPBGの幅(例えば、PBGの最小幅)で除算することにより、pbFactorを計算してもよい。例えば、サブブロックが1または2の幅を有するときには、ビデオコーダは、PBGが4のサンプル幅を有するときに4で除算することによるように、サブブロック幅をPBGの幅で除算することにより、pbFactorを計算してもよい。別の例では、CUの幅が8サンプルサイズであり、予測ブロックグループが4サンプルサイズであるときには、ビデオコーダは、2に等しくなるようにpbFactorを計算してもよい。すなわち、CUに対するPBGの数または量は、2つのPBGに等しくてもよい。
【0259】
[0273]
いくつかの例では、予測ブロックの幅が4以上であるときには、予測ブロック幅とPBG幅とは同じ幅を有していてもよい。例えば、ビデオコーダは、幅4の予測ブロックを幅4のPBGにグループ化してもよい。すなわち、ビデオコーダは、幅Xの予測ブロックを同じ幅の単一のPBGにグループ化してもよく、Xは、予め規定されているしきい値数以上である。非限定的で例示的な例では、予め規定されているしきい値数は4であってもよい。別の例示的な例では、ビデオコーダは、幅4の第1の予測ブロックと幅8の第2の予測ブロックとを、幅8の単一のPBGにグループ化してもよい。このような例では、ビデオコーダは、特定のPBGグループサイズを達成するために第2の予測ブロックをさらに区分することによるように、第2の予測ブロックの一部分のみをPBGグループに含めてもよい。本開示のさまざまな技法がある状況において幅サイズで説明されているが、本開示の技法はこのようには制限されず、他の制約および/または考慮事項も同様に予測ブロックのPBGへのグループ化に適用してもよいことが理解されるであろう。例えば、PBGは特定の高さ制限(例えば、4サンプルサイズの高さ)を有してもよく、または、別の例では、高さと幅の制約および/または考慮事項の組み合わせも同様に予測ブロックのPBGへのグループ化に適用してもよい(例えば、PBGはM×Nの最小H×Wサイズを有していてもよく、MとNは必ずしも等しくなくてもよい)。
【0260】
[0274]
上記で説明したように、説明した
図24の例示的な方法は、回路中で実現される1つ以上のプロセッサにより実行されてもよい。1つ以上のプロセッサは、ビデオエンコーダ中に含まれていてもよく、または、いくつかの例では、ビデオデコーダ中に含まれていてもよい。
【0261】
[0275]
本開示の例示的な例は、以下のものを含んでいる。
【0262】
[0276]
例1:ビデオデータをコード化する方法において、方法は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成し、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含むことと、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化することと、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築することとを含んでいる。
【0263】
[0277]
例2:予測ブロックのセットのうちの複数を第1のPBGにグループ化することが、予測ブロックのセットのうちの第1の複数を第1のPBGにグループ化することを含み、方法は、予測ブロックのセットのうちの第2の複数を第2のPBGにグループ化し、予測ブロックのセットのうちの第2の複数および予測ブロックのセットのうちの第1の複数は、予測ブロックのオーバーラップしていないセットを含むことと、第2のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第2のPBG中に含まれている予測ブロックのサンプルを再構築することとをさらに含んでいる例1記載の方法。
【0264】
[0278]
例3:第2のPBG中に含まれている予測ブロックのサンプルを再構築することは、第1のPBG中に含まれている予測ブロックのサンプルに基づいて、第2のPBG中に含まれている予測ブロックのサンプルを再構築することを含んでいる例2記載の方法。
【0265】
[0279]
例4:第1のPBGが、少なくとも4のサンプルサイズ幅を構成する例1~3のいずれか記載の方法。
【0266】
[0280]
例5:第1のPBGに関係する第1の変換ブロックが、第1の予測ブロックのサイズに等しいサイズを有する例1~4のいずれか記載の方法。
【0267】
[0281]
例6:予測ブロックのサンプルを再構築することが、少なくとも第1の予測ブロックと第2の予測ブロックとの総計された幅に等しい幅を有する予測サンプルアレイを発生させることを含む例1~5のいずれか記載の方法。
【0268】
[0282]
例7:第1の予測ブロックが、2以下のサンプル幅を構成する例1~6のいずれか記載の方法。
【0269】
[0283]
例8:第1の予測ブロックと第2の予測ブロックとが同じ幅のものである例7記載の方法。
【0270】
[0284]
例9:コーディングユニットの幅と第1の予測ブロックの幅とに基づいて、予測ブロックグループの量を決定することと、CUが予測ブロックグループの量を構成するように、予測ブロックグループの量にしたがって、CUをコード化することとをさらに含む例1~8のいずれか記載の方法。
【0271】
[0285]
例10:方法が、1つ以上のプロセッサにより実行される例1~9のいずれか記載の方法。
【0272】
[0286]
例11:コード化されたビデオビットストリーム中で、ビデオデータのCUに対する予測情報を表す1つ以上のシンタックス要素と、ビデオデータのCUに対する残差データを表す1つ以上のシンタックス要素とをエンコードすることをさらに含む例1~10のいずれか記載の方法。
【0273】
[0287]
例12:コード化されたビデオビットストリームから、ビデオデータのCUに対する予測情報を表す1つ以上のシンタックス要素と、ビデオデータのCUに対する残差データを表す1つ以上のシンタックス要素とをデコードすることをさらに含む例1~11のいずれか記載の方法。
【0274】
[0288]
例13:CUの分割を実行することが、垂直分割、水平分割、または、水平分割と垂直分割との組み合わせのうちの1つ以上を使用して、CUを分割することを含む例1~12のいずれか記載の方法。
【0275】
[0289]
例14:ビデオデータをコード化するデバイスにおいて、デバイスは、例1~例13のいずれかの方法を実行する1つ以上の手段を備えている。例えば、例14のデバイスは、ビデオデータを記憶するように構成されているメモリと、回路中で実現されている1つ以上のプロセッサとを含み、1つ以上のプロセッサは、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の分割を実行して、予測ブロックのセットを形成し、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含むようにと、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化するようにと、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築するように構成されている。
【0276】
[0290]
例15:予測ブロックのセットのうちの複数を第1のPBGにグループ化するために、1つ以上のプロセッサが、予測ブロックのセットのうちの第1の複数を第1のPBGにグループ化するように構成され、1つ以上のプロセッサが、予測ブロックのセットのうちの第2の複数を第2のPBGにグループ化し、予測ブロックのセットのうちの第2の複数と予測ブロックのセットのうちの第1の複数が、予測ブロックのオーバーラップしていないセットを含むようにと、第2のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第2のPBG中に含まれている予測ブロックのサンプルを再構築するようにさらに構成されている例14記載のデバイス。
【0277】
[0291]
例16:第2のPBG中に含まれている予測ブロックのサンプルを再構築するために、1つ以上のプロセッサが、第1のPBG中に含まれている予測ブロックのサンプルに基づいて、第2のPBG中に含まれている予測ブロックのサンプルを再構築するように構成されている例15記載のデバイス。
【0278】
[0292]
例17:第1のPBGが、少なくとも4のサンプルサイズ幅を構成する例14~16のいずれか記載のデバイス。
【0279】
[0293]
例18:第1のPBGに関係する第1の変換ブロックが、第1の予測ブロックのサイズに等しいサイズを有する例14~17のいずれか記載のデバイス。
【0280】
[0294]
例19:予測ブロックのサンプルを再構築するために、1つ以上のプロセッサが、少なくとも第1の予測ブロックと第2の予測ブロックとの総計された幅に等しい幅を有する予測サンプルアレイを発生させるように構成されている例14~18のいずれか記載のデバイス。
【0281】
[0295]
例20:第1の予測ブロックが、2以下のサンプル幅を構成する例14~19のいずれか記載のデバイス。
【0282】
[0296]
例21:第1の予測ブロックと第2の予測ブロックとが同じ幅のものである例20記載のデバイス。
【0283】
[0297]
例22:1つ以上のプロセッサが、コーディングユニットの幅と第1の予測ブロックの幅とに基づいて、予測ブロックグループの量を決定するようにと、CUが予測ブロックグループの量を構成するように、予測ブロックグループの量にしたがって、CUをコード化するようにさらに構成されている例14~21のいずれか記載のデバイス。
【0284】
[0298]
例23:1つ以上のプロセッサが、ビデオエンコーダに含まれている例14~22のいずれか記載のデバイス。
【0285】
[0299]
例24:1つ以上のプロセッサが、ビデオデコーダに含まれている例14~23のいずれか記載のデバイス。
【0286】
[0300]
例25:CUの分割を実行するために、1つ以上のプロセッサが、垂直分割を使用して、CUを分割するように構成されている例14~24のいずれか記載のデバイス。
【0287】
[0301]
いくつかのインプリメンテーションでは、上記で説明した例1~13および/または14~25は、実行されるときに、デバイスの1つ以上のプロセッサにさまざまな動作のいくつかまたはすべてを実行させる命令を記憶しているコンピュータ読取可能記憶媒体を使用して、実現することができる。例えば、実行されるときに、ビデオデータをデコードおよび/またはエンコードするデバイスの1つ以上のプロセッサに、イントラ副区分(ISP)を使用させて、ビデオデータのコーディングユニット(CU)の分割を実行させて、予測ブロックのセットを形成させ、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含み、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化させ、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築させる命令を記憶しているコンピュータ読取可能記憶媒体を提供することができる。
【0288】
[0302]
いくつかのインプリメンテーションでは、上記で説明した例1~13および/または14~25は、さまざまな動作のいくつかまたはすべてを実行する1つ以上の手段を具備する装置を使用して実現することができる。例えば、ビデオデータをエンコードする装置は、イントラ副区分(ISP)を使用して、ビデオデータのコーディングユニット(CU)の垂直分割を実行して、予測ブロックのセットを形成し、予測ブロックが、少なくとも第1の予測ブロックと第2の予測ブロックとを含む手段と、予測ブロックのセットからの複数の予測ブロックを第1の予測ブロックグループ(PBG)にグループ化する手段と、第1のPBG中に含まれている他の予測ブロックのサンプルとは無関係に、第1のPBG中に含まれている予測ブロックのサンプルを再構築する手段とを含んでいる。
【0289】
[0303]
例26:ビデオデータをコード化する方法において、方法は、ビデオデータの現在コーディングブロックに対する一般化予測の実行のインジケーションをコード化することと、インジケーションに基づいて、現在コーディングブロックを1つ以上の予測ブロックに分割することと、1つ以上の予測ブロックに基づいて、1つ以上の予測ブロックグループ(PBG)を規定することと、PBGのコーディング順序を決定することと、コーディング順序でPBGをコード化することとを含んでいる。
【0290】
[0304]
例27:PBGをコード化することは、現在PBGに対する利用可能な参照サンプルと予測に対して使用されるイントラモードとに基づいて、現在PBG中のサンプルに対する予測された値を取得することを含んでいる例26記載の方法。
【0291】
[0305]
例28:現在コーディングブロックを1つ以上の予測ブロックに分割することは、現在コーディングブロックをサイズ4×Nの予測ブロックに分割することを含み、垂直イントラ予測モードのみが予測ブロックの予測に対して許容され、予測ブロックに対するイントラ予測モードのインジケーションが、ビデオデータのエンコード化された表現を含むビットストリーム中でシグナリングされない例26または27のいずれか記載の方法。
【0292】
[0306]
例29:コード化が、デコーディングを含む例26~28のいずれか記載の方法。
【0293】
[0307]
例30:コード化が、エンコーディングを含む例26~28のいずれか記載の方法。
【0294】
[0308]
例31:ビデオデータをコード化するデバイスにおいて、デバイスが、例26~例30のいずれかの方法を実行する1つ以上の手段を具備する。例えば、例31のデバイスが、ビデオデータの現在コーディングブロックに対する一般化予測の実行のインジケーションをコード化するようにと、インジケーションに基づいて、現在コーディングブロックを1つ以上の予測ブロックに分割するようにと、1つ以上の予測ブロックに基づいて、1つ以上の予測ブロックグループ(PBG)を規定するようにと、PBGのコーディング順序を決定するようにと、コーディング順序でPBGをコード化するように構成されている1つ以上のプロセッサを含んでいてもよい。
【0295】
[0309]
例32:1つ以上の手段が、回路中で実現されている1つ以上のプロセッサを含んでいる例31記載のデバイス。
【0296】
[0310]
例33:ビデオデータを記憶するメモリをさらに具備する例31または32のいずれか記載のデバイス。
【0297】
[0311]
例34:デコードされたビデオデータを表示するように構成されているディスプレイをさらに具備する例31~33のいずれか記載のデバイス。
【0298】
[0312]
例35:カメラ、コンピュータ、移動体デバイス、ブロードキャスト受信機デバイス、または、セットトップボックスのうちの1つ以上を具備する例31~34のいずれか記載のデバイス。
【0299】
[0313]
例36:デバイスが、ビデオデコーダを具備する例31~35のいずれか記載のデバイス。
【0300】
[0314]
例37:デバイスが、ビデオエンコーダを具備する例31~36のいずれか記載のデバイス。
【0301】
[0315]
いくつかのインプリメンテーションでは、上記で説明した例26~30および/または31~37は、実行されるときに、デバイスの1つ以上のプロセッサにさまざまな動作のいくつかまたはすべてを実行させる命令を記憶しているコンピュータ読取可能記憶媒体を使用して、実現することができる。例えば、実行されるときに、ビデオデータをデコードおよび/またはエンコードするデバイスの1つ以上のプロセッサに、ビデオデータの現在コーディングブロックに対する一般化予測の実行のインジケーションをコード化させ、インジケーションに基づいて、現在コーディングブロックを1つ以上の予測ブロックに分割させ、1つ以上の予測ブロックに基づいて、1つ以上の予測ブロックグループ(PBG)を規定させ、PBGのコーディング順序を決定させ、コーディング順序でPBGをコード化させる命令を記憶しているコンピュータ読取可能記憶媒体を提供することができる。
【0302】
[0316]
いくつかのインプリメンテーションでは、上記で説明した例26~30および/または31~37は、さまざまな動作のいくつかまたはすべてを実行する1つ以上の手段を具備する装置を使用して実現することができる。例えば、ビデオデータをエンコードする装置は、ビデオデータの現在コーディングブロックに対する一般化予測の実行のインジケーションをコード化する手段と、インジケーションに基づいて、現在コーディングブロックを1つ以上の予測ブロックに分割する手段と、1つ以上の予測ブロックに基づいて、1つ以上の予測ブロックグループ(PBG)を規定する手段と、PBGのコーディング順序を決定する手段と、コーディング順序でPBGをコード化する手段とを含んでいる。
【0303】
[0317]
例に依存して、ここで説明した技法のうちのいずれかのある動作またはイベントは、異なるシーケンスで実行でき、追加してもよく、マージしてもよく、または、完全に省略してもよい(例えば、説明した動作またはイベントのすべてが本技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、ある例では、動作またはイベントは、シーケンシャルによりもむしろ、例えば、マルチスレッド処理、割り込み処理、または、複数のプロセッサを通して、同時に実行してもよい。
【0304】
[0318]
1つ以上の例において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、または、これらの任意の組み合わせで実現してもよい。ソフトウェアで実現される場合には、機能は、1つ以上の命令またはコードとしてコンピュータ読取可能媒体上に記憶されていてもよく、あるいは、1つ以上の命令またはコードとしてコンピュータ読取可能媒体上で送信されてもよく、ハードウェアベースの処理ユニットによって実行してもよい。コンピュータ読取可能媒体はまた、例えば、通信プロトコルにしたがって、コンピュータプログラムの1つの場所から別の場所への転送を容易にする何らかの媒体を含む通信媒体、または、データ記憶媒体のような有形の媒体に対応するコンピュータ読取可能記憶媒体を含んでいてもよい。このように、コンピュータ読取可能媒体は、一般的に、(1)有形コンピュータ読取可能記憶媒体、または、(2)信号または搬送波のような通信媒体に対応していてもよい。データ記憶媒体は、本開示で説明した技法を実現するための命令、コードおよび/またはデータ構造を取り出すために、1つ以上のコンピュータまたは1つ以上のプロセッサによってアクセスすることができる任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ読取可能媒体を含んでいてもよい。
【0305】
[0319]
限定ではなく例として、このようなコンピュータ読取可能記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光学ディスク記憶媒体、磁気ディスク記憶媒体または他の磁気記憶デバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態で望ましいプログラムコードを記憶するために使用され、コンピュータによってアクセスすることができる他の何らかの媒体を備えることができる。また、任意の接続は、コンピュータ読取可能媒体と適切に呼ばれる。例えば、命令が、ウェブサイトから、サーバから、あるいは、同軸ケーブル、光ファイバケーブル、撚り対、デジタル加入者線(DSL)、または、赤外線、無線、マイクロ波のようなワイヤレステクノロジーを使用している他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバケーブル、撚り対、DSL、または、赤外線、無線およびマイクロ波のようなワイヤレステクノロジーは、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または、他の一時的な媒体を含まないが、代わりに、非一時的な、有形の記憶媒体に向けられていることを理解すべきである。ここで使用するようなディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル汎用ディスク(DVD)、フロッピー(登録商標)ディスク、および、ブルーレイ(登録商標)ディスクを含むが、通常、ディスク(disk)はデータを磁気的に再生する一方で、ディスク(disc)はデータをレーザにより光学的に再生する。上記の組み合わせも、コンピュータ読取可能媒体の範囲内に含むべきである。
【0306】
[0320]
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または、他の同等な集積またはディスクリート論理回路のような1つ以上のプロセッサによって実行してもよい。したがって、ここで使用されるように、用語「プロセッサ」および「処理回路」は、前述の構造、または、ここで説明した技術のインプリメンテーションに適した他の何らかの構造のいずれかを指していてもよい。加えて、いくつかの態様では、ここで説明した機能性は、エンコードおよびデコードするように構成されている専用のハードウェアおよび/またはソフトウェアモジュール内に提供してもよく、あるいは、組み合わされたコーデック中に組み込んでもよい。また、技法は、1つ以上の回路または論理エレメントにおいて、完全に実現することができる。
【0307】
[0321]
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、幅広い種類のデバイスまたは装置において実施してもよい。さまざまなコンポーネント、モジュール、または、ユニットは、開示した技法を実行するように構成されているデバイスの機能的な態様を強調するためにここ説明しているが、それらは、異なるハードウェアユニットによる実現を必ずしも要求するわけではない。むしろ、上記で説明したように、さまざまなユニットは、コーデックハードウェアユニットにおいて組み合わされるか、または、適切なソフトウェアおよび/またはファームウェアとともに、上記で説明したような1つ以上のプロセッサを含む、相互動作可能ハードウェアユニットの集合によって提供されてもよい。
【0308】
[0322]
さまざまな例を説明してきた。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。
【国際調査報告】