(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024119954
(43)【公開日】2024-09-03
(54)【発明の名称】ビデオ情報を処理するための方法及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/12 20140101AFI20240827BHJP
H04N 19/176 20140101ALI20240827BHJP
H04N 19/593 20140101ALI20240827BHJP
【FI】
H04N19/12
H04N19/176
H04N19/593
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024095610
(22)【出願日】2024-06-13
(62)【分割の表示】P 2022561078の分割
【原出願日】2022-01-28
(31)【優先権主張番号】63/176,049
(32)【優先日】2021-04-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/571,284
(32)【優先日】2022-01-07
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】ペリンガセリー,クリシュナン マドゥ
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】 (修正有)
【課題】本開示は、複数基準線イントラ予測、変換区分化及び変換カーネルの間の調和設計並びにビデオ情報を処理する方法を提供する。
【解決手段】方法は、ビデオフレーム内の隣接基準線と1つ以上の非隣接基準線とを有するビデオフレームのデータブロックを取り出すステップと、1つ以上の非隣接基準線のうちの1つの非隣接基準線が、データブロックのイントラ予測に使用されるかどうかを判断するステップと、隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換するために、変換カーネルの第1セットからターゲット変換カーネルを選択するステップと、非隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換するために、変換カーネルの第2セットからターゲット変換カーネルを選択するステップと、を含む。
【選択図】
図23
【特許請求の範囲】
【請求項1】
プロセッサによって実行される、ビデオ情報を処理するための方法であって、
ビデオフレームのデータブロックを取り出すステップであって、前記データブロックは、前記ビデオフレーム内の隣接基準線と1つ以上の非隣接基準線とを有する、ステップと、
前記1つ以上の非隣接基準線のうちの1つの非隣接基準線が、前記データブロックのイントラ予測に使用されるかどうかを判断するステップと、
隣接基準線が前記データブロックの前記イントラ予測に使用されるとき、前記データブロックを変換するために、変換カーネルの第1セットからターゲット変換カーネルを選択するステップと、
非隣接基準線が前記データブロックの前記イントラ予測に使用されるとき、前記データブロックを変換するために、変換カーネルの第2セットからターゲット変換カーネルを選択するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、2021年4月16日に出願された「Harmonized Design Among Multiple Reference Line Intra Prediction, Transform Partitioning, and Transform Kernels」という名称の米国仮出願第63/176,049号に対する優先権を主張する、2022年1月7日に出願された米国非仮特許出願第17/571,284号に基づくものであり、その優先権の利益を主張する。両出願は、参照によってその全体が本明細書に組み込まれる。
【0002】
技術分野
本開示は、一般に、一組の先進的なビデオコーディング/復号技術に関し、より詳細には、複数基準線イントラ予測(multiple reference line intra prediction)、変換区分化(transform partitioning)及び変換カーネル(transform kernels)の間の調和設計(harmonized design)に関する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を一般的に提示するためのものである。現在名前を挙げられている発明者の研究は、その研究がこの背景技術に記載された範囲において、出願時に先行技術として通常見なされ得ない記載の態様とともに、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオコーディング及び復号は、動き補正を伴うインターピクチャ予測を使用して実行されることができる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080の輝度サンプル及び関連する完全な又はサブサンプリングされたクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば毎秒60ピクチャ又は毎秒60フレームの固定又は可変ピクチャレート(代替的にフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、ストリーミング又はデータ処理のための特定のビットレート要件を有する。例えば1920×1080のピクセル解像度、60フレーム/秒のフレームレート及びカラーチャネル当たりピクセルごとに8ビットで4:2:0のクロマ(chroma)サブサンプリングを有するビデオは、1.5Gbit/sの帯域幅に近いことを必要とする。このようなビデオの1時間は、600Gバイトを超える記憶領域を必要とする。
【0005】
ビデオコーディング及び復号の1つの目的は、圧縮による、非圧縮入力ビデオ信号の冗長性の低減である可能性がある。圧縮は、前述の帯域幅及び/又は記憶領域の要件を、場合によっては2桁以上低減するのを助けることができる。可逆圧縮と非可逆圧縮の両方、並びにそれらの組合せを採用することができる。可逆圧縮は、復号プロセスを介して、圧縮された元の信号から元の信号の正確なコピーを再構成することができる技術を指す。非可逆圧縮は、元のビデオ情報がコーディング中に完全には保持されず、復号中に完全には回復できないコーディング/復号プロセスを指す。非可逆圧縮を使用するとき、再構成信号は、元の信号と同一ではない可能性があるが、元の信号と再構成信号との間の歪みは、いくらかの情報損失があるにもかかわらず、再構成信号を、意図されるアプリケーション(application)に有用であるようにするのに十分に小さくされる。ビデオの場合、非可逆圧縮は、多くのアプリケーションで広く使用される。許容可能な歪み量はアプリケーションに依存する。例えば特定の消費者ビデオストリーミングアプリケーションのユーザは、映画又はテレビジョン放送アプリケーションのユーザよりも高い歪みを許容し得る。特定のコーディングアルゴリズムによって達成可能な圧縮比は、様々な歪み許容度を反映するように選択又は調整されることができ:より高い許容可能な歪みは、一般に、より高い損失とより高い圧縮比をもたらすコーディングアルゴリズムを可能にする。
【0006】
ビデオエンコーダ及びデコーダは、例えば動き補償、フーリエ変換、量子化及びエントロピーコーディングを含む、いくつかの広範なカテゴリ及びステップからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、ピクチャはサンプルのブロックに空間的に細分される。イントラモードでサンプルのすべてのブロックがコーディングされるとき、そのピクチャをイントラピクチャと呼ぶことができる。独立デコーダリフレッシュピクチャ(independent decoder refresh pictures)のようなイントラピクチャ及びそれらの派生物を使用して、デコーダ状態をリセットすることができ、したがって、コーディングされたビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、あるいは静止画像として使用することができる。次いで、イントラ予測後のブロックのサンプルは、周波数領域への変換の対象となり得、そのように生成される変換係数を、エントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域(pre-transform domain)におけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数は少ない。
【0008】
例えばMPEG-2世代のコーディング技術から知られているような伝統的なイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば空間的に隣接するもののコーディング及び/又は復号の間に取得され、かつデータのブロックがイントラコーディング又は復号される復号順序において先行する、周囲のサンプルデータ及び/又はメタデータに基づいて、ブロックのコーディング/復号を試みる技術を含む。このような技術は、以下では「イントラ予測」技術と呼ばれる。少なくともいくつかの場合には、イントラ予測は、再構成中の現在のピクチャからの参照データのみを使用し、他の参照ピクチャからのものは使用しないこと留意されたい。
【0009】
様々な形式のイントラ予測が存在し得る。所与のビデオコーディング技術において、そのような技術のうちの2つ以上が利用可能であるとき、使用される技術を、イントラ予測モードと呼ぶことができる。1つ以上のイントラ予測モードが、特定のコーデックに提供されてもよい。ある場合には、モードは、サブモードを有することができ、かつ/又は様々なパラメータに関連付けられることができ、ビデオのブロックについてのモード/サブモード情報及びイントラコーディングパラメータを個々にコーディングするか又はモードコードワード(mode codewords)に集合的に含めることができる。どのコードワードを、所与のモード、サブモード及び/又はパラメータの組合せに使用するかは、イントラ予測を通したコーディング効率ゲインに影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も同様に影響を与える可能性がある。
【0010】
特定のイントラ予測モードは、H.264で導入され、H.265で精査され、JEM(joint exploration model)、VVC(versatile video coding)及びベンチマークセット(BMS:benchmark set)のようなより新しいコーディング技術で更に精査された。一般に、イントラ予測では、利用可能になった隣接するサンプル値を使用して予測子ブロック(predictor block)を形成することができる。例えば特定の方向及び/又は線に沿った隣接サンプルの特定のセットの利用可能な値は、予測子ブロックにコピーされ得る。使用中の方向への参照は、ビットストリームでコーディングされることができ、あるいはそれ自体が予測されてよい。
【0011】
図1Aを参照すると、右下に示されているのは、H.265の33の可能なイントラ予測子方向(predictor directions)(H.265で指定された35のモードの33の角度モードに対応する)で指定される、9つの予測子方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、101におけるサンプルを予測するために隣接するサンプルが使用される方向を示す。例えば矢印(102)は、サンプル(101)が、隣接するサンプル又は複数のサンプルから右上へ、水平方向から45度の角度で予測されることを示す。同様に、矢印(103)は、サンプル(101)が、隣接するサンプル又は複数のサンプルからサンプル(101)の左下へ、水平方向から22.5度の角度で予測されることを示す。
【0012】
引き続き
図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)が示されている(破線の太線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各々「S」と、Y次元におけるその位置(例えば行インデックス)と、X次元におけるその位置(例えば列インデックス)とでラベリングされている。例えばサンプルS21は、Y次元の(上から)2番目のサンプル及びX次元の(左から)1番目のサンプルである。同様に、サンプルS44は、Y及びX次元の両方においてブロック(104)の4番目のサンプルである。ブロックのサイズが4×4サンプルであるので、S44は右下にある。さらに、同様のナンバリングスキームに従う参照サンプルの例が示されている。参照サンプルは、ブロック(104)に対するR、そのY位置(例えば行インデックス)及びX位置(列インデックス)でラベリングされる。H.264とH.265の両方において、再構成中のブロックに近い隣接する予測サンプルが使用される。
【0013】
ブロック104のイントラピクチャ予測は、信号予測方向に従って隣接するサンプルから参照サンプル値をコピーすることによって開始し得る。例えばコーディングされたビデオビットストリームが、このブロック104に対して、矢印(102)の予測方向を示すシグナリングを含むと仮定する、すなわち、サンプルは、予測サンプル又は複数のサンプルから右上へ、水平方向から45度の角度で予測される。このような場合、サンプルS41、S32、S23、S14は、同じ参照サンプルR05から予測される。次いで、サンプルS44は、参照サンプルR08から予測される。
【0014】
ある場合には、特に方向が45度で均一に割り切れないときは、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間(interpolation)を通して組み合わされ得る。
【0015】
ビデオコーディング技術の開発が続くにつれて、可能な方向の数が増えている。例えばH.264(2003年)では、9つの異なる方向がイントラ予測に利用可能である。これは、H.265(2013年)では33に増加し、本開示の時点で、JEM/VVC/BMSは、65の方向をサポートすることができる。実験研究は、最も適切なイントラ予測方向を識別するのを助けるために実施され、エントロピーコーディングにおけるある技術は、それらの最も適切な方向を少数のビットで符号化するために使用されてよく、方向に対してあるビットペナルティを受け入れる。さらに、時には方向それ自体を、復号された隣接ブロックのイントラ予測に使用される隣接方向から予測することができる。
【0016】
図1Bは、JEMに従う65のイントラ予測方向を示す概略図(180)を示しており、経時的に開発された様々な符号化技術における予測方向の数の増加を例示する。
【0017】
コーディングされたビデオビットストリームにおける予測方向へのイントラ予測方向を表すビットのマッピング方法は、ビデオコーディング技術ごとに異なってよく、例えばイントラ予測モードへの予測方向の単純な直接マッピングから、コードワード、最も可能性の高いモードを含む複雑な適応スキーム及び類似の技術に及ぶ可能性がある。しかしながら、すべての場合において、ビデオコンテンツ内において、特定の他の方向よりも統計的に起こりにくい、イントラ予測の特定の方向が存在する可能性がある。ビデオ圧縮の目標は冗長性の低減であるので、それらのより可能性の低い方向は、よく設計されたビデオコーディング技術では、より可能性が高い方向よりも多くのビット数によって表されてよい。
【0018】
インターピクチャ予測又はインター予測は、動き補償に基づいてもよい。動き補償では、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータは、動きベクトル(以下、MV:motion vector)によって示される方向に空間的にシフトされた後、新たに再構成されたピクチャ又はピクチャの一部(例えばブロック)の予測に使用されてよい。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じものとすることができる。MVは、2次元X及びY又は3次元を有してよく、3次元は、(時間次元に類似する)使用中の参照ピクチャの指示である。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能な現在のMVを、他のMVから、例えば再構成中のエリアに空間的に隣接し、かつ復号順序で現在のMVに先行するサンプルデータの他のエリアに関連するそれらの他のMVから、予測することができる。そうすることは、相関するMVの冗長性を除去することに依存することによって、MVをコーディングするために必要とされるデータの全体量を実質的に減少させることができ、それによって、圧縮効率を増加させることができる。MV予測は効果的に機能することができる。なぜなら、例えばカメラから導出された入力ビデオ信号(自然ビデオとして知られる)をコーディングする際に、単一のMVが適用可能なエリアよりも大きいエリアがビデオシーケンスにおいて同様の方向に移動するという統計的可能性が存在し、したがって、場合によって、隣接するエリアのMVから導出された同様の動きベクトルを用いて予測することができるからである。その結果、所与のエリアの実際のMVは、周囲のMVから予測されたMVと類似又は同一になる。このようなMVは、エントロピーコーディングの後、MVが、隣接するMVから予測されるのではなく、直接コーディングされる場合に使用されるよりも、より少ない数のビットで表現され得る。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出される信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測それ自体は、例えばいくつかの周囲のMVから予測子を計算する際の丸め誤差のために、非可逆あり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec. H.265、「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】
本開示の態様は、一般に、一組の先進的なビデオコーディング/復号技術に関し、より詳細には、複数基準線イントラ予測、変換区分化及び変換カーネルの間の調和設計に関する。
【0023】
いくつかの例示的な実装では、ビデオ情報を処理するための方法が開示される。方法は、ビデオフレームのデータブロックを取り出すステップであって、データブロックは、ビデオフレーム内の隣接基準線と1つ以上の非隣接基準線とを有する、ステップと;1つ以上の非隣接基準線のうちの1つの非隣接基準線が、データブロックのイントラ予測に使用されるかどうかを判断するステップとを含む。隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換するために、変換カーネルの第1セットからターゲット変換カーネルを選択するステップと、非隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換するために、変換カーネルの第2セットからターゲット変換カーネルを選択するステップとを含む。
【0024】
上記実装において、変換カーネルの第1セット及び変換カーネルの第2セットは、一次変換カーネル(primary transform kernels)又は二次変換カーネル(secondary transform kernels)である。
【0025】
上記実装のいずれか1つにおいて、変換カーネルの第1セットは、変換カーネルのスーパーセット(superset)を含み得、変換カーネルの第2セットは、変換カーネルのスーパーセットのサブセットを含み得る。変換カーネルの第1セット及び変換カーネルの第2セットは、一次変換カーネルであり得、変換カーネルの第2セットは、ハイブリッド変換カーネルとしてDCTタイプ2とADSTの組合せ、ハイブリッド変換カーネルとしてDCTタイプ2とADSTと反転(flipped)ADSTの組合せ、ハイブリッド変換カーネルとしてDCTタイプ2とIDTの組合せ、又はハイブリッド変換カーネルとしてDCTタイプ2とADSTと反転ADSTとIDTの組合せ、のうちの1つを含み得る。
【0026】
上記実装のいずれか1つにおいて、変換カーネルの第1セット及び変換カーネルの第2セットは、二次変換カーネルであり得、データブロックが2つ以上の変換区分ブロックを更に含むとき、変換カーネルの第2セットは、変換カーネルの第1セットのサブセットを構成し得る。いくつかの更なる実装において、データブロックは2つ以上の変換区分ブロック(transform partition blocks)を含み得、変換カーネルの第2セットは、NULLセットを含む。いくつかの他の実装において、データブロックは2つ以上の変換区分ブロックを含み得、変換カーネルの第1セット又は変換カーネルの第2セットからの変換カーネルの選択は、2つ以上の変換区分ブロックの各々について別個にシグナリングされる。
【0027】
上記実装のいずか1つにおいて、変換カーネルの第1セット及び変換カーネルの第2セットは、一次変換カーネルであり得、データブロックが2つ以上の変換区分ブロックを更に含むとき、変換カーネルの第2セットは、変換カーネルの第1セットのサブセットを構成し得る。いくつかの実装において、データブロックは2つ以上の変換区分ブロックを含み得、変換カーネルの第1セット又は変換カーネルの第2セットからの変換カーネルの選択は、2つ以上の変換区分ブロックの各々について別個にシグナリングされる。いくつかの実装において、データブロックは2つ以上の変換区分ブロックを含み得、変換カーネルの第2セットからの選択は、非隣接基準線が指定されるとき、予め定義されており、ビデオフレームに関連付けられるビットストリームではシグナリングされない。
【0028】
上記実装のいずれか1つにおいて、隣接基準線又は1つ以上の非隣接基準線の中の、データブロックのイントラ予測に使用される基準線に関連付けられる基準線インデックスは、変換カーネルの第1セット又は変換カーネルの第2セットから選択される二次変換カーネルを変換するための一次変換カーネルのカーネルインデックスのエントロピーコーディングのためのコンテキストを導出するために使用される。
【0029】
上記実装のいずれか1つにおいて、データブロックが、2つ以上の変換区分ブロックを更に含むとき、変換カーネルの第2セットは、2つ以上の変換区分ブロックのあるサブセットのための変換カーネルの第1セットのサブセットを構成し得、変換カーネルの第2セットと変換カーネルの第1セットは、2つ以上の変換区分ブロックの残りのサブセットについて同じであり得る。いくつかの実装において、2つ以上の変換区分ブロックのサブセットは、データブロックの上部又は左側の変換区分を含み得る。
【0030】
上記実装のいずれか1つにおいて、変換カーネルの第1セット又は変換カーネルの第2セットからのターゲット変換カーネルの選択は、有効にされている変換ブロックへデータブロックを区分化するために多重変換区分タイプ(multiple transform partition types)が有効にされていることに応答して実行され得、一次変換及び二次変換の両方がデータブロックについて有効にされている。
【0031】
いくつかの実装では、ビデオ情報を処理するための別の方法が開示される。本方法は、ビデオフレームのデータブロックを取り出すステップであって、データブロックは、ビデオフレーム内の隣接基準線と1つ以上の非隣接基準線とを有する、ステップと;1つ以上の非隣接基準線のうちの1つの非隣接基準線が、データブロックのイントラ予測に使用されるかどうかを判断するステップと、を含む。隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換区分ブロックに区分するために、変換区分タイプの第1セットから選択するステップと、非隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換区分ブロックに区分するために、変換区分タイプの第2セットから選択するステップとを含む。
【0032】
上記実装において、変換区分タイプの第2セットは、区分なしの区分タイプのみを含み得る。いくつかの実装において、変換区分タイプの第2セットは、変換区分タイプの第1セットのサブセットを構成し得、変換区分タイプの第2セットは各々、所定の閾値より小さい区分数に関連付けられる。
【0033】
ビデオ情報を処理するための別の方法が開示される。本方法は、ビデオフレームのデータブロックを取り出すステップであって、データブロックは、イントラ予測のためにビデオフレーム内の1つ以上の基準線を有し、各基準線は、基準線位置インデックスに関連付けられる、ステップと;データブロックのイントラ予測のために、1つ以上の基準線の中から基準線を選択するステップと;データブロックを処理するために、一次又は二次変換カーネルのサブセットから一次又は二次変換カーネルを選択するステップであって、一次又は二次変換カーネルのサブセットは、イントラ予測のために選択された基準線の基準線位置インデックスに基づいて、一次又は二次変換カーネルの完全なセットから選択される、ステップと、を含む。
【0034】
上記の実装において、一次又は二次変換カーネルのサブセットは、イントラ予測のために選択されるとき、すべての非隣接基準線に対して同一であり得る。
【0035】
いくつかの実装において、ビデオデバイスが開示される。ビデオデバイスは、上記方法の各々を実装するように構成される処理回路を含み得る。
【0036】
本開示の態様はまた、ビデオ復号及び/又は符号化のためにコンピュータによって実行されると、該コンピュータに、ビデオ復号及び/又は符号化のために上記の方法の実装のいずれか1つを実行させる命令を記憶する、非一時的なコンピュータ読取可能媒体も提供する。
【図面の簡単な説明】
【0037】
開示される主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【0038】
【
図1A】イントラ予測方向モードの例示的サブセットの概略図である。
【0039】
【0040】
【
図2】一例における動きベクトル予測のための現在のブロック及びその周囲の空間的マージ候補の概略図である。
【0041】
【
図3】例示的実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【0042】
【
図4】例示的実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
【0043】
【
図5】例示的実施形態によるビデオデコーダの簡略化されたブロック図の概略図である。
【0044】
【
図6】例示的実施形態によるビデオエンコーダの簡略化されたブロック図の概略図である。
【0045】
【
図7】別の例示的実施形態によるビデオエンコーダのブロック図である。
【0046】
【
図8】別の例示的実施形態によるビデオデコーダのブロック図である。
【0047】
【
図9】本開示の例示的実施形態による、コーディングブロック区分化(coding block partitioning)のスキームを示す図である。
【0048】
【
図10】本開示の例示的実施形態による、コーディングブロック区分化の別のスキームを示す図である。
【0049】
【
図11】本開示の例示的な実施形態による、コーディングブロック区分化の別のスキームを示す図である。
【0050】
【
図12】本開示の例示的な実施形態による、コーディングブロック区分化の別のスキームを示す図である。
【0051】
【
図13】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロック(multiple transform blocks)に区分化するためのスキーム及び変換ブロックのコーディング順序を示す図である。
【0052】
【
図14】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに区分化するための別のスキーム及び変換ブロックのコーディング順序を示す図である。
【0053】
【
図15】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに区分化するための別のスキームを示す図である。
【0054】
【
図16】本開示の例示的実施形態による、様々な基準線に基づくイントラ予測スキームを示す図である。
【0055】
【
図17】本開示の例示的な実施形態による、平面回転変換を示す図である。
【0056】
【
図18】本開示の例示的な実施形態による、様々なDCT-2、DCT-4部分バタフライ・ルックアップテーブル(partial butterfly lookup table)を示す図である。
【0057】
【
図19】本開示の例示的な実施形態によるDST-7部分バタフライ・ルックアップテーブルを示す図である。
【0058】
【
図20】本開示の例示的実施形態による、折れ線グラフ変換を示す図である。
【0059】
【
図21】本開示の例示的な実施形態による、二次変換セット選択を示す図である。
【0060】
【
図22】本開示の例示的実施形態による、4つの変換ブロックを有するコーディングブロックを示す図である。
【0061】
【
図23】本開示の例示的実施形態による方法のフローチャートを示す図である。
【
図24】本開示の例示的実施形態による方法のフローチャートを示す図である。
【
図25】本開示の例示的実施形態による方法のフローチャートを示す図である。
【0062】
【
図26】本開示の例示的実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0063】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば通信システム(300)は、ネットワーク(350)を介して相互接続される第1の対の端末デバイス(310)及び(320)を含む。
図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行し得る。例えば端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に伝送するために、(例えば端末デバイス(310)によってキャプチャされるビデオピクチャのストリームの)ビデオデータをコーディングし得る。コーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で伝送することができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受け取ることができ、コーディングされたビデオデータを復号して、ビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示する。一方向データ伝送は、メディア供給アプリケーション等において実装され得る。
【0064】
別の例では、通信システム(300)は、例えばビデオ会議アプリケーションの間に実装され得るコーディングされたビデオデータの双方向伝送を実行する、第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)及び(340)のうちの他方の端末デバイスに伝送するために、(例えばその端末デバイスによってキャプチャされるビデオピクチャのストリームの)ビデオデータをコーディングし得る。端末デバイス(330)及び(340)の各端末デバイスはまた、端末デバイス(330)及び(340)の他方の端末デバイスによって伝送されたコーディングされたビデオデータを受け取ることができ、コーディングされたビデオデータを復号してビデオピクチャを復元することができ、復元されたビデオデータに従って、アクセス可能なディスプレイデバイスにビデオピクチャを表示することができる。
【0065】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして実装され得るが、本開示の基本原理の適用性は、そのように限定され得ない。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用のビデオ会議装置及び/又は類似のものにおいて実装され得る。ネットワーク(350)は、例えばワイヤライン(有線)及び/又は無線通信ネットワークを含め、端末デバイス(310)、(320)、(330)及び(340)の間でコーディングされたビデオデータを伝達する任意の数又はタイプのネットワークを表す。通信ネットワーク(350)は、回線スイッチ、パケットスイッチ及び/又は他のタイプのチャネルにおいてデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジは、本明細書において明示的に説明されない限り、本開示の動作に対して重要ではないことがある。
【0066】
図4は、開示される主題の適用の例として、ビデオストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示される主題は、例えばビデオ会議、デジタルTV放送、ゲーム、仮想現実、CD、DVD、メモリスティック等を含むデジタルメディアにおける圧縮ビデオの記憶等を含む、他のビデオアプリケーションにも同様に適用可能であり得る。
【0067】
ビデオストリーミングシステムは、圧縮されていないビデオピクチャ又は画像のストリーム(402)を作成するためのビデオソース(401)、例えばデジタルカメラを含むことができる、ビデオキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、ビデオソース(401)のデジタルカメラによって記録されるサンプルを含むビデオピクチャのストリーム(402)は、符号化ビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較したときの高データ量を強調するために太線として示されており、ビデオソース(401)に結合されるビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下により詳細に説明されるような、開示される主題の態様を可能にするか又は実装するために、ハードウェア、ソフトウェア又はそれらの組合せを含むことができる。符号化ビデオデータ(404)(又は符号化ビデオビットストリーム(404))は、非圧縮ビデオピクチャのストリーム(402)と比較したときの低データ量を強調するために細線として示されており、将来の使用のため又は下流のビデオデバイス(図示せず)に対して直接的にストリーミングサーバ(405)に記憶されることができる。
図4のクライアントサブシステム(406)及び(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化ビデオデータ(404)のコピー(407)及び(409)を取り出すことができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は符号化ビデオデータの入力コピー(407)を復号し、そして、圧縮されておらず、かつディスプレイ(412)(例えばディスプレイ画面)又は他のレンダリングデバイス(図示せず)上でレンダリングすることができる、ビデオピクチャの出力ストリーム(411)を作成する。ビデオデコーダ410は、本開示で説明される様々な機能の一部又はすべてを実行するように構成され得る。いくつかのストリーミングシステムでは、符号化ビデオデータ(404)、(407)及び(409)(例えばビデオビットストリーム)を、特定のビデオコーディング/圧縮規格に従って符号化することができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、(VVC:Versatile Video Coding)として非公式に知られている。開示される主題は、VVC及び他のビデオコーディング規格の文脈で使用され得る。
【0068】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0069】
図5は、以下の本開示のいずれかの実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれてよい。電子デバイス(530)は、受信機(531)(例えば受信回路)を含むことができる。
図4の例のビデオデコーダ(410)の代わりに、ビデオデコーダ(510)を用いることができる。
【0070】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上のコーディングされたビデオシーケンスを受け取ることができる。同じ又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスが復号されることがあり、この場合、各コーディングされたビデオシーケンスの復号は、他のコーディングビデオシーケンスとは独立である。各ビデオシーケンスは、複数のビデオフレーム又は画像に関連付けられ得る。コーディングされたビデオシーケンスはチャネル(501)から受け取られてよく、該チャネルは、符号化ビデオデータを記憶するストレージデバイス又は符号化ビデオデータを伝送するストリーミングソースへのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、コーディングされたオーディオデータ及び/又は補助データストリームのような他のデータとともに、符号化ビデオデータを受け取ってよく、これらのデータは、それらのそれぞれの処理回路(図示せず)に転送されてよい。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタをなくすために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に配置され得る。特定の適用では、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実装され得る。他の適用では、バッファメモリ(515)は、ビデオデコーダ(510)(図示せず)の外側にあり、ビデオデコーダ(510)から分離することができる。更に他の適用では、例えばネットワークジッタをなくす目的のために、ビデオデコーダ(510)の外側にバッファメモリ(図示せず)が存在することができ、例えば再生タイミングを処理するために、ビデオデコーダ(510)の内部に別の追加のバッファメモリ(515)が存在してもよい。受信機(531)が、十分な帯域幅及び制御可能性を有するストア/転送デバイスから又は等同期(isosynchronous)ネットワークからデータを受信しているとき、バッファメモリ(515)は必要でないことがあり、あるいは小さいものとすることができる。インターネットのようなベストエフォート・パケットネットワークにおける使用のために、十分なサイズのバッファメモリ(515)が必要とされることがあり、そのサイズは比較的大きい可能性がある。このようなバッファメモリは、適応サイズで実装されてよく、少なくとも部分的に、ビデオデコーダ(510)の外側のオペレーティングシステム又は類似の要素(図示せず)において実装されてよい。
【0071】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、電子デバイス(530)の一体部分であってもなくてもよいが、
図5に示されるように電子デバイス(530)に結合され得る、ディスプレイ(512)(例えばディスプレイ画面)のようなレンダリングデバイスを制御する情報を含む。レンダリングデバイスの制御情報は、補足強化情報(SEI:Supplemental Enhancement Information)メッセージ又はビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形式であってよい。パーサ(520)は、該パーサ(520)によって受信される、コーディングされたビデオシーケンスを構文解析/エントロピー復号し得る。コーディングされたビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存(context sensitivity)を伴うか伴わない算術コーディング等を含む、様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループについてのサブグループパラメータのセットを、サブグループに対応する少なくとも1つのパラメータに基づいて抽出することができる。サブグループは、ピクチャのグループ(GOPs:Groups of Pictures)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CUs:Coding Units)、ブロック、変換ユニット(TUs:Transform Units)、予測ユニット(PUs:Prediction Units)等を含むことができる。パーサ(520)はまた、変換係数(例えばフーリエ変換係数)、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオシーケンス情報から抽出してもよい。
【0072】
パーサ(520)は、シンボル(521)を生成するように、バッファメモリ(515)から受け取ったビデオシーケンスに対してエントロピー復号/構文解析動作を実行し得る。
【0073】
シンボル(521)の再構成は、コーディングされたビデオピクチャ又はその部分のタイプ(例えばインター及びイントラピクチャ、インター及びイントラブロック)及び他のファクタに応じて、複数の異なる処理又は機能に関与することができる。関与するユニット及びそれらがどのように関与するかは、コーディングされたビデオシーケンスからパーサ(520)によって構文解析されたサブグループ制御情報によって制御され得る。パーサ(520)と、下記の複数の処理又は機能ユニットとの間のそのようなサブグループ制御情報のフローは、簡潔性のために図示されていない。
【0074】
既に述べた機能ブロックの他に、ビデオデコーダ(510)は、以下で説明するように、複数の機能ユニットに概念的に細分されることができる。商業的制約の下で動作する実用的な実装では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的には互いに統合されることができる。しかしながら、開示される主題事項の様々な機能を明確に説明する目的のために、以下の開示において、機能ユニットへの概念的な細分化が用いられる。
【0075】
第1ユニットは、スケーラ/逆変換ユニット(551)を含み得る。スケーラ/逆変換ユニット(551)は、使用すべき逆変換のタイプ、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列及びパーサ(520)からのシンボル(521)としての位置(lie)を示す情報を含む制御情報だけでなく、量子化された変換係数も受け取ることができる。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0076】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関係する可能性がある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、既に再構成されて現在のピクチャバッファ(558)に記憶されている周囲のブロック情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成し得る。現在のピクチャバッファ(558)は、例えば部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファする。アグリゲータ(555)は、いくつかの実装において、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供されるように、出力サンプル情報に追加し得る。
【0077】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされて潜在的に動き補償されるブロックに関係する可能性がある。このような場合、動き補償予測ユニット(553)は、インターピクチャ予測に使用されるサンプルをフェッチするために参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関連するシンボル(521)に従って、フェッチされたサンプルを動き補償した後、これらのサンプルは、アグリゲータ(555)によって、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(551)の出力(ユニット551の出力は、残差サンプル又は残差信号と呼ばれ得る)に追加されることができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Y成分(シフト)と参照ピクチャ成分(時間)を有することができるシンボル(521)の形態で、動き補償予測ユニット(553)に利用可能な動きベクトルによって、制御されることができる。動き補償はまた、サブサンプルの正確な動作ベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるサンプル値の補間も含んでもよく、また、動きベクトル予測メカニズム等に関連付けられてもよい。
【0078】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)内の様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、かつパーサ(520)からシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(復号順序で)以前の部分の復号中に取得されたメタ情報に応答することができるとともに、以前に再構成されてループフィルタリングされたサンプル値に応答することができる、ループ内フィルタ技術を含むことができる。以下で更に詳細に説明されるように、いくつかのタイプのループフィルタが、様々な順序でループフィルタユニット556の一部として含まれてもよい。
【0079】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されることができ、かつ将来のインターピクチャ予測に使用するために参照ピクチャメモリ(557)内に記憶されることができる、サンプルストリームとすることができる。
【0080】
あるコーディングされたピクチャは、いったん完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用されることができる。例えば現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えばパーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となることができ、フレッシュな現在のピクチャバッファは、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされることができる。
【0081】
ビデオデコーダ(510)は、ITU-T Rec.H.265のような規格で採用されている所定のビデオ圧縮技術に従って復号動作を実行し得る。コーディングされたビデオシーケンスは、該コーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格の構文と、ビデオ圧縮技術又は規格で文書化されるプロファイルとの両方を守るという意味において、使用されているビデオ圧縮技術又は規格によって指定された構文に準拠し得る。具体的には、プロファイルは、そのプロファイルの下での使用に使用可能な唯一のツールとして、ビデオ圧縮技術又は規格で使用可能なすべてのツールから特定のツールを選択することができる。規格準拠であるために、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプル(megasamples)で測定される)、最大参照ピクセルサイズ等を制限する。レベルによって設定される限界(limit)は、場合によっては、コーディングされたビデオシーケンスでシグナリングされる仮想リファレンスデコーダ(HRD:Hypothetical Reference Decoder)のバッファ管理のためのHRD仕様及びメタデータを通して更に制限される可能性がある。
【0082】
いくつかの例示的な実施形態では、受信機(531)は、符号化ビデオとともに追加の(冗長な)データを受け取ることがある。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてよい。追加のデータは、データを適切に復号し、かつ/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば時間的、空間的又は信号対ノイズ比(SNR)強化層(enhancement layers)、冗長スライス、冗長ピクチャ、順方向誤り訂正コード等の形態とすることができる。
【0083】
図6は、本開示の例示的実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれてよい。電子デバイス(620)は、送信機(640)(例えば送信回路)を更に含んでもよい。
図4の例のビデオエンコーダ(403)の代わりに、ビデオエンコーダ(603)を使用することができる。
【0084】
ビデオエンコーダ(603)は、ビデオサンプルを、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像をキャプチャし得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)から受け取ってよい。別の例では、ビデオソース(601)は、電子デバイス(620)の一部として実装されてもよい。
【0085】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば8ビット、10ビット、12ビット、...)、任意の色空間(例えばBT.601 YCrCb、RGB、XYZ...)及び任意の適切なサンプリング構造(例えばYCrCb 4:2:0、YCrCb 4:4:4...)とすることができるデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムにおいて、ビデオソース(601)は、事前に準備されたビデオを記憶することができるストレージデバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、シーケンスで見るときに動きを伝える複数の個々のピクチャ又は画像として提供されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、この場合、各ピクセルは、使用されているサンプリング構造、色空間等に応じて1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0086】
いくつかの例示的な実施形態によると、ビデオエンコーダ(603)は、リアルタイムで又はアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディング及び圧縮して、コーディングされたビデオシーケンス(643)にすることができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能を構成する。いくつかの実施形態において、コントローラ(650)は、以下で説明されるように、他の機能ユニットに機能的に結合され、制御し得る。この結合は、簡潔性のために図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)のレイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化された、ビデオエンコーダ(603)と関係する他の適切な機能を有するように構成されることができる。
【0087】
いくつかの例示的実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成されてもよい。過剰に簡略化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えばコーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボルを作成することを担当する)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。埋め込みデコーダ633は、エントロピーコーディングなしでソースコーダ630によってビデオストリームを処理するが、デコーダ(633)は、(リモート)デコーダが作成するのと同様の方法で、シンボルを再構成してサンプルデータを作成する(エントロピーコーディングにおけるシンボルとコーディングされたビデオビットストリームとの間の任意の圧縮は、開示される主題において考慮されるビデオ圧縮技術で可逆であり得るため)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)とは独立のビット正確な結果(bit-exact results)をもたらすので、参照ピクチャメモリ(634)中のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャのシンクロニシティ(synchronicity)のこの基本原理(及び例えばチャネルエラーのためにシンクロニシティを維持することができない場合の結果として生じるドリフト)を使用して、コーディング品質を改善することができる。
【0088】
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)のような「リモート」デコーダと同じものとすることができ、これは、既に
図5に関連して上述されている。しかしながら、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)によるコーディングされたビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、バッファメモリ(515)及びパーサ(520)を含むビデオデコーダ(510)のエントロピー復号部分は、エンコーダ内のローカルデコーダ(633)では完全には実装されないことがある。
【0089】
この時点で行われ得る観察は、デコーダ内にのみ存在し得る、解析/エントロピー復号以外の任意のデコーダ技術がまた、対応するエンコーダにおいて、実質的に同一の機能的形態で必ず存在する必要があり得るということである。この理由のため、開示される主題は時には、エンコーダの復号部分と関連するデコーダ動作に焦点を当てることがある。したがって、エンコーダ技術の説明は、網羅的に説明されるデコーダ技術の反対であるので、省略することができる。特定の領域又は態様においてのみ、エンコーダのより詳細な説明が以下に提供される。
【0090】
いくつかの例示的な実装における動作中に、ソースコーダ(630)は、動き補償予測コーディングを実行してよく、動き補償予測コーディングは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされたピクチャに関連して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間のカラーチャネルにおける差(又は残差)をコーディングする。「残差(residue)」という用語及びその形容詞である「残差の(residual)」は、交換可能に使用され得る。
【0091】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータを復号し得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(
図6には図示せず)で復号され得るとき、再構成ビデオシーケンスは、典型的に、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャ上に対してビデオデコーダによって実行され得る復号処理を複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、(伝送誤差なしに)遠端(リモート)ビデオデコーダによって取得される再構成参照ピクチャとして、共通のコンテンツを有する再構成参照ピクチャのコピーを、ローカルに記憶し得る。
【0092】
予測器(635)は、コーディングエンジン(632)について予測探索を実行し得る。すなわち、コーディングされるべき新しいピクチャについて、予測器(635)は、参照ピクチャメモリ(634)から、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状等のような特定のメタデータを探索してよく、これらのデータは、新しいピクチャのための適切な予測参照として機能し得る。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックとピクセルブロックごと(sample block-by-pixel block basis)に動作し得る。場合によっては、予測器(635)によって取得される検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有してよい。
【0093】
コントローラ(650)は、例えばビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理してもよい。
【0094】
前述の機能ユニットのすべての出力は、エントロピーコーダ(645)におけるエントロピーコーディングの対象となり得る。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディング等のような技術に従ったシンボルの可逆圧縮によって、様々な機能ユニットによって生成されるシンボルを、コーディングされたビデオシーケンスに変換する。
【0095】
送信機(640)は、エントロピーコーダ(645)によって作成されるコーディングされたビデオシーケンスをバッファして、通信チャネル(660)を介した伝送の準備を行ってよく、該通信チャネル(660)は、符号化されたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、伝送されるべき他のデータ、例えばコーディングされたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージし得る。
【0096】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディングの間、コントローラ(650)は、各コーディングされたピクチャに、特定のコーディングされたピクチャタイプを割り当ててよく、該ピクチャタイプは、それぞれのピクチャに適用され得るコーディングに影響を与え得る。例えばピクチャは、しばしば、次のピクチャタイプのうちの1つとして割り当てられ得る:
【0097】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいずれの他のピクチャも使用せずにコーディング及び復号され得るものであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR:Independent Decoder Refresh」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例並びにそれらのそれぞれの用途及び特徴を知っている。
【0098】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大1つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものであり得る。
【0099】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大2つの動きベクトルと基準インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものであり得る。同様に、複数予測ピクチャ(multiple-predictive pictures)は、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連するメタデータを使用することができる。
【0100】
ソースピクチャは、通常、空間的に複数のサンプルコーディングブロック(例えば各々4×4、8×8、4×8又は16×16サンプルのブロック)に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックに関連して予測的にコーディングされ得る。例えばIピクチャのブロックは、非予測的にコーディングされてもよく、あるいはそれらは、同じピクチャの既にコーディングされたブロックに関連して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングされた1つの参照ピクチャに関連して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャに関連して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。ソースピクチャ又は中間処理されたピクチャは、他の目的のために、他のタイプのブロックに細分化されてもよい。コーディングブロック及び他のタイプのブロックの分割は、以下に更に詳細に説明されるように、同じ方法に従うことも、従わないこともある。
【0101】
ビデオエンコーダ(603)は、ITU-T勧告H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行し得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって指定された構文に従うことができる。
【0102】
いくつかの例示的な実施形態では、送信機(640)は、符号化されたビデオとともに追加データを送信してもよい。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含んでよい。追加データは、時間/空間/SNR強化層、冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等のような他の形式の冗長データを含んでもよい。
【0103】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与の画像における空間的相関を利用し、インターピクチャ予測は、ピクチャ間の時間的又は他の相関を利用する。例えば符号化/復号中の特定のピクチャは、現在のピクチャと呼ばれ、ブロックに区分化され得る。現在のピクチャ内のブロックは、ビデオ内の以前にコーディングされて依然としてバッファされている参照ピクチャ内の参照ブロックに類似するとき、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数参照ピクチャが使用されているケースでは、参照ピクチャを識別する第3次元(third dimension)を有することができる。
【0104】
いくつかの例示的な実施形態では、インターピクチャ予測のために双予測技術を使用することができる。このような双予測技術によると、第1参照ピクチャと第2参照ピクチャのように、両方とも、復号順序でビデオ内の現在の画像を進める(ただし、表示順序では、それぞれ、過去又は将来であり得る)2つの参照ピクチャが使用される。現在のピクチャ内のブロックを、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによってコーディングすることができる。ブロックは、第1参照ブロックと第2参照ブロックの組合せによって、共同で予測されることができる。
【0105】
さらに、コーディング効率を改善するために、マージモード技術がインターピクチャ予測において使用されてよい。
【0106】
本開示のいくつかの例示的な実施形態によれば、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックのユニット(unit)において実行される。例えばビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に区分化され、ピクチャ内のCTUsは、64×64ピクセル、32×32ピクセル又は16×16ピクセルのように、同じサイズを有し得る。一般に、CTUは、3つの並列のコーディングツリーブロック(CTBs)、すなわち、1つのルマ(luma)CTBと2つのクロマCTBを含み得る。各CTUは、1つ又は複数のコーディングユニット(CUs)に再帰的に四分木分裂(quadtree split)することができる。例えば64×64ピクセルのCTUを、64×64ピクセルの1つのCUに又は32×32ピクセルの4つのCUに分裂させることができる。32×32ブロックの1つ以上の各々は、16×16ピクセルの4つのCUに更に分裂され得る。いくつかの例示的な実施形態において、各CUは、符号化中に分析されて、インター予測タイプ又はイントラ予測タイプのような様々な予測タイプの中で、CUの予測タイプを決定することができる。CUは、時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PUs)に分裂され得る。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBsを含む。一実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックのユニットにおいて実行される。CUのPU(又は異なるカラーチャネルのPBs)への分裂は、様々な空間パターンで実行され得る。ルマ又はクロマPBは、例えば8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8サンプル等のような、サンプルについての値(例えばルマ値)の行列を含んでもよい。
【0107】
図7は、本開示の別の例示的実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば予測ブロック)を受け取り、処理ブロックを符号化して、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにするように構成される。例示的なビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用されてよい。
【0108】
例えばビデオエンコーダ(703)は、8×8サンプルの予測ブロック等のような処理ブロックのサンプル値のマトリクスを受け取る。次いで、ビデオエンコーダ(703)は、処理ブロックが、例えばレート歪み最適化(RDO:rate-distortion optimization)を使用して、イントラモード、インターモード又は双予測(bi-prediction)モードを使用して最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされると判断されるとき、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックを符号化して、コーディングされたピクチャにしてよく、処理ブロックがインターモード又は双予測モードでコーディングされると判断されるとき、ビデオエンコーダ(703)は、インター予測技術又は双予測技術を使用して、それぞれ、処理ブロックを符号化して、符号化ピクチャにしてよい。いくつかの例示的な実施形態では、マージモードは、予測器の外側のコーディングされた動きベクトル成分の利益を伴わずに、動きベクトルが1つ以上の動きベクトル予測器から導出される場合、インターピクチャ予測のサブモードとして使用されてもよい。いくつかの他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル構成要素が存在してもよい。したがって、ビデオエンコーダ(703)は、処理ブロックのパーディションモード(perdition mode)を決定するために、モード決定モジュールのような、
図7に明示的に示されていない構成要素を含んでもよい。
【0109】
図7の例では、ビデオエンコーダ(703)は、
図7の例示的配置で示されるように一緒に結合される、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、一般コントローラ(721)及びエントロピーエンコーダ(725)を含む。
【0110】
インターエンコーダ(730)は、現在のブロック(例えば処理ブロック)のサンプルを受け取り、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば表示順序で前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えばインター符号化技術に従った冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば予測ブロック)を計算するよう構成される。いくつかの例では、参照ピクチャは、
図6の例示のエンコーダ603に埋め込まれた復号ユニット633(以下で更に詳細に説明されるように、
図7の残差デコーダ728として示される)を使用して、符号化されたビデオ情報に基づいて復号される復号参照ピクチャである。
【0111】
イントラエンコーダ(722)は、現在のブロック(例えば処理ブロック)のサンプルを受け取り、該ブロックを、同じピクチャ内の既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するよう構成される。イントラエンコーダ(722)は、イントラ予測情報と同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば予測ブロック)を計算し得る。
【0112】
一般コントローラ(721)は、一般制御データを決定し、該一般制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するよう構成され得る。一例では、一般コントローラ(721)は、ブロックの予測モードを決定し、該予測モードに基づいて制御信号をスイッチ(726)に提供する。例えば予測モードがイントラモードであるとき、一般コントローラ(721)は、残差計算器(723)が使用するためのイントラモードの結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択して該イントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、ブロックの予測モードがインターモードであるとき、一般コントローラ(721)は、残差計算器(723)が使用するためのインター予測結果を選択するようにスイッチ(726)を制御し、インター予測情報を選択して該インター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0113】
残差計算器(723)は、イントラエンコーダ(722)又はインターエンコーダ(730)から選択されたブロックについて、受け取ったブロックと予測結果との差(残差データ)を計算するよう構成され得る。残差エンコーダ(724)は、残差データを符号化して、変換係数を生成するよう構成され得る。例えば残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して、変換係数を生成するように構成され得る。次いで、変換係数は、量子化処理の対象となり、量子化された変換係数を取得する。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するよう構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用されることができる。例えばインターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)内でバッファリングされ、参照ピクチャとして使用されることができる。
【0114】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットし、エントロピーコーディングを実行するよう構成され得る。エントロピーエンコーダ(725)は、ビットストリーム内に様々な情報を含めるように構成される。例えばエントロピーエンコーダ(725)は、一般制御データ、選択された予測情報(例えばイントラ予測情報又はインター予測情報)、残差情報及び他の適切な情報をビットストリーム内に含めるよう構成され得る。インターモード又は双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報がないことがある。
【0115】
図8は、本開示の別の実施形態による、例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部である、コーディングされたピクチャを受け取り、コーディングされたピクチャを復号して再構成ピクチャを生成するよう構成される。一例では、
図4の例のビデオデコーダ(410)の代わりにビデオデコーダ(810)を使用してもよい。
【0116】
図8の例では、ビデオデコーダ(810)は、
図8の例示的配置で示されるように一緒に結合される、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)及びイントラデコーダ(872)を含む。
【0117】
エントロピーデコーダ(871)は、コーディングされたピクチャから、該コーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するよう構成されることができる。そのようなシンボルは、例えばブロックがコーディングされるモード(例えばイントラモード、インターモード、双予測モード、マージサブモード又は別のサブモード)、イントラデコーダ(872)又はインターデコーダ(880)によって予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えばイントラ予測情報又はインター予測情報)、例えば量子化された変換係数の形態の残差情報等を含むことができる。一例では、予測モードがインターモード又は双予測モードであるとき、インター予測情報がインターデコーダ(880)に提供され、予測モードがイントラ予測モードであるとき、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化の対象となり、残差デコーダ(873)に提供され得る。
【0118】
インターデコーダ(880)は、インター予測情報を受け取り、該インター予測情報に基づいてインター予測結果を生成するよう構成され得る。
【0119】
イントラデコーダ(872)は、イントラ予測情報を受け取り、該イントラ予測情報に基づいて予測結果を生成するよう構成され得る。
【0120】
残差デコーダ(873)は、逆量子化を実行して非量子化(de-quantized)変換係数を抽出し、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するよう構成され得る。残差デコーダ(873)はまた、エントロピーデコーダ(871)によって提供され得る特定の制御情報(量子化器パラメータ(QP:Quantizer Parameter)を含む)も利用してもよい(これは低データ量の制御情報のみであり得るので、データ経路は図示されない)。
【0121】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によっては、インター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成ビデオの一部として再構成ピクチャの一部を形成する再構成ブロックを形成するよう構成され得る。視覚品質を改善するために、デブロッキング操作等の他の適切な操作も実行されてよいことに留意されたい。
【0122】
ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、任意の適切な技術を使用して実装されることができることに留意されたい。いくつかの例示的な実施形態では、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、1つ以上の集積回路を使用して実装されることができる。別の実施形態では、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装されることができる。
【0123】
コーディングブロック区分化に移ると、いくつかの例示の実装では、所定のパターンが適用され得る。
図9に示されるように、第1所定レベル(例えば64×64ブロックレベル)から開始して第2所定レベル(例えば4×4レベル)まで下がる例示的な4方向区分ツリーが用いられてよい。例えばベースブロックは、902、904、906及び908によって示される4つの区分化オプション(partitioning options)の対象となり得、Rとして指定される区分(partitions)は、
図9に示されるものと同じ区分ツリーが、最低レベル(例えば4×4レベル)までより低いスケールで繰り返され得るという点において、再帰的区分(recursive partitions)が許容される。いくつかの実装では、
図9の区分化スキームに追加の制限が適用されることがある。
図9の実装では、矩形区分(例えば1:2/2:1の矩形区分)は許容され得るが、これらの区分は再帰的であることは許容され得ず、一方、正方形区分は再帰的であることが許容される。
図9に従う再帰を伴う分割は、必要であれば、コーディングブロックの最終セットを生成する。そのようなスキームは、1つ以上のカラーチャネルに適用され得る。
【0124】
図10は、区分化ツリーを形成するために再帰的区分化を許容する、別の例示的な予め定義された区分化パターンを示している。
図10に示されるように、例示的な10方向の区分化構造又はパターンが予め定義され得る。ルートブロックは、予め定義されたレベル(例えば128×128レベル又は64×64レベル)で開始してよい。
図10の例示的な区分構造は、様々な2:1/1:2及び4:1/1:4の矩形区分を含む。
図10の2行目に1002、1004、1006及び1008として示されている3つのサブ区分の区分タイプは、「T型」区分と呼ばれ得る。「T型」区分1002、1004、1006及び1008は、左T型、上T型、右T型及び下T型と呼ばれ得る。いくつかの実装では、
図10の矩形区分のいずれも、更に細分化することは許容されない。コーディングツリーの深度は、ルートノード又はルートブロックからの分裂の深度を示すために更に定義されてもよい。例えばルートノード又はルートブロック、例えば128×128ブロックについてのコーディングツリーの深度は0に設定されてもよく、ルートブロックが
図10に従って更に一度分裂された後、コーディングツリーの深度は1だけ増加される。いくつかの実装では、1010内のすべて正方形区分のみが、
図10のパターンに従う区分化ツリーの次のレベルへの再帰的区分化について許容され得る。言い換えると、再帰的区分化は、パターン1002、1004、1006及び1006の正方形区分については許容され得ない。
図10に従う再帰を伴う区分化は、必要であれば、コーディングブロックの最終セットを生成する。そのようなスキームは、1つ以上のカラーチャネルに適用され得る。
【0125】
ベースブロックを、上記の区分化手順又は他の手順のいずれかに従って分割又は区分化した後、再度、区分又はコーディングブロックの最終セットが取得され得る。これらの区分の各々は、様々な区分化レベルのうちの1つであり得る。区分の各々は、コーディングブロック(CB)と呼ばれ得る。上記の様々な例示的の区分化実装では、結果として得られる各CBは、許容されるサイズ及び区分化レベルのいずれかであり得る。それらは、いくつかの基本的なコーディング/復号決定が行われ、かつコーディング/復号パラメータが最適化され、決定され、符号化ビデオビットストリーム内でシグナリングされ得る、ユニットを形成し得るため、コーディングブロックと呼ばれる。最後の区分内の最高レベルは、コーディングブロック区分化ツリーの深度を表す。コーディングブロックは、ルマコーディングブロック又はクロマコーディングブロックであり得る。
【0126】
いくつかの他の例示的実装では、四分木構造が、ベースのルマ及びクロマブロックを再帰的にコーディングユニットへ分裂させるために使用されてもよい。このような分裂構造は、コーディングツリーユニット(CTU)と呼ばれてよく、コーディングツリーユニット(CTU)は、四分木構造を使用して、ベースのCTUの様々な局所特的性に区分化を適応させることによって、コーディングユニット(CUs)に分裂される。そのような実装では、暗黙の四分木分裂(implicit quadtree split)がピクチャ境界で実行されてよく、その結果、サイズがピクチャ境界に適合するまで、ブロックは四分木分裂を維持することになる。CUという用語は、ルマコーディングブロック及びクロマコーディングブロック(CBs)のユニットを総称するために使用される。
【0127】
いくつかの実装では、CBは更に区分化されてもよい。例えばCBは、コーディング及び復号プロセスの間にイントラ又はインターフレーム予測の目的のために、複数の予測ブロック(PBs)に更に区分化されてもよい。言い換えると、CBは異なるサブ区分に更に分割されてよく、そこで個々の予測決定/構成が行われてよい。並列に、CBは、ビデオデータの変換又は逆変換が実行されるレベルを描写するために、複数の変換ブロック(TBs)に更に分割されてもよい。CBのPBs及びTBsへの区分化スキームは、同じであっても、同じてなくてもよい。例えば区分化スキームは、例えばビデオデータの様々な特性に基づいて、それ自身の手順を用いて実行されてもよい。PB及びTBの区分化スキームは、いくつかの例示的な実装では独立であってよい。PB及びTBの区分化スキーム及び境界は、いくつかの他の例示的な実装では相関してもよい。いくつかの実装では、例えばTBは、PB区分の後に区分化されてもよく、特に、各PBは、コーディングブロックの区分化に続いて決定された後に、1つ以上のTBに更に区分化されてもよい。例えばいくつかの実装では、PBを1つ、2つ、4つ又は他の数のTBsに分裂させてもよい。
【0128】
いくつかの実装では、ベースブロックをコーディングブロックに区分化し、予測ブロック及び/又は変換ブロックに更に区分化するために、ルマチャネル及びクロマチャネルは、異なるように取り扱われ得る。例えばいくつかの実装では、コーディングブロックの予測ブロック及び/又は変換ブロックへの区分化は、ルマチャネルについては許容され得るが、コーディングブロックの予測ブロック及び/又は変換ブロックへのそのような区分化は、クロマチャネルについては許容され得ない。そのような実装では、ルマブロックの変換及び/又は予測は、コーディングブロックレベルでのみ行われ得る。別の例では、ルマチャネルとクロマチャネルの最小変換ブロックサイズが異なってもよく、例えばルマチャネルのコーディングブロックは、クロマチャネルよりも小さな変換ブロック及び/又は予測ブロックに区分化されることが許容され得る。更に別の例では、変換ブロック及び/又は予測ブロックへのコーディングブロックの区分化の最大深度は、ルマチャネルとクロマチャネルとの間で異なってよく、例えばルマチャネルのコーディングブロックは、クロマチャネルよりも深い変換ブロック及び/又は予測ブロックに区分化されることが許容され得る。具体的な例では、ルマコーディングブロックは、最大2レベルまで下がる再帰的区分によって表すことができる複数のサイズの変換ブロックに区分化されてよく、正方形、2:1/1:2及び4:1/1:4のような変換ブロックの形状と、4×4から64×64までの変換ブロックサイズが許容され得る。しかしながら、クロマブロックでは、ルマブロックについて指定された最も大きい可能な変換ブロックのみが許可され得る。
【0129】
コーディングブロックをPBに区分化するためのいくつかの例示的実装では、PB区分化の深度、形状及び/又は他の特性は、PBがイントラコーディングされるか又はインターコーディングされるかに依存し得る。
【0130】
コーディングブロック(又は予測ブロック)の変換ブロックへの区分化は、これらに限定されないが、再帰的又は非再帰的に、コーディングブロック又は予測ブロックの境界での変換ブロックの追加的考慮により、四分木分裂及び予め定義されたパターン分裂を含む様々な例示的スキームで実装されてよい。一般に、結果として得られる変換ブロックは、異なる分裂レベルであってよく、同じサイズでなくてよく、また、形状が正方形である必要はなくてもよい(例えば何らかの許容されるサイズ及びアスペクト比を有する矩形とすることができる)。
【0131】
いくつかの実装では、コーディング区分ツリースキーム又は構造が使用され得る。ルマチャネル及びクロマチャネルに使用されるコーディング区分ツリースキームは、同じである必要はなくてよい。言い換えると、ルマチャネルとクロマチャネルは別個のコーディングツリー構造を有してよい。さらに、ルマチャネル及びクロマチャネルが、同じコーディング区分ツリー構造を使用するか又は異なるコーディング区分ツリー構造を使用するかどうか、及び使用される実際のコーディング区分ツリー構造は、コーディングされているスライスがP、B又はIスライスであるかどうかに依存し得る。例えばIスライスでは、クロマチャネルとルマチャネルは、別個のコーディング区分ツリー構造又はコーディング区分ツリー構造モードを有してよく、一方、P又はBスライスでは、ルマチャネルとクロマチャネルは、同じコーディング区分ツリースキームを共有してよい。別個のコーディング区分ツリー構造又はモードが適用されるとき、ルマチャネルは、ある1つのコーディング区分ツリー構造によってCBsに区分化され得、クロマチャネルは、別のコーディング区分ツリー構造によってクロミナンスCBsに区分化され得る。
【0132】
コーディングブロックと変換ブロック区分化の具体的な例示的実装を以下で説明する。このような例示的実装では、ベースコーディングブロックは、上述した再帰的四分木分裂を使用してコーディングブロックに分裂されてよい。各レベルにおいて、特定の区分の更なる四分木分裂を継続すべきかどうかが、ローカルビデオデータ特性によって決定され得る。結果として得られるCBは、様々なサイズの様々な四分木分裂レベルであり得る。インターピクチャ(時間)又はイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングするかどうかの決定は、CBレベル(又はすべての3つのカラーチャネルに対して、CUレベル)で行われてよい。各CBは、PB分裂タイプに応じて、1つ、2つ、4つ又は他の数のPBsに更に分裂されてよい。ある1つのPBの内部では、同じ予測プロセスが適用され、関連情報が、PBベースでデコーダに伝送される。PB分裂のタイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CBを、該CBのコーディングツリーと同様の別の四分木構造に従ってTBsに区分化することができる。この特定の実装では、CB又はTBは正方形の形状であるが、必ずしも限定される必要はない。さらに、この特定の例では、PBは、インター予測のために正方形又は矩形の形状であってよく、イントラ予測のためには正方形のみであり得る。コーディングブロックは、例えば4つの正方形の形状のTBに更に分裂され得る。各TBは、再帰的に(四分木分裂を用いて)、残差四分木(RQT:Residual Quad-Tree)と呼ばれるより小さなTBに更に分裂され得る。
【0133】
ベースコーディングブロックをCBと他のPB及び/又はTBに区分化するための別の具体例を以下に記載する。例えば
図10に示されるような複数の区分ユニットタイプを使用するのではなく、2進及び3進分裂セグメンテーション構造を使用する、ネストされた複数タイプのツリーを有する4分木を使用することができる。CB、PB及びTBの概念の分離(すなわち、CBのPBs及び/又はTBsへの区分化並びにPBsのTBsへの区分化)は、最大変換長に対して大きすぎるサイズのCBsが必要とされるときを除いて、放棄される可能性があり、そのようなCBsは、更なる分裂が必要であり得る。この例示的な部分化スキームは、予測と変換の両方を、更なる区分化なしにCBレベルで実行することができるように、CB区分化形状について更なる柔軟性をサポートするよう設計され得る。そのようなコーディングツリー構造では、CBは、正方形又は長方形のいずれかの形状を有してよい。具体的には、コーディングツリーブロック(CTB)は、まず、四分木構造によって区分化され得る。次いで、四分木リーフノードは、マルチタイプツリー構造によって更に区分化され得る。マルチタイプツリー構造の例が
図11に示されている。具体的には、
図11の例示的なマルチタイプツリー構造は、垂直二分法(binary splitting)(SPLIT_BT_VER)(1102)、水平二分法(SPLIT_BT_HOR)(1104)、垂直三分法(ternary splitting)(SPLIT_TT_VER)(1106)及び水平三分法(SPLIT_TT_HOR)(1108)と呼ばれる4つの分裂タイプを含む。そして、CBsはマルチタイプツリーのリーフに対応する。この例示的実装では、CBが最大変換長に対して大きすぎない限り、このセグメンテーションは、いずれの更なる分割もなしに、予測処理と変換処理の両方に使用される。これは、ほとんどの場合、CB、PB及びTBは、ネストされたマルチタイプツリーコーディングブロック構造を有する四分木において、同じブロックサイズを有することを意味する。例外は、サポートされる変換長の最大値が、CBの色成分の幅又は高さよりも小さいときに発生する。
【0134】
1つのCTBに対するブロック区分のネストされたマルチタイプツリーコーディングブロック構造を有する四分木の一例を
図12に示す。より詳細には、
図12は、CTB1200が、4つの正方形区分1202、1204、1206及び1208に分裂された四分木であることを示す。分裂のために
図11のマルチタイプツリー構造を更に使用するという決定が、四分木分裂区分の各々について行われる。
図12の例では、区分1204は、更には分裂されない。区分1202及び1208は各々、別の四分木分裂を採用する。区分1202では、第2レベルの四分木分裂の左上区分、右上区分、左下区分及び右下区分は、それぞれ、第3レベルの四分木分裂、
図11の1104、非分裂及び
図11の1108を採用する。区分1208は、別の四分木分裂を採用しており、第2レベルの四分木分裂の左上区分、右上区分、左下区分及び右下区分は、それぞれ、
図11の1106の第3レベル分裂、非分裂、非分裂及び
図11の1104を採用する。1208の第3レベルの左上区分のサブ区分のうちの2つは、1104及び1108に従って更に分割される。区分1206は、
図11の1102による第2レベルの分裂パターンを採用して2つの区分にし、該2つの区分は、
図11の1108及び1102に従って第3レベルに更に分裂される。
図11の1104に従って、それらのうちの1つに第4レベル分裂が適用される。
【0135】
上記の具体的な例では、最大ルマ変換サイズは64×64であってよく、サポートされる最大クロマ変換サイズはルマとは異なる可能性があり、例えば32×32であり得る。ルマコーディングブロック又はクロマコーディングブロックの幅又は高さが最大変換幅又は高さよりも大きいとき、ルマコーディングブロック又はクロマコーディングブロックは、その方向の変換サイズの制限を満たすように、水平方向及び/又は垂直方向に自動的に分裂され得る。
【0136】
ベースコーディングブロックをCBsに区分化する上記の具体的な例において、コーディングツリースキームは、ルマとクロマが別個のブロックツリー構造を有する能力をサポートすることができる。例えばP及びBスライスでは、1つのCTU内のルマ及びクロマCTBsは、同一のコーディングツリー構造を共有し得る。例えばIスライスでは、ルマとクロマは、別々のコーディングブロックツリー構造を有し得る。別個のブロックツリーモードが適用されるとき、ルマCTBは、ある1つのコーディングツリー構造によってルマCBsに区分化され得、クロマCTBsは別のコーディングツリー構造によってクロマCBsに区分化される。これは、IスライスのCUが、ルマ成分のコーディングブロック又は2つのクロマ成分のコーディングブロックで構成され得、P又はBスライスのCUは、ビデオがモノクロでない限り、常に3つのカラー成分すべてのコーディングブロックで構成されることを意味する。
【0137】
コーディングブロック又は予測ブロックを変換ブロックに区分化するための例示的な実装及び変換ブロックのコーディング順序が、以下で更に詳細に説明される。いくつかの例示的な実装では、変換区分化は、複数の形状の変換ブロック、例えば1:1(正方形)、1:2/2:1及び1:4/4:1をサポートすることができ、変換ブロックサイズは、例えば4×4から64×64に及ぶ。いくつかの実装形態では、コーディングブロックが64×64以下の場合、変換ブロック区分化はルマ成分にのみ適用し得るので、クロマブロックについては、変換ブロックのサイズはコーディングブロックのサイズと同一である。そうではなく、コーディングブロックの幅又は高さが64より大きい場合、ルマ及びクロマコーディングブロックは、それぞれ、暗黙的に、最小(W、64)×最小(H、64)及び最小(W、32)×最小(H、32)変換ブロックの倍数に分裂され得る。
【0138】
いくつかの例示的な実装では、イントラコーディングされるブロックとインターコーディングされるブロックの両方について、コーディングブロックは、所定の数のレベル(例えば2レベル)までの区分化深度を有する複数の変換ブロックに更に区分化されてもよい。変換ブロック区分化の深度及びサイズは、関連する可能性がある。現在の深度の変換サイズから次の深度の変換サイズへの例示的マッピングが以下の表1に示される。
【表1】
【0139】
表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のサブ変換ブロックを作成することになる。
【0140】
いくつかの例示的な実装では、イントラコーディングされるブロックのルマ成分に対して、追加の制限が適用されることがある。例えば変換区分化の各レベルについて、すべてのサブ変換ブロックは、等しいサイズを有するように制限されることがある。例えば32×16のコーディングブロックでは、レベル1の変換分裂が2つの16×16のサブ変換ブロックを作成し、レベル2の変換分裂が8つの8×8のサブ変換ブロックを作成する。言い換えると、第2レベルの分裂は、変換ユニットを等しいサイズに維持するために、すべての第1レベルサブブロックに適用されなければならない。表1に従った、イントラコーディングされる正方形ブロックの変換ブロック区分化の例は、
図13に、矢印で示されるコーディング順序とともに示されている。具体的には、1302は、正方形コーディングブロックを示す。表1に従った4つの等しいサイズの変換ブロックへの第1レベルの分裂は、1304において、矢印で示されるコーディング順序とともに示されている。表1に従った、すべての第1レベルの等しいサイズのブロックの、16個の等しいサイズの変換ブロックへの第2レベルの分裂は、1306において、矢印で示されるコーディング順序とともに示されている。
【0141】
いくつかの例示的な実装では、インターコーディングされるブロックのルマ成分に対して、イントラコーディングについての上記の制限が適用されないことがある。例えば第1レベルの変換分裂の後、サブ変換ブロックのいずれか1つが、もう1つのレベルと独立に更に分裂されることがある。したがって、結果として得られる変換ブロックは、同じサイズであっても、同じサイズでなくてもよい。インターコーディングされるブロックの変換ブロックへの例示的分裂が、それらのコーディング順序ともに
図14に示される。
図14の例では、インターコーディングされるブロック1402は、表1に従って2つのレベルで変換ブロックに分裂される。第1レベルでは、インターコーディングされるブロックは等しいサイズの4つの変換ブロックに分割される。次いで、1404で示されるように、4つの変換ブロックのうちの1つ(それらのすべてではない)だけが更に4つのサブ変換ブロックに分裂され、その結果、2つの異なるサイズを有する合計7つの変換ブロックが得られる。これらの7つの変換ブロックの例示的なコーディング順序は、
図14の1404の矢印によって示される。
【0142】
いくつかの例示的な実装では、クロマ成分に対して、変換ブロックに対するいくつかの追加の制限が適用され得る。例えばクロマ成分については、変換ブロックサイズは、コーディングブロックサイズと同じ大きさとすることができるが、所定のサイズ、例えば8×8より小さくはない。
【0143】
いくつかの他の例示的な実装では、幅(W)又は高さ(H)のいずれかが64より大きいコーディングブロックに対して、ルマ及びクロマコーディングブロックの両方が、暗黙的に、それぞれ、最小(W、64)×最小(H、64)及び最小(W、32)×最小(H、32)変換ユニットの倍数に分裂され得る。
【0144】
図15は更に、コーディングブロック又は予測ブロックを変換ブロックに区分化するための別の代替的な例示のスキームを示す。
図15に示されるように、再帰的変換区分化を使用する代わりに、コーディングブロックの変換タイプに従って、区分化タイプの所定のセットがコーディングブロックに適用され得る。
図15に示される特定の例では、6つの例示的な区分化タイプのうちの1つが、コーディングブロックを様々な数の変換ブロックに分裂させるために適用され得る。このようなスキームは、コーディングブロック又は予測ブロックのいずれかに適用され得る。
【0145】
より詳細には、
図15の区分化スキームは、
図15に示すように、任意の所与の変換タイプに対して最大6個の区分タイプを提供する。このスキームでは、すべてのコーディングブロック又は予測ブロックは、例えばレート歪みコストに基づいて変換タイプを割り当てられ得る。一例では、コーディングブロック又は予測ブロックに割り当てられる区分タイプは、コーディングブロック又は予測ブロックの変換区分タイプに基づいて決定されてもよい。特定の区分タイプは、
図15に例示される4つの区分タイプによって示されるように、変換ブロック分裂のサイズ及びパターン(又は区分タイプ)に対応し得る。様々な変換タイプと様々な区分タイプとの間の対応関係は、予め定義されてもよい。例示的な対応が、以下に、レート歪みコストに基づいてコーディングブロック又は予測ブロックに割り当てられ得る変換タイプを示す大文字のラベルとともに示される:
【0146】
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
【0147】
・PARTITION_SPLIT:ブロックサイズの幅の1/2及びブロックサイズの高さの1/2の変換サイズを割り当てる。
【0148】
・PARTITION_HORZ:ブロックサイズと同じ幅及びブロックサイズの1/2の高さの変換サイズを割り当てる。
【0149】
・PARTITION_VERT:ブロックサイズの幅の1/2、ブロックサイズと同じ高さの変換サイズを割り当てる。
【0150】
・PARTITION_HORZ4:ブロックサイズと同じ幅、ブロックサイズの1/4の高さの変換サイズを割り当てる。
【0151】
・PARTITION_VERT4:ブロックサイズの幅の1/4、ブロックサイズと同じ高さの変換サイズを割り当てる。
【0152】
上の例では、
図15に示されるような区分タイプはすべて、区分化された変換ブロックについて均一な変換サイズを含む。これは、限定ではなく、単なる例である。いくつかの他の実装では、混合された変換ブロックサイズが、特定の区分タイプ(又はパターン)において区分化された変換ブロックに使用されてもよい。
【0153】
イントラ予測に戻ると、いくつかの例示的な実装は、コーディングブロック又は予測ブロックにおけるサンプルの予測は、基準線のうちの1つ又はセットに基づいてよい。言い換えると、常に最も近い隣接線(例えば
図1に示されるように、予測ブロックのすぐ上の隣接線又はすぐ左の隣接線)を使用するのではなく、複数基準線(multiple reference lines)が、イントラ予測の選択のためのオプションとして提供され得る。このようなイントラ予測実装は、複数基準線選択(MRLS:Multiple Reference Line Selection)と呼ばれることがある。これらの実装では、エンコーダは、複数の基準線のうちのどの基準線がイントラ予測器を生成するために使用されるかを決定してシグナリングする。デコーダ側では、基準線インデックスを解析した後、イントラ予測モード(指向性、無指向性及び他のイントラ予測モード)に従って、指定された基準線をルックアップすることにより、再構成された基準線サンプルを識別することによって、現在のイントラ予測ブロックのイントラ予測を生成することができる。いくつかの実装では、基準線インデックスは、コーディングブロックレベルでシグナリングされてよく、多重基準線のうちの1つのみが、1つのコーディングブロックのイントラ予測のために選択されて使用され得る。いくつかの例では、2つ以上の基準線が、イントラ予測のために一緒に選択されてよい。例えば2つ以上の基準線が、重みの有無を問わず、組み合わされ、平均化され、補間され、あるいは任意の他の方法で予測を生成し得る。いくつかの例示的な実装では、MRLSはルマ成分のみに適用され、クロマ成分には適用されないことがある。
【0154】
図16では、4つの基準線MRLSの例が示されている。
図16の例に示すように、イントラコーディングブロック1602は、4つの水平基準線1604、1606、1608及び1610と、4つの垂直基準線1612、1614、1616及び1618のうちの1つに基づいて予測され得る。これらの基準線のうち、1610及び1618は、直接隣接基準線である。基準線は、コーディングブロックからのそれらの距離に従って、インデックス付けされ得る。例えば基準線1610及び1618は、ゼロ基準線と呼ばれてよく、一方、他の基準線は、非ゼロ基準線と呼ばれてよい。具体的には、基準線1608及び1616は第1基準線として参照されてよく、基準線1606及び1614は第2基準線として参照されてよく、基準線1604及び1612は第3基準線として参照されてよい。
【0155】
一次変換に戻ると、例示的な2-D変換プロセスは、ハイブリッド変換カーネル(例えばコーディングされた残差ブロックの各次元に対して異なる1-D変換から構成され得る)の使用を伴ってよい。例示的な一次1-D変換カーネルは、これらに限定されないが、a)4ポイント(4p)、8ポイント(8p)、16ポイント(16p)、32ポイント(32p)&64点(64p)のDCT-2;b)4ポイント、8ポイント、16ポイント非対称DSTの及びそれらの反転バージョン(flipped version);c)4ポイント、8ポイント、16ポイント又は32ポイントの恒等変換(identity transform)を含み得る。したがって、2-D変換プロセスは、ハイブリッド変換(コーディングされた残差ブロックの各次元に対して異なる変換)の使用を伴ってよく、ここで、各次元に対して使用される変換の選択は、レート歪み(RD)基準に基づいてよい。例えば2-D変換のハイブリッドとして実装され得る1D DCT-2、DST-4及びDST-7のための基底関数は、表2に列挙される。
【表2】
【0156】
例えばDCT-2(4p-64p)、DST-4(8p、16p)及びDST-7(4p)変換は、対称/反対称特性を示し、したがって、「部分バタフライ(partial butterfly)」実装は、いくつかの例示的な実装において、複数の演算カウント(乗算、加算/減算、シフト(shifts))を低減するためにサポートされ得る。部分バタフライ実装は、
図17に記載されているように、様々な角度での三角関数コサイン及びサイン関数を使用する平面回転を含み得る。例示的な12ビットのルックアップテーブルが、
図18及び
図19に示されており、三角関数の値を生成するために利用される。
【0157】
いくつかの例示的な実装では、線グラフ変換(LGT:line graph transforms)が、上記の1-D DSTの代わりに使用されてもよい。本質的に及び
図20に示されるように、グラフは、頂点とエッジのセットからなる一般的な数学的構造であり、これは、関心のあるオブジェクト間の親和性関係(affinity relations)をモデル化するために使用され得る。実際には、重み付けされたグラフ(重みのセットが、エッジに及び潜在的に頂点に割り当てられる)は、信号/データのロバストなモデリングのための疎な表現(sparse representations)を提供する。LGTは、多様なブロック統計に対するより良好な適応を提供することによって、コーディング効率を改善することができる。分離可能なLGTは、トレーニングデータから折れ線グラフ(
図20の例に示されるように、自己ループ重みvc1、vc2とエッジ重みwcによって特徴付けられる)を学習することによって設計及び最適化されて、ブロック残差信号の基礎となる行及び列ごとの統計をモデル化してよく、この場合、関連する一般化グラフ・ラプラシアン(GGL:generalized graph Laplacian)行列が、LGTを導出するために使用される。
【0158】
重み付けされたグラフG(W,V)を所与とすると、GGL行列は以下のように定義される:
L
c=D-W+V (1)
ここで、Wは、負でないエッジ重みw
cからなる隣接行列であり、Dは対角次数行列(diagonal degree matrix)であり、Vは、重み付けされた自己ループv
c1、v
c2を示す対角行列である。行列L
cを次のように表すことができる:
【数1】
【0159】
LGTを、GGL Lcの固有分解によって導出することができる。
Lc = UΦUT (3)
ここで、直交行列Uの列はLGTの基本ベクトルであり、Φは対角固有値行列(diagonal eigenvalue matrix)である。実際、DCT-2、DCT-8及びDST-7を含むDCT及びDSTは、特定の形態のGGLから導出されるLGTである:
DCT-2はvc1=0を設定することによって導出される。 (4)
DST-7はvc1=wcを設定することによって導出される。 (5)
DCT-8はvc2=wcを設定することによって導出される。 (6)
DST-4はvc1=2wcを設定することによって導出される。 (7)
DCT-4はvc2=2wcを設定することによって導出される。 (8)
【0160】
いくつかの例示的な実装では、LGTを行列乗算として実装することができる。4p LGTコアは、Lcにおいてvc1=2wcを設定することによって導出され得、これは、それがDST-4であることを意味する。8p LGTコアは、Lcにおいてvc1=1.5wcを設定することによって導出され得、16p及び32p LGTコアは、Lcにおいてvc1=wcを設定することによって導出され得、これは、それがDST-7であることを意味する。
【0161】
いくつかの実装では、一次変換係数に対する二次変換が行われてもよい。二次変換は、(エンコーダにおける)順一次変換(forward primary transform)と量子化との間及び(デコーダ側における)非量子化と逆一次変換(inverse primary transform)との間に適用されてもよい。いくつかの特定の例示的な実装では、二次変換の所定のセット(例えば12セット)は、各セット内に所定の数(例えば3)のカーネルを有する。
【0162】
いくつかの例示的な実装では、二次変換カーネルセットは、特定のイントラ予測モードに対応し得る。一例として、
図21は、イントラ予測モードに基づく二次変換カーネルセット選択のために使用されるインデックスを記載する。
図21において、第1の行は、二次変換が許容され、したがって、いくつかの利用可能な変換カーネルに対応する、イントラ予測モードを示し、第2の行は、対応する二次変換セットのセットインデックスを示す。エンコーダでは、各イントラ予測モードに対して、RDO(レート歪み最適化(Rate Distortion Optimization))に基づいて、セットからの複数の(例えば3つの)変換カーネルからの最良のカーネルを選択することができ、その選択をシグナリングすることができる(例えばIST(イントラ二次変換(intra secondary transform))を含まない4つのシンボル)。デコーダでは、ビットストリームは、イントラ予測モードに基づく復号のための逆変換に使用されるカーネルと、イントラ予測モードに対応するカーネルセット内のシグナリングされたインデックスとを取得するために解析され得る。
【0163】
いくつかの例示的な実装では、DCTタイプ2(DCT-2)及びADSTが、イントラコーディングのための最も頻繁に選択される一次変換タイプであるという観察の結果として、より高いコーディング効率を達成するために、イントラ二次変換(IST)は、DCT-2又はADSTのいずれかが水平及び垂直一次変換として使用されるときに選択的に有効にされてよく、他の一次変換の使用下では有効にされなくてもよい。
【0164】
いくつかの例示的な実装では、ISTはルマイントラブロックに対してのみ有効にされてよく、クロマイントラブロックに対しては無効にされてよい。一実施形態では、ブロックサイズに基づいて、4×4の分離不可能な変換又は8×8の分離不可能な変換のいずれかが選択され得る。一例では、最小(tx_width,tx_height)<8の場合、4×4 ISTの分離不可能なものが選択されてよい。Tx_widthとtx_heightの両方が8以上の大きなブロックについては、8×8の分離不可能なISTが使用されてよい。ここで、tx_widthとtx_heightは、それぞれ変換ブロックの幅と高さに対応する。
【0165】
いくつかの例示的な実装では、ISTへの入力は、ジグザグスキャン順(zig-zag scan order)の低周波一次変換係数の線形化ベクトルであり得る。これは、二次変換において隣接する低周波数係数のより効率的な非相関(decorrelation)を達成するのに役立つ。
【0166】
いくつかの例示的な実装では、上述のように、イントラコーディングされるブロックとインターコーディングされるブロックの両方を、所定の数のレベル(例えば2レベル)までの区分化深度を有する多重変換ブロックに更に区分化してよく、それによって、上述のように、変換区分化ツリー構造を形成する。いくつかの特定の実装では、ISTの適用は、変換区分化ツリー構造のルート(深度0)に限定されてもよく、あるいは最大適用変換ユニット区分化レベルより低いレベルに限定されてもよい。この限定を適用することによって、圧縮効率における最小の影響(例えば~0.25%の損失)を伴う全体的な符号化時間の複雑さの減少(例えば~50%)が達成され得る。
【0167】
いくつかの例示的な実装では、正方形変換ブロックサイズを利用して、カーネルインデックスをエントロピーコーディングするために使用されるコンテキスト情報、したがってコンテキストを導出することができる。矩形変換ブロックでは、次の最小の正方形サイズを利用して、コンテキスト情報を導出することができる。
【0168】
上述したように、コーディングパラメータの決定及びイントラ予測されるブロックの残差のイントラ予測と変換のための構成は、複雑で、リソースが多く、時間がかかるプロセスである。MRLS、複数変換区分タイプ、複数変換タイプ及び複数イントラ二次変換(異なるセットであり各々が多重二次変換カーネルを含む)が、コーディング効率及び品質を改善するために、イントラコーディングされるブロック内ですべて有効にされ得るとき、エンコーダは、各予測ブロック又はコーディングブロックに対する最良のコーディング構成、変換カーネル及び他のパラメータを見つけるために、大きなパラメータ空間及び上記のファクタのすべての可能な組合せを検索する必要があり、これは、計算の複雑さ、メモリ要求及び符号化時間を著しく増加させる。さらに、大きなパラメータ空間はまた、重大な信号オーバーヘッドをもたらす可能性がある。
【0169】
以下の様々な例示的な実装では、コーディング効率及びコーディング品質劣化を最小限に維持しつつ、そのようなパラメータ空間及び可能な組合せを、条件付きで低減することができる。したがって、(様々なコーディングブロックにわたって)平均して、エンコーダは、より小さなパラメータ空間及び上記の様々なファクタのより少ない数の様々な潜在的な組合せを探索して、入力コーディングブロック又は予測ブロックのためのほぼ最適なコーディングスキームを識別する。特に、パラメータ空間の縮小(shrinkage)は、特定のコーディングブロック又は予測ブロックに対するイントラ予測のためにゼロ基準線が使用されるか又は非ゼロ基準線が使用されるかどうかに基づいて調整され得る。最適化探索空間は、非ゼロ基準線が使用されるとき、著しく減少され得る。最適化されるべきコーディング構成及びパラメータは、これらに限定されないが、最適な一次及び/又は二次変換カーネルの選択を含み得る。パラメータ空間の減少はまた、シグナリングされる必要がある情報量の対応する減少も導くことができ、それによって、コーディングされるビットストリームにおけるシグナリングオーバヘッドを減少させる。
【0170】
これらの例示的な実装は、別個に、あるいは任意の順序で又は任意の方法で組み合わせて使用され得る。上記及び下記の説明において、「コーディングされるブロック」、「コーディングブロック」等の用語は、予測又は変換が実行されるピクチャユニットを指すために使用され得る。コーディングブロックは、ルマコーディングブロックであってもよく、あるいはクロマコーディングブロックであってもよい。いくつかの状況では、コーディングされるブロック/コーディングブロックは、予測ブロックを指してもよい。「ブロックサイズ」という用語は、コーディングブロックの幅又は高さ、あるいは幅及び高さの最大値、あるいは幅及び高さの最小、あるいはエリアサイズ(幅*高さ)、あるいはアスペクト比(幅:高さ又は高さ:幅)のいずれかを指すために使用される。以下の開示において、イントラ予測の目的のために隣接(又は最も近い又はゼロ)基準線は、0に等しいインデックスを有する基準線を指し、非隣接又は非ゼロ基準線は、0より大きいインデックスを有する基準線を指す。
【0171】
以下の開示において、変換ブロックサイズのシグナリングはまた、この用語が使用されるとき、変換ブロック分裂構造、スキーム、パターン等のシグナリングも指してよい。本開示において、一次変換のためのハイブリッド変換カーネルの拡張セットは、変換セットAと呼ばれ得る。セットAは、例えば1-D DCTタイプ1~8、DSTタイプ1~8(ADST)、IDT(任意の方向のアイデンティティ)、LGT、KLT等のすべての組合せの集合を網羅的に含み得る。これらの1-D変換は、ハイブリッド変換として2-D変換の2方向に沿って任意の組合せで適用され得る。
【0172】
一般的な例示的な実装では、非ゼロ基準線がイントラコーディングされるブロックに適用されるとき、一次変換カーネル及び/又は二次変換カーネルの完全なセットではなく、縮小セットが使用されてもよい。したがって、エンコーダが、特定のコーディングブロック又はコーディングブロックの一部に使用する一次又は二次変換カーネルを決定する必要があるとき、最適化プロセス(例えばレート歪み最適化プロセス)の間に、探索する必要があるのは、完全なセットではなく、縮小セットだけでよい。特定のコーディングブロックに対してゼロ基準線を使用すべきか又は非ゼロ基準線を使用すべきかの決定は、任意の方法で行われてよい。例えば現在のコーディングブロック及びその隣接ブロックの特性に基づいて、エンコーダによって別個に行われてよい。
【0173】
いくつかの例示的な実装では、非ゼロ基準線がコーディングされるブロック内に適用されるとき、探索及び最適化プロセスの間に、完全な一次変換カーネルセットAからの一次変換カーネルのサブセットのみを、候補一次カーネルとして使用することができる。一次変換カーネルのサブセットは、非ゼロ基準線がイントラ予測のために使用されるときに一般に最適である可能性が最も高い一次変換カーネルのいくつかの特定のサブセットを示す、オフライン統計調査に基づいて予め定義され得る。例えば非ゼロ基準線が使用されるとき、ほとんどの実際のケースにおいて、DCTタイプ2及びADSTハイブリッドカーネルタイプが、最適な一次カーネルタイプである可能性が高いことが観察され得る。
【0174】
上記の一般的な実装は、非ゼロ基準線が使用されるとき、イントラ予測のための候補一次変換カーネルの縮小に適用され得る。いくつかの特定の例示的な実装では、非ゼロ基準線が使用されるとき、イントラ予測のために許容される一次変換カーネルのサブセットは、ハイブリッド2-D変換カーネルとして、1-D DCTタイプ2と1-D ADSTの組合せに限定され得る。
【0175】
いくつかの他の特定の例示的な実装では、非ゼロ基準線が使用されるとき、イントラ予測のために許容される一次変換カーネルのサブセットは、ハイブリッド2-D変換カーネルとして、1-D DCTタイプ2と、1-D ADSTと、1-D反転ADSTの組合せに限定され得る。
【0176】
いくつかの他の特定の例示的な実装では、非ゼロ基準線が使用されるとき、イントラ予測のために許容される一次変換カーネルのサブセットは、ハイブリッド2-D変換カーネルとして、1-D DCTタイプ2と、1-D IDTの組合せに限定され得る。
【0177】
更にいくつかの他の特定の例示的な実装では、非ゼロ基準線が使用されるとき、イントラ予測のために許容される一次変換カーネルのサブセットは、ハイブリッド2-D変換カーネルとして、1-D DCTタイプ2、1-D ADST、1-D反転ADST及び1-D IDTの組合せに限定され得る。
【0178】
いくつかの例示的な実装では、非ゼロ基準線が使用されるとき、候補一次変換カーネル又は二次変換カーネルの縮小がイントラ予測に適用され得るかどうかは、予測ブロック又はコーディングブロックが複数の変換ブロックに分割されるべきかどうかに更に依存し得る。基礎となる考え方は、現在の予測ブロック又はコーディングブロックが複数の変換ブロックに分割される場合、一次及び/又は二次変換カーネルの選択は、全体としての予測ブロック又はコーディングブロックの全体に対してではなく、変換ブロックの各々に対して別個に最適化される必要がある可能性があり、ゼロ基準線を含むイントラ予測のためのものから非ゼロ基準線を含むイントラ予測のための候補一次及び/又は二次カーネルの数を減らすことは、エンコーダのコーディング効率及び品質の劣化を最小限に抑えながら、最適化の負担を少なくすることになる。
【0179】
そのような縮小は、二次変換カーネルの選択に適用され得る。したがって、いくつかの特定の例では、複数の変換ブロックが存在するか又はコーディングブロックもしくは予測ブロックの内部に存在するとき、非ゼロ基準線が適用されるときに変換ブロックのための許容される二次変換セットは、ゼロ基準線が適用されるときに許容される二次変換セットのサブセットに縮小され得る。一実施形態では、このような実装は特に、二次変換カーネル選択が実行され、かつ(予測ブロック又はコーディングブロック全体のレベルではなく)各変換ブロックについて選択情報がシグナリングされるときに、適用され得る。
【0180】
いくつかの例示的な実装では、候補二次変換カーネルセットの縮小は、非ゼロ線の使用及び変換ブロックへの分割によって階層化されてもよい。例えば非ゼロ線がイントラ予測に使用され、コーディングブロック又は予測ブロックが2つ以上の変換ユニットに更には分裂されないとき、ゼロ基準線イントラ予測のための完全な二次変換カーネルセットからの二次変換カーネルの第1縮小セットが、最適化候補として使用され得る。しかしながら、非ゼロ線がイントラ予測に使用され、コーディングブロック又は予測ブロックが2つ以上の変換ブロックに更に分裂されるとき、ゼロ基準線イントラ予測のための完全な二次変換カーネルセットからの二次変換カーネルの第2縮小セットが、最適化候補として使用され得る。二次変換カーネルの第2縮小セットは、例えば二次変換カーネルの第1縮小セットのサブセットであってよい。言い換えると、非ゼロ基準線がイントラ予測のために使用されるとき、候補二次変換カーネルセットは、完全な二次変換カーネルのセットから縮小され、コーディングブロック又は予測ブロックが2つ以上の変換ブロックに更に細分される場合、次いで、二次変換カーネルのその縮小されたセットは更に縮小され得る。
【0181】
いくつかの例示的な実装では、コーディングブロック又は予測ブロックの内部に複数の変換ブロックが存在するとき、非ゼロ基準線が現在のブロックのイントラ予測のために使用されるとき、変換ブロックに対して二次変換が全く許容されないことがある。言い換えると、エンコーダは、非ゼロ基準線がイントラ予測のために使用され、コーディングブロック又は予測ブロックが2つ以上の変換ブロックに更に細分されるとき、二次変換カーネルのセットをヌルセットに減少させる極端な状態に進む可能性がある。
【0182】
いくつかの他の例示的な実装では、同様に、非ゼロ基準線が使用されるときに予測ブロック又はコーディングブロックが複数の変換ブロックに分割されるかどうかに応じた、イントラ予測のための候補変換カーネルの縮小が、一次変換に適用され得る。例えばコーディングブロック又は予測ブロックの内部に複数の変換ブロックが存在するとき、非ゼロ基準線が適用されるときに変換ブロックのための許容される一次変換タイプセットは、ゼロ基準線が適用されるときに許容される一次変換セット(例えばハイブリッド変換セット)のサブセットであってよい。一実施形態では、このような実装は特に、一次変換選択が実行され、かつ(予測ブロック又はコーディングブロック全体のレベルではなく)各変換ブロック又は変換ユニットについて選択情報がシグナリングされるときに、適用され得る。
【0183】
いくつかの例示的な実装では、候補一次変換カーネルセットの縮小は階層化されてもよい。例えば非ゼロ線がイントラ予測に使用され、コーディングブロック又は予測ブロックが2つ以上の変換ブロックに更には分裂されないとき、ゼロ基準線のイントラ予測のための完全な一次変換カーネルセット(上記セットA)からの一次変換カーネルの第1縮小セットが最適化候補として使用され得る。しかしながら、非ゼロ線がイントラ予測に使用され、コーディングブロック又は予測ブロックが2つ以上の変換ブロックに更に分裂されるとき、ゼロ基準線のイントラ予測のための完全な一次変換セット(上記セットA)からの二次変換カーネルの第2縮小セットが、最適化候補として使用され得る。一次変換カーネルの第2縮小セットは例えば、一次変換カーネルの第1縮小セットのサブセットであってよい。言い換えると、非ゼロ基準線がイントラ予測のために使用されるとき、候補の一次変換カーネルセットは、完全なセット(上記セットA)から縮小され、コーディングブロック又は予測ブロックが2つ以上の変換ブロックに更に細分される場合、一次変換カーネルのその縮小されたセットは更に縮小され得る。
【0184】
別の実施形態では、コーディングブロック又は予測ブロックの内部に複数の変換ブロックが存在するとき、非ゼロ基準線が現在のブロックのイントラ予測に使用されるときに、一次変換選択は変換ブロックについてシグナリングされなくてよい。言い換えると、その状況における一次変換カーネルのサブセットは、一次変換カーネルの選択が予め定義されており、シグナリングされる必要がない範囲まで、縮小され得る。
【0185】
いくつかの例示的な実装では、複数の基準線がイントラ予測において使用され得るとき、コーディングブロック又は他のコーディングユニットのイントラコーディングのために選択される基準線インデックスが、一次変換又は二次変換インデックスのエントロピーコーディングのためのコンテキスト(又はCDF)を導出するために使用され得る。基準線インデックスは一次変換又は二次変換インデックスと相関され得るので、そのような実装は、コーディング化ビットストリームにおいて、これらのインデックスのより高いエントロピーコーディング効率を達成するのを助けることができる。
【0186】
いくつかの更なる実装では、現在のコーディング化ブロックが複数の変換ブロックを有し、基準線インデックスが、現在のコーディング化ブロック又は予測ブロックに非ゼロ基準線が使用されることを示す場合、一次変換及び二次変換カーネルセットの縮小は、変換ブロックのすべてではなく、一部のみに適用され得る。例えば現在のコーディング化ブロックが複数の変換ブロックを有し、基準線インデックスが、非ゼロ基準線が使用されることを示すとき、一次及び/又は二次変換カーネルの縮小サブセットは、現在のコーディング化ブロック又は予測ブロックの上部又は左側の境界に向かう変換ブロックに対してのみ使用されてよく、一方、すべての一次変換及び二次変換は、現在のコーディング化ブロック又は予測ブロックの残りの箇所に配置される変換ブロックの候補として使用されることができる。
【0187】
これを
図22に示される。
図22の例では、TB1~TB4としてラベル付けされ、
図22の2202~2208によって表される、4つの変換ブロックが1つのコーディングブロック内に存在する。TB1、TB2及びTB3は、現在のコーディング化ブロックの上部又は左側の境界に配置される。TB1-TB3は、縮小された候補一次及び/又は二次変換カーネルセットから選択することによって処理されてよく、TB4は、完全な候補の一次及び/又は二次変換カーネルセットから選択することによって処理されてよい。
【0188】
上記の様々な例示的な実装とは独立に、それとは別個に、あるいは組み合わせて又はそれとともに、いくつかの更なる例示的な実装では、非ゼロ基準線がイントラコーディングされるブロックに適用されるとき、候補変換区分タイプの完全なセットではなく、変換区分タイプの選択されたサブセットが使用され得る。
図15の例に関連して上述したように、コーディングブロック又は予測ブロックは、例えばレート歪みコストに基づいて決定されるコーディングブロック又は予測ブロックの変換タイプに基づいて、所定の変換区分タイプのセットの中の変換区分タイプに割り当てられてもよい。このような変換区分タイプは、様々な異なる所定の変換ブロック区分パターンに対応する。これらの例示的な実装は、非ゼロ基準線が使用されるときに、イントラコーディングブロック又は予測ブロックに対して選択するために、候補区分化パターンを更に縮小させる。したがって、最適区分パターンをエンコーダ用の変換ブロックにするための最適化探索空間が縮小され得る。さらに、変換区分タイプの縮小セットは、変換ブロック区分の数がより少ないパターンに対応してよく、これは、コーディング又は変換構成及びパラメータを各変換ユニットについて別個に最適化する必要があるときに、最適化の量を減らすことを助けることができる。
【0189】
例えば一実施形態では、変換区分タイプのサブセットは、
図15のPARTITION_NONEのみを含んでよく、これは、変換ブロックサイズが予測/コーディングブロックサイズと同じであることを示す。言い換えると、変換ブロックへの区分化は行われない。
【0190】
別の例では、一実施形態では、変換区分タイプのサブセットは、所与の閾値以下の変換サブ区分数を有する変換区分タイプのみを含み得る。例示的な閾値は、これらに限定されないが、1、2、3、4、5、6、...、16を含み得る。例えば閾値は、
図15に関して2であってもよく、そのような閾値では、変換区分タイプのサブセットは、PARTITION_NONE、PARTITION_HORZ及びPARTITION_VERTのみを含み得る。
【0191】
いくつかの更なる例示的な実装では、上記の例示的な実装で使用される基準線のインデックスが、候補一次及び/又は二次変換カーネルの縮小セット及び/又は変換区分化タイプのサブセットに関して考慮され得る。言い換えると、様々なサブセットに含まれるアイテムは、非ゼロ基準が現在のコーディングブロック又は予測ブロックからどれだけ離れているかに依存し得る。例えばゼロ基準線については、完全なセットが使用され得るが、一方、非ゼロ基準線については、サブセットが使用されてよく(上記の実装で説明されるように)、サブセットは、非ゼロ基準線インデックスが増加するにつれて、更に縮小し得る。
【0192】
例えば一般に、異なる基準線が適用されるとき、変換ブロックに対して、異なる一次及び/又は二次変換カーネルセットを適用及び/又はシグナリングすることができる。
【0193】
更なる一実施形態では、異なる非ゼロ基準線に対して、一次及び/又は二次変換カーネル候補及び/又は変換区分候補タイプは同じセットである。言い換えると、異なる線インデックスの非ゼロ基準線の間では差別化(differentiation)は行われないことがある。
【0194】
別の更なる実施形態では、異なる非ゼロ基準線に対して、一次及び/又は二次変換カーネル候補及び/又は変換区分候補タイプは異なるセットである。
【0195】
一次変換カーネル、二次変換カーネル及び変換区分タイプの様々なサブセットは、イントラ予測のための様々な基準線構成に関して予め定義されてもよい。したがって、これらのサブセットは、シグナリングされる必要がなくてよい。エンコーダによって決定され選択される、これらのサブセットに対するインデックスは、シグナリングされ得る。そのようなインデックスは相関されてよく、したがって、エントロピーコーディングのためのコンテキストを導出するために、共同してシグナリングされ、共同して使用され得る。
【0196】
図23は、上記の実装の基礎となる原理に従った例示的方法のフローチャート2300を示す。例示的方法フロー2300は、2301において開始する。S2310において、ビデオフレームのデータブロックが取り出される。データブロックは、ビデオフレーム内の隣接基準線と1つ以上の非隣接基準線とを含み得る。S2320において、1つ以上の非隣接基準線のうちの1つが、データブロックのイントラ予測に使用されるかどうかが判断される。S2330において、隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換するために、ターゲット変換カーネルが変換カーネルの第1セットから選択され得る。S2340において、非隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換するために、ターゲット変換カーネルが変換カーネルの第2セットから選択され得る。例示的方法フロー2300は、S2399において終了する。
【0197】
図24は、上記実施形態の基礎となる原理に従った別の例示的方法のフローチャート2400を示す。例示的方法フロー2400は、2401において開始する。S2410において、ビデオフレームのデータブロックが取り出される。データブロックは、ビデオフレーム内の隣接基準線と1つ以上の非隣接基準線とを含み得る。S2420において、1つ以上の非隣接基準線のうちの1つが、データブロックのイントラ予測に使用されるかどうかが判断される。S2430において、隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換区分ブロックに区分化するために、変換区分タイプの第1セットが選択され得る。S2440において、非隣接基準線がデータブロックのイントラ予測に使用されるとき、データブロックを変換区分ブロックに区分するために、変換区分タイプの第2セットが選択され得る。例示的方法フロー2400は、S2499において終了する。
【0198】
図25は、上記実施形態の基礎となる原理に従った更に別の例示的方法のフローチャート2500を示す。例示的方法フロー2500は、2501において開始する。S2510において、ビデオフレームのデータブロックが取り出される。データブロックは、イントラ予測のためにビデオフレーム内の1つ以上の基準線を含み得、各基準線は基準線位置インデックスに関連付けられている。S2520において、データブロックのイントラ予測のために、1つ以上の基準線の中からある基準線が選択される。S2530において、一次変換カーネル又は二次変換カーネルが、データブロックを処理するために、一次変換カーネル又は二次変換カーネルのサブセットから選択され得、一次変換カーネル又は二次変換カーネルのサブセットは、イントラ予測のための選択された基準線の基準線位置インデックスに基づいて、一次変換カーネル又は二次変換カーネルの完全なセットから選択される。例示的方法フロー2500は、S2599において終了する。
【0199】
本開示の実施形態は、別個に又は任意の順序で組み合わせて使用されてよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダの各々は、処理回路(例えば1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読取可能媒体に記憶されるプログラムを実行する。本開示の実施形態は、ルマブロック又はクロマブロックに適用され得る。
【0200】
上述の技術を、コンピュータ読取可能命令を使用してコンピュータソフトウェアとして実装し、1つ以上のコンピュータ読取可能媒体に物理的に記憶することができる。例えば
図26は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(2600)を示す。
【0201】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンキング又は類似のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコーディングされ、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)等によって直接的に又は解釈やマイクロコード実行等を通して実行され得る命令を含む、コードを作成することができる。
【0202】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素において実行されることができる。
【0203】
コンピュータシステム(2600)について
図26に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関して、いかなる制限も示唆するように意図されていない。また、構成要素の構成は、コンピュータシステム(2600)の例示的実施形態に示される構成要素の任意の1つ又は組合せに関するいかなる依存性又は要件も有するものとして解釈されてはならない。
【0204】
コンピュータシステム(2600)は、特定のヒューマンインタフェース入力デバイスを含み得る。そのようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通して、1人以上の人間のユーザによる入力に応答し得る。また、ヒューマンインタフェース入力デバイスは、オーディオ(音声、音楽、環境音等)、画像(スキャンされた画像、静止画像カメラから得られる写真画像等)、ビデオ(2次元ビデオ、立体映像を含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関係しているとは限らない、特定の媒体をキャプチャするためにも使用されることができる。
【0205】
ヒューマン入力インタフェースデバイスは、キーボード(2601)、マウス(2602)、トラックパッド(2603)、タッチ画面(2610)、データグローブ(図示せず)、ジョイスティック(2605)、マイクロホン(2606)、スキャナ(2607)及びカメラ(2608)(各々の1つのみが図示される)のうちの1つ以上を含んでもよい。
【0206】
コンピュータシステム(2600)はまた、特定のヒューマンインタフェース出力デバイスも含み得る。そのようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音響、光及び嗅覚/味覚を通して、1人以上の人間のユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えばタッチ画面(2610)、データグローブ(図示せず)又はジョイスティック(2605)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、オーディオ出力デバイス(スピーカー(2609)、ヘッドフォン(図示せず)等)、視覚出力デバイス(各々タッチ画面入力機能の有無にかかわらず、各々触覚フィードバック能力の有無にもかかわらないが、その一部は、立体画像出力や仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)のような手段を介して、2次元視覚出力又は3次元超の出力を出力することができる、CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(2610)等)及びプリンタ(図示せず)を含んでよい。
【0207】
コンピュータシステム(2600)はまた、CD/DVDを有するCD/DVD ROM/RW(2620)を含む光媒体又は類似の媒体(2621)、サムドライブ(2622)、取り外し可能ハードドライブ又はソリッドステートドライブ(2623)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特別なROM/ASIC/PLDベースのデバイスのような、ヒューマンアクセス可能なストレージデバイス及びそれらの関連する媒体も含むことができる。
【0208】
当業者はまた、現在開示されている主題に関連して使用されるとき、「コンピュータ読取可能媒体」という用語が、伝送媒体、搬送波又は他の一時的信号を包含しないことを理解すべきである。
【0209】
コンピュータシステム(2600)はまた、1つ以上の通信ネットワーク(2655)へのインタフェース(2654)も含むことができる。ネットワークは、例えば無線、有線、光とすることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業用、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット(登録商標)、無線LAN等のローカルエリアネットワーク、GSM(登録商標)、3G、4G、5G、LTE等を含むセルラネットワーク、ケーブルTV、衛星TV及び地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク、CANbus等を含む車両及び産業用ネットワークを含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(2649)(例えばコンピュータシステム(2600)のUSBポート等)に接続される外部ネットワークインタフェースアダプタを必要とし、他のものは、一般に、後述するシステムバスへの取り付けによって、コンピュータシステム(2600)のコアに統合される(例えばPCコンピュータシステムへのイーサネット(登録商標)インタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2600)は、他のエンティティと通信することができる。このような通信は、例えばローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対する、単方向の受信専用(例えば放送TV)、単方向の送信専用(例えば特定のCANbusから特定のCANbusデバイスへ)又は双方向であり得る。上述のように、特定のプロトコル及びプロトコルスタックを、これらのネットワーク及びネットワークインタフェースの各々において使用することができる。
【0210】
前述のヒューマンインタフェースデバイス、ヒューマンアクセス可能なストレージデバイス及びネットワークインタフェースを、コンピュータシステム(2600)のコア(2640)に取り付けることができる。
【0211】
コア(2640)は、1つ以上の中央処理ユニット(CPU)(2641)、グラフィクス処理ユニット(GPU)(2642)、フィールドプログラマブルゲートアレイ(FPGA)(2643)の形態の専用のプログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(2644)、グラフィクスアダプタ(2650)等を含むことができる。これらのデバイスは、読取専用メモリ(ROM)(2645)、ランダムアクセスメモリ(RAM)(2646)、内部非ユーザアクセス可能ハードドライブ、SSD等の内部大容量ストレージ(2647)とともに、システムバス(2648)を通して接続され得る。いくつかのコンピュータシステムでは、システムバス(2648)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である。周辺デバイスを、コアのシステムバス(2648)に直接又は周辺バス(2649)を介して取り付けることができる。一例では、画面(2610)をグラフィクスアダプタ(2650)に接続することができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0212】
CPU(2641)、GPU(2642)、FPGA(2643)及びアクセラレータ(2644)は、組み合わされて上述のコンピュータコードを構成することができる、特定の命令を実行することができる。そのコンピュータコードを、ROM(2645)又はRAM(2646)に記憶することができる。また、一時的なデータをRAM(2646)に記憶することができ、一方、永久的なデータを、例えば内部大容量ストレージ(2647)に記憶することができる。1つ以上のCPU(2641)、GPU(2642)、大容量ストレージ(2647)、ROM(2645)、RAM(2646)等と密接に関連付けることができるキャッシュメモリの使用を通して、メモリデバイスのいずれかに対する高速記憶及び取り出しを可能にすることができる。
【0213】
コンピュータ読取可能媒体は、様々なコンピュータ実装される動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものとすることができ、あるいはそれらは、コンピュータソフトウェア技術の当業者に周知でかつ利用可能な種類のものとすることができる。
【0214】
非限定的な例として、アーキテクチャ(2600)及び特にコア(2640)を有するコンピュータシステムは、1つ以上の有形のコンピュータ読取可能媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能性を提供することができる。このようなコンピュータ読取可能媒体は、上記で紹介したようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ(2647)又はROM(2645)のような非一時的な性質のコア(2640)の特定のストレージに関連付けられる媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアを、そのようなデバイスに記憶して、コア(2640)によって実行することができる。コンピュータ読取可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(2640)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(2646)に記憶されるデータ構造を定義することと、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することとを含む、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、論理ハードワイヤ又は他の方法で回路(例えばアクセラレータ(2644))内に具現化された結果として機能性を提供することができ、この回路は、ソフトウェアの代わりに又はソフトウェアとともに動作して、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行することができる。ソフトウェアへの言及はロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ読取可能媒体への参照は、実行のためのソフトウェアを記憶する回路(集積回路(IC)等)、実行のためのロジックを具体化する回路又は適切な場合にはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0215】
本開示は、いくつかの例示的な実施形態について説明しているが、本開示の範囲内にある変更、置換及び様々な代替均等物が存在する。上述の実装及び実施形態では、プロセスの任意の動作は、所望により、任意の量又は順序で組み合わされ得るか又は配置されてよい。さらに、上述のプロセスの動作のうちの2つ以上が、並行に実行されてよい。したがって、当業者は、本明細書に明示的に示されていないか又は説明されていないが、本開示の原理を具体化しており、よって、本開示の精神及び範囲内にある、様々システム及び方法を考案することができることが理解されよう。
付録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)
GOPs:ピクチャのグループ(Groups of Pictures)
TUs:変換ユニット(Transform Units)
PUs:予測ユニット(Prediction Units)
CTUs:コーディングツリーユニット(Coding Tree Units)
CTBs:コーディングツリーブロック(Coding Tree Blocks)
PBs:予測ブロック(Prediction Blocks)
HRD:仮想リファレンスデコーダ(Hypothetical Reference Decoder)
SNR:信号対ノイズ比(Signal Noise Ratio)
CPUs:中央処理ユニット(Central Processing Units)
GPUs:グラフィクス処理ユニット(Graphics Processing Units)
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 Areas)
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)
DPS:復号パラメータセット(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:AOメディアビデオ1(AOMedia Video 1)
AV2:AOメディアビデオ2(AOMedia Video 2)
【外国語明細書】