IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特表2022-529307ビデオコーディング用の方法および装置
<>
  • 特表-ビデオコーディング用の方法および装置 図1
  • 特表-ビデオコーディング用の方法および装置 図2
  • 特表-ビデオコーディング用の方法および装置 図3
  • 特表-ビデオコーディング用の方法および装置 図4
  • 特表-ビデオコーディング用の方法および装置 図5
  • 特表-ビデオコーディング用の方法および装置 図6
  • 特表-ビデオコーディング用の方法および装置 図7
  • 特表-ビデオコーディング用の方法および装置 図8A
  • 特表-ビデオコーディング用の方法および装置 図8B
  • 特表-ビデオコーディング用の方法および装置 図9A
  • 特表-ビデオコーディング用の方法および装置 図9B
  • 特表-ビデオコーディング用の方法および装置 図10
  • 特表-ビデオコーディング用の方法および装置 図11
  • 特表-ビデオコーディング用の方法および装置 図12
  • 特表-ビデオコーディング用の方法および装置 図13
  • 特表-ビデオコーディング用の方法および装置 図14
  • 特表-ビデオコーディング用の方法および装置 図15
  • 特表-ビデオコーディング用の方法および装置 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-21
(54)【発明の名称】ビデオコーディング用の方法および装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20220614BHJP
   H04N 19/90 20140101ALI20220614BHJP
   H04N 19/61 20140101ALI20220614BHJP
