(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-19
(54)【発明の名称】ビデオ処理の方法、デバイス、及びプログラム
(51)【国際特許分類】
H04N 19/132 20140101AFI20240209BHJP
H04N 19/12 20140101ALI20240209BHJP
H04N 19/159 20140101ALI20240209BHJP
【FI】
H04N19/132
H04N19/12
H04N19/159
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023551157
(86)(22)【出願日】2022-10-21
(85)【翻訳文提出日】2023-08-23
(86)【国際出願番号】 US2022047372
(87)【国際公開番号】W WO2023076110
(87)【国際公開日】2023-05-04
(32)【優先日】2021-10-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-12-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-10-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ペリンガッセリー クリシュナン,マドゥ
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159TA37
5C159TA50
5C159TB08
5C159TC04
5C159TC24
(57)【要約】
本開示は、概してビデオコーディングに、具体的にはクロスコンポーネントレベル再構成に関係がある。例えば、ビデオデータを処理する方法が開示され、方法は、ビデオブロックのビットストリームから第1色成分の第1変換ブロック及び第2色成分の第2変換ブロックを取得するステップと、第1変換ブロック内の変換係数が全てゼロであることを決定するステップと、CCLRが第1変換ブロックに適用されることを決定するステップと、精緻化された第1変換ブロックを取得するよう、第1変換ブロック内の変換係数の1つ以上を精緻化するステップと、精緻化された第1変換ブロックの目標変換カーネルを決定するステップと、目標ブロックを取得するよう、目標変換カーネルに基づいて、精緻化された第1変換ブロックに対して逆変換を実行するステップと、少なくとも目標ブロックに基づいてビデオブロックの第1色成分を再構成するステップとを含んでよい。
【特許請求の範囲】
【請求項1】
デコーダが実行するビデオ処理の方法であって、
第1色成分の第1変換ブロック及び第2色成分の第2変換ブロックを含むビデオブロックのビットストリームを受信するステップであり、前記第1変換ブロック及び前記第2変換ブロックはコロケートされたブロックである、前記受信するステップと、
前記ビデオブロックの前記ビットストリームから前記第1色成分の前記第1変換ブロック及び前記第2色成分の前記第2変換ブロックを取得するステップと、
前記第1変換ブロック内の全ての変換係数がゼロであることを示す第1フラグを決定するステップと、
クロスコンポーネントレベル再構成(CCLR)が前記第1変換ブロックに適用されることを示す第2フラグを決定するステップと、
CCLRが前記第1変換ブロックに適用されるとの決定に応答して、
精緻化された第1変換ブロックを取得するよう、1つ以上のオフセット値を加えることによって前記第1変換ブロック内の前記変換係数の1つ以上を精緻化するステップであり、前記1つ以上のオフセット値は、前記第1変換ブロック内の前記変換係数の前記1つ以上とコロケートされている前記第2変換ブロック内の変換係数に基づいて導出される、前記精緻化するステップと、
前記精緻化された第1変換ブロックの目標変換カーネルを決定するステップと、
目標ブロックを取得するよう、前記目標変換カーネルに基づいて前記精緻化された第1変換ブロックに対して逆変換を実行するステップと、
少なくとも前記目標ブロックに基づいて前記ビデオブロックの前記第1色成分を再構成するステップと
を有する方法。
【請求項2】
前記第1色成分は、1つのクロマ成分を有し、一方、前記第2色成分は、他のクロマ成分を有し、あるいは、
前記第1色成分は、ルーマ成分を有し、一方、前記第2色成分は、1つのクロマ成分を有し、あるいは、
前記第1色成分は、1つのクロマ成分を有し、一方、前記第2色成分は、ルーマ成分を有する、
請求項1に記載の方法。
【請求項3】
前記目標変換カーネルを決定するステップは、
前記精緻化された第1変換ブロックの前記目標変換カーネルを、前記第2変換ブロックの同じ変換カーネルとして選択するステップを有する、
請求項1に記載の方法。
【請求項4】
前記目標変換カーネルを決定するステップは、
前記ビットストリームでシグナリングされたインジケータを抽出するステップであり、前記インジケータは前記目標変換カーネルを指定し、前記インジケータは、前記CCLRが前記第1変換ブロックに適用されるとの決定に応答してシグナリングされる、前記抽出するステップと、
前記インジケータに基づいて前記目標変換カーネルを選択するステップと
を有する、
請求項1に記載の方法。
【請求項5】
前記目標変換カーネルを決定するステップは、
前記ビデオブロックがイントラ予測の下で予測されることに応答して、前記イントラ予測のモードに基づいて前記目標変換カーネルを導出するステップを有する、
請求項1に記載の方法。
【請求項6】
前記目標変換カーネルは、CCLRが前記第2変換ブロックに適用されない場合に、前記第2変換ブロックの変換カーネルとは異なる、
請求項5に記載の方法。
【請求項7】
前記目標変換カーネルを決定するステップは、
前記ビデオブロックがインター予測されることに応答して、前記第1変換ブロックとコロケートされているルーマ変換ブロックに従って前記目標変換カーネルを選択するステップを有する、
請求項1に記載の方法。
【請求項8】
前記目標変換カーネルを決定するステップは、
前記第1変換ブロックのブロックサイズに基づいてカーネルのリストから前記目標変換カーネルを選択するステップを有し、
前記カーネルのリストは、予め定義されるか、又は前記ビットストリームでシグナリングされる、
請求項1に記載の方法。
【請求項9】
前記第1変換ブロックがプライマリ変換タイプの予め定義された組と関連する場合にのみ、CCLRは、前記第1変換ブロックに適用されることを許可される、
請求項1又は2に記載の方法。
【請求項10】
前記プライマリ変換タイプの予め定義された組の中の各プライマリ変換タイプに関連した変換は2次元変換であり、前記2次元変換は2つの1次元変換によって形成され、前記2つの1次元変換は、両方とも離散コサイン変換(DCT)であるか、又は両方とも増分距離変換(IDT)である、
請求項9に記載の方法。
【請求項11】
1)前記第1変換ブロック内の前記変換係数の前記1つ以上とコロケートされている前記第2変換ブロック内の変換係数、及び2)前記目標変換カーネルに基づいて、前記1つ以上のオフセット値を導出するステップを更に有する、
請求項1に記載の方法。
【請求項12】
ビデオ処理のためのデバイスであって、
コンピュータ命令を記憶するメモリと、前記メモリと通信するプロセッサとを有し、
前記プロセッサが前記コンピュータ命令を実行するとき、前記プロセッサは、前記デバイスに、請求項1乃至11のうちいずれか一項に記載の方法を実行させるよう構成される、デバイス。
【請求項13】
コンピュータ可読命令を含むプログラムであって、
前記コンピュータ可読命令は、ビデオデータを処理するデバイスのプロセッサによって実行されるとき、前記プロセッサに、請求項1乃至11のうちいずれか一項に記載の方法を実行させる、プログラム。
【請求項14】
エンコーダが実行するビデオ処理の方法であって、
第1色成分の第1変換ブロック及び第2色成分の第2変換ブロックを含むビデオブロックのビットストリームを生成するステップであり、前記第1変換ブロック及び前記第2変換ブロックはコロケートされたブロックである、前記生成するステップと、
前記ビデオブロックの前記ビットストリームから前記第1色成分の前記第1変換ブロック及び前記第2色成分の前記第2変換ブロックを取得するステップと、
前記第1変換ブロック内の全ての変換係数がゼロであることを示す第1フラグを決定するステップと、
クロスコンポーネントレベル再構成(CCLR)が前記第1変換ブロックに適用されることを示す第2フラグを決定するステップと、
CCLRが前記第1変換ブロックに適用されるとの決定に応答して、
精緻化された第1変換ブロックを取得するよう、1つ以上のオフセット値を加えることによって前記第1変換ブロック内の前記変換係数の1つ以上を精緻化するステップであり、前記1つ以上のオフセット値は、前記第1変換ブロック内の前記変換係数の前記1つ以上とコロケートされている前記第2変換ブロック内の変換係数に基づいて導出される、前記精緻化するステップと、
前記精緻化された第1変換ブロックの目標変換カーネルを決定するステップと、
目標ブロックを取得するよう、前記目標変換カーネルに基づいて前記精緻化された第1変換ブロックに対して逆変換を実行するステップと、
少なくとも前記目標ブロックに基づいて前記ビデオブロックの前記第1色成分を再構成するステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による援用]
本願は、2021年10月29日付けで「PRIMARY TRANSFORMS FOR CROSS-COMPONENT LEVEL RECONSTRUCTION」との発明の名称で出願された米国特許仮出願第63/273,789号に基づいてそれに対する優先権の利益を主張して2022年10月14日付けで「PRIMARY TRANSFORMS FOR CROSS-COMPONENT LEVEL RECONSTRUCTION」との発明の名称で出願された米国特許出願第17/966,390号に基づいてその優先権の利益を主張する。これらの先願は、それらの全文を参照により本願に援用される。
【0002】
[技術分野]
本開示は、アドバンスドビデオ符号化/復号化技術の組に概して関係があり、より具体的には、逆量子化の前又は後に変換係数を精緻化するオフセットベースのクロスコンポーネント方法のためのプライマリ変換に関係がある。
【背景技術】
【0003】
本明細書で与えられているこの背景の説明は、本開示の背景を一般的に提示することを目的とするものである。現在指名されている発明者の研究は、その研究がこの背景の項で説明されている範囲で、また、出願時に先行技術としてさもなければ適格でない可能性がある説明の側面は、本開示に対する先行技術として明示的にも暗黙的にも認められない。
【0004】
ビデオ符号化及び復号化は、動き補償を伴ったインターピクチャ予測を用いて実行することができる。圧縮されていないデジタルビデオはピクチャの連続を含むことができ、各ピクチャは、例えば、1920×1080のルミナンスサンプル及び関連する完全な又はサブサンプリングされたクロミナンスサンプルの空間ディメンションを有する。ピクチャの連続は、例えば、毎秒60ピクチャ又は毎秒60フレームの固定又は可変のピクチャレート(代替的に、フレームレートと呼ばれる。)を有することができる。圧縮されていないビデオは、ストリーミング又はデータ処理のための特定のビットレート要件を有している。例えば、1920×1080のピクセル分解能、60フレーム/秒のフレームレート、及び色チャネル当たり8ビット/ピクセルでの4:2:0のクロマサブサンプリングを有するビデオは、1.5Gビット/sに近いバンド幅を必要とする。そのようなビデオの1時間は、600Gバイト超の記憶空間を必要とする。
【0005】
ビデオ符号化及び復号化の1つの目的は、圧縮による圧縮されていない入力ビデオ信号の冗長性の低減であることができる。圧縮は、いくつかの場合に2桁以上、上記のバンド幅及び/又は記憶空間要件を減らすのを助けることができる。可逆圧縮及び不可逆圧縮の両方並びにそれらの組み合わせが用いられ得る。可逆圧縮は、原信号の厳密なコピーが圧縮された原信号から復号化プロセスにより再構成可能である技術を指す。不可逆圧縮は、原ビデオ情報が符号化中に完全には保たれず、復号化中に完全には回復可能でない符号化/復号化プロセスを指す。不可逆圧縮を使用する場合に、再構成された信号は、原信号と同じでない場合があるが、原信号と再構成された信号との間のひずみは、いくらかの情報損失にかかわらず、再構成された信号を、意図された用途にとって有用なものとするほど十分に小さくされる。ビデオの場合には、不可逆圧縮が多くの用途で広く用いられている。許容可能なひずみの量は用途に依存する。例えば、特定の消費者ビデオストリーミング用途のユーザは、映画又はテレビ放送用途のユーザよりも高いひずみを許容し得る。特定のコーディングアルゴリズムによって達成可能な圧縮比は、様々なひずみ許容を反映するよう選択又は調整することができ、許容可能なひずみが高いほど、一般的には、より高い損失及びより高い圧縮比をもたらすコーディングアルゴリズムを許す。
【0006】
ビデオエンコーダ及びデコーダは、例えば、動き補償、フーリエ変換、量子化、及びエントロピコーディングを含むいくつかの広いカテゴリ及びステップからの技術を利用することができる。
【0007】
ビデオコーデック技術には、イントラコーディングとして知られている技術が含まれ得る。イントラコーディングでは、サンプル値が、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照せずに表現される。いくつかのビデオコーデックにおいて、ピクチャは、サンプルのブロックに空間的に細分される。サンプルの全ブロックがイントラモードでコーディングされる場合に、そのピクチャはイントラピクチャと呼ばれることがある。イントラピクチャ及びそれらの派生物、例えば、独立デコーダリフレッシュピクチャ(independent decoder refresh pictures)は、デコーダの状態をリセットするために使用可能であり、従って、コーディングされたビットストリーム及びビデオセッションにおける最初のピクチャとして、又は静止画像として使用され得る。イントラ予測後のブロックのサンプルは、次いで、周波数領域への変換を受けることができ、そのようにして生成された変換係数は、エントロピコーディング前に量子化され得る。イントラ予測は、変換前領域でサンプル値を最小限にする技術を表すことができる。いくつかの場合に、変換後のDC値が小さければ小さいほど、かつ、AC係数が小さければ小さいほど、エントロピコーディング後にブロックを表すために所与の量子化ステップサイズで必要とされるビットはますます少ない。
【0008】
例えば、MPEG-2世代のコーディング技術から知られているもののような、従来のイントラコーディングは、イントラ予測を使用しない。しかし、いくつかのより新しいビデオ圧縮技術は、例えば、データの空間的に隣接しかつ復号化順序において先行するイントラ符号化又は復号化されているデータのブロックの符号化及び/又は復号化中に得られた周囲サンプルデータ及び/又はメタデータに基づいてブロックの符号化/復号化を試みる技術を含む。かような技術は、以降「イントラ予測」技術と呼ばれる。少なくともいくつかの場合に、イントラ予測は、再構成中の現在ピクチャからの参照データのみを使用し、他の参照ピクチャからは使用しない点に留意されたい。
【0009】
多種多様な形態のイントラ予測が存在し得る。かような技術の1つよりも多くが所与のビデオコーディング技術で利用可能である場合に、使用中の技術はイントラ予測モードと呼ばれることがある。1つ以上のイントラ予測モードが特定のコーデックで提供されてよい。特定の場合に、モードは、サブモードを有することができ、及び/又は様々なパラメータと関連付けられてもよく、モード/サブモード情報及びビデオのブロックのイントラコーディングパラメータは、独立してコーディングされ得るか、又はモードコードワードに集合的に含まれ得る。所与のモード、サブモード、及び/又はパラメータ組み合わせのためにどのコードワードを使用すべきは、イントラ予測を通じてコーディング効率利得に影響を及ぼし得るので、エントロピコーディング技術が、コードワードをビットストリームに変換するために使用され得る。
【0010】
特定のモードのイントラ予測が、H.264により導入され、H.265で洗練され、Joint Exploration Model(JEM)、Versatile Video Coding(VVC)、及びBenchmark Set(BMS)などのより新しいコーディング技術で更に洗練された。一般的に、イントラ予測の場合に、予測子ブロックは、利用可能になっている隣接サンプル値を用いて形成され得る。例えば、特定の方向及び/又はラインに沿った隣接サンプルの特定の組の利用可能な値は、予測子ブロック内にコピーされてよい。使用中の方向の参照は、ビットストリームの中にコーディングされ得るか、又はそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下には、H.265の33個のとり得るイントラ予測子方向(H.265で規定されている35個のイントラモードのうちの33個の角度モードに対応)で指定されている9つの予測子方向のサブセットが表されている。矢印が集まる点(101)は、予測中のサンプルに相当する。矢印は、101にあるサンプルを予測するために隣接サンプルが使用される方向を表す。例えば、矢印(102)は、サンプル(101)が、水平方向から45度の角度で右上にある1つ又は複数の隣接サンプルから予測される、ことを示す。同様に、矢印(103)は、サンプル(101)が、水平方向から22.5度の角度でサンプル(101)の左下にある1つ又は複数の隣接サンプルから予測される、ことを示す。
【0012】
依然として
図1Aを参照して、左上には、4×4個のサンプル(太破線によって示される。)の正方形ブロック(104)が表されている。正方形ブロック(104)は16個のサンプルを含み、各サンプルは、「S」、Y次元でのその位置(例えば、行インデックス)、及びX次元でのその位置(例えば、列インデックス)を用いてラベル付けされている。例えば、サンプルS21は、Y次元で(上から)2番目のサンプルかつX次元で(左から)1番目のサンプルである。同様に、サンプルS44は、Y及びXの両方の次元でブロック(104)内の4番目のサンプルである。ブロックはサイズが4×4サンプルであるということで、S44は右下にある。更には、類似した番号付け方式に従う例示的な参照サンプルが示されている。参照サンプルは、「R」と、ブロック(104)に対するそのY位置(例えば行インデックス)及びX位置(列インデックス)とを用いてラベル付けされている。H.264及びH.265の両方で、再構成中のブロックに隣接している予測サンプルが使用される。
【0013】
ブロック104のイントラピクチャ予測は、シグナリングされた予測方向に従って隣接サンプルから参照サンプル値をコピーすることによって、開始してよい。例えば、コーディングされたビデオビットストリームが、このブロック104について、矢印(102)の予測方向を示す、すなわち、サンプルが水平方向から45度の角度で右上にある1つ以上の予測サンプルから予測される、とのシグナリングを含む、とする。かような場合に、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。次いで、サンプルS44が参照サンプルR08から予測される。
【0014】
特定の場合に、複数の参照サンプルの値は、参照サンプルを計算するために、特に、方向が45度で等しく分割可能でない場合に、例えば、補間を通じて、結合されてもよい。
【0015】
とり得る方向の数は、ビデオコーディング技術が発展し続けるとともに増えている。H.264(2003年)では、例えば、9つの異なる方向がイントラ予測のために利用可能である。それは、H.265(2013年)では33個にまで増え、そして、JEM/VVC/BMSは、本開示の時点で、最大65個の方向をサポートすることができる。最も適切なイントラ予測方向を識別するのを助けるために実証研究が行われており、エントロピコーディングにおける特定の技術は、方向のための特定のビットペナルティを受け入れながら、少数のビットでそれらの最も適切な方向を符号化するために使用されている。更に、方向それ自体は時々、復号された隣接ブロックのイントラ予測で使用された隣接方向から予測され得る。
【0016】
図1Bは、時間とともに開発されている様々な符号化技術における予測方向の数の増加を説明するために、JEMによる65個のイントラ予測方向を表す概略図(180)を示す。
【0017】
コーディングされたビデオビットストリームにおける予測方向へのイントラ予測方向を表すビットのマッピングの方法は、ビデオコーディング技術ごとに異なる可能性があり、例えば、予測方向の単純な直接マッピングから、イントラ予測モードまで、コードワードまで、最確モードを含む複雑な適応スキーム、及び同様の技術まで及び得る。全ての場合で、しかしながら、特定の他の方向よりも統計的にビデオコンテンツで起こる可能性が低いイントラ予測のための特定の方向が存在し得る。ビデオ圧縮の目標は冗長性の低減であるということで、それらの可能性が低い方向は、上手く設計されたビデオコーディング技術では、よりありそうな方向よりも多いビット数によって表現される可能性がある。
【0018】
インターピクチャ予測又はインター予測は動き補償に基づくことがある。動き補償では、前に再構成されたピクチャ又はその部分(参照ピクチャ)からのサンプルデータが、動きベクトル(motion vector)(以降MV)によって示される方向で空間的にシフトされた後に、新たに再構成されたピクチャ又はピクチャ部分(例えば、ブロック)の予測のために使用され得る。いくつかの場合に、参照ピクチャは、現在再構成中のピクチャと同じであることができる。MVは2つの次元X及びYを有してよく、あるいは、3つの次元を有してもよく、3番目の次元は使用中の参照ピクチャの指示である(時間次元と同種)。
【0019】
いくつかのビデオ圧縮技術において、サンプルデータの特定のエリアに適用可能な現在のMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接しており復号化順で現在のMVに先行するサンプルデータの他のエリアに関係がある他のMVから、予測することができる。そうすることで、相関するMVで冗長性を取り除くことに依存することによって、MVをコーディングするために必要なデータの全体量を大幅に減らすことができ、それによって、圧縮効率を高める。例えば、カメラから得られた入力ビデオ信号(自然ビデオ(natural video)として知られる。)をコーディングする場合に、単一のMVが適用可能であるエリアよりも大きいエリアがビデオシーケンスにおいて同様の方向に移動するという統計的可能性があり、従って、いくつかの場合には、隣接するエリアのMVから導出された同様の動きベクトルを用いて予測可能であるということで、MV予測は有効に働くことができる。その結果、所与のエリアの実際のMVは、周囲のMVから予測されたMVと類似又は同じである。そのようなMVは次いで、エントロピコーディング後に、MVが隣接MVから予測されるのではなく直接コーディングされる場合に使用されることになるビット数よりも少ないビットで表され得る。いくつかの場合に、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であることができる。他の場合には、MV予測それ自体は、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、不可逆であり得る。
【0020】
様々なMV予測メカニズムがH.265/HEVC(ITU-T Rec. H265,“High Efficiency Video Coding”,2016年12月)で説明されている。H.265が規定している多くのMV予測メカニズムの中から、本明細書では、以降「空間マージ」(spatial merge)と呼ばれる技術が説明される。
【0021】
具体的に、
図2を参照すると、現在ブロック(201)は、空間的にシフトされている同じサイズの前のブロックから予測可能であると動き探索プロセス中にエンコーダによって認められたサンプルを有する。そのMVを直接にコーディングする代わりに、MVは、1つ以上の参照ピクチャと関連付けられたメタデータから、例えば、(復号化順序において)最も最近の参照ピクチャから、A0、A1及びB0、B1、B2(夫々、202乃至206)と表される5つの周囲サンプルのうちのいずれか1つと関連付けられたMVを用いて導出され得る。H.265では、MV予測は、隣接するブロックが使用するのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の態様は、ビデオ処理においてクロスコンポーネントレベルで精緻化された変換係数に対して変換を選択して起用するクロスコンポーネント方法及び装置を提供する。いくつかの例示的な実施で、ビデオ復号化方法が開示される。方法は、第1色成分の第1変換ブロック及び第2色成分の第2変換ブロックを含むビデオブロックのビットストリームを受信するステップであり、第1変換ブロック及び第2変換ブロックはコロケートされたブロックである、受信するステップと、ビデオブロックのビットストリームから第1色成分の第1変換ブロック及び第2色成分の前記第2変換ブロックを取得するステップと、第1変換ブロック内の全ての変換係数がゼロであることを示す第1フラグを決定するステップと、クロスコンポーネントレベル再構成(Cross Component Level Reconstruction,CCLR)が第1変換ブロックに適用されることを示す第2フラグを決定するステップと、CCLRが第1変換ブロックに適用されるとの決定に応答して、精緻化された第1変換ブロックを取得するよう、1つ以上のオフセット値を加えることによって第1変換ブロック内の変換係数の1つ以上を精緻化するステップであり、1つ以上のオフセット値は、第1変換ブロック内の変換係数の1つ以上とコロケートされている第2変換ブロック内の変換係数に基づいて導出される、精緻化するステップと、精緻化された第1変換ブロックの目標変換カーネルを決定するステップと、目標ブロックを取得するよう、目標変換カーネルに基づいて、精緻化された第1変換ブロックに対して逆変換を実行するステップと、少なくとも目標ブロックに基づいてビデオブロックの第1色成分を再構成するステップとを含んでよい。
【0023】
本開示の態様は、上記の方法の実施のいずれかを実行するよう構成された回路構成を含むビデオ符号化若しくは復号化デバイス又は装置も提供する。
【0024】
本開示の態様は、ビデオ復号化及び/又は符号化のためのコンピュータによって実行される場合に、コンピュータに、ビデオ復号化及び/又は符号化の方法を実行させる命令を記憶している非一時的なコンピュータ可読媒体も提供する。
【0025】
開示されている対象の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
【図面の簡単な説明】
【0026】
【
図1A】イントラ予測方向モードの例示的なサブセットの模式図を示す。
【
図1B】例示的なイントラ予測方向の説明図を示す。
【
図2】一例における動きベクトル予測のための現在のブロック及びその周囲空間マージ候補の模式図を示す。
【
図3】例となる実施形態に係る通信システム(300)の略ブロック図の模式図を示す。
【
図4】例となる実施形態に係る通信システム(400)の略ブロック図の模式図を示す。
【
図5】例となる実施形態に係るデコーダの略ブロック図の模式図を示す。
【
図6】例となる実施形態に係るエンコーダの略ブロック図の模式図を示す。
【
図7】他の例となる実施形態に係るビデオエンコーダのブロック図を示す。
【
図8】他の例となる実施形態に係るビデオデコーダのブロック図を示す。
【
図9】本開示の例となる実施形態に係るコーディングブロックパーティショニングのスキームを示す。
【
図10】本開示の例となる実施形態に係るコーディングブロックパーティショニングの他のスキームを示す。
【
図11】本開示の例となる実施形態に係るコーディングブロックパーティショニングの他のスキームを示す。
【
図12】本開示の例となる実施形態に係るコーディングブロックパーティショニングの他のスキームを示す。
【
図13】本開示の例となる実施形態に係る、複数の変換ブロックへのコーディングブロックの分割のためのスキーム及び変換ブロックのコーディング順序を示す。
【
図14】本開示の例となる実施形態に係る、複数の変換ブロックへのコーディングブロックの分割のための他のスキーム及び変換ブロックのコーディング順序を示す。
【
図15】本開示の例となる実施形態に係る、複数の変換ブロックへのコーディングブロックの分割のための他のスキームを示す。
【
図16】本開示の例となる実施形態に係るプレーナ回転変換を表す。
【
図17】本開示の例となる実施形態に係る様々なDCT-2、DCT-4部分バタフライルックアップテーブルを示す。
【
図18】本開示の例となる実施形態に係るDST-7部分バタフライルックアップテーブルを示す。
【
図19】本開示の例となる実施形態に係る、例示的なライングラフ変換(LGT)を示す。
【
図20】本開示の例となる実施形態に係る方法のフローチャートを示す。
【
図21】本開示の例となる実施形態に係るコンピュータシステムの模式図を示す。
【発明を実施するための形態】
【0027】
図3は、本開示の実施形態に係る通信システム(300)の略ブロック図を表す。通信システム(300)は、例えば、ネットワーク(350)を介して、互いと通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続されている端末デバイス(310)及び(320)の第1対を含む。
図3の例では、端末デバイス(310)及び(320)の第1対は、データの一方向伝送を実行し得る。例えば、端末デバイス(310)は、ネットワーク(350)を介した他の端末デバイス(320)への伝送のために、(例えば、端末デバイス(310)によって捕捉されるビデオピクチャのストリームの)ビデオデータをコーディングしてよい。符号化されたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形で伝送可能である。端末デバイス(320)は、コーディングされたビデオデータをネットワーク(350)から受信し、コーディングされたビデオデータを復号してビデオピクチャを回復し、回復されたビデオデータに従ってビデオピクチャを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて実施されることがある。
【0028】
他の例では、通信システム(300)は、例えば、ビデオ会議用途の間に、実施されることがあるコーディングされたビデオデータの双方向伝送を実行する端末デバイス(330)及び(340)の第2対を含む。データの双方向伝送のために、例において、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した端末デバイス(330)及び(340)のうちの他方の端末デバイスへの伝送のために、(例えば、その端末デバイスによって捕捉されるビデオピクチャのストリームの)ビデオデータをコーディングしてよい。端末デバイス(330)及び(340)の各端末デバイスはまた、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって送信されたコーディングされたビデオデータを受信してよく、コーディングされたビデオデータを復号してビデオピクチャを回復してよく、回復されたビデオデータに従って、アクセス可能な表示デバイスでビデオピクチャを表示してよい。
【0029】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして実施され得るが、本開示の基礎原理の適用可能性はそのように限定されなくてもよい。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、ウェアラブルコンピュータ、専用のビデオ会議装置、及び/又は同様のものにおいて実施され得る。ネットワーク(350)は、例えば、ワイヤライン(有線)及び/又はワイヤレス通信ネットワークを含む、コーディングされたビデオデータを端末デバイス(310)、(320)、(330)及び(340)の間で伝達する任意の数又はタイプのネットワークに相当する。通信ネットワーク(350)は、回路交換、パケット交換、及び/又は他のタイプのチャネルにおいてデータを交換してもよい。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットがある。本議論のために、ネットワーク(350)のアーキテクチャ及びトポロジは、本明細書において明示的に説明されない限りは、本開示の動作に無関係であってよい。
【0030】
図4は、開示されている対象の応用例として、ビデオストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTV放送と、ゲームと、仮想現実と、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であり得る。
【0031】
ビデオストリーミングシステムは、圧縮されていないビデオピクチャ又は画像のストリーム(402)を生成するビデオソース(401)、例えば、デジタルカメラ、を含むことができるビデオ捕捉サブシステム(413)を含んでよい。例において、ビデオピクチャのストリーム(402)は、ビデオソース(401)のデジタルカメラによって記録されるサンプルを含む。ビデオピクチャのストリーム(402)は、符号化されたビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較して高いデータボリュームを強調するために太線で表されており、ビデオソース(401)へ結合されたビデオエンコーダ(403)を含む電子機器(420)によって処理され得る。ビデオエンコーダ(403)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能にする又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。符号化されたビデオデータ(404)(又は符号化されたビデオビットストリーム(404))は、圧縮されていないビデオピクチャのストリーム(402)と比較してより低いデータボリュームを強調するために細線で表されており、将来の使用のために、又はビデオデバイスを直接ダウンストリームするために(図示せず。)、ストリーミングサーバ(405)に記憶され得る。
図4のクライアントサブシステム(406)及び(408)などの1つ以上のストリーミングクライアントサブシステムは、符号化されたビデオデータ(404)のコピー(407)及び(409)を読み出すためにストリーミングサーバ(405)にアクセスすることができる。クライアントサブシステム(406)は、例えば、電子機器(430)において、ビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化されたビデオデータの入来するコピー(407)を復号し、圧縮されておらずディスプレイ(412)(例えば、表示スクリーン)又は他のレンダリングデバイス(図示せず。)でレンダリング可能なビデオピクチャの送出ストリーム(411)を生成する。ビデオデコーダ(410)は、本開示で記載されている様々な機能の一部又は全てを実行するよう構成されてよい。いくつかのストリーミングシステムにおいて、符号化されたビデオデータ(404)、(407)、及び(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従って符号化され得る。そのような規格の例には、ITU-T推奨H.265がある。例において、開発中のビデオコーディング規格は、Versatile Video Coding(VVC)として俗に知られている。開示されている対象は、VVC及び他のビデオコーディング規格に関連して使用されてもよい。
【0032】
電子機器(420)及び(430)は、他のコンポーネント(図示せず。)を含むことができる。例えば、電子機器(420)は、ビデオデコーダ(図示せず。)を含むことができ、電子機器(430)は、ビデオエンコーダ(図示せず。)を同様に含むことができる。
【0033】
図5は、以下の本開示の任意の実施形態に係るビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子機器(530)に含まれ得る。電子機器(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例のビデオデコーダ(410)の代わりに使用され得る。
【0034】
受信器(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上のコーディングされたビデオシーケンスを受信してよい。同じ又は他の実施形態では、一度に1つのコーディングされたビデオシーケンスが復号されてよく、このとき、夫々のコーディングされたビデオシーケンスの復号化は、他のコーディングされたビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレーム又は画像と関連付けられてもよい。コーディングされたビデオシーケンスは、チャネル(501)から受信されてよく、チャネルは、符号化されたビデオデータを記憶している記憶デバイス、又は符号化されたビデオデータを伝送するストリーミングソースへのハードウェア/ソフトウェアリンクであってよい。受信器(531)は、符号化されたビデオデータを他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリームとともに受信してもよく、それらは、それらの各々の処理回路(図示せず。)へ転送されてよい。受信器(531)は、コーディングされたビデオシーケンスを他のデータから分離してよい。ネットワークジッタに対抗するために、バッファメモリ(515)が受信器(531)とエントロピデコーダ/パーサ(520)(以降「パーサ(520)」)との間に配置されてよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の部分として実装されてもよい。他の用途では、それは、ビデオデコーダ(510)の外で分離することができる(図示せず。)。更に他の用途では、例えば、ネットワークジッタに対抗するために、ビデオデコーダ(510)の外にバッファメモリ(図示せず。)があることができ、また、例えば、再生タイミングを操作するために、ビデオデコーダ(510)の中にもう1つの追加バッファメモリ(515)が存在してもよい。受信器(531)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファメモリ(515)は必要とされなくてもよく、あるいは、小さいことが可能である。インターネットなどのベストエフォートのパケットネットワークでの使用のために、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的に大きい可能性ある。そのようなバッファメモリは、適応サイズで実施されてよく、ビデオデコーダ(510)の外のオペレーティングシステム又は同様の要素(図示せず。)で少なくとも部分的に実装されてよい。
【0035】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでよい。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、電子機器(530)の必須部分であってもなくてもよいが、
図5に示されたように、電子機器(530)へ結合することができるディスプレイ(512)(例えば、表示スクリーン)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、補助強化情報(Supplemental Enhancement Information,SEI)メッセージ又はビデオユーザビリティ情報(Video Usability Information,VUI)パラメータセットフラグメント(図示せず。)の形をとってよい。パーサ(520)は、パーサ(520)によって受信されるコーディングされたビデオシーケンスをパース/エントロピ復号してよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、サブグループに対応する少なくとも1つのパラメータに基づいて抽出し得る。サブグループは、グループ・オブ・ピクチャ(Group of Picture,GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Unit,CU)、ブロック、変換ユニット(Transform Unit,TU)、予測ユニット(Prediction Unit,PU)、などを含むことができる。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化器パラメータ値、動きベクトル、などの情報も抽出し得る。
【0036】
パーサ(520)は、シンボル(521)を生成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピ復号化/パーシング動作を実行してよい。
【0037】
シンボル(521)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多数の異なる処理又は機能ユニットを有することができる。関与するユニット、及びそれらが関与する方法は、コーディングされたビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数の処理又は機能ユニットとの間のそのようなサブグループ制御情報のフローは、簡単のために表されていない。
【0038】
既に述べられた機能ブロックを超えて、ビデオデコーダ(510)は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらの機能ユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象の様々な機能を明りょうに説明することを目的として、機能ユニットへの概念的細分が以下本開示において採用される。
【0039】
第1ユニットは、スケーラ/逆変換ユニット(551)を含んでよい。スケーラ/逆変換ユニット(551)は、パーサ(520)からシンボル(521)として、量子化された変換係数とともに、どのような逆変換を使用すべきか、ブロックサイズ、量子化係数/パラメータ、量子化スケーリングマトリクスなどを示す情報を含む制御情報を受信してよい。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)へ入力することができるサンプル値を含むブロックを出力することができる。
【0040】
いくつかの場合に、スケーラ/逆変換器(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在ピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。かような予測情報は、イントラピクチャ予測ユニット(552)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(552)は、既に再構成されており現在ピクチャバッファ(558)に記憶されている周囲ブロック情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成してよい。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(555)は、いくつかの実施において、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって供給される出力サンプル情報に加えてよい。
【0041】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、そして潜在的に、動き補償されたブロックに関係することができる。かような場合に、動き補償予測ユニット(553)は、インターピクチャ予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関係するシンボル(521)に従って、フェッチされたサンプルを動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(ユニット551の出力は、残差サンプル又は残差信号と呼ばれてもよい。)に加えられ得る。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X成分及びY成分(シフト)並びに参照ピクチャコンポーネント(時間)を有することができるシンボル(521)の形で動き補償予測ユニット(553)が利用することができる動きベクトルによって、制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるサンプル値の補間を含んでもよく、また、動きベクトル予測メカニズムなどと関連付けられてもよい。
【0042】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる。)に含まれており、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(復号化順序において)前の部分の復号化中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することもできる。ループフィルタのいくつかのタイプは、以下で更に詳細に記載されるように、様々な順序でループフィルタユニット556の部分として含まれてよい。
【0043】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)へ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(557)に記憶され得るサンプルストリームであることができる。
【0044】
特定のコーディングされたピクチャは、完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用され得る。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の部分になることができ、未使用の現在ピクチャバッファが、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
【0045】
ビデオデコーダ(510)は、ITU-T推奨H.265などの標準規格で採用されている所定のビデオ圧縮技術に従って復号化動作を実行してよい。コーディングされたビデオシーケンスは、そのコーディングされたビデオシーケンスが、ビデオ圧縮技術又は標準規格のシンタックス及びビデオ圧縮技術又は標準規格において文書化されているプロファイルの両方に従うという意味で、使用中のビデオ圧縮技術又は標準規格によって規定されたシンタックスに従い得る。具体的には、プロファイルは、ビデオ圧縮技術又は標準規格で利用可能な全てのツールから、そのプロファイルの下での使用のために利用可能な唯一のツールとして、特定のツールを選択することができる。規格の順守のために、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は標準規格のレベルによって定義された境界内にあることができる。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定された制限は、いくつかの場合に、仮想参照デコーダ(Hypothetical Reference Decoder,HRD)仕様と、コーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータとを通じて、更に制限され得る。
【0046】
いくつかの例示的な実施形態において、受信器(531)は、符号化されたビデオとともに、追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの部分として含まれてもよい。追加のデータは、ビデオデコーダ(510)によって、データを適切に復号するために及び/又は原ビデオデータをより正確に再構成するために使用されてよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
【0047】
図6は、本開示の例示的な実施形態に係るビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子機器(620)に含まれてよい。電子機器(620)は、送信器(640)(例えば、送信回路)を更に含んでもよい。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用され得る。
【0048】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(601)(
図6の例では電子機器(620)の部分ではない。)からビデオサンプルを受信してよい。他の例では、ビデオソース(601)は、電子機器(620)の部分として実施されてもよい。
【0049】
ビデオソース(601)は、任意の適切なビットデプス(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(601)は、予め準備されたビデオを記憶することができる記憶デバイスであってよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャ又は画像として供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
【0050】
いくつかの例示的な実施形態に従って、ビデオエンコーダ(603)は、実時間において、又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(643)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(650)の一機能を構成する。いくつかの実施形態において、コントローラ(650)は、以下で記載されるような他の機能ユニットへ機能的に結合されてそれらを制御してもよい。結合は簡単のために表されていない。コントローラ(650)によってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関係する他の適切な機能を有するよう構成され得る。
【0051】
いくつかの例示的な実施形態において、ビデオエンコーダ(603)は、コーディングループで動作するよう構成されてよい。過度に単純化された記載として、例において、コーディングループは、ソースコーダ(630)(例えば、コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することに関与する。)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(シンボルとコーディングされたビデオビットストリームとの間の如何なる圧縮も、開示されている対象で考えられているビデオ圧縮技術において可逆であることができるということで、)たとえ埋め込まれたデコーダ(633)がエントロピコーディングなしでソースコーダ(630)によってコーディングされたビデオストリームを処理するとしても、(遠隔の)デコーダが生成することになるのと同様の方法でサンプルデータを生成するようにシンボルを再構成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)へ入力される。シンボルストリームの復号化は、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダが復号化中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、コーディング品質を改善するために使用される。
【0052】
“ローカル”のデコーダ(633)の動作は、
図5とともに詳細に既に上述されている、ビデオデコーダ(510)などの“遠隔”のデコーダと同じであることができる。一時的に
図5も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(645)及びパーサ(520)によるコーディングされたビデオシーケンスへのシンボルの符号化/復号化が可逆であることができるということで、バッファメモリ(515)及びパーサ(520)を含むビデオデコーダ(510)のエントロピ復号化部分は、エンコーダ内のローカルのデコーダ(633)において完全には実装されなくてもよい。
【0053】
この時点で観察できることは、デコーダにのみ存在し得るパーシング/エントロピ復号化を除く如何なるデコーダ技術も、必然的に、対応するエンコーダにおいて略同じ機能形態で存在する必要があり得る、ということである。この理由により、開示されている対象は、折に触れて、エンコーダの復号化部分に関連するデコーダ動作に焦点を当てることがある。よって、エンコーダ技術の説明は、それらが、包括的に記載されるデコーダ技術の逆であるということで、省略され得る。特定の範囲又は側面においてのみ、エンコーダのより詳細な説明が以下で与えられる。
【0054】
動作中、いくつかの実施例において、ソースコーダ(630)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定された、ビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して、予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(632)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の色チャネルの差(又は残差)をコーディングする。用語「残差」(residue)又はその形容詞「残差の」(residual)は交換可能に使用されることがある。
【0055】
ローカルのビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータを復号してよい。コーディングエンジン(632)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(
図6には図示せず。)で復号され得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号化プロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納されるようにしてよい。このように、ビデオエンコーダ(603)は、(伝送エラーなしで)遠端(遠隔)のビデオデコーダによって取得されることになる再構成された参照ピクチャと共通の内容を有している再構成された参照ピクチャのコピーをローカルで記憶し得る。
【0056】
予測器(635)は、コーディングエンジン(632)のための予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(635)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(634)から探してよい。予測器(635)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
【0057】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(630)のコーディング動作を管理してよい。
【0058】
上記の全ての機能ユニットの出力は、エントロピコーダ(645)においてエントロピコーディングを受けてよい。エントロピコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルの可逆圧縮によって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
【0059】
送信器(640)は、エントロピコーダ(645)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(660)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(660)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)とマージしてもよい。
【0060】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してよい。コーディング中、コントローラ(650)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを夫々のコーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、次のピクチャタイプのうちの1つとして割り当てられてよい。
【0061】
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずに符号化及び復号化され得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴を知っている。
【0062】
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測により符号化及び復号化され得るピクチャであってよい。
【0063】
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測により符号化及び復号化され得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
【0064】
ソースピクチャは、一般に、複数のサンプルコーディングブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、‘ブロック’の各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。ソースピクチャ又は中間の処理されたピクチャは、他の目的のために他のタイプのブロックに細分されても良い。コーディングブロック及び他のタイプのブロックの分割は、以下で更に詳細に記載されるように、同じ方法に従っても従わなくてもよい。
【0065】
ビデオエンコーダ(603)は、ITU-T推奨H.265のような所定のビデオコーディング技術又は標準規格に従ってコーディング動作を実行してよい。その動作中に、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。それに応じて、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準規格によって定められているシンタックスに従い得る。
【0066】
いくつかの例示的な実施形態において、送信器(640)は、符号化されたビデオとともに追加のデータを送信してもよい。ソースコーダ(630)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント、などを有してよい。
【0067】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてよい。イントラピクチャ予測(しばしばイントラ予測と省略される。)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の時間的な又は他の相関を利用する。例えば、現在ピクチャ(current picture)と呼ばれる、符号化/復号化中の特定のピクチャは、ブロックにパーティション化されてもよい。現在ピクチャ内のあるブロックは、ビデオの前にコーディングされて依然としてバッファリングされている参照ピクチャ内の参照ブロックと類似している場合に、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することができる。
【0068】
いくつかの例示的な実施形態において、双予測技術がインターピクチャ予測のために使用され得る。かような双予測技術に従って、2つの参照ピクチャ、例えば、復号化順でビデオ内の現在ピクチャに両方とも先行している(しかし、表示順序では、夫々、過去又は将来にあってよい。)第1参照ピクチャ及び第2参照ピクチャが、使用される。現在ピクチャ内のあるブロックは、第1参照ピクチャ内の第1参照ブロックを指し示す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指し示す第2動きベクトルとによって、コーディングされ得る。そのブロックは、第1参照ブロック及び第2参照ブロックの組み合わせによって一緒に予測可能である。
【0069】
更に、マージモード技術が、コーディング効率を改善するためにインターピクチャ予測において使用されてもよい。
【0070】
本開示のいくつかの例示的な実施形態に従って、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロックの単位で実行される。例えば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(Coding Tree Unit,CTU)にパーティション化され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルといった同じサイズを有してもよい。一般に、CTUは、3つの並列なコーディングツリーブロック(Coding Tree Block,CTB)、つまり、1つのルーマCTB及び2つのクロマCTBを含み得る。各CTUは、1つ又は複数のコーディングユニット(Coding Unit,CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCUに分割可能である。32×32ブロックの1つ以上は、更に、16×16ピクセルの4つのCUに分割されてもよい。いくつかの例示的な実施形態において、各CUは、インター予測タイプ又はイントラ予測タイプなどの様々な予測タイプの中で、当該CUのための予測タイプを決定するよう符号化中に解析されてもよい。CUは、時間及び/又は空間予測可能性に応じて1つ以上の予測ユニット(Prediction Unit,PU)に分割されてもよい。一般に、各PUは、1つのルーマ予測ブロック(Prediction Block,PB)及び2つのクロマPBを含む。実施形態において、コーディング(符号化/復号化)における予測動作は、予測ブロックの単位で実行される。PU(又は異なる色チャネルのPB)へのCUの分割は、様々な空間パターンで実行されてよい。ルーマ又はクロマPBは、例えば、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル、などのような、サンプルの値(例えば、ルーマ値)のマトリクスを含んでもよい。
【0071】
図7は、開示の他の例示的な実施形態に係るビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャの連続に含まれる現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャへと処理ブロックを符号化するよう構成される。例となるビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用されてもよい。
【0072】
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどのような処理ブロックのためのサンプル値の行列を受け取る。ビデオエンコーダ(703)は、次いで、例えば、レートひずみ最適化(rate-distortion optimization)(RDO)を用いて、処理ブロックがイントラモード、インターモード、又は双予測モードにより最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされると決定される場合には、ビデオエンコーダ(703)は、コーディングされたピクチャへと処理ブロックを符号化するためにイントラ予測技術を使用してよく、処理ブロックがインターモード又は双予測モードでコーディングされると決定される場合には、ビデオエンコーダ(703)は、コーディングされたピクチャへと処理ブロックを符号化するためにインター予測又は双予測技術を夫々使用してよい。いくつかの例示的な実施形態において、マージモードは、予測子の外にあるコーディングされた動きベクトル成分の恩恵を受けずに1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測のサブモードとして使用されてよい。いくつかの他の例示的な実施形態においては、対象ブロックに適用可能な動きベクトル成分が存在する場合がある。それに応じて、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールなどの、
図7には明示的に示されていないコンポーネントを含んでもよい。
【0073】
図7の例では、ビデオエンコーダ(703)は、
図7において例示的な配置で示されるように結合されているインターエンコーダ(730)、イントラエンコーダ(722)、残差計算部(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、及びエントロピエンコーダ(725)を含む。
【0074】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、標準所における前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術に従う冗長情報の記述、動きベクトル、マージモード情報)を生成し、何らかの適切な技術を用いてインター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するよう構成される。いくつかの例において、参照ピクチャは、
図6の例示的なエンコーダ(620)に埋め込まれている復号化ユニット(633)(以下で更に詳細に記載されるように、
図7の残差デコーダ728として示される。)を用いて符号化されたビデオ情報に基づいて復号されている復号された参照ピクチャである。
【0075】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受け取り、同じピクチャ内で既にコーディングされたブロックとそのブロックを比較し、変換後の量子化された係数を生成するよう、いくつかの場合には、更に、イントラ予測情報(例えば、1つ以上のイントラ符号化技術に従うイントラ予測方向情報)を生成するよう構成される。イントラエンコーダ(722)は、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を計算してもよい。
【0076】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するよう構成されてよい。例において、汎用コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいて制御信号をスイッチ(726)へ供給する。例えば、予測モードがイントラモードである場合には、汎用コントローラ(721)は、残差計算部(723)による使用のためにイントラモード結果を選択するようスイッチ(726)を制御し、そして、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピエンコーダ(725)を制御する。ブロックの予測モードがインターモードである場合には、汎用コントローラ(721)は、残差計算部(723)による使用のためにインター予測結果を選択するようスイッチ(726)を制御し、そして、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピエンコーダ(725)を制御する。
【0077】
残差計算部(723)は、受け取られたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択されたブロックの予測結果との間の差(残差データ)を計算するよう構成される。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するよう構成されてよい。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するよう構成されてもよい。次いで、変換係数は、量子化された変換係数を取得するよう量子化処理を受ける。様々な例示的な実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するよう構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用され得る。例えば、インターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号ブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するよう適切に処理され、復号されたピクチャは、メモリ回路(図示せず。)にバッファリングされ、参照ピクチャとして使用され得る。
【0078】
エントロピエンコーダ(725)は、符号化されたブロックを含めるようにビットストリームをフォーマット化し、エントロピコーディングを実行するよう構成されてよい。エントロピエンコーダ(725)は、様々な情報をビットストリームに含めるよう構成される。例えば、エントロピエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報をビットストリームに含めるよう構成されてよい。インターモード又は双予測モードのどちらか一方のマージサブモードでブロックをコーディングする場合に、残差情報は存在しなくてもよい。
【0079】
図8は、開示の他の実施形態に従う例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャを受け取り、コーディングされたピクチャを復号して、再構成されたピクチャを生成するよう構成される。例において、ビデオデコーダ(810)は、
図4の例のビデオデコーダ(410)の代わりに使用されてもよい。
【0080】
図8の例では、ビデオデコーダ(810)は、
図8において例示的な配置で示されるように結合されているエントロピデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)を含む。
【0081】
エントロピデコーダ(871)は、コーディングされたピクチャから、シンタックス要素を表す特定のシンボルを再構成するよう構成され得、それらから、コーディングされたピクチャは構成されている。かようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は他のサブモード)、イントラデコーダ(872)又はインターデコーダ(880)による予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば、量子化された変換係数の形をとる残差情報、などを含むことができる。例において、予測モードがインター又は双予測モードである場合には、インター予測情報がインターデコーダ(880)へ供給され、予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(872)へ供給される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)へ供給される。
【0082】
インターデコーダ(880)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するよう構成されてよい。
【0083】
イントラデコーダ(872)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するよう構成されてよい。
【0084】
残差デコーダ(873)は、逆量子化された変換係数を取り出すように逆量子化を実行し、逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するよう構成されてよい。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるための)特定の制御情報を利用してもよく、その情報は、エントロピデコーダ(871)によって供給されてよい(これは低容量の制御情報のみであるということで、データパスは示されない。)。
【0085】
再構成モジュール(874)は、残差デコーダ(873)によって出力された残差と、(場合によっては、インター又はイントラ予測モジュールによって出力された)予測結果とを空間領域において組み合わせて、再構成されたビデオの部分として再構成されたピクチャの部分を形成する再構成されたブロックを形成するよう構成されてよい。なお、デブロッキング動作などのような他の適切な動作が、視覚品質を改善するために実行されてもよい。
【0086】
なお、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、如何なる適切な技術によっても実装可能である。いくつかの例示的な実施形態において、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、1つ以上の集積回路を用いて実装可能である。他の実施形態では、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装可能である。
【0087】
コーディングブロックパーティショニングを参照すると、いくつかの実施例において、所定のパターンが適用されてよい。
図9に示されるように、第1の事前定義されたレベル(例えば、64×64ブロックレベル)から開始して、第2の事前定義されたレベル(例えば、4×4レベル)まで下がる、例となる4通りのパーティションツリーが用いられてよい。例えば、ベースブロックは、902、904、906、及び908で示されている4つのパーティショニングオプションに従ってよく、Rと表記されているパーティションは、
図9に示されているのと同じパーティションツリーが、最低レベル(例えば、4×4レベル)まで、より低いスケールで繰り返され得る点で、再帰的パーティションが可能である。いくつかの実施において、追加の制限が、
図9のパーティショニングスキームに適用されてもよい。
図9の実施では、長方形パーティション(例えば、1:2/2:1長方形パーティション)が許され得るが、それらは再帰的であることができない場合があり、一方、正方形パーティショニングは再帰的であることができる。再帰により
図9に従うパーティショニングは、必要に応じて、コーディングブロックの最終的な組を生成する。そのようなスキームは、色チャネルの1つ以上に適用され得る。
【0088】
図10は、再帰的パーティショニングがパーティショニングツリーを形成することを可能にする他の例示的な事前定義されたパーティショニングパターンを示す。
図10に示されるように、例となる10通りのパーティショニング構造又はパターンが事前定義されてよい。根ブロックは、事前定義されたレベルで(例えば、128×128レベル又は64×64レベルから)開始してよい。
図10の例示的なパーティショニング構造は、様々な2:1/1:2及び4:1/1:4長方形パーティションを含む。
図10の2段目で1002、1004、1006、及び1008で示されている、3つのサブパーティションを含むパーティションタイプは、「T-type」パーティションと呼ばれることがある。「T-type」パーティション1002、1004、1006及び1008はLeft T-Type、Top T-Type、Right T-Type、及びBottom T-Typeと呼ばれ得る。いくつかの実施において、
図10の長方形パーティションのどれもこれ以上細分され得ない。コーディングツリー深さは、根ノード又は根ブロックからの分割深さを示すよう更に定義されてもよい。例えば、根ノード又は根ブロック、例えば、128×128ブロックのコーディングツリー深さは、0にセットされてよく、根ブロックが
図10に従って1度更に分割された後、コーディングツリー深さは1だけ増える。いくつかの実施において、1010の全正方形パーティションのみが、
図10のパターンに従うパーティショニングツリーの次のレベルへの再帰的パーティショニングを許され得る。換言すれば、再帰的パーティショニングは、パターン1002、1004、1006及び1008による正方形パーティションに対して許され得ない。再帰により
図10に従うパーティショニングは、必要に応じて、コーディングブロックの最終的な組を生成する。そのようなスキームは、色チャネルの1つ以上に適用されてよい。
【0089】
上記のパーティショニングプロシージャ又は他のプロシージャのいずれかに従ってベースブロックを分割又はパーティション化した後、パーティション又はコーディングブロックの最終的な組が取得され得る。それらのパーティションの夫々は、様々なパーティショニングレベルのうちの1つにあってよい。夫々のパーティションはコーディングブロック(CB)と呼ばれ得る。上記の様々なパーティショニングの実施例について、結果として得られた各CBは、許されているサイズ及びパーティショニングレベルのいずれかを有し得る。それらは、いくつかの基本的な符号化/復号化決定を行うことができ、符号化/復号化パラメータを最適化し、決定し、符号化されたビデオビットストリームでシグナリングすることができるユニットを形成し得るということで、コーディングブロックと呼ばれる。最終的なパーティションの中で最も高いレベルは、コーディングブロックパーティショニングツリーの深さを表す。コーディングブロックは、ルーマコーディングブロック又はクロマコーディングブロックであってよい。
【0090】
いくつかの他の実施例では、4分木構造が、ベースルーマ及びクロマブロックを再帰的にコーディングブロックに分割するために使用されてよい。かような分割構造はコーディングツリーユニット(CTU)と呼ばれることがあり、CTUは、ベースCTUの様々な局所特性にパーティショニングを適応させるために4分木構造を使用することによってコーディングユニット(CU)に分割される。このような実施において、サイズがピクチャ境界に合うまでブロックが4分木分割を続けるように、暗黙的な4分木分割がピクチャ境界では実行されてよい。CUという用語は、ルーマ及びクロマコーディングブロック(CB)のユニットを集合的に指すために使用される。
【0091】
いくつかの実施において、CBは更にパーティション化されてもよい。例えば、CBは、符号化プロセス及び復号化プロセス中のイントラ又はインターフレーム予測のために複数の予測ブロック(PB)に更にパーティション化されてもよい。換言すれば、CBは異なるサブパーティションに更に分割されてよく、このとき、個別の予測決定/構成が行われてもよい。並行して、CBは、ビデオデータの変換又は逆変換が実行されるレベルを線引きするために複数の変換ブロック(TB)に更にパーティション化されてもよい。PB及びTBへのCBのパーティショニングスキームは同じであってもなくてもよい。例えば、各パーティショニングスキームは、例えば、ビデオデータの様々な特性に基づいて、それ自体のプロシージャを用いて実行されてよい。PB及びTBパーティショニングスキームは、いくつかの実施例においては独立であってよい。PB及びTBパーティショニングスキーム及び境界は、いくつかの実施においては相関してもよい。いくつかの実施において、例えば、TBは、PBパーティション後にパーティション化されてよく、特に、各PBは、コーディングブロックのパーティショニングに続いて決定された後、次いで1つ以上のTBに更にパーティション化されてもよい。例えば、いくつかの実施において、PBは1つ、2つ、4つ、又は他の数のTBに分割されてよい。
【0092】
いくつかの実施において、コーディングブロックへの、更には予測ブロック及び/又は変換ブロックへのベースブロックのパーティショニングのために、ルーマチャネル及びクロマチャネルは異なるように扱われてもよい。例えば、いくつかの実施において、予測ブロック及び/又は変換ブロックへのコーディングブロックのパーティショニングはルーマチャネルに対して許可されてよく、一方、予測ブロック及び/変換ブロックへのコーディングブロックのかようなパーティショニングはクロマチャネルに対して許可されなくてもよい。かような実施において、ルーマブロックの変換及び/又は予測は、よって、コーディングブロックレベルでしか実行されなくてもよい。他の例として、ルーマチャネル及びクロマチャネルの最小変換ブロックサイズは異なってもよく、例えば、ルーマチャネルのコーディングブロックは、クロマチャネルよりも小さい変換及び/又は予測ブロックへパーティション化されることを許可されてよい。更なる他の例として、変換ブロック及び/又は予測ブロックへのコーディングブロックのパーティショニングの最大深さは、ルーマチャネルとクロマチャネルとの間で異なってもよく、例えば、ルーマチャネルのコーディングブロックは、クロマチャネルよりも深い変換及び/又は予測ブロックへパーティション化されることを許可されてよい。具体例として、ルーマコーディングブロックは、最大2レベルまで下がる再帰的パーティションによって繰り返すことができる複数のサイズの変換ブロックにパーティション化されてもよく、正方形、2:1/1:2及び4:1/1:4などの変換ブロック形状並びに4×4から64×64までの変換ブロックサイズが許可されてよい。クロマブロックの場合には、しかしながら、ルーマブロックに対して指定された最大限の変換ブロックが許可されてもよい。
【0093】
PBへのコーディングブロックのパーティショニングのためのいくつかの実施例において、PBパーティショニングの深さ、形状、及び/又は他の特性は、PBがイントラ又はインターコーディングされるかどうかに依存してよい。
【0094】
変換ブロックへのコーディングブロック(又は予測ブロック)のパーティショニングは、4分木分割及び事前定義されたパターン分割を含むが限られない様々な例示的なスキームにおいて、再帰的又は非再帰的に、コーディングブロック又は予測ブロックの境界での変換ブロックを更に考慮して、実施されてもよい。一般に、結果として得られた変換ブロックは異なる分割レベルにあってよく、同じサイズでなくてもよく、形状が正方形である必要がなくてもよい(例えば、それらは、何らかの許可されたサイズ及びアスペクト比で長方形であることができる。)。
【0095】
いくつかの実施において、コーディングパーティションツリースキーム又は構造が使用されてもよい。ルーマチャネル及びクロマチャネルに使用されるコーディングパーティションツリースキームは、同じである必要はない。換言すれば、ルーマチャネル及びクロマチャネルは、別個のコーディングツリー構造を有してもよい。更に、ルーマチャネル及びクロマチャネルが同じ又は異なるコーディングパーティションツリー構造を使用するかどうかと、使用されるべき実際のコーディングパーティションツリー構造とは、コーディングされているスライスがP、B又はIスライスであるかどうかに依存してよい。例えば、Iスライスの場合に、クロマチャネル及びルーマチャネルは、別個のコーディングパーティションツリー構造又はコーディングパーティションツリー構造モードを有してよく、一方、P又はBスライスの場合には、ルーマチャネル及びクロマチャネルは、同じコーディングパーティションツリースキームを共有してよい。別個のコーディングパーティションツリー構造又はモードが適用される場合に、ルーマチャネルは、1つのコーディングパーティションツリー構造によってCBにパーティション化されてよく、クロマチャネルは、他のコーディングパーティションツリー構造によってクロマCBにパーティション化されてよい。
【0096】
コーディングブロック及び変換ブロックのパーティショニングの具体的な実施例が以下で記載される。かような実施例において、ベースコーディングブロックは、上記の再帰的4分木分割を用いて、コーディングブロックに分割されてよい。各レベルで、特定のパーティションの更なる4分木分割が続くべきかどうかが、局所ビデオデータ特性によって決定されてよい。結果として得られたCBは、様々なサイズの様々な4分木分割レベルにあってよい。インターピクチャ(時間)又はイントラピクチャ(空間)予測によりピクチャエリアをコーディングすべきかどうかに関する決定は、CBレベル(又は、全ての3色チャネルについて、CUレベル)で行われてよい。各CBは、PB分割タイプに従って、1つ、2つ、4つ、又は他の数のPBに更に分割されてもよい。1つのPB内で、同じ予測プロセスが適用されてよく、関連情報はPBベースでデコーダへ伝えられる。PB分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CBは、CBのコーディングツリーに類似した他の4分木構造に従って、TBにパーティション化され得る。この特定の実施においては、CB又はTBは、しかしながら、正方形形状に制限される必要がない。更に、この特定の例においては、PBは、インター予測のために正方形又は長方形形状であってよく、イントラ予測のためには正方形のみであってよい。コーディングブロックは、例えば、4つの正方形形状のTBに更に分割されてよい。各TBは、残差4分木(Residual Quad-Tree)(RQT)と呼ばれるより小さいTBに再帰的に(4分木分割により)更に分割されてもよい。
【0097】
CB及び他のPB及び/又はTBへのベースコーディングブロックのパーティショニングのための他の具体例が以下で記載される。例えば、
図10に示されるもののような複数のパーティションユニットタイプを使用するのではなく、2分及び3分分割を用いたネスト化されたマルチタイプツリーを含む4分木のセグメンテーション構造が使用されてもよい。CB、PB及びTB概念の分離(つまり、PB及び/又はTBへのCBのパーティショニング、並びにTBへのPBのパーティショニング)は、最大変換長さに対してサイズが大きすぎるCBに必要とされる場合を除いて放棄されてよい。ただし、かようなCBは更に分割される必要があり得る。この例となるパーティショニングスキームは、予測及び変換が両方とも更なるパーティショニングなしでCBレベルで実行され得るように、CBパーティション形状の更なる柔軟性をサポートするよう設計され得る。かようなコーディングツリー構造では、CBは正方形又は長方形のどちらかの形状を有してよい。具体的に、コーディングツリーブロック(CTB)は最初に4分木構造によってパーティション化されてよい。次いで、4分木リーフノードは、マルチタイプツリーによって更にパーティション化されてよい。マルチタイプツリー構造の例は、
図11に示される。具体的に、
図11の例となるマルチタイプツリー構造は、垂直2分分割(SPLIT_BT_VER)(1102)、水平2分分割(SPLIT_BT_HOR)(1104)、垂直3分分割(SPLIT_TT_VER)(1106)、及び水平3分分割(SPLIT_TT_VER)(1108)と呼ばれる4つの分割タイプを含む。CBはその場合に、マルチタイプツリーのリーフに対応する。この実施例において、CTが最大変換長さに対して大きすぎない限り、このセグメンテーションは、更なるパーティショニングなしで予測及び変換の両方の処理に使用される。これは、ほとんどの場合に、ネスト化されたマルチタイプツリーコーディングブロックを含む4分木構造においてCB、PB及びTBが同じブロックサイズを有することを意味する。例外は、最大サポート変換長さがCBの色成分の幅又は高さよりも小さい場合に起こる。
【0098】
1つのCTBに対するブロックパーティションのネスト化されたマルチタイプツリーコーディングブロックを含む4分木構造の一例は、
図12に示される。より詳細には、
図12は、CTB1200が4つの正方形パーティション1202、1204、1206、及び1208に4分木分割されることを示す。分割のために
図11のマルチツリー構造を更に使用すべきとの決定は、4分木分割されたパーティションの夫々について行われる。
図12の例では、パーティション1204は更に分割されない。パーティション1202及び1208は夫々、もう1つの4分木分割を採用している。パーティション1202については、第2レベルで4分木分割された左上、右上、左下、及び右下パーティションが、第3レベルで夫々、4分木分割、
図11の水平2分分割1104、無分割、及び
図11の水平3分分割1108を採用している。パーティション1208は、もう1つの4分木分割を採用し、第2レベルで4分木分割された左上、右上、左下、及び右下パーティションが、第3レベルで夫々、
図11の垂直3分分割1106、無分割、無分割、及び
図11の水平2分分割1104を採用している。1208の第2レベルの左上パーティションの第3レベルのサブパーティションのうちの2つは、
図11の水平2分分割1104及び
図11の水平3分分割1108に夫々従って更に分割されている。パーティション1206は、
図11の垂直2分分割1102に従う第2レベルの分割パターンを採用して2つのパーティションに分割され、それら2つのパーティションは更に、
図11の水平3分分割1108及び垂直2分分割1102に従って第3レベルで分割されている。それら2つのパーティションのうちの1つに対しては、第4レベルの分割が、
図11の水平2分分割1104に従って更に適用されている。
【0099】
上記の具体例について、最大ルーマ変換サイズは64×64であってよく、最大サポートクロマ変換サイズはルーマとは異なってもよく、例えば32×32である。ルーマコーディングブロック又はクロマコーディングブロックの幅又は高さが最大変換幅又は高さよりも大きい場合に、ルーマコーディングブロック又はクロマコーディングブロックは、水平及び/又は垂直方向での変換サイズ制限を満足するようその方向において自動的に分割されてもよい。
【0100】
上記のCBへのベースコーディングブロックのパーティショニングのための具体例においては、上述されたように、コーディングツリースキームは、ルーマ及びクロマが別個のブロックツリー構造を有する能力をサポートし得る。例えば、Pスライス及びBスライスの場合に、1つのCTU内のルーマCTB及びクロマCTBは同じコーディングツリー構造を共有してよい。Iスライスの場合に、例えば、ルーマ及びクロマは別個のコーディングブロックツリー構造を有してよい。別個のブロックツリーモードが適用される場合に、ルーマCTBは1つのコーディングツリー構造によってルーマCBにパーティション化されてよく、クロマCTBは他のコーディングツリー構造によってクロマCBにパーティション化される。これは、IスライスでのCUは、ルーマ成分のコーディングブロック又は2つのクロマ成分のコーディングブロックから成ることができ、P又はBスライスでのCUは、ビデオがモノクロでない限りは、常に3つ全ての色成分のコーディングブロックから成る、ことを意味する。
【0101】
変換ブロックへコーディングブロック又は予測ブロックをパーティション化する実施例、及び変換ブロックのコーディング順序は、以下で更に記載される。いくつかの実施例において、変換パーティショニングは、例えば、4×4から64×64までの範囲に及ぶ変換ブロックサイズで、複数の形状、例えば、1:1(正方形)、1:2/2:1、及び1:4/4:1の変換ブロックをサポートしてよい。いくつかの実施において、コーディングブロックが64×64以下である場合に、変換ブロックパーティショニングはルーマ成分にのみ適用されてよく、それにより、クロマブロックについては、変換ブロックサイズはコーディングブロックサイズと同じである。そうでなければ、コーディングブロックの幅又は高さが64よりも大きい場合に、ルーマコーディングブロック及びクロマコーディングブロックの両方が、夫々、min(W,64)×min(H,64)及びmin(W,32)×min(H,32)の複数の変換ブロックに暗黙的に分割されてよい。
【0102】
いくつかの実施例において、イントラコーディングされたブロック及びインターコーディングされたブロックの両方について、コーディングブロックは、事前定義されたレベル数(例えば、2レベル)までのパーティショニング深さで複数の変換ブロックに更にパーティション化されてよい。変換ブロックパーティショニングの深さ及びサイズは関連付けられ得る。い現在の深さの変換サイズから次の深さの変換サイズへの例示的なマッピングは、以下で表1に示されている。
【表1】
【0103】
表1の例となるマッピングに基づいて、1:1正方形ブロックの場合に、次のレベルの変換分割は4つの1:1正方形サブ変換ブロックを生成し得る。変換パーティションは、例えば、4×4で停止してよい。従って、4×4の現在の深さの変換サイズは、次の深さの4×4の同じサイズに対応する。表1の例で、1:2/2:1の非正方形ブロックの場合に、次のレベルの変換分割は、2つの1:1正方形サブ変換ブロックを生成することになり、一方、1:4/4:1の非正方形ブロックの場合に、次のレベルの変換分割は、2つの1:2/2:1サブ変換ブロックを生成することになる。
【0104】
いくつかの実施例において、イントラコーディングされたブロックのルーマ成分の場合に、追加の制限が適用されてもよい。例えば、変換パーティショニングの各レベルについて、全てのサブ変換ブロックは、等しいサイズを有するよう制限されてもよい。例えば、32×16のコーディングブロックの場合に、レベル1変換分割は2つの16×16サブ変換ブロックを生成し、レベル2変換分割は8つの8×8サブ変換ブロックを生成する。換言すれば、第2レベルの分割は、変換ユニットを等しいサイズに保つように全ての第1レベルサブブロックに適用されるべきである。表1に従うイントラコーディングされた正方形ブロックに対する変換ブロックパーティショニングの例は、矢印によって表されるコーディング順序とともに、
図13に示される。具体的に、1302は正方形コーディングブロックを示す。表1に従う4つの等しいサイズの変換ブロックへの第1レベル分割は、矢印によって示されたコーディング順序とともに1304で示されている。表1に従う16個の等しいサイズの変換ブロックへの第1レベルの等しいサイズのブロックの全ての第2レベル分割は、矢印によって示されたコーディング順序ととも1306で示されている。
【0105】
いくつかの実施例において、インターコーディングされたブロックのルーマ成分の場合に、イントラコーディングに対する上記の制限は適用されなくてもよい。例えば、第1レベルの変換分割の後、サブ変換ブロックのいずれか1つは、1つの更なるレベルで独立して更に分割されてよい。よって、結果として得られた変換ブロックは同じサイズであってもなくてもよい。変換ブロックへのインターコーディングされたブロックの分割の例は、それらのコーディング順序とともに
図14に示される。
図14の例で、インターコーディングされたブロック1402は、表1に従って2つのレベルで変換ブロックに分割される。第1レベルで、インターコーディングされたブロックは、等しいサイズの4つの変換ブロックに分割される。次いで、4つの変換ブロック(それらの全てではない)のうちの1つのみが4つのサブ変換ブロックに更に分割され、その結果、1404によって示されるように、2つの異なったサイズを有する全部で7つの変換ブロックが得られる。これら7つの変換ブロックのコーディング順序の例は、
図14の1404において矢印によって示されている。
【0106】
いくつかの実施例において、クロマ成分については、変換ブロックに対する何らかの追加制限が適用されてもよい。例えば、クロマ成分について、変換ブロックサイズは、コーディングブロックサイズと同じ大きさであることができるが、事前定義されたサイズ、例えば、8×8よりも小さくはできない。
【0107】
いくつかの他の実施例において、幅(W)又は高さ(H)のどちらかが64よりも大きいコーディングブロックの場合に、ルーマコーディングブロック及びクロマコーディングブロックの両方が、夫々、min(W,64)×min(H,64)及びmin(W,32)×min(H,32)の複数の変換ユニットに暗黙的に分割されてよい。
【0108】
図15は、コーディングブロック又は予測ブロックを変換ブロックにパーティション化するスキームの他の代替例を更に示す。
図15に示されるように、再帰的な変換パーティショニングを使用するのではなく、パーティショニングタイプの事前定義された組が、コーディングブロックの変換タイプに応じてコーディングブロックに適用されてよい。
図15に示される具体例では、6つの例となるパーティショニングタイプのうちの1つが、コーディングブロックを様々な数の変換ブロックに分割するために適用され得る。かようなスキームは、コーディングブロック又は予測ブロックのどちらかに適用されてよい。
【0109】
より詳細には、
図15のパーティショニングスキームは、
図15に示されるような、任意の所与の変換タイプについて、最大6つまでのパーティションタイプを提供する。このスキームでは、あらゆるコーディングブロック又は予測ブロックは、例えば、レートひずみコストに基づいて、変換タイプを割り当てられ得る。一例で、コーディングブロック又は予測ブロックに割り当てられるパーティションタイプは、コーディングブロック又は予測ブロックの変換パーティションタイプに基づいて決定されてよい。特定のパーティションタイプは、
図15で表されているパーティションタイプによって示されるように、変換ブロック分割サイズ及びパターン(又はパーティションタイプ)に対応してよい。様々な変換タイプと様々なパーティションとの間の対応関係は予め定義されてよい。レートひずみコストに基づいてコーディングブロック又は予測ブロックに割り当てられ得る変換パーティションタイプを示す大文字ラベルを使用して、例となる対応が以下で示される:
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
・PARTITION_SPLIT:ブロックサイズの幅の1/2及びブロックサイズの高さの1/2である変換サイズを割り当てる。
・PARTITION_HORZ:ブロックサイズと同じ幅及びブロックサイズの高さの1/2を有する変換サイズを割り当てる。
・PARTITION_VERT:ブロックサイズの幅の1/2及びブロックサイズと同じ高さを有する変換サイズを割り当てる。
・PARTITION_HORZ4:ブロックサイズと同じ幅及びブロックサイズの高さの1/4を有する変換サイズを割り当てる。
・PATRITION_VERT4:ブロックサイズの幅の1/4及びブロックサイズと同じ高さを有する変換サイズを割り当てる。
【0110】
上記の例では、
図15に示されるパーティションタイプは全て、パーティション化された変換ブロックに対して一様な変換サイズを含む。これは、限定ではなく例に過ぎない。いくつかの他の実施においては、混合変換ブロックサイズが、特定のパーティションタイプ(又はパターン)でのパーティション化された変換ブロックに使用されてもよい。
【0111】
プライマリ変換を参照すると、例示的な2D(2次元)変換プロセスは、両方の次元に同じ変換カーネルを使用することに加えて、ハイブリッド変換カーネル(例えば、コーディングされた残差ブロックの次元ごとに異なる1D(1次元)変換から成ってよい。)の使用を伴うことがある。例示的なプライマリ1D変換カーネルには、a)4ポイント(4p)、8ポイント(8p)、16ポイント(16p)、32ポイント(32p)、及び64ポイント(64p)、b)4ポイント、8ポイント、16ポイント非対称DST及びそれらの反転バージョン(DSTは離散サイン変換(Discrete Sine Transform)を表す。)、c)4ポイント、8ポイント、16ポイント、又は32ポイントアイデンティティ変換、d)増分距離変換(Incremental Distance Transforms,IDT)が含まれ得るが、これらに限られない。従って、2D変換プロセスは、ハイブリッド変換又は変換カーネル(コーディングされた残差ブロックの次元ごとに異なる変換)の使用を伴うことがあり、このとき、次元ごとに使用される変換又は変換カーネルの選択は、レートひずみ(RD)基準に基づいてもよい。変換カーネルという用語は、代替的に、変換基本関数(transform basis function)とも呼ばれることがある。例えば、2D変換のためのハイブリッドとして実装され得る1D DCT-2、DST-4及びDST-7の基本関数は、表2に挙げられる(DCTは離散コサイン変換(Discrete Cosine Transform)を表す。)。
【表2】
【0112】
例えば、DCT-2(4p-64p)、DST-4(8p,16p)、及びDST-7(4p)変換は、対称/非対称特性を示すので、「部分バタフライ」(partial butterfly)実施が、演算カウント(乗算、加算/減算、シフト)の数を減らすためにいくつかの実施例ではサポートされることがある。部分バタフライ実施は、様々な角度で、
図16に示されるように、三角コサイン及びサイン関数を使用したプレーナ回転を伴うことがある。例となる12ビットルックアップテーブルが
図17及び
図18に示されており、三角関数の値を生成するために利用されてよい。具体的に、
図17は、例となるDCT-2(4p-64p)/DST-4(8p,16p)部分バタフライルックアップテーブルを示し、
図18は、例となるDST-7(4p)部分バタフライルックアップテーブルを示す。
【0113】
いくつかの実施例で、変換は、
図19に示されるようなライングラフ変換(Line Graph Transforms,LGT)を含んでもよい。グラフは、関心のあるオブジェクト間の親和関係をモデル化するために使用される頂点及び辺の組から成る一般的な数学的構造であり得る。実際に、重み付きグラフ(重みの組が辺に、場合により頂点に割り当てられる。)は、信号/データのロバストなモデリングのためのスパース表現をもたらし得る。LGTは、多様なブロック統計に対するより良い適応を提供することによってコーディング効率を向上させ得る。分離可能なLGTは、ブロック残差信号の基礎となる行及び列ごとの統計をモデル化するためにデータからライングラフを学習することによって設計及び最適化され得る。このとき、関連する一般化グラフラプラシアン(Generalized Graph Laplacian,GGL)行列がLGTを導出するために使用される。
【0114】
1つの実施において、重み付きグラフG(W,V)を考えると、GGLは、LE=D-W+Vとして定義されてよく、Wは、非負エッジ重みW
cから成る隣接行列であってよく、Dは、対角次数行列であってよく、Vは、重み付き自己ループV
c1,V
c2を表す対角行列であってよい。行列L
cは、次のように表現することができる:
【数1】
【0115】
次いで、LGTが、GGL L
cの固有値分解によって導出され得る:
【数2】
【0116】
直交行列Uの列は、LGTの基本ベクトルであり、Φは、対角固有値行列である。実際に、DCT-2、DCT-8及びDST-7を含むDCT及びDSTは、特定の形式のGGLから導出される。DCT-2は、Vc1=0をセットすることによって導出され、DST-7は、Vc1=Wcをセットすることによって導出され、DCT-8は、Vc2=Wcをセットすることによって導出され、DST-4は、Vc1=2Wcをセットすることによって導出され、DCT-4は、Vc2=2Wcをセットすることによって導出される。
【0117】
LGTは、行列乗算として実施されてもよい。4p LGTコアは、LcにおいてVc1=2Wcをセットすることによって導出され得、すなわち、それはDST-4である。8pLGTコアは、LcにおいてVc1=1.5Wcをセットすることによって導出され得、16p、32p及び64p LGTコアは、Lcにおいてc1=Wcをセットすることによって導出され得、すなわち、それはDST-7である。
【0118】
コーディングブロック/ユニットのための特定のタイプのシグナリングのいくつかの実施例を参照すると、各イントラ及びインターコーディングユニットについて、フラグ、つまりskip_txfmフラグが、以下の表3の例示的なシンタックスで示され、ビットストリームからのそのフラグの読み出しのためのread_skip()関数によって表現されるように、コーディングされたビットストリームでシグナリングされてよい。このフラグは、変換係数が現在のコーディングユニットで全てゼロであるかどうかを示し得る。いくつかの実施例で、このフラグが、例えば値1を有して、シグナリングされる場合に、他の変換係数関連シンタックス、例えば、EOB(End of Block)は、コーディングユニット内の色コーディングブロックのいずれに対してもシグナリングされる必要はなく、ゼロ変換係数ブロックに対して事前定義されてそれと関連付けられた値又はデータ構造として導出することができる。インターコーディングブロックの場合に、表3の例によって示されるように、このフラグは、コーディングユニットが様々な理由でスキップされる可能性があることを示すスキップモードフラグの後に、シグナリングされてよい。skip_modeが真であるとき、コーディングユニットはスキップされるべきであり、skip_txfmフラグをシグナリングすることは不要であり、skip_txfmフラグは1と推測される。そうではなく、skip_modeが偽である場合には、コーディングユニットに関する更なる情報がビットストリームに含まれ、skip_txfmフラグは更に、コーディングユニットが全てゼロであるか否かを示すためにシグナリングされることになる。
【表3】
【0119】
色成分の夫々における残差の変換係数の符号化及び復号化(エントロピコーディング)を参照すると、変換ブロックごとに、変換係数コーディングは、スキップ符号のシグナリングから始まり、スキップ符号がゼロである(非ゼロ係数が存在することを示す)場合に、その後に変換カーネルタイプ及びエンド・オブ・ブロック(EOB)位置が続く。次いで、各係数値は、複数のレベルマップ(振幅マップ)及び符号にマッピングされる。
【0120】
EOB位置がコーディングされた後、下位レベルのマップ及び中位レベルのマップが逆スキャン順序でコーディングされてよく、前者は、係数の大きさが低レベル内(例えば、0から2の間)にあるかどうかを示し、後者は、範囲が中間レベル内(例えば、3から14
の間)にあるかどうかを示す。次のステップでは、前方走査順序で、係数の符号及び高レベル(例えば、14)より大きい係数の残差値を、例えばExp-Golombコードによって、コーディングする。
【0121】
コンテキストモデリングの使用に関しては、下位レベルのマップコーディングは、変換サイズ及び方向、並びに最大5つの隣接係数情報を組み込むことができる。一方、中位レベルのマップコーディングは、隣接する係数の数がより少ない数(例えば、2つ)になることを除いて、下位レベルの振幅コーディングと同様のアプローチに従うことができる。残差レベル及びAC係数の符号に対する例示的なExp-Golombコードは、コンテキストモデルなしでコーディングされ、一方、DC係数の符号は、その隣接変換ブロックのDC符号を使用してコーディングされる。
【0122】
いくつかの実施例で、クロマ残差はまとめてコーディングされてもよい。かようなコーディングスキームは、クロマチャネル間の何らかの統計的相関に基づいてよい。例えば、多くの場合に、Cr及びCbクロマ係数は、振幅が類似しているが符号が逆であり得るので、例えば、変換係数がシグナリングされる変換ブロックレベルでは、小さな色歪みを導入するだけで、コーディング効率を向上させるよう一緒に符号化され得る。結合クロマコーディングモード(joint chroma coding mode)の利用(アクティブ化)は、例えば、結合クロマコーディングフラグ(例えば、TUレベルのフラグtu_joint_cbcr_residual_flag)によって示すことができ、選択された結合モードは、クロマCBFによって暗黙的に示され得る。
【0123】
具体的に、フラグtu_joint_cbcr_residual_flagは、TU(変換ブロック)の一方又は両方のクロマCBFが1に等しい場合に存在し得る。PPS及びスライスヘッダにおいて、クロマ量子化パラメータ(QP)オフセット値は、普通の(regular)クロマ残差コーディングモードについてシグナリングされるクロマQPオフセット値と区別するよう結合クロマ残差コーディングモードのためにシグナリングされ得る。これらのクロマQPオフセット値は、結合クロマ残差コーディングモードを使用してコーディングされるブロックのクロマQP値を導出するために使用され得る。対応する結合クロマコーディングモード(以下の表4中のモード2)がTUでアクティブであるとき、このクロマQPオフセットは、そのTUの量子化及び復号化中に、適用されるルーマ由来のクロマQPに加えられてよい。他のモード(表4中のモード1及び3)については、クロマQPは、従来のCB又はCrブロックの場合と同じ方法で導出され得る。送信された変換ブロックからのクロマ残差(resCb及びresCr)の再構成プロセスは表4に示されている。このモードがアクティブ化されると(モード2)、1つの単一結合クロマ残差ブロック(resJointC[x][y]がシグナリングされてもよく、Cbの残差ブロック(resCb)及びCrの残差ブロック(resCr)は、tu_cbf_cb、tu_cbf_cr、及びCSignなどの情報を考慮して導出されてもよい。CSignは、変換ブロックレベルでよりもむしろ、例えばスライスヘッダで指定される符号値である。いくつかの実施では、CSignはほとんどの場合-1になり得る。
【0124】
上記の3つの例示的な結合クロマコーディングモードは、イントラコーディングされたCUでのみサポートされ得る。インターコーディングされたCUでは、モード2のみがサポートされ得る。従って、インターコーディングされたCUについては、両方のクロマCBFが1である場合にのみ、シンタックス要素tu_joint_cbcr_residual_flagは存在する。
【表4】
【0125】
上記の結合クロマコーディングスキームは、コロケートされたCr及びCb変換ブロック間の変換係数どうしに何らかの相関があることを仮定している。そのような仮定は、通常は統計的なものであるため、状況によっては歪みが生じる可能性がある。特に、変換ブロック内の色係数の1つが非ゼロであり、一方、もう1つの色成分の係数がゼロである場合、結合クロマコーディングスキームで行われた仮定の一部は確実に外れることになり、そのようなコーディングでは、符号化ビットも節約されない(いずれにしてもクロマ係数の一方はゼロであるため)。
【0126】
以下の様々な実施例では、係数レベル(つまり、変換係数ごと)のクロスコンポーネントコーディングスキームが記載され、それは、色成分のコロケートされた(周波数領域でコロケートされた)変換数の間の何らかの相関を利用する。かようなスキームは、一方の色成分の係数がゼロである一方、他方の色成分の対応する変換係数が非ゼロである変換ブロック(又はユニット)について特に有用である。ゼロ色係数と非ゼロ色係数とのそのような対について、量子化の前又は後のいずれかで、非ゼロ色係数は、他方の色成分のゼロ符号化係数の元の小さい値を推定又は導出するために使用されてよく(コーディングプロセスでの量子化の前には、たとえ小さい値であっても、もともとはゼロでない可能性がある。)、それによって、例えば符号化中の量子化プロセスで失われた一部の情報を回復することが可能であり得る。ゼロへの量子化中に失われた一部の情報は、統計的に存在する色間の相関により回復される可能性がある。かようなクロスコンポーネントコーディングは、(ゼロ係数の)有意なコーディングコストなしで、失われた情報をある程度回復する。このような係数情報回復プロセスは、ゼロの値を持った係数が、例えば、小さい非ゼロ値に回復され得るということで、変換係数精緻化プロセス(又は、簡単に、係数精緻化プロセス)とも呼ばれることがある。1つの実施では、係数精緻化プロセス中、第2変換ブロック内のゼロ変換係数は、オフセットを加えることによって精緻化され得る。オフセットは、第1変換ブロック内の対応する(例えば、コロケートされた)変換係数に基づいて導出され得る。第1変換ブロックは、第1色成分に関連してよく、第2変換ブロックは、第1色成分とは異なる第2色成分と関連してよい。色成分は、ルーマ成分及びクロマ成分のいずれか1つであってよい。
【0127】
例となる実施において、クロスコンポーネント係数符号コーディング方法が実施されてよく、それは、第2色成分の係数符号をコーディングするために第1色成分の係数符号値を利用する。1つのより具体的な例では、Cb変換係数の符号値が、Cr変換係数の符号をコーディングするためのコンテキストとして使用されてよい。そのようなクロスコンポーネントコーディングは、色成分の変換係数ペアに対して係数ごとに実装され得る。このような実施の基礎となる原理、及び以下で更に詳細に記載される他の実施は、Cb及びCr成分に制限されない。それらは、3つの色成分のうちのいずれか2つの間で適用可能である。それに関連して、ルーマチャネルは色成分の1つと見なされる。
【0128】
第1成分における第1変換ブロック内の変換係数を用いて、第2成分における第2変換ブロック内のコロケートされた変換係数を導出及び精緻化する方法は、クロスコンポーネントレベル再構成(Cross Component Level Reconstruction,CCLR)と呼ばれ得る。この方法において、CCLRは、参照として第2変換ブロックを用いて、第1変換ブロックに対して適用される。例えば、Cb変換係数のレベル値は、対応する(例えば、コロケートされた)Cr変換係数のレベル値を導出するために使用されてよく、その逆も同様である。CCLRを使用すると、デコーダ側では、1つの色成分の情報がもう1つの色成分を参照して精緻化又は回復され得る。
【0129】
以下の実施例で、クロマチャネルという用語は、Cb色成分及びCr色成分(若しくはチャネル)の両方、又はU色成分及びV色成分(若しくはチャネル)の両方を一般的に指すことができる。ルーマチャネルという用語には、ルーマ成分、又はY成分が含まれ得る。ルーマ成分又はチャネルは、ルーマ色成分又はチャネルと呼ばれることがある。Y、U及びVは、3つの色成分を表すために以下で使用される。更に、「コーディングされたブロック」及び「コーディング」ブロックという用語は、コーディングされるべきブロック又は既にコーディングされているブロックのどちらかを意味するよう同義的に使用される。それらは、3つの色成分のうちのいずれかのブロックであってよい。3つの対応する色コードされたブロック/コーディングブロックは、コーディングされたユニット/コーディングユニットを構成し得る。
【0130】
以下の実施例で、変換セットは、変換カーネル(又は候補)オプションのグループを指す。変換セットには、カーネル(又は候補)オプションのDCT、ADST、FLIPADST、IDT、LGT、KLT、又はRCTタイプのうちの1つ以上が含まれ得る。
【0131】
以下の実施例、変換タイプは、プライマリ及び/又はセカンダリ変換のタイプを指す。プライマリ変換タイプの例には、DCT、ADST、FLIPADST、IDT、LGT、KLT、及びRCTがあるが、これらに限られない。セカンダリ変換タイプの例には、異なる入力サイズ、異なるカーネルを使用するKLTがあるが、これらに限られない。
【0132】
以下の実施例で、変換という用語は、プライマリ変換、若しくはセカンダリ変換、又はプライマリ変換とセカンダリ変換との組み合わせを指すことができる。逆変換という用語は、逆プライマリ変換、若しくは逆セカンダリ変換、又は逆プライマリ変換と逆セカンダリ変換との組み合わせを指すことができる。
【0133】
以下の実施例は、別々に使用されても、又は任意の順序で組み合わされてもよい。ブロックサイズという用語は、ブロックの幅若しくは高さのどちらか一方、又は幅及び高さの最大値、又は幅及び高さの最小値、又は面積サイズ(幅×高さ)、又はブロックのアスペクト比(幅:高さ若しくは高さ:幅)を指すことができる。「レベル値」又は「レベル」という用語は、変換係数値の大きさを指すことができる。
【0134】
いくつかの実施例で、第1色成分の変換係数のレベル値及び/又は符号値は、第2色成分の変換係数レベル値に加えられるオフセット値を導出するために使用され得る。
【0135】
いくつかの更なる実施では、第2色成分のオフセット及び変換係数を生成するために使用される第1色成分の変換係数は、コロケートされている(周波数領域で同じ座標、例えば、推定値は非交差周波数である。)。
【0136】
上記の第1色成分及び第2色成分は特定の色成分に制限されなくてもよいが、いくつかの実施例では、第1色成分はCb(又はCr)であってよく、一方、第2色成分はCr(又はCb)である。
【0137】
いくつかの具体的な実施例で、第1色成分はルーマであってよく、第2色成分はCb及びCrのうちの1つであってよい。
【0138】
いくつかの具体的な実施例で、第1色成分はCb及びCrのうちの1つであってよく、第2色成分はルーマであってよい。
【0139】
いくつかの実施例で、第1色成分の量子化された変換係数は非ゼロであってよく、前記の第2色成分の量子化された変換係数はゼロであってよい。そのようなものとして、第2色成分の元の変換係数の元の比較的に小さい非ゼロ情報は、符号化プロセス中の量子化により失われる可能性があり、本明細書で記載される実施例は、ゼロ係数色成分と統計的に相関し得る対応する非ゼロ色成分を用いて、失われた一部の情報を回復するのを助ける。
【0140】
いくつかの実施例で、第1色成分の変換係数の符号値は、第2色成分の逆量子化された変換係数レベル値に加えられるオフセット値を導出するために使用され得る。
【0141】
いくつかの実施例で、第1色成分の変換係数の符号値は、逆量子化の前に第2色成分の変換係数レベル値に加えられるオフセット値を導出するために使用される。
【0142】
いくつかの実施例で、第1色成分の変換係数の符号値が正(又は負)である場合に、負(又は正)のオフセット値が、第2色成分の変換係数値を再構成するために、第2色成分の逆量子化された変換係数レベル値に加えられる。言い換えれば、第1色成分の変換係数の符号値と、第2色成分の変換係数レベル値に加えられるオフセット値の符号値とは、異なる符号値を有する。そのような実施は、2つのクロマ成分が通常変換に対して反対の符号を有するという統計的な観測と一致し得る。
【0143】
いくつかの実施例で、第1色成分の変換係数の符号値と、第2色成分の変換係数レベル値に加えられるオフセット値の符号値とが、反対の符号値を有するかどうかは、SPS、VPS、PPS、APS、ピクチャヘッダ、フレームヘッダ、スライスヘッダ、タイルヘッダ、CTUヘッダを含むがこれらに制限されない高位シンタックでシグナリングされる。これは、結合クロマコーディングスキームのための上記のシグナリングスキームと類似している。
【0144】
いくつかの実施例で、第2色成分の変換係数レベル値に加えられるオフセット値は、第1色成分の変換係数の符号及びレベルの両方に依存し得る。
【0145】
いくつかの実施例で、第2色成分の変換係数レベル値に加えられるオフセット値の大きさは、第1色成分の変換係数レベルに依存し得る。
【0146】
いくつかの実施例で、第2色成分の変換係数レベル値に加えられるオフセット値の大きさは、第1色成分の変換係数の係数レベルの各入力値について事前定義されてもよい。
【0147】
いくつかの実施例で、第2色成分の変換係数レベル値に加えられるオフセット値は、変換係数が位置している周波数に依存し得る。例えば、オフセット値は、より高い周波数係数の場合に、より小さくなり得る。
【0148】
いくつかの実施例で、第2色成分の変換係数レベル値に加えられるオフセット値は、変換係数が属するブロックのブロックサイズに依存し得る。例えば、オフセット値は、一般的に、より大きいブロックサイズの場合に、より小さくなり得る。
【0149】
いくつかの実施例で、第2色成分の変換係数レベル値に加えられるオフセット値は、第2色成分がルーマ(Y)又はクロマ(Cb若しくはCr)成分であるかどうかに依存し得る。例えば、オフセット値は、第2色成分がルーマである場合に、より小さくなり得る。
【0150】
いくつかの実施例で、第2色成分の変換ブロックについて、この変換ブロックのための変換カーネルの選択は、CCLR方法がこの変換ブロック内の変換係数を精緻化するために適用されるかどうかに依存し得る。選択された変換カーネルは、プライマリ変換又はセカンダリ変換に使用されてよい。一例としてプライマリ変換を使用すると、符号化(エンコーダ)側では、選択された変換カーネルは、予測残差に対して変換を実行して変換ブロックを取得するために使用されてよく、復号化(デコーダ)側では、選択された変換カーネルは、CCLR方法が変換ブロックに適用される場合に、精緻化された変換ブロックに対して逆変換を実行して予測残差を取得するために使用されてよい。逆変換の前に、精緻化された変換ブロックを取得するために、CCLR精緻化プロセスが変換ブロックに実行されることに留意されたい。
【0151】
いくつかの実施例で、CCLRが変換ブロックに適用又は有効化されるかどうかは、例えば、シンタックス値又はフラグによって、シグナリングされてよい。
【0152】
いくつかの実施例で、第2色成分の変換ブロックに関連した相対的なエンド・オブ・ブロック位置をシグナリングするEOBがゼロであり、これにより、この変換ブロック内の全ての変換係数がゼロであることが示される場合に、CCLRがこの変換係数に適用されるならば、CCLR精緻化プロセスは、この変換ブロック内の各変換係数に対して、例えば各変換係数に対応するオフセット値を加えることによって、適用され得る。オフセット値は、第1色成分の変換ブロック内のコロケートされた変換係数に基づいて導出され得る。精緻化プロセスの結果として、変換ブロック内の精緻化された変換係数はもはや全てゼロというわけではない。精緻化プロセスに続いて、CCLR精緻化された変換ブロックに対して、逆変換が実行されてもよい。
【0153】
いくつかの実施例で、変換ブロックの全体を対象とするのではなく、CCLR精緻化プロセスは、変換ブロック内の変換係数の一部のみを対象とし得る。
【0154】
いくつかの実施例で、第2色成分のCCLR精緻化された変換ブロックに逆変換を適用する場合に、第1色成分のコロケートされた変換ブロックに対する逆変換に使用されたのと同じ変換カーネルが選択されてもよい。第1色成分のコロケートされた変換ブロックは、第2色成分の変換ブロックに適用されるCCLR精緻化プロセスで使用されるオフセット値を導出するための基準(又は参照)として使用されることに留意されたい。
【0155】
いくつかの実施例で、CCLRが変換ブロックに適用される場合に、精緻化された(この変換ブロックから精緻化された)変換ブロックに逆変換を実行するための変換カーネルは明示的にシグナリングされてもよい。例えば、変換セット(つまり、候補変換カーネルの組)からの選択された変換カーネルを示すインデックスがシグナリングされ得る。変換セットは、事前設定されても、事前定義されても、導出されても、又はシグナリングされてもよい。
【0156】
いくつかの実施例で、CCLRが第2色成分の変換ブロックに適用され、この変換ブロックに関連したコーディングされたブロックがイントラ予測されたブロックである場合に、精緻化された(この変換ブロックから精緻化された)変換ブロックに逆変換を実行するための変換カーネルは、イントラ予測モードに基づいて暗黙的に導出されてもよい。1つの実施では、CCLRが変換ブロックに適用されるかどうかも考慮されるべきであるように、変換カーネルの選択には追加の制約が課されることがある。例えば、CCLRが適用される1つの変換ブロックについて、選択された変換カーネルは、CCLRが適用されない他の変換ブロックのための選択された変換カーネルとは異なるべきである。他の変換ブロックは、同じコーディングされたブロック、又はイントラ予測される異なるコーディングされたブロックに関連してよい。
【0157】
いくつかの実施例で、CCLRがある色成分(例えば、Cb又はCr)の変換ブロックに適用される場合に、精緻化された(この変換ブロックから精緻化された)変換ブロックに逆変換を実行するための変換カーネルは、ルーマ成分のコロケートされた変換ブロックに適用されたのと同じであってよい。
【0158】
いくつかの実施例で、精緻化された変換ブロックに逆変換を実行するための変換カーネルは、変換セットから選択されてもよく、選択は、精緻化された変換ブロックのブロックサイズに基づいてよい。変換セットは、事前設定されても、事前定義されても、導出されても、又はシグナリングされてもよい。
【0159】
いくつかの実施例で、CCLR方法が変換ブロックに適用され得るかどうかには更なる制約が存在してもよい。制約は、変換タイプに基づいてよい。1つの実施では、CCLR方法を適用するために、プライマリ変換又はセカンダリ変換の変換タイプは、特定のタイプ又はタイプの組み合わせに制限される必要がある。例えば、プライマリ変換が2D変換であるとき、2D変換の2つの1D変換は両方ともDCTであるか、両方ともIDTであるか、あるいは、変換タイプの1つの他の組み合わせでなければならない。
【0160】
いくつかの実施例で、CCLR精緻化プロセス中、オフセット導出は、精緻化されるべき変換ブロックのために選択された変換タイプに依存し得る。変換タイプは、プライマリ変換又はセカンダリ変換に適用されてよい。
【0161】
クロスコンポーネントゼロ係数精緻化は、EOBがゼロとして示される(つまり、ブロックの終わりの相対位置がゼロである、つまり、対応するブロックの変換係数が全てゼロである)状況について記載されてきたが、クロスコンポーネント精緻化の様々な実施と、変換カーネルタイプ及び/又は特定のカーネルの選択及びシグナリングとは、そのように制限されない。例えば、1つの色成分の特定の変換ブロックは、少数の非ゼロ係数しか有さないことがある。それでも、他のゼロ変換係数は、もう1つの色成分における変換係数を用いて精緻化され得る。更には、精緻化は、精緻化されている同じ変換ブロック内の非ゼロ係数に更に基づいてもよい。変換カーネルタイプ及び/又はカーネルの選択は、上記の実施と同様に行われ得る。
【0162】
図20は、上記の実施の基礎となる原理に従う例示的なビデオ復号化方法のフローチャート2000を示す。方法2000は、次のステップの一部又は全部を含んでよい:ステップ2010で、第1色成分の第1変換ブロック及び第2色成分の第2変換ブロックを含むビデオブロックのビットストリームを受信する。第1変換ブロック及び第2変換ブロックはコロケートされたブロックである。ステップ2020で、ビデオブロックのビットストリームから第1色成分の第1変換ブロック及び第2色成分の第2変換ブロックを取得する。ステップ2030で、第1変換ブロック内の全ての変換係数がゼロであることを示す第1フラグを決定する。ブロック2040で、クロスコンポーネントレベル再構成(CCLR)が第1変換ブロックに適用されることを示す第2フラグを決定する。ブロック2050で、CCLRが第1変換ブロックに適用されるとの決定に応答して、
精緻化された第1変換ブロックを取得するよう、1つ以上のオフセット値を加えることによって第1変換ブロック内の変換係数の1つ以上を精緻化し、このとき、1つ以上のオフセット値は、第1変換ブロック内の変換係数の1つ以上とコロケートされている第2変換ブロック内の変換係数に基づいて導出され、
精緻化された第1変換ブロックの目標変換カーネルを決定し、
目標ブロックを取得するよう、目標変換カーネルに基づいて、精緻化された第1変換ブロックに対して逆変換を実行し、
少なくとも目標ブロックに基づいてビデオブロックの第1色成分を再構成する。
【0163】
本開示の実施形態及び実施において、如何なるステップ及び/又は動作も、望まれるように、如何なる量又は順序でも組み合わされ又は配置されてよい。ステップ及び/又は動作の2つ以上は、並行して実行されてもよい。本開示の実施形態及び実施は、別々に使用されても、又は任意の順序で組み合わされてもよい。更に、方法(又は実施形態)、エンコーダ、及びデコーダの夫々は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。
【0164】
上記の技術は、コンピュータ可読命令を用いてコンピュータソフトウェアとして実施され、1つ以上のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図21は、開示される対象の特定の実施形態を実装するのに適したコンピュータシステム(2800)を示す。
【0165】
コンピュータソフトウェアは、1つ以上のコンピュータ中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって、直接に、又は解釈、マイクロコード実行などを通じて、実行することができる命令を含むコードを生成するように、アセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
【0166】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、インターネット・オブ・シングス(Internet of Things)デバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
【0167】
コンピュータシステム(2800)に関して
図21に示されるコンポーネントは、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる限定も示唆することを意図しない。コンポーネントの構成は、コンピュータシステム(2800)の例示的な実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して如何なる依存性も要件も有するものとして解釈されるべきではない。
【0168】
コンピュータシステム(2800)は、特定のヒューマンインターフェース入力デバイスを含んでよい。かようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグロープ動作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、2次元映像、立体視映像を含む3次元映像)などの、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
【0169】
入力ヒューマンインターフェースデバイスは、キーボード(2801)、マウス(2802)、トラックパッド(2803)、タッチスクリーン(2810)、データグローブ(図示せず。)、ジョイスティック(2805)、マイク(2806)、スキャナ(2807)、カメラ(2808)(各1つしか表されていない。)のうちの1つ以上を含んでよい。
【0170】
コンピュータシステム(2800)は、特定のヒューマンインターフェース出力デバイスも含んでよい。かようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激するものであってよい。かようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2810)、データグローブ(図示せず。)、又はジョイスティック(2805)による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)、音声出力デバイス(例えば、スピーカ(2809)、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により2次元視覚出力又は3次元よりも多い次元の出力を出力可能なスクリーン(2810))、及びプリンタ(図示せず。)を含んでよい。
【0171】
コンピュータシステム(2800)は、人がアクセス可能な記憶デバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体(2821)を有するCD/DVD ROM/RW(2820)、サムドライブ(2822)、リムーバブルハードディスク又はソリッドステートドライブ(2823)、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
【0172】
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
【0173】
コンピュータシステム(2800)は、1つ以上の通信ネットワーク(2855)へのインターフェース(2854)も含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレスワイドエリアデジタルネットワーク、CANBusを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用データポート又はペリフェラルバス(2849)(例えば、コンピュータシステム(2800)のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(2800)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(2800)は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANBusデバイスへのCANBus)であることができ、あるいは、例えば、ローカル若しくはワイドエリアデジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
【0174】
上記のヒューマンインターフェースデバイス、人がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(2800)のコア(2840)へ取り付けられ得る。
【0175】
コア(2840)は、1つ以上の中央演算処理装置(CPU)(2841)、グラフィクス処理ユニット(GPU)(2842)、フィールドプログラマブルゲートエリア(FPGA)(2843)の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(2844)、グラフィクスアダプタ(2850)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2845)、ランダムアクセスメモリ(RAM)(2846)、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など(2847)とともに、システムバス(2848)を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス(2848)は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス(2848)へ直接に又はペリフェラルバス(2849)を通じて、周辺機器が取り付けられ得る。一例では、スクリーン(2810)がグラフィクスアダプタ(2850)へ接続され得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。
【0176】
CPU(2841)、GPU(2842)、FPGA(2843)、及びアクセラレータ(2844)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM(2845)又はRAM(2846)に記憶され得る。一時データもRAM(2846)に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置(2847)に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能になる。キャッシュメモリは、1つ以上のCPU(2841)、GPU(2842)、大容量記憶装置(2847)、ROM(2845)、RAM(2846)などと密接に関連し得る。
【0177】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
【0178】
非限定的な例として、アーキテクチャ(2800)、具体的にはコア(2840)を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。かようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(2847)又はROM(2845)などの、非一時的な性質であるコア(2840)の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2840)によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア(2840)、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM(2846)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することとを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードワイヤード又は別なふうに具現されたロジック(例えば、アクセラレータ(2844))の結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
【0179】
本開示は、いくつかの実例となる実施形態について記載してきたが、開示の範囲内にある代替、置換、及び様々な代替同等物が存在する。よって、当業者は、ここで明示的に図示及び記載されていないとして、本開示の原理を具現化し、よってその精神及び範囲内にある多数のシステム及び方法を考え付くことができることを理解されたい。
【0180】
付録A:頭字語
JEM:Joint Exploration Model
VVC:Versatile Video Coding
BMS:Benchmark Set
MV:Motion Vector
HEVC:High Efficiency Video Coding
SEI:Supplementary Enhancement Information
VUI:Video Usability Information
GOP:Group of Picture(s)
TU:Transform Unit(s)
PU:Prediction Unit(s)
CTU:Coding Tree Unit(s)
CTB:Coding Tree Block(s)
PB:Prediction Block(s)
HRD:Hypothetical Reference Decoder
SNR:Signal Noise Ratio
CPU:Central Processing Unit(s)
GPU:Graphics Processing Unit(s)
CRT:Cathode Ray Tube
LCD:Liquid-Crystal Display
OLED:Organic Light-Emitting Diode
CD:Compact Disc
DVD:Digital Video Disc
ROM:Read-Only Memory
RAM:Random Access Memory
ASIC:Application-Specific Integrated Circuit
PLD:Programmable Logic Device
LAN:Local Area Network
GSM:Global System for Mobile communications
LTE:Long-Term Evolution
CANBus:Controller Area Network Bus
USB:Universal Serial Bus
PCI:Peripheral Component Interconnect
FPGA:Field Programmable Gate Area(s)
SSD:Solid-State Drive
IC:Integrated Circuit
HDR:High Dynamic Range
SDR:Standard Dynamic Range
JVET:Joint Video Exploration Team
MPM:Most Probable Mode
WAIP:Wide-Angle Intra Prediction
CU:Coding Unit
PU:Prediction Unit
TU:Transform Unit
CTU:Coding Tree Unit
PDPC:Position Dependent Prediction Combination
ISP:Intra Sub-Partitions
SPS:Sequence Parameter Setting
PPS:Picture Parameter Set
APS:Adaptation Parameter Set
VPS:Video Parameter Set
DSP:Decoding Parameter Set
ALF:Adaptive Loop Filter
SAO:Sample Adaptive Offset
CC-ALF:Cross-Component Adaptive Loop Filter
CDEF:Constrained Directional Enhancement Filter
CCSO:Cross-Component Sample Offset
LSO:Local Sample Offset
LR:Loop Restoration Filter
AV1:AOMedia Video 1
AV2:AOMedia Video 2
DCT:Discrete Cosine Transform
DST:Discrete Sine Transform
ADST:Asymmetric DST
FLIPADST:Flipped ADST
IDT:Incremental Distance Transform
LGT:Line Graph Transforms
KLT:Karhunen Loeve Transform
RCT:Row-Column Transform
【国際調査報告】