(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-22
(45)【発行日】2023-10-02
(54)【発明の名称】ビデオ符号化方法、装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/119 20140101AFI20230925BHJP
H04N 19/157 20140101ALI20230925BHJP
H04N 19/176 20140101ALI20230925BHJP
H04N 19/70 20140101ALI20230925BHJP
H04N 19/593 20140101ALI20230925BHJP
【FI】
H04N19/119
H04N19/157
H04N19/176
H04N19/70
H04N19/593
(21)【出願番号】P 2021553356
(86)(22)【出願日】2020-08-25
(86)【国際出願番号】 US2020047814
(87)【国際公開番号】W WO2021041421
(87)【国際公開日】2021-03-04
【審査請求日】2021-09-08
(32)【優先日】2019-08-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リャン・ジャオ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2019/154936(WO,A1)
【文献】米国特許出願公開第2018/0262763(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/119
H04N 19/157
H04N 19/176
H04N 19/70
H04N 19/593
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオ復号方法であって、
符号化ツリーブロック(CTB)を符号化ブロックに分割するステップと、
前記符号化ブロックの1つである現在ブロックの第1のブロックサイズに基づいて、前記現在ブロックに対してイントラサブパーティション(ISP)モードが許可されるか否かを決定するステップと、
前記現在ブロックに対して前記ISPモードが許可される場合には、前記ISPモードに応じて、前記現在ブロックを復号するステップであって、前記現在ブロックが非正方形ブロックである場合、分割タイプは前記現在ブロックの形状またはサイズに基づいて暗黙的に導出される、ステップと、を含
み、
前記ISPモードは非正方形ブロックに適用可能であり、且つ正方形ブロックに適用不能であり、
前記現在ブロックを復号するステップは、
前記現在ブロックに対して前記ISPモードが許可される場合、前記現在ブロックのブロック高さが前記現在ブロックのブロック幅に対する比が第1の閾値以上である場合には前記現在ブロックに対して垂直分割タイプを決定し、前記現在ブロックの前記ブロック幅が前記現在ブロックの前記ブロック高さに対する比が第2の閾値以上である場合には前記現在ブロックに対して水平分割タイプを決定するステップを含む、
方法。
【請求項2】
前記第1のブロックサイズは、
前記現在ブロックの
前記ブロック幅、
前記現在ブロックの
前記ブロック高さ、または
前記現在ブロックの前記ブロック幅と前記ブロック高さとの和のうちの1つにより表される、請求項1に記載の方法。
【請求項3】
前記ISPモードが許可されるか否かを決定するステップは、
前記現在ブロックの
前記ブロック幅と
前記ブロック高さとのうちの最小値が閾値以上である場合に、前記現在ブロックに対して前記ISPモードが許可されないと決定するステップを含む、請求項1に記載の方法。
【請求項4】
前記ISPモードが許可されるか否かを決定するステップは、
前記現在ブロックの
前記ブロック幅と
前記ブロック高さとのうちの最大値が閾値以上である場合に、前記現在ブロックに対して前記ISPモードが許可されないと決定するステップを含む、請求項1に記載の方法。
【請求項5】
前記ISPモードが許可されるか否かを決定するステップは、
前記現在ブロックのブロックエリアが閾値以上である場合に、前記現在ブロックに対して前記ISPモードが許可されないと決定するステップを含む、請求項1に記載の方法。
【請求項6】
前記ISPモードが許可されるか否かを決定するステップは、
前記現在ブロックの
前記ブロック幅が
前記ブロック高さに対する第1の比率と前記現在ブロックの前記ブロック高さが前記ブロック幅に対する第2の比率とのうちの最大値である、前記現在ブロックの横縦比が閾値以下である場合に、前記現在ブロックに対して前記ISPモードが許可されないと決定するステップを含む、請求項1に記載の方法。
【請求項7】
前記閾値は1より大きい整数である、請求項6に記載の方法。
【請求項8】
前記現在ブロックを復号するステップは、
前記符号化ブロックの1つである前記現在ブロックの第2のブロックサイズに応じて、前記ISPモードが前記現在ブロックに適用されているか否かを示すISPモードフラグをエントロピー復号するためのコンテキストモデルを決定するステップを含む、請求項1に記載の方法。
【請求項9】
前記第2のブロックサイズは、
前記現在ブロックの
前記ブロック幅、
前記現在ブロックの
前記ブロック高さ、または
前記現在ブロックの前記ブロック幅と前記ブロック高さとの和のうちの1つにより表される、請求項8に記載の方法。
【請求項10】
前記コンテキストモデルを決定するステップは、
前記現在ブロックの
前記ブロック幅と
前記ブロック高さとのうちの最小値が閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するための前記コンテキストモデルを決定するステップを含む、請求項8に記載の方法。
【請求項11】
前記コンテキストモデルを決定するステップは、
前記現在ブロックの
前記ブロック幅と
前記ブロック高さとのうちの最大値が閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するための前記コンテキストモデルを決定するステップを含む、請求項8に記載の方法。
【請求項12】
前記コンテキストモデルを決定するステップは、
前記現在ブロックのブロックエリアが閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するための前記コンテキストモデルを決定するステップを含む、請求項8に記載の方法。
【請求項13】
前記コンテキストモデルを決定するステップは、
前記現在ブロックの
前記ブロック幅が
前記ブロック高さに対する第1の比率と前記現在ブロックの前記ブロック高さが前記ブロック幅に対する第2の比率とのうちの最大値である、前記現在ブロックの横縦比が閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するための前記コンテキストモデルを決定するステップを含む、請求項8に記載の方法。
【請求項14】
ビデオデコーダにおけるビデオ復号方法であって、
符号化ツリーブロック(CTB)を符号化ブロックに分割するステップと、
前記符号化ブロックの1つである現在ブロックの第1のブロックサイズに基づいて、前記現在ブロックに対してイントラサブパーティション(ISP)モードが許可されるか否かを決定するステップと、
前記現在ブロックに対して前記ISPモードが許可される場合には、前記ISPモードに応じて、前記現在ブロックを復号するステップであって、前記現在ブロックが非正方形ブロックである場合、分割タイプは前記現在ブロックの形状またはサイズに基づいて暗黙的に導出される、ステップと、を含み、
前記ISPモードは非正方形ブロックに適用可能であり、且つ正方形ブロックに適用不能であり、
前記ISPモードの水平分割は幅が8サンプル、高さが64サンプルの前記非正方形ブロックの符号化ブロックに対して許可されなく、前記ISPモードの垂直分割は幅が64サンプル、高さが8サンプルの前記非正方形ブロックの符号化ブロックに対して許可されない
、方法。
【請求項15】
回路を含むビデオ復号装置であって、前記回路は、
符号化ツリーブロック(CTB)を符号化ブロックに分割し、
前記符号化ブロックの1つである現在ブロックの第1のブロックサイズに基づいて、前記現在ブロックに対してイントラサブパーティション(ISP)モードが許可されるか否かを決定し、
前記現在ブロックに対して前記ISPモードが許可される場合には、前記ISPモードに応じて、前記現在ブロックを復号し、前記現在ブロックが非正方形ブロックである場合、分割タイプは前記現在ブロックの形状またはサイズに基づいて暗黙的に導出さ
れ、
前記ISPモードは非正方形ブロックに適用可能であり、且つ正方形ブロックに適用不能であり、
前記現在ブロックを復号することは、
前記現在ブロックに対して前記ISPモードが許可される場合、前記現在ブロックのブロック高さが前記現在ブロックのブロック幅に対する比が第1の閾値以上である場合には前記現在ブロックに対して垂直分割タイプを決定し、前記現在ブロックの前記ブロック幅が前記現在ブロックの前記ブロック高さに対する比が第2の閾値以上である場合には前記現在ブロックに対して水平分割タイプを決定することを含む、
装置。
【請求項16】
プロセッサに実行されることにより、前記プロセッサにビデオ復号の方法を実行させるコンピュータプログラムであって、前記方法は、
符号化ツリーブロック(CTB)を符号化ブロックに分割するステップと、
前記符号化ブロックの1つである現在ブロックの第1のブロックサイズに基づいて、前記現在ブロックに対してイントラサブパーティション(ISP)モードが許可されるか否かを決定するステップと、
前記現在ブロックに対して前記ISPモードが許可される場合には、前記ISPモードに応じて、前記現在ブロックを復号するステップであって、前記現在ブロックが非正方形ブロックである場合、分割タイプは前記現在ブロックの形状またはサイズに基づいて暗黙的に導出される、ステップと、を含
み、
前記ISPモードは非正方形ブロックに適用可能であり、且つ正方形ブロックに適用不能であり、
前記現在ブロックを復号するステップは、
前記現在ブロックに対して前記ISPモードが許可される場合、前記現在ブロックのブロック高さが前記現在ブロックのブロック幅に対する比が第1の閾値以上である場合には前記現在ブロックに対して垂直分割タイプを決定し、前記現在ブロックの前記ブロック幅が前記現在ブロックの前記ブロック高さに対する比が第2の閾値以上である場合には前記現在ブロックに対して水平分割タイプを決定するステップを含む、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、2019年8月27日に提出された、出願番号が62/892356であり、発明の名称が「Improvement for Intra Sub-Partition」である米国仮出願の優先権を主張する、2020年8月21日に提出された、出願番号が17/000156であり、発明の名称が「Method and Apparatus for Video Coding」である米国特許出願の優先権を主張する。これらの出願の全ての内容は、参照により本願に組み込まれる。
【0002】
本開示は、一般的にビデオ符号化に関する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景技術に対する説明は、本開示の背景を大まかに示すことを目的とする。ここに名を挙げられている発明者の業績は、この背景技術に記載された範囲において、出願時に従来技術として通常見なされえない記載の態様と共に、明示的にも黙示的にも本開示に対する従来技術として認められない。
【0004】
ビデオ符号化および復号は、動き補償を伴うインターピクチャ予測を使用して実行されることができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080輝度サンプルと関連する彩度サンプルの空間寸法を持っている。該一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変ピクチャレート(非公式には「フレームレート」とも呼ばれる)を持つことができる。非圧縮ビデオには、特定のビットレート要件がある。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080輝度サンプル解像度)には、1.5Gbit/sに近い帯域幅が必要となる。このようなビデオを1時間使用するには、600GBytesを超えた記憶空間が必要である。
【0005】
ビデオ符号化および復号の1つの目的は、圧縮によって入力ビデオ信号の冗長性を減らすことであり得る。圧縮は、前述の帯域幅および/または記憶空間の要件を、場合によっては2桁以上削減するのに役立つ。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用することができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる技法を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号の間の歪みは、再構築された信号を意図されたアプリケーションに役立てる程度に小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なる。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ発行アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピー符号化を含むいくつかの幅広いカテゴリからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラ符号化として知られる技法を含み得る。イントラ符号化では、サンプル値は、予め再構築された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラモードで符号化されると、そのピクチャはイントラピクチャになる可能性がある。イントラピクチャと、独立したデコーダリフレッシュピクチャなどのその派生物とは、デコーダの状態をリセットするために使用できるため、符号化されたビデオビットストリームとビデオセッションの最初のピクチャとして、または静止画像として使用されることができる。イントラブロックのサンプルは変換にさらされることができ、変換係数はエントロピー符号化の前に量子化されることができる。イントラ予測は、事前変換領域でサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために所定の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えばMPEG-2世代符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、デコード順の先に位置するデータのブロックのエンコード/デコード中に得られた周囲のサンプルデータおよび/またはメタデータからイントラ予測を試みる技法を含む。そのような技法は、以降、「イントラ予測」技法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構成中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データを使用しないことに注意されたい。
【0009】
イントラ予測はさまざまな形態で存在し得る。そのような技法の2つ以上が所定のビデオ符号化技術に使用できる場合、使用中の技法はイントラ予測モードで符号化されることができる。場合によっては、モードはサブモードやパラメータを有することができ、それらを個別に符号化するか、もしくはモードコードワードに含めることができる。どのコードワードが所定のモード/サブモード/パラメーターの組み合わせに使用されるかは、イントラ予測による符号化効率ゲインに影響を与える可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードはH.264で提出され、H.265で改良され、さらに共同探索モデル(JEM)、多用途ビデオ符号化(VVC)、およびベンチマークセット(BMS)などのより新しい符号化技術で改良された。予測子ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成されることができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームで符号化されるか、もしくはそれ自体を予測され得る。
【0011】
図1を参照し、右下に示されたのは、H.265の33通りの可能な予測子方向(35個のイントラ予測モードのうちの33個の角度モードに対応)から知られる9通りの予測子方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、水平軸から45度の角度での右上の1つまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平軸から22.5度の角度での、サンプル(101)の左下の1つまたは複数のサンプルから予測されることを示す。
【0012】
引き続き
図1を参照し、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示される)が示されている。正方形ブロック(104)は、それぞれが、「S」、Y次元におけるその位置(例えば、行インデックス)、およびX次元におけるその位置(例えば、列インデックス)でラベル付けされた16サンプルを含む。例えば、サンプルS21は、Y次元(上から)における2番目のサンプルかつX次元(左から)における1番目のサンプルである。同様に、サンプルS44は、YおよびX次元の両方においてブロック(104)における4番目のサンプルである。ブロックがサイズで4×4サンプルなので、S44は、右下にある。さらに、同様な番号付け体系に従う参照サンプルが示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)およびX位置(列インデックス)でラベル付けされる。H.264とH.265の両方で、予測サンプルは再構築中のブロックに隣接している。したがって、負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向で適切の隣接するサンプルから参照サンプル値をコピーすることで機能することができる。例えば、仮に、符号化されたビデオビットストリームは、このブロックについて矢印(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】
図2は、経時的な予測方向の増加数を示すために、JEMによる65通りのイントラ予測方向を示す概略図(201)を示す。
【0017】
方向を表す符号化されたビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオ符号化技術ごとに異なる可能性があり、また、例えば、イントラ予測モードへ乃至コードワードへの予測方向の単純な直接マッピングから、最も可能性の高いモードや類似した技法を含む複雑な適応方式までの範囲とすることができる。しかしながら、すべての場合において、他の特定の方向よりも統計的にビデオコンテンツにおいて発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の削減であるため、適切に機能するビデオ符号化技術では、これらの可能性の低い方向は、可能性の高い方向よりも多くのビット数で表される。
【発明の概要】
【課題を解決するための手段】
【0018】
本開示の態様は、ビデオデコーダにおけるビデオ復号方法を提供する。前記方法は、符号化ツリーブロック(CTB)を符号化ブロックに分割するステップと、前記符号化ブロックの1つである現在ブロックの第1のブロックサイズに基づいて、前記現在ブロックに対してイントラサブパーティション(ISP)モードが許可されるか否かを決定するステップと、前記現在ブロックに対して前記ISPモードが許可される場合には、前記ISPモードに応じて、前記現在ブロックを復号するステップと、を含む。
【0019】
一実施形態では、前記第1のブロックサイズは、前記現在ブロックのブロック幅、前記現在ブロックのブロック高さ、または前記現在ブロックの前記ブロック幅と前記ブロック高さとの和のうちの1つにより表される。一実施形態では、前記ISPモードが許可されるか否かを決定するステップは、前記現在ブロックのブロック幅とブロック高さとのうちの最小値が閾値以上である場合に、前記現在ブロックに対して前記ISPモードが許可されない。一実施形態では、前記現在ブロックのブロック幅とブロック高さとのうちの最大値が閾値以上である場合に、前記現在ブロックに対して前記ISPモードが許可されない。一実施形態では、前記現在ブロックのブロックエリアが閾値以上である場合に、前記現在ブロックに対して前記ISPモードが許可されない。
【0020】
一実施形態では、前記現在ブロックの横縦比が閾値以下である場合に、前記ISPモードが許可されない。前記横縦比は、前記現在ブロックのブロック幅がブロック高さに対する第1の比率と前記現在ブロックの前記ブロック高さが前記ブロック幅に対する第2の比率とのうちの最大値である。前記閾値は、1より大きい整数であってもよい。
【0021】
一部の実施形態では、前記符号化ブロックの1つである前記現在ブロックの第2のブロックサイズに応じて、ISPモードフラグをエントロピー復号するためのコンテキストモデルを決定してもよい。ISPモードフラグは、前記ISPモードが前記現在ブロックに適用されているか否かを示す。前記第2のブロックサイズは、前記現在ブロックのブロック幅、前記現在ブロックのブロック高さ、または前記現在ブロックの前記ブロック幅と前記ブロック高さとの和のうちの1つにより表される。
【0022】
一実施形態では、前記現在ブロックのブロック幅とブロック高さとのうちの最小値が閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するためのコンテキストモデルを決定する。一実施形態では、前記現在ブロックのブロック幅とブロック高さとのうちの最大値が閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するためのコンテキストモデルを決定する。
【0023】
一実施形態では、前記現在ブロックのブロックエリアが閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するためのコンテキストモデルを決定する。一実施形態では、前記現在ブロックの横縦比が閾値以上であるか否かに応じて、前記ISPモードフラグをエントロピー復号するためのコンテキストモデルを決定する。前記横縦比は、前記現在ブロックのブロック幅がブロック高さに対する第1の比率と前記現在ブロックの前記ブロック高さが前記ブロック幅に対する第2の比率とのうちの最大値であってもよい。
【0024】
一部の実施形態では、前記ISPモードは非正方形ブロックに適用可能であり、且つ正方形ブロックに適用不能である。一実施形態では、前記非正方形ブロックのそれぞれに対して、水平分割タイプまたは垂直分割タイプのいずれかを許可する。一実施形態では、前記現在ブロックのブロック幅とブロック高さとに基づいて、垂直分割または水平分割を示す分割タイプを決定してもよい。
【0025】
一実施形態では、前記現在ブロックに対して前記ISPモードが許可される場合、前記現在ブロックのブロック高さが前記現在ブロックのブロック幅に対する比が第1の閾値以上である場合には前記現在ブロックに対して垂直分割タイプを決定し、前記現在ブロックの前記ブロック幅が前記現在ブロックの前記ブロック高さに対する比が第2の閾値以上である場合には前記現在ブロックに対して水平分割タイプを決定する。
【0026】
一実施形態では、前記ISPモードの水平分割は幅が8サンプル、高さが64サンプルの前記非正方形ブロックの符号化ブロックに対して許可されなく、前記ISPモードの垂直分割は幅が64サンプル、高さが8サンプルの前記非正方形ブロックの符号化ブロックに対して許可されない。
【0027】
本開示の態様は、ビデオ復号装置を提供する。前記装置は回路を含み、前記回路は、符号化ツリーブロック(CTB)を符号化ブロックに分割し、前記符号化ブロックの1つである現在ブロックの第1のブロックサイズに基づいて、前記現在ブロックに対してイントラサブパーティション(ISP)モードが許可されるか否かを決定し、前記現在ブロックに対して前記ISPモードが許可される場合には、前記ISPモードに応じて、前記現在ブロックを復号する。
【0028】
本開示の態様はまた、ビデオ復号用のコンピュータに実行されることにより、前記コンピュータにビデオ復号の方法を実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0029】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0030】
【
図1】イントラ予測モードの例示的なサブセットの概略図である。
【
図3】実施形態に係る通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】実施形態に係る通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】実施形態に係るデコーダの簡略化されたブロック図の概略図である。
【
図6】実施形態に係るエンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態に係るエンコーダを示すブロック図である。
【
図8】別の実施形態に係るデコーダを示すブロック図である。
【
図9A】四分木+二分木(QTBT)分割構造(920)を用いて分割された符号化ツリーユニット(CTU)(910)を示す図である。
【
図9B】QTBT分割構造(920)を示す図である。
【
図11A】本開示の実施形態に係るISPモードで符号化された符号化ブロック(1100)の水平分割および垂直分割を示す図である。
【
図11B】本開示の実施形態に係るISPモードで符号化された他の符号化ブロック(1150)の水平分割および垂直分割を示す図である。
【
図12】本開示の実施形態に係るプロセス(1200)の概要を示すフローチャートである。
【
図13】本開示の実施形態に係るプロセス(1300)の概要を示すフローチャートである。
【
図14】本開示の実施形態に係るプロセス(1400)の概要を示すフローチャートである。
【
図15】実施形態に係るコンピュータシステムの概略図である。
【発明を実施するための形態】
【0031】
I、ビデオエンコーダ・デコーダシステム
【0032】
図3は、本開示の実施形態による通信システム(300)の概略ブロック図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1のペアの端末装置(310)と(320)を含む。
図3の例では、第1のペアの端末装置(310)と(320)は、データの単方向送信を実行する。例えば、端末装置(310)は、ネットワーク(350)を介して他方の端末装置(320)へ送信するためにビデオデータ(例えば、端末装置(310)によってキャプチャされたビデオピクチャのストリーム)を符号化する。エンコードされたビデオデータは、1つ以上の符号化されたビデオビットストリームの形態で送信されることができる。端末装置(320)は、ネットワーク(350)から符号化ビデオデータを受信し、符号化ビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向のデータ送信は、メディアサービングアプリケーションなどで一般的である。
【0033】
他の例では、通信システム(300)は、例えば、ビデオ会議中に発生し得る符号化ビデオデータの双方向送信を実行する第2のペアの端末装置(330)と(340)を含む。データの双方向送信の場合、一例では、端末装置(330)および(340)のそれぞれは、ネットワーク(350)を介して端末装置(330)および(340)のうちの他方の端末装置へ送信するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)を符号化する。端末装置(330)および(340)の一方は、端末装置(330)および(340)のうちの他方の端末装置により送信された符号化ビデオデータを受信することができ、符号化ビデオデータをデコードしてビデオピクチャを復元することができ、復元されたビデオデータに従ってビデオピクチャをアクセス可能な表示装置に表示することができる。
【0034】
図3の例では、端末装置(310)、(320)、(330)、(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示されることができるが、本開示の原理はこれに制限されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、および/または専用のビデオ会議機器にも適用される。ネットワーク(350)は、端末装置(310)、(320)、(330)、(340)間で符号化ビデオデータを伝達する任意の数のネットワークを表し、例えば有線および/または無線通信ネットワークを含む。通信ネットワーク(350)は、回路交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の作動に対して重要でない可能性がある。
【0035】
図4は、開示された主題の適用の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、及び、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応アプリケーションにも同様に適用可能である。
【0036】
ストリーミングシステムは、例えば非圧縮のビデオピクチャ(402)のストリームを作成するデジタルカメラなどのビデオソース(401)を含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャ(402)のストリームは、デジタルカメラによって取得されたサンプルを含む。エンコードされたビデオデータ(404)(又は符号化されたビデオビットストリーム)と比較して高データ量を強調するために太線で示されたビデオピクチャ(402)のストリームは、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示された主題の態様を可能にするか或いは実施するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャ(402)のストリームと比較してより低いデータ量を強調するために細い線で示された、エンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム(404))は、将来使うためにストリーミングサーバ(405)に記憶されることができる。
図4のクライアントサブシステム(406)および(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)および(409)を検索することができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)におけるビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入り方向コピー(407)をデコードし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(描画せず)でレンダリングできるビデオピクチャ(411)の出方向ストリームを作成する。一部のストリーミングシステムにおいて、エンコードされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮規格に従ってエンコードされることができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、発展中のビデオ符号化規格は、非公式的にヴァーサトゥルビデオ符号化またはVVCとして知られている。開示された主題は、VVCの文脈に使用され得る。
【0037】
なお、電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができる。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)を含むこともできる。
【0038】
図5は、本開示の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例におけるビデオデコーダ(410)の代わりに使用されることができる。
【0039】
受信機(531)は、ビデオデコーダ(510)によってデコードされる1つ以上の符号化ビデオシーケンスを受信することができ、同一または別の実施形態では、一度に1つの符号化ビデオシーケンスを受信してもよく、各符号化ビデオシーケンスのデコードは、他の符号化ビデオシーケンスから独立している。符号化ビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信されることができる。受信機(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、符号化オーディオデータおよび/または補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信機(531)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合、バッファメモリ(515)は、ビデオデコーダ(510)(図示せず)の外部に存在し得る。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在し、さらに、例えば、再生タイミングを取り扱うためにビデオデコーダ(510)の内部に別のバッファメモリ(515)が存在し得る。受信機(531)が十分な帯域幅および可制御性を有する記憶/転送装置から、または等同期ネットワークからデータを受信する際に、バッファメモリ(515)は必要とされないことがあり、または小さくされることがある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要になる場合があり、バッファメモリ(515)は、比較的大きいことがあり、有利には適応サイズであることができ、ビデオデコーダ(510)の外部のオペレーティングシステムまたは類似の要素(図示せず)に少なくとも部分的に実施され得る。
【0040】
ビデオデコーダ(510)は、符号化ビデオシーケンスからシンボル(521)を再構築するパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の操作を管理するために使用される情報を含んで、および、電子デバイス(530)の不可欠な部分ではないが、
図5に示されるように電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、表示画面)のようなレンダリングデバイスを制御する情報を潜在的に含む。レンダリングデバイスのための制御情報は、補助強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であってよい。パーサ(520)は、受信された符号化ビデオシーケンスを構文解析/エントロピーデコードすることができる。符号化ビデオシーケンスの符号化は、ビデオ符号化技術または規格に合わせることができ、可変長符号化、ハフマン符号化、文脈感受性を有するもしくは有さない算術符号化などを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャ群(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)は、符号化ビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報をも抽出することができる。
【0041】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析操作を実行することができる。
【0042】
シンボル(521)の再構築は、符号化ビデオピクチャまたはその一部のタイプ(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)、および他の要因に応じて、複数の異なるユニットが関与することができる。どのユニットが、どのように関与するかは、パーサ(520)によって符号化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0043】
すでに述べた機能ブロックに加え、ビデオデコーダ(510)は、以下で説明されるようにいくつかの機能ユニットに概念的に細分されることができる。商業的な制約の下で実際の実施操作にあたっては、これらのユニットの多くは互いに密接に相互作用し、少なくとも一部は互いに統合することができる。しかしながら、開示された主題の説明の目的で、以下の機能ユニットへの概念的な細分は、適切に行われる。
【0044】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力可能なサンプル値を含むブロックを出力することができる。
【0045】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化ブロック、すなわち、予め再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの予め再構築された部分からの予測情報を使用できるブロックに関係することがある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックの同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、一部再構築された現在ピクチャおよび/または完全に再構築された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0046】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化された、潜在的に動き補償されたブロックに関係することがある。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(521)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルを取り出す参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル(521)の形態で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプル正確な動きベクトルが使用中であるときに参照ピクチャメモリ(557)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0047】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けられる。ビデオ圧縮技術は、符号化ビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれる、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能とされたパラメータによって制御されることができ、それに、符号化ピクチャまたは符号化ビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構築されループフィルタリングされたサンプル値に応じることもできるループ内フィルタ技術を含むことができる。
【0048】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)へ出力されることができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶されることができるサンプルストリームであり得る。
【0049】
特定の符号化ピクチャは、完全に再構築されると、将来の予測のために参照ピクチャとして使用されることができる。例えば、現在ピクチャに対応する符号化ピクチャが完全に再構築され、符号化ピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次の符号化ピクチャの再構築を開始する前に新しい現在ピクチャバッファを再割当てすることができる。
【0050】
ビデオデコーダ(510)は、ITU-T推奨のH.265のような規格での所定のビデオ圧縮技術に従ってデコード操作を実行することができる。符号化ビデオシーケンスが、ビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、特定のツールをそのプロファイルで使用できるツールとして選択することができる。符号化ビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様および符号化ビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0051】
一実施形態では、受信機(531)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、符号化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、および/または、元のビデオデータをより正確に再構築するためにビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態にされることができる。
【0052】
図6は、本開示の実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。
図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(603)を使用することができる。
【0053】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるビデオ画像をキャプチャし得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。他の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0054】
ビデオソース(601)は、ビデオエンコーダ(603)によって符号化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース(601)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
【0055】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムでまたはアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャを符号化し、符号化ビデオシーケンス(643)に圧縮することができる。適切な符号化速度を実施することは、コントローラ(650)の機能の1つである。一部の実施形態では、コントローラ(650)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、カップリングは示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技法のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索領域などを含むことができる。コントローラ(650)は、特定のシステム設計に対して最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成されることができる。
【0056】
一部の実施形態では、ビデオエンコーダ(603)は、符号化ループで動作するように構成される。過度に簡略化した説明として、一例では、符号化ループは、ソースコーダ(630)(例えば、符号化対象となる入力ピクチャおよび参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、およびビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、シンボルを再構築して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する(シンボルと符号化されたビデオビットストリーム間の如何なる圧縮は、開示された主題で考慮されるビデオ圧縮技術では可逆であるためである)。再構築されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(634)に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性の該基本原理(および例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連分野にも使用されている。
【0057】
「ローカル」デコーダ(633)の動作は、前文で
図5に関連して既に詳細に説明された、ビデオデコーダ(510)などの「リモート」デコーダの動作と同様であり得る。しかしながら、
図5も簡単に参照し、シンボルが使用可能であり、エントロピーコーダ(645)およびパーサ(520)による符号化ビデオシーケンスへのシンボルの符号化/デコードは可逆であり得るので、バッファメモリ(515)、およびパーサ(520)を含むビデオデコーダ(510)のエントロピー復号部分は、ローカルデコーダ(633)では完全に実施されない場合がある。
【0058】
これで分かるように、デコーダに存在する構文解析/エントロピー復号以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示された主題は、デコーダ操作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0059】
操作中、一部の例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の予め符号化されたピクチャを参照して入力ピクチャを予測的に符号化する動き補償予測符号化を実行してもよい。このようにして、符号化エンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差異を符号化する。
【0060】
ローカルビデオデコーダ(633)は、ソースコーダ(630)で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化ビデオデータをデコードすることができる。符号化エンジン(632)の操作は、有利には非可逆プロセスであり得る。符号化ビデオデータがビデオデコーダ(
図6に示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される再構築された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構築された参照ピクチャのコピーをローカルに記憶し得る。
【0061】
予測器(635)は、符号化エンジン(632)の予測検索を実行することができる。つまり、符号化対象となる新しいピクチャについて、予測器(635)は、(候補の参照画素ブロックとしての)サンプルデータ、または、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(634)で検索することができる。予測器(635)は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに操作することができる。場合によっては、予測器(635)で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
【0062】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)の符号化操作を管理することができる。
【0063】
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピー符号化を受けられる。エントロピーコーダ(645)は、例えば、ハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0064】
送信機(640)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備のために、エントロピーコーダ(645)によって作成された符号化ビデオシーケンスをバッファリングすることができる。送信機(640)は、ビデオコーダ(603)からの符号化ビデオデータを、送信されるべき他のデータ、例えば、符号化オーディオデータおよび/または補助データストリーム(ソースは示されていない)とマージすることができる。
【0065】
コントローラ(650)は、ビデオエンコーダ(603)の操作を管理し得る。符号化中、コントローラ(650)は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得る符号化技法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。
【0066】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずに符号化および復号され得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形およびそれらのそれぞれの用途および特徴を知っている。
【0067】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測により符号化および復号され得るものであり得る。
【0068】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測により符号化および復号され得るものであり得る。同様に、多重予測ピクチャは、単数のブロックの再構築のために2つを超えた参照ピクチャおよび関連メタデータを使用することができる。
【0069】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロック単位で符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定された他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同一のピクチャの既に符号化されたブロック(空間予測またはイントラ予測)を参照して予測的に符号化されてもよい。Pピクチャの画素ブロックは、1つの予め符号化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的に符号化され得る。Bピクチャのブロックは、1つまたは2つの予め符号化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的に符号化され得る。
【0070】
ビデオエンコーダ(603)は、ITU-T推奨のH.265などの予め設定されたビデオ符号化技術または規格に従って、符号化操作を実行することができる。操作中、ビデオエンコーダ(603)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測符号化操作を含む、様々な圧縮操作を実行することができる。したがって、符号化ビデオデータは、使用されるビデオ符号化技術または規格によって指定されたシンタックスに準拠する場合がある。
【0071】
一実施形態では、送信機(640)は、エンコードされたビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、このようなデータを符号化ビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形態での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0072】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在ピクチャと呼ばれるエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在ピクチャにおけるブロックが、ビデオにおける予め符号化され、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在ピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによって符号化されることができる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
【0073】
一部の実施形態では、インターピクチャ予測において双予測法を使用することができる。双予測法によれば、ビデオにおける現在ピクチャよりもデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去および未来にあり得る)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャを使用する。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによって符号化されることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0074】
さらに、マージモード技法をインターピクチャ予測に適用して、符号化効率を向上させることができる。
【0075】
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャ内のピクチャは、圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素など、同一のサイズを有する。一般に、CTUは、1つの輝度CTBと2つの彩度CTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的に四分木分割されることができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16個の16×16画素のCUに分割されることができる。一例では、各CUを解析して、インター予測タイプまたはイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的および/または空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。通常、各PUは、1つの輝度予測ブロック(PB)と2つの彩度PBを含む。一実施形態では、符号化(エンコード/デコード)における予測操作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、輝度値)の行列を含む。
【0076】
図7は、本開示の他の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、一連のビデオピクチャ内の現在ビデオピクチャにおけるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化ビデオシーケンスの一部である符号化ピクチャにエンコードするように構成される。一例では、
図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(703)を使用する。
【0077】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、例えばレート歪み最適化を用いて、処理ブロックをイントラモード、インターモード、または双予測モードにより最も良く符号化するか否かを決定する。処理ブロックがイントラモードで符号化されようとする場合、ビデオエンコーダ(703)は、イントラ予測法を用いて処理ブロックを符号化ピクチャにエンコードすることができる。また、処理ブロックがインターモードまたは双予測モードで符号化されようとする場合、ビデオエンコーダ(703)は、それぞれインター予測または双予測法を用いて、処理ブロックを符号化ピクチャにエンコードすることができる。特定のビデオ符号化技術では、マージモードは、予測子外の符号化動きベクトル成分の利便を介することなく、1つ以上の動きベクトル予測子から動きベクトルを導出するインターピクチャ予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0078】
図7の例では、ビデオエンコーダ(703)は、
図7に示すように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差算出部(723)、スイッチ(726)、残差エンコーダ(724)、統括制御部(721)およびエントロピーエンコーダ(725)を含む。
【0079】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコード法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な技法を用いてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされたデコード参照ピクチャである。
【0080】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既に符号化されたブロックと比較し、量子化された変換後係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラエンコード法によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ(722)は、イントラ予測情報および同一のピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も算出する。
【0081】
統括制御部(721)は、統括制御データを決定し、統括制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、統括制御部(721)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのイントラモード結果を選択するようにスイッチ(726)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。また、モードがインターモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのインター予測結果を選択するようにスイッチ(726)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。
【0082】
残差算出部(723)は、受信されたブロックとイントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域へと変換し、変換係数を生成するように構成される。その後、変換係数は量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行し、デコード残差データを生成するように構成される。デコード残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用されることができる。例えば、インターエンコーダ(730)は、デコード残差データおよびインター予測情報に基づいて、デコードブロックを生成することができ、イントラエンコーダ(722)は、デコード残差データおよびイントラ予測情報に基づいて、デコードブロックを生成することができる。一部の例では、デコードブロックは、デコードピクチャを生成するように適切に処理され、デコードピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。
【0083】
エントロピーエンコーダ(725)は、エンコードブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報をビットストリームに含ませるように構成される。一例では、エントロピーエンコーダ(725)は、統括制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含ませるように構成される。開示された主題によれば、インターモードまたは双予測モードのマージサブモードでブロックを符号化する場合、残差情報はないことに留意されたい。
【0084】
図8は、本開示の他の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化ビデオシーケンスの一部である符号化ピクチャを受信し、符号化ピクチャをデコードして、再構築ピクチャを生成するように構成される。一例では、
図4の例におけるビデオデコーダ(410)の代わりにビデオデコーダ(810)を使用する。
【0085】
図8の例では、ビデオデコーダ(810)は、
図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)、およびイントラデコーダ(872)を含む。
【0086】
エントロピーデコーダ(871)は、符号化ピクチャから、符号化ピクチャを構成するシンタックス要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、後の2つのマージサブモードまたは他のサブモード)、それぞれイントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形態での残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードであれば、インター予測情報は、インターデコーダ(880)に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ(872)に提供される。残差情報は、逆量子化を施されることができ、残差デコーダ(873)に提供される。
【0087】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0088】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0089】
残差デコーダ(873)は、逆量子化を実行することで、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)は、(量子化器パラメータ(QP)を含めるように)特定の制御情報をも必要とする場合があり、この情報は、エントロピーデコーダ(871)によって提供されてもよい(データパスは、低ボリューム制御情報のみであり得るため、示されていない)。
【0090】
再構築モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と、(場合によってはインターまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構築ビデオの一部となり得る再構築ピクチャの一部であり得る再構築ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができる。
【0091】
なお、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、任意の適切な技法を用いて実施されることができる。一実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、1つ以上の集積回路を用いて実施されることができる。他の実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実施されることができる。
【0092】
II、イントラサブパーティション符号化モード
【0093】
1.四分木ブロック分割構造
【0094】
ブロック分割構造は、根ノードと、非葉ノードと、葉ノードとを含む符号化ツリーを生成するために用いられることができる。一部の実施形態では、四分木構造を用いることにより、符号化ツリーユニット(CTU)を符号化ユニット(CU)(符号化ツリーにおける葉ノードCUまたは葉CU)に分割して、様々なローカル特性に適合することができる。CTUは、例えば、四分木分割によって中間CU(非葉ノードCUまたは非葉CU)に分割されることができる。中間CUは、許容されるCUサイズの規制に伴う四分木構造を用いてさらに再帰的に分割されることができる。
【0095】
本開示では、符号化ツリーからの指示に基づいてCTUがCUに分割される過程において、CUとは符号化ツリーの葉ノードCUのことであり、中間CU(符号化ツリーのCTUとCUとの間)とは符号化ツリーの非葉ノードCUのことである。
【0096】
インターピクチャ(時間的)またはイントラピクチャ(空間的)予測を用いてピクチャ領域を符号化するか否かの決定は、葉CUレベルで行われる。インター予測による符号化の対象となる葉CUは、予測ユニット(PU)分割のタイプにしたがって、例えば、1つ、2つまたは4つのPUにさらに分割されることができる。1つのPU内では、同じ予測処理が適用され、関連情報がPU単位でデコーダに送信される。同様に、イントラ予測による符号化の対象となる葉CUは、さらに分割され、異なるイントラ符号化モードを適用することができる。
【0097】
別の四分木構成によれば、予測処理を適用して葉CUの残差ブロックを求めた後、葉CUを変換ユニット(TU)に分割することができる。このように、CU(葉ノードCU)、PU、TUを含む複数の分割の概念が存在することが分かる。一部の実施形態では、CUまたはTUは正方形でなければならず、PUは正方形であってもよく、長方形であってもよい。また、一部の実施形態では、葉CUに対応する1つの符号化ブロックをさらに4つの正方形のサブブロックに分割し、サブブロック、すなわちTUごとに変換を行うようにしてもよい。葉CUに対応する1つの符号化ブロックは、残差四分木(RQT)と呼ばれる四分木構造を用いて、より小さいTUに再帰的に分割されることができる。
【0098】
ピクチャ境界において、一部の実施形態では、暗黙的な四分木分割を採用して、ブロックのサイズがピクチャ境界に収まるまで、ブロックの四分木分割を保持することができる。
【0099】
2.四分木+二分木(QTBT)ブロック分割構造
【0100】
一部の実施形態では、四分木+二分木(QTBT)構造が採用されている。QTBT構造は、複数の分割タイプ(CU、PU、TUの概念)の概念を取り除き、葉CUの分割形状により柔軟に対応できる。QTBTブロック構造では、(葉)CUの形状は正方形であってもよく、長方形であってもよい。
【0101】
図9Aは、
図9Bに示すQTBT構造(920)を用いて分割したCTU(910)を示している。CTU(910)は、まず、四分木構造で分割される。生成された四分木ノードはさらに、二分木構造または四分木構造によって分割される。四分木分割は実線で表され、二分木分割は破線で表される。二分木分割には、対称水平分割と対称垂直分割との2種類がある。二分木の葉ノードCUは、さらなる分割なしに(例えば、葉CU内のPUなしに)予測と変換処理に用いられることができる。これにより、
図9A、
図9Bの例のQTBTの符号化ブロック構造において、CU、PU、TUのブロックサイズを同じにすることができる。
【0102】
一部の実施形態では、CUは異なる色成分の符号化ブロック(CB)を含むことができる。例えば、4:2:0の彩度フォーマットのP及びBスライスの場合、1つのCUは、1つの輝度CBと、2つの彩度CBとを含む。CUは、単色成分のCBを含むことができる。例えば、Iスライスの場合、1つのCUは輝度Cbを1つのみ含んでもよく、2つの彩度CBのみを含んでもよい。
【0103】
一部の実施形態では、QTBT分割方式に対して、以下のパラメータが定義される。
・CTU Size:四分木の根ノードのサイズ
・MinQTSize:四分木葉ノードの許容される最小サイズ
・MaxBTSize:二分木根ノードの許容される最大サイズ
・MaxBTDepth:二分木の許容される最大深さ
・MinBTSize:二分木葉ノードの許容される最小サイズ
【0104】
QTBT分割構造の一例では、CTU Sizeを、対応する2つの64×64の彩度サンプルのブロックを有する128×128の輝度サンプルに設定し、MinQTSizeを16×16に設定し、MaxBTSizeを64×64に設定し、MinBTSize(幅と高さの両方)を4×4に設定し、MaxBTDepthを4に設定する。上記四分木分割はCTUに適用されて、四分木葉ノードが生成される。四分木葉ノードのサイズは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTU Size)であり得る。四分木葉ノードが128×128である場合には、MaxBTSize(すなわち、64×64)を超えるため、さらに二分木によって分割されることはない。他の場合、四分木葉ノードをさらに二分木によって分割することができる。したがって、四分木葉ノードは二分木に対する根ノードでもあり、二分木の深さが0である。
【0105】
二分木の深さがMaxBTDepth(すなわち、4)に達している場合、さらなる分割は考えられない。二分木ノードの幅がMinBTSize(すなわち、4)に等しい場合、さらなる水平分割は考えられない。同様に、二分木ノードの高さがMinBTSizeに等しい場合、さらなる垂直分割は考えられない。二分木の葉ノードは、さらに分割されることなく(例えば、PU分割なしに)、予測・変換処理される。一実施形態では、最大のCTU Sizeは256×256の輝度サンプルである。
【0106】
二分木の各分割(すなわち、非葉)ノードにおいて、どの分割タイプ(すなわち、水平または垂直)を用いているかを示す1つのフラグにより指示することができる。例えば、0は水平分割を示し、1は垂直分割を示す。四分木分割に対して、水平方向と垂直方向の両方にブロックを分割し、4つのサブブロックを均等なサイズで生成することができるため、分割タイプを指示する必要はない。
【0107】
一部の実施形態では、QTBT方式は、輝度と彩度とが別々のQTBT構造を有する柔軟性に対応している。例えば、P及びBスライスに対して、1つのCTU内の輝度及び彩度ブロックは、同一のQTBT構造を共有する。しかしながら、Iスライスに対して、輝度CTBはQTBT構造によってCUに分割され、彩度ブロックは他のQTBT構造によって彩度CUに分割される。このように、IスライスのCUは、輝度成分の符号化ブロックまたは2つの彩度成分の符号化ブロックからなり、PまたはBスライスのCUは、全ての3つの色成分の符号化ブロックからなる。
【0108】
一部の実施形態では、小さいブロックに対するインター予測が制限され、動き補償のメモリアクセスが低減される。例えば、4×8及び8×4のブロックについては双予測が対応せず、4×4ブロックについてはインター予測が対応しない。
【0109】
3.三分木(TT)ブロック分割構造
【0110】
一部の実施形態では、マルチタイプツリー(MTT)構造がピクチャを分割するのに用いられる。MTT構造は、QTBT構造よりも柔軟な木構造である。MTTにおいては、四分木と二分木(水平または垂直)に加えて、
図10C、
図10Dにそれぞれ示すような水平中心側三分木と垂直中心側三分木が採用されている。三分木分割は、四分木と二分木分割を補完することができる。例えば、四分木と二分木がブロック中心に交差して分割する場合、三分木分割はブロック中心に位置するオブジェクトを捉えることができる。一例では、三分木による分割の幅及び高さは2の累乗である。これにより、さらなる変換分割が不要となる。
【0111】
例えば、MTT構造を採用する場合には、まず、四分木構造によってCTUを4つのCUに分割することができる。そして、四分木構造、二分木構造、または三分木構造によってさらに各CUを再帰的に分割することができる。分割は、親CUのCUのサイズと分割タイプによって制限される。二分木と三分木分割において、対称水平分割(
図10A、
図10C)と対称垂直分割(
図10B、
図10D)の2つの分割タイプがある。これにより、親CUを2つ、3つまたは4つのサブCU(または子CU)に分割することができる。各CUは、正方形または長方形の形状を有することができる。
【0112】
4.イントラサブパーティション(ISP)符号化モード
【0113】
イントラサブパーティション(ISP)符号化モードで符号化された輝度符号化ブロックは、表1に示すように、ブロックのブロックサイズに応じて、垂直(垂直ISPモード)または水平(水平ISPモード)に複数のサブパーティション(例えば、2または4)に分割されることができる。表1は、ブロックサイズに応じたサブパーティションの例を示す。
【0114】
【0115】
一部の例では、全てのサブパーティションは、少なくとも16個のサンプルを有する条件を満たしている。彩度成分に対しては、ISPモードを適用しなくてもよい。一部の例では、最大2つのビンがISPに対してシグナリングされる。第1のビンは、ISPを用いているか否かを示す。ISPを用いている場合には、1つの方向しか利用できない限り、さらに第2のビンがシグナリングされてISPの方向を指示する。
【0116】
図11A、11Bは、サブパーティションの例を示す。
図11Aは、本開示の一実施形態に係るISPモードで符号化された符号化ブロック(1100)の水平分割および垂直分割を示している。
図11Aの例では、符号化ブロック(1100)のブロックサイズはW1×H1であり、例えば4×8または8×4サンプルのいずれかである。したがって、符号化ブロック(1100)は2つのサブパーティションに分割される。符号化ブロック(1100)は、
図11Aに示すように、W1×H1/2サンプルのサイズをそれぞれ有する2つのサブパーティション(1111)、(1112)に水平に分割されてもよく、W1/2×H1サンプルのサイズをそれぞれ有する2つのサブパーティション(1121)、(1122)に垂直に分割されてもよい。
【0117】
図11Bは、本開示の一実施形態に係るISPモードで符号化された他の符号化ブロック(1150)の水平分割および垂直分割を示している。
図11Bの例では、符号化ブロック(1150)はW2×H2のサイズを有し、4×8または8×4サンプルのサイズを有するブロックよりも大きい。したがって、符号化ブロック(1150)は4つのサブパーティションに分割される。符号化ブロック(1150)は、
図11Bに示すように、W2×H2/4サンプルのサイズをそれぞれ有する4つのサブパーティション(1161)~(1164)に水平に分割されてもよく、W2/4×H2サンプルのサイズをそれぞれ有する4つのサブパーティション(1171)~(1174)に垂直に分割されてもよい。
【0118】
一部の例では、これらのサブパーティションのそれぞれに対して、エンコーダが送信する係数レベルをエントロピー復号した後、係数レベルを逆量子化して逆変換することによって、残差信号を生成することができる。そして、現在サブパーティションとも呼ぶサブパーティションの1つに対して、現在サブパーティションをイントラ予測することにより、予測信号を生成することができる。現在サブパーティションの再構築されたサンプルは、予測信号に残差信号を加算することにより求められることができる。その後、サブパーティションの再構築されたサンプルを用いて、例えば、現在サブパーティションの次の他のサブパーティションを予測することができる。この処理は、他のサブパーティションに対しても繰り返すことができる。全てのサブパーティションは、同一のイントラモードを共有することができる。
【0119】
一部の例では、ISPモードは、最確モード(MPM)リストの一部であるイントラモードのみによってテストすることができる。したがって、CUがISPモードで符号化される場合、MPMリストのMPMフラグは、例えば1またはtrueであると推定されることができる。場合によって、MPMリストは、DCモードを排除するように、または水平ISPモード(水平分割を有するISPモード)に対する水平イントラ予測モードと垂直ISPモード(垂直分割を有するISPモード)に対する垂直イントラ予測モードを優先するように変更されることができる。
【0120】
一部の例では、各サブパーティションに対して個別に変換及び再構築することが可能であるので、各サブパーティションをサブTUと見なすことができる。
【0121】
以下、一例として、VVCのドラフト6(JVET-O2001-vE)におけるISPモードに関する使用テキストについて説明する。
【0122】
表2~3ともに、符号化ユニットのシンタックスを表形式で示す。第33~36行に、ISPモードに関するシンタックが見られる。
【0123】
【0124】
【0125】
次に、ISPモードに関するシンタックス要素のセマンティクスについて説明する。intra_subpartitions_mode_flag[x0][y0]に示されるシンタックス要素が1であることは、現在イントラ符号化ユニットがNumIntraSubPartitions[x0][y0]矩形変換ブロックサブパーティションに分割されていることを指定する。シンタックス要素intra_subpartitions_mode_flag[x0][y0]が0であることは、現在イントラ符号化ユニットが矩形変換ブロックサブパーティションに分割されていないことを指定する。intra_subpartitions_mode_flag[x0][y0]が存在しない場合は、0と推定される。
【0126】
intra_subpartitions_split_flag[x0][y0]に示されるシンタックス要素は、イントラサブパーティション分割タイプが水平と垂直のどちらかを指定する。intra_subpartitions_split_flag[x0][y0]が存在しない場合は、以下のように推定される。
・cbHeightがMaxTbSizeYより大きい場合、intra_subpartitions_split_flag[x0][y0]は0と推定される。
・そうでない(cbWidthがMaxTbSizeYより大きい)場合、intra_subpartitions_split_flag[x0][y0]は1と推定される。
【0127】
変数IntraSubPartitionsSplitTypeは、表4に示すように、現在輝度符号化ブロックに用いられる分割タイプを指定する。IntraSubPartitionsSplitTypeは、以下のように導出される。
・intra_subpartitions_mode_flag[x0][y0]が0に等しい場合、IntraSubPartitionsSplitTypeを0に等しく設定する。
・そうでない場合、IntraSubPartitionsSplitTypeを1+intra_subpartitions_split_flag[x0][y0]に等しく設定する。
【0128】
【0129】
変数NumIntraSubPartitionsは、イントラ輝度符号化ブロックを分割した変換ブロックのサブパーティションの数を指定する。NumIntraSubPartitionsは、以下のように導出される。
・IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しい場合、NumIntraSubPartitionsを1に等しく設定する。
・そうでない場合、以下の条件のいずれかが真である場合には、NumIntraSubPartitionsを2に等しく設定する。
cbWidthが4に等しく、cbHeightが8に等しい;
cbWidthが8に等しく、cbHeightが4に等しい。
・そうでない場合、NumIntraSubPartitionsを4に等しく設定する。
【0130】
表5は、変換木のシンタックスを表形式で示す。ISPモードに関するシンタックスは行26~34に示される。表6及び表7ともに、変換ユニットのシンタックスを表形式で示す。ISPモードに関するシンタックスは行9~26に示される。
【0131】
【0132】
【0133】
【0134】
以下、スケーリングされた変換係数に対する変換処理の一例について説明する。この処理への入力は以下の通りである。
・現在ピクチャの左上の輝度サンプルに対する現在輝度変換ブロックの左上のサンプルを指定する輝度位置(xTbY、yTbY)、
・現在変換ブロックの幅を指定する変数nTbW、
・現在変換ブロックの高さを指定する変数nTbH、
・現在ブロックの色成分を指定する変数cIdx、
・x=0..nTbW-1、y=0..nTbH-1であるスケーリングされた変換係数の(nTbW)×(nTbH)配列d[x][y]。
【0135】
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1である残差サンプルの(nTbW)×(nTbH)配列r[x][y]である。
【0136】
lfnst_idx[xTbY][yTbY]が0ではなく、且つnTbWとnTbHとの両方が4以上である場合、以下が適用される。
・変数predModeIntra、nLfnstOutSize、log2LfnstSize、nLfnstSize、およびnonZeroSizeは、以下の通り導出される。
predModelntra=(cIdx==0)?IntraPredModeY[xTbY][yTbY]:IntraPredModeC[xTbY][yTbY]
nLfnstOutSize=(nTbW>=8&&nTbH>=8)?48:16
log2LfnstSize=(nTbW>=8&&nTbH>=8)?3:2
nLfnstSize=1<<log2LfnstSize
nonZeroSize=((nTbW==4&&nTbH==4)||(nTbW==8&&nTbH==8))?8:16
・intra_mip_flag[xTbComp][yTbComp]が1に等しく、且つcIdxが0に等しい場合、predModeIntraをINTRA_PLANARに等しく設定する。
・predModeIntraがINTRA_LT_CCLM、INTRA_L_CCLM、INTRA_T_CCLMのいずれかに等しい場合、predModeIntraをIntraPredModeY[xTbY+nTbW/2][yTbY+nTbH/2]に等しく設定する。
・第8.4.5.2.6条で指定された広角度イントラ予測モードマッピング処理は、predModeIntra、nTbW、nTbH、およびcIdxをと入力として、修正されたpredModeIntraを出力として呼び出される。
・x=0..nonZeroSize-1であるリストu[x]の値は、以下の通り導出される。
xC=DiagScanOrder[2][2][x][0]
yC=DiagScanOrder[2][2][x][1]
u[x]=d[xC][yC]
・第8.7.4.2条で指定された1次元低周波非分離変換処理は、スケーリングされた変換係数の入力長さnonZeroSizeと、nLfnstOutSizeに等しく設定された変換出力長さnTrSと、x=0..nonZeroSize-1であるスケーリングされた非ゼロ変換係数のリストu[x]と、LFNSTセット選択用のイントラ予測モードpredModeIntraと、選択されたLFNSTセットにおける変換選択用のLFNSTインデックスlfnst_idx[xTbY][yTbY]とを入力とし、x=0..nLfnstOutSize-1であるリストv[x]を出力として呼び出される。
・x=0..nLfnstSize-1、y=0..nLfnstSize-1である配列d[x][y]は以下の通り導出される。
・predModeIntraが34以下である場合、以下が適用される。
d[x][y]=(y<4)?v[x+(y<<log2LfnstSize)]:((x<4)?v[32+x+((y-4)<<2)]:d[x][y])
・そうでない場合、以下が適用される。
d[x][y]=(x<4)?v[y+(x<<log2LfnstSize)]:((y<4)?v[32+y+((x-4)<<2)]:d[x][y])
【0137】
変数implicitMtsEnabledは、以下の通り導出される。
・sps_mts_enabled_flagが1に等しく、且つ以下の条件のいずれかが真である場合、implicitMtsEnabledは1に等しく設定される。
・IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくない
・cu_sbt_flagは1に等しく、且つMax(nTbW,nTbH)は32以下である
・sps_explicit_mts_intra_enabled_flagは0に等しく、CuPredMode[0][xTbY][yTbY]はMODE_INTRAに等しく、lfnst_idx[x0][y0]は0に等しく、intra_mip_flag[x0][y0]は0に等しい
・そうでない場合、implicitMtsEnabledは0に等しく設定される。
【0138】
水平変換カーネルを指定する変数trTypeHorおよび垂直変換カーネルを指定する変数trTypeVerは、以下の通り導出される。
・cIdxが0よりも大きい場合,trTypeHorおよびtrTypeVerは0に等しく設定される。
・そうでない場合、implicitMtsEnabledが1に等しい場合には、以下が適用される。
・IntraSubPartitionsSplitTypeがISP_NO_SPLITに等しくない場合、または、sps_explicit_mts_intra_enabled_flagが0に等しく、且つCuPredMode[0][xTbY][yTbY]がMODE_INTRAに等しい場合、trTypeHorとtrTypeVerは次の通り導出される。
trTypeHor=(nTbW>=4&&nTbW<=16)?1:0
trTypeVer=(nTbH>=4&&nTbH<=16)?1:0
・そうでない場合(cu_sbt_flagが1に等しい)、trTypeHorとtrTypeVerは、cu_sbt_horizontal_flagとcu_sbt_pos_flagに応じて、表8~15において指定される。
・そうでない場合、trTypeHorとtrTypeVerは、tu_mts_idx[xTbY][yTbY]に応じて指定される。
【0139】
III、ISP符号化モードの改善
【0140】
1.ISP符号化モードの不許可
【0141】
一部の実施形態では、所定の条件に基づいて、処理中の現在ブロックに対してISPモードを不許可することによって、処理コストを低減する。例えば、符号化ブロックの分割には、木構造に基づくCTU分割とISP符号化モードとの両方を用いることができる。例えば、木構造に基づく分割方法を採用することにより、32×16サンプルのサイズのブロックを8×16サンプルのサイズの4つのブロックに分割することができる。このような分割結果は、ISP符号化モードを適用することで同様に実現することができる。
【0142】
これら2つの分割方法(木構造に基づく、ISPモードに基づく)の両方を許可する場合には、最適化されたレート対歪み性能を獲得するように、符号化処理中に両方の方法のいずれにより評価することができる。これらの冗長操作は、計算コストの増大を招くおそれがある。また、両方の分割方法に関連付けられたシンタックス要素はシグナリングされ、不要なオーバヘッドを起こすおそれがある。したがって、所定の条件下でISPモードを不許可することによって、符号化性能を向上させることができる。
【0143】
一実施形態では、現在符号化ブロックのブロックサイズが一定の条件を満たす場合に、現在ブロックに対してISPモードを許可しないことができる。ブロックサイズは、例えば、現在ブロックのブロック幅、ブロック高さ、横縦比、ブロック幅とブロック高さとのうちの最小値、ブロック幅とブロック高さとのうちの最大値、ブロック幅とブロック高さとの和、ブロックエリアなどで表されることができる。例えば、現在ブロックのブロックサイズが閾値よりも大きい、または小さい場合には、ISPモードを許可しないことができる。
【0144】
なお、本実施形態では、現在ブロックに対してISPモードを許可しない条件が満たされた場合に、表3の行34のintra_subpartitions_mode_flagなどのISPモードフラグがシグナリングされない場合がある。エンコーダは、現在ブロックのブロックサイズを調査することで、ISPモードフラグを送信しないと決定することができる。一例として、表3の第33行の検証処理は、現在ブロックのブロックサイズの検証を含むように修正されることができる。
【0145】
一実施形態において、現在ブロックのブロック幅及びブロック高さのうちの最小値が第1の閾値K1以上である場合、現在ブロックに対してISPモードを許可しないことができる。閾値K1は、16サンプル、32サンプルなどの正の整数であってもよい。
【0146】
他の実施形態では、現在ブロックのブロック幅およびブロック高さのうちの最大値が第2の閾値K2以上である場合に、現在ブロックに対してISPモードを許可しない。第2の閾値K2は、32サンプル、64サンプルなどの正の整数であってもよい。
【0147】
他の実施形態では、現在ブロックのブロックエリアが第3の閾値K3以上である場合、現在ブロックに対してISPモードを許可しない。第3の閾値K3は、256サンプル、512サンプルなどの正の整数であってもよい。
【0148】
他の実施形態では、現在ブロックのブロック横縦比(例えば、幅/高さと高さ/幅とのうちの最大値)が第4の閾値K4以下である場合、現在ブロックに対してISPモードを許可しないことができる。第4の閾値K4は、2、4のような1より大きい正の整数であってもよい。横縦比は、現在ブロックのブロック幅がブロック高さに対する第1の比率と現在ブロックのブロック高さがブロック幅に対する第2の比率とのうちの最大値であってもよい。
【0149】
2.ISP符号化モードに対するコンテキストモデル選択
【0150】
一部の実施形態では、現在ブロックのISPモード情報(例えば、ISPモードフラグ)をエントロピー符号化(エンコードまたはデコード)するために、現在ブロックのブロックサイズに基づいてコンテキストモデルを選択することができる。ブロックサイズは、例えば、現在ブロックのブロック幅、ブロック高さ、横縦比、ブロック幅とブロック高さとのうちの最小値、ブロック幅とブロック高さとのうちの最大値、ブロック幅とブロック高さとの和、ブロックエリアなどで表されることができる。例えば、現在ブロックのブロックサイズが閾値以上である場合には、第1のコンテキストモデルを選択することができる。そうでない場合には、第2のコンテキストモデルを選択することができる。
【0151】
一実施形態では、ISPモードフラグは、解析処理を行うことでビットストリームから解析された1つのビンで表される。解析処理において、現在ブロックのブロックサイズに基づいて、2つのコンテキストモデルのうちの1つを選択して、ビンを解析することができる。ブロックサイズが閾値を超える場合には、第1のコンテキストインデックスを決定し、ブロックサイズが閾値を下回る場合には、第2のコンテキストインデックスを決定することができる。続いて、第1のコンテキストインデックスまたは第2のコンテキストインデックスに対応付けられたコンテキストモデルを解析操作に用いることができる。
【0152】
第1の例では、現在ブロックのISPモードフラグのコンテキスト選択に対する条件は、ブロック幅およびブロック高さのうちの最小値が第1の閾値M1以上であるか否かとして定義されてもよい。第1の閾値M1は、16サンプル、32サンプルなどの正の整数であってもよい。
【0153】
第2の例では、現在ブロックのISPモードフラグのコンテキスト選択に対する条件は、ブロック幅およびブロック高さのうちの最大値が第2の閾値M2以上であるか否かとして定義されてもよい。閾値M2は、16サンプル、32サンプルなどの正の整数であってもよい。
【0154】
第3の例では、現在ブロックのISPモードフラグのコンテキスト選択に対する条件は、現在ブロックのブロックエリアが第3の閾値M3以上であるか否かとして定義されてもよい。第3の閾値M3は、256サンプル、512サンプルなどの正の整数であってもよい。
【0155】
第4の例では、現在ブロックのISPモードフラグのコンテキスト選択に対する条件は、現在ブロックのブロック横縦比(幅/高さと高さ/幅とのうちの最大値)が第4の閾値M4以下であるか否かとして定義されてもよい。第4の閾値M4は、1または2などの正の整数であってもよい。横縦比は、現在ブロックのブロック幅がブロック高さに対する第1の比率と現在ブロックのブロック高さがブロック幅に対する第2の比率とのうちの最大値であってもよい。
【0156】
3.ISP符号化モードの非正方形ブロックへの適用
【0157】
一部の実施形態では、ISPモードは非正方形ブロックに適用され、正方形ブロックに適用されない。したがって、一例では、ISPモードフラグは非正方形ブロックに対してシグナリングされ、正方形ブロックに対してはシグナリングされない。一例として、表3の第33行の検証処理は、例えば現在ブロックのブロックサイズに基づいた、現在ブロックが非正方形ブロックであるか否かの検証を含むように修正されることができる。
【0158】
一部の実施形態では、ISPモードを非正方形ブロックのみに適用し、分割タイプ(例えば、表3の第36行のintra_subpartitions_split_flag)は非正方形ブロックのそれぞれに対してシグナリングしない。デコーダは、現在ブロックの形状やブロックサイズに基づいて、分割タイプを暗黙的に導出することができる。例えば、現在ブロックの長辺に対応する方向に沿って1つ以上のパーティションを適用することができる。例えば、現在ブロックのブロック幅がブロック高さよりも大きい場合には、水平ISPモードを適用することができる。水平ISPモードとは、ブロック高さが現在ブロックの高さよりも小さいが、ブロック幅が現在ブロック幅と同じであるサブパーティションを生成するISPモードを意味する。一方、ブロック幅がブロック高さよりも小さい場合には、垂直ISP方式を適用することができる。水平ISPモードとは、ブロック幅が現在ブロックの幅よりも小さいが、ブロック高さが現在ブロック高さと同じであるサブパーティションを生成するISPモードを意味する。
【0159】
一部の実施形態では、ISPモードを非正方形ブロックのみに適用し、現在非正方形ブロックに対しては、水平分割タイプまたは垂直分割タイプのいずれかを許可する。これにより、デコーダは、現在非正方形ブロックにISPモードを適用(選択)した場合に、水平または垂直分割タイプから、現在非正方形ブロックを分割する分割タイプを暗黙的に決定することができる。
【0160】
一部の実施形態では、ISPモードを非正方形ブロックのみに適用し、現在非正方形ブロックに対しては、水平分割または垂直分割のいずれかのみを許可する。
【0161】
一実施形態では、ブロックのブロック高さがブロック幅に対する比が第1の所定の閾値以上である場合に、現在ブロックに対して水平ISPモードを許可しないことができる。したがって、現在ブロックにISPモードを用いた場合には、現在ブロックの分割タイプを垂直分割タイプとして導出することができる。第1の所定の閾値の値は、例えば、2、4、8、または16である。一例では、幅が8サンプル、高さが64サンプルのブロックには、水平ISPを許可しない。
【0162】
一実施形態では、現在ブロックのブロック幅がブロック高さに対する比が第2の所定の閾値以上である場合に、現在ブロックに対して垂直ISPモードを無効化(許可しない)することができる。したがって、現在ブロックに対してISPモードが選択された(用いられた)場合には、現在ブロックの分割タイプを水平分割タイプとして導出することができる。第2の所定の閾値の値は、例えば、2、4、8、または16である。一例では、幅が64サンプル、高さが8サンプルのブロックには、垂直ISPを許可しない。
【0163】
IV.処理例
【0164】
図12は、本開示の実施形態に係るプロセス(1200)の概要を示すフローチャートである。プロセス(1200)は、ブロックの再構築に用いられることができる。様々な実施形態では、プロセス(1200)は、端末装置(310)、(320)、(330)および(340)の処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(1200)はソフトウェア命令で実施され、したがって処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1200)を実行する。処理は(S1201)から開始し、ステップ(S1210)に進む。
【0165】
ステップ(S1210)では、CTUに対応する符号化ツリーブロック(CTB)を、デコーダにおいて符号化ブロックに分割する。例えば、ビデオシーケンスに対応するビットストリームにおいて、CTBがどのように分割されているかを示すシンタックス要素を受信することができる。これらのシンタックス要素によれば、デコーダは、CTBを複数の符号化ブロックに分割することができる。この分割処理の結果として、各符号化ブロックの位置やブロックサイズ(例えば、幅や高さ)を決定することができる。分割は、四分木と、二分木と、三分木との組み合わせの分割構造に基づくことができる。
【0166】
ステップ(S1220)では、(S1210)で決定した符号化ブロックの1つである現在ブロックのブロックサイズに基づいて、現在ブロックに対してISPモードが許可されるか否かを決定することができる。第1のブロックサイズが特定の条件(例えば、第III.1項の記載に従う)を満たす場合には、現在ブロックに対して、ISP方式を許可しないことができる。
【0167】
一実施形態では、エンコーダは、現在ブロックに対してISPモーを許可しないと決定した場合、現在ブロックにISPモードが使用されているか否かを示すISPモードフラグがビットストリームにおいてシグナリングされていないと決定することができる。
【0168】
ステップ(S1230)では、現在ブロックに対してISPモードが許可されると決定したことに応答して、ISPモードに応じて現在ブロックを復号することができる。例えば、現在ブロックに対してISPモードが許可されると決定した場合、デコーダは、ISPモードフラグがシグナリングされると決定した後、ビットストリームからISPモードフラグを解析することができる。一例では、第III.2項で説明したようなブロックサイズに基づいたコンテキストモデルの選択方法を、ISPモードフラグの解析に用いることができる。他の例では、第III.2項の方法を用いなくてもよい。
【0169】
一例として、次に、デコーダは、解析されたISPモードフラグの表示に基づいて、現在ブロックに対してISPモードが使用や選択されているかを決定することができる。ISPモードフラグがISPモードが使用されていないことを示す場合、デコーダは、ISPモード以外の符号化モードに基づいて現在ブロックを復号することができる。ISPモードフラグが、現在ブロックの符号化に対してISPモードが使用されていることを示す場合、デコーダは、ISPモードに基づいて現在ブロックの復号に進むことができる。
【0170】
一例では、デコーダは、分割タイプを示すISPモード分割フラグがシグナリングされているか否かを決定することができる。一例では、ISPモードフラグがシグナリングされている場合には、ISPモード分割フラグがシグナリングされていると決定することができる。デコーダは、ビットストリームからISPモード分割フラグを解析してもよい。ISPモード分割フラグにより示される分割方向に応じて、デコーダは、現在ブロックを複数のサブ変換ブロック(TB)に分割することを進め、サブ変換ブロックの再構築を順次(サブ変換ブロッごとに)に行うことができる。
【0171】
一例では、デコーダは、第III.3項に記載された方法に基づいて、ISPモード分割フラグがシグナリングされているか否かを決定してもよい。例えば、デコーダは、現在ブロックが非正方形ブロックである場合、ISPモード分割フラグがシグナリングされていないと決定することができる。デコーダは、第III.3項に記載の方法を用いて、現在ブロックの形状やブロックサイズに基づいて、分割タイプを暗黙的に導出することができる。デコーダは、分割タイプが導出された後、現在ブロックから分割されたサブ変換ブロックの再構築を行うことにより、現在ブロックを再構築することに進んでもよい。
【0172】
プロセス(1200)は、(S1299)に進み、(S1299)で終了してもよい。
【0173】
図13は、本開示の実施形態に係るプロセス(1300)の概要を示すフローチャートである。プロセス(1300)は、ブロックの再構築に用いられることができる。様々な実施形態では、プロセス(1300)は、端末装置(310)、(320)、(330)および(340)の処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(1300)はソフトウェア命令で実施され、したがって処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1300)を実行する。処理は(S1301)から開始し、(S1310)に進む。
【0174】
ステップ(S1310)では、CTBをデコーダにおいて符号化ブロックに分割する。例えば、ビデオシーケンスに対応するビットストリームにおいて、CTBがどのように分割されているかを示すシンタックス要素を受信することができる。これらのシンタックス要素によれば、デコーダは、CTBを複数の符号化ブロックに分割することができる。この分割処理の結果として、各符号化ブロックの位置やブロックサイズ(例えば、幅や高さ)を決定することができる。分割は、四分木と、二分木と、三分木との組み合わせの分割構造に基づくことができる。
【0175】
ステップ(S1320)では、現在ブロックのブロックサイズに基づいて、現在ブロックのISPモードフラグを解析するためのコンテキストモデルを決定することができる。現在ブロックは、(S1310)で得られた符号化ブロックのいずれかとされることができる。コンテキストモデルの決定には、例えば、第III.2項に記載の方法を用いることができる。
【0176】
例えば、現在ブロックがイントラ符号化された輝度ブロックであり、最大変換ブロックサイズ以下のブロック幅及び高さ、および最小変換ブロックエリアより大きいブロックエリアを有する場合、デコーダは、ISPモードフラグがシグナリングされていると決定することができる。したがって、デコーダは、ISPモードフラグを解析するためのコンテキストモデルを決定することに進むことができる。
【0177】
ステップ(S1330)では、(S1320)で決定したコンテキストモデルに基づいて、ビットストリームから現在ブロックのISPモードフラグを解析することができる。ISPモードフラグは、現在ブロックの符号化にISPモードが使用されているか否かを示すことができる。
【0178】
ステップ(S1340)では、ISPモードフラグが、現在ブロックの符号化に対してISPモードが使用されていることを示すことに応答して、ビットストリームからISPモード分割フラグを解析することができる。
【0179】
ステップ(S1350)では、ISPモード分割フラグにより示される分割方向(水平または垂直)に基づいて、デコーダは、ISPモードに応じて現在ブロックを復号することに進んでもよい。プロセス(1300)は、(S1399)に進み、(S1399)で終了してもよい。
【0180】
図14は、本開示の実施形態に係るプロセス(1400)の概要を示すフローチャートである。プロセス(1400)は、ブロックの再構築に用いられることができる。様々な実施形態では、プロセス(1400)は、端末装置(310)、(320)、(330)および(340)の処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(1400)はソフトウェア命令で実施され、したがって処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1400)を実行する。処理は(S1401)から開始し、(S1410)に進む。
【0181】
ステップ(S1410)では、CTBをデコーダにおいて符号化ブロックに分割する。例えば、ビデオシーケンスに対応するビットストリームにおいて、CTBがどのように分割されているかを示すシンタックス要素を受信することができる。これらのシンタックス要素によれば、デコーダは、CTBを複数の符号化ブロックに分割することができる。この分割処理の結果として、各符号化ブロックの位置やブロックサイズ情報(例えば、幅や高さ)を決定することができる。分割は、四分木と、二分木と、三分木との組み合わせの分割構造に基づくことができる。
【0182】
ステップ(S1420)では、(S1410)で得られた現在ブロックのブロックサイズ情報(例えば、ブロック幅、高さ)に基づいて、現在ブロックが正方形ブロックであるか、または非正方形ブロックであるかを決定する。現在ブロックが正方形ブロックである場合、デコーダは、現在ブロックに対してISPモードが許可されないと決定することができる。現在ブロックが非正方形ブロックである場合、デコーダは、現在ブロックに対してISPモードが許可されると決定することができる。
【0183】
ステップ(S1430)では、現在ブロックが非正方形ブロックであり、現在ブロックに対してISPモードが許可されると決定したことに応答して、一例では、ビットストリームからISPモードフラグを解析することができる。ISPモードフラグは、現在ブロックの符号化にISPモードが使用されているか否かを示すことができる。
【0184】
ステップ(S1440)では、現在ブロックのブロックサイズ情報に基づいて、ISPモード分割フラグを決定することができる。例えば、ISPモードフラグが、ISPモードが現在ブロックの符号化に用いられることを示す場合、ISPモード分割フラグは、現在ブロックのブロックサイズ情報に基づいて決定されることができる。例えば、第III.3項に記載の方法は、ISPモード分割フラグを暗黙的に決定するために用いられることができる。
【0185】
ステップ(S1450)では、ISPモード分割フラグが示す分割方向にしたがって、現在ブロックを復号することができる。プロセス(1400)は、(S1499)に進み、(S1499)で終了してもよい。
【0186】
V.コンピュータシステム
【0187】
以上で説明された技法は、コンピュータ読取可能な命令を使用するコンピュータソフトウェアとして実行され、1つ以上のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、
図15は、開示された主題の特定の実施形態を実行することに適したコンピュータシステム(1500)を示す。
【0188】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行されることができる命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いて符号化されることができる。
【0189】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0190】
コンピュータシステム(1500)について、
図15に示される例示的なコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム(1500)の例示的な実施形態で示されるコンポーネントのうちのいずれか1つ又は組み合わせに関する任意の依存性又は必要性を有するとして解釈されるべきではない。
【0191】
コンピュータシステム(1500)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用できる。
【0192】
入力ヒューマンインターフェースデバイスは、キーボード(1501)、マウス(1502)、トラックパッド(1503)、タッチスクリーン(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイクフォン(1506)、スキャナ(1507)、カメラ(1508)(それぞれ1つのみ示されている)のうちの1つ以上を含み得る。
【0193】
コンピュータシステム(1500)は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1510)、データグローブ(図示せず)、またはジョイスティック(1505)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(1509)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1510)(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(図示せず)、ホログラフィックディスプレおよびスモークタンク(図示せず)など)、およびプリンタ(図示せず)を含み得る。
【0194】
コンピュータシステム(1500)は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体(1521)付きのCD/DVD ROM/RW(1520)を含む光学媒体、サムドライブ(1522)、リムーバブルハードドライブまたはソリッドステートドライブ(1523)、テープやフロッピーディスクなどの従来の磁気媒体(図示せず)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(図示せず)などをも含むことができる。
【0195】
ここで開示された主題に関連して使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことをも当業者が理解するべきである。
【0196】
コンピュータシステム(1500)は、1つ以上の通信ネットワーク(1555)へのインターフェース(1554)をさらに含むことができる。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1549)(例えば、コンピュータシステム(1500)のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピュータシステム(1500)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム(1500)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
【0197】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1500)のコア(1540)に接続されることができる。
【0198】
コア(1540)は、1つ以上の中央処理装置(CPU)(1541)、グラフィックスプロセッシングユニット(GPU)(1542)、フィールドプログラマブルゲートエリア(FPGA)(1543)の形態での専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1544)、グラフィックスアダプタ(1550)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量記憶装置(1547)とともに、システムバス(1548)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(1548)は、1つ以上の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(1548)に直接、または周辺バス(1549)を介して接続されることができる。一例では、画面(1510)は、グラフィックスアダプタ(1550)に接続可能である。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0199】
CPU(1541)、GPU(1542)、FPGA(1543)、およびアクセラレータ(1544)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1545)またはRAM(1546)に記憶されることができる。推移データはRAM(1546)にも記憶できるが、永続データは、例えば、内部大容量ストレージ(1547)に記憶されることができる。1つ以上のCPU(1541)、GPU(1542)、大容量ストレージ(1547)、ROM(1545)、RAM(1546)などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速保存および検索が可能になる。
【0200】
コンピュータ読取可能な媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。
【0201】
限定ではなく、一例として、アーキテクチャを有するコンピュータシステム(1500)、特にコア(1540)は、1つ以上の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能性を提供することができる。このようなコンピュータ読取可能な媒体は、以上で紹介したようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ(1547)またはROM(1545)などの非一時的な性質を持つコア(1540)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア(1540)によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1540)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1546)に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更する言を含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(1544))に有線接続されたまたは組み込まれたロジックの結果としての機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
【0202】
本開示は一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれる様々なシステムおよび方法を考案できることが理解されよう。
【0203】
付録A:頭字語
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
BMS:Benchmark Set(ベンチマークセット)
BT:Binary Tree(二分木)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
CD:Compact Disc(コンパクトディスク)
CPU:Central Processing Unit(中央処理装置)
CRT:Cathode Ray Tube(ブラウン管)
CTB:Coding Tree Block(符号化ツリーブロック)
CTU:Coding Tree Unit(符号化ツリーユニット)
CU:Coding Unit(符号化ユニット)
DVD:Digital Video Disc(デジタルビデオディスク)
FPGA:Field Programmable Gate Array(フィールド プログラマブル ゲート アレイ)
GOP:Groups of Pictures(ピクチャ群)
GPU:Graphics Processing Unit(グラフィック処理装置)
GSM:Global System for Mobile communication(移動通信用グローバルシステム)
HDR:High Dynamic Range(ハイダイナミックレンジ)
HEVC:High Efficiency Video Coding(高効率ビデオ符号化)
HRD:Hypothetical Reference Decoder(仮想リファレンスデコーダ)
IC:Integrated Circuit(集積回路)
ISP:Intra Sub-Partition(イントラサブパーティション)
JEM:Joint Exploration Model(共同探索モデル)
JVET:Joint Video Exploration Team(共同ビデオ探索チーム)
LAN:Local Area Network(ローカルエリアネットワーク)
LCD:Liquid-Crystal Display(液晶表示装置)
LTE:Long-Term Evolution(長期的な進化)
MPM:Most Probable Mode(最確モード)
MV:Motion Vector(動きベクトル)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
PB:Prediction Block(予測ブロック)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
PDPC:Position Dependent Prediction Combination(位置依存型予測組み合わせ)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
PU:Prediction Unit(予測ユニット)
QT:Quad-Tree(四分木)
RAM:Random Access Memory(ランダムアクセスメモリ)
ROM:Read-Only Memory(リードオンリーメモリ)
SDR:Standard Dynamic Range(スタンダードダイナミックレンジ)
SEI:Supplementary Enhancement Information(補助拡張情報)
SNR:Signal Noise Ratio(信号対雑音比)
SSD:Solid-state Drive(ソリッドステートドライブ)
TT:Ternary Tree(三分木)
TU:Transform Unit(変換ユニット)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
VUE:Video Usability Information(ビデオユーザビリティ情報)
VVC:Versatile Video Coding(多用途ビデオ符号化)
WAIP:Wide-Angle Intra Prediction(広角度イントラ予測)
【符号の説明】
【0204】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
201 イントラ予測方向を示す概略図
300 通信システム
310、320、330、340 端末装置
350 ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャ
403 ビデオエンコーダ
404 エンコードされたビデオデータ
405 ストリーミングサーバ
406、408 クライアントサブシステム
407、409 コピー
410 ビデオデコーダ
411 ビデオピクチャ
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス
515 バッファメモリ
520 パーサ
521 シンボル
530 電子デバイス
531 受信機
551 スケーラ/逆変換
552 イントラ予測
553 動き補償予測
555 アグリゲータ
556 ループフィルタ
557 参照ピクチャメモリ
558 現在ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 符号化エンジン
633 デコーダ
634 参照ピクチャメモリ
635 予測器
640 送信機
643 符号化ビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 チャネル
703 ビデオエンコーダ
721 統括制御部
722 イントラエンコーダ
723 残差算出部
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構築モジュール
880 インターデコーダ
910 CTU
920 QTBT分割構造
1100 符号化ブロック
1111、1112、1121、1122 サブパーティション
1150 符号化ブロック
1161~1164、1171~1174 サブパーティション