【FI】
H04N19/70
H04N19/90
H04N19/61
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021552840
(86)(22)【出願日】2020-04-15
(85)【翻訳文提出日】2021-10-11
(86)【国際出願番号】 US2020028233
(87)【国際公開番号】W WO2020214651
(87)【国際公開日】2020-10-22
(31)【優先権主張番号】62/834,333
(32)【優先日】2019-04-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/908,227
(32)【優先日】2019-09-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/848,612
(32)【優先日】2020-04-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】アウイェン,チュン
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】リ,リン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA45
5C159MC11
5C159ME01
5C159PP04
5C159PP16
5C159RC11
5C159SS26
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
ビデオデコーディング用の装置は、現在のブロックにロスレスコーディングモードが適用されるか否かを示すロスレスモードフラグであって、前記現在のブロックに関連付けられたロスレスモードフラグを受信することと、前記ロスレスモードフラグが前記現在のブロックに前記ロスレスコーディングモードが適用されることを示す場合、前記現在のブロックにロッシーコーディングモードが適用されないと決定することと、前記ロッシーコーディングモードを無効にして前記現在のブロックを再構成することと、を実行するように構成される、回路を含むことができる。
【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオデコーディングの方法であって、
現在のブロックにロスレスコーディングモードが適用されるか否かを示すロスレスモードフラグであって、前記現在のブロックに関連付けられたロスレスモードフラグを受信するステップと、
前記ロスレスモードフラグが前記現在のブロックに前記ロスレスコーディングモードが適用されることを示す場合、前記現在のブロックにロッシーコーディングモードが適用されないと決定するステップと、
前記ロッシーコーディングモードを無効にして前記現在のブロックを再構成するステップと、を含む方法。
【請求項2】
現在のビデオデータに対して前記ロスレスコーディングモードが許可されるか否かを示すシンタックス要素を受信するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記現在のブロックに前記ロッシーコーディングモードが適用されないと決定する前記ステップは、
前記ロッシーコーディングモードに関連付けられたシンタックス要素が存在しないと決定するステップを含む、請求項1に記載の方法。
【請求項4】
前記ロッシーコーディングモードが有効であることを示すシンタックス要素を受信するステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記ロッシーコーディングモードは、
共同彩度残差コーディングモード、
輝度マッピング・彩度スケーリング(LMCS)コーディングモード、
イントラ/インター結合予測(CIIP)コーディングモード、
量子化残差ブロックによる差分パルス符号変調(BDPCM)コーディングモード、
多重変換選択(MTS)コーディングモード、
二次変換(ST)コーディングモード、
依存量子化コーディングモード、
変換スキップ(TS)コーディングモード、及び、
サブブロック変換(SBT)コーディングモードのうちの1つである、請求項1に記載の方法。
【請求項6】
現在のビデオデータに対してロスレスコーディングモードのみが許可されることを示すシンタックス要素であって、前記現在のビデオデータに関連付けられたシンタックス要素を受信するステップをさらに含む、請求項1に記載の方法。
【請求項7】
ビデオデコーダにおけるビデオデコーディングの方法であって、
現在のブロックの係数コーディングに用いられる複数の係数コーディング方式の1つを示す第1のシンタックス要素を受信するステップと、
前記第1のシンタックス要素に基づいて、残差コーディングシンタックスを決定するステップと、
前記決定された残差コーディングシンタックスに基づいて、前記現在のブロックの係数コーディングのシンタックス要素を決定するステップと、
前記現在のブロックの係数コーディングの前記決定されたシンタックス要素に基づいて、前記現在のブロックを再構成するステップと、を含む方法。
【請求項8】
前記複数の係数コーディング方式は、
変換されずに空間予測残差に適用される第1の係数コーディング方式、及び、
変換係数に適用可能な第2の係数コーディング方式のうちの1つを含む、請求項7に記載の方法。
【請求項9】
前記空間予測残差は、変換スキップモードまたは残差領域ブロックによる差分パルス符号変調(BDPCM)モードの結果である、請求項8に記載の方法。
【請求項10】
変換および量子化プロセスがバイパスされているか否かを示すフラグを受信するステップと、
前記フラグが前記変換および量子化プロセスがバイパスされていることを示す場合、前記第1のシンタックス要素に基づいて、前記残差コーディングシンタックスを決定するステップと、
前記フラグが前記変換および量子化プロセスがバイパスされていないバイパスされていないことを示す場合、前記第1のシンタックス要素を無視するステップと、をさらに含む、請求項7に記載の方法。
【請求項11】
前記現在のブロックは、
ロスレスコーディングモード、
残差領域ブロックによる差分パルス符号変調(BDPCM)コーディングモード、
変換スキップコーディングモード、
イントラ予測コーディングモード、
イントラブロックコピー(IBC)コーディングモード、
共同CbCr残差(JCCR)コーディングモード、
多重変換選択(MTS)コーディングモード、
低周波非分離二次変換(LFNST)コーディングモード、
多重参照ライン(MRL)イントラ予測コーディングモード、
インター予測コーディングモード、
パレットコーディングモード、及び、
クロスコンポーネント線形モデル(CCLM)コーディングモードのうちの1つでコーディングされる、請求項7に記載の方法。
【請求項12】
前記第1のシンタックス要素がコンテキストコーディングされた後、
前記現在のブロックに用いられたコーディングモードに基づいて、前記第1のシンタックス要素をデコーディングするためのコンテキストモデルを決定するステップをさらに含む請求項7に記載の方法。
【請求項13】
前記第1のシンタックス要素は、前記現在のブロックに対応するコーディングユニットの異なる色成分に関連付けられる、請求項7に記載の方法。
【請求項14】
異なる色成分に対して前記複数の係数コーディング方式を1つずつ示す異なるブロックレベルシンタックス要素を受信するステップをさらに含む、請求項7に記載の方法。
【請求項15】
回路を含むビデオデコーディング用の装置であって、
前記回路は、
請求項1~請求項6のいずれか1項に記載の方法再構成を実行する、装置。
【請求項16】
プログラムであって、
プロセッサに請求項1~請求項14のいずれか1項に記載の方法を実行させる、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本願は、2019年4月15日に提出された、出願番号が62/834333であり、発明の名称が「Lossless Coding Mode in VVC」である米国仮出願および2019年9月30日に提出された、出願番号が62/908227であり、発明の名称が「Switchable Residual Coding」である米国仮出願に基づく優先権を主張するとともに、2020年4月14日に提出された、出願番号が16/848612であり、発明の名称が「Method and Apparatus for Video Coding」である米国特許出願に基づく優先権を主張する。これらの出願の全ての内容は、参照により本願に組み込むものとする。
【0002】
本発明は、一般的にビデオコーディングに関する実施形態を開示する。
【背景技術】
【0003】
本明細書で提供される「背景技術」の説明は、本開示の背景を大まかに示すことを目的とする。ここに名を挙げられている発明者の業績は、この背景技術に記載された範囲において、出願時に従来技術として通常見なされえない記載の態様と共に、明示的にも黙示的にも本開示に対する従来技術として認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を伴うインターピクチャ予測を使用して実行されることができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080輝度サンプルと関連する彩度サンプルの空間寸法を持っている。該一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変ピクチャレート(非公式には「フレームレート」とも呼ばれる)を持つことができる。非圧縮ビデオには、顕著なビットレート要件がある。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080輝度サンプル解像度)には、1.5Gbit/sに近い帯域幅が必要となる。このようなビデオを1時間使用するには、600GBytesを超えた記憶空間が必要である。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮によって入力ビデオ信号の冗長性を減らすことであり得る。圧縮は、前述の帯域幅または記憶空間の要件を、場合によっては2桁以上削減するのに役立つ。ロスレス圧縮とロッシー圧縮の両方、およびそれらの組み合わせを使用することができる。ロスレス圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構成できる技法を指す。ロッシー圧縮を使用する場合、再構成された信号は元の信号と同一ではない可能性があるが、元の信号と再構成された信号の間の歪みは、再構成された信号を意図されたアプリケーションに役立てる程度に小さい。ビデオの場合、ロッシー圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なる。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ発行アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピーコーディングを含むいくつかの幅広いカテゴリからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含み得る。イントラコーディングでは、サンプル値は、予め再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラモードでコーディングされると、そのピクチャはイントラピクチャになる可能性がある。イントラピクチャと、独立したデコーダリフレッシュピクチャなどのその派生物とは、デコーダの状態をリセットするために使用できるため、コーディングされたビデオビットストリームとビデオセッションの最初のピクチャとして、または静止画像として使用されることができる。イントラブロックのサンプルは変換にさらされることができ、変換係数はエントロピーコーディングの前に量子化されることができる。イントラ予測は、事前変換領域でサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所定の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えばMPEG―2世代コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、デコード順の先に位置するデータのブロックのエンコード/デコード中に得られた周囲のサンプルデータ及び/又はメタデータからイントラ予測を試みる技法を含む。そのような技法は、以下、「イントラ予測」技法と呼ぶ。少なくともいくつかのケースでは、イントラ予測は、再構成中の現在のピクチャからの参照データのみを使用し、参照ピクチャからの参照データを使用しないことに注意されたい。
【0009】
イントラ予測はさまざまな形態で存在し得る。そのような技法の2つ以上が所定のビデオコーディング技術に使用できる場合、使用中の技法はイントラ予測モードでコーディングされることができる。場合によっては、モードはサブモードやパラメータを有することができ、それらを個別にコーディングするか、もしくはモードコードワードに含めることができる。どのコードワードが所定のモード/サブモード/パラメータの組み合わせに使用されるかは、イントラ予測によるコーディング効率ゲインに影響を与える可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードはH.264で提出され、H.265で改良され、さらに共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術で改良された。予測子ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成されることができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコーディングされるか、もしくはそれ自体を予測され得る。
【0011】
ビデオコーディング技術が発展するにつれて、可能な方向の数は増加した。H.264(2003年)では、9通りの異なる方向を表すことができた。H.265(2013年)で33通りに増加し、JEM/VVC/BMSは開示時に最大65通りの方向をサポートできる。最も見込みのある方向を識別するための実験が行われ、エントロピーコーディングにおける特定の技法は、数の少ないビットで見込みの高い方向を表すために使用され、見込みの低い方向に対する特定のペナルティを容認する。さらに、方向自体は、隣接する、すでにデコードされたブロックで使用される隣接方向から予測される場合がある。
【0012】
方向を表すコーディングされたビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なる可能性があり、また、例えば、イントラ予測モードへ乃至コードワードへの予測方向の単純な直接マッピングから、最も可能性の高いモードや類似した技法を含む複雑な適応方式までの範囲とすることができる。しかしながら、すべての場合において、他の特定の方向よりも統計的にビデオコンテンツにおいて発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の削減であるため、適切に機能するビデオコーディング技術では、これらの可能性の低い方向は、可能性の高い方向よりも多くのビット数で表される。
【0013】
動き補償は、ロッシー圧縮技術であり得、予め再構成されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックを、動きベクトル(以下、「MV」)によって示される方向に空間的にシフトした後、新しく再構成されたピクチャまたはピクチャ部分の予測に使用する技術に関連し得る。場合によっては、参照ピクチャは現在再構成中のピクチャと同じになることがある。MVは、XとYの2次元、または、第3次元が、使用中の参照ピクチャを示す3次元を持つことができる(後者は間接的に時間次元になることができる)。
【0014】
一部のビデオ圧縮技術では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば再構成中の領域に空間的に隣接し、デコード順でそのMVよりも前であるサンプルデータの別の領域に関連するMVから予測されることができる。そうすることで、MVのコーディングに必要なデータの量を大幅に減らすことができ、これにより冗長性を取り除き、圧縮を強化する。例えば、カメラから導出される入力ビデオ信号(「ナチュラルビデオ」と呼ぶ)をコーディングする際に、単一のMVが適用される領域より大きい領域が、同様の方向に移動するため、場合によって隣接領域のMVから導出された類似の動きベクトルを使用して予測されることができる統計的可能性があるため、MV予測は有効に働くことができる。その結果、特定の領域に対して検出されたMVは、周囲のMVから予測されたMVと類似または同一であり、逆に、エントロピーコーディング後、MVを直接コーディングする場合よりも少ないビット数で表されることができる。場合によっては、MV予測は、元の信号(つまり、「サンプルストリーム」)から導出される信号(つまり、「MV」)のロスレス圧縮の例になってもよい。他の場合では、例えばいくつかの周囲のMVから予測子を計算するときの丸め誤差のために、MV予測自体はロッシーになる可能性がある。
【0015】
H.265/HEVC(ITU―T推奨のH.265、「高効率ビデオコーディング」、2016年12月)には、様々なMV予測メカニズムが記載されている。H.265が提供する多くのMV予測メカニズムのうち、ここで説明するのは、以下、「空間マージ」と呼ぶ技法である。
【0016】
図1を参照し、現在のブロック101は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるとエンコーダによって動き探索過程において発見されたサンプルを含むことができる。そのMVを直接コーディングする代わりに、A0、A1、およびB0、B1、B2(それぞれ102から106)で示される5つの周囲のサンプルのいずれか1つに関連付けられるMVを使用して、1つ以上の参照ピクチャに関連付けられるメタデータから、例えば最新の(デコード順で)参照ピクチャから、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0017】
本開示の態様は、ビデオエンコード/デコーディング用の方法および装置を提供する。一部の例では、ビデオデコーディング用の装置は、現在のブロックにロスレスコーディングモードが適用されるか否かを示すロスレスモードフラグであって、前記現在のブロックに関連付けられたロスレスモードフラグを受信することと、前記ロスレスモードフラグが前記現在のブロックに前記ロスレスコーディングモードが適用されることを示す場合、前記現在のブロックにロッシーコーディングモードが適用されないと決定することと、前記ロッシーコーディングモードを無効にして前記現在のブロックを再構成することと、を実行するように構成される、回路を含むことができる。
【0018】
一実施形態では、前記回路は、現在のビデオデータに対して前記ロスレスコーディングモードが許可されるか否かを示すシンタックス要素を受信することを実行するようにさらに構成される。一実施形態では、前記ロッシーコーディングモードに関連付けられたシンタックス要素が存在しないと決定する。一例では、前記ロッシーコーディングモードが有効であることを示すシンタックス要素を受信する。
【0019】
一実施形態では、前記ロッシーコーディングモードは、共同彩度残差コーディングモード(joint chroma residual coding mode)、輝度マッピング・彩度スケーリング(LMCS)コーディングモード、イントラ/インター結合予測(CIIP)コーディングモード、量子化残差ブロックによる差分パルス符号変調(BDPCM)コーディングモード、多重変換選択(MTS)コーディングモード、二次変換(ST)コーディングモード、依存量子化コーディングモード、変換スキップ(TS)コーディングモード、及び、サブブロック変換(SBT)コーディングモードのうちの1つである。一実施形態では、現在のビデオデータに対してロスレスコーディングモードのみが許可されることを示す、前記現在のビデオデータに関連付けられたシンタックス要素を受信することができる。
【0020】
一部の実施形態では、ビデオデコーディング用の別の装置は回路を含み、前記回路は、現在のブロックの係数コーディングに用いられる複数の係数コーディング方式の1つを示す第1のシンタックス要素を受信することと、前記第1のシンタックス要素に基づいて、残差コーディングシンタックスを決定することと、前記決定された残差コーディングシンタックスに基づいて、前記現在のブロックの係数コーディングのシンタックス要素を決定することと、前記現在のブロックの係数コーディングの前記決定されたシンタックス要素に基づいて、前記現在のブロックを再構成することと、を実行する。
【0021】
一実施形態では、前記複数の係数コーディング方式は、変換されずに空間予測残差に適用される第1の係数コーディング方式、及び、変換係数に適用可能な第2の係数コーディング方式のうちの1つを含む。一実施形態では、前記空間予測残差は、変換スキップモードまたは残差領域ブロックによる差分パルス符号変調(BDPCM)モードの結果である。
【0022】
一実施形態では、変換および量子化プロセスがバイパスされているか否かを示すフラグを受信することができる。前記フラグが前記変換および量子化プロセスがバイパスされていることを示す場合、前記第1のシンタックス要素に基づいて、前記残差コーディングシンタックスを決定することができる。前記フラグが前記変換および量子化プロセスがバイパスされていないことを示す場合、前記第1のシンタックス要素を無視することができる。
【0023】
一実施形態では、前記現在のブロックは、ロスレスコーディングモード、残差領域BDPCMコーディングモード、TSコーディングモード、イントラ予測コーディングモード、イントラブロックコピー(IBC)コーディングモード、共同CbCr残差(JCCR)コーディングモード、MTSコーディングモード、低周波非分離二次変換(LFNST)コーディングモード、多重参照ライン(MRL)イントラ予測コーディングモード、インター予測コーディングモード、パレットコーディングモード、及び、クロスコンポーネント線形モデル(CCLM)コーディングモードのうちの1つでコーディングされる。一実施形態では、前記第1のシンタックス要素は、コンテキストコーディングされる。前記現在のブロックに用いられたコーディングモードに基づいて、前記第1のシンタックス要素をデコーディングするためのコンテキストモデルを決定することができる。
【0024】
一実施形態では、前記第1のシンタックス要素は、前記現在コーディングブロックに対応するコーディングユニットの異なる色成分に関連付けられる。一実施形態では、異なる色成分に対して複数の係数コーディング方式の1つを示す異なるブロックレベルシンタックス要素を受信する。
【0025】
本開示の態様はまた、ビデオデコーディングのためにコンピュータによって実行されると、前記コンピュータにビデオデコーディング用の方法を実行させる命令を記憶する非一時的なコンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0026】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【0027】
図1】一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。
【0028】
図2】実施形態に係る通信システム200の簡略化されたブロック図の概略図である。
【0029】
図3】実施形態に係る通信システム300の簡略化されたブロック図の概略図である。
【0030】
図4】実施形態に係るデコーダの簡略化されたブロック図の概略図である。
【0031】
図5】実施形態に係るエンコーダの簡略化されたブロック図の概略図である。
【0032】
図6】別の実施形態に係るエンコーダを示すブロック図である。
【0033】
図7】別の実施形態に係るデコーダを示すブロック図である。
【0034】
図8A】四分木+二分木(QTBT)構造820によって分割されたコーディングツリーユニット(CTU)を示す図である。
【0035】
図8B】QTBT構造820を示す図である。
【0036】
図9A】水平な中央側三分木を示す図である。
【0037】
図9B】垂直な中央側三分木を示す図である。
【0038】
図10】デコーダの視点からの輝度マッピング・彩度スケーリング(LMCS)アーキテクチャを示す図である。
【0039】
図11】4x4のサブブロック1120に分割されたコーディングブロック1110を示す図である。
【0040】
図12】ロスレスコーディングモードの実装に対応するように変更されたビデオコーディング規格の仕様のテキスト1200を示す図である。
【0041】
図13】ロスレスコーディングモードの実装に対応するように変更されたビデオコーディング規格の仕様の別のテキスト1300を示す図である。
【0042】
図14】本開示の実施形態に係るプロセス1400の概要を示すフローチャートである。
【0043】
図15】本開示の実施形態に係るプロセス1500の概要を示す別のフローチャートである。
【0044】
図16】実施形態に係るコンピュータシステムの概略図である。
【発明を実施するための形態】
【0045】
I.ビデオコーディングエンコーダおよびデコーダ
【0046】
図2は、本開示の実施形態による通信システム200の簡略化されたブロック図を示す。通信システム200は、例えばネットワーク250を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム200は、ネットワーク250を介して相互接続された第1の対の端末装置210および220を含む。図2の例では、第1の対の端末装置210および220は、データの単方向送信を実行する。例えば、端末装置210は、ネットワーク250を介して他方の端末装置220へ送信するためにビデオデータ(例えば、端末装置210によってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。エンコードされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形で送信されることができる。端末装置220は、ネットワーク250からコーディングビデオデータを受信し、コーディングビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向のデータ送信は、メディア供給アプリケーションなどで一般的である。
【0047】
別の例では、通信システム200は、例えば、ビデオ会議中に発生し得るコーディングビデオデータの双方向送信を実行する第2の対の端末装置230および240を含む。データの双方向送信の場合、一例では、端末装置230および240のそれぞれは、ネットワーク250を介して端末装置230および240のうちの他方の端末装置へ送信するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。端末装置230および240の一方は、端末装置230および240のうちの他方の端末装置で送信されたコーディングビデオデータを受信することができ、コーディングビデオデータをデコードしてビデオピクチャを復元することができ、復元されたビデオデータに従ってビデオピクチャをアクセス可能な表示装置に表示することができる。
【0048】
図2の例では、端末装置210、220、230および240は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、しかし、本開示の原理はこれに制限されることはない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、及び/又は専用のビデオ会議機器などにおける用途を見出す。ネットワーク250は、例えば有線及び/又は無線通信ネットワークを含む、端末装置210、220、230および240間でコーディングビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク250は、回線交換及び/又はパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本議論の目的のために、ネットワーク250のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要でないかもしれない。
【0049】
図3は、開示された主題の適用の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、および、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応アプリケーションに等しく適用可能である。
【0050】
ストリーミングシステムは、例えば非圧縮のビデオピクチャ302のストリームを作成するデジタルカメラなどのビデオソース301を含むことができるキャプチャサブシステム313を含んでもよい。一例では、ビデオピクチャ302のストリームは、デジタルカメラによって取得されたサンプルを含む。エンコードされたビデオデータ304(またはコーディングされたビデオビットストリーム)と比較して高データ量を強調するために太線で示されたビデオピクチャ302のストリームは、ビデオソース301に結合されたビデオエンコーダ303を含む電子デバイス320によって処理されることができる。ビデオエンコーダ303は、以下でより詳細に説明されるように、開示された主題の態様を可能にするか或いは実施するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャ302のストリームと比較してより低いデータ量を強調するために細い線で示された、エンコードされたビデオデータ304(またはエンコードされたビデオビットストリーム304)は、将来使うためにストリーミングサーバ305に記憶されることができる。図3のクライアントサブシステム306および308のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ305にアクセスして、エンコードされたビデオデータ304のコピー307および309を検索することができる。クライアントサブシステム306は、例えば、電子デバイス330におけるビデオデコーダ310を含むことができる。ビデオデコーダ310は、エンコードされたビデオデータの入り方向コピー307をデコードし、ディスプレイ312(例えば、表示画面)または他のレンダリングデバイス(描画せず)でレンダリングできるビデオピクチャ311の出方向ストリームを作成する。一部のストリーミングシステムにおいて、エンコードされたビデオデータ304、307、および309(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコードされることができる。これらの規格の例は、ITU―T勧告H.265を含む。一例では、発展中のビデオコーディング規格は、非公式的にヴァーサトゥルビデオコーディングまたはVVCとして知られている。開示された主題は、VVCの文脈に使用され得る。
【0051】
なお、電子デバイス320および330は、他の構成要素(図示せず)を含むことができる。例えば、電子デバイス320は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス330は、ビデオエンコーダ(図示せず)を含むこともできる。
【0052】
図4は、本開示の実施形態によるビデオデコーダ410のブロック図を示す。ビデオデコーダ410は、電子デバイス430に含まれることができる。電子デバイス430は、受信機431(例えば、受信回路)を含むことができる。ビデオデコーダ410は、図3の例におけるビデオデコーダ310の代わりに使用されることができる。
【0053】
受信機431は、ビデオデコーダ410によってデコードされる1つ以上のコード化されたビデオシーケンスを受信することができ、同一または別の実施形態では、一度に1つのコード化されたビデオシーケンスを受信してもよく、各コード化されたビデオシーケンスのデコードは、他のコード化されたビデオシーケンスから独立している。コード化されたビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル401から受信されることができる。受信機431は、それぞれの使用エンティティ(描画せず)に転送され得る他のデータ、例えば、コーディングオーディオデータ及び/又は補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信機431は、コード化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ415は、受信機431とエントロピーデコーダ/パーサ420(以下、「パーサ420」)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ415は、ビデオデコーダ410の一部である。他の場合、バッファメモリ415は、ビデオデコーダ410(描画せず)の外部に存在し得る。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ410の外部にバッファメモリ(描画せず)が存在し、さらに、例えば、再生タイミングを取り扱うためにビデオデコーダ410の内部に別のバッファメモリ415が存在し得る。受信機431が十分な帯域幅および可制御性を有する記憶/転送装置から、または等同期ネットワークからデータを受信する際に、バッファメモリ415は必要とされないことがあり、または小さくされることがある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ415が必要になる場合があり、バッファメモリ415は、比較的大きいことがあり、有利には適応サイズであることができ、ビデオデコーダ410の外部のオペレーティングシステムまたは類似の要素(描画せず)に少なくとも部分的に実施され得る。
【0054】
ビデオデコーダ410は、コード化されたビデオシーケンスからシンボル421を再構成するパーサ420を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ410の操作を管理するために使用される情報を含んで、および、電子デバイス430の不可欠な部分ではないが、図4に示されるように電子デバイス430に結合され得るレンダリングデバイス412(例えば、表示画面)のようなレンダリングデバイスを制御する情報を潜在的に含む。レンダリングデバイス用の制御情報は、補助強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(描画せず)の形態であってよい。パーサ420は、受信されたコード化されたビデオシーケンスを構文解析/エントロピーデコードすることができる。コード化されたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に合わせることができ、可変長コーディング、ハフマンコーディング、文脈感受性を有するもしくは有さない算術コーディングなどを含む様々な原理に従うことができる。パーサ420は、グループに対応する少なくとも1つのパラメータに基づいて、コード化されたビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループ用のサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャ群(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ420は、コード化されたビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報をも抽出することができる。
【0055】
パーサ420は、シンボル421を作成するために、バッファメモリ415から受信されたビデオシーケンスに対してエントロピーデコード/構文解析操作を実行することができる。
【0056】
シンボル421の再構成は、コーディングビデオピクチャまたはその一部のタイプ(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)、および他の要因に応じて、複数の異なるユニットが関与することができる。どのユニットが、どのように関与するかは、パーサ420によってコード化されたビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ420と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0057】
すでに述べた機能ブロックに加え、ビデオデコーダ410は、以下で説明されるようにいくつかの機能ユニットに概念的に細分されることができる。商業的な制約の下で実際の実施操作にあたっては、これらのユニットの多くは互いに密接に相互作用し、少なくとも一部は互いに統合することができる。しかしながら、開示された主題の説明の目的で、以下の機能ユニットへの概念的な細分は、適切に行われる。
【0058】
第1のユニットは、スケーラ/逆変換ユニット451である。スケーラ/逆変換ユニット451は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル421としてパーサ420から受信する。スケーラ/逆変換ユニット451は、アグリゲータ455に入力可能なサンプル値を含むブロックを出力することができる。
【0059】
場合によっては、スケーラ/逆変換451の出力サンプルは、イントラコーディングブロック、すなわち、予め再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの予め再構成された部分からの予測情報を使用できるブロックに関係することがある。このような予測情報は、イントラピクチャ予測ユニット452によって提供されることができる。場合によっては、イントラピクチャ予測ユニット452は、現在のピクチャバッファ458から取り出された周囲の既に再構成された情報を用いて、再構成中のブロックの同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ458は、例えば、一部再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ455は、場合によっては、サンプルごとに、イントラ予測ユニット452が生成した予測情報を、スケーラ/逆変換ユニット451によって提供される出力サンプル情報に追加する。
【0060】
他の場合では、スケーラ/逆変換ユニット451の出力サンプルは、インターコーディングされた、潜在的に動き補償されたブロックに関係することがある。このような場合、動き補償予測ユニット453は、参照ピクチャ用メモリ457にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル421に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ455によってスケーラ/逆変換ユニット451の出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ぶ)。動き補償予測ユニット453が予測サンプルを取り出す参照ピクチャ用メモリ457内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル421の形態で動き補償予測ユニット453に利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプル正確な動きベクトルが使用中であるときに参照ピクチャ用メモリ457から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0061】
アグリゲータ455の出力サンプルは、ループフィルタユニット456において様々なループフィルタリング技法を受けられる。ビデオ圧縮技術は、コード化されたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれる、パーサ420からのシンボル421としてループフィルタユニット456に利用可能とされたパラメータによって制御されることができ、それに、コーディングピクチャまたはコード化されたビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構成されループフィルタリングされたサンプル値に応じることもできるループ内フィルタ技術を含むことができる。
【0062】
ループフィルタユニット456の出力は、レンダリングデバイス412へ出力されることができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャ用メモリ457に記憶されることができるサンプルストリームであり得る。
【0063】
特定のコーディングピクチャは、完全に再構成されると、将来の予測のために参照ピクチャとして使用されることができる。例えば、現在のピクチャに対応するコーディングピクチャが完全に再構成され、コーディングピクチャが(例えば、パーサ420によって)参照ピクチャとして識別されると、現在のピクチャバッファ458は、参照ピクチャ用メモリ457の一部になることができ、次のコーディングピクチャの再構成を開始する前に新しい現在のピクチャバッファを再割当てすることができる。
【0064】
ビデオデコーダ410は、ITU―T推奨のH.265のような規格での所定のビデオ圧縮技術に従ってデコード操作を実行することができる。コード化されたビデオシーケンスが、ビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、コード化されたビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、特定のツールをそのプロファイルで使用できるツールとして選択することができる。コード化されたビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様およびコード化されたビデオシーケンスでシグナリングされたHRDバッファ管理用のメタデータによってさらに制限され得る。
【0065】
一実施形態では、受信機431は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コード化されたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、及び/又は、元のビデオデータをより正確に再構成するためにビデオデコーダ410によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態にされることができる。
【0066】
図5は、本開示の実施形態によるビデオエンコーダ503のブロック図を示す。ビデオエンコーダ503は、電子デバイス520に含まれる。電子デバイス520は、送信機540(例えば、送信回路)を含む。図3の例におけるビデオエンコーダ303の代わりにビデオエンコーダ503を使用することができる。
【0067】
ビデオエンコーダ503は、ビデオエンコーダ503によってコーディングされるビデオ画像をキャプチャし得るビデオソース501(図5の例では電子デバイス520の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース501は、電子デバイス520の一部である。
【0068】
ビデオソース501は、ビデオエンコーダ503によってコーディングされるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース501は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース501は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
【0069】
一実施形態によれば、ビデオエンコーダ503は、リアルタイムでまたはアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャをコーディングし、コード化されたビデオシーケンス543に圧縮することができる。適切なコーディング速度を実施することは、コントローラ550の機能の1つである。一部の実施形態では、コントローラ550は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、カップリングは示されていない。コントローラ550によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技法のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ550は、特定のシステム設計に対して最適化されたビデオエンコーダ503に関する他の適切な機能を有するように構成されることができる。
【0070】
一部の実施形態では、ビデオエンコーダ503は、コーディングループで動作するように構成される。過度に簡略化した説明として、一例では、コーディングループは、ソースコーダ530(例えば、コーディング対象となる入力ピクチャおよび参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、およびビデオエンコーダ503に埋め込まれた(ローカル)デコーダ533を含むことができる。デコーダ533は、シンボルを再構成して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する(シンボルとコーディングされたビデオビットストリーム間の如何なる圧縮は、開示された主題で考慮されるビデオ圧縮技術ではロスレスであるためである)。再構成されたサンプルストリーム(サンプルデータ)は参照ピクチャ用メモリ534に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照ピクチャ用メモリ534のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性の該基本原理(および例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連分野にも使用されている。
【0071】
「ローカル」デコーダ533の動作は、前文で図4に関連して既に詳細に説明された、ビデオデコーダ410などの「リモート」デコーダの動作と同様であり得る。しかしながら、図4も簡単に参照し、シンボルが使用可能であり、エントロピーコーダ545およびパーサ420によるコード化されたビデオシーケンスへのシンボルのコーディング/デコードはロスレスであり得るので、バッファメモリ415、およびパーサ420を含むビデオデコーダ410のエントロピーデコード部分は、ローカルデコーダ533では完全に実施されない場合がある。
【0072】
これで分かるように、デコーダに存在する構文解析/エントロピーデコード以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示された主題は、デコーダ操作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0073】
操作中、一部の例では、ソースコーダ530は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の予めコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行してもよい。このようにして、コーディングエンジン532は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差異をコーディングする。
【0074】
ローカルビデオデコーダ533は、ソースコーダ530で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングビデオデータをデコードすることができる。コーディングエンジン532の操作は、有利にはロッシープロセスであり得る。コーディングビデオデータがビデオデコーダ(図5に示されていない)でデコードされ得るとき、再構成されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ533は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ534に記憶させることができる。このようにして、ビデオエンコーダ503は、遠端ビデオデコーダによって取得される再構成された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構成された参照ピクチャのコピーをローカルに記憶し得る。
【0075】
予測器535は、コーディングエンジン532の予測検索を実行することができる。つまり、コーディング対象となる新しいピクチャについて、予測器535は、(候補の参照画素ブロックとしての)サンプルデータ、または、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャ用メモリ534で検索することができる。予測器535は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに操作することができる。場合によっては、予測器535で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャ用メモリ534に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
【0076】
コントローラ550は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ530のコーディング操作を管理することができる。
【0077】
前述のすべての機能ユニットの出力は、エントロピーコーダ545においてエントロピーコーディングを受けられる。エントロピーコーダ545は、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルをロスレス圧縮することにより、様々な機能ユニットによって生成されたシンボルをコード化されたビデオシーケンスに変換する。
【0078】
送信機540は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル560を介した送信の準備のために、エントロピーコーダ545によって作成されたコード化されたビデオシーケンスをバッファリングすることができる。送信機540は、ビデオコーダ503からのコーディングビデオデータを、送信されるべき他のデータ、例えば、コーディングオーディオデータ及び/又は補助データストリーム(ソースは示されていない)とマージすることができる。
【0079】
コントローラ550は、ビデオエンコーダ503の操作を管理し得る。コーディング中、コントローラ550は、各コーディングピクチャに特定のコーディングピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。
【0080】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずにコーディングおよびデコーディングされ得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形およびそれらのそれぞれの用途および特徴を知っている。
【0081】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコーディングおよびデコーディングされ得るものであり得る。
【0082】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコーディングおよびデコーディングされ得るものであり得る。同様に、多重予測ピクチャは、単数のブロックの再構成のために2つを超えた参照ピクチャおよび関連メタデータを使用することができる。
【0083】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定された他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、或いは、同一のピクチャの既にコーディングされたブロック(空間予測またはイントラ予測)を参照して予測的にコーディングされてもよい。Pピクチャの画素ブロックは、1つの予めコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの予めコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされ得る。
【0084】
ビデオエンコーダ503は、ITU―T推奨のH.265などの予め設定されたビデオコーディング技術または規格に従って、コーディング操作を実行することができる。操作中、ビデオエンコーダ503は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測コーディング操作を含む、様々な圧縮操作を実行することができる。したがって、コーディングビデオデータは、使用されるビデオコーディング技術または規格によって指定されたシンタックスに準拠する場合がある。
【0085】
一実施形態では、送信機540は、エンコードされたビデオとともに追加のデータを送信することができる。ソースコーダ530は、このようなデータをコード化されたビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形態での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0086】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれるエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在のピクチャにおけるブロックが、ビデオにおける予めコーディングされ、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在のピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることができる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
【0087】
一部の実施形態では、インターピクチャ予測において双予測法を使用することができる。双予測法によれば、ビデオにおける現在のピクチャよりもデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去および未来にあり得る)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャを使用する。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングされることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0088】
さらに、マージモード技法をインターピクチャ予測に適用して、コーディング効率を向上させることができる。
【0089】
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャ内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素など、同一のサイズを有する。一般に、CTUは、1つの輝度CTBと2つの彩度CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割されることができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16つの16×16画素のCUに分割されることができる。一例では、各CUを解析して、インター予測タイプまたはイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的及び/又は空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。通常、各PUは、1つの輝度予測ブロック(PB)と2つの彩度PBを含む。一実施形態では、コーディング(エンコード/デコード)における予測操作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、輝度値)の行列を含む。
【0090】
図6は、本開示の別の実施形態によるビデオエンコーダ603の図を示す。ビデオエンコーダ603は、一連のビデオピクチャ内の現在ビデオピクチャにおけるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コード化されたビデオシーケンスの一部であるコーディングピクチャにエンコードするように構成される。一例では、図3の例におけるビデオエンコーダ303の代わりにビデオエンコーダ603を使用する。
【0091】
HEVCの例では、ビデオエンコーダ603は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ603は、例えばレート歪み最適化を用いて、処理ブロックをイントラモード、インターモード、または双予測モードにより最も良くコーディングするか否かを決定する。処理ブロックがイントラモードでコーディングされようとする場合、ビデオエンコーダ603は、イントラ予測法を用いて処理ブロックをコーディングピクチャにエンコードすることができる。また、処理ブロックがインターモードまたは双予測モードでコーディングされようとする場合、ビデオエンコーダ603は、それぞれインター予測または双予測法を用いて、処理ブロックをコーディングピクチャにエンコードすることができる。特定のビデオコーディング技術では、マージモードは、予測子外のコーディング動きベクトル成分の利便を介することなく、1つ以上の動きベクトル予測子から動きベクトルを導出するインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ603は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0092】
図6の例では、ビデオエンコーダ603は、図6に示すように互いに結合されたインターエンコーダ630、イントラエンコーダ622、残差算出部623、スイッチ626、残差エンコーダ624、汎用制御部621およびエントロピーエンコーダ625を含む。
【0093】
インターエンコーダ630は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコード法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な技法を用いてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされたデコード参照ピクチャである。
【0094】
イントラエンコーダ622は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既にコーディングされたブロックと比較し、量子化された変換後係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラエンコード法によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ622は、イントラ予測情報および同一のピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も算出する。
【0095】
汎用制御部621は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ603の他の構成要素を制御するように構成される。一例では、汎用制御部621は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ626に提供する。例えば、モードがイントラモードである場合、汎用制御部621は、残差算出部623が使用するためのイントラモード結果を選択するようにスイッチ626を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ625を制御する。また、モードがインターモードである場合、汎用制御部621は、残差算出部623が使用するためのインター予測結果を選択するようにスイッチ626を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ625を制御する。
【0096】
残差算出部623は、受信されたブロックとイントラエンコーダ622またはインターエンコーダ630から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ624は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ624は、残差データを空間領域から周波数領域へと変換し、変換係数を生成するように構成される。その後、変換係数は量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ603は、残差デコーダ628をも含む。残差デコーダ628は、逆変換を実行し、デコード残差データを生成するように構成される。デコード残差データは、イントラエンコーダ622およびインターエンコーダ630によって適切に使用されることができる。例えば、インターエンコーダ630は、デコード残差データよびインター予測情報に基づいて、デコードブロックを生成することができ、イントラエンコーダ622は、デコード残差データおよびイントラ予測情報に基づいて、デコードブロックを生成することができる。一部の例では、デコードブロックは、デコードピクチャを生成するように適切に処理され、デコードピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。
【0097】
エントロピーエンコーダ625は、エンコードブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ625は、HEVC規格などの適切な規格に従って様々な情報をビットストリームに含ませるように構成される。一例では、エントロピーエンコーダ625は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含ませるように構成される。開示された主題によれば、インターモードまたは双予測モードのマージサブモードでブロックをコーディングする場合、残差情報はないことに留意されたい。
【0098】
図7は、本開示の別の実施形態によるビデオデコーダ710の図を示す。ビデオデコーダ710は、コード化されたビデオシーケンスの一部であるコーディングピクチャを受信し、コーディングピクチャをデコードして、再構成ピクチャを生成するように構成される。一例では、図3の例におけるビデオデコーダ310の代わりにビデオデコーダ710を使用する。
【0099】
図7の例では、ビデオデコーダ710は、図7に示されるように互いに結合されたエントロピーデコーダ771、インターデコーダ780、残差デコーダ773、再構成モジュール774、およびイントラデコーダ772を含む。
【0100】
エントロピーデコーダ771は、コーディングピクチャから、コーディングピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成されることができる。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、後の2つのマージサブモードまたは別のサブモード)、それぞれイントラデコーダ772またはインターデコーダ780による予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形態での残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードであれば、インター予測情報は、インターデコーダ780に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ772に提供される。残差情報は、逆量子化を施されることができ、残差デコーダ773に提供される。
【0101】
インターデコーダ780は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0102】
イントラデコーダ772は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0103】
残差デコーダ773は、逆量子化を実行することで、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ773は、(量子化器パラメータ(QP)を含めるように)特定の制御情報をも必要とする場合があり、この情報は、エントロピーデコーダ771によって提供されてもよい(データパスは、低ボリューム制御情報のみであり得るため、示されていない)。
【0104】
再構成モジュール774は、空間領域において、残差デコーダ773によって出力された残差と、(場合によってはインターまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構成ビデオの一部となり得る再構成ピクチャの一部であり得る再構成ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができる。
【0105】
なお、ビデオエンコーダ303、503および603とビデオデコーダ310、410および710は、任意の適切な技法を用いて実施されることができる。一実施形態では、ビデオエンコーダ303、503および603とビデオデコーダ310、410および710は、1つ以上の集積回路を用いて実施されることができる。別の実施形態では、ビデオエンコーダ303、503および603とビデオデコーダ310、410および710は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実施されることができる。
【0106】
II.ブロック分割構造
【0107】
1.四分木ブロック分割構造
【0108】
ブロック分割構造は、コーディングツリーと呼ばれる。一部の実施形態では、四分木構造を用いて、コーディングツリーユニット(CTU)はコーディングユニット(CU)に分割されて、様々なローカル特性に適応する。インターピクチャ(時間的)またはイントラピクチャ(空間的)予測を用いてピクチャ領域をコーディングするか否かの決定は、CUレベルで行われる。各CUは、予測ユニット(PU)分割のタイプにしたがって、1つ、2つまたは4つのPUに分割することができる。1つのPU内では、同一の予測プロセスが適用され、関連情報がPUごとにデコーダに送信される。
【0109】
PU分割タイプに基づく予測プロセスを適用して残差ブロックを求めた後、別の四分木構造にしたがってCUを変換ユニット(TU)に分割することができる。このように、CU、PU、TUを含む複数の分割の概念が存在することが分かる。一部の実施形態では、CUまたはTUは正方形でなければならないが、PUは正方形であってもよく、長方形であってもよい。また、一部の実施形態では、1つのコーディングブロックをさらに4つの正方形のサブブロックに分割し、サブブロック、すなわちTUごとに変換を行うようにしてもよい。各TUはさらに、残差四分木(RQT)と呼ばれる四分木構造を用いて、より小さいTUに再帰的に分割することができる。
【0110】
ピクチャ境界において、一部の実施形態では、暗黙的な四分木分割を採用して、ブロックのサイズがピクチャ境界に収まるまで、ブロックを四分木分割し続けることができる。
【0111】
2.四分木+二分木(QTBT)ブロック分割構造
【0112】
一部の実施形態では、四分木+二分木(QTBT)構造が採用されている。QTBT構造は、複数の分割タイプの概念(CU、PU、TUの概念)を取り除き、CUの分割形状に柔軟に対応できる。QTBTブロック構造では、CUの形状は正方形であってもよく、長方形であってもよい。
【0113】
図8Aは、図8Bに示すQTBT構造820を用いて分割されたCTU810を示す。CTU810はまず、四分木構造によって分割される。四分木の葉ノードはさらに、二分木構造または四分木構造によって分割される。二分木分割には、対称水平分割と対称垂直分割との2種類があり得る。二分木の葉ノードは、さらなる分割なしに予測と変換処理に用いることができるCUと呼ぶことができる。これにより、QTBTのコーディングブロック構造において、CU、PU、TUのブロックサイズを同じにすることができる。
【0114】
一部の実施形態では、CUは異なる色成分のコーディングブロック(CB)を含むことができる。例えば、4:2:0の彩度フォーマットのPおよびBスライスの場合、1つのCUは、1つの輝度CBと、2つの彩度CBとを含む。CUは、単色成分のCBを含むことができる。例えば、Iスライスの場合、1つのCUは輝度CBを1つのみ含んでもよく、2つの彩度CBのみを含んでもよい。
【0115】
一部の実施形態では、QTBT分割方式には、以下のパラメータが定義される。
・CTU size:四分木の根ノードのサイズ、例えばHEVCと同じ概念。
・MinQTSize:四分木葉ノードの許容できる最小サイズ
・MaxBTSize:二分木根ノードの許容できる最大サイズ
・MaxBTDepth:二分木の許容できる最大深さ
・MinBTSize:二分木葉ノードの許容できる最小サイズ
【0116】
QTBT分割構造の一例では、CTU sizeを128×128の輝度サンプルと、対応する2つの64×64ブロックの彩度サンプルとし、MinQTSizeを16×16とし、MaxBTSizeを64×64とし、MinBTSize(幅と高さの両方)を4×4とし、MaxBTDepthを4とする。上記四分木分割はCTUに適用されて、四分木葉ノードが生成される。四分木葉ノードのサイズは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTU size)であり得る。四分木葉ノードが128×128である場合には、MaxBTSize(すなわち、64×64)を超えているため、さらに二分木によって分割されることはない。そうでない場合、四分木葉ノードをさらに二分木によって分割することができる。したがって、四分木葉ノードは二分木の根ノードでもあり、二分木の深さが0である。
【0117】
二分木の深さがMaxBTDepth(すなわち、4)に達している場合、さらなる分割は考えない。二分木ノードの幅がMinBTSize(すなわち、4)に等しい場合、さらなる水平分割は考えない。同様に、二分木ノードの高さがMinBTSizeに等しい場合、さらなる垂直分割は考えない。二分木の葉ノードは、さらに分割することなく、予測・変換処理される。一実施形態では、最大のCTU sizeは256×256の輝度サンプルである。
【0118】
図8Aおよび8Bにおいて、四分木分割は実線で表され、二分木分割は破線で表される。二分木の各分割(すなわち、非葉)ノードにおいて、どの分割タイプ(すなわち、水平または垂直)を用いているかを示す1つのフラグをシグナリングすることができる。例えば、0は水平分割を示し、1は垂直分割を示す。四分木分割について、水平方向と垂直方向の両方にブロックを分割し、4つのサブブロックを均等なサイズで生成することができるため、分割タイプを示す必要はない。
【0119】
一部の実施形態では、QTBT方式は、輝度と彩度とが別々のQTBT構造を有する柔軟性に対応している。例えば、PおよびBスライスにおいて、1つのCTU内の輝度および彩度ブロックは、同一のQTBT構造を共有する。しかしながら、Iスライスについては、輝度CTBはQTBT構造によってCUに分割され、彩度ブロックは別のQTBT構造によって彩度CUに分割される。このように、IスライスのCUは、輝度成分のコーディングブロックまたは2つの彩度成分のコーディングブロックからなり、PまたはBスライスのCUは、全ての3つの色成分のコーディングブロックからなる。
【0120】
一部の実施形態では、小さいブロックのインター予測が制限されて、動き補償のメモリアクセスが低減される。例えば、4×8および8×4のブロックについては双予測が対応せず、4×4ブロックについてはインター予測が対応しない。
【0121】
3.三分木(TT)ブロック分割構造
【0122】
一部の実施形態では、ピクチャを分割するために、マルチタイプツリー(MTT)構造が用いられる。MTT構造は、QTBT構造よりも柔軟な木構造である。MTTにおいては、四分木と二分木に加えて、図9Aおよび図9Bにそれぞれ示すような水平中心側三分木と垂直中心側三分木が採用されている。三分木分割は、四分木と二分木分割を補完することができる。例えば、四分木と二分木はブロック中心に交差して分割するのに対して、三分木分割はブロック中心に位置するオブジェクトを捉えることができる。三分木による分割の幅および高さが2の累乗であるので、さらなる変換分割が不要となる。
【0123】
III.ロスレスコーディングモードの例
【0124】
情報の損失が診断エラーをもたらす可能性がある医用画像など、ビデオ品質の低下が望ましくない特定のアプリケーションシナリオをサポートするために、一部の実施形態では、ロスレスコーディング手法を有効にすることができる。
【0125】
一実施形態では、ロスレスコーディングモードが有効化されると、変換および量子化をバイパスすることができ、デブロッキングフィルタなどの1つまたは複数のループフィルタも無効にすることができる。transquant_bypass_enable_flagで示されるフラグは、ピクチャーパラメータセット(PPS)においてシグナリングすることができる。デコーダがこのようなフラグを受信し、その値が1にシグナリングされる場合、デコーダは、変換、量子化、ループフィルタ処理をバイパスすることができる。一例として、ロスレスコーディングモードを実装するPPSのシンタックス表(表1)を以下に示す。transquant_bypass_enable_flagは、表1の行20に示される。
【表1】

【0126】
例えば、transquant_bypass_enable_flagが1である場合、cu_transquant_bypass_flagが存在できることを指定する。transquant_bypass_enable_flagが0である場合、cu_transquant_bypass_flagが存在しないことを指定する。各CUについて、transquant_bypass_enable_flagが真である場合、cu_transquant_bypass_flagで示される別のフラグをさらにCUにシグナリングして、現在CUに対して変換、量子化、およびループフィルタが無効であるか否かを示すことができる。一例では、cu_transquant_bypass_flagが真にシグナリングされた場合、変換スキップモード(TSM)を示すシンタックス要素(transform_skip_flag)はシグナリングされず、記号データ隠蔽モードは無効になる。
【0127】
一例では、1であるcu_transquant_bypass_flagは、スケーリングおよび変換プロセスと、ループ内フィルタプロセスがバイパスされていることを指定する。cu_transId_bypass_flagが存在しない場合、0と推定される。
【0128】
IV.ロッシーコーディングモードの例
【0129】
1.共同彩度残差コーディングモード
【0130】
一部の実施形態では、共同彩度残差コーディングモード(共同CbCr残差(JCCR)コーディングモードとも呼ばれる)を採用することができる。CbとCrの残差が互いに逆相関するように見えるため、JCCRモードはこの現象を利用して、彩度残差を共同にコーディングすることができる。JCCRモードでは、変換ユニットの2つの彩度ブロックに示される単一残差が存在する。示された残差は、第1のチャネルの予測ブロック(通常Cbを表す)に加算され、第2のチャネルの予測ブロック(通常Crを表す)から差し引かれる。
【0131】
一例では、CbおよびCrの両方のコーディングブロックフラグ(cbf)が真である場合、共同彩度残差モードは、ビットストリーム内のフラグで示される。当該モードが有効化されると、単一の残差ブロックがデコードされる。一例では、共同残差ブロックのビットストリームシンタックスおよびデコーディングプロセスは、通常のCb残差と同様にすることができる。Crブロックの残差は、デコードされた共同残差を打ち消すことによって生成される単一の残差が2つのブロックの残差を表すために使用されるため、このモードでは、彩度残差の個別のコーディングに使用されるものよりも低いQPを使用することが望ましい場合が多い。一例では、共同モードに―1の彩度QPオフセットを使用し、個別の彩度コーディングに+1を使用する。
【0132】
JCCRモードを実装するシンタックスの例を以下に説明する。表2は、PPSローバイトシーケンスペイロード(RBSP)のシンタックスを示す。表2の第4行のシンタックス要素pps_joint_cbcr_qp_offsetは、QP’CbCrの導出に使用される輝度量子化パラメータQp’Yへのオフセットを指定する。一例では、pps_joint_cbcr_qp_offsetの値は、―12から+12までの範囲にすることができる。ChromaArrayTypeが0である場合、pps_joint_cbcr_qp_offsetはデコードプロセスにおいて使用されず、デコーダはその値を無視できる。

【表2】
【0133】
表3は、一般的なタイル群ヘッダのシンタックスを示す。表3の第5行のシンタックス要素tile_group_joint_cbcr_qp_offsetは、Qp’CbCr量子化パラメータの値を決定する際に、pps_joint_cbcr_qp_offsetの値に加算する差を指定する。一例では、tile_group_joint_cbcr_qp_offsetの値は、―12から+12までの範囲にすることができる。tile_group_joint_cbcr_qp_offsetが存在しない場合、0と推定される。pps_joint_cbcr_qp_offset+tile_group_joint_cbcr_qp_offsetの値は、―12から+12までの範囲内にあるべきである。

【表3】
【0134】
表4は、残差コーディングシンタックスを示す。表4の行2のシンタックス要素tu_joint_cbcr_residual[x0][y0]は、示されたCb残差を使用してCbとCrの残差の両方を導出するか否かを指定する。配列インデックスx0、y0は、ピクチャの左上の輝度サンプルに対する、考えられた変換ブロックの左上の輝度サンプルの位置(x0,y0)を指定する。一例では、tu_joint_cbcr_residual[x0][y0]が1である場合、示されたCb残差を使用してCr残差を導出することを指定する。tu_joint_cbcr_residual[x0][y0]が0である場合、他のシンタックス要素に応じてCr残差がビットストリームに存在する可能性があることを指定する。tu_joint_cbcr_residual[x0][y0]が存在しない場合、0と推定される。

【表4】
【0135】
共同彩度残差コーディング処理の例では、以下のように量子化パラメータの導出プロセスを行うことができる。変数qPCb、qPCrおよびqPCbCrは、以下のように導出することができる。
qPiCb=Clip3(-QpBdOffsetC,69,QpY+pps_cb_qp_offset+tile_group_cb_qp_offset)
qPiCr=Clip3(-QpBdOffsetC,69,QpY+pps_cr_qp_offset+tile_group_cr_qp_offset)
qPiCbCr=Clip3(-QpBdOffsetC,69,QpY+pps_joint_cbcr_qp_offse+tile_group_joint_cbcr_qp_offset)
【0136】
ChromaArrayTypeが1である場合、変数qPCb、qPCrおよびqPCbCrは、それぞれqPiCb、qPiCrおよびqPCbCrに等しいインデックスqPiに基づいて、表8―12で指定されているQpCの値に等しく設定される。そうでない場合、変数qPCb、qPCrおよびqPCbCrは、それぞれqPiCb、qPiCrおよびqPCbCrに等しいインデックスqPiに基づいて、Min(qPi,63)に等しく設定される。CbおよびCr成分、Qp’CbおよびQp’Cr、ならびに共同Cb-CrコーディングQp’CbCrの彩度量子化パラメータは、以下のように導出される。
Qp’Cb=qPCb+QpBdOffsetC
Qp’Cr=qPCr+QpBdOffsetC
Qp’CbCr=qPCbCr+QpBdOffsetC
【0137】
共同彩度残差コーディング処理の例では、スケーリングおよび変換のために、残差サンプルresSamplesの(nTbW)x(nTbH)配列は、以下のように導出することができる。cIdxが2であり、tu_joint_cbcr_residual[xTbY][yTbY]が1である場合、x=0..nTbW-1、y=0..nTbH-1である残差サンプルresSamples[x][y]は以下のように導出される。
resSamples[x][y]=-resSamplesCb[x][y]
ここで、resSamplesCb[x][y]は、変換ブロック位置(xTbY,yTbY)を有しcIdxが1である彩度ブロックに対して生成された残差サンプル配列である。
【0138】
共同彩度残差コーディング処理の例では、変換係数スケーリングのために、量子化パラメータqPは以下のように導出される。cIdxが0である場合、以下が適用される。
qP=Qp’Y
そうでない場合、cIdxが1であり、tu_joint_cbcr_residual[xTbY][yTbY]が1である場合、以下が適用される。
qP=Qp’CbCr
【0139】
2.輝度マッピング・彩度スケーリング(LMCS)
【0140】
一部の実施形態では、ループフィルタ前の処理ブロックとして、輝度マッピング・彩度スケーリング(LMCS)と呼ばれるコーディングツールが追加される。LMCSは、2つの主成分を含むことができる。1)適応区分的線形モデルに基づく輝度成分のループ内マッピング、2)彩度成分については、輝度依存の彩度残差スケーリングが適用される。
【0141】
図10は、デコーダの視点からのLMCSアーキテクチャを示す。図10のブロック1011、1012、1013は、マッピング領域のどこに処理が適用されるかを示す。処理は、逆量子化および逆変換1011と、輝度イントラ予測1013と、輝度残差および輝度予測の加算1012とを含む。図10のブロック1015、1016、1018、1020~1024は、元(すなわち、マッピングされていない)の領域のどこに処理が適用されるかを示す。処理は、デブロッキング、ALFおよびSAOなどのループフィルタ1015または1022と、動き補償予測1018または1024と、彩度イントラ予測1021と、彩度残差および彩度予測の加算1020と、参照ピクチャとしてのデコードされたピクチャのデコードされたピクチャバッファ(DPB)への記憶1016または1023とを含む。図10のブロック1014、1017、および1019は、輝度信号1014および1017の順方向および逆方向マッピング、ならびに輝度依存の彩度スケーリングプロセス1019を含むLMCS機能ブロックである。一例では、LMCSは、シーケンスパラメータセット(SPS)フラグを使用して、シーケンスレベルで有効/無効にすることができる。
【0142】
2.1 区分的線形モデルによる輝度マッピングの例
【0143】
輝度成分のループ内マッピングは、圧縮効率を改善するためにダイナミックレンジ全体にコードワードを再分配することによって、入力信号のダイナミックレンジを調整する。輝度マッピングは、順方向マッピング関数FwdMap、および対応する逆方向マッピング関数InvMapを使用する。FwdMap関数は、16個の均等なピースを有する区分的線形モデルを用いてシグナリングされる。InvMap関数はシグナリングする必要はなく、代わりにFwdMap関数から導出される。
【0144】
輝度マッピングモデルは、タイル群レベルでシグナリングされる。まず、存在フラグをシグナリングする。現在タイル群に輝度マッピングモデルが存在する場合、対応する区分的線形モデルパラメータをシグナリングする。区分的線形モデルは、入力信号のダイナミックレンジを16個の均等なピースに分割し、各ピースについて、そのピースに割り当てられたコードワード数を用いて、区分的線形モデルの線形マッピングパラメータを表す。一例として、10ビットの入力を行う。16個のピースのそれぞれには、デフォルトで64個のコードワードが割り当てられる。シグナリングされたコードワード数は、スケーリング係数を計算し、そのピースに応じてマッピング関数を調整するために使用される。タイル群レベルでは、現在タイル群に対して、図10に示すLMCSプロセスが適用されているか否かを示す別のLMCS有効化フラグがシグナリングされる。
【0145】
FwdMap区分的線形モデルの各i番目のピース(i=0・・・15)は、2つの入力軸点InputPivot[]、および2つの出力(マッピング)軸点MappedPivot[]によって定義される。
【0146】
InputPivot[]およびMappedPivot[]は、以下のように計算される(10ビットのビデオを想定する)。
(1)OrgCW=64
(2)i=0:16のそれぞれについて、InputPivot[i]=i*OrgCW
(3)i=0:16のそれぞれについて、MappedPivot[i]は次のように計算される。
MappedPivot[0]=0;
for(i=0;i<16;i++)
MappedPivot[i+1]=MappedPivot[i]+SignaledCW[i]
ここで、SignaledCW[i]は、i番目のピースについてのシグナリングされたコードワード数である。
【0147】
図10に示すように、インターコーディングブロックについて、動き補償予測はマッピング領域で行われる。言い換えると、DPBの参照信号に基づいて動き補償予測ブロックYpredが計算された後、FwdMap関数が適用されて、元の領域の輝度予測ブロックがマッピング領域にマッピングされる:
【数1】
1つのイントラコーディングブロックについて、イントラ予測はマッピング領域で実行されるため、FwdMap関数は適用されない。再構成されたブロックYが計算された後、InvMap関数が適用されて、マッピング領域の再構成された輝度値が元の領域の再構成された輝度値に変換される:
【数2】
InvMap関数は、イントラおよびインターコーディング輝度ブロックの両方に適用される。
【0148】
輝度マッピングプロセス(順方向及び/又は逆方向のマッピング)は、ルックアップ表(LUT)またはオンザフライ計算のいずれかを使用して実装することができる。LUTを使用する場合、FwdMapLUTおよびInvMapLUTはタイル群レベルで使用するために事前に計算および保存でき、順方向および逆方向のマッピングはそれぞれFwdMap(Ypred)=FwdMapLUT[Ypred]およびInvMap(Y)=InvMapLUT[Y]として簡単に実装することができる。あるいは、オンザフライ計算を使用してもよい。順方向マッピング関数FwdMapを例として説明する。輝度サンプルが属するピースを把握するために、サンプル値を6ビット(16個の均等なピースに相当)だけ右シフトする。そして、そのピースについての線形モデルパラメータを取り出し、オンザフライで適用して、マッピングされた輝度値を計算する。iをピースインデックスとし、a1、a2をそれぞれInputPivot[i]とInputPivot[i+1]とし、b1、b2をそれぞれMappedPivot[i]とMappedPivot[i+1]とする。FwdMap関数は以下のように評価される。
【数3】
【0149】
InvMap関数は、マッピング領域内のピースが同じサイズではないため、サンプル値が属するピースを把握するときに単純な右ビットシフトの代わりに条件付きチェックを適用する必要があることを除いて、同様の方法によってオンザフライで計算することができる。
【0150】
2.2 輝度依存の彩度残差スケーリングの例
【0151】
彩度残差スケーリングは、輝度信号とそれに対応する彩度信号との間の相互作用を補償するように設計される。また、彩度残差スケーリングが有効であるか否かは、タイル群レベルでシグナリングされる。また、輝度マッピングが有効であり、かつ、現在タイル群にデュアルツリー分割(個別の彩度ツリーとも呼ばれる)が適用されていない場合、輝度依存の彩度残差スケーリングが有効であるか否かを示す追加のフラグはシグナリングされる。また、輝度マッピングが使用されていない場合、または現在タイル群でデュアルツリー分割が使用されている場合、輝度依存の彩度残差スケーリングは無効になる。さらに、面積が4以下の彩度ブロックについては、輝度依存の彩度残差スケーリングを無効とすることができる。
【0152】
彩度残差スケーリングは、対応する輝度予測ブロック(イントラおよびインターコーディングブロックの両方)の平均値に依存する。avgY’は輝度予測ブロックの平均値として示される。CScaleInvの値は、以下の手順で計算される。
(1)InvMap関数に基づいて、avgY’が属する区分的線形モデルのインデックスYIdxを求める。
(2)CScaleInv=cScaleInv[YIdx]、ここで、cScaleInv[]は事前に計算された16ピースのLUTである。
【0153】
現在のブロックが、イントラ、インター/イントラ結合予測(CIIP)、またはイントラブロックコピー(IBC、別名は現在のピクチャ参照またはCPR)モードとしてコーディングされている場合、avgY’は、イントラ、CIIP、またはIBCにおいて予測された輝度値の平均値として計算される。そうでない場合、avgY’は、順方向にマッピングされたインター予測された輝度値の平均値として計算される(図10におけるY’pred)。サンプルごとに実行される輝度マッピングとは異なり、CScaleInvは彩度ブロックの定数値である。CScaleInvによれば、彩度残差スケーリングは、以下のように適用される。
エンコーダ側:
【数4】
デコーダ側:
【数5】
【0154】
3.量子化残差ブロックによる差分パルス符号変調(BDPCM)
【0155】
一部の実施形態では、再構成されたサンプルを使用して、ライン毎に行または列を予測するBDPCMが採用されている。例えば、シグナリングされたBDPCM方向は、垂直予測と水平予測のどちらが使用されているかを示す。使用される参照画素は、フィルタリングされていないサンプルである。予測誤差は、空間領域で量子化される。画素は、非量子化された予測誤差を予測に加算することによって再構成される。
【0156】
BDPCMの代替方式として、量子化された残差領域BDPCMが一部の実施形態で使用される。使用されるシグナリングと予測の方向は、BDPCM方式と同じであってもよい。イントラ予測は、イントラ予測と同様な予測方向(水平または垂直予測)でのサンプルコピーによってブロック上で実行される。残差は量子化され、量子化された残差とその予測子(水平または垂直)の量子化値との間のデルタがコーディングされる。これは、以下のように説明することができる。
【0157】
サイズM(行)×N(列)のブロックについて、フィルタリングされていないサンプルを使用して、上または左のブロック境界サンプルから水平方向(予測ブロック全体において左の隣接画素値をラインごとにコピー)または垂直方向(予測ブロックにおいて上の隣接ラインをラインごとにコピー)にイントラ予測を実行した後の予測残差を
i,j,0≦i≦M―1,0≦j≦N―1
とする。
Q(ri,j),0≦i≦M―1,0≦j≦N―1
が残差ri,jの量子化バージョンを示し、ここで、残差は元のブロックと予測ブロックの値の差である。そして、量子化された残差サンプルにブロックDPCMが適用されることによって、要素
によってM×N配列
が変更される。
【0158】
垂直BDPCMがシグナリングされる場合、以下の通りである
【数6】
【0159】
水平予測については、同様の規則が適用され、残差の量子化されたサンプルは、
【数7】
によって得られる。
【0160】
残差の量子化されたサンプル
は、デコーダに送信される。
【0161】
デコーダ側では、上記計算を逆にして、
Q(ri,j),0≦i≦M―1,0≦j≦N―1
を生成する。垂直予測について、
【数8】
【0162】
水平予測について、
【数9】
【0163】
逆量子化された残差

