(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-26
(45)【発行日】2024-09-03
(54)【発明の名称】ビデオ符号化/復号のための方法および装置
(51)【国際特許分類】
H04N 19/119 20140101AFI20240827BHJP
H04N 19/176 20140101ALI20240827BHJP
H04N 19/186 20140101ALI20240827BHJP
H04N 19/70 20140101ALI20240827BHJP
【FI】
H04N19/119
H04N19/176
H04N19/186
H04N19/70
(21)【出願番号】P 2021557673
(86)(22)【出願日】2020-10-01
(86)【国際出願番号】 US2020053818
(87)【国際公開番号】W WO2021133450
(87)【国際公開日】2021-07-01
【審査請求日】2021-10-14
(32)【優先日】2019-12-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-11
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-10-01
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】シュイ,シアオジョォン
【審査官】坂東 大五郎
(56)【参考文献】
【文献】国際公開第2016/074567(WO,A1)
【文献】Benjamin Bross et al.,Versatile Video Coding (Draft 7),Joint Video Experts Team (JVET),2019年11月14日,pp.25,99-101,[JVET-P2001-vE] (version 14)
【文献】Benjamin Bross et al.,Versatile Video Coding (Draft 3),Joint Video Experts Team (JVET),2019年01月08日,p.65,[JVET-L1001-v9] (version 13)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーダが実行する方法であって、
符号化されたビデオビットストリームからパーティション情報を復号するステップであり、前記パーティション情報は、デュアルツリーにおける色度符号化ツリー構造が色度ブロックに適用されることを示し、前記パーティション情報は、さらに、前記色度ブロックのブロックサイズ、および最小許容色度クアッドツリー(QT、四分木)リーフノードサイズを示す、ステップと、
前記色度ブロックの前記ブロックサイズを色度垂直サブサンプリング係数で割った値が前記最小許容色度QTリーフノードサイズ以下であるか否かを決定するステップと、
前記色度ブロックの前記ブロックサイズを色度垂直サブサンプリング係数で割った値が前記最小許容色度QTリーフノードサイズ以下であることに応答して、前記色度ブロックに対してQT分割が許可されないと決定するステップと、
を含み、
色度フォーマットは、4:2:0サンプリングまたは4:2:2サンプリングであり、
前記色度ブロックの前記ブロックサイズは、輝度サンプル
を単位とする符号化ブロックサイズ
で表される、
ことを特徴とする方法。
【請求項2】
前記パーティション情報は、さらに、前記色度ブロックがMTT分割からのMTTノードであるか否かを示すマルチタイプツリー(MTT)深度、色度水平サブサンプリング係数、および前記色度ブロックのための予測モードタイプを示し、および、
前記色度ブロックの前記ブロックサイズ
を色度垂直サブサンプリング係数で割った値が前記最小許容色度QTリーフノードサイズよりも大きいことに応答して、
(i)前記色度ブロックが前記MTTノードであることを示す前記MTT深度、
(ii)前記色度ブロックの前記ブロックサイズを前記色度水平サブサンプリング係数で割った値が4以下であること、および、
(iii)フレーム内予測モードおよびフレーム内ブロックコピー(IBC)モードが許可されることを示す前記予測モードタイプ、
のうちの少なくとも1つに基づいて、前記色度ブロックに対して前記QT分割が許可されないと決定する、
ことを特徴とする、請求項1に記載の方法。
【請求項3】
前記パーティション情報は、さらに、最小許容色度符号化ブロックサイズおよび最小許容輝度符号化ブロックサイズを示し、かつ、
前記最小許容色度符号化ブロックサイズは、前記最小許容輝度符号化ブロックサイズよりも小さい、
ことを特徴とする、請求項1に記載の方法。
【請求項4】
前記符号化されたビデオビットストリームには、前記最小許容色度符号化ブロックサイズを示す色度構文要素と、前記最小許容輝度符号化ブロックサイズを示す輝度構文要素と、が含まれる、
ことを特徴とする、請求項3に記載の方法。
【請求項5】
前記最小許容色度符号化ブロックサイズは、前記最小許容輝度符号化ブロックサイズに基づいて導出される、
ことを特徴とする、請求項3に記載の方法。
【請求項6】
前記パーティション情報は、さらに、最小許容輝度QTリーフノードサイズを示し、かつ、
前記最小許容色度QTリーフノードサイズは、前記最小許容輝度QTリーフノードサイズよりも小さい、
ことを特徴とする、請求項1に記載の方法。
【請求項7】
デコーダが実行する方法であって、
符号化されたビデオビットストリームからパーティション情報を復号するステップであり、前記パーティション情報は、デュアルツリーにおける色度符号化ツリー構造が色度ブロックに適用されることを示し、前記パーティション情報は、さらに、前記色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、および最小許容色度クアッドツリー(QT、四分木)リーフノードサイズを示す、ステップと、
前記色度ブロックの前記ブロックサイズ
を前記色度垂直サブサンプリング係数
で割った値が前記最小許容色度QTリーフノードサイズ
以下であるか否かに応答して、前記色度ブロックに対してQT分割が許可されないか否かを決定するステップと、
前記色度ブロックに対して前記QT分割が許可されないことに応答して、前記色度ブロックに対してバイナリーツリー(二分木)分割およびターナリツリー(三分木)分割のうちの少なくとも1つが許可されないか否かを決定するステップと、
を含み、
色度フォーマットは、4:2:0サンプリングまたは4:2:2サンプリングであり、
前記色度ブロックの前記ブロックサイズは、輝度サンプル
を単位とする符号化ブロックサイズ
で表され、
前記最小許容色度QTリーフノードサイズは、色度サンプルを単位とするものであり、
前記QT分割が許可されないか否かを決定する前記ステップは、
前記色度ブロックの前記ブロックサイズを前記色度垂直サブサンプリング係数で割った値が、前記最小許容色度QTリーフノードサイズ以下であることに基づいて、前記色度ブロックに対して前記QT分割が許可されないと決定するステップ、を含む、
ことを特徴とする方法。
【請求項8】
前記パーティション情報は、さらに、最小許容色度符号化ブロックサイズおよび最小許容輝度符号化ブロックサイズを示し、かつ、
前記最小許容色度符号化ブロックサイズは、前記最小許容輝度符号化ブロックサイズよりも小さい、
ことを特徴とする、請求項7に記載の方法。
【請求項9】
前記符号化されたビデオビットストリームには、前記最小許容色度符号化ブロックサイズを示す色度構文要素と、前記最小許容輝度符号化ブロックサイズを示す輝度構文要素と、が含まれる、
ことを特徴とする、請求項
8に記載の方法。
【請求項10】
前記最小許容色度符号化ブロックサイズは、前記最小許容輝度符号化ブロックサイズに基づいて導出される、
ことを特徴とする、請求項
8に記載の方法。
【請求項11】
前記パーティション情報は、さらに、最小許容輝度QTリーフノードサイズを示し、かつ、
前記最小許容色度QTリーフノードサイズは、前記最小許容輝度QTリーフノードサイズよりも小さい、
ことを特徴とする請求項7に記載の方法。
【請求項12】
処理回路を含む、ビデオ復号のための装置であって、
前記処理回路は、請求項1乃至
11のいずれか一項に記載の方法を実行するように構成される、
ことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してビデオ符号化/復号に関連する実施形態を説明する。
【0002】
[関連出願への相互参照]
本願は、2019年12月23日に出願された米国仮特許出願第62/953,034号「Methods on Constraint of Chroma Quad Tree Split(色度四分木分割の制約に関する方法)」および2020年1月11日に出願された米国仮特許出願第62/959,904号「METHOD On Coding Block Sizes(符号化ブロックサイズに関する方法)」に対する優先権を主張する、2020年10月1日に提出された米国特許出願第17/060,652号「METHOD AND APPARATU FOR VIDEO CODING(ビデオ符号化/復号のための方法および装置)」に対する優先権を主張し、これら以前の出願のすべての開示内容は、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示のコンテキストを全体的に示すことを目的とする。この背景技術の部分および本明細書の各態様において説明された、現在署名されている発明者の作業の程度は、本開示の提出時に先行技術として示されておらず、また、本開示の先行技術として認められていることを明示または暗示していない。
【0004】
ビデオ符号化と復号は、動き補償を有するフレーム間画像予測を用いて実行され得る。圧縮されていないデジタルビデオは、一連の画像を含むことができ、各画像が、例えば1920×1080の輝度サンプルおよび関連付けられた色度サンプルの空間的次元を有する。この一連の画像は、例えば1秒間に60枚の画像または60ヘルツ(Hz)の固定または可変の画像レート(非公式にはフレームレートとして知られている)を有することができる。圧縮されていないビデオには、指定のビットレート要件がある。例えば、サンプルあたり8ビットの1080p60 4:2:0のビデオ(60Hzのフレームレートでの1920×1080の輝度サンプル解像度)は、1.5Gbit/sの帯域幅に近い必要がある。このようなビデオは、一時間で600GB以上の記憶空間を必要とする。
【0005】
ビデオ符号化および復号の1つの目的は、入力ビデオ信号における冗長情報を圧縮により低減することである。圧縮は、上記の帯域幅および/または記憶空間に対する要件を低減することを助けることができ、いくつかの場合では、二桁以上程度を低減することができる。無損失性の圧縮および損失性の圧縮、ならびに、両方の組み合わせは、いずれも使用され得る。無損失性の圧縮とは、元の信号の正確なコピーを圧縮された元の信号から再構築することができる、という技術を指す。損失性の圧縮が使用される場合、再構築された信号は、元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みが十分に小さいので、再構築された信号が予想されるアプリケーションに利用され得る。ビデオの場合、損失性の圧縮は広く使われている。許可される歪みの量は、アプリケーションに依存し、例えば、あるストリーミングアプリケーションを消費するユーザは、テレビ配信アプリケーションのユーザより、高い歪みを許可することができる。実現可能な圧縮比は、より高い許可/許可可能な歪みがより高い圧縮比を生成することができる、ということを反映している。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化およびエントロピー符号化を含む、いくつかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオ符号化/復号技術は、フレーム内符号化として知られている技術を含むことができる。フレーム内符号化では、サンプル値は、以前に再構築された参照画像からのサンプルまたは他のデータを参照せずに表現される。いくつかのビデオコーデックでは、画像は空間的にサンプルブロックに細分される。すべてのサンプルブロックがフレーム内モードで符号化された場合、その画像はフレーム内画像とすることができる。独立したデコーダリフレッシュ画像などのようなフレーム内画像およびそれらの派生は、デコーダの状態をリセットするために使用され得る。したがって、符号化されたビデオビットストリームおよびビデオセッション中の1番目の画像または静止画像として使用され得る。フレーム内ブロックのサンプルは変換に用いられ、また、変換係数はエントロピー符号化の前に量子化され得る。フレーム内予測は、プリ変換ドメインにおけるサンプル値を最小化する技術であり得る。いくつかの場合では、変換後のDC値が小さくなり、AC係数が小さくなるほど、エントロピー符号化後のブロックを表すために、与えられた量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えばMPEG―2符号化技術から知られているような従来のフレーム内符号化は、フレーム内予測を使用していない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、周囲のサンプルデータおよび/またはメタデータからデータブロックを取得しようとする技術を含み、周囲のサンプルデータおよび/またはメタデータは、空間的に隣接するブロックの符号化および/または復号期間で、かつ、復号順の前に得られたものである。このような技術は、以降「フレーム内予測」技術と呼ばれる。少なくともいくつかの場合では、フレーム内予測は、参照画像からの参照データを使用せずに、再構築中の現在画像のみからの参照データを使用する、ということに留意されたい。
【0009】
多くの異なる形態のフレーム内予測が存在し得る。与えられたビデオ符号化技術では、このような技術のうちの2つ以上を使用することができる場合、使用中の技術は、フレーム内予測モードで符号化を行うことができる。いくつかの場合において、モードは、サブモードおよび/またはパラメータを有してもよいし、これらのモードが、単独で符号化されてもよく、または、モードコードワードに含まれてもよい。どのコードワードを与えられたモード/サブモード/パラメータの組み合わせに使用するかは、フレーム内予測によって符号化効率利得に影響を及ぼすので、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術には、このような場合もある。
【0010】
フレーム内予測の特定のモードは、H.264で導入され、H.265において改善され、また、共同探索モデル(JEM:joint exploration model)、汎用ビデオ符号化(VVC:versatile video coding)、ベンチマークセット(BMS:benchmark set)などの、新しい符号化/復号技術においてさらに改善されている。予測ブロックは、既に利用可能なサンプルに属する、隣接するサンプル値を使用して形成され得る。隣接するサンプルのサンプル値は、ある方向に従って予測ブロックにコピーされる。使用中の方向への参照は、ビットストリームに符号化されてもよく、または、その自身が予測されてもよい。
【0011】
図1Aを参照して、右下には、H.265の33個の予測可能な方向(35個のフレーム内モードのうちの33個の角度モードに対応する)から知られている9つの予測方向のサブセットが描かれている。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が水平から45度の角度になる右上の1つ以上のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平から22.5度の角度になるサンプル(101)の左下の1つ以上のサンプルから予測されることを示す。
【0012】
引き続き
図1Aを参照すると、左上には4×4のサンプルの正方形ブロック(104)が描かれている(太い破線で示される)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルが、「S」と、X次元(例えば、行索引)での位置と、Y次元(例えば、列索引)での位置とでラベル付けられている。例えば、サンプルS21は、Y次元での2番目のサンプル(上から)と、X次元での1番目のサンプル(左から)である。同様に、サンプルS44は、Y次元およびX次元の両方でのブロック(104)の4番目のサンプルである。このブロックが4×4サイズのサンプルであるため、S44は右下にある。さらに、同様の番号付けスキームに従う参照サンプルも示されている。参照サンプルは、「R」と、ブロック(104)に対するX位置(例えば、行索引)およびY位置(例えば、列索引)でラベル付けられている。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/VC/BMSは、開示時点で最大65個の方向をサポートすることができる。最も可能な方向を識別するための実験が行われ、そして、エントロピー符号化におけるいくつかの技術は、少数のビットでそれらの可能性がある方向を表すために使用され、可能性が低い方向に対して、いくつかの代償を受ける。さらに、方向自体は、隣接する既に復号されたブロックで使用される隣接する方向から予測することができる場合がある。
【0016】
図1Bは、時間の経過とともに増加する予測方向の数を説明するために、JEMによる65個のフレーム内予測方向を描く概略図(180)を示す。
【0017】
フレーム内予測方向から符号化されたビデオビットストリームにおける方向を表すビットへのマッピングは、ビデオ符号化技術によって異なり得る。また、例えば、予測方向への簡単な直接マッピングから、フレーム内予測モード、コードワード、最も可能性が高いモードを含む複雑な適応スキーム、および類似な技術まで、様々なものがある。しかしながら、すべての場合では、ビデオコンテンツにおいて、他の特定の方向よりも統計的に発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の削減であるため、それらの可能性が低い方向は、適切に機能するビデオ符号化技術では、可能性が高い方向よりも多くのビットで表される。
【0018】
動作補償は、損失性の圧縮技術であってよく、以前に再構築された画像またはその一部(参照画像)からのサンプルデータブロックが、動きベクトル(以下、MVと呼ばれる)によって示される方向に沿って空間的にシフトされた後に、新たに再構築された画像または画像部分を予測するために使用されるような技術に関連するようにし得る。場合によって、参照画像は、現在再構築中の画像と同じであってよい。MVは、2つの次元(XとY)または3つの次元を有するようにしてもよく、3番目の次元は、使用中の参照画像を示すものである(後者は間接的に、時間次元であってよい)。
【0019】
いくつかのビデオ圧縮技術では、特定のサンプルデータ領域に適用可能な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、「高効率ビデオ符号化」、2016年12月)に記載されている。H.265によって提供される多くのMV予測メカニズムの中で、ここで説明するのは、以下で「空間マージ」と呼ばれる技術である。
【0021】
図2を参照すると、現在ブロック(201)には、動き探索プロセス中にエンコーダによって発見されたサンプルが含まれており、これらのサンプルは、空間的にシフトされた同じサイズの前のブロックから予測され得る。そのMVを直接的に符号化する代わりに、A0、A1、およびB0、B1、B2(それぞれ、202から206)で示される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、1つ以上の参照画像に関連付けられたメタデータから、例えば、最新の(復号順序で)参照画像から、MVを導出することができる。H.265では、MV予測は、隣接するブロックが使用しているのと同じ参照画像からの予測器を使用することができる。
【発明の概要】
【0022】
本開示の各態様によれば、ビデオ符号化および/または復号のための方法および装置が提供される。いくつかの例では、ビデオ復号のための装置は、処理回路を含む。当該処理回路は、符号化されたビデオビットストリームからパーティション情報を復号することができる。当該パーティション情報は、デュアルツリーにおける色度符号化ツリー構造が色度ブロックに適用されることを示すことができる。当該パーティション情報は、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズおよび輝度サンプルを単位とする最小許容色度クアッドツリー(QT、四分木)リーフノードサイズを示すことができる。当該処理回路は、輝度サンプルを単位とする色度ブロックのブロックサイズが輝度サンプルを単位とする最小許容色度QTリーフノードサイズ以下であるか否かを決定することができる。輝度サンプルを単位とする色度ブロックのブロックサイズが輝度サンプルを単位とする最小許容色度QTリーフノードサイズ以下であることに応答して、当該処理回路は、色度ブロックに対してQT分割が許可されないと決定することができる。
【0023】
一実施形態では、当該パーティション情報は、さらに、色度ブロックがMTT分割からのMTTノードであるか否かを示すマルチタイプツリー(MTT)深度、色度水平サブサンプリング係数、および、色度ブロックのための予測モードタイプを示す。輝度サンプルを単位とする色度ブロックのブロックサイズが輝度サンプルを単位とする最小許容色度QTリーフノードサイズよりも大きいことに応答して、当該処理回路は、(i)色度ブロックがMTTノードであることを示すMTT深度、(ii)輝度サンプルを単位とする色度ブロックのブロックサイズを色度水平サブサンプリング係数で割った値が4以下であること、および、(iii)フレーム内予測モードおよびフレーム内ブロックコピー(IBC)モードが許可されることを示す予測モードタイプ、のうちの少なくとも1つに基づいて、色度ブロックに対してQT分割が許可されないと決定することができる。
【0024】
一実施形態では、当該パーティション情報は、さらに、輝度サンプルを単位とする最小許容色度符号化ブロックサイズ、および、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズを示す。輝度サンプルを単位とする最小許容色度符号化ブロックサイズは、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズよりも小さい。一例では、符号化されたビデオビットストリームには、輝度サンプルを単位とする最小許容色度符号化ブロックサイズを示す色度構文要素と、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズを示す輝度構文要素と、が含まれる。一例では、輝度サンプルを単位とする最小許容色度符号化ブロックサイズは、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズに基づいて導出される。
【0025】
一実施形態では、パーティション情報は、さらに、輝度サンプルを単位とする最小許容輝度QTリーフノードサイズを示す。輝度サンプルを単位とする最小許容色度QTリーフノードサイズは、輝度サンプルを単位とする最小許容輝度QTリーフノードサイズよりも小さい。
【0026】
いくつかの例では、ビデオ復号のための装置は、処理回路を含む。当該処理回路は、符号化されたビデオビットストリームからパーティション情報を復号することができる。パーティション情報は、デュアルツリーにおける色度符号化ツリー構造が色度ブロックに適用されることを示すことができる。パーティション情報は、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、および、最小許容色度クアッドツリー(QT、四分木)リーフノードサイズを示すことができる。当該処理回路は、少なくとも輝度サンプルを単位とする色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、および、最小許容色度QTリーフノードサイズに基づいて、色度ブロックに対してQT分割が許可されないか否かを決定することができる。色度ブロックに対してQT分割が許可されないことに応答して、当該処理回路は、色度ブロックに対してバイナリーツリー(二分木)分割およびターナリツリー(三分木)分割のうちの少なくとも1つが許可されないか否かを決定することができる。
【0027】
一実施形態では、最小許容色度QTリーフノードサイズは、輝度サンプルを単位とするものであり、パーティション情報は、さらに、色度水平サブサンプリング係数を示す。当該処理回路は、少なくとも輝度サンプルを単位とする色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、色度水平サブサンプリング係数、および、輝度サンプルを単位とする最小許容色度QTリーフノードサイズに基づいて、色度ブロックに対してQT分割が許可されないか否かを決定することができる。
【0028】
一例では、当該処理回路は、輝度サンプルを単位とする最小許容色度QTリーフノードサイズに色度垂直サブサンプリング係数を掛けてから、色度水平サブサンプリング係数で割った値に等しいパラメータを、決定することができる。当該処理回路は、輝度サンプルを単位とする色度ブロックのブロックサイズが当該パラメータ以下であることに応答して、色度ブロックに対してQT分割が許可されないと決定することができる。
【0029】
一例では、パーティション情報は、さらに、色度ブロックがMTT分割からのMTTノードであるか否かを示すマルチタイプツリー(MTT)深度、および、色度ブロックのための予測モードタイプを示す。当該処理回路は、さらに、MTT深度および予測モードタイプに基づいて、色度ブロックに対してQT分割が許可されないか否かを決定することができる。
【0030】
一例では、パーティション情報は、さらに、輝度サンプルを単位とする最小許容色度符号化ブロックサイズおよび輝度サンプルを単位とする最小許容輝度符号化ブロックサイズを示す。輝度サンプルを単位とする最小許容色度符号化ブロックサイズは、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズよりも小さい。
【0031】
一例では、符号化されたビデオビットストリームには、輝度サンプルを単位とする最小許容色度符号化ブロックサイズを示す色度構文要素と、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズを示す輝度構文要素と、が含まれる。
【0032】
一例では、輝度サンプルを単位とする最小許容色度符号化ブロックサイズは、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズに基づいて導出される。
【0033】
一例では、パーティション情報は、さらに、輝度サンプルを単位とする最小許容輝度QTリーフノードサイズを示す。輝度サンプルを単位とする最小許容色度QTリーフノードサイズは、輝度サンプルを単位とする最小許容輝度QTリーフノードサイズよりも小さい。
【0034】
一例では、最小許容色度QTリーフノードサイズは、色度サンプルを単位とするものである。当該処理回路は、色度サンプルを単位とする最小許容色度QTリーフノードサイズを色度垂直サブサンプリング係数で割った値が、輝度サンプルを単位とする色度ブロックのブロックサイズ以下にあることに基づいて、色度ブロックに対してQT分割が許可されないと決定する。
【0035】
一例では、パーティション情報は、さらに、色度水平サブサンプリング係数、色度ブロックがMTT分割からのMTTノードであるか否かを示すMTT深度、および、色度ブロックのための予測モードタイプを示す。輝度サンプルを単位とする色度ブロックのブロックサイズを色度垂直サブサンプリング係数で割った値が色度サンプルを単位とする最小許容色度QTリーフノードサイズよりも大きいことに応答して、当該処理回路は、輝度サンプルを単位とする色度ブロックのブロックサイズ、色度水平サブサンプリング係数、MTT深度、および、予測モードタイプに基づいて、色度ブロックに対してQT分割が許可されないか否かを決定する。
【0036】
本開示の各態様は、命令が格納されている非一時的なコンピュータ読み取り可能な媒体をさらに提供し、当該命令がビデオ復号のためのコンピュータによって実行されると、コンピュータにビデオ復号のための任意の方法を実行させる。
【図面の簡単な説明】
【0037】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【
図1A】フレーム内予測モードの例示的なサブセットの概略図である。
【
図1B】例示的なフレーム内予測方向の図解である。
【
図2】一実施形態による、現在ブロックおよびその周囲の空間マージ候補の概略図である。
【
図3】一実施形態による、通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態による、通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】一実施形態による、デコーダの簡略化されたブロック図の概略図である。
【
図6】一実施形態による、エンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態による、エンコーダのブロック図を示す図である。
【
図8】別の実施形態による、デコーダのブロック図を示す図である。
【
図9】本開示の一実施形態による、色度サブサンプリングフォーマットの例を示す図である。
【
図10A】本開示の一実施形態による、それぞれの画像における対応する輝度サンプルおよび色度サンプルの公称の垂直相対位置および水平相対位置を示す図である。
【
図10B】本開示の一実施形態による、それぞれの画像における対応する輝度サンプルおよび色度サンプルの公称の垂直相対位置および水平相対位置を示す図である。
【
図10C】本開示の一実施形態による、それぞれの画像における対応する輝度サンプルおよび色度サンプルの公称の垂直相対位置および水平相対位置を示す図である。
【
図11】本開示の一実施形態による、CTU(1101)に分けられた画像(1100)の例を示す図である。
【
図12】本開示の一実施形態による、画像(1200)のラスタースキャンスライスパーティショニングの例を示す図である。
【
図13】本開示の一実施形態による、画像(1300)の長方形スライスパーティショニングの例を示す図である。
【
図14】本開示の一実施形態による、タイル、ブリック(1401)~(1411)、および長方形スライス(1421)~(1424)にパーティションされた画像(1400)の例を示す図である。
【
図15】本開示の一実施形態による、マルチタイプツリー(MTT)構造における例示的な分割タイプ(1521)~(1524)を示す図である。
【
図16】本開示の一実施形態による、ネストされたMTT符号化ツリー構造を有するクアッドツリー(QT、四分木)における分割フラグシグナリングの例を示す図である。
【
図17】本開示の一実施形態による、MTT分割モードの例を示す図である。
【
図18】本開示の一実施形態による、ネストされたMTT符号化ブロック構造を有するQTの例を示す図である。
【
図19】本開示の一実施形態による、ターナリツリー(TT、三分木)分割に対する制限の例を示す図である。
【
図20】本開示の一実施形態による、バイナリーツリー(BT、二分木)分割およびTT分割の冗長分割パターンの例を示す図である。
【
図21】本開示の一実施形態による、許可されないTTおよびBTパーティショニングの例を示す図である。
【
図22】本開示の一実施形態による、シーケンスパラメータセット(SPS)におけるパーティショニングおよびブロックサイズに関連付けられる例示的な構文(2200)を示す図である。
【
図23】本開示の一実施形態による、スライスタイプの例を示す図である。
【
図24】本開示の一実施形態による、並列TT分割および符号化ブロックサイズのための変数の例示的な導出を示す図である。
【
図25】本開示の一実施形態による、符号化ブロックサイズのための変数の例示的な導出を示す図である。
【
図26】本開示の一実施形態による、例示的な構文表を示す図である。
【
図27】本開示の一実施形態による、プロセス(2700)を概説するフローチャートである。
【
図28】本開示の一実施形態による、プロセス(2800)を概説するフローチャートである。
【
図29】一実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0038】
図3は、本開示の実施形態による通信システム(300)の簡略化されたブロック図である。通信システム(300)は、例えばネットワーク(350)を介して相互に通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1ペアの端末デバイス(310)と(320)を含む。
図3の例では、第1ペアの端末デバイス(310)と(320)は、データの単方向伝送を行う。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に伝送するために、ビデオデータ(例えば、端末デバイス(310)によって捕捉されたビデオ画像ストリーム)を符号化することができる。符号化されたビデオデータは、1つ以上の符号化されたビデオビットストリームの形で伝送され得る。端末デバイス(320)は、ネットワーク(350)から、符号化されたビデオデータを受信し、符号化されたビデオデータを復号してビデオ画像を復元し、復元されたビデオデータに基づいて、ビデオ画像を表示することができる。単方向データ伝送は、メディアサービングアプリケーションなどでは一般的である。
【0039】
別の例では、通信システム(300)は、例えばビデオ会議中に発生する可能性がある、符号化されたビデオデータの双方向伝送を実行する第2ペアの端末デバイス(330)と(340)を含む。データの双方向伝送の場合、一例では、端末デバイス(330)と(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)と(340)のうちの他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによって捕捉されたビデオ画像ストリーム)を符号化することができる。端末デバイス(330)と(340)の各端末デバイスは、端末デバイス(330)と(340)のうちの他方の端末デバイスによって送信され、符号化されたビデオデータを受信することもでき、また、符号化されたビデオデータを復号してビデオ画像を復元し、復元されたビデオデータに基づいて、アクセス可能な表示デバイスにビデオ画像を表示することもできる。
【0040】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示されてもよいが、本開示の原理は、これに限定されるものではない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、および/または、専用のビデオ会議機器を有するアプリケーションを見つける。ネットワーク(350)は、端末デバイス(310)、(320)、(330)、および(340)間で、符号化されたビデオデータを伝送する任意の数のネットワークを表し、有線(ワイヤード)および/または無線の通信ネットワークを含む。通信ネットワーク(350)は、回路交換および/またはパケット交換のチャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または、フレーム間ネットを含む。本開示の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジは、以下に本明細書で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0041】
図4は、開示された主題に対するアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶、ビデオ会議、デジタルTVなどを含む、他のビデオサポートアプリケーションにも同等に適用可能である。
【0042】
ストリーミングシステムは、捕捉サブシステム(413)を含むことができ、この捕捉サブシステムが、例えば、デジタルカメラなどのビデオソース(401)を含むことができ、例えば、圧縮されていないビデオ画像ストリーム(402)を作成する。一例では、ビデオ画像ストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。符号化されたビデオデータ(404)(または、符号化されたビデオビットストリーム)と比較する際に、高いデータボリュームを強調するために太い線で描かれたビデオ画像ストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に説明するように、開示された主題の様々な態様を可能にするか、または実現するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオ画像ストリーム(402)と比較する際に、より低いデータボリュームを強調するために細い線で描かれた、符号化されたビデオデータ(404)(または、符号化されたビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶され得る。
図4のクライアントサブシステム(406)および(408)などのような1つ以上のストリーミングクライアントサブシステムは、符号化されたビデオデータ(404)のコピー(407)および(409)を検索するために、ストリーミングサーバ(405)にアクセスすることができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、入力される、符号化されたビデオデータのコピー(407)を復号して、出力される、ビデオ画像ストリーム(411)を生成し、このビデオ画像ストリーム(411)が、ディスプレイ(412)(例えば、ディスプレイスクリーン)または他のレンダリングデバイス(図示せず)に表示され得る。一部のストリーミングシステムでは、符号化されたビデオデータ(404)、(407)および(409)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮規格に従って符号化され得る。これらの規格の例は、ITU-T推薦H.265を含む。一例では、開発中のビデオ符号化規格は、非公式には次世代ビデオ符号化(VVC:Versatile Video Coding)と呼ばれる。開示された主題は、VVCのコンテキストで使用され得る。
【0043】
なお、電子デバイス(420)および(430)は、他のコンポーネント(図示せず)を含むことができる。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、同様に、ビデオエンコーダ(図示せず)を含むことができる。
【0044】
図5は、本開示の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれてよい。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例におけるビデオデコーダ(410)の代わりに使用することができる。
【0045】
受信機(531)は、ビデオデコーダ(510)によって復号される1つ以上の符号化されたビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信することができ、ここで、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスから独立されている。符号化されたビデオシーケンスは、チャネル(501)から受信することができ、このチャネルが、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアのリンクであってもよい。受信機(531)は、それぞれの使用エンティティ(図示せず)に伝送され得る、例えば符号化されたオーディオデータおよび/または補助データストリームなどのような他のデータとともに、符号化されたビデオデータを受信することができる。受信機(531)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/解析器(Parser)(520)(以降「解析器(520)」)との間に結合され得る。いくつかのアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合では、バッファメモリ(515)は、ビデオデコーダ(510)の外部に配置されてもよい(図示せず)。さらに他の場合では、例えば、ネットワークジッタを防止するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があり得る。さらに、例えば、再生タイミングを処理するために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および制御可能性を有するストア/フォワードデバイスから、または、等時性同期ネットワーク(isosynchronous network)からデータを受信する場合、バッファメモリ(515)は、必要ではないか、または小さくてもよい。フレーム間ネットなどのようなベストエフォートパケットネットワークで使用するために、バッファメモリ(515)は、必要になる場合があり、比較的大きくすることができ、有利には適応性のサイズにすることができ、オペレーティングシステムまたはビデオデコーダ(510)の外部の類似要素(図示せず)に少なくとも部分的に実装され得る。
【0046】
ビデオデコーダ(510)は、符号化されたビデオシーケンスからシンボル(521)を再構築するための解析器(520)を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報と、電子デバイス(530)の不可欠な部分ではないが、
図5に示すように、電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、ディスプレイスクリーン)などのようなレンダリングデバイスを制御するための潜在的情報とが含まれる。レンダリングデバイスの制御情報は、補足強化情報(SEIメッセージ:Supplemental Enhancement Information)またはビジュアルユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。解析器(520)は、受信された、符号化されたビデオシーケンスに対して解析/エントロピー復号を行うことができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感度を有するか、または有しないかの算術符号化、などを含む、様々な原理に従うことができる。解析器(520)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、画像のグループ(GOP:Group of Pictures)、画像、タイル、スライス、マクロブロック、符号化ユニット(CU:Coding Unit)、ブロック、変換ユニット(TU:Trans form Unit)、予測ユニット(PU:Prection Unit)などを含むことができる。解析器(520)は、変換係数、量子化器パラメータ値、動きベクトルなどのような情報を符号化されたビデオシーケンスから抽出することもできる。
【0047】
解析器(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/解析動作を実行することができる。
【0048】
シンボル(521)の再構築は、符号化されたビデオ画像またはその一部(例えば、フレーム間画像およびフレーム内画像、フレーム間ブロックおよびフレーム内ブロック)のタイプ、および他の要因に応じて、複数の異なるユニットに関連することができる。どのようなユニットに関連するか、および、どのように関連するかは、解析器(520)によって、符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。解析器(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明瞭にするために示されていない。
【0049】
既に言及された機能ブロックに加えて、ビデオデコーダ(510)は、以下に説明するように、いくつかの機能ユニットに概念的に細分され得る。商業的制約で動作する実際の実施形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合され得る。しかしながら、開示された主題を説明する目的のために、以下の機能ユニットへの概念的な細分は適切である。
【0050】
第1ユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は解析器(520)から、使用される変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報と共に、量子化された変換係数をシンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力できるサンプル値を含むブロックを出力することができる。
【0051】
いくつかの場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、フレーム内符号化ブロックに属することができ、即ち、以前に再構築された画像からの予測情報を使用していないが、現在画像の以前に再構築された部分からの予測情報を使用することができるブロックである。このような予測情報は、フレーム内画像予測ユニット(552)によって提供されてもよい。いくつかの場合では、フレーム内画像予測ユニット(552)は、現在画像バッファ(558)から抽出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在画像バッファ(558)は、例えば、部分的に再構築された現在画像、および/または、完全に再構築された現在画像をバッファリングする。アグリゲータ(555)は、いくつかの場合では、サンプルごとに基づいて、フレーム内予測ユニット(552)によって生成された予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0052】
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、フレーム間符号化されたブロックおよび潜在的に動き補償されたブロックに属することができる。このような場合、動き補償予測ユニット(553)は、参照画像メモリ(557)にアクセスして、予測に用いられるサンプルを抽出することができる。抽出されたサンプルが、ブロックに関連するシンボル(521)に基づいて動き補償された後で、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加され得る。動き補償予測ユニット(553)が予測サンプルを抽出するときの参照画像メモリ(557)内のアドレスは、例えば、X、Y、および参照画像成分を有することができるシンボル(521)の形で、動き補償予測ユニット(553)に利用可能な動きベクトルによって制御され得る。動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに、参照画像メモリ(557)から抽出されたサンプル値の補間、運動ベクトル予測メカニズム、などを含むこともできる。
【0053】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術によって採用されてもよい。ビデオ圧縮技術は、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれ、解析器(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるパラメータによって制御されるループ内フィルタ技術を含むことができ、また、符号化された画像または符号化されたビデオシーケンスの前の部分(復号順序で)を復号する期間で得られたメタ情報に応答し、かつ、以前に再構築されてループフィルタリングされたサンプル値に応答することもできる。
【0054】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力できるだけでなく、将来の画像間予測に使用するために参照画像メモリ(557)に格納できるサンプルストリームであり得る。
【0055】
特定の符号化された画像は、完全に再構築されると、将来の予測のための参照画像として使用することができる。例えば、現在画像に対応する符号化された画像が完全に再構築され、符号化された画像が(例えば、解析器(520)によって)参照画像として識別されると、現在画像バッファ(558)は、参照画像メモリ(557)の一部になることができ、そして、後続の符号化された画像の再構築を開示する前に、新しい現在画像バッファを再割り当てすることができる。
【0056】
ビデオデコーダ(510)は、例えばITU-T Rec.H.265.などのような規格における所定のビデオ圧縮技術に従って、復号動作を実行することができる。符号化されたビデオシーケンスは、符号化されたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格で文書化されているプロファイルとの両方に従うという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に従うことができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、そのプロファイルで使用できる唯一のツールとしていくつかのツールを選択することができる。符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格の階層によって定義された範囲内にあるということもコンプライアンスに必要である。いくつかの場合では、階層は、最大画像サイズ、最大フレームレート、(例えば、毎秒メガ(mega)個のサンプルを単位として測定された)最大再構築サンプルレート、最大参照画像サイズなどを制限する。階層によって設定された制限は、いくつかの場合では、仮想参照デコーダ(HRD:Hypthetical Reference Decoder)仕様と、符号化されたビデオシーケンスにおいてシグナルで通知されるHRDバッファ管理のメタデータとによって、さらに制限され得る。
【0057】
一実施形態では、受信機(531)は、符号化されたビデオとともに付加(冗長)的なデータを受信することができる。付加的なデータは、符号化されたビデオシーケンスの一部として含まれてよい。付加的なデータは、データを適切に復号し、かつ/あるいは、元のビデオデータをより正確に再構築するために、ビデオデコーダ(510)によって使用され得る。付加的なデータは、例えば、時間的、空間的、または信号雑音比(SNR:signal noise ratio)拡張層、冗長スライス、冗長画像、前方誤り訂正符号、などのような形式にすることができる。
【0058】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用することができる。
【0059】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるビデオ画像を捕捉するビデオソース(601)(
図6の例における電子デバイス(620)の一部ではない)から、ビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0060】
ビデオソース(601)は、ビデオエンコーダ(603)によって符号化されたソースビデオシーケンスをデジタルビデオサンプルストリームの形式で提供することができ、前記デジタルビデオサンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)を有することができる。メディアサービスシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってもよい。ビデオデータは、順番に見られるときに動きを与える複数の個別の画像として提供され得る。画像自体は、空間画素アレイとして構成されてもよく、ここで、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0061】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスの画像を、符号化されたビデオシーケンス(643)に符号化し、圧縮することができる。適切な符号化速度を実施することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下で説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。該結合は、明瞭にするために図示されていない。コントローラ(650)によって設定されたパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のλ(ラムダ)値、…)、画像サイズ、画像のグループ(GOP:group of pictures)レイアウト、最大動きベクトル探索範囲、などを含むことができる。コントローラ(650)は、特定のシステム設計に対して最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成され得る。
【0062】
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループで動作するように構成される。過度に簡単化された説明として、一例では、符号化ループは、ソースコーダ(630)(例えば、符号化される入力画像と、参照画像とに基づいて、シンボルストリームなどのようなシンボルを作成することを担当する)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダがサンプルデータを作成すると同様の方法でシンボルを再構築して、サンプルデータを作成する(開示された主題で考慮されているビデオ圧縮技術では、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮が無損失だからである)。再構築されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(634)に入力される。シンボルストリームの復号により、デコーダの位置(ローカルまたはリモート)に関係なく、ビット正確な結果が得られるため、参照画像メモリ(634)のコンテンツは、ローカルエンコーダとリモートエンコーダの間でもビットで正確に対応する。言い換えれば、エンコーダの予測部分が「見た」参照画像サンプルは、デコーダが復号期間に予測を使用する際に「見た」サンプル値と全く同じである。この参照画像の同期性の基本原理(および、例えばチャネル誤差の原因で同期性が維持されない場合に生じるドリフト)は、いくつかの関連技術でも使用されている。
【0063】
「ローカル」デコーダ(633)の動作は、既に
図5に関連して以上で詳細に説明された、ビデオデコーダ(510)などのような「リモート」デコーダの動作と同じであってもよい。しかし、
図5をさらに簡単に参照すると、シンボルが利用可能であり、かつ、エントロピーコーダ(645)および解析器(520)によって符号化されたビデオシーケンスへのシンボルの符号化および/または復号が無損失であることができるため、バッファメモリ(515)と解析器(520)を含むビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)で完全に実行できない可能性がある。
【0064】
この時点で、デコーダに存在する解析/エントロピー復号以外のいかなるデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要がある、ということが観察されている。このため、開示された主題は、デコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略され得る。特定の領域だけで、より詳細な説明が必要であり、以下で提供される。
【0065】
動作中に、いくつかの実施形態では、ソースコーダ(630)は、動き補償予測符号化を実行することができ、前記動き補償予測符号化は、ビデオシーケンスから「参照画像」として指定された1つ以上の以前に符号化された画像を参照して、入力画像を予測的に符号化する。このようにして、符号化エンジン(632)は、入力画像の画素ブロックと、入力画像に対する予測参照として選択され得る参照画像の画素ブロックとの間の差分を符号化する。
【0066】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照画像として指定され得る画像の符号化されたビデオデータを復号することができる。符号化エンジン(632)の動作は、有利には、損失性プロセスであってもよい。符号化されたビデオデータがビデオデコーダ(
図6に示されない)で復号された場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、参照画像に対してビデオデコーダによって実行され得る復号プロセスをコピーして、再構築された参照画像を参照画像キャッシュ(634)に記憶することができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって得られる(伝送誤差が存在しない)再構築された参照画像と共通のコンテンツを有する再構築された参照画像のコピーを、ローカルに記憶することができる。
【0067】
予測器(635)は、符号化エンジン(632)に対して予測検索を実行することができる。すなわち、符号化される新しい画像について、予測器(635)は、新しい画像の適切な予測参照として機能するサンプルデータ(候補参照画素ブロックとして)または特定のメタデータ、例えば参照画像動きベクトル、ブロック形状、などについて、参照画像メモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合では、予測器(635)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(634)に記憶された複数の参照画像から引き出された予測参照を有することができる。
【0068】
コントローラ(650)は、例えば、ビデオデータを符号化および/または復号するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)の符号化動作を管理することができる。
【0069】
上述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピー符号化され得る。エントロピーコーダ(645)は、例えば、ハフマン符号化、可変長符号化、算術符号化などのような、シンボルを無損失で圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0070】
送信機(640)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信に備えるために、エントロピーコーダ(645)によって生成された、符号化されたビデオシーケンスをバッファリングすることができる。送信機(640)は、ビデオエンコーダ(603)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0071】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。符号化する期間で、コントローラ(650)は、各符号化された画像に、特定の符号化された画像タイプを割り当てることができ、これは、それぞれの画像に適用できる符号化技術に影響を与える可能性がある。例えば、画像は、以下の画像タイプのいずれかとして割り当てられることが多いし、即ち、
フレーム内画像(I画像)は、シーケンス内の任意の他の画像を予測のソースとして使用せずに、符号化および復号され得るものであってもよい。いくつかのビデオコーデックは、独立したデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)画像、などの異なるタイプのフレーム内画像を許可する。当業者は、I画像の変種とそれらのアプリケーションおよび機能とを理解している。
【0072】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するフレーム内予測またはフレーム間予測を使用して、符号化および復号され得るものであり得る。
【0073】
双方向予測画像(B画像)は、多くとも2つの動きベクトルおよび参照インデックスを使用し、各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して、符号化および復号され得るものであってもよい。同様に、複数の予測画像は、単一のブロックの再構築に、2つ以上の参照画像および関連付けられたメタデータを使用することができる。
【0074】
ソース画像は、一般的に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16個のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化され得る。これらのブロックは、ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(既に符号化された)ブロックを参照して、予測的に符号化され得る。例えば、I画像のブロックは、非予測的に符号化されてもよく、または、それらが同じ画像の既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはフレーム内予測)。P画像の画素ブロックは、1つ前に符号化された参照画像を参照し、空間的予測を介して、または時間的予測を介して予測的に符号化されてもよい。B画像のブロックは、1つまたは2つ前に符号化された参照画像を参照して、空間的予測を介して、または時間的予測を介して予測的に符号化されてもよい。
【0075】
ビデオエンコーダ(603)は、例えばITU―T H.265などのような所定のビデオ符号化技術または規格に従って、符号化動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、符号化されたビデオデータは、使用されるビデオ符号化技術または規格によって指定された構文に従うことができる。
【0076】
一実施形態では、送信機(640)は、符号化されたビデオとともに、付加的なデータを送信することができる。ソースコーダ(630)は、そのようなデータを、符号化されたビデオシーケンスの一部として含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長画像やスライスなどのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント、などを含むことができる。
【0077】
ビデオは、時系列で複数のソース画像(ビデオ画像)として捕捉され得る。フレーム内画像予測(フレーム内予測と略称されることが多い)は、与えられた画像における空間的相関を利用し、フレーム間画像予測は、画像間の(時間的または他の)相関を利用する。一例では、現在画像と呼ばれる、符号化および/または復号中の特定の画像がブロックに分割される。現在画像のブロックが、ビデオにおける以前に符号化され、まだバッファリングされている参照画像における参照ブロックに類似している場合、現在画像のブロックは、動きベクトルと呼ばれるベクトルによって符号化され得る。動きベクトルは、参照画像における参照ブロックを指し、複数の参照画像が使用されている場合、参照画像を識別する3番目の次元を有することができる。
【0078】
いくつかの実施形態では、双方向予測技術は、フレーム間画像予測に使用され得る。双方向予測技術によれば、例えば、復号の順で両方とも、ビデオにおける現在画像の前にある(ただし、表示の順序でそれぞれ、過去と将来にあるかもしれない)第1参照画像および第2参照画像、などのような2つの参照画像が使用される。現在画像におけるブロックは、第1参照画像における第1参照ブロックを指す第1動きベクトルと、第2参照画像における第2参照ブロックを指す第2動きベクトルによって符号化され得る。ブロックは、第1参照ブロックおよび第2参照ブロックの組み合わせによって予測され得る。
【0079】
さらに、符号化効率を向上させるために、マージモード技術は、フレーム間画像予測で使用され得る。
【0080】
本開示のいくつかの実施形態によれば、フレーム間画像予測やフレーム内画像予測などのような予測は、ブロックの単位で実行される。例えば、HEVC規格に従って、ビデオ画像のシーケンスにおける画像は、圧縮のために符号化ツリーユニット(CTU:coding tree unit)に分割され、画像における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は、輝度予測ブロック(PB)と2つの色度PBを含む。一実施形態では、コーディング(符号化および/または復号)における予測動作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などのような画素値(例えば、輝度値)の行列を含む。
【0081】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオ画像シーケンスにおける現在ビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化されたビデオシーケンスの一部である符号化された画像に符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用される。
【0082】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルなどの予測ブロックなど、処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(703)は、処理ブロックが、例えばレート歪み最適化を使用して、フレーム内モード、フレーム間モード、または双予測モードを使用して最良に符号化されるか否かを決定する。処理ブロックがフレーム内モードで符号化される場合、ビデオエンコーダ(703)は、フレーム内予測技法を使用して、処理ブロックを符号化された画像に符号化することができる。そして、処理ブロックがフレーム間モードまたは双予測モードで符号化される場合、ビデオエンコーダ(703)は、それぞれフレーム間予測または双予測技術を使用して、処理ブロックを符号化された画像に符号化することができる。特定のビデオ符号化技術では、マージモードは、動きベクトルが1つまたはそれ以上の動きベクトル予測器から導き出されるが、予測器の外側にある符号化された動きベクトルコンポーネントの利点はない、画像間予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトルコンポーネントが存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
【0083】
図7の例では、ビデオエンコーダ(703)は、
図7に示すように一緒に結合された、フレーム間エンコーダ(730)と、フレーム内エンコーダ(722)と、残差計算器(723)と、スイッチ(726)と、残差エンコーダ(724)と、汎用コントローラ(721)と、エントロピーエンコーダ(725)と、を含む。
【0084】
フレーム間エンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照画像(例えば、前の画像と後の画像におけるブロック)内の1つ以上の参照ブロックと比較し、フレーム間予測情報(例えば、フレーム間符号化技術による冗長情報説明、動きベクトル、マージモード情報)を生成して、任意の適切な技術を使用して、フレーム間予測情報に基づいてフレーム間予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照画像は、復号された参照画像であり、それが符号化されたビデオ情報に基づいて復号されたものである。
【0085】
フレーム内エンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、いくつかの場合では、そのブロックを同じ画像で既に符号化されたブロックと比較し、変換後に量子化された係数を生成して、いくつかの場合では、フレーム内予測情報(例えば、1つ以上のフレーム内符号化技術によるフレーム内予測方向情報)を生成するように構成されている。一例では、フレーム内エンコーダ(722)は、フレーム内予測情報と、同じ画像における参照ブロックとに基づいて、フレーム内予測結果(例えば、予測されたブロック)も計算する。
【0086】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成されている。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、そのモードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがフレーム内モードである場合、汎用コントローラ(721)は、残差計算器(723)によって使用されるフレーム内モード結果を選択するように、スイッチ(726)を制御し、フレーム内予測情報を選択して、そのフレーム内予測情報をコードストリームに含めるように、エントロピーエンコーダ(725)を制御する。また、モードがフレーム間モードである場合、汎用コントローラ(721)は、残差計算器(723)によって使用されるフレーム間予測結果を選択するように、スイッチ(726)を制御し、フレーム間予測情報を選択して、そのフレーム間予測情報をコードストリームに含めるように、エントロピーエンコーダ(725)を制御する。
【0087】
残差計算器(723)は、受信されたブロックと、フレーム内エンコーダ(722)またはフレーム間エンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するように構成さていれる。残差エンコーダ(724)は、残差データに基づいて動作して、残差データを符号化することで変換係数を生成するように構成されている。一例では、残差エンコーダ(724)は、空間領域から周波数領域へ残差データを変換し、変換係数を生成するように構成される。次に、変換係数は、量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(703)は、また、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、フレーム内エンコーダ(722)およびフレーム間エンコーダ(730)によって適切に使用され得る。例えば、フレーム間エンコーダ(730)は、復号された残差データおよびフレーム間予測情報に基づいて、復号されたブロックを生成することができ、フレーム内エンコーダ(722)は、復号された残差データおよびフレーム内予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号された画像を生成するために適切に処理され、いくつかの例では、復号された画像は、メモリ回路(図示せず)でバッファされ、参照画像として使用され得る。
【0088】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などのような適切な規格に従って、様々な情報を含むように構成されている。一例では、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、フレーム内予測情報またはフレーム間予測情報)、残差情報、およびビットストリーム内の他の適切な情報を含むように構成される。開示された主題によれば、フレーム間モードまたは双方向予測モードのマージサブモードでブロックを符号化する場合、残差情報はないということに留意されたい。
【0089】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化されたビデオシーケンスの一部である符号化された画像を受信し、符号化された画像を復号して、再構築された画像を生成するように構成されている。一例では、ビデオデコーダ(810)は、
図4の例におけるビデオデコーダ(410)の代わりに使用される。
【0090】
図8の例では、ビデオデコーダ(810)は、
図8に示されるように一緒に結合された、エントロピーデコーダ(871)と、フレーム間デコーダ(880)と、残差デコーダ(873)と、再構築モジュール(874)と、フレーム内デコーダ(872)と、を含む。
【0091】
エントロピーデコーダ(871)は、符号化された画像から、符号化された画像を構成する構文要素を表す特定のシンボルを再構築するように構成され得る。このようなシンボルは、例えば、ブロックを符号化するためのモード(例えば、フレーム内モード、フレーム間モード、双方向予測モード、後者の2つのマージサブモード、または別のサブモード)と、フレーム内デコーダ(872)またはフレーム間デコーダ(880)による予測に使用される特定のサンプルまたはメタデータをそれぞれ識別できる予測情報(例えば、フレーム内予測情報またはフレーム間予測情報など)と、例えば、量子化された変換係数の形式の残差情報などと、を含む。一例では、予測モードがフレーム間予測モードまたは双方向予測モードである場合、フレーム間予測情報は、フレーム間デコーダ(880)に提供される。そして、予測タイプがフレーム内予測タイプである場合、フレーム内予測情報は、フレーム内デコーダ(872)に提供される。残差情報は、逆量子化を受けて、残差デコーダ(873)に提供され得る。
【0092】
フレーム間デコーダ(880)は、フレーム間予測情報を受信し、フレーム間予測情報に基づいてフレーム間予測結果を生成するように構成されている。
【0093】
フレーム内デコーダ(872)は、フレーム内予測情報を受信し、フレーム内予測情報に基づいて予測結果を生成するように構成されている。
【0094】
残差デコーダ(873)は、逆量子化を実行して、逆量子化された変換係数を抽出し、その逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されている。残差デコーダ(873)は、また、特定の制御情報(量子化器パラメータ(QP:Quantizer Parameter)を含むように)も必要とする場合があり、その情報は、エントロピーデコーダ(871)によって提供される場合がある(これが低ボリューム制御情報のみであるため、データ経路は図示されていない)。
【0095】
再構築モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によっては、フレーム間予測モジュールまたはフレーム内予測モジュールによる出力としての)予測結果とを組み合わせて、再構築されたブロックを形成するように構成されており、再構築されたブロックは、再構築された画像の一部とすることができ、その後、再構築された画像は、再構築されたビデオの一部とすることができる。それは、視覚的品質を改善するために、デブロッキング動作などのような他の適切な動作を実行することができる、ということに留意されたい。
【0096】
ビデオエンコーダ(403)、(603)、および(703)と、ビデオデコーダ(410)、(510)、および(810)とは、任意の適切な技術を使用して実現され得る、ということに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)と、ビデオデコーダ(410)、(510)、および(810)とは、1つ以上の集積回路を使用して実現され得る。別の実施形態では、ビデオエンコーダ(403)、(603)、および(703)と、ビデオデコーダ(410)、(510)、および(810)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装され得る。
【0097】
本開示の態様は、ビデオコーデックでパーティショニング(partitioning)するためのコーデックツールに関し、符号化ブロック(CB:coding block)サイズが四分木(QT:quad-tree、クアッドツリー)分割などのために制限されるなどの方法に関する。さらに、本開示の態様には、色度符号化ブロックの最小サイズ、色度QTノードの最小サイズ、などを導出する方法が含まれる。
【0098】
ビットストリームを介して与えられた、ソース画像および復号された画像との間の例示的な関係を以下に説明する。ビットストリームによって表されるビデオソースは、復号順序での一連の画像であり得る。ソース画像および復号された画像のそれぞれには、1つ以上のサンプルアレイ、例えば、(1)輝度(Y)のみ(モノクロ)、(2)輝度および2つの色度(例えば、YCbCrまたはYCgCo)、(3)緑、青、および赤(GBR、またRGBとも呼ばれる)、および、(4)他の指定されていないモノクロまたは三刺激値カラーサンプリング(tri-stimulus color samplings)を表すアレイ(例えばYZX、またXYZとも呼ばれる)、が含まれるようにしてよい。
【0099】
本開示における表記法および用語法の便宜のために、上記のアレイに関連付けられた変数および用語は、輝度(あるいは、LまたはY)および色度と呼ばれてよく、ここで、2つの色度アレイは、使用されている実際の色表現方法に関係なく、CbおよびCrと呼ばれてよい。使用されている実際の色表現方法は、構文によってさらに示され得る。
【0100】
例えば、輝度および色度のアレイまたはブロック(複数)などのマルチのサンプルアレイが、ソース画像および復号された画像内に含まれている場合、前記色度ブロック(複数)と、対応する輝度ブロックとの間の変数、例えば、色度水平サブサンプリング係数(例えば、SubWidthC)および色度垂直サブサンプリング係数(例えば、SubHeightC)などの変数が指定され得る。変数SubWidthCおよびSubHeightC(色度サブサンプリング比とも呼ばれる)は、例えば、色度サブサンプリングフォーマット(色度フォーマットとも呼ばれ、例えば、chroma_format_idcによって指定される)およびフラグ(例えば、separate_colour_plane_flag)(選択可能)によって指定される色度フォーマットサンプリング構造に応じて、表1(
図9に示す)で指定され得る。chroma_format_idc、SubWidthC、およびSubHeightCの他の値が、指定されてもよい。
【0101】
図9を参照すると、色度フォーマットインデックス(例えば、chroma_format_idc)が0である場合、色度サブサンプリングフォーマットは、1つの、名目上は輝度アレイと見なされるサンプルアレイのみを有するモノクロサンプリングに対応する「モノクロ」であってよい。
【0102】
色度フォーマットインデックスが1である場合、当該色度サブサンプリングフォーマットは、4:2:0サンプリングであり得る。2つの色度アレイのそれぞれは、対応する輝度アレイの半分の高さおよび半分の幅を有する。
【0103】
色度フォーマットインデックスが2である場合、当該色度サブサンプリングフォーマットは、4:2:2サンプリングであり得る。2つの色度アレイのそれぞれは、輝度アレイと同じ高さおよび輝度アレイの半分の幅を有する。
【0104】
色度フォーマットインデックスが3である場合、当該色度サブサンプリングフォーマットは、個別の色プレーンフラグ(例えば、separate_colour_plane_flag)の値に応じて、4:4:4サンプリングであり得る。以下、(i)個別の色プレーンフラグが0に等しい場合、2つの色度アレイのそれぞれは、輝度アレイと同じの高さおよび幅を有すること、(ii)そうではない場合、個別の色プレーンフラグが1に等しくて、3つの色プレーンは、モノクロのサンプル画像として個別に処理され得ること、が適用される。
【0105】
ビデオシーケンスにおける輝度および色度アレイの各サンプルを表すために使用されるビット数は、8ビットから16ビットの範囲内であり得る。輝度アレイで使用されるビット数は、色度アレイで使用されるビット数と異なる場合がある。
【0106】
図10A~10Cは、本開示の実施形態による、それぞれの画像における対応する輝度サンプルおよび色度サンプルの公称の垂直相対位置および水平相対位置を示す。代わりの色度サンプル相対位置は、ビデオユーザビリティ情報に示されている場合がある。
【0107】
図10Aを参照すると、色度フォーマットインデックス(例えば、chroma_format_idc)の値が1に等しいことは、4:2:0を示すことができる。
図10Aは、画像における対応する輝度サンプルおよび色度サンプルの公称の垂直位置および水平位置の例を示す。
【0108】
図10Bを参照すると、色度フォーマットインデックスの値が2に等しいことは、4:2:2を示すことができ、したがって、色度サンプルは、画像における対応する輝度サンプルと同じ位置に配置(または共同設置)(co-sited (or co-located))されている。
図10Bは、画像における対応する輝度サンプルおよび色度サンプルの公称の垂直位置および水平位置の例を示す。
【0109】
図10Cを参照すると、色度フォーマットインデックスの値が3に等しい場合、全てのアレイのサンプル(例えば、輝度アレイのサンプルおよび2つの色度アレイのサンプル)は、同じ位置に配置(または共同設置)され得る。
図10Cは、画像における対応する輝度サンプルおよび色度サンプルの公称の垂直位置および水平位置の例を示す。
【0110】
以下、VVCなどにおけるパーティショニングの例を説明する。一実施形態では、画像は、CTUにパーティションされ得る。画像は、一連のCTUに分けられることができる。3つのサンプルアレイを有する画像に対して、CTUには、色度サンプルの2つの対応するブロック(例えば、2つの色度ブロック)と共に、輝度サンプルのN×Nブロック(例えば、輝度ブロック)が含まれ得る。
図11は、本開示の一実施形態による、CTU(1101)に分けられた画像(1100)の例を示す。一例では、CTUにおける輝度ブロックの最大許容サイズは、128×128であると指定されている。一例では、輝度変換ブロックの最大サイズは、64×64である。
【0111】
画像は、スライス(slices)、タイル(tiles)、および/または、ブリック(bricks)にパーティションされ得る。画像は、1つ以上のタイル行と、1つ以上のタイル列とに分けられてよい。タイルは、画像の長方形領域をカバーする一連のCTUであってよい。タイルは、1つ以上のブリックに分けられてよく、各ブリックには、当該タイル内の複数のCTU行が含まれてよい。複数のブリックにパーティションされていないタイルは、ブリックと呼ばれることもある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれることがない。
【0112】
スライスには、画像における複数のタイルまたはタイルにおける複数のブリックが含まれてよい。スライスの2つのモード、例えば、ラスタースキャンスライスモードおよび長方形スライスモードをサポートすることができる。ラスタースキャンスライスモードでは、スライスは、画像のタイルラスタースキャンにおける一連のタイルを含むことができる。長方形スライスモードでは、スライスは、画像の長方形領域を集合的に形成できる複数のブリックを含むことができる。長方形のスライス内のブリックは、当該スライスのブリックラスタースキャンの順序に従っている。
【0113】
画像は、タイルとラスタースキャンスライスにパーティションされ得る。
図12は、本開示の一実施形態による、画像(1200)のラスタースキャンスライスパーティショニングの例を示す。画像(1200)は、12個のタイル(1201)~(1212)(例えば、3列(または、タイル列)、かつ、4行(またはタイル行)における12個のタイル)および3つのラスタースキャンスライス(1221)~(1223)に分けられてよい。例えば、ラスタースキャンスライス(1221)には、タイル(1201)~(1202)が含まれ、ラスタースキャンスライス(1222)には、タイル(1203)~(1207)が含まれ、ラスタースキャンスライス(1223)には、タイル(1208)~(1212)が含まれる。
【0114】
画像は、タイルと長方形スライスにパーティションされ得る。
図13は、本開示の一実施形態による、画像(1300)の長方形スライスパーティショニングの例を示す。画像(1300)は、24個のタイル(1301)~(1324)(例えば、6列(またはタイル列)かつ4行(またはタイル行)における24個のタイル)、および、9つの長方形スライス(1331)~(1339)に分けられてよい。例えば、長方形スライス(1331)には、タイル(1301)~(1302)が含まれ、長方形スライス(1332)には、タイル(1303)~(1304)が含まれ、長方形スライス(1333)には、タイル(1305)~(1306)が含まれ、長方形スライス(1334)には、タイル(1307)、(1308)、(1313)、および(1314)が含まれ、長方形スライス(1335)には、タイル(1309)、(1310)、(1315)、および(1316)が含まれ、長方形スライス(1336)には、タイル(1311)、(1312)、(1317)、および(1318)が含まれ、長方形スライス(1337)には、タイル(1319)~(1320)が含まれ、長方形スライス(1338)には、タイル(1321)~(1322)が含まれ、長方形スライス(1339)には、タイル(1323)~(1324)が含まれる。
【0115】
画像は、タイル、ブリック、および長方形スライスにパーティションされ得る。
図14は、本開示の一実施形態による、タイル、ブリック(1401)~(1411)、および長方形スライス(1421)~(1424)にパーティションされた画像(1400)の例を示す。画像(1400)は、4つのタイル(例えば、2つのタイル列、かつ、2つのタイル行)、11個のブリック(1401)~(1411)、および4つの長方形スライス(1421)~(1424)に分けられてよい。左上のタイルには、1つのブリック(1401)が含まれ、右上のタイルには、5つのブリック(1402)~(1406)が含まれ、左下のタイルには、2つのブリック(1407)~(1408)が含まれ、右下のタイルには、3つのブリック(1409)~(1411)が含まれる。長方形スライス(1421)には、ブリック(1401)、(1407)、および(1408)が含まれ、長方形スライス(1422)には、ブリック(1402)、および(1403)が含まれ、長方形スライス(1423)には、ブリック(1404)~(1406)が含まれ、長方形スライス(1424)には、ブリック(1409)~(1411)が含まれる。
【0116】
CTUは、ツリー構造を使用してパーティションされ得る。HEVCなどの実施形態では、CTUは、様々な局所特性に適応するために、クアッドツリー(四分木)、または符号化ツリーとして示されるQT構造を使用して、CU(複数)に分割され得る。画像間(または時間的)または画像内(または空間的)予測を使用して、画像領域を符号化するか否かの決定は、リーフCUレベルで行われてよい。各リーフCUは、PU分割タイプに従って、1つ、2つ、または4つのPUにさらに分割され得る。PU内では、同じ予測プロセスが適用されてよく、また、関連情報はPUベースでデコーダに送信され得る。PU分割タイプに基づく予測プロセスを適用することにより、残差ブロックが取得された後で、リーフCUは、CUのための符号化ツリーに類似するQT構造に従って、変換ユニット(TU、複数)にパーティションされ得る。HEVC構造などの例では、CU、PU、およびTUなどの複数のパーティションユニットは異なってもよい。
【0117】
VVCなどの実施形態では、バイナリおよびターナリ分割セグメンテーション構造を使用する、ネストされたマルチタイプツリーを有するクアッドツリー(四分木)は、複数のパーティションユニットタイプの概念を代替することができ、従って、CU、PU、およびTU概念の分離を取り除くことができ、CUパーティション形状のためのより柔軟性をサポートすることができる。いくつかの例では、CUが最大変換長に対して大きすぎるサイズを有する場合、異なるサイズが、CU、PU、および/または、TUのために使用され得る。符号化ツリー構造では、CUは、正方形または長方形のいずれの形状にすることができる。CTUは、まず、QT構造によってパーティションされ得る。次に、QTリーフノードは、マルチタイプツリー(MTT)構造によってさらにパーティションされ得る。
図15は、本開示の一実施形態による、MTT構造における例示的な分割タイプ(1521)~(1524)を示す。分割タイプ(1521)~(1524)には、垂直バイナリ分割(SPLIT_BT_VER)(1521)、水平バイナリ分割(SPLIT_BT_HOR)(1522)、垂直ターナリ分割(SPLIT_TT_VER)(1523)、および水平ターナリ分割(SPLIT_TT_HOR)(1524)が含まれてよい。MTTリーフノードは、CUとも呼ばれてよく、CUが最大変換長さに対して大きすぎる場合を除いて、セグメンテーション(またはCU)は、いかなるパーティショニングもさらに必要とせず、予測および変換処理に使用され得る。したがって、ほとんどの場合、CU、PU、およびTUは、ネストされたMTT符号化ブロック構造を有するQTにおいて、同じブロックサイズを有し得る。サポートされている最大変換長がCUの色成分の幅または高さよりも小さい場合、1つの例外が発生する。
【0118】
図16は、本開示の一実施形態による、ネストされたMTT符号化ツリー構造を有するQTのための分割フラグシグナリングの例を示す。
図16は、ネストされたMTT符号化ツリー構造を有するQTにおけるパーティション分割情報の例示的なシグナリングメカニズムを示す。例えば、CTUなどのノード(1611)は、QTのルートとして処理されてよく、QT分割フラグ(例えば、qt_split_flag)が真(例えば、値「1」)である場合、QTノード(1621)を生成するために、先にQT構造によってQTノードにパーティションされ得る。当該QT分割フラグ(例えば、qt_split_flag)が偽(例えば、値「0」)である場合、ノード(1611)は、QT分割を使用してパーティションされないため、QTリーフノード(1611)と呼ばれてよい。各QTリーフノード(それを許可するために十分大きくなる場合)は、MTT構造によってさらにパーティションされ、MTTノードと呼ばれてよい。
図16を参照すると、QTリーフノードまたはMTTノード(1611)は、MTT分割を使用してさらにパーティションされ得る。
【0119】
MTT構造では、ノード(1611)がさらにパーティションされているか否かを示すために、第1フラグ(例えば、a mtt_split_cu_flag)が、信号で通知され得る。ノード(1611)がパーティションされていない(例えば、mtt_split_cu_flagが「0」である)場合、ノード(1611)は、MTTリーフノード(1611)と呼ばれる。ノード(1611)がさらにパーティションされている(例えば、mtt_split_cu_flagが「1」である)場合、分割方向(水平分割または垂直分割)を示すために、第2フラグ(例えば、a mtt_split_cu_vertical_flag)が、信号で通知されてよく、その後、分割がバイナリ分割であるかまたはターナリ分割であるかを示すために、第3フラグ(例えば、mtt_split_cu_binary_flag)が、信号で通知され得る。したがって、MTTノード(1651)は、ノード(1611)の垂直バイナリ分割(例えば、BT_VER_split)に基づいて生成され、MTTノード(1652)は、ノード(1611)の垂直ターナリ分割(例えば、TT_VER_split)に基づいて生成され、MTTノード(1653)は、ノード(1611)水平バイナリ分割(例えば、BT_HOR_split)に基づいて生成され、MTTノード(1654)は、ノード(1611)の水平ターナリ分割(例えば、TT_HOR_split)に基づいて生成される。
【0120】
図17を参照すると、第2フラグ(例えば、mtt_split_cu_vertical_flag)および第3フラグ(例えば、mtt_split_cu_binary_flag)の値に基づいて、CUのMTT分割モード(例えば、MttSplitMode)が導出されてよく、表2に示すようになる。MTT分割モードには、垂直バイナリ分割(例えば、BT_VER_splitまたはSPLIT_BT_VER)、垂直ターナリ分割(例えば、TT_VER_splitまたはSPLIT_TT_VER)、水平バイナリ分割(例えば、BT_HOR_splitまたはSPLIT_BT_HOR)、および水平ターナリ分割(例えば、TT_HOR_splitまたはSPLIT_TT_HOR)が含まれてよい。
【0121】
図18は、本開示の一実施形態による、ネストされたMTT符号化ブロック構造を有するQTの例を示す。CTU(1800)は、QTおよびネストされたMTT符号化ブロック構造を有する複数のCUに分けられてよく、ここで、太線のブロックエッジは、QTパーティションを表し、残りのエッジは、MTTパーティションを表す。ネストされたMTTパーティションを有するQTは、CUを含むコンテンツ適応型符号化ツリー構造を提供することができる。CUのサイズは、任意の適切なサイズであってよい。CUのサイズは、CTU(1800)と同じくらい大きい場合があり、輝度サンプルを単位として4×4と同じくらい小さい場合もある。一例では、4:2:0の色度フォーマットについて、最大の色度CBサイズは64×64であってよく、最小の色度CBサイズは2×2であってよい。
【0122】
例えば、VVCなどの例では、サポートされている最大輝度変換サイズは64×64であり、サポートされている最大色度変換サイズは32×32である。CBの幅または高さが最大変換幅または高さよりも大きい場合、当該CBは、それぞれの方向での変換サイズ制限を満たすために、水平方向および/または垂直方向で自動的に分割され得る。
【0123】
以下のパラメータは、ネストされたMTT符号化ツリースキームを有するQTのためのシーケンスパラメータセット(SPS)の構文要素によって定義および指定され得る。以下のパラメータには、(1)QTツリーのルートノードサイズであるCTUサイズ、(2)最小許容QTリーフノードサイズであるMinQTSize、(3)最大許容BTルートノードサイズであるMaxBtSize、(4)最大許容TTルートノードサイズであるMaxTtSize、(5)QTリーフから分割されるMTTの最大許容階層深度であるMaxMttDepth、(6)最小許容BTリーフノードサイズであるMinBtSize、(7)最小許容TTリーフノードサイズであるMinTtSize、などが含まれてよい。
【0124】
ネストされたMTT符号化ツリー構造を有するQTの例では、CTUサイズは、4:2:0色度サンプルの2つの対応する64×64ブロックを有する128×128の輝度サンプルとして設定され、MinQTSizeは16×16として設定され、MaxBtSizeは128×128として設定され、MaxTtSizeは64×64として設定され、MinBtSizeおよびMinTtSize(幅および高さの両方)は4×4として設定され、MaxMttDepthは4として設定される。QTパーティションは、QTリーフノードを生成するために、まず、CTUに適用され得る。QTリーフノードは、16×16(例えば、MinQTSize)から128×128(例えば、CTUサイズ)までのサイズを有し得る。一例では、QTリーフノードが128×128である場合、QTリーフノードは、そのサイズがMaxBtSizeおよびMaxTtSize(例えば、64×64)を超えるため、BTによってさらに分割されていない。それ以外の場合、QTリーフノードは、MTTによってさらにパーティションされ得る。したがって、QTリーフノードも、MTTのためのルートノードにすることもでき、また、MTT深度(例えば、MttDepth)を0にすることができる。MTT深度がMaxMttDepth(例えば、4)に達した場合、さらなる分割は考慮されていない。MTTノードの幅がMinBtSizeに等しく、かつ、2×MinTtSize以下である場合、さらなる水平分割は考慮されていない。同様に、MTTノードの高さがMinBtSizeに等しく、かつ、2×MinTtSize以下である場合、さらなる垂直分割は考慮されていない。
【0125】
一実施形態では、例えばVVCハードウェアデコーダなどにおける64×64輝度ブロックおよび32×32色度パイプライン設計を許可にするために、輝度符号化ブロックの幅または高さのいずれかが第1閾値(例えば、64)よりも大きい場合、TT分割は禁止されてよく、
図19に示すようになる。従って、TT分割は、64よりも大きい輝度符号化ブロック、例えば128×128輝度符号化ブロックなどに適用されていない。色度符号化ブロックの幅または高さが第2閾値(例えば、32)よりも大きい場合、TT分割は禁止されてもよい。
図19を参照すると、第1閾値は64であり、輝度符号化ブロック(1911)~(1915)のサイズが128×128であるため、TT分割は、輝度符号化ブロック(1911)~(1915)で禁止されている。例えば、輝度符号化ブロック(1911)は分割されず、輝度符号化ブロック(1912)~(1913)はBTを使用して分割される。輝度符号化ブロック(1914)~(1915)は、まず64×64ブロックにQT分割される。続いて、TT分割は、64×64のサイズを有する輝度符号化ブロック(1921)~(1922)に適用され得る。
【0126】
一実施形態では、符号化ツリースキームは、輝度成分および対応する色度成分が別個のブロックツリー構造を有する能力をサポートする。一例では、PおよびBスライスについて、CTUにおける輝度および色度CTBは、同じ符号化ツリー構造(例えば、シングルツリー)を共有する。Iスライスについて、CTUにおける輝度および色度CTBは、別個のブロックツリー構造(例えば、デュアルツリー)を有し得る。別個のブロックツリーモード(例えば、デュアルツリー)が適用される場合、輝度CTBは、輝度符号化ツリー構造(例えば、DUAL_TREE_LUMA)によって輝度CUにパーティションされてよく、色度CTBは、色度符号化ツリー構造(例えば、DUAL_TREE_CHROMA)によって色度CUにパーティションされ得る。したがって、IスライスにおけるCUには、輝度成分の符号化ブロック、または2つの色度成分の符号化ブロックが含まれてよく、PまたはBスライスにおけるCUには、ビデオがモノクロでない限り、すべての3つの色成分の符号化ブロックが含まれる。
【0127】
CUは、以下に説明するように、画像境界(境界とも呼ばれる)で分割され得る。例えば、HEVCなどの例では、ツリーノードブロックの一部が画像の下部境界または画像の右側境界を越える場合、符号化された各CUのすべてのサンプルが画像境界内に配置されるまで、ツリーノードブロックは強制的に分割される。いくつかの例では、次の分割ルールは適用され得る。即ち、
ツリーノードブロックの一部が画像の下部境界および画像の右側境界の両方を越えている場合、
ツリーノードブロックがQTノードであり、かつ当該ツリーノードブロックのサイズが最小QTサイズよりも大きい場合、当該ツリーノードブロックは、QT分割モードで強制的に分割される。
【0128】
それ以外の場合、ツリーノードブロックは、SPLIT_BT_HORモードで強制的に分割される。
【0129】
それ以外の場合、ツリーノードブロックの一部が画像の下部境界を越えている場合に、ツリーノードブロックがQTノードであり、かつ、当該ツリーノードブロックのサイズが最小QTサイズよりも大きくて、当該ツリーノードブロックのサイズが最大BTサイズよりも大きい場合に、当該ツリーノードブロックは、QT分割モードで強制的に分割される。
【0130】
それ以外の場合、ツリーノードブロックがQTノードであり、かつ、当該ツリーノードブロックのサイズが最小QTサイズよりも大きくて、当該ツリーノードブロックのサイズが最大BTサイズ以下である場合に、当該ツリーノードブロックは、QT分割モードまたはSPLIT_BT_HORモードで強制的に分割される。
【0131】
それ以外の場合(当該ツリーノードブロックがBTTノードであるか、または当該ツリーノードブロックのサイズが最小QTサイズ以下である場合)、ツリーノードブロックは、SPLIT_BT_HORモードで強制的に分割される。
【0132】
それ以外の場合、ツリーノードブロックの一部が画像の右側境界を越えている場合に、ツリーノードブロックがQTノードであり、かつ、当該ツリーノードブロックのサイズが最小QTサイズよりも大きくて、当該ツリーノードブロックのサイズが最大BTサイズよりも大きい場合に、当該ツリーノードブロックは、QT分割モードで強制的に分割される。
【0133】
それ以外の場合、ツリーノードブロックがQTノードであり、かつ、当該ツリーノードブロックのサイズが最小QTサイズよりも大きくて、当該ツリーノードブロックのサイズが最大BTサイズ以下である場合、当該ツリーノードブロックは、QT分割モードまたはSPLIT_BT_VERモードで強制的に分割される。
【0134】
それ以外の場合(当該ツリーノードブロックがBTTノードであるか、または、当該ツリーノードブロックのサイズが最小QTサイズ以下である場合)、当該ツリーノードブロックは、SPLIT_BT_VERモードで強制的に分割される。
【0135】
冗長CU分割に対する制限が使用され得る。ネストされたMTT符号化ブロック構造を有するQTは、柔軟なブロックパーティショニング構造を提供することができる。MTTでサポートされている分割のタイプにより、異なる分割パターンは、同じ符号化ブロック構造になる可能性がある。例えば、VVCなどの例では、特定の冗長分割パターンは許可されていない。
【0136】
図20は、本開示の一実施形態による、BT分割およびTT分割の冗長分割パターンの例を示す。ある方向での2つのレベルの連続するBT分割は、中央パーティションのBT分割後のTT分割と同じ符号化ブロック構造を有し得る。上記の場合、TT分割の中央パーティションのためのBT分割は(特定された方向において)、例えば、構文によって防止されてよい(例えば、許可されない)。一例では、上記の制限は、各画像におけるCUに適用される。
【0137】
一例では、符号化ブロック構造(2001)は、垂直方向での2つのレベルの連続BT分割(例えば、第1レベルのBT分割(2011)、および、それに続く第2レベルのBT分割(2021)~(2022))によって生成される。符号化ブロック構造(2002)は、垂直TT分割(2012)、および、それに続く垂直TT分割(2012)の中央パーティションの垂直BT分割(2023)によって生成される。符号化ブロック構造(2001)は、符号化ブロック構造(2002)と同一であってよく、そのため、TT分割(2012)の中央パーティションのためのBT分割(2023)は(垂直方向において)、例えば、構文によって防止される。
【0138】
一例では、符号化ブロック構造(2003)は、水平方向での2つのレベルの連続BT分割(例えば、第1レベルのBT分割(2013)、および、それに続く第2レベルのBT分割(2024)~(2025))によって生成される。符号化ブロック構造(2004)は、水平TT分割(2014)、および、それに続く水平TT分割(2014)の中央パーティションの水平BT分割(2026)によって生成される。符号化ブロック構造(2003)は、符号化ブロック構造(2004)と同一であってよく、そのため、TT分割(2014)の中央パーティションのBT分割(2026)(水平方向において)は、例えば、構文によって防止される。
【0139】
分割が上記のように禁止されている場合、対応する構文要素のシグナリングは、禁止されている状況を解決するために変更され得る。例えば、
図20を参照すると、例えば中央パーティションのCUに対してBT分割(2023)または(2026)が禁止されている状況が識別された場合、当該分割がBT分割であるかまたはTT分割であるかを指定する構文要素(例えば、mtt_split_cu_binary_flag)は、信号で通知されておらず、デコーダによって0に等しいと推測される。したがって、BT分割は、CUに対して禁止される。
【0140】
仮想パイプラインデータユニット(VPDU)は、画像における非オーバーラップのユニットとして定義され得る。ハードウェアデコーダでは、連続するVPDUは、複数のパイプラインテージによって同時に処理され得る。VPDUサイズは、ほとんどのパイプラインテージにおいて、バッファサイズにほぼ比例することができるため、比較的小さいVPDUサイズを維持することは重要になっている。例えば、ほとんどのハードウェアデコーダなどの様々な例では、VPDUサイズは、最大変換ブロック(TB)サイズに設定され得る。例えば、VVCなどのいくつかの例では、TTおよびBTパーティションは、VPDUサイズの増加につながる可能性がある。VPDUサイズを、例えば、64×64輝度サンプルなどの特定のサイズに維持するために、以下の規範的なパーティション制限(例示的な構文シグナリングの変更を有する)が適用されてよく、
図21に示すようになる。
図21は、本開示の一実施形態による、許可されていないTTおよびBTパーティショニングの例を示す。
【0141】
TT分割は、幅、高さ、または幅と高さの両方が128に等しいCUに対して許可されていない。例えば、TT分割(2001)、(2002)、および(2005)~(2008)が許可されていない。
【0142】
N≦64(即ち、幅が128に等しくて、高さが128よりも小さい)の128×NCUに対して、水平BT分割は許可されていない。例えば、水平BT分割(2004)は、128×64CUに対して許可されていない。
【0143】
N≦64(即ち、高さが128に等しくて、幅が128よりも小さい)のN×128CUに対して、垂直BT分割は許可されていない。例えば、垂直BT分割(2003)は、64×128CUに対して許可されていない。
【0144】
以下、フレーム内色度パーティショニングおよび予測制限について説明する。フレーム内画像におけるデュアルツリーは、輝度符号化ツリーと比較して、色度符号化ツリーにおいて異なるパーティショニングを適用できるため、当該デュアルツリーに、より長い符号化パイプラインを導入することができる。色度符号化ツリーにおけるQTBT MinQTSizeC値の範囲、MinBtSizeYおよびMinTTSizeYは、例えば2×2、4×2、および2×4などの小さい色度ブロックを許可することができる。一例では、MinQTSizeCとは、最小許容色度QTリーフノードサイズを指す。従って、実用的なデコーダ設計は、挑戦的であり得る。さらに、例えば、クロス成分線形モデル(CCLM)、平面モードおよび角度モードなどの特定の予測モードでは、乗算が使用され得る。上記の挑戦を軽減するために、小さな色度ブロックサイズ(例えば、2×2、2×4、および/または、4×2)は、デュアルツリーにおいてパーティショニング制限として制限され得る。
【0145】
様々なハードウェアビデオエンコーダおよびデコーダでは、例えば、隣接するフレーム内ブロックの間のサンプル処理データの依存性のために、画像が小さなフレーム内ブロックをより多く有する場合、処理スループットが低減され得る。フレーム内ブロックの予測器の生成では、隣接するブロックからの、上部と左側の境界で再構築されたサンプルが使用され得る。したがって、一例では、フレーム内予測は、ブロックごとに順次的に処理されることになっている。
【0146】
例えば、HEVCなどのいくつかの例では、最小フレーム内CUは、8×8輝度サンプルである。最小フレーム内CUの輝度成分は、さらに4つの4×4輝度フレーム内PUに分割されてよく、最小フレーム内CUの色度成分は、さらに分割されることができない。したがって、一例では、4×4色度フレーム内ブロックまたは4×4輝度フレーム内ブロックを処理する場合、ハードウェアの処理スループットが低減され得る。いくつかの例では、スループットを向上させるために、16個の色度サンプルよりも小さい色度フレーム内CBは、色度フレーム内CBのパーティショニングを制約することによって許可されない場合がある。単一の符号化ツリーでは、最小色度フレーム内予測ユニット(SCIPU)は、色度ブロックサイズが16個の色度サンプル以上であり、かつ、64個の輝度サンプルよりも小さい子輝度ブロックが少なくとも1つある符号化ツリーノードとして定義され得る。各SCIPUでは、すべてのCBは、フレーム間予測または非フレーム間予測(例えば、フレーム内予測またはフレーム内ブロックコピー(IBC))である。非フレーム間SCIPUについて、一例では、非フレーム間SCIPUの色度CBは、さらに分割されず、当該SCIPUの輝度CBのさらなる分割が許可されている。したがって、最小色度フレーム内CBサイズは、16個の色度サンプルであってよく、したがって、2×2、2×4、および4×2の色度CBは除去され得る。さらに、一例では、色度スケーリングは、非フレーム間SCIPUに適用されていない。ここで、追加の構文は信号で通知されず、SCIPUが非フレーム間予測であるか否かは、SCIPUにおける第1輝度CBの予測モードによって導出され得る。現在のスライスがIスライスであるか、または、SCIPUがさらに1回分割された後に4×4輝度パーティションを有する場合、SCIPUのタイプ(フレーム間SCIPUまたは非フレーム間SCIPU)が非フレーム間SCIPUであると推測されてよく(例えば、VVCにおいて、フレーム間4x4が許可されていないため)、それ以外の場合、SCIPUのタイプは、当該SCIPUにおけるCUを解析する前に、フラグによって示され得る。さらに、画像の幅および高さをmax(8、MinCBizeY)の倍数と見なすことにより、画像の隅にある2×2、2×4、または4×2のフレーム内色度ブロックを回避するために、画像サイズに対する制限が考慮されてもよい。
【0147】
図22は、本開示の一実施形態による、SPSにおけるパーティショニングおよびブロックサイズに関連付けられる例示的な構文(2200)を示す。構文(2200)には、オリジナルのバイトシーケンスペイロード(RBSP)構文が含まれてよい。RBSPは、整数個のバイトを含む構文構造を指すことができ、当該構造は、ネットワーク抽象化層(NAL)ユニットにカプセル化され、かつ、空であるか、または、構文要素と、それに続くRBSPストップビットおよび0に等しい0個以上の後続ビットとを含むデータビット列の形式を有する。一例では、当該RBSPストップビットは、当該RBSPにおける最後の非ゼロビットである。
【0148】
以下、
図22における構文(2200)に関連付けられたパーティショニングおよびブロックサイズの相関セマンティクスを説明する。
【0149】
1に等しいqtbtt_dual_tree_intra_flagは、Iスライスの場合、各CTUが暗黙のQT分割を使用して64×64輝度サンプルを有するCUに分割され、また、当該CUが輝度および色度のための2つの別個のcoding_tree構文構造のルートであり得る、ということを指定することができる。0に等しいqtbtt_dual_tree_intra_flagは、別個のcoding_tree構文構造がIスライスのために使用されない、ということを指定することができる。qtbtt_dual_tree_intra_flagが存在しない場合、それは0に等しいと推測され得る。
【0150】
変数log2_min_luma_coding_block_size_minus2プラス2(即ち、log2_min_luma_coding_block_size_minus2+2)は、最小輝度符号化ブロックサイズを指定することができる。log2_min_luma_coding_block_size_minus2の値の範囲は、0からlog2_ctu_size_minus5+3までの範囲内(エンドポイントを含む)にすることができる。
【0151】
変数MinCbLog2SizeY、MinCbSizeY、IbcBufWidthY、IbcBufWidthC、およびVSizeは、以下のように導出され得る。即ち、
MinCbLog2SizeY=log2_min_luma_coding_block_size_minus2+2 (1)
MinCbSizeY=1<<MinCbLog2SizeY (2)
IbcBufWidthY=256*128/CtbSizeY (3)
IbcBufWidthC=IbcBufWidthY/SubWidthC (4)
VSize=Min(64、CtbSizeY) (5)
MinCbSizeYの値は,VSize以下にすることができる。
【0152】
各色度CTBのためのアレイの幅および高さをそれぞれ指定する変数CtbWidthCおよびCtbHeightCは、以下のように導出され得る。即ち、
chroma_format_idcが0に等しい(モノクロ)か、または、separate_colour_plane_flagが1に等しいである場合、CtbWidthCおよびCtbHeightCは、両方とも0に等しい。
【0153】
それ以外の場合、CtbWidthCおよびCtbHeightCは、下記のように導出され得る。即ち、
CtbWidthC=CtbSizeY/SubWidthC (6)
CtbHeightC=CtbSizeY/SubHeightC (7)
0から4までの範囲のlog2BlockWidthの場合、および、0から4までの範囲のlog2BlockHeightの場合(エンドポイントを含む)、1<<log2BlockWidthおよび1<<log2BlockHeightを入力として使用して、右上対角線およびラスタースキャン順序アレイ初期化プロセスを呼び出すことができ、また、出力をDiagScanOrder[log2BlockWidth][log2BlockHeight]およびRaster2DiagScanPos[log2BlockWidth][log2BlockHeight]に割り当てることができる。
【0154】
0から6までの範囲のlog2BlockWidthの場合、および、0から6までの範囲のlog2BlockHeightの場合(エンドポイントを含む)、1<<log2BlockWidthおよび1<<log2BlockHeightを入力として使用して、水平および垂直トラバーススキャン順序アレイ初期化プロセスを呼び出すことができ、また、出力をHorTravScanOrder[log2BlockWidth][log2BlockHeight]およびVerTravScanOrder[log2BlockWidth][log2BlockHeight]に割り当てることができる。
【0155】
1に等しいpartition_constraints_override_enabled_flagは、当該SPSを参照する画像ヘッダー(PH)においてpartition_constraints_override_flagが存在していることを指定することができる。0に等しいpartition_constraints_override_enabled_flagは、当該SPSを参照するPHにおいてpartition_constraints_override_flagが存在していないことを指定することができる。
【0156】
sps_log2_diff_min_qt_min_cb_intra_slice_lumaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズの、2を底とする対数と、輝度CUの、輝度サンプルを単位とする最小符号化ブロックサイズの、2を底とする対数との間のデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。sps_log2_diff_min_qt_min_cb_intra_slice_lumaの値は、0からCtbLog2SizeY―MinCbLog2SizeYまでの範囲内(エンドポイントを含む)にすることができる。CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズの、2を底とする対数は、次のように導出され得る。即ち、
MinQtLog2SizeIntraY=
sps_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY (8)
sps_log2_diff_min_qt_min_cb_inter_sliceは、当該SPSを参照する、0(Bスライスを示す)または1(Pスライスを示す)に等しいslice_typeを有するスライスにおける、CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズの、2を底とする対数と、輝度CUの、輝度サンプルを単位とする最小輝度符号化ブロックサイズの、2を底とする対数との間のデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。sps_log2_diff_min_qt_min_cb_inter_sliceの値は、0からCtbLog2SizeY―MinCbLog2SizeYまでの範囲内(エンドポイントを含む)にすることができる。CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズの、2を底とする対数は、次のように導出され得る。即ち、
MinQtLog2SizeInterY=
sps_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY (9)
sps_max_mtt_hierarchy_depth_inter_sliceは、当該SPSを参照する、0(Bスライスを示す)または1(Pスライスを示す)に等しいslice_typeを有するスライスにおける、QTリーフのMTT分割から生じる符号化ユニットのためのデフォルト最大階層深度を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト最大階層深度は、当該SPSを参照するPHにおいて存在するpic_max_mtt_hierarchy_depth_inter_sliceによってオーバーライドされ得る。sps_max_mtt_hierarchy_depth_inter_sliceの値は、0から2×(CtbLog2SizeY―MinCbLog2SizeY)までの範囲内(エンドポイントを含む)にすることができる。
【0157】
sps_max_mtt_hierarchy_depth_intra_slice_lumaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、QTリーフのMTT分割から生じる符号化ユニットのためのデフォルト最大階層深度を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト最大階層深度は、当該SPSを参照するPHにおいて存在するpic_max_mtt_hierarchy_depth_intra_slice_lumaによってオーバーライドされ得る。sps_max_mtt_hierarchy_depth_intra_slice_lumaの値は、0から2×(CtbLog2SizeY―MinCbLog2SizeY)までの範囲内(エンドポイントを含む)にすることができる。
【0158】
sps_log2_diff_max_bt_min_qt_intra_slice_lumaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、バイナリ分割を使用して分割され得る輝度符号化ブロックの、輝度サンプルを単位とする最大サイズ(幅または高さ)の、2を底とする対数と、CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズ(幅または高さ)の、2を底とする対数とのデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_max_bt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_bt_min_qt_intra_slice_lumaの値は、0からCtbLog2SizeY-MinQtLog2SizeIntraYまでの範囲内(エンドポイントを含む)にすることができる。sps_log2_diff_max_bt_min_qt_intra_slice_lumaが存在しない場合、sps_log2_diff_max_bt_min_qt_intra_slice_lumaの値は0に等しいと推測され得る。
【0159】
sps_log2_diff_max_tt_min_qt_intra_slice_lumaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、ターナリ分割を使用して分割され得る輝度符号化ブロックの、輝度サンプルを単位とする最大サイズ(幅または高さ)の、2を底とする対数と、CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズ(幅または高さ)の、2を底とする対数とのデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_max_tt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_tt_min_qt_intra_slice_lumaの値は、0からCtbLog2Size-YMinQtLog2SizeIntraYまでの範囲内(エンドポイントを含む)にすることができる。sps_log2_diff_max_tt_min_qt_intra_slice_lumaが存在しない場合、sps_log2_diff_max_tt_min_qt_intra_slice_lumaの値は0に等しいと推測され得る。
【0160】
sps_log2_diff_max_bt_min_qt_inter_sliceは、当該SPSを参照する、0(Bスライスを示す)または1(Pスライスを示す)に等しいslice_typeを有するスライスにおける、バイナリ分割を使用して分割され得る輝度符号化ブロックの、輝度サンプルを単位とする最大サイズ(幅または高さ)の、2を底とする対数と、CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズ(幅または高さ)の、2を底とする対数とのデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_max_bt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_bt_min_qt_inter_sliceの値は、0からCtbLog2SizeY―MinQtLog2SizeInterYまでの範囲内(エンドポイントを含む)にすることができる。sps_log2_diff_max_bt_min_qt_inter_sliceが存在しない場合、sps_log2_diff_max_bt_min_qt_inter_sliceの値は0に等しいと推測され得る。
【0161】
sps_log2_diff_max_tt_min_qt_inter_sliceは、当該SPSを参照する、0(Bスライスを示す)または1(Pスライスを示す)に等しいslice_typeを有するスライスにおける、ターナリ分割を使用して分割され得る輝度符号化ブロックの、輝度サンプルを単位とする最大サイズ(幅または高さ)の、2を底とする対数と、CTUのQT分割から生じる輝度リーフブロックの、輝度サンプルを単位とする最小サイズ(幅または高さ)の、2を底とする対数とのデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_max_tt_min_qt_lumaによってオーバーライドされ得る。sps_log2_diff_max_tt_min_qt_inter_sliceの値は、0からCtbLog2SizeY―MinQtLog2SizeInterYまでの範囲内(エンドポイントを含む)にすることができる。sps_log2_diff_max_tt_min_qt_inter_sliceが存在しない場合、sps_log2_diff_max_tt_min_qt_inter_sliceの値は0に等しいと推測され得る。
【0162】
sps_log2_diff_min_qt_min_cb_intra_slice_chromaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、DUAL_TREE_CHROMAに等しいtreeTypeを有する色度CTUのクアッドツリー(四分木)分割から生じる色度リーフブロックの、輝度サンプルを単位とする最小サイズの、2を底とする対数と、DUAL_TREE_CHROMAに等しいtreeTypeを有する色度CUの、輝度サンプルを単位とする最小符号化ブロックサイズの、2を底とする対数とのデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_min_qt_min_cb_chromaによってオーバーライドされ得る。sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からCtbLog2SizeY―MinCbLog2SizeYまでの範囲内(エンドポイントを含む)にすることができる。sps_log2_diff_min_qt_min_cb_intra_slice_chromaが存在しない場合、sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は0に等しいと推測され得る。DUAL_TREE_CHROMAに等しいtreeTypeを有するCTUのQT分割から生じる色度リーフブロックの、輝度サンプルを単位とする最小サイズの、2を底とする対数は、次のように導出され得る。即ち、
MinQtLog2SizeIntraC=
sps_log2_diff_min_qt_min_cb_intra_slice_chroma+MinCbLog2SizeY (10)
Sps_max_mtt_hierarchy_depth_intra_slice_chromaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、DUAL_TREE_CHROMAに等しいtreeTypeを有する色度クアッドツリー(四分木)リーフのマルチタイプツリー分割から生じる色度符号化ユニットのためのデフォルト最大階層深度を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト最大階層深度は、当該SPSを参照するPHにおいて存在するpic_max_mtt_hierarchy_depth_chromaによってオーバーライドされ得る。Sps_max_mtt_hierarchy_depth_intra_slice_chromaの値は、0から2×(CtbLog2SizeY―MinCbLog2SizeY)までの範囲内(エンドポイントを含む)にすることができる。Sps_max_mtt_hierarchy_depth_intra_slice_chromaが存在しない場合、Sps_max_mtt_hierarchy_depth_intra_slice_chromaの値は0に等しいと推測され得る。
【0163】
sps_log2_diff_max_bt_min_qt_intra_slice_chromaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、バイナリ分割を使用して分割され得る色度符号化ブロックの、輝度サンプルを単位とする最大サイズ(幅または高さ)の、2を底とする対数と、DUAL_TREE_CHROMAに等しいtreeTypeを有する色度CTUのQT分割から生じる色度リーフブロックの、輝度サンプルを単位とする最小サイズ(幅または高さ)の、2を底とする対数とのデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_max_bt_min_qt_chromaによってオーバーライドされ得る。sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値は、0からCtbLog2SizeY―MinQtLog2SizeIntraCまでの範囲内(エンドポイントを含む)にすることができる。sps_log2_diff_max_bt_min_qt_intra_slice_chromaが存在しない場合、sps_log2_diff_max_bt_min_qt_intra_slice_chromaの値は0に等しいと推測され得る。
【0164】
sps_log2_diff_max_tt_min_qt_intra_slice_chromaは、当該SPSを参照する、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、ターナリ分割を使用して分割され得る色度符号化ブロックの、輝度サンプルを単位とする最大サイズ(幅または高さ)の、2を底とする対数と、DUAL_TREE_CHROMAに等しいtreeTypeを有する色度CTUのクアッドツリー(四分木)分割から生じる色度リーフブロックの、輝度サンプルを単位とする最小サイズ(幅または高さ)の、2を底とする対数とのデフォルト差を指定することができる。partition_constraints_override_enabled_flagが1に等しい場合、デフォルト差は、当該SPSを参照するPHにおいて存在するpic_log2_diff_max_tt_min_qt_chromaによってオーバーライドされ得る。sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値は、0からCtbLog2SizeY―MinQtLog2SizeIntraまでの範囲内(エンドポイントを含む)にすることができる。sps_log2_diff_max_tt_min_qt_intra_slice_chromaが存在しない場合、sps_log2_diff_max_tt_min_qt_intra_slice_chromaの値は0に等しいと推測され得る。
【0165】
1に等しいsps_max_luma_transform_size_64_flagは、輝度サンプルを単位とする最大変換サイズが64に等しいことを指定することができる。0に等しいsps_max_luma_transform_size_64_flagは、輝度サンプルを単位とする最大変換サイズが32に等しいことを指定することができる。CtbSizeYが64よりも小さい場合、sps_max_luma_transform_size_64_flagの値は0に等しいことを指定することができる。
【0166】
変数MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeYおよびMaxTbSizeYは、以下のように導出され得る。即ち、
MinTbLog2SizeY=2 (11)
MaxTbLog2SizeY=sps_max_luma_transform_size_64_flag?6:5 (12)
MinTbSizeY=1<<MinTbLog2SizeY (13)
MaxTbSizeY=1<<MaxTbLog2SizeY (14)
pic_log2_diff_min_qt_min_cb_intra_slice_chromaは、当該PHに関連付けられた、2(Iスライスを示す)に等しいslice_typeを有するスライスにおける、DUAL_TREE_CHROMAに等しいtreeTypeを有する色度CTUのQT分割から生じる色度リーフブロックの、輝度サンプルを単位とする最小サイズの、2を底とする対数と、DUAL_TREE_CHROMAに等しいtreeTypeを有する色度CUの、輝度サンプルを単位とする最小符号化ブロックサイズの、2を底とする対数とのデフォルト差を指定することができる。pic_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からCtbLog2SizeY―MinCbLog2SizeYまでの範囲内(エンドポイントを含む)にすることができる。pic_log2_diff_min_qt_min_cb_intra_slice_chromaが存在しない場合、pic_log2_diff_min_qt_min_cb_intra_slice_chromaの値は0に等しいと推測され得る。
【0167】
slice_typeは、
図23における表3に従ってスライスのコーディングタイプを指定することができる。例えば、0~2のslice_typeは、それぞれ、Bスライス、Pスライス、およびIスライスに対応する。
【0168】
nal_unit_typeがIDR_W_RADLからCRA_NUTまでの範囲内(エンドポイントを含む)のnal_unit_typeの値であり、また、現在画像が、アクセスユニットにおける第1画像である場合、slice_typeは、2に等しくあってよい。
【0169】
変数MinQtLog2SizeY、MinQtLog2SizeC、MinQtSizeY、MinQtSizeC、MaxBtSizeY、MaxBtSizeC、MinBtSizeY、MaxTtSizeY、MaxTtSizeC、MinTtSizeY、MaxMttDepthY、およびMaxMttDepthCは、以下のように導出され得る。即ち、
MinQtSizeY=1<<MinQtLog2SizeY (15)
MinQtSizeC=1<<MinQtLog2SizeC (16)
MinBtSizeY=1<<MinCbLog2SizeY (17)
MinTtSizeY=1<<MinCbLog2SizeY (18)
slice_typeが2(Iスライス)に等しい場合、
MinQtLog2SizeY=MinCbLog2SizeY+
pic_log2_diff_min_qt_min_cb_intra_slice_luma (19)
MinQtLog2SizeC=MinCbLog2SizeC+
pic_log2_diff_min_qt_min_cb_intra_slice_chroma (20)
MaxBtSizeY=1<<(MinQtLog2SizeY+
pic_log2_diff_max_bt_min_qt_intra_slice_luma) (21)
MaxBtSizeC=1<<(MinQtLog2SizeC+
pic_log2_diff_max_bt_min_qt_intra_slice_chroma) (22)
MaxTtSizeY=1<<(MinQtLog2SizeY+
pic_log2_diff_max_tt_min_qt_intra_slice_luma) (23)
MaxTtSizeC=1<<(MinQtLog2SizeC+
pic_log2_diff_max_tt_min_qt_intra_slice_chroma) (24)
MaxMttDepthY=pic_max_mtt_hierarchy_depth_intra_slice_luma (25)
MaxMttDepthC=pic_max_mtt_hierarchy_depth_intra_slice_chromaa (26)
CuQpDeltaSubdiv=pic_cu_qp_delta_subdiv_intra_slice (27)
CuChromaQpOffsetSubdiv=
pic_cu_chroma_qp_offset_subdiv_intra_slice (28)
それ以外の場合(slice_typeが0(Bスライス)または1(Pスライス)に等しい)、
MinQtLog2SizeY=MinCbLog2SizeY+
pic_log2_diff_min_qt_min_cb_inter_slice (29)
MinQtLog2SizeC=MinCbLog2SizeC+
pic_log2_diff_min_qt_min_cb_inter_slice (30)
MaxBtSizeY=1<<(MinQtLog2SizeY+
pic_log2_diff_max_bt_min_qt_inter_slice) (31)
MaxBtSizeC=1<<(MinQtLog2SizeC+
pic_log2_diff_max_bt_min_qt_inter_slice) (32)
MaxTtSizeY=1<<(MinQtLog2SizeY+
pic_log2_diff_max_tt_min_qt_inter_slice) (33)
MaxTtSizeC=1<<(MinQtLog2SizeC+
pic_log2_diff_max_tt_min_qt_inter_slice) (34)
MaxMttDepthY=pic_max_mtt_hierarchy_depth_inter_slice (35)
MaxMttDepthC=pic_max_mtt_hierarchy_depth_inter_slice (36)
CuQpDeltaSubdiv=pic_cu_qp_delta_subdiv_inter_slice (37)
CuChromaQpOffsetSubdiv=
pic_cu_chroma_qp_offset_subdiv_inter_slice (38)
色度フレーム内予測は、例えば、2×Nのサイズなどの特定の色度ブロックサイズに対して無効にすることができる。
【0170】
一実施形態では、デュアルツリーおよびシングルツリーの両方における2×N色度フレーム内ブロックは、以下に説明するように除去され得る。デュアルツリーでは、2×Nフレーム内色度は、特定の分割を無効にすることにより制限され得る。例えば、幅がそれぞれ4と8のブロックに対して、二分木および三分木の分割は禁止されている。
【0171】
シングルツリーにおける2×Nを除去するために、ローカルデュアルツリーの拡張への制限と、色度2×Nのための組み合わせられたフレーム間マージ/フレーム内予測(CIIP)への制限との2つの制限が使用され得る。
【0172】
第1制限において、パーティションの幅が4でありかつ分割がバイナリ垂直分割であるか、または、幅が8でありかつ分割がターナリ垂直分割である場合、色度成分は、SCIPUとして処理され得る。SCIPUの原理制限に従い、色度成分は、フレームSCIPU内で分割されない(全ての輝度ブロックは、非フレーム間モードを使用して符号化され、また、非分割色度ブロックは、フレーム内モードを使用して符号化される)。フレーム間SCIPU(全ての輝度および色度ブロックは、フレーム間モードを使用して符号化される)に対して、色度成分の分割は、輝度成分から継承され得る。
【0173】
第2制限において、一例では、4×N CIIPブロックに対して、当該CIIPは、輝度成分のみに対して使用される。一方で、フレーム間予測は、色度成分のみに対して使用される。
【0174】
上記の制限は、フレーム内色度ブロックの幅が4以上であることを保証することができ、したがって、2×Nピクセルのフレーム内プロセスは除去され得る。この制限は、ビデオコーデックの実現が、パイプライン管理の面からハードウェアの実現に適したものになり得る。
【0175】
以下に、例えば、VVCにおいて、パーティション可用性関連プロセスの例について説明する。
【0176】
一実施形態では、以下、許可されたクアッド分割プロセスについて説明する。許可されたクアッド分割プロセスへの入力には、次のものが含まれることができ、即ち、
輝度サンプルを単位とする符号化ブロックサイズ(またはcbSize)、
MTT深度(またはmttDepth)、
符号化ツリーノードをパーティションするためにシングルツリー(またはSINGLE_TREE)またはデュアルツリーのどちらを使用するか、および、デュアルツリーが使用された場合、輝度(DUAL_TREE_LUMA)または色度(DUAL_TREE_CHROMA)成分が現在処理されるか否かを指定する変数ツリータイプ(またはtreeType)、符号化ツリーノード内の符号化ユニットに対して、フレーム内モード(またはフレーム内予測モード、MODE_INTRA)、IBCモード(またはMODE_IBC)、およびフレーム間コーディングモードを使用できるか否か(MODE_TYPE_ALL)、または、フレーム内およびIBCコーディングモードのみを使用できるか否か(MODE_TYPE_INTRA)、または、フレーム間コーディングモードのみを使用できるか否か(MODE_TYPE_INTER)を指定する変数モードタイプ(予測モードタイプとも呼ばれ、例えばmodeType)である。一例では、MODE_TYPE_ALLは、フレーム内、IBC、およびフレーム間コーディングモードを使用できることを示す。
【0177】
輝度サンプルを単位とする符号化ブロックサイズ(またはcbSize)は、輝度サンプルを有する色度符号化ブロック(または色度ブロック)のブロックサイズを表すことができる。従って、色度サンプルを単位とする色度符号化ブロックのブロックサイズは、輝度サンプルを単位とする符号化ブロックサイズ(またはcbSize)と、対応する色度サブサンプリングレート、例えば、色度水平サブサンプリングレートまたは水平方向での色度サブサンプリングレート(例えば、SubWidthC)とに基づいて決定され得る。例えば、色度フォーマットが4:2:0に対して、輝度サンプルを単位とする符号化ブロックサイズ(またはcbSize)は16であるため、輝度サンプルを単位として使用して表す場合、色度符号化ブロックのブロックサイズは16であり、色度サンプルを単位として使用して表す場合、色度符号化ブロックのブロックサイズは8である。
【0178】
一例では、符号化ブロックサイズcbSizeは、輝度サンプルを単位とする符号化ブロックサイズの幅(cbWidth)に等しく設定される。例えば、色度フォーマットが4:2:2に対して、輝度サンプルを単位とする符号化ブロックサイズの幅は、16個の輝度サンプルであり、色度水平サブサンプリングレート(SubWidthC)は2であり、したがって、色度符号化ブロックのブロックサイズは、輝度サンプルを単位とする場合の16、または色度サンプルを単位とする場合の16/2(または8)であってよい。さらに、色度フォーマットが4:2:2に対して、輝度サンプルを単位とする符号化ブロックサイズの高さは、16個の輝度サンプルであり、色度垂直サブサンプリングレート(SubHeightC)は1であり、したがって、色度符号化ブロックの高さは、輝度サンプルを単位とする場合の16、または色度サンプルを単位とする場合の16であってよい。
【0179】
許可されたクアッド分割プロセスの出力には、QT分割が許可される(例えば、allowSplitQtが真である)か、または許可されないか(例えば、allowSplitQtが偽である)を示す変数allowSplitQtが含まれ得る。変数allowSplitQtは、以下のように導出され得る。即ち、
以下の条件(QT分割のための条件とも呼ばれる)のうちの1つまたは複数が真である場合、変数allowSplitQtは、FALSEに設定されてよく、QT分割は、許可されておらず、即ち、
(a)treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しく、かつ、cbSizeがMinQtSizeY以下である。
【0180】
(b)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、cbSize/SubWidthCがMinQtSizeC以下である。
【0181】
(c)mttDepthが0に等しくない。
【0182】
(d)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbSize/SubWidthC)が4以下である。
【0183】
(e)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、modeTypeがMODE_TYPE_INTRA以下である。
【0184】
それ例外の場合、allowSplitQtは、TRUEに設定され得る。したがって、QT分割は、許可され得る。
【0185】
様々な例では、例えば上記の条件(b)、(d)、および(e)などの特定の条件には、treeTypeがDUAL_TREE_CHROMAに等しいことが含まれ、したがって、条件(b)、(d)、および(e)は、QT分割が色度ブロックに適用される場合には真になることができ、QT分割が輝度ブロックに適用される場合には真になることができない。したがって、QT分割のための条件(b)、(d)、および(e)は、色度QT分割のための条件と呼ばれてよい。
【0186】
条件(a)~(e)のうちの1つまたは複数は、変更および/または省略され得る。付加の条件は、条件(a)~(e)に追加され得る。
【0187】
一例では、符号化ツリーセマンティクスには、変数allowSplitQtが含まれ、当該変数は、以下のように導出され得る。即ち、許可されたクアッド分割プロセスは、cbWidthに等しく設定された符号化ブロックサイズcbSize(例えば、輝度サンプルを単位とする)、現在マルチタイプツリー深度mttDepth、treeTypeCurrおよびmodeTypeCurrを入力として使用して、呼び出され得る。出力は、allowSplitQtに割り当てられ得る。
【0188】
一実施形態では、許可されたバイナリ分割プロセスを以下のように説明する。許可されたバイナリ分割プロセスへの入力には、
バイナリ分割モード(またはbtSplit)と、
輝度サンプルを単位とする符号化ブロック幅(またはcbWidth)と、
輝度サンプルを単位とする符号化ブロック高さ(またはcbHeight)と、
画像の左上輝度サンプルに対する、考慮された符号化ブロックの左上輝度サンプルの位置(x0,y0)と、
マルチタイプツリー深度(またはmttDepth)と、
オフセットを有する最大マルチタイプツリー深度(またはmaxMttDepth)と、
最大バイナリーツリー(二分木)サイズ(またはmaxBtSize)と、
最小QTサイズ(またはminQtSize)と、
パーティションインデックス(またはpartIdx)と、
シングルツリー(SINGLE_TREE)またはデュアルツリーのどちらを使用して符号化ツリーノードをパーティションするか、および、デュアルツリーが使用された場合、輝度(DUAL_TREE_LUMA)または色度(DUAL_TREE_CHROMA)成分が現在処理されるか否かを指定する変数ツリータイプ(またはtreeType)と、
符号化ツリーノード内の符号化ユニットに対して、フレーム内(MODE_INTRA)、IBC(MODE_IBC)、およびフレーム間コーディングモードを使用できるか否か(MODE_TYPE_ALL)、または、フレーム内およびIBCコーディングモードのみを使用できるか否か(MODE_TYPE_INTRA)、または、フレーム間コーディングモードのみを使用できるか否か(MODE_TYPE_INTER)を指定する変数モードタイプ(またはmodeType)と、が含まれ得る。
【0189】
許可されたバイナリ分割プロセスの出力には、変数allowBtSplitが含まれ得る。
【0190】
一例では、変数parallelTtSplitおよびcbSizeは、表4(
図24)に示されるように、変数btSplitに基づいて導出される。
【0191】
変数allowBtSplitは、以下のように導出され得る。即ち、
以下の条件のうちの1つまたは複数が真である場合、変数allowBtSplitは、FALSEに設定され得る。即ち、
cbSizeがMinBtSizeY以下である。
【0192】
cbWidthがmaxBtSizeよりも大きい。
【0193】
cbHeightがmaxBtSizeよりも大きい。
【0194】
mttDepthがmaxMttDepth以上である。
【0195】
treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbWidth/SubWidthC)×(cbHeight/SubHeightC)が16以下である。
【0196】
treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbWidth/SubWidthC)が4に等しく、かつ、btSplitがSPLIT_BT_VERに等しい。
【0197】
treeTypeがDUAL_TREE_CHROMAに等しく、かつ、modeTypeがMODE_TYPE_INTRAに等しい。
【0198】
cbWidth×cbHeightが32に等しく、かつ、modeTypeがMODE_TYPE_INTERに等しい。
【0199】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定され得る。即ち、
btSplitがSPLIT_BT_VERに等しい。
【0200】
y0+cbHeightがpic_height_in_luma_samplesよりも大きい。
【0201】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定されることができ、即ち、
btSplitがSPLIT_BT_VERに等しい。
【0202】
cbHeightが64よりも大きい。
【0203】
x0+cbWidthがpic_width_in_luma_samplesよりも大きい。
【0204】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定され得る。即ち、
btSplitがSPLIT_BT_HORに等しい。
【0205】
cbWidthが64よりも大きい。
【0206】
y0+cbHeightがpic_height_in_luma_samplesよりも大きい。
【0207】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定されうる。即ち、
x0+cbWidthがpic_width_in_luma_samplesよりも大きい。
【0208】
y0+cbHeightがpic_height_in_luma_samplesよりも大きい。
【0209】
cbWidthがminQtSizeよりも大きい。
【0210】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定され得る。即ち、
btSplitがSPLIT_BT_HORに等しい。
【0211】
x0+cbWidthがpic_width_in_luma_samplesよりも大きい。
【0212】
y0+cbHeightがpic_height_in_luma_samples以下である。
【0213】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定され得る。即ち、
mttDepthが0よりも大きい。
【0214】
partIdxが1に等しい。
【0215】
MttSplitMode[x0][y0][mttDepth―1]がparallelTtSplitに等しい。
【0216】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定され得る。即ち、
btSplitがSPLIT_BT_VERに等しい。
【0217】
cbWidthが64以下である。
【0218】
cbHeightが64よりも大きい。
【0219】
それ以外の場合、次の条件がすべて真である場合に、変数allowBtSplitは、FALSEに設定され得る。即ち、
btSplitがSPLIT_BT_HORに等しい。
【0220】
cbWidthが64よりも大きい。
【0221】
cbHeightが64以下である。
【0222】
それ以外の場合、変数allowBtSplitは、TRUEに設定され得る。
【0223】
一実施形態では、許可されたターナリ分割プロセスを以下のように説明する。許可されたターナリ分割プロセスへの入力には、
ターナリ分割モード(またはttSplit)と、
輝度サンプルを単位とする符号化ブロック幅(またはcbWidth)と、
輝度サンプルを単位とする符号化ブロック高さ(またはcbHeight)と、
画像の左上輝度サンプルに対する、考慮された符号化ブロックの左上輝度サンプルの位置(x0,y0)と、
マルチタイプツリー深度(またはmttDepth)と、
オフセットを有する最大マルチタイプツリー深度(またはmaxMttDepth)と、
最大ターナリツリー(三分木)サイズ(またはmaxTtSize)と、
シングルツリー(SINGLE_TREE)またはデュアルツリーのどちらを使用して符号化ツリーノードをパーティションするか、および、デュアルツリーが使用された場合、輝度(DUAL_TREE_LUMA)または色度(DUAL_TREE_CHROMA)成分が現在処理されるか否かを指定する変数ツリータイプ(またはtreeType)と、
符号化ツリーノード内の符号化ユニットに対して、フレーム内(MODE_INTRA)、IBC(MODE_IBC)、およびフレーム間コーディングモードを使用できるか否か(MODE_TYPE_ALL)、または、フレーム内およびIBCコーディングモードのみを使用できるか否か(MODE_TYPE_INTRA)、または、フレーム間コーディングモードのみを使用できるか否か(MODE_TYPE_INTER)を指定する変数モードタイプ(またはmodeType)と、が含まれ得る。
【0224】
許可されたターナリ分割プロセスの出力には、変数allowTtSplitが含まれ得る。
【0225】
一例では、変数cbSizeは、表5(
図25)に示されるように、変数ttSplitに基づいて導出される。
【0226】
変数allowTtSplitは、以下のように導出され得る。即ち、
以下の条件のうちの1つまたは複数が真である場合、変数allowTtSplitは、FALSEに設定され得る。即ち、
cbSizeが2×MinTtSizeY以下である。
【0227】
cbWidthがMin(64,maxTtSize)よりも大きい。
【0228】
cbHeightがMin(64,maxTtSize)よりも大きい。
【0229】
mttDepthがmaxMttDepth以上である。
【0230】
x0+cbWidthがpic_width_in_luma_samplesよりも大きい。
【0231】
y0+cbHeightがpic_height_in_luma_samplesよりも大きい。
【0232】
treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbWidth/SubWidthC)×(cbHeight/SubHeightC)が32以下である。
【0233】
treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbWidth/SubWidthC)が8に等しく、かつ、ttSplitがSPLIT_TT_VERに等しい。
【0234】
treeTypeがDUAL_TREE_CHROMAに等しく、かつ、modeTypeがMODE_TYPE_INTRAに等しい。
【0235】
cbWidth×cbHeightが64に等しく、かつ、modeTypeがMODE_TYPE_INTERに等しい。
【0236】
それ以外の場合、変数allowTtSplitは、TRUEに設定され得る。
【0237】
隣接するブロックの可用性のための導出プロセスについて、以下のように説明することができる。
【0238】
隣接するブロックの可用性のための導出プロセスへの入力には、
現在画像の左上輝度サンプルに対する、現在ブロックの左上サンプルの輝度位置(xCurr,yCurr)と、
現在画像の左上輝度サンプルに対する、隣接するブロックによってカバーされる輝度位置(xNbY,yNbY)と、
可用性が予測モードに依存するか否かを指定する変数checkPredModeYと、
現在ブロックの色成分を指定する変数cIdxと、が含まれ得る。
【0239】
当該導出プロセスの出力には、位置(xNbY,yNbY)をカバーする、隣接するブロックの可用性が含まれることができ、availableNと表される。隣接するブロックの可用性(またはavailableN)は、以下のように導出され得る。即ち、
以下の条件のうちの1つまたは複数が真である場合、availableNは、FALSEに設定され得る。即ち、
xNbYが0よりも小さい。
【0240】
yNbYが0よりも小さい。
【0241】
xNbYがpic_width_in_luma_samples以上である。
【0242】
yNbYがpic_height_in_luma_samples以上である。
【0243】
IsAvailable[cIdx][xNbY][yNbY]がFALSEに等しい。
【0244】
隣接するブロックが、現在ブロックとは異なるスライスに含まれている。
【0245】
隣接するブロックが、現在ブロックとは異なるタイルに含まれている。
【0246】
entropy_coding_sync_enabled_flagが1に等しく、かつ、(xNbY>>CtbLog2SizeY)が(xCurr>>CtbLog2SizeY)+1以上である。
【0247】
それ以外の場合、変数availableNは、TRUEに設定され得る。
【0248】
以下のすべての条件が真である場合、変数availableNは、FALSEに設定され得る、即ち、
checkPredModeYがTRUEに等しい。
【0249】
CuPredMode[0][xNbY][yNbY]がCuPredMode[0][xCurr][yCurr]に等しくない。
【0250】
上記のように、QT分割のための条件のうちの1つ(即ち、条件(b))には、cbSize/SubWidthCが最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)以下であるか否かへのチェックが含まれる。cbSizeは、輝度サンプルを単位とする色度ブロックの符号化ブロックサイズであってよく、SubWidthCは、色度水平サブサンプリング係数(または水平方向での色度サブサンプリング係数)であってよい。いくつかの例では、cbSize/SubWidthCは、色度サンプルを単位とする色度ブロックの幅に対応する。色度フォーマットが4:2:2である場合、水平方向および垂直方向でのサブサンプリングは異なってもよいため、色度サンプルを単位とする色度ブロックの幅は、色度サンプルを単位とする色度ブロックの高さより小さくてもよい。したがって、MinQtSizeC以下であるcbSize/SubWidthCをQT分割の無効化(または禁止)条件として使用することは、色度QT分割を無効にするより高いチャンスを有してよく、例えば、cbSizeがMinQtSizeCに等しい場合、いくつかの例では、色度成分へのコーディング性能が低下になる可能性がある。
【0251】
より多くのQT分割を許可するために、上記の色度QT分割のための条件(b)は修正され得る。本開示の各態様によれば、修正された条件(b)は、色度ブロック高さ(または色度ブロックの高さ)と、最小許容色度QTリーフノードサイズ(QT分割のための最小許容色度ブロックサイズとも呼ばれる)(MinQtSizeC)とを比較することができる。
【0252】
本開示の各態様によれば、上記の許可されたクアッド分割プロセスは、他の条件(例えば、条件(a)、および、(c)~(e))を変更しないままで、条件(b)を修正することによって修正され得る。修正された条件(例えば、条件(b’)として表される)は、以下のように説明され得る。即ち、
(b’)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、cbSize/SubHeightCがMinQtSizeC以下である。
【0253】
許可されたクアッド分割プロセスの入力は、上記と同じままに維持されるてよく、許可されたクアッド分割プロセスの出力(例えば、変数allowSplitQt)の導出は、以下のように更新され得る。即ち、
以下の条件のうちの1つまたは複数が真である場合、変数allowSplitQtは、FALSEに設定され得る。QT分割は、許可されておらず、即ち、
(a)treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しく、かつ、cbSizeはMinQtSizeY以下である。
【0254】
(b’)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、cbSize/SubHeightCがMinQtSizeC以下である。
【0255】
(c)mttDepthが0に等しくない。
【0256】
(d)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbSize/SubWidthC)が4以下である。
【0257】
(e)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、modeTypeがMODE_TYPE_INTRAに等しい。
【0258】
それ以外の場合、allowSplitQtは、TRUEに設定され得る。したがって、QT分割は、許可され得る。
【0259】
一実施形態では、最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)の単位は、色度サンプルを単位とすることである。
【0260】
本開示の各態様によれば、符号化されたビデオビットストリームからのパーティション情報を復号することができる。パーティション情報は、例えばCTUにおいて、別個の符号化ツリー構造を使用して、色度成分(複数)(例えば、色度CTB(複数))および対応する輝度成分(例えば、輝度CTB)をパーティションできる、ということを示すことができる。パーティション情報は、デュアルツリーが使用されており、デュアルツリーにおける色度符号化ツリー構造(例えば、DUAL_TREE_CHROMAによって示される)が、例えばCTUにおける色度ブロックに適用され得る、ということを示すことができる。したがって、一例では、treeTypeは、DUAL_TREE_CHROMAに等しい。当該パーティション情報は、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズ(例えば、cbSize)、色度垂直サブサンプリング係数(例えば、SubHeightC)、および最小許容色度クアッドツリー(QT、四分木)リーフノードサイズ(例えば、MinQtSizeC)、を示すことができる。色度ブロックに対してQT分割が許可されないか否かは、少なくとも輝度サンプルを単位とする色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、および最小許容色度QTリーフノードサイズに基づいて決定され得る。色度ブロックに対してQT分割が許可されないことに応答して、色度ブロックに対してバイナリーツリー(二分木)分割およびターナリツリー(三分木)分割のうちの少なくとも1つが許可されないか否かが決定され得る。
【0261】
一実施形態では、パーティション情報は、さらに、最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)が、色度サンプルを単位とすることを示すことができる。輝度サンプルを単位とする色度ブロックのブロックサイズを色度垂直サブサンプリング係数で割った値が、色度サンプルを単位とする最小許容色度QTリーフノードサイズ以下(例えば、cbSize/SubHeightCが、色度サンプルを単位とするMinQtSizeC以下)である場合、色度ブロックに対してQT分割が許可されていないと決定され得る。
【0262】
一例では、輝度サンプルを単位とする色度ブロックのブロックサイズを色度垂直サブサンプリング係数で割った値は、色度サンプルを単位とする色度ブロックの高さである。色度サンプルを単位とする色度ブロックの高さが、色度サンプルを単位とする最小許容色度QTリーフノードサイズ以下(例えば、cbSize/SubHeightCが、色度サンプルを単位とするMinQtSizeC以下)であることに応答して、QT分割または色度ブロックのためのQT分割は、許可されなくてよい。したがって、一例では、修正された条件(b’)は、許可されたクアッド分割プロセスで使用され得る。
【0263】
QT分割が禁止されるかまたは許可されるかを決定するために、他の条件(例えば、条件(a)、および(c)~(e)のうち1つまたは複数)は、さらにチェックされ得る。一実施形態では、当該パーティション情報は、さらに、色度水平サブサンプリング係数(例えば、SubWidthC)、色度ブロックがMTT分割からのMTTノードであるか否かを示すMTT深度(例えば、mttDepth)、および色度ブロックのための予測モードタイプ(例えば、modeType)のうちの1つまたは複数を示すことができる。色度ブロックに対してQT分割が許可されないか否かは、輝度サンプルを単位とする色度ブロックのブロックサイズと、色度垂直サブサンプリング係数と、色度サンプルを単位とする最小許容色度QTリーフノードサイズと、色度水平サブサンプリング係数、MTT深度、および予測モードタイプのうちの1つまたは複数と、に基づいて決定され得る。
【0264】
一例では、色度サンプルを単位とする色度ブロックの高さに応答して、例えば、輝度サンプルを単位とする色度ブロックのブロックサイズを色度垂直サブサンプリング係数で割った値が、色度サンプルを単位とする最小許容色度QTリーフノードサイズより大きい場合、許可されたクアッド分割プロセスにおいて、他の条件のうちの1つまたは複数は、さらにチェックされ得る。色度ブロックに対してQT分割が許可されないか否かは、輝度サンプルを単位とする色度ブロックのブロックサイズ、色度水平サブサンプリング係数、MTT深度、および予測モードタイプのうちの1つまたは複数に基づいて決定され得る。
【0265】
一例では、デュアルツリーにおける色度符号化ツリー構造(例えば、DUAL_TREE_CHROMAによって、または、DUAL_TREE_CHROMAに等しいtreeTypeによって示される)が色度ブロックに適用され、また、色度サンプルを単位とする色度ブロックの高さが色度サンプルを単位とする最小許容色度QTリーフノードサイズよりも大きいと決定される。したがって、色度ブロックに対してQT分割が許可されないか否かは、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズ、色度水平サブサンプリング係数、MTT深度、および予測モードタイプに基づいて決定され得る。例えば、以下の条件、即ち、(c)MTT深度が0(例えば、色度ブロックがMTTノードであることを示す)に等しい条件、(d’)色度サンプルを単位とする色度ブロックの幅(例えば、cbSize/SubWidthC)が4以下である条件、および(e’)予測モードタイプ(例えば、modeType)が、フレーム内予測モード(またはフレーム内モード)およびIBCモードが許可されていることを示すMODE_TYPE_INTRAである条件、のうちの少なくとも1つが真である場合、QT分割は、色度ブロックに対して許可されていない(例えば、allowSplitQtは、FALSEに設定される)。条件(c)、および(d’)~(e’)が偽であり、かつ、色度サンプルを単位とする色度ブロックの高さが、色度サンプルを単位とする最小許容色度QTリーフノードサイズよりも大きい場合、QT分割が許可されていると決定され得る。条件(d’)~(e’)かつDUAL_TREE_CHROMAに等しいtreeTypeは、それぞれ、条件(d)~(e)に対応する。
【0266】
一般に、例えば、シングルツリー(例えば、輝度成分および色度成分(複数)(選択可能)のためのSINGLE_TREE)、輝度符号化ツリー構造(例えば、輝度成分のためのデュアルツリー、またはDUAL_TREE_LUMA)、および/または、色度符号化ツリー構造(例えば、色度成分(複数)のためのデュアルツリー、またはDUAL_TREE_CHROMA)などで使用されるパーティションサイズ関連変数は、輝度サンプルまたは色度サンプルを使用して指定されてよく、また、パーティションサイズ関連変数を指定するために、輝度サンプルと色度サンプルのどちらが使用されているかは、明確ではない場合もある。色度パーティションサイズ関連変数が輝度サンプルの単位を持っているか、または、色度サンプルの単位を持っているかを指定することは、有利である。
【0267】
一実施形態では、輝度サンプルの単位は、色度ブロックサイズまたは色度パーティションサイズ関連変数の説明に使用されてよく、例えば、色度符号化ツリー構造(例えば、DUAL_TREE_CHROMA)において使用される。例えば、最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)は、輝度サンプルを単位として説明することができる。色度サンプルを単位とする、対応するブロックサイズは、表1における色度サブサンプリング比率(例えば、SubWidthCおよびSubHeightC)に従って導出され得る。
【0268】
例えば、色度フォーマットが4:2:2である場合、輝度サンプルを単位とする変数MinQtSizeC(または最小許容色度QTリーフノードサイズ)は、色度サンプルを単位とするMinQtSizeC/SubWidthC(またはMinQtSizeC/2)に対応する。SubWidthCが2であるからである。したがって、輝度サンプルを単位とする変数MinQtSizeCが16(輝度サンプル)である場合、最小許容色度QTリーフノードサイズは、16(輝度サンプル)または8(色度サンプル)である。
【0269】
色度フォーマットが4:4:4である場合、輝度サンプルを単位とする変数MinQtSizeCは、色度サンプルを単位とするMinQtSizeC/SubWidthCに対応し、SubWidthCが1であるから、色度サンプルを単位とするMinQtSizeCに等しい。
【0270】
一実施形態では、フレーム内デュアルツリーが使用される場合、変数モードタイプ(例えば、modeType)は、MODE_INTRA(フレーム内モードが使用可能であることを示す)、MODE_IBC(IBCモードが使用可能であることを示す)、またはMODE_TYPE_INTRA(フレーム内およびIBCモードが使用可能であることを示す)のうちの1つまたは複数であってよい。一例では、フレーム内デュアルツリーが使用される場合、変数モードタイプ(例えば、modeType)は、任意の適切な非フレーム間予測モードであってよい。
【0271】
最小許容色度符号化ブロックサイズは、最小許容輝度符号化ブロックサイズより小さくてもよい。パーティション情報は、輝度サンプルを単位とする最小許容色度符号化ブロックサイズ、および輝度サンプルを単位とする最小許容輝度符号化ブロックサイズを示すことができる。輝度サンプルを単位とする最小許容色度符号化ブロックサイズは、輝度サンプを単位とする最小許容輝度符号化ブロックサイズより小さくてもよい。
【0272】
最小許容色度QTリーフノードサイズは、最小許容輝度QTリーフノードサイズより小さくてもよい。パーティション情報は、輝度サンプルを単位とする最小許容輝度QTリーフノードサイズを示すことができる。CTUのQT分割が許可されている、輝度サンプルを単位とする最小許容色度QTリーフノードサイズは、輝度サンプルを単位とする最小許容輝度QTリーフノードサイズ(または、CTUのQT分割から生じる最小輝度リーフブロックサイズ)より小さくてもよい。
【0273】
本開示の各態様によれば、例えば、最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)などの色度パーティショニング単位サイズは、輝度サンプルを単位として説明され得る。上記の色度ブロックのための許可されたクアッド分割プロセスは、他の条件(例えば、条件(a)、および(c)~(e))を変更しないままで、条件(b)を修正することによって、修正され得る。修正された条件(条件(b’’)として表される)は、以下のように説明される得る。即ち、
(b’’)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、cbSizeがMinQtSizeC以下である。
【0274】
ここで、cbSizeが、輝度サンプルを単位とする色度ブロックのブロックサイズであり、MinQtSizeCが、輝度サンプルを単位とするものである。
【0275】
許可されたクアッド分割プロセスの入力は、上記と同じままに維持されてよく、許可されたクアッド分割プロセスの出力(例えば、変数allowSplitQt)の導出は、以下のように更新され得る。即ち、
以下の条件のうち1つまたは複数が真である場合、変数allowSplitQtは、FALSEに設定されてよく、QT分割は、許可されておらず、即ち、
(a)treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しく、かつ、cbSizeがMinQtSizeY以下である。
【0276】
(b’’)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、cbSizeがMinQtSizeC以下である。
【0277】
(c)mttDepthが0に等しくない。
【0278】
(d)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbSize/SubWidthC)は4以下である。
【0279】
(e)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、modeTypeがMODE_TYPE_INTRAに等しい。
【0280】
それ以外の場合、allowSplitQtは、TRUEに設定され得る。したがって、QT分割は、許可され得る。
【0281】
本開示の各態様によれば、パーティション情報は、符号化されたビデオビットストリームから復号され得る。パーティション情報は、デュアルツリーにおける色度符号化ツリー構造(例えば、DUAL_TREE_CHROMA、または、treeTypeがDUAL_TREE_CHROMAに等しい)が色度ブロックに適用されることを示すことができる。パーティション情報は、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズ(例えば、cbSize)、および輝度サンプルを単位とする最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)を示すことができる。輝度サンプルを単位とする色度ブロックのブロックサイズが、輝度サンプルを単位とする最小許容色度QTリーフノードサイズ以下であるか否かが、決定され得る。輝度サンプルを単位とする色度ブロックのブロックサイズが、輝度サンプルを単位とする最小許容色度QTリーフノードサイズ以下であることに応答して、色度ブロックに対してQT分割が許可されていないと決定され得る。
【0282】
一例では、パーティション情報は、さらに、色度ブロックがMTT分割からのMTTノードであるか否かを示すMTT深度(例えば、mttDepth)、色度水平サブサンプリング係数(例えば、SubWidthC)、および色度ブロックのための予測モードタイプ(例えば、modeType)を示すことができる。輝度サンプルを単位とする色度ブロックのブロックサイズが、輝度サンプルを単位とする最小許容色度QTリーフノードサイズよりも大きい場合、以下の条件、即ち、(c)MTT深度が0に等しくない(それは、色度ブロックがMTTノードであることを示す)条件、(d’)輝度サンプルを単位とする色度ブロックのブロックサイズを色度水平サブサンプリング係数で割った値が4以下(またはcbSize/SubWidthC≦4)である条件、および(e’)予測モードタイプ(またはmodeType)がMODE_TYPE_INTRAである(それは、フレーム内モードおよびIBCモードが許可されていることを示す)条件、のうちの少なくとも1つが真であることに基づいて、色度ブロックに対してQT分割が許可されていないと決定され得る。一例では、条件(c)、(d’)、および(e’)が偽であることに基づいて、QT分割が許可されていると決定され得る。
【0283】
本開示の各態様によれば、例えば、最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)などの色度パーティショニング単位サイズは、輝度サンプルを単位として説明され得る。上記の色度ブロックのための許可されたクアッド分割プロセスは、他の条件(例えば、条件(a)、および(c)~(e))を変更しないままで、条件(b)を修正ことによって修正され得る。修正された条件(条件(b’’’)として表される)は、以下のように説明され得る。即ち、
(b’’’)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、cbSizeが(MinQtSizeC×SubHeightC/SubWidthC)以下である。
【0284】
許可されたクアッド分割プロセスの入力は、上記と同じままに維持されてよく、許可されたクアッド分割プロセスの出力(例えば、変数allowSplitQt)の導出は、以下のように更新され得る。
【0285】
以下の条件のうちの1つまたは複数が真である場合、変数allowSplitQtは、FALSEに設定されてよく、QT分割は、許可されておらず、即ち、
(a)treeTypeがSINGLE_TREEまたはDUAL_TREE_LUMAに等しく、かつ、cbSizeがMinQtSizeY以下である。
【0286】
(b’’’)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、cbSizeは(MinQtSizeC×SubHeightC/SubWidthC)以下である。
【0287】
(c)mttDepthが0に等しくない。
【0288】
(d)treeTypeがDUAL_TREE_CHROMAに等しく、かつ、(cbSize/SubWidthC)が4以下である。
【0289】
(e)treeTypeがDUAL_TREE_CHROMAに等しく、modeTypeがMODE_TYPE_INTRAに等しい。
【0290】
それ以外の場合、allowSplitQtは、TRUEに設定され得る。したがって、QT分割は、許可され得る。
【0291】
以下、条件(b’’’)を含む上記の修正について説明する。上記のように、一実施形態では、パーティション情報は、符号化されたビデオビットストリームから復号され得る。パーティション情報は、デュアルツリーにおける色度符号化ツリー構造(例えば、DUAL_TREE_CHROMAによって示される)を色度ブロックに適用できることを示すことができる。パーティション情報は、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズ(例えば、cbSize)、色度垂直サブサンプリング係数(例えば、SubHeightC)、および最小許容色度クアッドツリー(QT、四分木)リーフノードサイズ(例えば、MinQtSizeC)を示すことができる。色度ブロックに対してQT分割が許可されないか否かは、少なくとも輝度サンプルを単位とする色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、および最小許容色度QTリーフノードサイズに基づいて、決定され得る。色度ブロックに対してQT分割が許可されないことに応答して、色度ブロックに対してバイナリーツリー(二分木)分割およびターナリツリー(三分木)分割のうちの少なくとも1つが許可されないか否かが決定され得る。一例では、パーティション情報は、さらに、色度水平サブサンプリング係数(例えば、SubWidthC)を示し、また、最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)が輝度サンプルを単位とするものであることを示す。したがって、少なくとも輝度サンプルを単位とする色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、色度水平サブサンプリング係数、および輝度サンプルを単位とする最小許容色度QTリーフノードサイズに基づいて、色度ブロックに対してQT分割が許可されないか否かが決定され得る。
【0292】
一実施形態では、輝度サンプルを単位とする最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)に色度垂直サブサンプリング係数(例えば、SubHeightC)を掛けてから、色度水平サブサンプリング係数(例えば、SubWidthC)で割った値に等しいパラメータが決定され得る。したがって、当該パラメータは、MinQtSizeC×SubHeightC/SubWidthCに等しい。さらに、上記のように、輝度サンプルを単位とする色度ブロックのブロックサイズ(例えば、cbSize)が当該パラメータ以下である場合、色度ブロックに対してQT分割が許可されていないと決定され得る。
【0293】
一例では、パーティション情報は、さらに、MTT分割からのMTTノードであるか否かを示すMTT深度(例えば、mttDepth)、および色度ブロックのための予測モードタイプ(例えば、modeType)を示すことができる。したがって、色度ブロックに対してQT分割が許可されないか否かは、さらに、MTT深度および予測モードタイプに基づいて決定され得る。例えば、以下の条件、即ち、(b’’’’)輝度サンプルを単位とする色度ブロックのブロックサイズ(例えば、cbSize)が、輝度サンプルを単位とする最小許容色度QTリーフノードサイズに色度垂直サブサンプリング係数を掛けてから、色度水平サブサンプリング係数で割った値以下である(またはcbSize≦MinQtSizeC×SubHeightC/SubWidthC)条件、(c)MTT深度(例えば、mttDepth)が0に等しくない(それは、色度ブロックがMTTノードであることを示す)条件、(d’)輝度サンプルを単位とする色度ブロックのブロックサイズを色度水平サブサンプリング係数で割った値が4以下である(またはcbSize/SubWidthC≦4)条件、および、(e’)予測モードタイプ(またはmodeType)がMODE_TYPE_INTRAである(それは、フレーム内予測モードおよびIBCモードを使用できることを示す)条件、のうちの少なくとも1つが真である場合、色度ブロックに対してQT分割が許可されないと決定され得る。条件(b’’’’)、(c)、(d’)および(e’)が偽である場合、QT分割が許可されると決定され得る。条件(b’’’’)かつDUAL_TREE_CHROMAに等しいtreeTypeは、条件(b’’’)に対応する。上記のように、条件(d’)~(e’)かつDUAL_TREE_CHROMAに等しいtreeTypeは、それぞれ、条件(d)~(e)に対応する。したがって、条件(b’’’)、(c)、(d)、および(e)が偽である場合、QT分割が許可されると決定され得る。
【0294】
最小色度符号化ブロックサイズは、最小許容輝度符号化ブロックサイズとは別に信号で通知され得る。輝度サンプルを単位とする最小色度符号化ブロックサイズは、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズとは別に信号で通知され得る。
【0295】
いくつかの例では、最小色度符号化ブロックサイズに関連する変数(例えば、MinCbLog2SizeC)は、例えば、VVCなどにおいて使用される。しかしながら、最小色度符号化ブロックサイズの導出方法は、定義されなくてもよい。
【0296】
一実施形態では、符号化されたビデオビットストリームには、輝度サンプルを単位とする最小許容色度符号化ブロックサイズを示す色度構文要素と、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズを示す輝度構文要素と、が含まれる。
【0297】
フレーム内デュアルツリーが使用される場合、輝度サンプルを単位とする最小色度符号化ブロックサイズを示すために、構文要素(例えば、色度構文要素、log2_min_chroma_coding_block_size_minus2)は、例えば、符号化されたビデオビットストリームにおいて信号で通知され得る。輝度サンプルを単位とする最小許容輝度符号化ブロックサイズを示すために、異なる構文要素(例えば、輝度構文要素)が信号で通知され得る。輝度サンプルを単位とする最小色度符号化ブロックサイズは、輝度サンプルを単位とする最小許容輝度符号化ブロックサイズと異なってもよい。例えば、輝度サンプルを単位する最小色度符号化ブロックサイズ(例えば、MinCbSizeC)は、以下のように計算され得る。即ち、
MinCbLog2SizeC=log2_min_chroma_coding_block_size_minus2+2 (39)
MinCbSizeC=1<<MinCbLog2SizeC (40)
一例では、ボックス(2601)によって示されるように、構文要素(例えば、log2_min_chroma_coding_block_size_minus2)を説明するために、構文要素は、表6(
図26)に示すように修正され得る。
【0298】
対応するセマンティクスは、以下のように説明され得る。即ち、log2_min_chroma_coding_block_size_minus2プラス2は、輝度サンプルを単位とする最小色度符号化ブロックサイズを指定することができる。log2_min_chroma_coding_block_size_minus2の値は、0からlog2_ctu_size_minus5+3までの範囲内(エンドポイントを含む)にすることができる。変数MinCbLog2SizeCおよびMinCbSizeCは、式39~40を使用して導出され得る。
【0299】
輝度サンプルを単位とする最小色度符号化ブロックサイズ(または輝度サンプルを単位とする最小許容色度符号化ブロックサイズ)は、輝度サンプルを単位とする最小輝度符号化ブロックサイズ(または輝度サンプルを単位とする最小許容輝度符号化ブロックサイズ)から導出され得る。一例では、MinCbLog2SizeCは、以下の式を使用して導出され得る。
【0300】
MinCbLog2SizeC=MinCbLog2SizeY (41)
いくつかの実施形態では、MinQtLog2SizeIntraCがmax(2,MinCbLog2SizeY)、またはmax(2,MinCbLog2SizeC)より小さくないという適合制約が存在している。
【0301】
図27は、本開示の一実施形態による、プロセス(2700)を概説するフローチャートを示す。プロセス(2700)は、符号化されたビデオシーケンスの画像におけるブロック(例えば、CB)を再構築するために使用され得る。プロセス(2700)は、再構築中のブロックのための予測ブロックを生成するために、ブロックの再構築において使用され得る。ブロックという用語は、予測ブロック、CB、CUとして解釈され得る。様々な実施形態において、プロセス(2700)は、例えば、端末デバイス(310)、(320)、(330)、および(340)における処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路、などの処理回路によって実行される。いくつかの実施形態では、プロセス(2700)は、ソフトウェア命令で実現されるため、処理回路がソフトウェア命令を実行する場合、処理回路はプロセス(2700)を実行する。プロセスは、(S2701)から始まって、(S2710)に進む。一例では、ブロックは、例えば、色度CBなどの色度ブロックである。
【0302】
(S2710)では、パーティション情報は、符号化されたビデオビットストリームから復号され得る。パーティション情報は、色度ブロックに対してデュアルツリーにおける色度符号化ツリー構造(例えば、treeTypeがDUAL_TREE_CHROMAである)が適用されることを示すことができる。パーティション情報は、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズ(例えば、cbSize)、および輝度サンプルを単位とする最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)を示すことができる。
【0303】
(S2720)では、輝度サンプルを単位とする色度ブロックのブロックサイズが、輝度サンプルを単位とする最小許容色度QTリーフノードサイズ以下であるか否かを決定することができる。輝度サンプルを単位とする色度ブロックのブロックサイズが、輝度サンプルを単位とする最小許容色度QTリーフノードサイズ以下であると決定された場合、プロセス(2700)は(S2730)に進む。それ以外の場合、プロセス(2700)は(S2740)に進む。
【0304】
(S2730)では、色度ブロックに対してQT分割が許可されないと決定することができる。プロセス(2700)は(S2799)に進んで、終了する。
【0305】
(S2740)では、QT分割が許可されないか否かを決定するために、1つまたは複数の他の条件をチェックすることができる。他の条件には、以下の条件、即ち、MTT深度は色度ブロックがMTTノードであることを示す条件、輝度サンプルを単位とする色度ブロックのブロックサイズを色度水平サブサンプリング係数で割った値は4以下である(またはcbSize/SubWidthC≦4)条件、および/または、予測モードタイプ(またはmodeType)はMODE_TYPE_INTRAである(それは、フレーム内予測モードおよびIBCモードが許可されることを示す)条件、が含まれる。1つまたは複数の他の条件のうちの少なくとも1つが真である場合、色度ブロックに対してQT分割が許可されないと決定され得る(例えば、allowSplitQtがFALSEに設定される)。他の条件が偽であり、色度サンプルを単位とする色度ブロックの高さが、色度サンプルを単位とする最小許容色度QTリーフノードサイズよりも大きい場合、QT分割が許可されると決定され得る。プロセス(2700)は(S2799)に進んで、終了する。
【0306】
プロセス(2700)は適切に調整され得る。プロセス(2700)におけるステップ(複数)は、修正および/または省略され得る。付加的なステップ(複数)は追加され得る。任意の適切な実装順序は使用され得る。
【0307】
図28は、本開示の一実施形態による、プロセス(2800)を概説するフローチャートを示す。プロセス(2800)は符号化されたビデオシーケンスの画像におけるブロック(例えば、CB)を再構築するために使用され得る。プロセス(2800)は、再構築中のブロックのための予測ブロックを生成するために、ブロックの再構築において使用され得る。ブロックという用語は、予測ブロック、CB、CUとして解釈され得る。様々な実施形態において、プロセス(2800)は、例えば端末デバイス(310)、(320)、(330)、および(340)における処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路、などの処理回路によって実行される。いくつかの実施形態では、プロセス(2800)は、ソフトウェア命令で実現されるため、処理回路がソフトウェア命令を実行する場合、処理回路はプロセス(2800)を実行する。プロセスは、(S2801)から始まって、(S2810)に進む。一例では、ブロックは、例えば、色度CBなどの色度ブロックである。
【0308】
(S2810)では、パーティション情報は、符号化されたビデオビットストリームから復号され得る。パーティション情報は、色度ブロックに対してデュアルツリーにおける色度符号化ツリー構造(例えば、treeTypeがDUAL_TREE_CHROMAである)が適用されることを示すことができる。パーティション情報は、さらに、輝度サンプルを単位とする色度ブロックのブロックサイズ(例えば、cbSize)、色度垂直サブサンプリング係数(例えば、SubHeightC)、および最小許容色度QTリーフノードサイズ(例えば、MinQtSizeC)を示すことができる。
【0309】
(S2820)では、上記のように、少なくとも輝度サンプルを単位とする色度ブロックのブロックサイズ、色度垂直サブサンプリング係数、および、最小許容色度QTリーフノードサイズに基づいて、色度ブロックに対してQT分割が許可されないか否かを決定することができる。
【0310】
(S2830)では、QT分割が許可されないと決定された場合、色度ブロックに対してバイナリーツリー(二分木)分割およびターナリツリー(三分木)分割のうちの少なくとも1つが許可されないか否かを決定することができる。プロセス(2800)は(S2899)に進んで、終了する。
【0311】
プロセス(2800)は適切に調整され得る。プロセス(2800)におけるステップ(複数)は、修正および/または省略され得る。付加的なステップ(複数)は追加され得る。任意の適切な実装順序は使用され得る。
【0312】
本開示における実施形態は、別々に使用されても、任意の順序で組み合わせて使用されてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実現され得る。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に格納されているプログラムを実行する。
【0313】
上記の技術は、コンピュータ読み取り可能な命令を使用するコンピュータソフトウェアとして実現され、また、物理的に1つ以上のコンピュータ読み取り可能な媒体に記憶され得る。例えば、
図29は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(2900)を示す。
【0314】
コンピュータソフトウェアは、任意の適切な機械コードまたはコンピュータ言語を使用して符号化することができ、これらの機械コードまたはコンピュータ言語は、アセンブラ、コンパイル、リンク、または同様のメカニズムによって命令を含むコードを作成することができ、これらの命令は、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接的に、または、解釈やマイクロコード実行などを通じて実行され得る。
【0315】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、オブジェクトネットワークデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
【0316】
図29に示されるコンピュータシステム(2900)のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム(2900)の例示的な実施形態に示されているコンポーネントのいずれか、または組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
【0317】
コンピュータシステム(2900)は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、触覚入力(例えば、キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、また、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接的に関連されているとは限らない、特定のメディアを捕捉するために使用されてもよい。
【0318】
ヒューマンインターフェース入力デバイスは、キーボード(2901)、マウス(2902)、トラックパッド(2903)、タッチスクリーン(2910)、データグローブ(図示せず)、ジョイスティック(2905)、マイクロホン(2906)、スキャナ(2907)、カメラ(2908)(それぞれの1つだけが図示された)のうちの1つまたは複数を含むことができる。
【0319】
コンピュータシステム(2900)は、また、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2910)、データグローブ(図示せず)、またはジョイスティック(2905)による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ(2909)、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むタッチスクリーン(2910)であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは、備えていなくてもよいし、各々は、触覚フィードバック機能を備えてもよく、あるいは、備えていなくてもよいし、これらのいくつかは、例えば、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)、などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
【0320】
コンピュータシステム(2900)は、CD/DVDを有するCD/DVD ROM/RW(2920)を含む光学媒体または類似の媒体(2921)、サムドライブ(2922)、リムーバブルハードドライブまたはソリッドステートドライブ(2923)、テープおよびフロッピー(登録商標)ディスク(図示せず)などのようなレガシー磁気媒体、セキュリティドングル(図示せず)などのような特殊なROM/ASIC/PLDベースのデバイスなどのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
【0321】
当業者は、また、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0322】
コンピュータシステム(2900)は、また、一つ以上の通信ネットワーク(2955)へのインターフェース(2954)を含むことができる。ネットワークは、例えば、無線、有線、光学的であってもよい。ネットワークは、さらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワーク、などであってもよい。ネットワークの例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク(GSM(登録商標)、3G、4G、5G、LTEなど)などのLAN、テレビケーブルまたは無線広域デジタルネットワーク(有線テレビ、衛星テレビ、地上放送テレビを含む)、車両用および産業用ネットワーク(CANBusを含む)などを含む。いくつかのネットワークは、一般的に、いくつかの汎用データポートまたは周辺バス(2949)(例えば、コンピュータシステム(2900)のUSBポート)に接続された外部ネットワークインターフェースアダプタが必要であり、他のシステムは、通常、以下に説明するように、システムバスに接続することによって、コンピュータシステム(2900)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2900)は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、Canbusから特定のCanbusデバイスへ)、あるいは、双方向、例えば、ローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上述のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェースのそれぞれで使用され得る。
【0323】
上記のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2900)のコア(2940)に接続され得る。
【0324】
コア(2940)は、1つ以上の中央処理ユニット(CPU)(2941)、グラフィック処理ユニット(GPU)(2942)、フィールドプログラマブルゲートアレイ(FPGA)(2943)の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェア・アクセラレータ(2944)、グラフィックアダプタ(2950)、などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2945)、ランダムアクセスメモリ(2946)、例えば内部の非ユーザアクセスハードディスクドライブ、SSDなどの内部大容量ストレージ(2947)などとともに、システムバス(2948)を介して接続されてもよい。いくつかのコンピュータシステムでは、付加的なCPU、GPUなどによって拡張を可能にするために、システムバス(2948)に1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス(2948)に直接的に接続されてもよく、または、周辺バス(2949)を介して接続されてもよい。一例では、タッチスクリーン(2910)は、グラフィックアダプタ(2950)に接続され得る。周辺バスのアーキテクチャは、外部コントローラインターフェース(PCI)、汎用シリアルバス(USB)などを含む。
【0325】
CPU(2941)、GPU(2942)、FPGA(2943)、およびアクセラレータ(2944)は、いくつかの命令を実行することができ、これらの命令を組み合わせて上述のコンピュータコードを構成することができる。そのコンピュータコードは、ROM(2945)またはRAM(2946)に記憶され得る。また、一時的なデータは、RAM(2946)に記憶され得る一方で、永久的なデータは、例えば内部大容量ストレージ(2947)に記憶され得る。1つ以上のCPU(2941)、GPU(2942)、大容量ストレージ(2947)、ROM(2945)、RAM(2946)、などと密接に関連することができる、キャッシュメモリを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能になる。
【0326】
コンピュータ可読媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードをその上に有することができる。メディアおよびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、または、それらは、コンピュータソフトウェア技術の当業者に周知であり、利用可能な種類のものであり得る。
【0327】
限定ではなく例として、アーキテクチャ(2900)、特にコア(2940)を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサとして機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上記のユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ(2947)またはROM(2945)などの、不揮発性コア(2940)を有する特定のストレージであってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2940)によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア(2940)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2946)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、本明細書に説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤードされているか、または別の方法で、回路(例えば、アクセラレータ(2944))に組み込まれているため、機能を提供することができ、この回路は、ソフトウェアの代わりに動作し、またはソフトウェアと一緒に動作して、本明細書に説明された特定のプロセスの特定のプロセスまたは特定の部分を実行することができる。適切な場合には、ソフトウェアへの参照は、ロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行されるソフトウェアを記憶する回路(集積回路(IC)など)を含み、実行されるロジックを具体化する回路、または、その両方を兼ね備えることができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含する。
【0328】
付録A:頭字語
JEM:joint exploration model、共同探索モデル
VVC:versatile video coding、汎用ビデオ符号化
BMS:benchmark set、ベンチマークセット
MV:Motion Vector、モーションベクトル
HEVC:High Efficiency Video Coding、高効率ビデオ符号化/復号
MPM:最も可能性の高いモード
WAIP:広角フレーム内予測
SEI:Supplementary Enhancement Information、補足強化情報
VUI:Visual 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、仮想参照デコーダ
SDR:標準ダイナミックレンジ
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 Arrays、フィールドプログラマブルゲートアレイ
SSD:solid-state drive、ソリッドステートドライブ
IC:Integrated Circuit、集積回路
CU:Coding Unit、符号化ユニット
PDPC:位置依存の予測の組み合わせ
ISP:フレーム内サブパーティション
SPS:シーケンスパラメータ設定
【0329】
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、配置、および様々な均等な置換が存在している。したがって、当業者は、本明細書では明確に示されていないかまたは説明されていないが、本開示の原則を具現しているため、本開示の精神および範囲内にある、様々なシステムおよび方法を設計することができる、ということを理解されたい。