(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-28
(45)【発行日】2023-10-06
(54)【発明の名称】ビデオ復号のための方法、装置、およびプログラム
(51)【国際特許分類】
H04N 19/593 20140101AFI20230929BHJP
H04N 19/436 20140101ALI20230929BHJP
H04N 19/105 20140101ALI20230929BHJP
H04N 19/176 20140101ALI20230929BHJP
【FI】
H04N19/593
H04N19/436
H04N19/105
H04N19/176
(21)【出願番号】P 2021531587
(86)(22)【出願日】2020-02-07
(86)【国際出願番号】 US2020017252
(87)【国際公開番号】W WO2020163741
(87)【国際公開日】2020-08-13
【審査請求日】2021-06-02
(32)【優先日】2019-02-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-02-06
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リャン・ジャオ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】鉢呂 健
(56)【参考文献】
【文献】韓国公開特許第10-2018-0107762(KR,A)
【文献】国際公開第2018/127624(WO,A1)
【文献】国際公開第2016/157924(WO,A1)
【文献】CHEN, Jianle et al.,Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 3-12 Oct. 2018, [JVET-L1002-v1],JVET-L1002 (version 2),ITU-T,2018年12月24日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1002-v2.zip>: JVET-L1002-v2.docx: pp.12-14
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
プロセッサによって、符号化されたビデオビットストリームから現在のブロックの予測情報を復号するステップと、
前記プロセッサによって、前記復号された予測情報に基づいて、前記現在のブロックの第1のサブパーティションおよび第2のサブパーティションを決定するステップであって、前記現在のブロックは、垂直または水平に分割される、ステップと、
前記プロセッサによって
、前記第2のサブパーティショ
ンの隣接領域の外にある前記現在のブロックの少なくとも隣接サンプルに基づいて、前記現在のブロックの前記第1のサブパーティションおよび前記第2のサブパーティションを再構築するステップであって、前記第1のサブパーティションのイントラ予測に使用される所定の方向の隣接サンプルは、前記第2のサブパーティションの前記所定の方向の隣接サンプルとして使用され
、前記第2のサブパーティションの前記所定の方向の隣接サンプルは、前記現在のブロックの外にある、ステップと、
を含む、デコーダにおけるビデオ復号のための方法。
【請求項2】
前記現在のブロックは、少なくとも前記第1のサブパーティションおよび前記第2のサブパーティションに垂直に分割され、前記隣接サンプルは、前記現在のブロックの左下の隣接サンプルであり、前記第1のサブパーティションおよび前記第2のサブパーティションのうちの少なくとも一方の前記隣接領域の外にある、請求項1に記載の方法。
【請求項3】
前記現在のブロックは、少なくとも前記第1のサブパーティションおよび前記第2のサブパーティションに水平に分割され、前記隣接サンプルは、前記現在のブロックの右上の隣接サンプルであり、前記第1のサブパーティションおよび前記第2のサブパーティションのうちの少なくとも一方の前記隣接領域の外にある、請求項1または2に記載の方法。
【請求項4】
前記予測情報は、正方形形状のイントラ予測のためのイントラ予測モードの第1のセットにおける第1のイントラ予測モードを示し、前記方法は、
前記プロセッサによって、前記第1のイントラ予測モードを、前記現在のブロックの前記第1のサブパーティションの形状に基づいて、非正方形形状のイントラ予測のためのイントラ予測モードの第2のセットにおける第2のイントラ予測モードに再マッピングするステップと、
前記プロセッサによって、前記第2のイントラ予測モードに従って、少なくとも前記第1のサブパーティションのサンプルを再構築するステップと、をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記第1のサブパーティションのアスペクト比が特定の範囲外の場合、イントラ予測モードの前記第2のセットにおける広角イントラ予測モードによって置き換えられるイントラ予測モードの前記第1のセットのイントラ予測モードのサブセットの数は、予め定義された数に固定される、請求項4に記載の方法。
【請求項6】
前記予め定義された数は、15および16のうちの一方である、請求項5に記載の方法。
【請求項7】
前記プロセッサによって、1/64の精度を有するルックアップテーブルに基づいて、前記第2のイントラ予測モードに関連する角度パラメータを決定するステップをさらに含む、請求項4に記載の方法。
【請求項8】
前記第1のサブパーティションのアスペクト比が16または1/16に等しい場合、前記第1のセットから前記第2のセットに置き換えられたイントラ予測モードの数は13であり、
前記第1のサブパーティションの前記アスペクト比が32または1/32に等しい場合、前記第1のセットから前記第2のセットに置き換えられたイントラ予測モードの数は14であり、
前記第1のサブパーティションの前記アスペクト比が64または1/64に等しい場合、前記第1のセットから前記第2のセットに置き換えられたイントラ予測モードの数は15である、請求項4に記載の方法。
【請求項9】
前記プロセッサによって、前記現在のブロックのサイズ情報に基づいてパーティション方向を決定するステップと、
前記プロセッサによって、前記現在のブロックを前記パーティション方向に仕切るためのいくつかのサブパーティションを示す、前記符号化されたビットストリームからの信号を復号するステップと、
をさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
請求項1から9のいずれか一項に記載の方法を実行するように構成された装置。
【請求項11】
プロセッサに、請求項1から9のいずれか一項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、2020年2月6日に出願された米国特許出願第16/783,388号「METHOD AND APPARATUS FOR VIDEO CODING」の優先権の利益を主張し、上記特許出願は、2019年2月8日に提出された米国仮出願第62/803,231号「IMPROVED INTRA PREDICTION FOR INTRA SUB-PARTITIONS CODING MODE」の優先権の利益を主張する。上記出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、一般にビデオ符号化に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を一般的に提示することを目的としている。ここで名前が挙げられている発明者の仕事は、この背景セクションに記載されている範囲で、出願時に先行技術として適格とならない可能性のある記載の側面は、本開示に対する先行技術として明示的にも暗黙的にも認められない。
【0004】
ビデオの符号化と復号は、動き補償によるインターピクチャ予測を使用して実行され得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920x1080の輝度サンプルおよび関連するクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば毎秒60枚または60 Hzの固定または可変のピクチャレート(非公式にはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは特定のビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60 Hzフレームレートで1920x1080の輝度サンプル解像度)は、1.5 Gbit/sに近い帯域幅を必要とする。このようなビデオを1時間使用するには、600Gバイトを超える記憶スペースが必要である。
【0005】
ビデオの符号化と復号の目的の1つは、圧縮によって入力ビデオ信号の冗長性を減らすことである。圧縮は、前述の帯域幅および/または記憶スペースの要件を、場合によっては2桁以上低減するのに役立つ。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用することができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる技術を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではない場合があるが、元の信号と再構築された信号との間の歪みは十分に小さいため、再構築された信号は目的の用途に役立つ。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量は、用途によって異なり、例えば、特定の消費者向けストリーミング用途のユーザは、テレビ配信用途のユーザよりも高い歪みを許容する場合がある。達成可能な圧縮比は、許容可能な/容認可能な歪みが大きいほど、圧縮比が高くなり得ることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピー符号化を含む、いくつかの広いカテゴリーからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラ符号化と呼ばれる技術を含むことができる。イントラ符号化では、サンプル値は、以前に再構築された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャはサンプルのブロックに空間的に分割される。サンプルのすべてのブロックがイントラモードで符号化されている場合、そのピクチャはイントラピクチャであり得る。イントラピクチャおよび独立したデコーダリフレッシュピクチャなどのそれらの派生物は、デコーダの状態をリセットするために使用でき、したがって、符号化されたビデオビットストリームおよびビデオセッションの最初のピクチャとして、または静止画像として使用することができる。イントラブロックのサンプルを変換することができ、変換係数はエントロピー符号化の前に量子化することができる。イントラ予測は、変換前のドメインのサンプル値を最小化する技法である。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために特定の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えば、MPEG-2世代の符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかの新しいビデオ圧縮技術は、例えば、周囲のサンプルデータおよび/または空間的に隣接し復号順序で先行するデータのブロックの符号化/復号中に取得されたメタデータから試みる技術を含む。このような技術は、以降「イントラ予測」技術と呼ばれる。少なくともいくつかの場合では、イントラ予測は再構築中の現在のピクチャからの参照データのみを使用し、参照ピクチャからは使用しないことに留意されたい。
【0009】
イントラ予測には様々な形式があり得る。そのような技術のうちの2つ以上が所与のビデオ符号化技術で使用され得る場合、使用される技術は、イントラ予測モードで符号化され得る。場合によっては、モードはサブモードおよび/またはパラメータを有することができ、それらを個別に符号化することも、モードコードワードに含めることもできる。特定のモード/サブモード/パラメータの組み合わせに使用するコードワードは、イントラ予測による符号化効率の向上に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術も影響を及ぼす。
【0010】
イントラ予測の特定のモードがH.264で導入され、H.265で改良され、ジョイント探索モデル(JEM)、多用途ビデオ符号化(VVC)、ベンチマークセット(BMS)などの新しい符号化技術でさらに改良された。予測子ブロックは、既に利用可能なサンプルに属する隣接するサンプル値を使用して形成され得る。隣接するサンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用時の方向への参照は、ビットストリームで符号化され得、またはそれ自体で予測されてもよい。
【0011】
図1を参照すると、右下に示されているのは、H.265の33の可能な予測子方向から知られている9つの予測子方向のサブセットである(35のイントラモードの33の角度モードに対応する)。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を表している。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で右上の1つまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度で、サンプル(101)の左下にある1つまたは複数のサンプルから予測されることを示す。
【0012】
引き続き
図1を参照すると、左上に4×4サンプルの正方形のブロック(104)が描かれている(破線の太字の線で示されている)。正方形のブロック(104)は、それぞれが「S」でラベル付けされた16個のサンプル、Y次元でのその位置(例えば、行インデックス)、およびX次元でのその位置(例えば、列インデックス)を含む。例えば、サンプルS21は、Y次元(上から)の2番目のサンプルであり、X次元の1番目(左から)のサンプルである。同様に、サンプルS44は、Y次元とX次元の両方でブロック(104)の4番目のサンプルである。ブロックのサイズは4x4サンプルなので、S44は右下にある。同様の番号付けスキームに従った参照サンプルがさらに示されている。参照サンプルは、ブロック(104)に対するR、そのY位置(例えば、行インデックス)およびX位置(列インデックス)でラベル付けされている。H.264とH.265の両方で、予測サンプルは再構築中のブロックに隣接しており、したがって、負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、信号の予測方向に応じて、隣接するサンプルから参照サンプル値をコピーすることで機能することができる。例えば、符号化されたビデオビットストリームに、このブロックについて、矢印(102)と一致する予測方向を示すシグナリングが含まれていると仮定する。すなわち、サンプルは、1つまたは複数の予測サンプルから右上へ、水平から45度の角度で予測される。その場合、サンプルS41、S32、S23、およびS14は、同じ参照サンプルR05から予測される。次に、サンプルS44が参照サンプルR08から予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度で均等に割り切れない場合には、複数の参照サンプルの値を、例えば補間によって組み合わせることができる。
【0015】
ビデオ符号化技術が発展するにつれて、可能な方向の数が増加した。H.264(2003年)では、9つの異なる方向を表すことができた。これはH.265(2013年)では33に増加し、JEM/VVC/BMSは、開示時点で最大65の方向をサポートすることができる。最も可能性の高い方向を特定するための実験が行われ、エントロピー符号化の特定の技術を使用して、それらの可能性のある方向を少数のビットで表し、可能性の低い方向に対する特定のペナルティを受け入れる。さらに、方向自体は、隣接する、既に復号されたブロックで使用される隣接する方向から予測できる場合がある。
【0016】
図2は、時間と共に増加する予測方向の数を説明するために、JEMによる65のイントラ予測方向を示す概略図(201)を示す。
【0017】
方向を表す符号化されたビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオ符号化技術ごとに異なる可能性があり、例えば、予測方向からイントラ予測モード、コードワード、最も可能性の高いモードを含む複雑な適応スキーム、および同様の技法への単純な直接マッピングにまで及ぶ可能性がある。しかし、すべての場合において、特定の他の方向よりもビデオコンテンツで発生する可能性が統計的に低い特定の方向が存在することができる。ビデオ圧縮の目標は冗長性の低減であるため、これらの可能性の低い方向は、適切に機能するビデオ符号化技術では、可能性の高い方向よりも多くのビットで表される。
【発明の概要】
【課題を解決するための手段】
【0018】
本開示の態様は、ビデオ符号化/復号のための方法および装置を提供する。いくつかの例では、ビデオ復号のための装置は、受信回路および処理回路を含む。処理回路は、符号化されたビデオビットストリームから現在のブロックの予測情報を復号する。いくつかの実施形態では、処理回路は、復号された予測情報に基づいて、現在のブロックの第1のサブパーティションおよび第2のサブパーティションを決定し、次に、第1のサブパーティションおよび第2のサブパーティションのうちの少なくとも一方の隣接領域の外にある現在のブロックの少なくとも隣接サンプルに基づいて、現在のブロックの第1のサブパーティションおよび第2のサブパーティションを再構築する。
【0019】
一実施形態では、現在のブロックは、少なくとも第1のサブパーティションおよび第2のサブパーティションに垂直に分割され、隣接サンプルは、現在のブロックの左下の隣接サンプルであり、第1のサブパーティションおよび第2のサブパーティションのうちの少なくとも一方の隣接領域の外にある。別の実施形態では、現在のブロックは、少なくとも第1のサブパーティションおよび第2のサブパーティションに水平に分割され、隣接サンプルは、現在のブロックの右上の隣接サンプルであり、第1のサブパーティションおよび第2のサブパーティションのうちの少なくとも一方の隣接領域の外にある。
【0020】
いくつかの実施形態では、予測情報は、正方形形状のイントラ予測のためのイントラ予測モードの第1のセットにおける第1のイントラ予測モードを示す。処理回路は、第1のイントラ予測モードを、現在のブロックの第1のサブパーティションの形状に基づいて、非正方形形状のイントラ予測のためのイントラ予測モードの第2のセットにおける第2のイントラ予測モードに再マッピングし、第2のイントラ予測モードに従って、少なくとも第1のサブパーティションのサンプルを再構築する。
【0021】
一実施形態では、第1のサブパーティションのアスペクト比が特定の範囲外の場合、イントラ予測モードの第2のセットにおける広角イントラ予測モードによって置き換えられるイントラ予測モードの第1のセットのイントラ予測モードのサブセットの数は、予め定義された数に固定される。例では、予め定義された数は15および16のうちの一方である。
【0022】
別の実施形態では、処理回路は、1/64の精度を有するルックアップテーブルに基づいて、第2のイントラ予測モードに関連する角度パラメータを決定する。
【0023】
一例では、第1のサブパーティションのアスペクト比が16または1/16に等しい場合、第1のセットから第2のセットに置き換えられたイントラ予測モードの数は13である。別の例では、第1のサブパーティションのアスペクト比が32または1/32に等しい場合、第1のセットから第2のセットに置き換えられたイントラ予測モードの数は14である。別の例では、第1のサブパーティションのアスペクト比が64または1/64に等しい場合、第1のセットから第2のセットに置き換えられたイントラ予測モードの数は15である。
【0024】
いくつかの実施形態では、処理回路は、現在のブロックのサイズ情報に基づいてパーティション方向を決定し、現在のブロックをパーティション方向に仕切るためのいくつかのサブパーティションを示す、符号化されたビットストリームからの信号を復号する。
【0025】
本開示の態様はまた、ビデオ復号のためにコンピュータによって実行されると、コンピュータにビデオ復号のための方法を実行させる命令を記憶する、非一時的なコンピュータ可読媒体を提供する。
【0026】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0027】
【
図1】イントラ予測モードの例示的なサブセットの概略図である。
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図6】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態によるエンコーダのブロック図である。
【
図8】別の実施形態によるデコーダのブロック図である。
【
図9】一実施形態によるパーティション構造の例を示す図である。
【
図10A】本開示のいくつかの実施形態によるパーティションの例を示す図である。
【
図10B】本開示のいくつかの実施形態によるパーティションの例を示す図である。
【
図11】いくつかの例における例示的なイントラ予測方向およびイントラ予測モードを示す図である。
【
図12】いくつかの例における例示的なイントラ予測方向およびイントラ予測モードを示す図である。
【
図13】イントラ予測モードと関連する角度パラメータとの間の対応関係の表を示す図である。
【
図14】ブロックのアスペクト比に基づいて広角方向モードによって置き換えられるイントラ予測モードの表を示す図である。
【
図15】サブパーティションの数をブロックサイズに関連付ける表を示す図である。
【
図16】ブロックのサブパーティションの例を示す図である。
【
図17】ブロックのサブパーティションの別の例を示す図である。
【
図18】イントラ予測モードを広角モードに置き換えるための例として使用される表を示す図である。
【
図19】イントラ予測モードを広角モードに置き換えるための別の例として使用される表を示す図である。
【
図20】イントラサブパーティション(ISP)モードでの参照サンプルの例を示す図である。
【
図21】ISPモードでの参照サンプルの例を示す図である。
【
図22】平面モード予測のためのISPモードでの参照サンプルの例を示す図である。
【
図23】平面イントラ予測のためのISPモードでの参照サンプルの例を示す図である。
【
図24】本開示のいくつかの実施形態によるプロセス例を概説するフローチャートを示す図である。
【
図25】本開示のいくつかの実施形態によるプロセス例を概説するフローチャートを示す図である。
【
図26】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0028】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示している。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末装置(310)および(320)の第1のペアを含む。
図3の例では、端末装置(310)および(320)の第1のペアは、データの一方向送信を実行する。例えば、端末装置(310)は、ネットワーク(350)を介して他の端末装置(320)に送信するために、ビデオデータ(例えば、端末装置(310)によってキャプチャされたビデオピクチャのストリーム)を符号化することができる。符号化されたビデオデータは、1つまたは複数の符号化されたビデオビットストリームの形態で送信することができる。端末装置(320)は、ネットワーク(350)から符号化されたビデオデータを受信し、符号化されたビデオデータを復号してビデオピクチャを回復し、回復されたビデオデータに従ってビデオピクチャを表示することができる。一方向データ送信は、メディアサービングアプリケーションなどで一般的であり得る。
【0029】
別の例では、通信システム(300)は、例えばビデオ会議中に発生する可能性のある符号化されたビデオデータの双方向送信を実行する端末装置(330)および(340)の第2のペアを含む。データの双方向送信では、一例では、端末装置(330)および(340)の各端末装置は、ネットワーク(350)を介して端末装置(330)および(340)の他の端末装置に送信するためのビデオデータ(例えば、端末装置によってキャプチャされるビデオピクチャのストリーム)を符号化することができる。端末装置(330)および(340)の各端末装置はまた、端末装置(330)および(340)の他の端末装置によって送信された符号化されたビデオデータを受信することができ、符号化されたビデオデータを復号してビデオピクチャを回復することができ、回復されたビデオデータに従って、アクセス可能なディスプレイ装置でビデオピクチャを表示することができる。
【0030】
図3の例では、端末装置(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理は、そのように限定されない場合がある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器を用いた用途を見いだす。ネットワーク(350)は、例えば有線(配線)および/または無線通信ネットワークを含む、端末装置(310)、(320)、(330)および(340)間で符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0031】
図4は、開示された主題のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの保存を含む、他のビデオ対応アプリケーションに等しく適用することができる。
【0032】
ストリーミングシステムは、ビデオソース(401)、例えばデジタルカメラを含むことができるキャプチャサブシステム(413)を含むことができ、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成する。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。符号化されたビデオデータ(404)(または符号化されたビデオビットストリーム)と比較して高いデータボリュームを強調するために太い線で描かれているビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理することができる。ビデオエンコーダ(403)は、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができ、以下により詳細に説明するように、開示された主題の態様を可能にするかまたは実装する。ビデオピクチャのストリーム(402)と比較してより低いデータボリュームを強調するために細い線として描かれる符号化されたビデオデータ(404)(または符号化されたビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶することができる。
図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化されたビデオデータ(404)のコピー(407)および(409)を検索することができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化されたビデオデータの着信コピー(407)を復号し、ディスプレイ(412)(例えば、ディスプレイ画面)または他のレンダリングデバイス(図示せず)上でレンダリングできるビデオピクチャ(411)の発信ストリームを作成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮標準規格に従って符号化することができる。これらの標準規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオ符号化標準規格は、非公
式に多用途ビデオ符号化(VVC)として知られている。開示された主題は、VVCの文脈で使用され得る。
【0033】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0034】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0035】
受信器(531)は、ビデオデコーダ(510)によって復号される1つまたは複数の符号化されたビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つの符号化されたビデオシーケンスであり、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル(501)から受信することができ、チャネル(501)は、符号化されたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。受信器(531)は、他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリームと共に符号化されたビデオデータを受信することができ、これらは、それぞれの使用エンティティ(図示せず)に転送され得る。受信器(531)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)は、受信器(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に結合され得る。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のものでは、それはビデオデコーダ(510)の外側にあってもよい(図示せず)。さらに他のものでは、ビデオデコーダ(510)の外部には、例えばネットワークジッタに対抗するためのバッファメモリ(図示せず)があり、さらにビデオデコーダ(510)の内部には、例えばプレイアウトのタイミングに対応するための別のバッファメモリ(515)があってもよい。受信器(531)が十分な帯域幅および制御可能性のストア/フォワードデバイスから、または等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は必要ないか、または小さくてもよい。インターネットなどのベストエフォート型のパケットネットワークで使用するためには、バッファメモリ(515)が必要になることがあり、比較的大きくすることができ、有利には適応的なサイズにすることができ、少なくとも部分的にビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に実装されてもよい。
【0036】
ビデオデコーダ(510)は、符号化されたビデオシーケンスからシンボル(521)を再構築するためのパーサ(520)を含むことができる。それらのシンボルのカテゴリーは、ビデオデコーダ(510)の動作を管理するために使用される情報、および潜在的に、
図5に示されていたように、電子デバイス(530)の不可欠な部分ではないが、電子デバイス(530)に結合することができるレンダリングデバイス(512)(例えば、ディスプレイ画面)などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(520)は、受信された符号化されたビデオシーケンスを構文解析/エントロピー復号することができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または標準規格に従うことができ、可変長符号化、ハフマン符号化、文脈感度の有無にかかわらず算術符号化などを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、変換係数、量子化パラメータ値、動きベクトルなどの符号化されたビデオシーケンス情報から抽出することができる。
【0037】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/構文解析操作を実行することができる。
【0038】
シンボル(521)の再構築は、符号化されたビデオピクチャまたはその一部のタイプ(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)、および他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサ(520)によって符号化されたビデオシーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために図示していない。
【0039】
既に述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明するように、概念的にいくつかの機能ユニットに細分することができる。商業的制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分化が適切である。
【0040】
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(520)からシンボル(521)として受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0041】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化されたブロックに関係することができる。すなわち、以前に再構築されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構築された部分からの予測情報を使用することができるブロックである。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構築された現在のピクチャおよび/または完全に再構築された現在のピクチャをバッファする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0042】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的に動き補償されたブロックに関係することができる。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号または残差情報と呼ばれる)に追加され、出力サンプル情報を生成することができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Y、および参照ピクチャ成分を有することができるシンボル(521)の形で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、および動きベクトル予測メカニズムなどを含むことができる。
【0043】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からシンボル(521)としてループフィルタユニット(556)に利用可能となるループ内フィルタ技術を含むことができるが、しかし、符号化されたピクチャまたは符号化されたビデオシーケンスの前の(復号順で)部分の復号中に取得されたメタ情報、および以前に再構築およびループフィルタリングされたサンプル値に応答することもできる。
【0044】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力され得るだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶され得るサンプルストリームであってもよい。
【0045】
特定の符号化されたピクチャは、完全に再構築されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在のピクチャに対応する符号化ピクチャが完全に再構築され、その符号化ピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となり、次の符号化ピクチャの再構築を開始する前に、新しい現在のピクチャバッファを再割り当てすることができる。
【0046】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの標準規格における所定のビデオ圧縮技術に従って復号操作を実行することができる。符号化されたビデオシーケンスは、符号化されたビデオシーケンスがビデオ圧縮技術または標準規格の構文とビデオ圧縮技術または標準規格で文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または標準規格によって指定された構文に準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または標準規格で使用可能なすべてのツールから、そのプロファイルで使用できる唯一のツールとして特定のツールを選択することができる。また、コンプライアンスのために必要なのは、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または標準規格のレベルによって定義された範囲内にあることである。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプル数で測定)、最大参照ピクチャサイズなどが制限される。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様と、符号化されたビデオシーケンスで通知されるHRDバッファ管理のメタデータによってさらに制限され得る。
【0047】
一実施形態では、受信器(531)は、符号化されたビデオと共に追加の(冗長な)データを受信することができる。追加のデータは、符号化されたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号するため、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号ノイズ比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式をとることができる。
【0048】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれている。電子デバイス(620)は、送信器(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0049】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるビデオ画像をキャプチャすることができるビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0050】
ビデオソース(601)は、ビデオエンコーダ(603)によって符号化されるソースビデオシーケンスを、任意の適切なビット深さ(例えば:8ビット、10ビット、12ビット、...)、任意の色空間(例えば:BT.601 Y CrCB、RGB、...)、および任意の適切なサンプリング構造(例えば:Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形で提供することができる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶する記憶装置であってもよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供することができる。ピクチャ自体は、ピクセルの空間配列として編成することができ、各ピクセルは、使用時のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明はサンプルに焦点を当てている。
【0051】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、またはアプリケーションによって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャを符号化して、符号化されたビデオシーケンス(643)に圧縮することができる。適切な符号化速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確にするために、結合は図示していない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値など)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、および最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関係する他の適切な機能を有するように構成することができる。
【0052】
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループで動作するように構成される。過剰に単純化した説明として、一例では、符号化ループは、ソースコーダ(630)(例えば、符号化される入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを作成する責任を負う)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)と、を含むことができる。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構築してサンプルデータを作成する(シンボルと符号化されたビデオビットストリームとの間の圧縮は、開示された主題で考慮されるビデオ圧縮技術において無損失であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果をもたらすため、参照ピクチャメモリ(634)のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネルエラーのために同期性を維持できない場合は結果として生じるドリフト)のこの基本原理は、一部の関連技術でも使用されている。
【0053】
「ローカル」デコーダ(633)の動作は、
図5に関連して上で既に詳細に説明されているビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかし、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)による符号化されたビデオシーケンスへのシンボルの符号化/復号は無損失である可能性があるため、バッファメモリ(515)およびパーサ(520)を含む、ビデオデコーダ(510)のエントロピー復号部分は、ローカルデコーダ(633)に完全に実装されていなくてもよい。
【0054】
この時点で行うことができる観察は、デコーダに存在する構文解析/エントロピー復号以外のデコーダ技術も、対応するエンコーダに実質的に同一の機能形式で必ず存在する必要があるということである。このため、開示された主題はデコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0055】
動作中、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差を符号化する。
【0056】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号することができる。符号化エンジン(632)の動作は、有利には、損失プロセスであってもよい。符号化されたビデオデータがビデオデコーダ(
図6には示さず)で復号され得る場合、再構築されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に記憶することができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される再構築された参照ピクチャとして共通の内容を有する再構築された参照ピクチャのコピーをローカルに記憶することができる(送信エラーがない)。
【0057】
予測器(635)は、符号化エンジン(632)の予測検索を実行することができる。すなわち、符号化される新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測基準として役立ち得る(候補となる参照ピクセルブロックとしての)サンプルデータ、または参照ピクチャの動きベクトル、ブロック形状などの特定のメタデータについて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックとピクセルブロックごとに動作することができる。場合によっては、予測器(635)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0058】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)の符号化操作を管理することができる。
【0059】
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピー符号化を受けることができる。エントロピーコーダ(645)は、ハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0060】
送信器(640)は、エントロピーコーダ(645)によって作成された符号化されたビデオシーケンスをバッファリングして、符号化されたビデオデータを記憶するであろう記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備をすることができる。送信器(640)は、ビデオコーダ(603)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0061】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。符号化中に、コントローラ(650)は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼすことができる。例えば、ピクチャは多くの場合、次のピクチャタイプのいずれかとして割り当てられる。
【0062】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに符号化および復号され得るものであり得る。一部のビデオコーデックでは、例えば独立デコーダリフレッシュ(“IDR”)ピクチャなど、様々なタイプのイントラピクチャを考慮している。当業者は、Iピクチャのそれらの変形およびそれらのそれぞれの用途および特徴を知っている。
【0063】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して符号化および復号され得るものであり得る。
【0064】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して符号化および復号され得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構築のために3つ以上の参照ピクチャと関連するメタデータを使用することができる。
【0065】
ソースピクチャは、通常、空間的に複数のサンプルブロック(例えば、それぞれ4x4、8x8、4x8、または16x16サンプルのブロック)に分割され、ブロックごとに符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるように、他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化され得るか、またはそれらは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化され得る(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、空間予測を介して、または以前に符号化された1つの参照ピクチャを参照する時間予測を介して、予測的に符号化され得る。Bピクチャのブロックは、空間予測を介して、または以前に符号化された1つまたは2つの参照ピクチャを参照する時間予測を介して、予測的に符号化され得る。
【0066】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオ符号化技術または標準規格に従って符号化操作を実行することができる。その操作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化操作を含む、様々な圧縮操作を実行することができる。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術または標準規格によって指定された構文に準拠することができる。
【0067】
一実施形態では、送信器(640)は、符号化されたビデオと共に追加のデータを送信することができる。ソースコーダ(630)は、符号化されたビデオシーケンスの一部としてそのようなデータを含むことができる。追加データは、時間的/空間的/SNR拡張層、冗長なピクチャおよびスライスなどの他の形式の冗長なデータ、SEIメッセージ、VUIパラメータセットフラグメントなどを含むことができる。
【0068】
ビデオは、時間的シーケンスで複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(多くの場合、イントラ予測と略される)は、特定のピクチャの空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的またはその他の)相関を利用する。一例では、現在のピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに分割される。現在のピクチャのブロックが、以前に符号化され、まだバッファリングされているビデオの参照ピクチャの参照ブロックに類似している場合、現在のピクチャのブロックは、動きベクトルと呼ばれるベクトルによって符号化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0069】
いくつかの実施形態では、双方向予測技術をインターピクチャ予測に使用することができる。双方向予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャは、両方ともビデオ内の現在のピクチャよりも復号順序が先である(しかし、表示順ではそれぞれ過去および将来であり得る)が使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによって符号化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測することができる。
【0070】
さらに、マージモード技術をインターピクチャ予測に使用して、符号化効率を向上させることができる。
【0071】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロックの単位で実行される。例えば、HEVC標準規格によれば、一連のビデオピクチャのピクチャは圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャのCTUは同じサイズ(64x64ピクセル、32x32ピクセル、16x16ピクセルなど)になる。一般に、CTUには3つの符号化ツリーブロック(CTB)が含まれる。これらは1つの輝度CTBおよび2つの彩度CTBである。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的にクアッドツリー分割され得る。例えば、64x64ピクセルのCTUは、64x64ピクセルの1つのCU、32x32ピクセルの4つのCU、または16x16ピクセルの16のCUに分割され得る。一例では、各CUが分析されて、CUの予測タイプ(例えば、インター予測タイプまたはイントラ予測タイプ)が決定される。CUは、時間的および/または空間的な予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUには、輝度予測ブロック(PB)と2つの彩度PBが含まれる。一実施形態では、コーディング(符号化/復号)における予測操作は、予測ブロックの単位で実行される。予測ブロックの例として輝度予測ブロックを使用すると、予測ブロックは、8x8ピクセル、16x16ピクセル、8x16ピクセル、16x8ピクセルなどのピクセルについての値(例えば、輝度値)の行列を含む。
【0072】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)を示す。ビデオエンコーダ(703)は、一連のビデオピクチャ内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化されたビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用される。
【0073】
HEVCの例では、ビデオエンコーダ(703)は、8x8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双方向予測モードを使用して最適に符号化されるかどうかを決定する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックを符号化されたピクチャに符号化することができ、処理ブロックがインターモードまたは双方向予測モードで符号化される場合、ビデオエンコーダ(703)は、インター予測または双方向予測技術をそれぞれ使用して、処理ブロックを符号化されたピクチャに符号化することができる。特定のビデオ符号化技術では、マージモードは、予測子の外側の符号化された動きベクトル成分の利点なしに、動きベクトルが1つまたは複数の動きベクトル予測子から導出されるインターピクチャ予測サブモードである。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在する場合がある。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0074】
図7の例では、ビデオエンコーダ(703)は、
図7に示すように一緒に結合された、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0075】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、前のピクチャと後のピクチャのブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、エンコードされたビデオ情報に基づいて復号される復号された参照ピクチャである。
【0076】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じピクチャに既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラ符号化技法によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、同じピクチャ内のイントラ予測情報および参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0077】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)によって使用するためのイントラモード結果を選択し、エントロピーエンコーダ(725)を制御して、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含め、また、モードがインターモードの場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するインター予測結果を選択し、エントロピーエンコーダ(725)を制御して、インター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0078】
残差計算器(723)は、受信したブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との間の差(残差データまたは残差情報)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次に、変換係数は、量子化された変換係数を取得するために量子化処理の対象となる。様々な実施形態では、ビデオエンコーダ(703)はまた、残差デコーダ(728)を含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ、いくつかの例では参照ピクチャとして使用され得る。
【0079】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC標準規格などの適切な標準規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(725)は、一般的な制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、およびビットストリーム内の他の適切な情報を含むように構成される。開示された主題によれば、インターモードまたは双方向予測モードのいずれかのマージサブモードでブロックを符号化する場合、残差情報がないことに留意されたい。
【0080】
図8は、本開示の別の実施形態によるビデオデコーダ(810)を示す。ビデオデコーダ(810)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号して再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例のビデオデコーダ(410)の代わりに使用される。
【0081】
図8の例では、ビデオデコーダ(810)は、
図8に示すように一緒に結合された、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)、およびイントラデコーダ(872)を含む。
【0082】
エントロピーデコーダ(871)は、符号化されたピクチャから、符号化されたピクチャを構成する構文要素を表す特定のシンボルを再構築するように構成することができる。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双方向予測モード、後の2つはマージサブモードまたは別のサブモードなど)、イントラデコーダ(872)またはインターデコーダ(880)によってそれぞれ予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報など)、例えば、量子化された変換係数などの形式の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双方向予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化の対象とすることができ、残差デコーダ(873)に提供される。
【0083】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0084】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0085】
残差デコーダ(873)は、逆量子化を実行して非量子化変換係数を抽出し、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、特定の制御情報(量子化パラメータ(QP)を含むため)を必要とし得、その情報は、エントロピーデコーダ(871)によって提供され得る(これは、少量の制御情報のみであり得るため、データパスは示されていない)。
【0086】
再構築モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と、(場合によってはインター予測モジュールまたはイントラ予測モジュールによって出力された)予測結果とを組み合わせて、再構築されたブロックを形成するように構成されており、このブロックは、再構築されたピクチャの一部であってもよく、ひいては再構築されたビデオの一部であってもよい。視覚的品質を改善するために、非ブロック化操作などの他の適切な操作を実行できることに留意されたい。
【0087】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装できることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0088】
本開示の態様は、イントラサブパーティション(ISP)のためのイントラ予測改良技術を提供する。
【0089】
一般に、ピクチャは、符号化および復号のための複数のブロックに仕切られる。いくつかの例では、HEVC標準規格によれば、ピクチャを複数の符号化ツリーユニット(CTU)に分割することができる。さらに、CTUは、ピクチャの様々な局所特性に適応するために、符号化ツリーとして示されるクワッドツリー(QT)構造を使用することによって、符号化ユニット(CU)に仕切られ得る。各CUは、クワッドツリー構造のリーフに対応する。インターピクチャ予測(時間予測またはインター予測タイプとも呼ばれる)、イントラピクチャ予測(空間予測またはイントラ予測タイプとも呼ばれる)などを使用してピクチャ領域を符号化するかどうかの決定は、CUレベルで成される。各CUは、CUレベルにルートを有するPU分割タイプに従って、さらに1つ、2つ、または4つの予測ユニット(PU)に分割され得る。各PUについて、同じ予測プロセスが適用され、関連する予測情報がPUベースでデコーダに送信される。PU分割タイプに基づく予測プロセスを適用して予測残差データ(残差情報とも呼ばれる)を取得した後に、CUは、CUレベルにルートを有する別のQT構造に従って変換ユニット(TU)に仕切られ得る。HEVC標準規格によると、いくつかの例では、パーティションの概念にはCU、PU、およびTUが含まれる。いくつかの例では、CU、CUに関連するPU、およびCUに関連するTUは、異なるブロックサイズを有してもよい。さらに、CUまたはTUはQT構造で正方形形状を有する必要があるが、PUは正方形形状または長方形形状を有し得る。
【0090】
いくつかの実施態様では、符号化/復号がブロックに対して実行されることに留意されたい。例えば、符号化ツリーブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)、および変換ブロック(TB)を使用して、例えば、それぞれ対応するCTU、CU、PU、およびTUに関連する1つの色成分の2Dサンプル配列を指定することができる。例えば、CTUは1つの輝度CTBと2つの彩度CTBを含むことができ、CUは1つの輝度CBと2つの彩度CBを含むことができる。
【0091】
圧縮能力においてHEVCを凌駕するために、HEVCを超える次世代ビデオ符号化標準規格、すなわち、いわゆる多用途ビデオ符号化(VVC)のために、他の多くのパーティション構造が提案されている。これらの提案されたパーティション構造のうちの1つは、クワッドツリー(QT)とバイナリツリー(BT)の両方を使用するQTBT構造と呼ばれる。HEVCのQT構造と比較して、VVCのQTBT構造は、CU、PU、およびTUの概念間の分離を取り除く。言い換えると、CU、CUに関連付けられているPU、およびCUに関連付けられているTUは、VVCのQTBT構造で同じブロックサイズを有することができる。さらに、QTBT構造は、CUパーティション形状のより多くの柔軟性をサポートする。CUは、QTBT構造で正方形形状または長方形形状を有することができる。
【0092】
いくつかの例では、QTBTパーティショニングスキームは、CTUサイズ、MinQTSize、MaxBTsize、MaxBTDepth、MinBTSizeなどの特定のパラメータを定義する。CTUサイズは、HEVCと同じ概念である、クワッドツリーのルートノードサイズである。MinQTSizeは、許容される最小のクワッドツリーリーフノードサイズである。MaxBTSizeは、許容される最大のバイナリツリールートノードサイズである。MaxBTDepthは、許容される最大のバイナリツリー深さである。MinBTSizeは、許容される最小のバイナリツリーリーフノードサイズである。
【0093】
QTBTパーティショニング構造の例では、CTUサイズは、2つの対応する64×64ブロックの彩度サンプルを有する128×128輝度サンプルとして設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、MinBTSize(幅と高さの両方)は4×4として設定され、MaxBTDepthは4として設定される。クワッドツリーパーティショニングは最初にCTUに適用され、クワッドツリーリーフノードが生成される。クワッドツリーリーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有することができる。リーフクワッドツリーノードが128×128の場合には、サイズがMaxBTSize(すなわち、64×64)を超えるため、バイナリツリーによってさらに分割されることはない。それ以外の場合、リーフクワッドツリーノードはバイナリツリーによってさらに仕切られ得る。したがって、クワッドツリーリーフノードはバイナリツリーのルートノードでもあり、バイナリツリーの深さは0である。バイナリツリーの深さがMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されない。バイナリツリーノードの幅がMinBTSizeに等しい場合(すなわち、4)、それ以上の水平分割は考慮されない。同様に、バイナリツリーノードの高さがMinBTSizeに等しい場合、それ以上の垂直分割は考慮されない。バイナリツリーのリーフノードは、さらに仕切られることなく、予測および変換処理によってさらに処理される。JEMでは、最大CTUサイズは256×256輝度サンプルである。
【0094】
図9は、QTBT構造(900)を使用して仕切られたブロック(901)の例を示している。
図9の例では、QT分割は実線で表され、BT分割は点線で表されている。具体的には、QTBT構造(900)は、ブロック(901)内のパーティショニング中に様々なブロックに対応するノードを含む。QTBT構造(900)内のノードが分岐を有する場合、そのノードは非リーフノードと呼ばれ、QTBT構造(900)内のノードが分岐を有さない場合、そのノードはリーフノードと呼ばれる。非リーフノードはさらに分割された中間ブロックに対応し、リーフノードはさらに分割されない最終ブロックに対応する。非リーフノードに4つの分岐がある場合、QT分割は、非リーフノードに対応するブロックを同じサイズの4つの小さなブロックに分割する。非リーフノードに2つの分岐がある場合、BTスプリットは、非リーフノードに対応するブロックを同じサイズの2つの小さなブロックに分割する。BTスプリットには、対称水平スプリットと対称垂直スプリットの2つの分割タイプがある。いくつかの例では、リーフ以外のBT分割ノードごとに、フラグが通知され(例えば、符号化されたビデオビットストリームで)、分割タイプを示す(例えば、対称水平分割の場合は「0」、または対称垂直分割の場合は「1」であり、同じサイズの2つの小さな長方形のブロックを生成する)。QTBT構造(900)のQT分割ノードの場合、QT分割は、QT分割ノードに対応するブロックを水平方向と垂直方向の両方に分割して、同じサイズの4つの小さなブロックを生成するため、QT分割のための分割タイプを指定する必要はない。
【0095】
具体的には、
図9の例では、QTBT構造(900)は、ブロック(901)に対応するルートノード(950)を含む。ルートノード(950)は、それぞれノード(961)~(964)を生成する4つの分岐を有し、したがって、ブロック(901)は、等しいサイズの4つのブロック(911)~(914)に分割されたQTによって分割される。ノード(961)~(964)は、それぞれ4つのブロック(911)~(914)に対応する。
【0096】
さらに、ノード(961)は、ノード(971)および(972)を生成する2つの分岐を有し、ノード(962)は、ノード(973)および(974)を生成する2つの分岐を有し、ノード(963)は、ノード(975)~(978)を生成する4つの分岐を有する。ノード(964)は分岐を有さず、したがってリーフノードであることに留意されたい。また、ノード(962)は、分割タイプが「1」の非リーフBT分割ノードであり、ノード(963)は、分割タイプが「0」の非リーフBT分割ノードであることに留意されたい。したがって、ブロック(911)は、垂直方向に2つのブロック(921)~(922)に分割されたBTによって分割され、ブロック(912)は、水平方向に2つのブロック(923)~(924)に分割されたBTによって分割され、ブロック(913)は、4つのブロック(925)~(928)に分割されたQTによって分割される。
【0097】
同様に、ノード(971)は、ノード(981)~(982)を生成する2つの分岐を有し、ノード(975)は、垂直分割を示す分割タイプフラグ(例えば、分割タイプ「1」)を有するノード(983~(984)を生成する2つの分岐を有する。同様に、ノード(978)は、ノード(985)~(986)を生成する2つの分岐を有し、水平分割を示す分割タイプフラグ(例えば、分割タイプ「0」)を有する。ノード(984)は、ノード(991)~(992)を生成する2つの分岐を有し、水平分割を示す分割タイプフラグ(例えば、分割タイプ「0」)を有する。したがって、対応するブロック(921)、(928)、および(925)の右半分は、
図9に示すように、より小さなブロックに分割される。次に、ノード(981)、(982)、(972)、(973)、(974)、(983)、(991)、(992)、(976)、(977)、(985)、および(986)は、分岐を有さないノード(964)に似ており、したがってリーフノードである。
【0098】
図9の例では、リーフノード(964)、(981)、(982)、(972)、(973)、(974)、(983)、(991)、(992)、(976)、(977)、(985)、および(986)はそれ以上分割されず、予測および変換処理に使用されるCUである。VVCなどの一部の例では、CUはそれぞれPUおよびTUとして使用される。
【0099】
さらに、QTBTスキームは、輝度と彩度が別々のQTBT構造を有する柔軟性をサポートする。いくつかの例では、PスライスとBスライスの場合、1つのCTU内の輝度CTBと彩度CTBが同じQTBT構造を共有する。しかし、Iスライスの場合、輝度CTBはQTBT構造によってCUに仕切られ、彩度CTBは別のQTBT構造によって彩度CUに仕切られる。これは、いくつかの例では、IスライスのCUが輝度成分の符号化ブロックまたは2つの彩度成分の符号化ブロックで構成され、PまたはBスライスのCUが3つの色成分すべての符号化ブロックで構成されることを意味する。
【0100】
HEVCなどの一部の例では、動き補償のメモリアクセスを減らすために、小さなブロックのインター予測が制限されており、そのため、4×8および8×4ブロックでは双方向予測がサポートされず、4×4ブロックではインター予測がサポートされない。JEM-7.0に実装されているQTBTなどのいくつかの例では、これらの制限が取り除かれている。
【0101】
上記のQTBT構造に加えて、マルチタイプツリー(MTT)構造と呼ばれる別の分割構造もVVCで使用され、QTBT構造よりも柔軟であり得る。MTT構造では、
図10Aおよび
図10Bに示すように、クワッドツリーおよびバイナリツリー以外に、水平および垂直の中央側トリプルツリー(TT)分割が導入される。トリプルツリー分割は、トリプルツリーパーティショニング、三分木(TT)分割、または三分分割とも呼ばれる。
図10Aは、垂直方向の中央側のTT分割の例を示している。例えば、ブロック(1010)は、垂直方向に3つのサブブロック(1011)~(1013)に分割され、サブブロック(1012)はブロック(1010)の中央に位置する。
図10Bは、水平方向の中央側のTT分割の例を示している。例えば、ブロック(1020)は、水平に3つのサブブロック(1021)~(1023)に分割され、サブブロック(1022)は、ブロック(1020)の中央に位置する。BT分割と同様に、TT分割では、例えばエンコーダ側からデコーダ側へのビデオビットストリームでフラグを通知して、分割タイプ(すなわち、対称水平分割または対称垂直分割)を示すことができる。一例では、「0」は対称水平分割を示し、「1」は対称垂直分割を示す。
【0102】
本開示の一態様によれば、トリプルツリー分割は、クワッドツリーおよびバイナリツリー分割を補完することができる。例えば、トリプルツリー分割はブロックの中心にあるオブジェクトをキャプチャできるが、クワッドツリーとバイナリツリーは常にブロックの中心に沿って分割される。さらに、提案されたトリプルツリーのパーティションの幅と高さは2の累乗であるため、追加の変換は必要ない。
【0103】
理論的には、ツリーのトラバースの複雑さはTDであり、ここで、Tは分割タイプの数を示し、Dはツリーの深さを示す。したがって、いくつかの例では、複雑さを軽減するために2レベルのツリーが使用される。
【0104】
図11は、HEVCで使用される例示的なイントラ予測方向およびイントラ予測モードの図を示す。HEVCには、合計35のイントラ予測モード(モード0からモード34)がある。モード0およびモード1は無指向性モードであり、その中でも、モード0は平面モードであり、モード1はDCモードである。DCモードは、すべてのサンプルの平均を使用する。平面モードは、2つの線形予測の平均を使用する。モード2~34は指向性モードであり、その中でも、モード10は水平モード、モード26は垂直モード、モード2、モード18およびモード34は対角モードである。いくつかの例では、イントラ予測モードは、3つの最も可能性の高いモード(MPM)および残りの32のモードによって通知される。
【0105】
図12は、いくつかの例(例えば、VVC)における例示的なイントラ予測方向およびイントラ予測モードを示す。合計95のイントラ予測モード(モード-14からモード80)があり、その中でモード18は水平モード、モード50は垂直モード、モード2、モード34およびモード66は対角モードである。モード-1~-14およびモード67~80は、広角イントラ予測(WAIP)モードと呼ばれる(広角モード、広角方向モードなどとも呼ばれる)。
【0106】
図13は、イントラ予測モードと関連する角度パラメータとの間の対応関係の表1を示している。表1で、predModeIntraはイントラ予測モードを示し、intraPredAngleは対応するイントラ予測モードのイントラ予測角度パラメータ(例えば、角度の接線値に関連する、イントラ予測角度に関連付けられた変位パラメータ)を示す。
図13の例では、イントラ予測角度パラメータの精度は1/32である。いくつかの例では、イントラ予測モードが表1の対応する値Xを有する場合、実際のintraPredAngleパラメータはX/32である。例えば、モード66の場合、表1の対応する値は32であり、実際のintraPredAngleパラメータは32/32である。
【0107】
従来の角度イントラ予測方向は、時計回り方向に45°から-135°まで定義されていることに留意されたい。いくつかの実施形態では、いくつかの従来の角度イントラ予測モードは、非正方形ブロックの広角イントラ予測モードに適応的に置き換えられる。置き換えられたモードは、元のモードインデックスを使用して通知され、このインデックスは、構文解析後に広角モードのインデックスに再マップされる。イントラ予測モードの総数は変更されず、すなわち67であり、イントラモードの符号化方法は変更されない。
【0108】
例では、予測方向をサポートするために、合計幅が2W+1の上部参照を生成し、合計高さが2H+1の左側の参照を生成することができ、ここで、現在のブロックの幅はWであり、現在のブロックの高さはHである。
【0109】
いくつかの例では、広角方向モードの置き換えられるモードの数は、ブロックのアスペクト比に依存する。
【0110】
図14は、ブロックのアスペクト比に基づいて広角方向モードによって置き換えられたイントラ予測モードの表2を示している。例では、表2の角度モードang_modeでは、W/H>1の場合、角度モードang_modeは(65+ang_mode)にマッピングされ、W/H<1の場合、角度モードang_modeは(ang_mode-67)にマッピングされる。
【0111】
本開示の一態様によれば、イントラサブパーティション(ISP)符号化モードを使用することができる。ISP符号化モードでは、輝度イントラ予測ブロックは、ブロックサイズに応じて、垂直方向または水平方向に2つまたは4つのサブパーティションに分割される。
【0112】
図15は、サブパーティションの数とブロックサイズを関連付ける表3を示している。例えば、ブロックサイズが4x4の場合、ISP符号化モードではブロックに対してパーティションは実行されない。ブロックサイズが4x8または8x4の場合、ブロックはISP符号化モードで2つのサブパーティションに仕切られる。他のすべてのブロックサイズの場合、ブロックは4つのサブパーティションに仕切られる。
【0113】
図16は、サイズ4x8または8x4を有するブロックのサブパーティションの例を示している。水平パーティションの例では、ブロックは、それぞれ幅×(高さ/2)のサイズを有する2つの等しいサブパーティションに仕切られる。垂直パーティションの例では、ブロックは、それぞれが(幅/2)×高さのサイズを有する2つの等しいサブパーティションに仕切られる。
【0114】
図17は、4x8、8x4および4x4以外のサイズを有するブロックのサブパーティションの別の例を示している。水平パーティションの例では、ブロックは、それぞれ幅×(高さ/4)のサイズを有する4つの等しいサブパーティションに仕切られる。垂直パーティションの例では、ブロックは、それぞれ(幅/4)×高さのサイズを有する4つの等しいサブパーティションに仕切られる。一例では、すべてのサブパーティションが少なくとも16個のサンプルを有するという条件を満たす。彩度成分の場合、ISPは適用されない。
【0115】
いくつかの例では、各サブパーティションはTUと見なされる。例えば、サブパーティションごとに、デコーダはエンコーダからデコーダに送信される係数をエントロピー復号することができ、次に、デコーダは係数を逆量子化および逆変換して、サブパーティションの残差を生成する。さらに、サブパーティションがデコーダによってイントラ予測される場合、デコーダは、サブパーティションの再構築されたサンプルを取得するために、イントラ予測結果と共に残差を追加することができる。したがって、各サブパーティションの再構築されたサンプルを使用して、次のサブパーティションの予測を生成することができ、以下、このプロセスが繰り返される。例では、すべてのサブパーティションが同じイントラ予測モードを共有している。
【0116】
いくつかの例では、ISPアルゴリズムは、MPMリストの一部であるイントラ予測モードでのみテストされる。このため、ブロックがISPを使用している場合、MPMフラグが設定されていると推測できる。さらに、ISPが特定のブロックに使用される場合、MPMリストを変更して、DCモードを除外し、いくつかの例では、ISPの水平分割の水平イントラ予測モードと垂直分割の垂直イントラ予測モードを優先することができる。
【0117】
いくつかの例では、ISPでは、変換と再構築がサブパーティションごとに個別に実行されるため、各サブパーティションをTUと見なすことができる。
【0118】
関連するISPアルゴリズムの設計では、ISPモードがオンの場合、広角モードのマッピングプロセスがCUレベルで実行され、ISPモードがオフの場合、広角モードマッピングプロセスはTUレベルで実行されるが、これは統一された設計ではない。
【0119】
また、関連するISPの実施態様では、現在のCUが水平方向に分割されている場合、右上の隣接サンプルは、第2、第3、および第4のパーティションで使用不可としてマークされる。現在のCUが垂直方向に分割されている場合、左下の隣接サンプルは、第2、第3、および第4のパーティションで使用不可としてマークされるが、これは望ましい設計ではない可能性がある。
【0120】
本開示の態様は、サブパーティション内(ISP)符号化モードのための改良イントラ予測技術を提供する。提案された方法は、別々に使用してもよく、または任意の順序で組み合わせてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つまたは複数のプロセッサあるいは1つまたは複数の集積回路)によって実装され得る。一例では、1つまたは複数のプロセッサは、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。
【0121】
本開示では、イントラ予測モードが平面モードおよびDCモードのいずれでもない場合、イントラ予測モードは、VVCドラフト2で定義されているイントラ予測モード2-66などの、所与の予測方向に従って予測サンプルを生成し、イントラ予測モードは角度モードと呼ばれる。イントラ予測モードが指向性イントラ予測ではない場合、例えば、イントラ予測モードが平面モードとDCモードのいずれかである場合、イントラ予測モードは、本開示では非角度モードと呼ばれる。各イントラ予測モードは、モード番号(イントラ予測モードインデックスとも呼ばれる)に関連付けられる。例えば、VVC作業ドラフトでは、平面、DC、水平および垂直のイントラ予測モードは、それぞれモード番号0、1、18、および50に関連付けられる。
【0122】
本開示では、垂直予測方向は、予測角度vを使用して想定され、次に、垂直のようなイントラ予測方向は、(v-thr,v+thr)の範囲に入る予測角度に関連付けられたイントラ予測方向として定義され、ここで、thrは所与のしきい値である。さらに、水平予測方向は、予測角度hを使用して仮定され、水平のようなイントラ予測方向は、(h-thr,h+thr)に分類される予測角度に関連するイントラ予測方向として定義され、ここで、thrは所与のしきい値である。
【0123】
本開示では、参照線インデックスは、参照線を参照するために使用される。現在のブロックに最も近い参照線である現在のブロックに隣接する参照線は、参照線インデックス0を使用して参照される。
【0124】
本開示の一態様によれば、広角マッピングプロセス、すなわち、広角イントラ予測角度が適用されるかどうかの決定は、現在のCUが複数のTU(またはパーティション)を有するかどうかに関係なく、TUレベルで実行される。
【0125】
一実施形態では、VCCのモード0~66などのイントラ予測モードの第1のセットが、正方形形状のブロックに使用される。ブロックが非正方形形状である場合、第1のセットのイントラ予測モードのサブセットは、広角のイントラ予測モードに置き換えられる。いくつかの例では、第1のセットから第2のセットに置き換えられたイントラ予測モードの数は、ブロックのアスペクト比の関数である。しかし、アスペクト比が範囲外の場合、例では、第1のセットから第2のセットに置き換えられたイントラ予測モードの数が予め定義された値にクリップされる。いくつかの例では、ブロックのアスペクト比がThres1より大きいかThres2より小さい場合、置き換えられるイントラ予測モードの数はKに等しく設定されるため、上記のアスペクト比のブロックでも広角マッピングプロセスが機能する。アスペクト比は、幅/高さまたは高さ/幅、あるいは最大(幅/高さ、高さ/幅)、あるいは幅/高さおよび/または高さ/幅の関数のいずれかを指すことができる。
【0126】
一実施形態では、Kは正の整数である。例では、Kは15に等しく設定されている。別の例では、Kは16に等しく設定されている。
【0127】
別の実施形態では、アスペクト比がThres1よりも大きいかまたはThres2よりも小さいブロックの置き換えられたイントラモードは、予め定義された表に従って決定することができる。
【0128】
図18は、イントラ予測モードを広角モードに置き換えるための例として使用される表4を示している。置き換えられたイントラ予測モードの数は15である。
【0129】
図19は、イントラ予測モードを広角モードに置き換えるための別の例として使用される表5を示している。置き換えられたイントラ予測モードの数は16である。
【0130】
別の実施形態では、上限しきい値Thres1は16に等しく設定され、下限しきい値Thres2は1/16に等しく設定される。
【0131】
別の実施形態では、上限しきい値Thres1は32に等しく設定され、下限しきい値Thres2は1/32に等しく設定される。
【0132】
別の実施形態では、現在のブロックのアスペクト比がL1よりも大きい場合(W/H>L1)、長さ2W+1の上部参照サンプル、および長さ4H+1の左側参照サンプルがフェッチされ、記憶され、イントラ予測で使用される。L1は正の整数である。例では、L1は16または32に等しく設定される。
【0133】
別の実施形態では、現在のブロックのアスペクト比がL2よりも小さい場合(W/H<L2)、長さ4W+1の上部参照サンプル、および長さ2H+1の左側参照サンプルがフェッチされ、記憶され、イントラ予測で使用される。L2は正の数である。一例では、L2は1/16または1/32に等しく設定される。
【0134】
別の実施形態では、イントラ予測方向の精度は1/64に変更され、tan(α)が1/64、2/64、4/64、8/64、16/64、32/64、64/64に等しいイントラ予測方向が含まれている。いくつかの例では、アスペクト比が16(1/16)、32(1/32)、64(1/64)に等しいブロックの広角モードに置き換えられたモードの数は、それぞれ13、14、および15に等しく設定される。例えば、アスペクト比が16(1/16)に等しいブロックの広角モードに置き換えられたモードの数は13に設定される。例えば、アスペクト比が32(1/32)に等しいブロックの広角モードに置き換えられたモードの数は14に設定される。例えば、アスペクト比が64(1/64)に等しいブロックの広角モードに置き換えられたモードの数は15に設定される。
【0135】
本開示の別の態様によれば、ISPモードがオンの場合、第1のサブパーティションの隣接サンプルは、第2、第3、および第4のパーティションにも使用することができる。
【0136】
一実施形態では、現在のCUが垂直に分割される場合、第1のサブパーティションのイントラ予測に使用される左下の隣接サンプルは、第2、第3、および第4のパーティション、および左下の隣接サンプルとしても使用することができ、第1のパーティションのイントラ予測に使用される左下の隣接サンプルを次の図に示す。
【0137】
図20は、ISPモードでの参照サンプルの例を示している。
図20の例では、CU 2010は、第1のサブパーティション、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションに垂直に分割されている。CU 2010の隣接サンプルは、上部隣接サンプル2020、右上隣接サンプル2030、左隣接サンプル2040、および左下隣接サンプル2050を含む。
【0138】
一例では、第1のサブパーティションをイントラ予測するために、第1のサブパーティションの上部隣接サンプル、右上隣接サンプル、左隣接サンプル、および左下隣接サンプルが利用可能である。
【0139】
さらに、例では、第2のサブパーティションをイントラ予測するために、第2のサブパーティションの左下の隣接サンプルが復号されておらず、利用することができない。同様に、第3のサブパーティションと第4のサブパーティションの左下の隣接サンプルは利用することができない。いくつかの実施形態では、第1のサブパーティションの左下隣接サンプル2050は、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションの左下の隣接サンプルとして使用される。
【0140】
別の実施形態では、現在のCUが水平に分割される場合、第1のサブパーティションのイントラ予測に使用される右上の隣接サンプルは、第2、第3、および第4のサブパーティションの右上の隣接サンプルとしても使用することができ、次の図に、第1のサブパーティションのイントラ予測に使用される右上の隣接サンプルを示す。
【0141】
図21は、ISPモードでの参照サンプルの例を示す図である。
図21の例では、CU2110は、第1のサブパーティション、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションに水平に分割されている。CU2110の隣接サンプルは、上部隣接サンプル2120、右上隣接サンプル2130、左隣接サンプル2140、および左下隣接サンプル2150を含む。
【0142】
一例では、第1のサブパーティションをイントラ予測するために、第1のサブパーティションの上部隣接サンプル、右上隣接サンプル、左隣接サンプル、および左下隣接サンプルが利用可能である。
【0143】
さらに、例では、第2のサブパーティションをイントラ予測するために、第2のサブパーティションの右上の隣接サンプルが復号されておらず、利用することができない。同様に、第3のサブパーティションと第4のサブパーティションの右上の隣接サンプルは利用することができない。いくつかの実施形態では、第1のサブパーティションの右上隣接サンプル2130は、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションの右上の隣接サンプルとして使用される。
【0144】
別の実施形態では、現在のCUが水平に分割される場合、平面イントラ予測のために、第1のサブパーティションの右上のサンプルは、現在のCUの第2、第3、第4のサブパーティションの右上のサンプルとしても示される。
【0145】
いくつかの例では、現在のCUのサイズがN×4またはN×8の場合、Nは2、4、8、16、32、64、128などの任意の正の整数であり、現在のCUは水平方向に分割され、第1のサブパーティションの右側のサンプルは、現在のCUの第2、第3、第4のサブパーティションの右上のサンプルとしても示される。
【0146】
図22は、平面モード予測のためのISPモードでの参照サンプルの例を示す図である。
図22の例では、CU2210は、第1のサブパーティション、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションに水平に分割されている。CU2210の平面モード予測で使用される隣接サンプルは、上部隣接サンプル2220、右上隣接サンプル2230、左隣接サンプル2240、および左下隣接サンプル2250を含む。
【0147】
一例では、平面モードで第1のサブパーティションをイントラ予測するために、第1のサブパーティションの上部隣接サンプル、右上隣接サンプル、左隣接サンプル、および左下隣接サンプルが利用可能である。
【0148】
さらに、例では、平面モードで第2のサブパーティションをイントラ予測するために、第2のサブパーティションの右上の隣接サンプルが復号されておらず、利用することができない。同様に、第3のサブパーティションの右上の隣接サンプルと第4のサブパーティションの右上の隣接サンプルは利用することができない。いくつかの実施形態では、第1のサブパーティションの右上に隣接するサンプル2230は、それぞれ、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションの右上の隣接サンプルとして使用される。
【0149】
いくつかの例では、現在のCUのサイズがN×4またはN×8の場合、Nは2、4、8、16、32、64、128などの任意の正の整数であり、現在のCUは水平方向に分割され、現在のCUの第2、第3、第4のパーティションの平面予測に使用される右上のサンプルの位置は、パーティションごとに異なってもよい。
【0150】
別の実施形態では、現在のCUが垂直に分割される場合、平面イントラ予測のために、第1のサブパーティションの左下のサンプルは、現在のCUの第2、第3、第4のサブパーティションの左下のサンプルとしても示される。
【0151】
いくつかの例では、現在のCUのサイズが4×Nまたは8×Nの場合、Nは2、4、8、16、32、64、128などの任意の正の整数であり、現在のCUは垂直方向に分割され、第1のサブパーティションの左のサンプルは、現在のCUの第2、第3、第4のサブパーティションの左下のサンプルとしても示される。
【0152】
図23は、平面イントラ予測のためのISPモードでの参照サンプルの例を示す図である。
図23の例では、CU 2310は、第1のサブパーティション、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションに垂直に分割されている。CU2310の(平面イントラ予測における)隣接サンプルは、上部隣接サンプル2320、右上隣接サンプル2330、左隣接サンプル2340、および左下隣接サンプル2350を含む。
【0153】
一例では、平面モードで第1のサブパーティションをイントラ予測するために、第1のサブパーティションの上部隣接サンプル、右上隣接サンプル、左隣接サンプル、および左下隣接サンプルが利用可能である。
【0154】
さらに、例では、平面モードで第2のサブパーティションをイントラ予測するために、第2のサブパーティションの左下の隣接サンプルが復号されておらず、利用することができない。同様に、第3のサブパーティションの左下の隣接サンプルと第4のサブパーティションの左下の隣接サンプルは利用することができない。いくつかの実施形態では、第1のサブパーティションの左下隣接サンプル2350は、それぞれ、第2のサブパーティション、第3のサブパーティション、および第4のサブパーティションの左下の隣接サンプルとして使用される。
【0155】
いくつかの例では、現在のCUのサイズが4×Nまたは8×Nの場合、Nは2、4、8、16、32、64、128などの任意の正の整数であり、現在のCUは垂直方向に分割される。現在のCUの第2、第3、第4のパーティションの平面予測に使用される左下のサンプルの位置は、パーティションごとに異なってもよい。
【0156】
本開示の別の態様によれば、サブブロックパーティションの数は、現在のブロックのブロックサイズ、隣接ブロックのイントラ予測モードを含むがこれらに限定されない、符号化された情報に依存することができる。したがって、サブブロックパーティションの数を推測することができ、明示的なシグナリングは必要ない。
【0157】
一実施形態では、N×4またはN×8 CUの場合、Nは8、16、32、64、128などの正の整数であり、現在のCUは垂直方向にのみ分割することができ、現在のCUが垂直方向に2つのパーティションに分割されているか4つのパーティションに分割されているかを示す1つのフラグが通知される。
【0158】
例えば、ブロックサイズがN×4の場合には、4つのN×1サブパーティションに水平方向に仕切るのではなく、ブロックを2つのN/2×4パーティションに垂直方向に仕切る。一例では、ブロックサイズがN×8の場合、4つのN×2サブパーティションに水平に仕切る代わりに、ブロックを2つのN/2×8パーティションに垂直に仕切る。
【0159】
別の例では、ブロックサイズがN×8の場合、4つのN×2サブパーティションに水平に仕切る代わりに、ブロックを2つのN/2×4パーティションに水平に仕切る。
【0160】
別の実施形態では、4×Nまたは8×N CUの場合、Nは8、16、32、64、128などの正の整数であり、現在のCUは水平方向にのみ分割することができ、現在のCUが水平方向に2つのパーティションに分割されているか4つのパーティションに分割されているかを示す1つのフラグが通知される。
【0161】
一例では、ブロックサイズが4×Nの場合、4つの1×Nサブパーティションに垂直に仕切る代わりに、ブロックを2つの4×N/2パーティションに水平に仕切る。一例では、ブロックサイズが8×Nの場合、4つの2×Nサブパーティションに垂直に仕切る代わりに、ブロックを2つの8×N/2パーティションに水平に仕切る。
【0162】
別の例では、ブロックサイズが8×Nの場合、4つの2×Nサブパーティションに垂直に仕切る代わりに、ブロックを2つの4×N/2パーティションに水平に仕切る。
【0163】
本開示の別の態様によれば、ISPモードが無効にされた隣接参照線、ISPモードが有効にされた隣接参照線、および非隣接参照線について、同じMPMリスト構築プロセスが共有され、同じ候補順序を使用する。平面モードとDCモードは、いくつかの例では常にインデックス0と1のMPMリストに挿入される。
【0164】
一実施形態では、参照線インデックスが0として通知される場合、MPMインデックスの第1のビンに対して、2つのコンテキストが使用される。隣接ブロックの少なくとも1つが次の条件を満たす場合:1)MPMフラグが真、2)参照線インデックスが0、3)MPMインデックスがThより小さい場合には、第1のコンテキストが使用される。それ以外の場合は、第2のコンテキストが使用される。Thは1、2、3などの正の整数である。
【0165】
別の実施形態では、参照線インデックスが0として通知される場合、MPMインデックスの第1のビンに対して、1つのコンテキストのみが使用される。
【0166】
別の実施形態では、参照線インデックスが0として通知される場合、ISPモードはオフになり、MPMインデックスの第2のビンに対して、1つのコンテキストのみが使用される。
【0167】
別の実施形態では、上記の隣接ブロックが現在のCTU行を超えている場合には、上記の隣接ブロックは、MPMインデックスコンテキスト導出に利用できないものとしてマークされる。
【0168】
別の実施形態では、参照線インデックスが0として通知される場合、MPMインデックスの第1のKビンは、MPMフラグ、および/またはMPMインデックス、および/またはISPフラグ、および/またはその隣接ブロックの参照線インデックスに依存する。Kは1または2などの正の整数である。
【0169】
一例では、インデックス0の隣接参照線が通知される場合、MPMインデックスの第1のビンに対して、2つのコンテキストが使用される。現在のブロックのISPフラグがオンの場合、第1のコンテキストが使用される。それ以外の場合は、第2のコンテキストが使用される。
【0170】
別の例では、インデックス0の隣接参照線が通知される場合、MPMインデックスの第1のビンに対して、2つのコンテキストが使用される。現在のブロックとその隣接ブロックのISPフラグの少なくとも一方がオンの場合、第1のコンテキストが使用される。それ以外の場合は、第2のコンテキストが使用される。
【0171】
図24は、本開示の一実施形態によるプロセス(2400)を概説するフローチャートを示す。プロセス(2400)は、ブロックの再構築に使用することができるので、再構築中のブロックの予測ブロックを生成する。様々な実施形態では、プロセス(2400)は、端末装置(310)、(320)、(330)および(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、およびビデオエンコーダ(603)機能を実行する処理回路などの、処理回路によって実行される。いくつかの実施形態では、プロセス(2400)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路がプロセス(2400)を実行する。プロセスは(S2401)で始まり、(S2410)に進む。
【0172】
(S2410)において、現在のブロックの予測情報が符号化されたビデオビットストリームから復号される。予測情報は、正方形形状のイントラ予測のためのイントラ予測モードの第1のセットにおける第1のイントラ予測モードを示している。いくつかの例では、予測情報は、現在のブロックのサブパーティションの残差情報も示している。例えば、予測情報にはTUの残差データが含まれる。
【0173】
(S2420)において、第1のイントラ予測モードが、現在のブロックの第1のサブパーティションの形状に基づいて、非正方形形状のイントラ予測のためのイントラ予測モードの第2のセットにおける第2のイントラ予測モードに再マッピングされる。
【0174】
(S2430)において、サブパーティションのサンプルが、第2のイントラ予測モードおよびサブパーティションの残差情報に従って再構築される。その後に、プロセスは(S2499)に進み、終了する。
【0175】
図25は、本開示の一実施形態によるプロセス(2500)を概説するフローチャートを示す。プロセス(2500)は、ブロックの再構築に使用することができるので、再構築中のブロックの予測ブロックを生成する。様々な実施形態では、プロセス(2500)は、端末装置(310)、(320)、(330)および(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、およびビデオエンコーダ(603)機能を実行する処理回路などの、処理回路によって実行される。いくつかの実施形態では、プロセス(2500)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路がプロセス(2500)を実行する。プロセスは(S2501)で始まり、(S2510)に進む。
【0176】
(S2510)において、現在のブロックの予測情報が、符号化されたビデオビットストリームから復号される。
【0177】
(S2520)において、現在のブロックが、予測情報に基づいて、少なくとも第1のサブパーティションおよび第2のサブパーティションに仕切られる。例えば、現在のブロックは、
図16および
図17に示すように仕切られ得る。
【0178】
(S2530)において、第1のサブパーティションおよび第2のサブパーティションのサンプルは、
図20~23を参照して説明したように、第1のサブパーティションおよび第2のサブパーティションのうちの少なくとも一方の隣接領域の外にある現在のブロックの少なくとも隣接サンプルに基づいて再構築される。その後に、プロセスは(S2599)に進み、終了する。
【0179】
上記の技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、
図26は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(2600)を示している。
【0180】
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を用いてコード化することができ、それはアセンブリ、コンパイル、リンクなどのメカニズムの対象となり、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理ユニット(GPU)などによって、直接に、または解釈、マイクロコード実行などを通じて実行され得る命令を含むコードを作成することができる。
【0181】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0182】
コンピュータシステム(2600)について
図26に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用範囲または機能に関する限定を示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム(2600)の例示的な実施形態に示す構成要素のいずれか1つまたは組み合わせに関連する依存性または要件を有すると解釈されるべきではない。
【0183】
コンピュータシステム(2600)は、特定のヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通して1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、音声(スピーチ、音楽、環境音など)、画像(スキャンされた画像、静止画像カメラで撮影した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間の意識的な入力に直接関係しない特定の媒体をキャプチャするためにも使用することができる。
【0184】
入力ヒューマンインターフェースデバイスは、キーボード(2601)、マウス(2602)、トラックパッド(2603)、タッチスクリーン(2610)、データグローブ(図示せず)、ジョイスティック(2605)、マイク(2606)、スキャナ(2607)、カメラ(2608)のうちの1つまたは複数(それぞれ1つのみ描かれている)を含むことができる。
【0185】
コンピュータシステム(2600)はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通して、1人または複数の人間のユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2610)、データグローブ(図示せず)、またはジョイスティック(2605)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(2609)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(2610)などであって、それぞれタッチスクリーン入力機能の有無にかかわらず、触覚フィードバック機能の有無にかかわらず、その一部は、2次元の視覚出力または立体出力などの手段による3次元以上の出力を出力することが可能であり得る、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ、スモークタンク(図示せず))、ならびにプリンタ(図示せず)を含むことができる。
【0186】
コンピュータシステム(2600)はまた、CD/DVDなどの媒体(2621)を備えたCD/DVD ROM/RW(2620)を含む光学媒体、サムドライブ(2622)、リムーバブルハードドライブまたはソリッドステートドライブ(2623)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングル(図示せず)などの特殊なROM/ASIC/PLDベースのデバイスなどの、人間がアクセス可能な記憶装置およびその関連媒体を含むことができる。
【0187】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を含まないことを理解されたい。
【0188】
コンピュータシステム(2600)はまた、1つまたは複数の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、地上波放送TVなどを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車両および産業用などを含む。特定のネットワークは通常、特定の汎用データポートまたはペリフェラルバス(2649)(例えば、コンピュータシステム(2600)のUSBポート)に接続された外部ネットワークインターフェースアダプタを必要とし、他のものは、一般に、以下に説明するようにシステムバスに接続することによってコンピュータシステム(2600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2600)は他のエンティティと通信することができる。このような通信は、単一方向、受信のみ(例えば、テレビ放送)、単一方向の送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、または双方向、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムに対して行うことができる。上記のように、特定のプロトコルおよびプロトコルスタックをこれらのネットワークとネットワークインターフェースのそれぞれで使用することができる。
【0189】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(2600)のコア(2640)に取り付けることができる。
【0190】
コア(2640)には、1つまたは複数の中央処理装置(CPU)(2641)、グラフィックス処理ユニット(GPU)(2642)、フィールドプログラマブルゲートエリア(FPGA)(2643)の形態の特殊なプログラム可能な処理ユニット、および特定のタスクのためのハードウェアアクセラレータ(2644)などを含むことができる。これらのデバイスは、リードオンリメモリ(ROM)(2645)、ランダムアクセスメモリ(2646)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(2647)と共にシステムバス(2648)を介して接続され得る。一部のコンピュータシステムでは、システムバス(2648)に1つまたは複数の物理プラグの形態でアクセスして、追加のCPU、GPUなどによる拡張を可能にすることができる。周辺装置は、コアのシステムバス(2648)に直接接続することも、ペリフェラルバス(2649)を介して接続することもできる。ペリフェラルバスのアーキテクチャには、PCI、USBなどが含まれる。
【0191】
CPU(2641)、GPU(2642)、FPGA(2643)、およびアクセラレータ(2644)は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2645)またはRAM(2646)に記憶され得る。移行データはRAM(2646)に保存することもできるが、永続データは、例えば内部大容量記憶装置(2647)に記憶することができる。メモリデバイスのいずれかへの高速な記憶および読み出しは、1つまたは複数のCPU(2641)、GPU(2642)、大容量記憶装置(2647)、ROM(2645)、RAM(2646)などに密接に関連するキャッシュメモリを使用することで可能になり得る。
【0192】
コンピュータ可読媒体は、様々なコンピュータで実施される操作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知で利用可能な種類のものであり得る。
【0193】
一例として、限定するものではないが、アーキテクチャを有するコンピュータシステム(2600)、具体的にはコア(2640)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が、1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果として、機能性を提供することができる。このようなコンピュータ可読媒体は、上記で紹介したユーザアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置(2647)またはROM(2645)などの非一時的な性質のコア(2640)の特定の記憶装置に関連する媒体であり得る。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに記憶され、コア(2640)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2640)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2646)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ(2644))にハードワイヤードまたはその他の方法で具現化されたロジックの結果として機能性を提供することができ、それは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと共に動作することができる。必要に応じて、ソフトウェアへの言及にはロジックを含めることができ、その逆も可能である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付録A:略語
JEM:共同探索モデル
VVC:多用途ビデオ符号化
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオ符号化
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:符号化ツリーユニット
CTB:符号化ツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号ノイズ比
CPU:中央処理装置
GPU:グラフィックス処理ユニット
CRT:ブラウン管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:リードオンリメモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブルロジックデバイス
LAN:ローカルエリアネットワーク
GSM:モバイル通信のためのグローバルシステム
LTE: ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺機器相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
CU:符号化ユニット
【0194】
本開示はいくつかの例示的な実施形態を説明しているが、本開示の範囲内にある変更、置換、および様々な代替均等例が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、開示の原理を具現化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0195】
101 サンプル
102 矢印
103 矢印
104 ブロック
201 概略図
300 通信システム
310 端末装置
320 端末装置
330 端末装置
350 ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャのストリーム
403 ビデオエンコーダ
404 符号化されたビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 着信コピー
410 ビデオデコーダ
411 ビデオピクチャ
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス
515 バッファメモリ
520 エントロピーデコーダ/パーサ
521 シンボル
530 電子デバイス
531 受信器
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 符号化エンジン
633 ローカルデコーダ
634 参照ピクチャメモリ
635 予測器
640 送信器
643 符号化されたビデオシーケンス
645 エントロピーコーダ
550 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構築モジュール
880 インターデコーダ
900 QTBT構造
901 ブロック
911 ブロック
912 ブロック
913 ブロック
914 ブロック
921 ブロック
922 ブロック
923 ブロック
924 ブロック
925 ブロック
926 ブロック
927 ブロック
928 ブロック
950 ルートノード
961 ノード
962 ノード
963 ノード
964 ノード
971 ノード
972 ノード
973 ノード
974 ノード
975 ノード
976 ノード
977 ノード
978 ノード
981 ノード
982 ノード
983 ノード
984 ノード
985 ノード
986 ノード
991 ノード
992 ノード
1010 ブロック
1011 サブブロック
1012 サブブロック
1013 サブブロック
1020 ブロック
1021 サブブロック
1022 サブブロック
1023 サブブロック
2020 上部隣接サンプル
2030 右上隣接サンプル
2040 左隣接サンプル
2050 左下隣接サンプル
2120 上部隣接サンプル
2130 右上隣接サンプル
2140 左隣接サンプル
2150 左下隣接サンプル
2220 上部隣接サンプル
2230 右上隣接サンプル
2240 左隣接サンプル
2250 左下隣接サンプル
2320 上部隣接サンプル
2330 右上隣接サンプル
2340 左隣接サンプル
2350 左下隣接サンプル
2400 プロセス
2500 プロセス
2600 コンピュータシステム
2601 キーボード
2602 マウス
2603 トラックパッド
2605 ジョイスティック
2606 マイク
2607 スキャナ
2608 カメラ
2609 スピーカ
2610 タッチスクリーン
2621 媒体
2622 サムドライブ
2623 ソリッドステートドライブ
2640 コア
2643 フィールドプログラマブルゲートエリア(FPGA)
2644 アクセラレータ
2645 リードオンリメモリ(ROM)
2646 ランダムアクセスメモリ
2647 大容量記憶装置
2648 システムバス
2649 ペリフェラルバス