は、イントラブロック予測値に加算されて、再構成されたサンプル値を生成する。
【0164】
V.残差コーディング方式
【0165】
サンプルのブロックは、空間領域(例えば、変換がスキップされるとき)または変換領域においてエントロピーコーディングすることができる。したがって、エントロピーコーディング変換係数および変換なしの係数に対して異なるエントロピーコーディング方式を選択して、コーディング効率を向上させることができる。
【0166】
1.変換係数のエントロピーコーディング方式
【0167】
一部の実施形態では、変換係数のエントロピーコーディングが採用される。例えば、図11に示すように、コーディングブロック1110は、まず4x4サブブロック1120に分割され、コーディングブロック1110内のサブブロック1120およびサブブロック内の変換係数は、事前定義されたスキャン順序に従ってコーディングされる。少なくとも1つの非ゼロ変換係数を持つサブブロックについて、変換係数のコーディングは4つのスキャンパスに分けられる。absLevelが現在変換係数の絶対値であると仮定し、1番目のパスでは、シンタックス要素sig_coeff_flag(absLevelが0より大きいことを示す)、par_level_flag(absLevelのパリティを示す)、およびrem_abs_gt1_flag(absLevel―1)>>1が0より大きいことを示す)がコーディングされ、2番目のパスでは、シンタックス要素rem_abs_gt2_flag(absLevelが4より大きいことを示す)がコーディングされ、3番目のパスでは、必要に応じて、係数レベルの残りの値(abs_remainderと呼ぶ)が呼び出され、4番目のパスでは、記号情報がコーディングされる。
【0168】
変換係数間の相関を利用するために、図11に示されるローカルテンプレート1130によってカバーされた、事前にコーディングされた係数が、現在係数のコンテキスト選択において使用される。ローカルテンプレート1130は、現在変換係数1131と、5つの隣接する係数1132とを含むことができる。absLevel1[x][y]が1番目のパスの後の位置(x、y)での係数の部分的に再構成された絶対レベルを表し、dが現在係数の対角位置(d=x+y)を表し、numSigがローカルテンプレート内のゼロ以外の係数の数を表し、sumAbs1がローカルテンプレートでカバーされる係数の部分的に再構成された絶対レベルabsLevel1[x][y]の合計を表すとする。
【0169】
現在係数のsig_coeff_flagをコーディングする場合、sumAbs1と対角位置dに応じてコンテキストモデルインデックスは選択される。より具体的には、輝度成分について、コンテキストモデルインデックスは以下のように決定される。
ctxSig=18*max(0,state-1)+min(sumAbs1,5)+(d<2?12:(d<5?6:0)),
これは、以下と同様である。
ctxIdBase=18*max(0,state-1)+(d<2?12:(d<5?6:0))
ctxSig=ctxIdSigTable[min(sumAbs1,5)]+ctxIdBase
【0170】
彩度について、コンテキストモデルインデックスは以下のように決定される。
ctxSig=12*max(0,state-1)+min(sumAbs1,5)+(d<2?6:0),
これは、以下と同様である。
ctxIdBase=12*max(0,state-1)+(d<2?6:0)
ctxSig=ctxIdSigTable[min(sumAbs1,5)]+ctxIdBase
ここで、stateは、依存量子化が有効である場合に使用されるスカラー量子化器を指定し、stateは状態遷移処理を使用して導出される。ctxIdSigTableの表にはコンテキストモデルのインデックスオフセットctxIdSigTable[0~5]={0、1、2、3、4、5}が記憶される。
【0171】
現在係数のpar_level_flagをコーディングする場合、コンテキストモデルインデックスは、sumAbs1、numSig、および対角位置dに応じて選択される。より具体的には、輝度成分について、コンテキストモデルインデックスは以下のように決定される。
ctxPar=1+min(sumAbs1-numSig,4)+(d==0?15:(d<3?10:(d<10?5:0))),
これは、以下と同様である。
ctxIdBase=(d==0?15:(d<3?10:(d<10?5:0)))
ctxPar=1+ctxIdTable[min(sumAbs1-numSig,4)]+ctxIdBase
【0172】
彩度について、コンテキストモデルインデックスは以下のように決定される。
ctxPar=1+min(sumAbs1-numSig,4)+(d==0?5:0),
これは、以下と同様である。
ctxIdBase=(d==0?5:0)
ctxPar=1+ctxIdTable[min(sumAbs1-numSig,4)]+ctxIdBase
ここで、ctxIdTableの表には、コンテキストモデルのインデックスオフセットctxIdTable[0~4]={0、1、2、3、4}が記憶される。
【0173】
現在係数のrem_abs_gt1_flagとrem_abs_gt2_flagをコーディングする場合、それらのコンテキストモデルインデックスは、par_level_flagと同じ方法で決定される。
ctxGt1=ctxPar および ctxGt2=ctxPar
【0174】
rem_abs_gt1_flagとrem_abs_gt2_flagには異なるコンテキストモデルのセットが使用される。これは、ctxGt1がctxGt2に等しいにもかかわらず、rem_abs_gt1_flagに使用されるコンテキストモデルがrem_abs_gt2_flagのコンテキストモデルとは異なることを意味する。
【0175】
2.変換スキップモード(TSM)およびブロックによる残差DPCMモード(残差領域BDPCM)の残差のエントロピーコーディング
【0176】
一部の実施形態では、残差コーディングを、量子化された予測残差(空間領域)を表す変換スキップおよびBDPCM残差レベルの統計値および信号特性に適合させるために、上述した変換係数の残差コーディング方式は、以下に説明するように、変更されてTSMおよびBDPCMモードに適用される。
【0177】
3つのコーディングパス:1番目のコーディングパスでは、sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flagがまず1つのパスでコーディングされる。2番目のパスでは、abs_level_gtX_flagがコーディングされ、ここでXは3、5、7、…であってもよい。3番目のパスでは、残りの係数レベルがコーディングされる。コーディングパスは、係数群(CG)レベルにおいて動作し、すなわち、各CGに3つのコーディングパスが実行される。
【0178】
最後の有意走査位置なし:残差信号は、予測後の空間残差を反映し、変換によるエネルギー圧縮はTSに対して実行されないため、変換ブロックの右下隅において後続ゼロまたは有意でないレベルの確率が高くなることはなくなる。したがって、この場合、最後の有意走査位置シグナリングは省略される。代わりに、処理される1番目のサブブロックは、変換ブロック内の最右下のサブブロックである。
【0179】
サブブロックコーディングブロックフラグ(CBF):最後の有意走査位置シグナリングがないので、TS用のcoded_sub_block_flagを用いたサブブロックのCBFシグナリングは、以下のように変更することができる。
【0180】
(1)量子化の結果、前述の有意でないシーケンスは、依然として変換ブロック内で局所的に発生する可能性がある。したがって、最後の有意走査位置は前述のように削除され、すべてのサブブロックに対してcoded_sub_block_flagがコーディングされる。
【0181】
(2)DC周波数位置をカバーするサブブロック(左上のサブブロック)のcoded_sub_block_flagは、特殊なケースを示す。一例では、このサブブロックのcoded_sub_block_flagはシグナリングされず、常に1と推定される。最後の有意走査位置が別のサブブロックに位置している場合、DCサブブロックの外側に少なくとも1つの有意レベルがあることを意味する。したがって、このサブブロックのcoded_sub_block_flagは1と推定されるが、DCサブブロックにはゼロ/有意でないレベルのみを含む可能性がある。TSに最後の走査位置情報がない場合、各サブブロックのcoded_sub_block_flagがシグナリングされる。これには、他のすべてのcoded_sub_block_flagシンタックス要素がすでに0である場合を除いて、DCサブブロックのcoded_sub_block_flagも含まれる。この場合、DC coded_sub_block_flagは1と推定される(inferDcSbCbf=1)。このDCサブブロックには少なくとも1つの有意レベルが存在する必要があるため、このDCサブブロック内の他のすべてのsig_coeff_flagシンタックス要素が0である場合、(0、0)の1番目の位置のsig_coeff_flagシンタックス要素はシグナリングされず、代わりに1と導出される(inferSbDcSigCoeffFlag=1)。
【0182】
(3)coded_sub_block_flagのコンテキストモデリングは変更される。コンテキストモデルインデックスは、現在サブブロックの右側のcoded_sub_block_flagと下のcoded_sub_block_flagの論理和ではなく、両者の合計として計算される。
【0183】
sig_coeff_flagコンテキストモデリング:sig_coeff_flagコンテキストモデリングのローカルテンプレートは、現在の走査位置の右隣(NB)と下隣(NB)のみを含むように変更される。コンテキストモデルのオフセットは、有意隣接位置の数sig_coeff_flag[NB]+sig_coeff_flag[NB]である。したがって、現在の変換ブロック内の対角線
に応じて異なるコンテキストセットの選択は削除される。これにより、sig_coeff_flagフラグをコーディングするための3つのコンテキストモデルと単一のコンテキストモデルセットが作成される。
【0184】
abs_level_gt1_flagおよびpar_level_flagコンテキストモデリング:abs_level_gt1_flagおよびpar_level_flagに単一のコンテキストモデルが採用される。
【0185】
abs_remainderのコーディング:変換スキップの残差絶対レベルの経験分布は、通常、ラプラシアン分布または幾何分布に適合するが、変換係数の絶対レベルよりも多い非定常部分が存在する。特に、連続実現のウィンドウ内の分散は、残差の絶対レベルの方が高い。これは、abs_remainderシンタックスの2値化とコンテキストモデリングの以下の変更の動機となる。
【0186】
(1)2値化においてより高いカットオフ値、すなわち、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flagを用いたコーディングからabs_remainderのライスコードへの遷移点、ならびに各ビンの位置に専用のコンテキストモデルを使用すると、圧縮効率が高くなる。カットオフを大きくすると、「Xより大きい」フラグが多くなり、例えば、カットオフに達するまで、abs_level_gt5_flag、abs_level_gt7_flagなどが導入される。カットオフ自体は5に固定される(numGtFlags=5)。
【0187】
(2)ライスパラメータ導出のテンプレートが変更され、すなわち、現在走査位置の左隣と下隣のみが、sig_coeff_flagコンテキストモデリングのローカルテンプレートと同様であると見なされる。
【0188】
coeff_sign_flagコンテキストモデリング:記号シーケンス内の非定常部分、および予測残差にバイアスがかかることが多いことから、グローバルな経験分布がほぼ均一に分布している場合でも、記号は、コンテキストモデルを使用してコーディングすることができる。記号のコーディングには単一の専用コンテキストモデルが使用され、sig_coeff_flagの後に記号が解析されて、コンテキストコーディングされたすべてのビンがパースされる。
【0189】
コンテキストコーディングされたビンの制限:TUごとのコンテキストコーディングされたビンの総数は、TU面積サイズの2倍に制限され、例えば、16x8のTUのコンテキストコーディングされたビンの最大数は16x8x2=256である。コンテキストコーディングされたビンの予算はTUレベルで消費され、すなわち、CGごとのコンテキストコーディングされたビンの個々の予算の代わりに、現在のTU内のすべてのCGがコンテキストコーディングされたビンの1つの予算を共有する。
【0190】
例として、表5は変換スキップ残差コーディングシンタックスを示す。

【表5】

【0191】
VI.ロッシーコーディングモードとロスレスコーディングモードとの間の相互作用
【0192】
一部の実施形態では、ロスレスコーディングモードが採用される。したがって、ロスレスコーディングモードを可能にするシンタックス要素は、ロッシーコーディングモードの動作と相互作用することができる。ロッシーコーディングモードは、入力ビデオ信号と再構成されたビデオ信号との差を生成する可能性がある。ロッシーコーディングモードは、例えば、多重変換選択(MTS)、二次変換(ST)、共同彩度残差エントロピーコーディング、インループリシェーパー(または輝度マッピング・彩度スケーリング、LMCS)、イントラ/インター結合予測(CIIP)、量子化領域(または量子化残差)BDPCM、依存量子化、変換スキップ(TS)コーディングモード、サブブロック変換(SBT)コーディングモードなどを含む。
【0193】
一部の実施形態では、各コーディングブロック(または各コーディングユニット)に対してロスレスコーディングモードが有効であるか否かを示すために、フラグをCUレベルでシグナリングすることができる。一例として、表6は、コーディングユニットのシンタックスを示す。表6の第1行のシンタックス要素はcu_lossless_mode_flagであり、表6のシンタックスで指定されるように、コーディングブロック(またはコーディングユニット)(x0、y0、cbWidth、cbHeight、treeType)にロスレスコーディングモードが適用されるか否かを示す。一例では、cu_lossless_mode_flagが1である場合、コーディングユニットに対してロスレスコーディングモードが有効であることを指定することができ、一方で、cu_lossless_mode_flagが0である場合、コーディングユニットに対してロスレスコーディングモードが無効であることを指定することができる。

【表6】
【0194】
一部の実施形態では、シンタックス要素は、シンタックス要素に関連付けられた現在のビデオデータに対してロスレスモードを許可できるか否かを示すために、シグナリングすることができる。例えば、現在データは、タイル、スライス、タイル群、ピクチャ、シーケンス、ビデオ全体であってもよい。したがって、シンタックス要素は、タイルヘッダ、スライスヘッダ、タイル群ヘッダ、PPS、SPS、ビデオパラメータセット(VPS)などにおいてシグナリングすることができる。一例では、現在のビデオデータに対してロスレスモードが有効であるか否かを示すシンタックス要素は、lossless_mode_enable_flagで表される。lossless_mode_enable_flagのセマンティクスは以下のとおりである。lossless_mode_enable_flagが1である場合、cu_lossless_mode_flagが存在することを指定する。lossless_mode_enable_flagが0である場合、cu_lossless_mode_flagが存在しないことを指定する。
【0195】
表7は、コーディングユニットのシンタックスの例を示す。表7の第1行では、lossless_mode_enable_flagが検証される。lossless_mode_enable_flagが真である場合(例えば、値が1である場合)、次のシンタックス要素がcu_lossless_mode_flagであると決定することができる。そうでない場合、cu_lossless_mode_flagが存在しないと決定することができる。

【表7】
【0196】
一実施形態では、ロスレスコーディングモードフラグcu_lossless_mode_flagは、現在のCUに対してロスレスコーディングモードが有効であることを示す値でシグナリングされる場合、共同彩度残差コーディングモードが適用されず、関連指示フラグtu_joint_cbcr_residualがシグナリングされない。tu_joint_cbcr_residualは、共同彩度残差コーディングモードが有効であるか否かを示すことができる。
【0197】
表8は、(x0,y0,log2TbWidth,log2TbHeight,cIdx)として定義されるコーディングブロックの残差コーディングシンタックスの例を示す。表8の第1行では、cu_lossless_mode_flagがコーディングブロックであり、指示フラグtu_joint_cbcr_residualがシグナリングされていないと決定することができる。cu_lossless_mode_flagが偽である(コーディングブロックに対してロスレスモードが有効ではないことを示す)場合、cIdx==2&&tu_cbf_cb[x0][y0]の結果(ブール値)に応じて、次のシンタックス要素が指示フラグtu_joint_cbcr_residualであると決定することができる。

【表8】
【0198】
一実施形態では、ロスレスコーディングモードフラグcu_lossless_mode_flagは、現在のCUに対してロスレスコーディングモードが有効であることを示す値でシグナリングされる場合、LMCSが現在のスライス(またはピクチャ、またはビデオシーケンス)に対して有効であるか否かに関係なく、LMCSは適用されない。
【0199】
一例として、図12はロスレスコーディングモードの実装に対応するように変更されたビデオコーディング規格の仕様のテキスト1200を示す。slice_lmcs_enabled_flagに基づくコーディングブロックの再構成プロセスは、テキスト1200において説明される。slice_lmcs_enabled_flagは、スライスヘッダ内においてシグナリング可能であり、コーディングブロックを含む各スライスにLMCSが有効であるか否かを示す。段落1201に、「cu_lossless_mode_flagが1に等しい」という条件1202が追加される。変更された段落1201によれば、条件1202が真である(ロスレスモードが有効である)場合、第1の操作1203を実行することができ、これはLMCSを無効にすることと同等である。条件1202が偽である場合、slice_lmcs_enabled_flagの値に応じて、第1の操作1203または第2の操作1204を実行することができる。
【0200】
図13は、ロスレスコーディングモードの実装に対応するように変更されたビデオコーディング規格の仕様の別のテキスト1300を示す。テキスト1300には、コーディングブロックを処理するためのCIIPモードの予測プロセスが記載されている。予測プロセスは、slice_lmcs_enabled_flagに依存することができる。段落1301に、「cu_lossless_mode_flagが0に等しい」という条件1302が追加される。変更された段落1301によれば、条件1302が偽である(ロスレスモードが有効である)場合、操作1303をスキップすることができ、これはLMCSを無効にすることと同等である。条件1302が真である場合、slice_lmcs_enabled_flagの値に応じて、操作1303を実行することができる。
【0201】
一実施形態では、ロスレスコーディングモードフラグcu_lossless_mode_flagは、現在のCUに対してロスレスコーディングモードが有効であることを示す値でシグナリングされる場合、残差領域DPCMは適用またはシグナリングされない。
【0202】
例として、表9は、コーディングユニットをコーディングするためのコーディングユニットのシンタックスの例を示す。表9の第1行では、高レベルのシンタックスlossless_mode_enable_flagがチェックされる。lossless_mode_enable_flagが真である場合、行2ではcu_lossless_mode_flagがシグナリングされると決定することができる。第12行では、cu_lossless_mode_flagが検証に使用される。cu_lossless_mode_flagが真である場合、第13行のbdpcm_flagがシグナリングされないと決定することができる。したがって、各残差領域BDPCMを無効にすることができる。bdpcm_flagは、現在のコーディングユニットに対して残差領域BDPCMコーディングモードが有効であるか否かを示すシンタックス要素とすることができる。

【表9】
【0203】
一実施形態では、ロスレスコーディングモードフラグcu_lossless_mode_flagは、現在のCUに対してロスレスコーディングモードが有効であることを示す値でシグナリングされる場合、一部のコーディングモード(例えば、MTS、変換スキップ(TS)モード、SBT、および二次変換(ST))が適用されないか、あるいは関連するシンタックス要素がシグナリングされない。
【0204】
例として、表10は、コーディングユニットをコーディングするためのコーディングユニットのシンタックスを示す。表10の第18行では、cu_lossless_mode_flagが検証に使用される。cu_lossless_mode_flagが真である(コーディングユニットに対してロスレスモードが有効であることを示す)場合、行25の指示フラグcu_sbt_flagはシグナリングされない。cu_sbt_flagは、コーディングユニットに対してSBTが有効であるか否かを示すことができる。したがって、SBTは適用されない。同様に、表10の第37行では、cu_lossless_mode_flagが検証に使用される。cu_lossless_mode_flagが真である場合、第39行のシンタックス要素st_idx[x0][y0]はシグナリングされない。st_idx[x0][y0]は、二次変換インデックスを表し、コーディングユニットに対して二次変換(ST)モードが有効であるか否かを示すことができる。したがって、STモードは適用されない。

【表10】

【0205】
別の例として、表11は、コーディングユニットを処理するための変換ユニットのシンタックスを示す。表11の第31行では、cu_lossless_mode_flagが検証に使用される。cu_lossless_mode_flagが真である(コーディングユニットに対してロスレスモードが有効であることを示す)場合、第33行の指示フラグtransform_skip_flag[x0][y0]および第35行のシンタックス要素tu_mts_idx[x0][y0]はシグナリングされない。transform_skip_flag[x0][y0]は、コーディングユニットに対してTSモードが有効であるか否かを示すことができる。tu_mts_idx[x0][y0]は、選択された変換のインデックス、およびMTSが有効であるか否かを示すことができる。したがって、TSモードまたはMTSは適用されない。

【表11】

【0206】
一実施形態では、use_lossless_mode_flagで示される高レベルのシンタックス要素は、SPS、PPS、VPS、スライスヘッダ、タイルヘッダ、またはタイル群ヘッダでシグナリングして、現在のシーケンス、ピクチャ、ビデオ、スライス、タイル、またはタイル群に対してそれぞれロスレスコーディングモードのみが許可されるか否かを示すことができる。ロスレスコーディングモードを使用する場合、ロッシーコーディングモード(またはロッシーコーディングツール)をコーディングおよびデコーディングから除外することができる。
【0207】
VII.複数の係数コーディング方式からの選択
【0208】
一部の例では、ロスレスコーディングが採用され、予測残差は、変換されずに空間領域においてエントロピーコーディングされる。一部の例では、変換が予測残差に適用され、その後に通常の変換係数エントロピーコーディングが行われる。通常の変換係数と変換スキップ残差とのエントロピーコーディング方式が異なるように設計することができる。例えば、V.残差コーディング方式で説明されるように、隣接テンプレートは、通常の変換係数コーディングにおいてより複雑であり、スキャン順序は変換スキップ残差コーディングの順方向走査であり、記号ビットは変換スキップ残差コーディングにおけるコンテキストコーディングされたビンを使用してコーディングされる。したがって、一部の実施形態では、異なるシナリオ(例えば、変換係数コーディングまたは変換なしの残差コーディング)に対応して、異なる係数コーディング方式を適切に選択して適用することができる。係数コーディング方式の選択を容易にするために、複数の係数コーディング方式からの選択を示すシンタックス要素を、デコーダからエンコーダへのビットストリームにおいてシグナリングすることができる。
【0209】
一部の実施形態では、複数の係数コーディング方式が与えられる場合、ブロックレベルのインデックス(またはフラグやインジケータ)をシグナリングして、与えられた複数の係数コーディング方式のうちどの1つ(または複数)の係数コーディング方式を現在のブロックの係数コーディングに用いることができるかを示すことができる。
【0210】
一実施形態では、与えられた複数の係数コーディング方式は、変換なしの空間予測残差、例えば、変換スキップ(TS)モードまたはBDPCMモードを使用した残差に適用可能な係数コーディング方式と、通常の変換係数コーディングに適用可能な係数コーディング方式とを含む。一例では、2つの係数コーディング方式は、VVC(ドラフト6)(JVET―O2001)の「7.3.8.11 残差コーディングシンタックス」(residual_codingおよびresidual_ts_codingのシンタックス表)において定義されるものである。
【0211】
表12―14は、シンタックス要素tu_residual_coding_sel[x0][y0]が、2つの候補係数コーディング方式のどちらを使用するかを示すために使用されるシンタックス表の例を示す。tu_residual_coding_sel[x0][y0]が1である場合、現在のTUの残差をエントロピーコーディング(デコーディング)するためにresidual_codingが選択されることを指定し、またtu_residual_coding_sel[x0][y0]が0である場合、現在のTUの残差をエントロピーコーディング(デコーディング)するためにresidual_ts_codingが選択されることを指定する。residual_codingとresidual_ts_codingは、例えば、VVC(ドラフト6)(JVET―O2001)の「7.3.8.11」で定義される2つの異なる係数コーディング方式にすることができる。一例では、tu_residual_coding_sel[x0][y0]が現在のTUに存在しない場合、tu_residual_coding_sel[x0][y0]の値は0と推定される。
【0212】
表12は、変換ユニットをコーディングするための変換ユニットシンタックスを示している表12の第2行では、シンタックス要素tu_residual_coding_sel[x0][y0]が入力される。第4行では、tu_residual_coding_sel[x0][y0]が真である場合、第5行のresidual_codingの係数コーディング方式が変換ユニットの処理のために選択される。tu_residual_coding_sel[x0][y0]が偽である場合、第4行のtransform_skip_flag[x0][y0]の値に応じて、residual―codingまたはresidual_ts_codingのいずれかを選択することができる。また、第9―12行では、CrおよびCbの彩度成分がresidual_codingの係数コーディング方式によって処理される。

【表12】
【0213】
表13は、変換ユニットをコーディングするための別の変換ユニットシンタックスを示している表12の第2行では、シンタックス要素tu_residual_coding_sel[x0][y0]が入力される。第4行では、追加のシンタックスcu_transquant_bypass_flagが検証される。cu_transquant_bypass_flagは、変換および量子化処理がバイパスされているか否かを示す。cu_transquant_bypass_flagが真であり、かつ変換および量子化処理がバイパスされている場合、tu_residual_coding_sel[x0][y0]で示される係数コーディング方式の選択を第4行に適用することができる。cu_transquant_bypass_flagが偽である場合、選択は適用されない。
【0214】
cu_transquant_bypass_flagが真であるシナリオでは、tu_residual_coding_sel[x0][y0]が真である場合、第5行のresidual_codingの係数コーディング方式が変換ユニットの処理のために選択される。tu_residual_coding_sel[x0][y0]が偽である場合、第4行のtransform_skip_flag[x0][y0]の値に応じて、residual―codingまたはresidual_ts_codingのいずれかを選択することができる。また、表13の第9―12行では、CrおよびCbの彩度成分がresidual―codingの係数コーディング方式によって処理される。

【表13】
【0215】
表14は、変換ユニットをコーディングするための別の変換ユニットシンタックスを示す。表14の第2行では、シンタックス要素tu_residual_coding_sel[x0][y0]が入力される。第4行―第7行では、係数コーディング方式の選択は、シンタックス要素tu_residual_coding_sel[x0][y0]に基づいて変換ユニットの輝度成分に適用される。また、CrおよびCb彩度成分がresidual_codingの係数コーディング方式によって処理される表12および13とは異なり、表14の第10―13行および第15―18行では、係数コーディング方式の選択が、輝度成分の場合と同様にCrおよびCb彩度成分に適用される。

【表14】
【0216】
一実施形態では、ブロックレベルのインデックス(またはフラグまたはインジケータ)を、特定のコーディングモードまたはいくつかの特定のコーディングモードにおいてシグナリングすることができる。例えば、1つまたはいくつかのコーディングモードは、ロスレスコーディングモード、残差領域BDPCMモード、変換スキップ(TS)モード、イントラ予測モード、IBCモード、JCCRモード、MTSモード、LFNSTモード、多重参照ライン(MRL)イントラ予測モード、インター予測モード、パレットモード、およびクロスコンポーネント線形モデル(CLCLM)モードであってもよい。これらのコーディングモードが様々な例において採用される場合、ブロックレベルのインデックス(またはフラグまたはインジケータ)をシグナリングして、複数の係数コーディング方式から適切な係数コーディング方式がどのように選択するかを示すことができる。
【0217】
一実施形態では、与えられた複数の係数コーディング方式のうちどの1つ(または複数)の係数コーディング方式を現在のブロックの係数コーディングに用いることができるかを示すためにシグナリングされたブロックレベルのインデックス(またはフラグまたはインジケータ)は、コンテキストコーディングすることができる。コンテキストは、特定のコーディングモード、またはいくつかの特定のコーディングモード(例えば、上述した特定のコーディングモード)の1つを選択するか否かに基づいて導出することができる。例えば、レート歪み最適化(RDO)ベースの評価プロセスを実行して、複数の係数コーディング方式のどれが現在のブロックに対して最適であるかを決定することができる。MTSモードが現在のブロックの処理に使用される場合、通常の変換係数コーディング方式の選択は、変換なしの残差コーディング方式の選択よりも高い確率を実現することができる。したがって、ブロックレベルのインデックスの値が0または1である確率は、採用されるコーディングモードに依存することができる。
【0218】
一実施形態では、ブロックレベルのインデックス(またはフラグまたはインジケータ)は、異なる色成分に対して個別にシグナリングすることができる。例えば、ブロックレベルのインデックス(またはフラグまたはインジケータ)は、輝度、Cb、またはCrの色成分に対してそれぞれシグナリングすることができる。したがって、異なる色成分は、係数コーディング方式の異なる選択を有する可能性がある。
【0219】
別の例では、輝度成分について1つのブロックレベルのインデックス(またはフラグまたはインジケータ)がシグナリングされ、彩度成分について1つのブロックレベルのインデックス(またはフラグまたはインジケータ)がシグナリングされる。例えば、彩度成分について1つのブロックレベルのインデックス(またはフラグまたはインジケータ)がシグナリングされる場合、ブロックレベルのインデックスはCbとCrの色成分の間に共有することができる。
【0220】
VIII.処理例
【0221】
図14は、本開示の実施形態に係るプロセス1400の概要のフローチャートを示す。プロセス1400は、ロスレスモードでコーディングされたブロックの再構成に用いることができる。様々な実施形態では、プロセス1400は、端末装置210、220、230および240の処理回路、ビデオデコーダ310の機能を実行する処理回路、ビデオデコーダ410の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス1400はソフトウェア命令で実施される。したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス1400を実行する。プロセスはS1401から開始し、S1410に進む。
【0222】
S1410では、現在のビデオデータに対してロスレスモードを許可できるか否かを示す高レベルのシンタックス要素を受信することができる。ロスレスモードが許可される場合、ブロックレベルのロスレスモードフラグがビデオデータのビットストリームに存在することができる。例えば、高レベルのシンタックス要素は、タイル、スライス、タイル群、ピクチャ、ピクチャシーケンスまたはビデオ全体に対してシグナリングすることができる。
【0223】
S1420では、現在のブロックに関連付けられたロスレスモードフラグを受信することができる。ロスレスモードフラグは、現在のブロックにロスレスコーディングモードを適用できるか否かを示すことができる。
【0224】
S1430では、ロスレスモードフラグが現在のブロックにロスレスコーディングモードが適用されることを示す場合、現在のブロックにロッシーコーディングモードが適用されないと決定することができる。一例では、ロスレスモードフラグが現在のブロックにロスレスコーディングモードが適用されることを示す場合、ロッシーコーディングモードに関連付けられるか、またはそれを示すシンタックス要素が存在しないと決定することができる。一例では、ロスレスモードフラグが現在のブロックにロスレスコーディングモードが適用されることを示す場合、処理プロセスにおけるロッシーコーディングモードのコーディング操作を無効にすることができる。
【0225】
S1440では、ロッシーコーディングモードを無効にして現在のブロックを再構成することができる。表8―11および図12―13の例では、ロッシーコーディングモードが無効化されるかまたは適用されない例を示す。プロセス1400は、S1499に進み、S1499で終了することができる。
【0226】
図15は、本開示の実施形態に係るプロセス1500の概要の別のフローチャートを示す。プロセス1500は、現在のブロックの再構成に用いることができる。様々な実施形態では、プロセス1500は、端末装置210、220、230および240の処理回路、ビデオデコーダ310の機能を実行する処理回路、ビデオデコーダ410の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス1500はソフトウェア命令で実施され、したがって処理回路がソフトウェア命令を実行すると、処理回路はプロセス1500を実行する。プロセスはS1501から開始し、S1510に進む。
【0227】
S1510では、現在のブロックの係数コーディングに用いられる複数の係数コーディング方式の1つを示す第1のシンタックス要素を受信することができる。例えば、現在のブロックの係数は、変換係数、または、例えば変換スキップモードまたは残差領域BDPCMモードから生じる変換なしの特別な領域予測残差であってもよい。現在のブロックの係数のタイプに応じて、係数を処理するために異なる係数コーディング方式を選択し、デコーダ側においてより良好なコーディング効率を得ることができる。
【0228】
S1520では、第1のシンタックス要素に基づいて、残差コーディングシンタックスを決定することができる。例えば、決定された残差コーディングシンタックスは、第1のシンタックス要素によって示される係数コーディング方式に対応することができる。一例では、残差コーディングシンタックスは、VVC(ドラフト6)(JVET―O2001)の「7.3.8.11 残差コーディングシンタックス」(residual_codingおよびresidual_ts_codingのシンタックス表)において定義される2組の残差コーディングシンタックスのいずれかであってもよい。表12―14は、シンタックス要素(例えば、tu_residual_coding_sel[x0][y0])に基づいて、残差コーディングシンタックスを決定する例を示す。
【0229】
S1530では、決定された残差コーディングシンタックスに基づいて、現在のブロックの係数コーディングのシンタックス要素を決定することができる。例えば、2組の残差コーディングシンタックスに対応して、現在のブロックの係数コーディングの異なるシンタックス要素を認識して受信することができる。例えば、表5は、変換スキップ残差残差コーディングシンタックス(VVC(ドラフト6)(JVET―O2001)において定義されるresidual_ts_codingのシンタックスと同様)を示す。表5のシンタックスに従って、変換なしの現在のブロックの残差の係数コーディングから生じるsig_coeff_flag、coeff_sign_flag、abs_remainderなどのシンタックス要素を決定することができる。
【0230】
S1540では、S1530で決定されたシンタックス要素に基づいて、現在のブロックを再構成することができる。例えば、S1510の第1のシンタックス要素(例えば、変換係数または変換なしの空間領域残差に適用可能)によって示される係数コーディング方式に対応して、現在のブロックの再構成のために異なる処理を実行することができる。
【0231】
例えば、VVC(ドラフト6)(JVET―O2001)において定義される残差コーディングシンタックスresidual_codingに対応する係数コーディング方式について、S1530で決定されたシンタックス要素に基づいて逆量子化および逆変換プロセスを実行して、現在のブロックの空間残差を取得することができる。VVC(ドラフト6)(JVET―O2001)において定義される残差コーディングシンタックスresidual_ts_codingに対応する係数コーディング方式について、S1530で決定されたシンタックス要素に基づいて残差領域BDCPCMデコーディングプロセスを実行して、現在のブロックの空間残差を取得することができる。残差を(例えば、インターまたはイントラコーディングされた)予測ブロックと組み合わせることにより、一例では現在のブロックを再構成することができる。プロセス1500は、S1599に進み、S1599で終了する。
【0232】
IX.コンピュータシステム
【0233】
以上で説明された技法は、コンピュータ読取可能な命令を使用するコンピュータソフトウェアとして実行され、1つ以上のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、図16は、開示された主題の特定の実施形態を実行することに適したコンピュータシステム1600を示す。
【0234】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行されることができる命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いてコーディングされることができる。
【0235】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0236】
コンピュータシステム1600について、図16に示される例示的なコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム1600の例示的な実施形態で示されるコンポーネントのうちのいずれか1つまたは組み合わせに関する任意の依存性または必要性を有するとして解釈されるべきではない。
【0237】
コンピュータシステム1600は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(描画せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用できる。
【0238】
入力ヒューマンインターフェースデバイスは、キーボード1601、マウス1602、トラックパッド1603、タッチスクリーン1610、データグローブ(図示せず)、ジョイスティック1605、マイクフォン1606、スキャナ1607、カメラ1608(それぞれ1つのみ示されている)のうちの1つ以上を含み得る。
【0239】
コンピュータシステム1600は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン1610、データグローブ(図示せず)、またはジョイスティック1605による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ1609、ヘッドホン(描画せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン1610(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(描画せず)、ホログラフィックディスプレおよびスモークタンク(描画せず)など)、およびプリンタ(描画せず)を含み得る。
【0240】
コンピュータシステム1600は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体1621付きのCD/DVD ROM/RW1620を含む光学媒体、サムドライブ1622、リムーバブルハードドライブまたはソリッドステートドライブ1623、テープやフロッピーディスクなどの従来の磁気媒体(描画せず)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(描画せず)などをも含むことができる。
【0241】
ここで開示された主題に関連して使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことをも当業者が理解するべきである。
【0242】
コンピュータシステム1600は、1つ以上の通信ネットワークへのインターフェースをさらに含むことができる。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス1649(例えば、コンピュータシステム1600のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピュータシステム1600のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム1600は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
【0243】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム1600のコア1640に接続されることができる。
【0244】
コア1640は、1つ以上の中央処理装置(CPU)1641、グラフィックスプロセッシングユニット(GPU)1642、フィールドプログラマブルゲートエリア(FPGA)1643の形態での専用プログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ1644などを含むことができる。これらのデバイスは、リードオンリメモリ(ROM)1645、ランダムアクセスメモリ1646、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量記憶装置1647とともに、システムバス1648を介して接続されてもよい。一部のコンピュータシステムでは、システムバス1648は、1つ以上の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス1648に直接、または周辺バス1649を介して接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0245】
CPU1641、GPU1642、FPGA1643、およびアクセラレータ1644は、組み合わせられることで、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM1645またはRAM1646に記憶されることができる。推移データはRAM1646にも記憶できるが、永続データは、例えば、内部大容量ストレージ1647に記憶されることができる。1つ以上のCPU1641、GPU1642、大容量ストレージ1647、ROM1645、RAM1646などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速保存および検索が可能になる。
【0246】
コンピュータ読取可能な媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。
【0247】
限定ではなく、一例として、アーキテクチャを有するコンピュータシステム1600、特にコア1640は、1つ以上の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能性を提供することができる。このようなコンピュータ読取可能な媒体は、以上で紹介したようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ1647またはROM1645などの非一時的な性質を持つコア1640の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア1640によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア1640、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM1646に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更することを含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ1644)に有線接続されたまたは組み込まれたロジックの結果としての機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への言及は、必要に応じて、実行に用いられるソフトウェアを記憶する回路(集積回路(IC)など)、実行に用いられるロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
付録A:頭字語
ASIC:Application―Specific Integrated Circuit(特定用途向け集積回路)
BMS:Benchmark Set(ベンチマークセット)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
CBF:Coded Block flag(コーディングブロックフラグ)
CCLM:Cross―component Linear Model(クロスコンポーネント線形モデル)
CD:Compact Disc(コンパクトディスク)
CPU:Central Processing Unit(中央処理装置)
CRT:Cathode Ray Tube(ブラウン管)
CTB:Coding Tree Block(コーディングツリーブロック)
CTU:Coding Tree Unit(コーディングツリーユニット)
CU:Coding Unit(コーディングユニット)
DT:Dual Tree(デュアルツリー)
DVD:Digital Video Disc(デジタルビデオディスク)
FPGA:Field Programmable Gate Areas(フィールド・プログラマブル・ゲート・アレイ)
GOPs:GOP:Groups of Pictures(ピクチャ群)
GPU:Graphics Processing Unit(グラフィック処理装置)
GSM:Global System for Mobile communication(移動通信用グローバルシステム)
HDR:high dynamic range(ハイダイナミックレンジ)
HEVC:High Efficiency Video Coding(高効率ビデオコーディング)
HLS:High Level Syntax(高レベルのシンタックス)
HRD:Hypothetical Reference Decoder(仮想リファレンスデコーダ)
IBC:Intra Block Copy(イントラブロックコピー)
IC:Integrated Circuit(集積回路)
ISP:Intra Sub―Partition(イントラサブパーティション)
JCCR:Joint Cb Cr Residual Coding(共同CbCr残差コーディング)
JEM:joint exploration model(共同探索モデル)
JVET:Joint Video Exploration Team(共同ビデオ探索チーム)
LAN:Local Area Network(ローカルエリアネットワーク)
LCD:Liquid―Crystal Display(液晶表示装置)
LFNST:Low―Frequency Non―Separable Secondary Transform、Low―Frequency Non―Separable Transform(低周波非分離二次変換、低周波非分離変換)
LTE:Long―Term Evolution(長期的な進化)
MRL:Multiple reference line intra prediction(多重参照ラインイントラ予測)
MV:Motion Vector(動きベクトル)
MTS:Multiple Transform Selection(多重変換選択)
MV:Motion Vector(動きベクトル)
OLED:Organic Light―Emitting Diode(有機発光ダイオード)
PB:Prediction Block(予測ブロック)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
PU:Prediction Unit(予測ユニット)
RAM:Random Access Memory(ランダムアクセスメモリ)
ROM:Read―Only Memory(リードオンリメモリ)
RQT:Residual Quad―Tree(残差四分木)
SBT:Sub―block Transform(サブブロック変換)
SDR:standard dynamic range(標準ダイナミックレンジ)
SEI:Supplementary Enhancement Information(補助強化情報)
SNR:Signal Noise Ratio(信号対雑音比)
SSD:solid―state drive(ソリッドステートドライブ)
TU:Transform Unit(変換ユニット)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
VTM:Versatile Video Coding Test Model(多用途ビデオコーディングテストモデル)
VUI:Video Usability Information(ビデオユーザビリティ情報)
VVC:versatile video coding(多用途ビデオコーディング)
【0248】
本開示は一部の例示的な実施形態を説明したが、本開示の範囲内に含まれる変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれる様々なシステムおよび方法を想到できる。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9A
図9B
図10
図11
図12
図13
図14
図15
図16
【国際調査報告】