(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-08
(54)【発明の名称】ビデオコーディングのための方法およびコンピュータプログラム
(51)【国際特許分類】
H04N 19/13 20140101AFI20220401BHJP
H04N 19/157 20140101ALI20220401BHJP
H04N 19/176 20140101ALI20220401BHJP
H04N 19/186 20140101ALI20220401BHJP
H04N 19/503 20140101ALI20220401BHJP
H04N 19/593 20140101ALI20220401BHJP
H04N 19/91 20140101ALI20220401BHJP
【FI】
H04N19/13
H04N19/157
H04N19/176
H04N19/186
H04N19/503
H04N19/593
H04N19/91
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021549114
(86)(22)【出願日】2020-08-20
(85)【翻訳文提出日】2021-08-19
(86)【国際出願番号】 US2020047223
(87)【国際公開番号】W WO2021041156
(87)【国際公開日】2021-03-04
(32)【優先日】2019-08-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-08-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リャン・ジャオ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159ME11
5C159PP16
5C159RC12
5C159TA59
5C159TB08
5C159TC04
5C159TC42
5C159TD11
5C159UA02
5C159UA05
(57)【要約】
ビデオデコーディングの方法は、現在のコーディングユニット(CU)の予測モードを決定するステップと、tu_cbf_cbで表されるCb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグ(CBF)およびtu_cbf_crで表されるCr変換ブロックのTU CBFの値を決定するステップと、現在のCUの予測モードならびにtu_cbf_cbおよびtu_cbf_crの値に基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと、を含むことができる。
【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオデコーディングの方法であって、
現在のコーディングユニット(CU)の予測モードを決定するステップであって、前記予測モードは、インター予測モードおよびイントラ予測モードを含む、ステップと、
前記現在のCUのシンタックス要素の値を決定するステップであって、前記シンタックス要素は、
Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_cbと表される、前記Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、
Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_crと表される、前記Cr変換ブロックのTUコーディング済ブロックフラグと、である、ステップと、
前記現在のCUの前記予測モードならびに前記tu_cbf_cbおよび前記tu_cbf_crの値に基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、
前記現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、前記ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと
を含む方法。
【請求項2】
前記現在のCUは、前記インター予測モードでコーディングされ、前記Cb変換ブロックおよび前記Cr変換ブロックのうちの一方は、すべてゼロである変換係数レベルを含み、前記現在のCUの前記CbおよびCrの両方の彩度成分の前記残差サンプルは、前記単一の変換ブロックとしてコーディングされる、請求項1に記載の方法。
【請求項3】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のコーディングユニットが前記インター予測モードまたは前記イントラ予測モードでコーディングされているかどうかを示す予測モードフラグを受信または推測するステップ
を含む、請求項1に記載の方法。
【請求項4】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のCUがイントラブロックコピー(IBC)モード、または結合されたイントラおよびインター予測(CIIP)モードでコーディングされていることに応答して、前記現在のCUの前記予測モードを前記イントラ予測モードであると判定するステップ
を含む、請求項1に記載の方法。
【請求項5】
前記現在のCUの前記シンタックス要素の値を決定する前記ステップは、
前記Cb変換ブロックまたは前記Cr変換ブロックの前記TUコーディング済ブロックフラグを受信または推測するステップ
を含む、請求項1に記載の方法。
【請求項6】
前記コンテキストインデックスを決定する前記ステップは、
以下の(1)~(4)の式のセットのうちの1つに従って前記コンテキストインデックスを決定するステップであって、
(1)ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(isIntra?0:1)、
(2)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(cbfCbCr+2*(isIntra?0:1))、
(3)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:((isIntra?cbfCbCr:3))、および
(4)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(isIntra?1:2))、
isIntraは、現在のCUがイントラ予測モードでコーディングされている場合に真であり、現在のCUがインター予測モードでコーディングされている場合に偽であるブール値を表す、ステップ
を含む、請求項1に記載の方法。
【請求項7】
前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの隣接ブロックのデコード済情報に基づいて前記コンテキストインデックスを決定するステップ
を含む、請求項1に記載の方法。
【請求項8】
前記現在のCUの前記隣接ブロックの前記デコード済情報は、
前記隣接ブロックの予測モード、
前記隣接ブロックのCb変換ブロックのTUコーディング済ブロックフラグ、
前記隣接ブロックのCb変換ブロックのTUコーディング済ブロックフラグ、または
前記隣接ブロックのサイズ
のうちの1つまたは複数を含む、請求項7に記載の方法。
【請求項9】
ビデオデコーダにおけるビデオデコーディングの方法であって、
現在のコーディングユニット(CU)のサイズを決定するステップと、
前記現在のCUのサイズに基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、
前記現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、前記ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと
を含む方法。
【請求項10】
前記現在のCUの前記サイズは、
前記現在のCUのブロック幅、
前記現在のCUのブロック高さ、
前記現在のCUのブロックエリアサイズ、
前記現在のCUの前記ブロック幅と前記ブロック高さとの和、
前記現在のCUの前記ブロック幅および前記ブロック高さの最大値、または
前記現在のCUの前記ブロック幅および前記ブロック高さの最小値
のうちの1つによって表される、請求項9に記載の方法。
【請求項11】
前記現在のCUの前記サイズに基づいて前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの前記ブロックサイズがしきい値より小さい場合に第1のコンテキストモデルを使用するステップと、
前記現在のCUの前記ブロックサイズが前記しきい値より大きい場合に第2のコンテキストモデルを使用するステップと
を含む、請求項9に記載の方法。
【請求項12】
前記現在のCUの前記サイズに基づいて前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの前記サイズと、
Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す前記現在のCUの、tu_cbf_cbと表される、前記Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、
Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す前記現在のCUの、tu_cbf_crと表される、前記Cr変換ブロックのTUコーディング済ブロックフラグと、
に基づいて前記コンテキストインデックスを導出するステップ
を含む、請求項9に記載の方法。
【請求項13】
前記コンテキストインデックスを導出する前記ステップは、
以下の式に従って前記コンテキストインデックスを導出するステップであって、
ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(ブロックサイズ<K?0:1)、
ブロックサイズは現在のCUのサイズを表し、Kはしきい値を表し、正の整数である、ステップ
を含む、請求項12に記載の方法。
【請求項14】
プロセッサによって実行されると、前記プロセッサに方法を実行させる命令を格納する非一時的コンピュータ可読媒体であって、前記方法は、
現在のコーディングユニット(CU)の予測モードを決定するステップであって、前記予測モードは、インター予測モードおよびイントラ予測モードを含む、ステップと、
前記現在のCUのシンタックス要素の値を決定するステップであって、前記シンタックス要素は、
Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_cbと表される、前記Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、
Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_crと表される、前記Cr変換ブロックのTUコーディング済ブロックフラグと、である、ステップと、
前記現在のCUの前記予測モードならびに前記tu_cbf_cbおよび前記tu_cbf_crの値に基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、
前記現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、前記ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと
を含む、非一時的コンピュータ可読媒体。
【請求項15】
前記現在のCUは、前記インター予測モードでコーディングされ、前記Cb変換ブロックおよび前記Cr変換ブロックのうちの一方は、すべてゼロである変換係数レベルを含み、前記現在のCUの前記CbおよびCrの両方の彩度成分の前記残差サンプルは、前記単一の変換ブロックとしてコーディングされる、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のコーディングユニットが前記インター予測モードまたは前記イントラ予測モードでコーディングされているかどうかを示す予測モードフラグを受信または推測するステップ
を含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のCUがイントラブロックコピー(IBC)モード、または結合されたイントラおよびインター予測(CIIP)モードでコーディングされていることに応答して、前記現在のCUの前記予測モードを前記イントラ予測モードであると判定するステップ
を含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記現在のCUの前記シンタックス要素の値を決定する前記ステップは、
前記Cb変換ブロックまたは前記Cr変換ブロックの前記TUコーディング済ブロックフラグを受信または推測するステップ
を含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記コンテキストインデックスを決定する前記ステップは、
以下の(1)~(4)の式のセットのうちの1つに従って前記コンテキストインデックスを決定するステップであって、
(1)ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(isIntra?0:1)、
(2)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(cbfCbCr+2*(isIntra?0:1))、
(3)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:((isIntra?cbfCbCr:3))、および
(4)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(isIntra?1:2))、
isIntraは、現在のCUがイントラ予測モードでコーディングされている場合に真であり、現在のCUがインター予測モードでコーディングされている場合に偽であるブール値を表す、ステップ
を含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの隣接ブロックのデコード済情報に基づいて前記コンテキストインデックスを決定するステップ
を含む、請求項14に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本開示は、2020年8月20日に出願された米国特許出願第16/998,553号「Method and Apparatus for Video Coding」に対する優先権の利益を主張し、上記出願は、2019年8月23日に出願された米国仮出願第62/891,045号「Improvement for Joint Chroma Residue Coding」に対する優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、ビデオコーディングに一般的に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、この背景技術の項に記載されている限りにおいて、ならびに出願時に従来技術として認められない可能性がある説明の態様は、本開示に対する従来技術として明示的にも暗示的にも認められない。
【0004】
ビデオのコーディングおよびデコーディングは、動き補償を伴う画像間予測を使用して実行することができる。非圧縮デジタルビデオは、一連の画像を含むことができ、各画像は、例えば1920×1080の輝度サンプルおよび関連するクロミナンスサンプルの空間次元を有する。一連の画像は、例えば毎秒60画像または60Hzの固定または可変の画像レート(非公式にはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、特定のビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60 Hzフレームレートでの1920x1080輝度サンプル解像度)は、1.5 Gbit/sに近い帯域幅を必要とする。このようなビデオを1時間使用するには、600 GByteを超える記憶スペースが必要である。
【0005】
ビデオのコーディングとデコーディングの1つの目的は、圧縮によって入力ビデオ信号の冗長性を減らすことであり得る。圧縮は、前述の帯域幅および/または記憶スペースの要件を、場合によっては2桁以上削減するのに役立ち得る。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせが使用されてもよい。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる手法を指す。非可逆圧縮を使用すると、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号との間の歪みが十分に小さいので、再構築された信号は目的の用途に有用である。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量は用途によって異なり、例えば、特定のコンシューマストリーミング用途のユーザは、テレビ配給用途のユーザよりも高い歪みを許容することができる。達成可能な圧縮率は、許容可能な/耐えられる歪みが高いほど、より高い圧縮率が得られるということを反映できる。
【0006】
ビデオのエンコーダおよびデコーダは、例えば動き補償、変換、量子化、エントロピーコーディングなど、いくつかの幅広いカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプルまたは以前に再構築された参照画像からの他のデータを参照せずにサンプル値が表される。いくつかのビデオコーデックでは、画像はサンプルのブロックに空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、その画像はイントラ画像であり得る。イントラ画像および独立したデコーダリフレッシュ画像などのそれらの派生は、デコーダ状態をリセットするために使用することができ、したがって、コーディングビデオビットストリームおよびビデオセッション内の第1の画像として、または静止画像として使用することができる。イントラブロックのサンプルは、変換される可能性があり、変換係数はエントロピーコーディングの前に量子化され得る。イントラ予測は、変換前領域におけるサンプル値を最小化する技術であり得る。場合によっては、変換後の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は、2つの次元XおよびY、または3つの次元を有することができ、第3の次元は、使用中の参照画像(後者は、間接的に、時間次元とすることができる)の表示である。
【0014】
いくつかのビデオ圧縮技術では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば再構築中の領域に空間的に隣接し、デコーディング順でそのMVに先行するサンプルデータの別の領域に関連するMVから予測することができる。そうすることにより、MVのコーディングに必要なデータ量を実質的に削減することができ、それによって冗長性が排除され、圧縮が増加する。MV予測は、例えば、カメラ(自然ビデオとして知られている)から導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能な領域よりも大きい領域が同様の方向に移動する統計的尤度があり、したがって、場合によっては、隣接領域のMVから導出された同様の動きベクトルを使用して予測することができるため、効果的に機能することができる。これにより、所与の領域について見つかったMVは、周囲のMVから予測されたMVと類似または同じになり、エントロピーコーディング後に、MVを直接コーディングする場合に使用されるよりも少ないビット数で表すことができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合では、例えば、いくつかの周囲のMVから予測器を計算するときの丸め誤差のために、MV予測自体が非可逆であり得る。
【0015】
様々なMV予測メカニズムは、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。ここでは、H.265が提供する多くのMV予測機構のうち、「空間マージ」と呼ばれる技術について説明する。
【0016】
図1を参照すると、現在のブロック(101)は、空間的にシフトされた同じサイズの前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって見つけられたサンプルを含む。そのMVを直接コーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ102から106)で示される5つの周囲サンプルのいずれか1つに関連するMVを使用して、1つまたは複数の参照画像に関連するメタデータから、例えば最新の(デコーディング順で)参照画像から導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照画像からの予測器を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0017】
本開示の態様は、ビデオデコーダにおけるビデオデコーディングの第1の方法を提供する。本方法は、インター予測モードおよびイントラ予測モードを含む、現在のコーディングユニット(CU)の予測モードを決定するステップと、現在のCUのシンタックス要素の値を決定するステップであって、シンタックス要素は、Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_cbと表される、Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_crと表される、Cr変換ブロックのTUコーディング済ブロックフラグと、である、ステップと、を含むことができる。本方法は、現在のCUの予測モードならびにtu_cbf_cbおよびtu_cbf_crの値に基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと、をさらに含むことができる。
【0018】
一実施形態では、現在のCUは、インター予測モードでコーディングされ、Cb変換ブロックおよびCr変換ブロックのうちの一方は、すべてゼロである変換係数レベルを含み、現在のCUのCbおよびCrの両方の彩度成分の残差サンプルは、単一の変換ブロックとしてコーディングされる。
【0019】
一実施形態では、現在のコーディングユニットがインター予測モードでコーディングされるかイントラ予測モードでコーディングされるかを示す予測モードフラグが受信または推測される。一実施形態では、現在のCUの予測モードは、現在のCUがイントラブロックコピー(IBC)モード、または結合されたイントラおよびインター予測(CIIP)モードでコーディングされていることに応答して、イントラ予測モードであると判定される。一実施形態では、Cb変換ブロックまたはCr変換ブロックのTUコーディング済ブロックフラグが受信または推測される。
【0020】
一実施形態では、コンテキストインデックスは、以下の(1)~(4)式のセットのうちの1つに従って決定される。
(1)ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(isIntra?0:1),
(2)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr,
ctxIdx=(cbfCbCr==3)?0:(cbfCbCr+2*(isIntra?0:1)),
(3)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr,
ctxIdx=(cbfCbCr==3)?0:((isIntra?cbfCbCr:3)),and
(4)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr,
ctxIdx=(cbfCbCr==3)?0:(isIntra?1:2))、
ここで、isIntraは、現在のCUがイントラ予測モードでコーディングされている場合に真であり、現在のCUがインター予測モードでコーディングされている場合に偽であるブール値を表す。
【0021】
一実施形態では、コンテキストインデックスは、現在のCUの隣接ブロックのデコード済情報に基づいて決定される。一例では、現在のCUの隣接ブロックのデコード済情報は、隣接ブロックの予測モード、隣接ブロックのCb変換ブロックのTUコーディング済ブロックフラグ、隣接ブロックのCb変換ブロックのTUコーディング済ブロックフラグ、または隣接ブロックのサイズのうちの1つまたは複数を含む。
【0022】
本開示の態様は、ビデオデコーダにおけるビデオデコーディングの第2の方法を提供する。本方法は、現在のCUのサイズを決定するステップと、現在のCUのサイズに基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと、を含むことができる。
【0023】
一実施形態では、現在のCUのサイズは、ブロック幅、ブロック高さ、ブロック領域サイズ、ブロック幅とブロック高さとの和、ブロック幅とブロック高さの最大値、またはブロック幅とブロック高さの最小値のうちの1つによって表される。一例では、現在のCUのブロックサイズがしきい値よりも小さい場合に第1のコンテキストモデルが使用され、現在のCUのブロックサイズがしきい値よりも大きい場合に第2のコンテキストモデルが使用される。
【0024】
一実施形態では、コンテキストインデックスは、現在のCUのサイズと、Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す現在のCUの、tu_cbf_cbと表される、Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す現在のCUの、tu_cbf_crと表される、Cr変換ブロックのTUコーディング済ブロックフラグと、に基づいて導出される。
【0025】
一例では、コンテキストインデックスは、以下の式により導出される。
ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(ブロックサイズ<K?0:1)、
ここで、ブロックサイズは現在のCUのサイズを表し、Kはしきい値を表し、正の整数である。
【0026】
本開示の態様はまた、ビデオデコーディングのためにコンピュータによって実行されると、コンピュータに本明細書で開示されるビデオデコーディングのための方法を実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【0027】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0028】
【
図1】一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図6】別の実施形態によるエンコーダのブロック図である。
【
図7】別の実施形態によるデコーダのブロック図である。
【
図9】コーディングユニット(CU)(910)を示す図である。
【
図10】本開示の一実施形態によるデコーディングプロセス(1000)の概要を示すフローチャートを示す図である。
【
図11】本開示の一実施形態によるデコーディングプロセス(1100)の概要を示すフローチャートを示す図である。
【
図12】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0029】
I.ビデオコーディングおよびデコーディングシステム
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末装置(210)および(220)の第1のペアを含む。
図2の例では、端末装置(210)および(220)の第1のペアは、データの一方向の送信を実行する。例えば、端末装置(210)は、ネットワーク(250)を介して他の端末装置(220)に送信するためにビデオデータ(例えば、端末装置(210)によって取り込まれたビデオ画像のストリーム)をコーディングすることができる。エンコード済ビデオデータは、1つまたは複数のコーディング済ビデオビットストリームの形態で送信することができる。端末装置(220)は、ネットワーク(250)からコーディング済ビデオデータを受信し、コーディング済ビデオデータをデコーディングしてビデオ画像を復元し、復元されたビデオデータに従ってビデオ画像を表示することができる。一方向のデータ送信は、メディアサービングアプリケーションなどでは一般的であり得る。
【0030】
別の例では、通信システム(200)は、例えばビデオ会議中に発生する可能性があるコーディング済ビデオデータの双方向送信を実行する端末装置(230)および(240)の第2のペアを含む。データの双方向送信のために、一例では、端末装置(230)および(240)の各端末装置は、ネットワーク(250)を介して端末装置(230)および(240)の他方の端末装置に送信するためのビデオデータ(例えば、端末装置によって取り込まれたビデオ画像のストリーム)をコーディングすることができる。端末装置(230)および(240)の各端末装置はまた、端末装置(230)および(240)の他方の端末装置によって送信されたコーディング済ビデオデータを受信することができ、コーディング済ビデオデータをデコーディングしてビデオ画像を復元することができ、復元されたビデオデータに従ってアクセス可能な表示装置にビデオ画像を表示することができる。
【0031】
図2の例では、端末装置(210)、(220)、(230)、および(240)は、サーバー、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器での用途を見出す。ネットワーク(250)は、例えば有線(有線)および/または無線通信ネットワークを含む、端末装置(210)、(220)、(230)および(240)の間でコーディング済ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回路切り替えおよび/またはパケット切り替えチャネルでデータを交換することができる。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、以下で本明細書において説明されない限り、本開示の動作にとって重要ではない場合がある。
【0032】
図3は、開示された主題に対する用途の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの格納などを含む他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0033】
ストリーミングシステムは、例えば非圧縮のビデオ画像(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の文脈で使用され得る。
【0034】
電子デバイス(320)および(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)はビデオエンコーダ(図示せず)も含むことができる。
【0035】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれ得る。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例のビデオデコーダ(310)の代わりに使用することができる。
【0036】
受信機(431)は、デコーダ(410)によってデコードされる1つまたは複数のコーデックビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つのコーディング済ビデオシーケンスであり、各コーディング済ビデオシーケンスのデコーディングは、他のコーディング済ビデオシーケンスから独立している。コーディング済ビデオシーケンスは、チャネル(401)から受信することができ、チャネルは、エンコード済ビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信機(431)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディング済オーディオデータおよび/または補助データストリームと共に、エンコード済ビデオデータを受信することができる。受信機(431)は、コーディング済ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(415)は、受信機(431)とエントロピーデコーダ/パーサー(420)(以後「パーサー(420)」)との間に結合され得る。特定の用途では、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他の場合には、ビデオデコーダ(410)の外部にあってもよい(図示せず)。さらに他のものでは、例えばネットワークジッタに対抗するためにビデオデコーダ(410)の外部にバッファメモリ(図示せず)があり、さらに例えば再生タイミングを処理するためにビデオデコーダ(410)の内部に別のバッファメモリ(415)があり得る。受信機(431)が十分な帯域幅と制御性の格納/転送デバイスから、または等時性ネットワークからデータを受信している場合に、バッファメモリ(415)は必要とされないか、または小さくなり得る。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(415)が必要とされてもよく、比較的大きくてもよく、有利には適応サイズであってもよく、ビデオデコーダ(410)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0037】
ビデオデコーダ(410)は、コーディング済ビデオシーケンスからシンボル(421)を再構築するためのパーサー(420)を含むことができる。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、および潜在的に、
図4に示されたように、電子デバイス(430)の不可欠な部分ではないが電子デバイス(430)に結合することができるレンダリングデバイス(412)(例えば、表示画面)などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。パーサー(420)は、受信したコーディング済ビデオシーケンスを解析/エントロピーデコードすることができる。コーディング済ビデオシーケンスのコーディングは、ビデオコーディング技術または標準規格に準拠することができ、可変長コーディング、ハフマンコーディング、文脈依存の有無にかかわらず算術コーディングなどを含む様々な原理に従うことができる。パーサー(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについて一組のサブグループパラメータを、コーディング済ビデオシーケンスから抽出することができる。サブグループは、画像のグループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサー(420)は、変換係数、量子化器パラメータ値、動きベクトルなどのコーディング済ビデオシーケンス情報からも抽出することができる。
【0038】
パーサー(420)は、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピーデコーディング/シンタックス解析動作を実行して、シンボル(421)を作成することができる。
【0039】
シンボル(421)の再構築は、コーディング済ビデオ画像またはその一部(インター画像およびイントラ画像、インターブロックおよびイントラブロックなど)のタイプ、およびその他の要因に応じて、多数の異なるユニットを含むことができる。どのユニットが含まれているか、およびどのように含まれているかは、パーサー(420)によってコーディング済ビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。パーサー(420)と以下の多数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0040】
既に述べた機能ブロックの他に、ビデオデコーダ(410)は、以下に説明するように、概念的にいくつかの機能ユニットに細分することができる。商業的な制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には、互いに統合され得る。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分が適切である。
【0041】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサー(420)からシンボル(421)として受け取る。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されうるサンプル値を含むブロックを出力することができる。
【0042】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラコーディング済ブロック、すなわち、以前に再構築された画像からの予測情報を使用していないが、現在の画像の以前に再構築された部分からの予測情報を使用できるブロックに関係することができる。そのような予測情報は、イントラ画像予測ユニット(452)によって提供され得る。場合によっては、イントラ画像予測ユニット(452)は、現在の画像バッファ(458)からフェッチされた周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在の画像バッファ(458)は、例えば、部分的に再構築された現在の画像および/または完全に再構築された現在の画像をバッファリングする。アグリゲータ(455)は、場合によっては、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供された出力サンプル情報に追加する。
【0043】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディング済の、場合によっては動き補償されたブロックに関係することができる。このような場合、動き補償予測ユニット(453)は、参照画像メモリ(457)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関係するシンボル(421)に従って動き補償した後に、これらのサンプルは、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)(この場合、残差サンプルまたは残差信号と呼ばれる)の出力に追加されて、出力サンプル情報を生成することができる。動き補償予測ユニット(453)が予測サンプルをフェッチする参照画像メモリ(457)内のアドレスは、動きベクトルによって制御でき、例えばX、Y、および参照画像の成分を有することができるシンボル(421)の形式で動き補償予測ユニット(453)が利用することができる。動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照画像メモリ(457)からフェッチされたサンプル値の補間、動きベクトル予測機構なども含むことができる。
【0044】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)における様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、コーディング済ビデオシーケンス(コーディング済ビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(420)からのシンボル(421)としてループフィルタユニット(456)に提供されるループ内フィルタ技術を含むことができるが、コーディング済画像またはコーディング済ビデオシーケンスの以前の(デコーディング順で)部分のデコーディング中に取得されたメタ情報に応答し、および以前に再構築されループフィルタ処理されたサンプル値に応答することもできる。
【0045】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力することができて、将来のインター画像予測で使用するために参照画像メモリ(457)に格納することができるサンプルストリームとすることができる。
【0046】
特定のコーディング済画像は、完全に再構築されると、将来の予測のための参照画像として使用することができる。例えば、現在の画像に対応するコーディング済画像が完全に再構築され、コーディング済画像が参照画像として(例えば、パーサー(420)によって)識別されると、現在の画像バッファ(458)は、参照画像メモリ(457)の一部となることができ、そして、次のコーディング済画像の再構築を開始する前に、新しい現在の画像メモリを再割り当てすることができる。
【0047】
ビデオデコーダ(410)は、ITU-T Rec.H.265などの標準規格における所定のビデオ圧縮技術に従ってデコーディング動作を実行することができる。コーディング済ビデオシーケンスは、コーディング済ビデオシーケンスがビデオ圧縮技術または標準規格のシンタックスおよびビデオ圧縮技術または標準規格に文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または標準規格によって指定されたシンタックスに準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または標準規格で利用可能なすべてのツールから、そのプロファイルの下で使用可能な唯一のツールとして特定のツールを選択することができる。また、コーディング済ビデオシーケンスの複雑さが、ビデオ圧縮技術または標準規格のレベルで定義されている範囲内にあることも、コンプライアンスに必要である。場合によっては、レベルによって、最大画像サイズ、最大フレームレート、最大再構築サンプルレート(例えば、メガサンプル/秒で測定される)、最大参照画像サイズなどが制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)の仕様と、コーディング済ビデオシーケンスで通知されるHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0048】
一実施形態では、受信機(431)は、エンコード済ビデオと共に追加の(冗長な)データを受信することができる。追加のデータは、コーディング済ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、かつ/または元のビデオデータをより正確に再構築するためにビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長画像、前方誤り訂正符号などの形式にすることができる。
【0049】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、
図3の例のビデオエンコーダ(303)の代わりに使用することができる。
【0050】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされるビデオ画像を取り込むことができるビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(501)は電子デバイス(520)の一部である。
【0051】
ビデオソース(501)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式でビデオエンコーダ(503)によってコーディングされるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(501)は、以前に準備されたビデオを格納する記憶装置であってもよい。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個別の画像として提供されてもよい。画像自体は、ピクセルの空間アレイとして編成することができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明では、サンプルを中心に説明する。
【0052】
一実施形態によれば、ビデオエンコーダ(503)は、用途により必要に応じて、リアルタイムで、または任意の他の時間制約の下で、ソースビデオシーケンスの画像をコーディングし、コーディング済ビデオシーケンス(543)に圧縮することができる。適切なコーディング速度を強制することは、コントローラ(550)の機能の1つである。いくつかの実施形態では、コントローラ(550)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確にするために、結合は描かれていない。コントローラ(550)によって設定されるパラメータは、レート制御に関連するパラメータ(画像スキップ、量子化器、レート歪み最適化手法のラムダ値など)、画像サイズ、画像のグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(550)は、特定のシステム設計に最適化されたビデオエンコーダ(503)に関する他の適切な機能を有するように構成することができる。
【0053】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成される。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(530)(例えば、コーディングされる入力画像と、参照画像とに基づいて、シンボルストリームのようなシンボルを生成することを担当する)と、ビデオエンコーダ(503)に組み込まれた(ローカル)デコーダ(533)と、を含むことができる。デコーダ(533)は、(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構築する(開示された主題で考慮されるビデオ圧縮技術では、シンボルとコーディング済ビデオビットストリームとの間の任意の圧縮が可逆的であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームのデコーディングにより、デコーダの場所(ローカルまたはリモート)に関係なくビットが正確な結果が得られるので、参照画像メモリ(534)の内容もローカルエンコーダとリモートエンコーダとの間でビットが正確である。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用する場合にデコーダが「見る」であろうものとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像同期性のこの基本原理(および、例えばチャネルエラーのために同期性が維持できない場合に生じるドリフト)は、いくつかの関連技術においても使用される。
【0054】
「ローカル」デコーダ(533)の動作は、
図4に関連して既に詳細に説明したビデオデコーダ(410)などの「リモート」デコーダの動作と同じであり得る。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)およびパーサー(420)によるコーディング済ビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆であり得るため、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピーデコーディング部分、およびパーサー(420)は、ローカルデコーダ(533)に完全に実装されない場合がある。
【0055】
この時点で行うことができる観察は、デコーダに存在するシンタックス解析/エントロピーデコーディング以外の任意のデコーダ技術も、対応するエンコーダに実質的に同一の機能形式で必ず存在している必要があるということである。このため、開示された主題はデコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるから、省略することができる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0056】
動作中、いくつかの例では、ソースコーダ(530)は、「参照画像」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディング済の画像を参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(532)は、入力画像のピクセルブロックと、入力画像に対する予測参照として選択され得る参照画像のピクセルブロックとの間の差をコーディングする。
【0057】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって作成されたシンボルに基づいて、参照画像として指定され得る画像のコーディング済ビデオデータをデコーディングすることができる。コーディングエンジン(532)の動作は、有利には、損失のあるプロセスであってもよい。コーディング済ビデオデータがビデオデコーダ(
図5には示されていない)でデコードされ得る場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照画像に対してビデオデコーダによって実行され得るデコーディングプロセスを複製し、再構築された参照画像を参照画像キャッシュ(534)に格納させることができる。このようにして、ビデオエンコーダ(503)は、遠端ビデオデコーダによって得られる(送信エラーがない)再構築参照画像として共通のコンテンツを有する再構築参照画像のコピーをローカルに格納することができる。
【0058】
予測器(535)は、コーディングエンジン(532)の予測検索を実行することができる。すなわち、コーディングされる新しい画像について、予測器(535)は、(候補参照ピクセルブロックとしての)サンプルデータまたは参照画像の動きベクトル、ブロック形状などの特定のメタデータについて参照画像メモリ(534)を検索することができ、それは新しい画像の適切な予測参照として機能することができる。予測器(535)は、適切な予測参照を見つけるために、サンプルブロックバイピクセルブロックに基づいて動作することができる。場合によっては、予測器(535)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(534)に格納された多数の参照画像から引き出された予測参照を有してもよい。
【0059】
コントローラ(550)は、例えば、ビデオデータをコード化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理することができる。
【0060】
前述のすべての機能ユニットの出力は、エントロピーコーダ(545)でエントロピーコーディングを受けることができる。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを無損失圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディング済ビデオシーケンスに変換する。
【0061】
送信機(540)は、エントロピーコーダ(545)によって作成されたコーディング済ビデオシーケンスをバッファリングして、通信チャネル(560)を介して送信の準備をすることができ、通信チャネル(560)は、エンコード済ビデオデータを格納するであろう記憶装置へのハードウェア/ソフトウェアリンクであり得る。送信機(540)は、ビデオコーダ(503)からのコーディング済ビデオデータを、送信される他のデータ、例えばコーディング済オーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0062】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理することができる。コーディング中に、コントローラ(550)は、各コーディング済画像に特定のコーディング済画像タイプを割り当てることができ、これは、それぞれの画像に適用され得るコーディング技法に影響を及ぼすことができる。例えば、多くの場合、画像は次の画像タイプの1つとして割り当てられ得る。
【0063】
イントラ画像(I画像)は、シーケンス内のいかなる他の画像も予測のソースとして使用せずにコーディングおよびデコーディングされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)画像を含む異なるタイプのイントラ画像を可能にする。当業者は、I画像のそれらの変形およびそれらのそれぞれの用途および特徴を知っている。
【0064】
予測画像(P画像)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。
【0065】
双方向予測画像(B画像)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。同様に、多数の予測画像は、単一のブロックの再構築に3つ以上の参照画像と関連メタデータを使用することができる。
【0066】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロックごとにコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されたコーディング割り当てによって決定されるように、他の(既にコーディング済)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは非予測的にコーディングされてもよく、またはそれらは同じ画像の既にコーディング済のブロック(空間予測またはイントラ予測)を参照して予測的にコーディングされてもよい。P画像のピクセルブロックは、空間的予測を介して、または以前にコーディング済の1つの参照画像を参照する時間的予測を介して、予測的にコーディングされ得る。B画像のブロックは、空間的予測を介して、または以前にコーディング済の1つまたは2つの参照画像を参照する時間的予測を介して、予測的にコーディングされ得る。
【0067】
ビデオエンコーダ(503)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または標準規格に従ってコーディング動作を実行することができる。その動作では、ビデオエンコーダ(503)は、様々な圧縮動作を実行することができ、それは入力ビデオシーケンスにおける時間的および空間的冗長性を活用する予測コーディング動作を含む。したがって、コーディング済ビデオデータは、使用されているビデオコーディング技術または標準規格で指定されたシンタックスに準拠することができる。
【0068】
一実施形態では、送信機(540)は、エンコード済ビデオと共に追加のデータを送信することができる。ソースコーダ(530)は、コーディング済ビデオシーケンスの一部としてそのようなデータを含むことができる。追加のデータは、時間/空間/SNR拡張レイヤ、冗長画像およびスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含むことができる。
【0069】
ビデオは、複数のソース画像(ビデオ画像)として時系列に撮像されてもよい。画像内予測(しばしばイントラ予測と略される)は、所与の画像における空間相関を利用し、画像間予測は、画像間の(時間的または他の)相関を利用する。一例では、現在の画像と呼ばれる、コーディング/デコーディング中の特定の画像がブロックに分割される。現在の画像内のブロックがビデオ内の以前にコーディングされてまだバッファされている参照画像内の参照ブロックに類似しているとき、現在の画像内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングすることができる。動きベクトルは、参照画像内の参照ブロックを指し、複数の参照画像が使用されている場合、参照画像を識別する第3の次元を有することができる。
【0070】
いくつかの実施形態では、画像間予測に双予測技術を使用することができる。双予測技術によれば、第1の参照画像および第2の参照画像などの2つの参照画像が使用され、これらは両方ともビデオ内の現在の画像のデコーディング順より前にある(しかし、表示順序は、それぞれ過去および未来のものであってもよい)。現在の画像内のブロックは、第1の参照画像内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照画像内の第2の参照ブロックを指す第2の動きベクトルによってコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測することができる。
【0071】
さらに、コーディング効率を改善するために、画像間予測にマージモード技術を使用することができる。
【0072】
本開示のいくつかの実施形態によれば、画像間予測および画像内予測などの予測は、ブロック単位で実行される。例えば、HEVC標準規格によれば、ビデオ画像のシーケンス内の画像は、圧縮のためにコーディングツリーユニット(CTU)に分割され、画像内のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有する。一般に、CTUは、1つの輝度CTBおよび2つの彩度CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCU、または16×16ピクセルの16個のCUに分割することができる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために解析される。CUは、時間的および/または空間的な予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、輝度予測ブロック(PB)と、2つの彩度PBと、を含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測演算は、予測ブロックの単位で実行される。予測ブロックの例として輝度予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値の行列(例えば、輝度値)を含む。
【0073】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオ画像のシーケンス内の現在のビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディング済ビデオシーケンスの一部であるコーディング済画像にエンコードするように構成される。一例では、ビデオエンコーダ(603)は、
図3の例のビデオエンコーダ(303)の代わりに使用される。
【0074】
HEVCの例では、ビデオエンコーダ(603)は、例えば8×8サンプルの予測ブロックのような処理ブロックのためのサンプル値の行列を受信する。ビデオエンコーダ(603)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良にコーディングされるかどうかを判定する。処理ブロックがイントラモードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディング済画像へエンコードするために、イントラ予測技術を使用することができ、処理ブロックがインターモードまたは双予測モードでコーディングされるべきである場合、ビデオエンコーダ(603)は、処理ブロックをコーディング済画像にエンコードするために、それぞれインター予測技術または双予測技術を使用することができる。特定のビデオコーディング技術では、マージモードは、予測器の外側のコーディング済の動きベクトル成分の恩恵を受けずに動きベクトルが1つまたは複数の動きベクトル予測器から導出される画像間予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在することができる。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0075】
図6の例では、ビデオエンコーダ(603)は、
図6に示すように互いに結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、およびエントロピーエンコーダ(625)を含む。
【0076】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照画像(例えば、前の画像および後の画像内のブロック)内の1つまたは複数の参照ブロックと比較し、インター予測情報(例えば、インターコーディング技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照画像は、エンコード済ビデオ情報に基づいてデコードされたデコーディング済参照画像である。
【0077】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じ画像内で既にコーディング済のブロックと比較し、変換後に量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラコーディング技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(622)は、イントラ予測情報と、同一画像内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)を算出する。
【0078】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を提供する。例えば、汎用コントローラ(621)は、モードがイントラモードである場合、残差計算器(623)が用いるイントラモード結果を選択するようにスイッチ(626)を制御し、イントラ予測情報を選択してビットストリームに含めるようにエントロピーエンコーダ(625)を制御し、汎用コントローラ(621)は、モードがインターモードである場合、残差計算器(623)で用いるインター予測結果を選択するようにスイッチ(626)を制御すると共に、インター予測情報を選択してビットストリームに含めるようにエントロピーエンコーダ(625)を制御する。
【0079】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果と、の差分(残差データ)を算出するように構成される。残差エンコーダ(624)は、変換係数を生成するために残差データをエンコードするために残差データに基づいて動作するように構成される。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。変換係数はその後に、量子化された変換係数を得るために量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(603)はまた、残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、デコード済残差データを生成するように構成される。デコード済残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)において好適に用いることができる。例えば、インターエンコーダ(630)は、デコード済残差データとインター予測情報とに基づいてデコード済ブロックを生成し、イントラエンコーダ(622)は、デコード済残差データとイントラ予測情報とに基づいてデコード済ブロックを生成することができる。いくつかの例では、デコード済ブロックは、デコード済画像を生成するために適切に処理され、デコード済画像は、メモリ回路(図示せず)にバッファされ、参照画像として使用され得る。
【0080】
エントロピーエンコーダ(625)は、エンコード済ブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC標準規格などの適切な標準規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、一般制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0081】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディング済ビデオシーケンスの一部であるコーディング済画像を受信し、コーディング済画像をデコードして再構築された画像を生成するように構成される。一例では、ビデオデコーダ(710)は、
図3の例のビデオデコーダ(310)の代わりに使用される。
【0082】
図7の例では、ビデオデコーダ(710)は、
図7に示すように互いに結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構築モジュール(774)、およびイントラデコーダ(772)を含む。
【0083】
エントロピーデコーダ(771)は、コーディング済画像から、コーディング済画像が構成されるシンタックス要素を表す特定のシンボルを再構築するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モードなどであり、後者の2つはマージサブモードまたは別のサブモードである)、イントラデコーダ(772)またはインターデコーダ(780)によってそれぞれ予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報など)、ならびに、例えば量子化変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双予測モードである場合、インター予測情報はインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0084】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0085】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0086】
残差デコーダ(773)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)はまた、(量子化器パラメータ(QP)を含むために)特定の制御情報を必要とする場合があり、その情報はエントロピーデコーダ(771)によって提供される場合がある(これとして示されていないデータ経路は、低ボリューム制御情報のみであり得る)。
【0087】
再構築モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と(場合によってはインターまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構築画像の一部であり得る再構築されたブロックを形成するように構成され、再構築されたブロックは再構築されたビデオの一部であり得る。視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができることに留意されたい。
【0088】
ビデオエンコーダ(303)、(503)、および(603)、ならびにビデオデコーダ(310)、(410)、および(710)は、任意の適切な技術を使用して実装することができることに留意されたい。一実施形態では、ビデオエンコーダ(303)、(503)、および(603)、ならびにビデオデコーダ(310)、(410)、および(710)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(303)、(503)、および(503)、ならびにビデオデコーダ(310)、(410)、および(710)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0089】
II.結合されたCb残差およびCr残差(JCCR)、イントラブロックコピー(IBC)、ならびに結合されたイントラおよびインター予測(CIIP)のコーディングモード
1.彩度残差の結合されたコーディング
VVC Draft 6(JVET-O2001-vE)は、CbおよびCr成分の彩度残差が一緒にコーディングされるモードをサポートする。共同CbおよびCr残差(JCCR)コーディングモードの使用(アクティブ化)は、TUレベルフラグtu_joint_cbcr_residual_flagによって示され、選択されたモードは、彩度コーディング済ブロックフラグ(CBF)によって暗黙的に示す。TUの彩度CBFのいずれかまたは両方が1に等しい場合には、フラグtu_joint_cbcr_residual_flagが存在する。画像パラメータセット(PPS)および/またはスライスヘッダにおいて、JCCR彩度量子化パラメータ(QP)オフセット値は、通常の彩度残差コーディングモードについてシグナリングされる彩度QPオフセット値と区別するために、共同彩度残差コーディングモードについてシグナリングされる。これらのJCCR彩度QPオフセット値は、共同彩度残差コーディングモードを使用してコーディングされたそれらのブロックの彩度QP値を導出するために使用される。
【0090】
表1は、3つの異なる共同彩度コーディングモード(またはJCCRモード):モード1、モード2、およびモード3についての彩度残差の構成の例を示す。TUにおいてモード2がアクティブであるとき、それぞれのJCCR彩度QPオフセットは、そのTUの量子化およびデコーディング中に適用された輝度由来の彩度QPに加算される。他のモード(表1のモード1およびモード3)については、JCCR彩度QPは、従来のCbまたはCrブロックの場合と同じ方法で導出される。送信された変換ブロックからの彩度残差(resCbおよびresCrと示される)の再構築プロセスを表1に示す。JCCRコーディングモードがアクティブ化されると、1つの単一の共同彩度残差ブロック(resJointC[x][y]と示される)がシグナリングされる。CBF(tu_cbf_cbとtu_cbf_cr)およびCSignなどの情報を考慮して、Cb成分用の残差ブロック(resCb)とCr成分用の残差ブロック(resCr)を導出する。値CSignは、符号値(+1または-1)であり、スライスヘッダにおいて指定される。
【0091】
【0092】
一例では、モード1、2、および3はイントラコーディング済CUでサポートされ、一方、インターコーディング済CUではモード2のみがサポートされる。したがって、一例では、インターコーディング済CUの場合、シンタックス要素tu_joint_cbcr_residual_flagは、両方の彩度CBFが1である場合(モード2の状況)にのみ存在する。
【0093】
VVCドラフトバージョン6に記載されているようなJCCRコーディングモードの関連する仕様書を以下に記載する。
【0094】
変換ユニットのシンタックスの例を表2および表3の行1から行51に示す。行32~33では、SPSレベルでJCCRコーディングモードがイネーブルである場合、および変換ユニットがイントラ予測モードでコーディングされ、2つのCBFのうちの1つが1の値である場合、または2つのCBFの両方が1の値である場合、tu_joint_cbcr_residual_flagがシグナリングされる。
【0095】
【0096】
【0097】
上記の変換ユニットシンタックスに対応して、変換ユニットセマンティクスは以下のように定義される。
【0098】
1に等しいシンタックス要素tu_cbf_cb[x0][y0]は、Cb変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むことを指定する。配列インデックスx0,y0は、考慮される変換ブロックの左上位置(x0、y0)を指定する。現在のTUにtu_cbf_cb[x0][y0]が存在しない場合、その値は0に等しいと推測される。
【0099】
1に等しいシンタックス要素tu_cbf_cr[x0][y0]は、Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むことを指定する。配列インデックスx0,y0は、考慮される変換ブロックの左上位置(x0、y0)を指定する。現在のTUにtu_cbf_cr[x0][y0]が存在しない場合、その値は0に等しいと推測される。
【0100】
シンタックス要素tu_joint_cbcr_residual_flag[x0][y0]は、彩度成分CbおよびCrの両方の残差サンプルが単一の変換ブロックとしてコーディングされるかどうかを指定する。配列インデックスx0,y0は、画像の左上輝度サンプルに対する考慮される変換ブロックの左上輝度サンプルの位置(x0、y0)を指定する。
【0101】
1に等しいシンタックス要素tu_joint_cbcr_residual_flag[x0][y0]は、変換ユニットシンタックスが、CbおよびCrの両方の残差サンプルが導出される単一の変換ブロックの変換係数レベルを含むことを指定する。0に等しいシンタックス要素tu_joint_cbcr_residual_flag[x0][y0]は、彩度成分の変換係数レベルが、シンタックス要素tu_cbf_cb[x0][y0]およびtu_cbf_cr[x0][y0]によって示されるようにコーディングされることを指定する。tu_joint_cbcr_residual_flag[x0][y0]が存在しない場合、0と等しいと推測される。
【0102】
tu_joint_cbcr_residual_flag[x0][y0]、tu_cbf_cb[x0][y0]、およびtu_cbf_cr[x0][y0]に応じて、変数TuCResMode[x0][y0]は以下のように導出することができる:tu_joint_cbcr_residual_flag[x0][y0]が0に等しい場合には、変数TuCResMode[x0][y0]は0に等しく設定される。そうではなく、tu_cbf_cb[x0][y0]が1に等しく、tu_cbf_cr[x0][y0]が0に等しい場合には、変数TuCResMode[x0][y0]は1に等しく設定される。そうではなく、tu_cbf_cb[x0][y0]が1に等しい場合には、変数TuCResMode[x0][y0]は2に等しく設定される。それ以外の場合には、変数TuCResMode[x0][y0]は3に等しく設定される。
【0103】
スケーリングおよび変換プロセスの例を以下に説明する。このプロセスへの入力は、現在の画像の左上輝度サンプルに対する現在の輝度変換ブロックの左上サンプルを指定する輝度位置(xTbY、yTbY)、現在のブロックの色成分を指定する変数cIdx、変換ブロック幅を指定する変数nTbW、変換ブロック高さを指定する変数nTbHである。このプロセスの出力は、x=0..nTbW-1、y=0..nTbH-1である残差サンプルresSamples[x][y]の(nTbW)x(nTbH)配列である。
【0104】
変数bitDepth、bdShift、およびtsShiftは、以下のように導出される。
bitDepth=(cIdx==0)?BitDepthY:BitDepthC,
bdShift=Max(22-bitDepth,0),
tsShift=5+((Log 2(nTbW)+Log 2(nTbH))/2)である。
【0105】
変数codedCIdxは以下のように導出される:cIdxが0に等しいか、またはTuCResMode[xTbY][yTbY]が0に等しい場合には、codedCIdxはcIdxに等しく設定される。そうではなく、TuCResMode[xTbY][yTbY]が1または2に等しい場合には、codedCIdxは1に等しく設定される。それ以外の場合には、codedCIdxは2に等しく設定される。
【0106】
変数cSignは、(1-2*slice_joint_cbcr_sign_flag)と等しく設定される。
【0107】
残差サンプルresSamplesの(nTbW)×(nTbH)配列は、以下の4つのステップで導出される。
【0108】
ステップ1で、変換ブロック位置(xTbY、yTbY)、変換幅nTbWおよび変換高さnTbH、色成分変数cIdxおよび現在の色成分bitDepthのビット深度を入力として、変換係数のためのスケーリングプロセスが呼び出され、出力は、スケーリングされた変換係数dの(nTbW)x(nTbH)配列である。
【0109】
ステップ2で、残差サンプルrの(nTbW)x(nTbH)配列が以下のように導出される。transform_skip_flag[xTbY][yTbY][cIdx]が1に等しい場合には、x=0..nTbW-1、y=0..nTbH-1の残差サンプル配列値r[x][y]は以下のように導出される。
r[x][y]=d[x][y]<<tsShift
そうでない(transform_skip_flag[xTbY][yTbY][cIdx]が0に等しい)場合には、変換ブロック位置(xTbY、yTbY)、変換幅nTbWおよび変換高さnTbH、色成分変数cIdxおよびスケーリングされた変換係数dの(nTbW)x(nTbH)配列を入力として、スケーリングされた変換係数の変換プロセスが呼び出され、出力は残差サンプルrの(nTbW)x(nTbH)配列である。
【0110】
ステップ3で、x=0..nTbW-1、y=0..nTbH-1の残差サンプルresSamples[x][y]は、以下のように導出される。
resSamples[x][y]=(r[x][y]+(1<<(bdShift-1)))>>bdShiftである。
【0111】
ステップ4で、x=0..nTbW-1、y=0..nTbH-1の残差サンプルresSamples[x][y]が以下のように導出される。cIdxがcodedCIdxに等しい場合には、以下が適用される。
resSamples[x][y]=res[x][y]
そうではなく、TuCResMode[xTbY][yTbY]が2に等しい場合には、以下が適用される。
resSamples[x][y]=cSign*res[x][y]
それ以外の場合には、以下が適用される。
resSamples[x][y]=(cSign*res[x][y])>>1
【0112】
以下、2値化プロセスの一例について説明する。このプロセスへの入力は、シンタックス要素の要求である。このプロセスの出力は、シンタックス要素の2値化である。
【0113】
表4は、各シンタックス要素および対応する入力に関連する2値化プロセスのタイプを指定する。示されるように、切断型ライス(TR)2値化プロセスおよび固定長(FL)2値化プロセスが使用され得る。
【0114】
【0115】
導出処理では、ctxTable、ctxIdx、bypassFlagの変数を決定することができる。例えば、ビンストリング内の現在のビンの位置に基づいて、導出プロセスからbinIdx、ctxTable、ctxIdxおよびbypassFlagを出力することができる。表5は、シンタックス要素およびそれぞれのシンタックス要素の各ビンに対応するbypassFlagまたはctxIdxの例を示す。例えば、表5の下部に示すように、シンタックス要素tu_joint_cbcr_residual_flagは、1つのビンを含むことができる。コンテキストモデルインデックス(ctxIdx)は、以下に従って決定することができる。
2*tu_cbf_cb[][]+tu_cbf_cr[][]-1。
CBFシンタックス要素tu_cbf_cbまたはtu_cbf_crは各々1または0の値を有することができるので、コンテキストモデルインデックスは、3つのコンテキストモデルに対応する以下の3つの値:0、1、または2のうちの1つとすることができる。tu_cbf_cbおよびtu_cbf_crの両方が0値であるとき、シンタックス要素tu_joint_cbcr_residual_flagはシグナリングされないことに留意されたい。
【0116】
【0117】
2.イントラブロックコピーモード
ハイブリッドブロックベースのビデオコーディングの場合、異なる画像からの動き補償(画像間動き補償)がよく知られている。同様に、同じ画像内の以前に再構築された領域から動き補償を実行することもできる。これは、画像内ブロック補償、現在画像参照(CPR)、またはブロック内コピー(IBC)と呼ばれる。IBCにおいて、処理対象ブロックと参照ブロックとの間のオフセットを示す変位ベクトルをブロックベクトル(BV)と呼ぶ。任意の値(xまたはy方向のいずれかで正または負)とすることができる異なる画像からの動き補償における動きベクトルとは異なり、ブロックベクトルは、指示された参照ブロックが利用可能であり、既に再構築されていることが保証されるように、いくつかの制約を有する。また、並列処理の検討のため、タイル境界や波面ラダー形状境界である一部の基準領域もIBCから除外する。
【0118】
ブロックベクトルのコーディングは、明示的または暗黙的のいずれかであり得る。明示的モード(またはインターコーディングで高度動きベクトル予測(AMVP)モードと呼ばれる)では、ブロックベクトルとその予測子との間の差がシグナリングされる。暗黙的モードでは、ブロックベクトルは、マージモードで取得された動きベクトルと同様の方法で、その予測器から純粋に復元される。ブロックベクトルの分解能は、いくつかの実施態様では整数位置に制限され、他のシステムでは小数位置を指し示すことができる。
【0119】
一実施形態では、ブロックレベルでのIBCの使用は、IBCフラグと呼ばれるブロックレベルフラグを使用してシグナリングすることができる。一例では、IBCフラグは、現在のブロックがマージモードでコーディングされていないときにシグナリングされる。別の例では、IBCの使用は、参照インデックス手法によって通知され得、現在のデコード済画像は参照画像として扱われる。例えば、HEVCスクリーンコンテンツコーディング(SCC)では、このような参照画像は、参照画像リストの最後の位置に配置される。この特殊な参照画像も、デコード済画像バッファ(DPB)において、他の時間参照画像と共に管理される。
【0120】
フリップされたブロック内コピー(参照ブロックは、現在のブロックを予測するために使用される前に水平方向または垂直方向にフリップされる)、またはラインベースのブロック内コピー(MxNコーディングブロック内の各補償ユニットは、Mx 1または1 xNラインである)のような、ブロック内コピーのいくつかの変形もある。
【0121】
図8は、画像内ブロック補償の一例を示す図である。処理中の画像(810)(現在の画像と呼ばれる)は、CTU(811~825)に分割される。CTU(811~822)はデコードされている。現在のCTU(823)は処理中である。現在のCTU(823)内のIBCコーディングされた現在のブロック(801)をデコードするために、ブロックベクトル(803)を最初に決定することができる。ブロックベクトル(803)に基づいて、CTU(817)内の参照ブロック(802)(予測ブロックまたは予測器ブロックとも呼ばれる)を見つけることができる。したがって、参照ブロック(802)を現在のブロック(801)の残差と結合することによって、現在のブロック(801)を再構築することができる。図示するように、参照ブロック(802)および現在のブロック(801)は、同じ現在の画像(810)内に存在する。
【0122】
3.結合されたイントラおよびインター予測
図9は、CU(910)を示す。一実施形態では、CUがマージモードでコーディングされるとき、CU(910)が少なくとも64個の輝度サンプル(例えば、CU幅×CU高さは64以上である)を含み、CU幅およびCU高さの両方が128個の輝度サンプル未満である場合には、結合されたインター/イントラ予測(CIIP)モードが現在のCU(910)に適用されるかどうかを示すために追加のフラグがシグナリングされる。その名称が示すように、CIIP予測は、インター予測信号とイントラ予測信号とを結合する。通常マージモードに適用される同じインター予測プロセスを用いて、CIIPモードのインター予測信号P
interを導出する。イントラ予測信号P
intraは、プレーナモードの通常のイントラ予測プロセスに従って導出される。そして、イントラ予測信号とインター予測信号とを重み付け平均により結合する。重み値は、CU(910)の上および左の隣接ブロック(901および902)のコーディングモードに応じて計算される。
【0123】
例えば、以下のように算出することができる。上位隣接ルータが利用可能であり、イントラコーディングされている場合、isIntraTopを1に設定し、そうでない場合、isIntraTopを0に設定する。左隣接が利用可能であり、イントラコーディングされている場合には、isIntraLeftを1に設定し、そうでない場合には、isIntraLeftを0に設定する。(isIntraLeft+isIntraLeft)が2に等しい場合には、重み値(wtで示す)は3に設定される。そうではなく、(isIntraLeft+isIntraLeft)が1に等しい場合には、wtは2に設定される。それ以外の場合には、wtを1に設定する。
【0124】
一例では、CIIP予測は以下のように形成することができる。
PCIIP=((4-wt)*Pinter+wt*Pintra+2)>>2である。
【0125】
III.共同彩度残差コーディングの改善
いくつかの実施形態では、表1で定義された3つのJCCRモード(モード1~3)は、インターコーディング済CUとイントラコーディング済CUの両方に適用される。具体的には、モード1~3の各々は、インターコーディング済CUに適用することができ、モード1~3の各々は、インターコーディング済CUに適用することができる。
【0126】
例えば、インターコーディング済CUの場合、CUのtu_cbf_cbおよびtu_cbf_crがそれぞれ1および0の値(モード1の状況)、またはそれぞれ0および1の値(モード3の状況)を有する場合、JCCR処理は依然としてインターコーディング済CUに適用することができる。例えば、表3の変換ユニットシンタックスの行32~33に対応して、モード1およびモード3をインターコーディング済CUに適用するために、行32のシンタックスは、tu_cbf_cbおよびtu_cbf_crのうちの1つが0の値を有する場合に、TUレベルJCCRアクティブ化フラグ、tu_joint_cbcr_residual_flagのシグナリングを可能にするように修正することができる。
【0127】
いくつかの実施形態では、JCCRモードは、IBCモードでコーディングされたCU、またはCIIPモードでコーディングされたCUに適用することができる。JCCRアクティブ化フラグは、IBCコーディングされたCUまたはCIIPコーディングされたCUに対してシグナリングされ得る。いくつかの実施形態では、IBCモードまたはCIIPモードでコーディングされたCUのエントロピーコーディングのために、IBCモードおよびCIIPモードは、コンテキストモデルを選択するためのイントラ予測モードとして扱われ得る。
【0128】
一実施形態では、現在のブロック(または現在のCU)のTUレベルJCCRアクティブ化フラグtu_joint_cbcr_residual_flagをエントロピーコーディング(エンコーディングまたはデコーディング)するために、コンテキストモデルは、各々がコンテキストインデックス(ctxIdxと示される)に関連付けられた候補コンテキストモデルのセットから選択することができる。選択は、現在のブロックの以前にコーディング(エンコードまたはデコード)された情報に依存することができる。以前にコーディング済の情報は、現在のブロックの予測モード、および現在のブロックのCBFを含むことができる。
【0129】
現在のブロックの予測モードは、インター予測モードおよびイントラ予測モードを含むことができる。現在のブロックがIBCモードまたはCIIPモードでコーディングされている場合、現在のブロックはイントラ予測モードでコーディングされているものとして扱われる。現在のブロックの予測モードは、ビットストリームから以前にシンタックス解析されたシンタックス要素に従って決定することができる。あるいは、シンタックス要素が利用できない(ビットストリームに存在しない)場合、それぞれのシンタックス要素の値を推測することができる。
【0130】
一例では、現在のブロックを処理するデコーディングプロセス中に、現在のブロックの予測モードを決定することができる。例えば、現在のブロック(またはCU)がインター予測モードでコーディングされているかイントラ予測モードでコーディングされているかを示すシンタックス要素(例えば、pred_mode_flagで表される予測モードフラグ)を、ビットストリームから受信して解析することができる。例えば、0に等しいpred_mode_flagは、現在のコーディングユニットがインター予測モードでコーディングされることを指定し、1に等しいpred_mode_flagは、現在のコーディングユニットがイントラ予測モードでコーディングされることを指定する。
【0131】
または、予測モードを示すシンタックス要素がシグナリングされない場合、シンタックス要素の値を推測することができる。一例では、pred_mode_flagが存在しない場合、以下のように推測される。現在のブロックの幅(cbWidthで示される)が4に等しく、現在のブロックの高さ(cbHeight)が4に等しい場合には、pred_mode_flagは1に等しいと推測される。そうではなく、modeTypeがMODE_TYPE_INTRAに等しい場合には、pred_mode_flagは1に等しいと推測される。そうではなく、modeTypeがMODE_TYPE_INTERに等しい場合には、pred_mode_flagは0に等しいと推測される。それ以外の場合には、pred_mode_flagは、それぞれ、Iスライスをデコーディングするときに1に等しく、PまたはBスライスをデコーディングするときに0に等しいと推測される。
【0132】
一例では、現在のブロックはICPモードでコーディングされる。したがって、pre_mode_ibc_flagと示されるシンタックス要素は、ビットストリームから受信または解析され得る。1に等しいpred_mode_ibc_flagは、現在のコーディングユニットがIBC予測モードでコーディングされることを指定する。0に等しいpred_mode_ibc_flagは、現在のコーディングユニットがIBC予測モードでコーディングされていないことを指定する。同様に、pred_mode_ibc_flagが存在しない場合、pred_mode_ibc_flagを推測することができる。
【0133】
一例では、現在のブロックはCIIPモードでコーディングされる。したがって、ciip_flagと示されるシンタックス要素は、ビットストリームから受信または解析することができる。ciip_flag[x0][y0]は、結合された画像間マージおよび画像内予測が現在のコーディングユニットに適用されるかどうかを指定する。配列インデックスx0,y0は、画像の左上輝度サンプルに対する考慮されるコーディングブロックの左上輝度サンプルの位置(x0、y0)を指定する。ciip_flag[x0][y0]が存在しない場合、ciip_flagを推測することができる。
【0134】
さらに、現在のブロックのCBFを決定または推測することができる。例えば、tu_cbf_cbと示される、現在のブロックのCb変換ブロックの第1のTU CBFが、ビットストリームから受信され、解析され得る。Cb CBFは、Cb変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示すことができる。一例では、1に等しいtu_cbf_cb[x0][y0]は、Cb変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むことを指定する。配列インデックスx0,y0は、考慮される変換ブロックの左上位置(x0、y0)を指定する。現在のTUにtu_cbf_cb[x0][y0]が存在しない場合、Cb CBFの値は0に等しいと推測される。
【0135】
同様に、tu_cbf_crで示される、現在のブロックのCr変換ブロックの第2のTUコーディング済ブロックフラグを、ビットストリームから受信して解析することができる。Cr CBFは、Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示すことができる。一例では、1に等しいtu_cbf_cr[x0][y0]は、Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むことを指定する。配列インデックスx0,y0は、考慮される変換ブロックの左上位置(x0、y0)を指定する。現在のTUにtu_cbf_cr[x0][y0]が存在しない場合、Cr CBFの値は0に等しいと推測される。
【0136】
一実施形態では、現在のブロック(または現在のCU)のtu_joint_cbcr_residual_flagをエントロピーコーディング(エンコーディングまたはデコーディング)するために、コンテキストモデルは、現在のブロックの予測モードおよび現在のブロックのCBFに基づいて決定することができる。
【0137】
第1の例では、contextIdx(またはctxIdx)として示されるtu_joint_cbcr_residual_flagのコンテキストインデックスは、以下の式によって計算することができる。
contextIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(isIntra?0:1).
変数isIntraは、現在のブロックがイントラ予測モードでコーディングされている場合には1となり、現在のブロックがインター予測モードでコーディングされている場合には0となる。CBFおよび予測モードの異なる値の異なる組み合わせに対応して、6つの候補コンテキストモデルに対応する6つのコンテキストインデックス(0から5)があり得る。本開示では、contextIdxおよびctxIdxは、コンテキストインデックスを参照するために交換可能に使用される。
【0138】
第2の例では、tu_joint_cbcr_residual_flagのコンテキストインデックスは、以下の式によって計算することができる。
cbfCbCr=2*tu_cbf_cb+tu_cbf_cr
contextIdx=(cbfCbCr==3)?0:(cbfCbCr+2*(isIntra?0:1)).
CBFおよび予測モードの異なる値の異なる組み合わせに対応して、5つの候補コンテキストモデルに対応する5つのコンテキストインデックス(oから4)があり得る。
【0139】
第3の例では、tu_joint_cbcr_residual_flagのコンテキストインデックスは、以下の式によって計算することができる。
cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
contextIdx=(cbfCbCr==3)?0:((isIntra?cbfCbCr:3))。
CBFおよび予測モードの異なる値の異なる組み合わせに対応して、4つの候補コンテキストモデルに対応する4つのコンテキストインデックス(0から3)があり得る。
【0140】
第4の例では、tu_joint_cbcr_residual_flagのコンテキストインデックスは、以下の式で算出することができる。
cbfCbCr=2*tu_cbf_cb+tu_cbf_cr
contextIdx=(cbfCbCr==3)?0:(isIntra?1:2)).
CBFおよび予測モードの異なる値の異なる組み合わせに対応して、3つの候補コンテキストモデルに対応する3つのコンテキストインデックス(0から2)があり得る。
【0141】
いくつかの実施形態では、現在のブロック(または現在のCU)のtu_joint_cbcr_residual_flagをエントロピーコーディング(エンコードまたはデコード)するために、コンテキストモデルは、現在のブロックの隣接ブロックのコーディング情報に基づいて決定することができる。例えば、隣接ブロックのコーディング情報は、隣接ブロックの予測モードおよびCBFを含むことができる。
【0142】
いくつかの実施形態では、現在のブロック(または現在のCU)のtu_joint_cbcr_residual_flagをエントロピーコーディング(エンコードまたはデコード)するために、現在のブロックおよび/または現在のブロックの隣接ブロックのコーディング情報に基づいてコンテキストモデルを決定することができる。
【0143】
実施形態では、現在のブロック(または現在のCU)のTUレベルJCCRアクティブ化フラグtu_joint_cbcr_residual_flagをエントロピーコーディング(エンコードまたはデコード)するために、コンテキストモデルは、各々がコンテキストインデックス(ctxIdxと示される)に対応する候補コンテキストモデルのセットから選択することができる。選択は、現在のブロックのブロックサイズに依存することができる。例えば、ブロックサイズは、ブロック幅、ブロック高さ、ブロック領域サイズ、ブロック幅と高さの和、ブロック幅と高さの最大値、ブロック幅と高さの最小値などによって示すことができる。
【0144】
例えば、異なるブロックサイズを有する異なるブロックにJCCRモードを適用すると、コーディング効率および計算コストが異なる可能性がある。したがって、異なるサイズを有するブロックは、JCCRモードのアクティブ化の異なる確率を有することができる。ブロックサイズに基づいてコンテキストモデルを決定することにより、TUレベルのJCCRアクティブ化フラグのエントロピーコーディング効率を改善することができる。
【0145】
一例では、コンテキストインデックスの決定にブロックサイズのしきい値Kが用いられる。例えば、現在のブロックのブロックサイズがしきい値Kより小さい場合、第1のコンテキストが使用される。そうでなければ、第2のコンテキストが使用される。
【0146】
一実施形態では、現在のブロックのエントロピーコーディングのためのコンテキストモデルの選択は、現在のブロックのサイズならびに現在のブロックの以前にコーディング(エンコードまたはデコード)された情報に依存することができる。以前にコーディング済の情報は、現在のブロックの予測モード、および現在のブロックのCBFを含むことができる。
【0147】
一例では、現在のブロックのtu_joint_cbcr_residual_flagのコンテキストインデックスは、以下の式によって計算することができる。
(2*tu_cbf_cb+tu_cbf_cr-1)+3*(ブロックサイズ<K?0:1).
Kはしきい値を表し、128または256などの正の整数であり得る。したがって、ブロックサイズがKより小さい場合に3つの候補、ブロックサイズがK以上である場合に3つの他の候補という、6つの候補コンテキストモデルが存在することができる。
【0148】
IV.例示的コーディング処理
図10は、本開示の一実施形態によるデコーディングプロセス(1000)の概要を示すフローチャートを示す図である。プロセス(1000)を実行することにより、TUレベルJCCRアクティブ化フラグをビットストリームから解析することができる。TUレベルJCCRアクティブ化フラグに従って、再構築中のブロックについてCbおよびCr彩度成分の残差ブロックを決定することができる。様々な実施形態では、プロセス(1000)は、端末装置(210)、(220)、(230)および(240)の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1000)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1000)を実行する。(S1001)からプロセスが開始され、(S1010)に進む。
【0149】
(S1010)において、現在のCUの予測モードを決定することができる。予測モードは、インター予測モードおよびイントラ予測モードを含むことができる。例えば、現在のコーディングユニットがインター予測モードでコーディングされているかイントラ予測モードでコーディングされているかを示す予測モードフラグをビットストリームで受信することができる。あるいは、予測モードがビットストリームに存在しない場合、予測モードフラグの値を推測することができる。現在のCUがIBCモードまたはCIIPモードでコーディングされる場合、現在のCUは、一実施形態ではイントラ予測モードでコーディングされるものとして扱われる。
【0150】
(S1020)において、現在のCUのCBFの値を決定することができる。CbおよびCr CBFの各々は、1または0の値を有することができる。例えば、tu_cbf_cbと表されるCb変換ブロックのTUコーディング済ブロックフラグを受信または推測することができる。tu_cbf_cbは、Cb変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示すことができる。例えば、tu_cbf_crで示されるCr変換ブロックのTUコーディング済ブロックフラグを受信または推測することができる。tu_cbf_crは、Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示すことができる。
【0151】
(S1030)において、ctxIdxと表されるコンテキストインデックスは、現在のCUの予測モードならびにtu_cbf_cbおよびtu_cbf_crの値に基づいて決定することができる。例えば、コンテキストインデックスは、以下の(1)~(4)式のセットのうちの1つに従って決定することができる。
(1)ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(isIntra?0:1),
(2)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr,
ctxIdx=(cbfCbCr==3)?0:(cbfCbCr+2*(isIntra?0:1)),
(3)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr,
ctxIdx=(cbfCbCr==3)?0:((isIntra?cbfCbCr:3)),and
(4)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr,
ctxIdx=(cbfCbCr==3)?0:(isIntra?1:2))、
ここで、isIntraは、現在のCUがイントラ予測モードでコーディングされている場合に真であり、現在のCUがインター予測モードでコーディングされている場合に偽であるブール値を表す。
【0152】
(S1040)では、(S1030)で決定されたctxIdxが示すコンテキストモデルに従って、算術デコーディングプロセスを行うことができる。算術デコーディングプロセスの間、共同Cb Cr残差(JCCR)フラグのビンは、JCCRモードが適用されるかどうか(現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされるかどうか)を示すビットストリームから解析することができる。JCCRフラグが、JCCRモードが現在のCUに適用されていることを示す場合、現在のCUのCb残差ブロックおよびCr残差ブロックは、例えば、表1に記載されたような方法で、単一の変換ブロックに基づいて再構築することができる。JCCRフラグがJCCRモードが使用されていないことを示す場合、現在のCUのCbおよびCr残差ブロックを別々に取得することができる。プロセス1000は、(S1099)に進み、(S1099)で終了することができる。
【0153】
図11は、本開示の一実施形態によるデコーディングプロセス(1100)の概要を示すフローチャートを示す図である。プロセス(1100)を実行することにより、TUレベルJCCRアクティブ化フラグをビットストリームから解析することができる。TUレベルJCCRアクティブ化フラグに従って、再構築中のブロックについてCbおよびCr彩度成分の残差ブロックを決定することができる。様々な実施形態では、プロセス(1100)は、端末装置(210)、(220)、(230)および(240)の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1100)はソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1100)を実行する。(S1101)からプロセスが開始され、(S1110)に進む。
【0154】
(S1110)において、現在のCUのサイズは、ビットストリームで受信された1つまたは複数のシンタックス要素に基づいて決定することができる。例えば、ビットストリームから解析された1つまたは複数のシンタックス要素は、現在のCUの幅、高さ、または面積を、例えばサンプル数で示すことができる。現在のCUのサイズは、現在のCUのブロック幅、ブロック高さ、ブロック領域サイズ(例えば、ブロック幅はブロック高さを乗算する)、ブロック幅とブロック高さとの和、ブロック幅とブロック高さの最大値、またはブロック幅とブロック高さの最小値によって表すことができる。
【0155】
(S1120)において、ctxIdxと表されるコンテキストインデックスは、現在のCUのサイズに基づいて決定することができる。一例では、サイズしきい値が使用される。第1のコンテキストモデルのctxIdxは、現在のCUのブロックサイズがしきい値より小さい場合に使用される。第2のコンテキストモデルの別のctxIdxは、現在のCUのブロックサイズがしきい値より大きい場合に使用される。
【0156】
一例では、コンテキストモデルは、現在のCUのサイズおよび現在のCUのCBFに基づいて決定される。例えば、コンテキストインデックスは、次式により決定され得る。
ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(ブロックサイズ<K?0:1)、
ここで、ブロックサイズは現在のCUのサイズを表し、Kはしきい値を表し、正の整数である。
【0157】
(S1130)では、(S1120)で決定されたctxIdxが示すコンテキストモデルに従って、算術デコーディングプロセスを行うことができる。プロセス中、現在のCUの彩度成分CbおよびCrの両方の残差サンプルが単一の変換ブロックとしてコーディングされるかどうかを示すJCCRフラグのビンを決定することができる。JCCRフラグに基づいて、現在のCUのCbおよびCr彩度成分の残差ブロックを続いて導出することができる。プロセス1100は、(S1199)に進み、(S1199)で終了することができる。
【0158】
V.コンピュータシステム
上述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に格納されたコンピュータソフトウェアとして実装することができる。例えば、
図12は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(1200)を示す。
【0159】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などにより、アセンブリ、コンパイル、リンク、または同様の機構の対象となり得、直接に、または翻訳、マイクロコードの実行などを通じて実行され得る命令を含むコードを作成することができる、任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングすることができる。
【0160】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバー、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0161】
コンピュータシステム(1200)について
図12に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する制限を示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム(1200)の例示的な実施形態に示されている構成要素のいずれか1つまたは組み合わせに関する依存性または要件を有するものとして解釈されるべきではない。
【0162】
コンピュータシステム(1200)は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)による、1人または複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェースデバイスを使用して、音声(スピーチ、音楽、環境音など)、画像(スキャンされた画像、静止画像カメラから得られる写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることもできる。
【0163】
入力ヒューマンインターフェースデバイスは、キーボード(1201)、マウス(1202)、トラックパッド(1203)、タッチスクリーン(1210)、データグローブ(図示せず)、ジョイスティック(1205)、マイクロフォン(1206)、スキャナ(1207)、カメラ(1208)のうちの1つまたは複数(各々のうちのただ1つ)を含むことができる。
【0164】
コンピュータシステム(1200)はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて、1人または複数の人間のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1210)、データグローブ(図示せず)、またはジョイスティック(1205)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(1209)、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(1210)などであって、それぞれタッチスクリーン入力機能の有無にかかわらず、また触覚フィードバック機能の有無にかかわらず、-これらの一部は、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず)などの手段を介して、2次元の視覚的出力または3次元を超える出力を出力することができる)、ならびにプリンタ(図示せず)を含むことができる。
【0165】
コンピュータシステム(1200)はまた、CD/DVDまたは同様の媒体(1221)を備えたCD/DVD ROM/RW(1220)を含む光学メディア、サムドライブ(1222)、取り外し可能なハードドライブまたはソリッドステートドライブ(1223)、テープおよびフロッピー(登録商標)ディスク(図示せず)などの従来の磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなどの、人間がアクセス可能な記憶装置および関連メディアを含むことができる。
【0166】
当業者はまた、ここで開示される主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0167】
コンピュータシステム(1200)はまた、1つまたは複数の通信ネットワーク(1255)へのインターフェース(1254)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。さらに、ネットワークは、ローカル、広域、大都市圏、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むテレビ有線または無線広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークでは、一般に、特定の汎用データポートまたは周辺バス(1249)(例えばコンピュータシステム(1200)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタが必要であり、その他のネットワークは、一般に、後述するようにシステムバスへの取り付けによりコンピュータシステム(1200)のコアに統合されている(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1200)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイス)、または双方向、例えば、ローカルエリアまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。上記のように、特定のプロトコルとプロトコルスタックは、これらのネットワークとネットワークインターフェースのそれぞれで使用することができる。
【0168】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1200)のコア(1240)に取り付けることができる。
【0169】
コア(1240)は、1つまたは複数の中央処理装置(CPU)(1241)、グラフィック処理装置(GPU)(1242)、フィールドプログラマブルゲートエリア(FPGA)(1243)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1244)、グラフィックスアダプタ(~~50)などを含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(1245)、ランダムアクセスメモリ(1246)、ユーザがアクセスできない内部ハードドライブ、SSD(1247)などの内部大容量記憶装置と共に、システムバス(1248)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(1248)は1つまたは複数の物理プラグの形でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(1248)に直接、または周辺バス(1249)を介して接続することができる。一例では、画面(1210)をグラフィックスアダプタ(1250)に接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0170】
CPU(1241)、GPU(1242)、FPGA(1243)、およびアクセラレータ(1244)は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1245)またはRAM(1246)に格納することができる。移行データはまた、RAM(1246)に格納することができ、一方、永続データは、例えば内部大容量記憶装置(1247)に格納することができる。メモリデバイスのいずれかへの高速記憶および検索は、1つまたは複数のCPU(1241)、GPU(1242)、大容量記憶装置(1247)、ROM(1245)、RAM(1246)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
【0171】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードをその上に有することができる。メディアおよびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術の当業者に周知であり利用可能な種類のものであり得る。
【0172】
限定ではなく例として、アーキテクチャ(1200)、具体的にはコア(1240)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上で紹介されたようなユーザがアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置(1247)またはROM(1245)などの非一時的な性質のコア(1240)の特定の記憶装置に関連する媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(1240)によって実行され得る。コンピュータ可読媒体は、特定のニーズに従って、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1240)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、ソフトウェアで定義されたプロセスに従ってRAM(1246)に格納されているデータ構造の定義やそのようなデータ構造の変更など、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替例として、コンピュータシステムは、ハードウェアに組み込まれた、または回路(例えばアクセラレータ(1244))に組み込まれたロジックの結果として、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行するソフトウェアの代わりにまたは一緒に動作できる機能を提供することができる。ソフトウェアへの言及はロジックを含むことができ、妥当な場合には、その逆も可能である。コンピュータ可読媒体への言及は、実行のためのソフトウェア、実行のためのロジックを具体化する回路、または妥当な場合には、その両方を格納する回路(集積回路(IC)など)を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付記A:略語
ASIC:特定用途向け集積回路
BDPCM:ブロック差分パルス符号変調
BMS:ベンチマークセット
CANBus:コントローラエリアネットワークバス
CB:コーディングブロック
CD:コンパクトディスク
CIIP:結合されたイントラおよびインター予測
CPU:中央処理装置
CRT:陰極線管
CTB:コーディングツリーブロック
CTU:コーディングツリーユニット
CU:コーディングユニット
DPCM:差分パルス符号変調
DVD:デジタルビデオディスク
EP:等しい確率
FPGA:フィールドプログラマブルゲートエリア
GOP:画像のグループ
GPU:グラフィックス処理装置
GSM:グローバル移動体通信システム
HDR:高ダイナミックレンジ
HEVC:高効率ビデオコーディング
HRD:仮想参照デコーダ
IBC:イントラブロックコピー
IC:集積回路
JCCR:共同CbおよびCr残差コーディング(または共同彩度残差コーディング)
JEM:共同探索モデル
LAN:ローカルエリアネットワーク
LCD:液晶ディスプレイ
LTE:ロングタームエボリューション
MV:動きベクトル
OLED:有機発光ダイオード
PB:予測ブロック
PCI:周辺機器相互接続
PLD:プログラマブルロジックデバイス
予測ユニット(PU)
QP:量子化パラメータ
RAM:ランダムアクセスメモリ
RD:レート歪み
RDOQ:レート歪み最適化量子化
ROM:読出し専用メモリ
SCC:スクリーンコンテンツコーディング
SDR:標準ダイナミックレンジ
SEI:補足拡張情報
SNR:信号雑音比
SSD:ソリッドステートドライブ
TSM:変換スキップモード
TU:変換ユニット、
USB:ユニバーサルシリアルバス
VTM:VVCテストモード
VUI:ビデオユーザビリティ情報
VVC:多用途ビデオコーディング
【0173】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある変更、置換、および様々な代替均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。
【符号の説明】
【0174】
101 現在のブロック
200 通信システム
210 端末装置
220 端末装置
230 端末装置
240 端末装置
250 ネットワーク
300 通信システム
301 ビデオソース
302 ビデオ画像
303 ビデオエンコーダ
304 エンコード済ビデオデータ
305 ストリーミングサーバー
306 クライアントサブシステム
307 コピー
308 クライアントサブシステム
309 コピー
310 ビデオデコーダ
311 ビデオ画像
312 ディスプレイ
313 キャプチャサブシステム
320 電子デバイス
330 電子デバイス
401 チャネル
410 ビデオデコーダ
412 レンダリングデバイス
415 バッファメモリ
420 パーサー
421 シンボル
430 電子デバイス
431 受信機
451 スケーラ/逆変換ユニット
452 イントラ画像予測ユニット
453 動き補償予測ユニット
455 アグリゲータ
456 ループフィルタユニット
457 参照画像メモリ
458 現在の画像バッファ
501 ビデオソース
503 ビデオエンコーダ
520 電子デバイス
530 ソースコーダ
532 コーディングエンジン
533 ローカルビデオデコーダ
534 参照画像メモリ
535 予測器
540 送信機
543 コーディング済ビデオシーケンス
545 エントロピーコーダ
550 コントローラ
560 通信チャネル
603 ビデオエンコーダ
621 汎用コントローラ
622 イントラエンコーダ
623 残差計算器
624 残差エンコーダ
625 エントロピーエンコーダ
626 スイッチ
628 残差デコーダ
630 インターエンコーダ
710 ビデオデコーダ
771 エントロピーデコーダ
772 イントラデコーダ
773 残差デコーダ
774 再構築モジュール
780 インターデコーダ
801 IBCコーディングされた現在のブロック
802 参照ブロック
803 ブロックベクトル
810 現在の画像
811 CTU
812 CTU
813 CTU
814 CTU
815 CTU
816 CTU
817 CTU
818 CTU
819 CTU
820 CTU
821 CTU
822 CTU
823 CTU
824 CTU
825 CTU
901 上の隣接ブロック
902 左の隣接ブロック
910 コーディングユニット(CU)
1000 プロセス
1100 プロセス
1200 コンピュータシステム
1201 キーボード
1202 マウス
1203 トラックパッド
1205 ジョイスティック
1206 マイクロフォン
1207 スキャナ
1208 カメラ
1209 スピーカ
1210 タッチスクリーン
1220 CD/DVD ROM/RW
1221 媒体
1222 サムドライブ
1223 ソリッドステートドライブ
1240 コア
1241 中央処理装置(CPU)
1242 グラフィック処理装置(GPU)
1243 フィールドプログラマブルゲートエリア(FPGA)
1244 ハードウェアアクセラレータ
1245 読取り専用メモリ(ROM)
1246 ランダムアクセスメモリ
1247 内部大容量記憶装置
1248 システムバス
1249 周辺バス
1250 グラフィックスアダプタ
1254 インターフェース
1255 通信ネットワーク
【手続補正書】
【提出日】2021-08-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオデコーディングの方法であって、
現在のコーディングユニット(CU)の予測モードを決定するステップであって、前記予測モードは、インター予測モードおよびイントラ予測モードを含む、ステップと、
前記現在のCUのシンタックス要素の値を決定するステップであって、前記シンタックス要素は、
Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_cbと表される、前記Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、
Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_crと表される、前記Cr変換ブロックのTUコーディング済ブロックフラグと、である、ステップと、
前記現在のCUの前記予測モードならびに前記tu_cbf_cbおよび前記tu_cbf_crの値に基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、
前記現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、前記ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと
を含む方法。
【請求項2】
前記現在のCUは、前記インター予測モードでコーディングされ、前記Cb変換ブロックおよび前記Cr変換ブロックのうちの一方は、すべてゼロである変換係数レベルを含み、前記現在のCUの前記CbおよびCrの両方の彩度成分の前記残差サンプルは、前記単一の変換ブロックとしてコーディングされる、請求項1に記載の方法。
【請求項3】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のコーディングユニットが前記インター予測モードまたは前記イントラ予測モードでコーディングされているかどうかを示す予測モードフラグを受信または推測するステップ
を含む、請求項1
または2に記載の方法。
【請求項4】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のCUがイントラブロックコピー(IBC)モード、または結合されたイントラおよびインター予測(CIIP)モードでコーディングされていることに応答して、前記現在のCUの前記予測モードを前記イントラ予測モードであると判定するステップ
を含む、請求項1
から3のいずれか一項に記載の方法。
【請求項5】
前記現在のCUの前記シンタックス要素の値を決定する前記ステップは、
前記Cb変換ブロックまたは前記Cr変換ブロックの前記TUコーディング済ブロックフラグを受信または推測するステップ
を含む、請求項1
から4のいずれか一項に記載の方法。
【請求項6】
前記コンテキストインデックスを決定する前記ステップは、
以下の(1)~(4)の式のセットのうちの1つに従って前記コンテキストインデックスを決定するステップであって、
(1)ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(isIntra?0:1)、
(2)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(cbfCbCr+2*(isIntra?0:1))、
(3)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:((isIntra?cbfCbCr:3))、および
(4)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(isIntra?1:2))、
isIntraは、現在のCUがイントラ予測モードでコーディングされている場合に真であり、現在のCUがインター予測モードでコーディングされている場合に偽であるブール値を表す、ステップ
を含む、請求項1
から5のいずれか一項に記載の方法。
【請求項7】
前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの隣接ブロックのデコード済情報に基づいて前記コンテキストインデックスを決定するステップ
を含む、請求項1
から6のいずれか一項に記載の方法。
【請求項8】
前記現在のCUの前記隣接ブロックの前記デコード済情報は、
前記隣接ブロックの予測モード、
前記隣接ブロックのCb変換ブロックのTUコーディング済ブロックフラグ、
前記隣接ブロックのCb変換ブロックのTUコーディング済ブロックフラグ、または
前記隣接ブロックのサイズ
のうちの1つまたは複数を含む、請求項7に記載の方法。
【請求項9】
ビデオデコーダにおけるビデオデコーディングの方法であって、
現在のコーディングユニット(CU)のサイズを決定するステップと、
前記現在のCUのサイズに基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、
前記現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、前記ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと
を含む方法。
【請求項10】
前記現在のCUの前記サイズは、
前記現在のCUのブロック幅、
前記現在のCUのブロック高さ、
前記現在のCUのブロックエリアサイズ、
前記現在のCUの前記ブロック幅と前記ブロック高さとの和、
前記現在のCUの前記ブロック幅および前記ブロック高さの最大値、または
前記現在のCUの前記ブロック幅および前記ブロック高さの最小値
のうちの1つによって表される、請求項9に記載の方法。
【請求項11】
前記現在のCUの前記サイズに基づいて前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの前
記サイズがしきい値より小さい場合に第1のコンテキストモデルを使用するステップと、
前記現在のCUの前
記サイズが前記しきい値より大きい場合に第2のコンテキストモデルを使用するステップと
を含む、請求項9
または10に記載の方法。
【請求項12】
前記現在のCUの前記サイズに基づいて前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの前記サイズと、
Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す前記現在のCUの、tu_cbf_cbと表される、前記Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、
Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す前記現在のCUの、tu_cbf_crと表される、前記Cr変換ブロックのTUコーディング済ブロックフラグと、
に基づいて前記コンテキストインデックスを導出するステップ
を含む、請求項9
から11のいずれか一項に記載の方法。
【請求項13】
前記コンテキストインデックスを導出する前記ステップは、
以下の式に従って前記コンテキストインデックスを導出するステップであって、
ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(ブロックサイズ<K?0:1)、
ブロックサイズは現在のCUのサイズを表し、Kはしきい値を表し、正の整数である、ステップ
を含む、請求項12に記載の方法。
【請求項14】
プロセッサによって実行されると、前記プロセッサに方法を実行させる命令を
具備するコンピュータプログラムであって、前記方法は、
現在のコーディングユニット(CU)の予測モードを決定するステップであって、前記予測モードは、インター予測モードおよびイントラ予測モードを含む、ステップと、
前記現在のCUのシンタックス要素の値を決定するステップであって、前記シンタックス要素は、
Cb変換ブロックがゼロに等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_cbと表される、前記Cb変換ブロックの変換ユニット(TU)コーディング済ブロックフラグと、
Cr変換ブロックが0に等しくない1つまたは複数の変換係数レベルを含むかどうかを示す、tu_cbf_crと表される、前記Cr変換ブロックのTUコーディング済ブロックフラグと、である、ステップと、
前記現在のCUの前記予測モードならびに前記tu_cbf_cbおよび前記tu_cbf_crの値に基づいて、ctxIdxと表される、コンテキストインデックスを決定するステップと、
前記現在のCUのCbおよびCr両方の彩度成分の残差サンプルが単一の変換ブロックとしてコーディングされているかどうかを示す共同Cb Cr残差(JCCR)フラグのビンを決定するために、前記ctxIdxによって示されるコンテキストモデルに従って算術デコーディングプロセスを実行するステップと
を含む、
コンピュータプログラム。
【請求項15】
前記現在のCUは、前記インター予測モードでコーディングされ、前記Cb変換ブロックおよび前記Cr変換ブロックのうちの一方は、すべてゼロである変換係数レベルを含み、前記現在のCUの前記CbおよびCrの両方の彩度成分の前記残差サンプルは、前記単一の変換ブロックとしてコーディングされる、請求項14に記載の
コンピュータプログラム。
【請求項16】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のコーディングユニットが前記インター予測モードまたは前記イントラ予測モードでコーディングされているかどうかを示す予測モードフラグを受信または推測するステップ
を含む、請求項14
または15に記載の
コンピュータプログラム。
【請求項17】
前記現在のCUの前記予測モードを決定する前記ステップは、
前記現在のCUがイントラブロックコピー(IBC)モード、または結合されたイントラおよびインター予測(CIIP)モードでコーディングされていることに応答して、前記現在のCUの前記予測モードを前記イントラ予測モードであると判定するステップ
を含む、請求項14
から16のいずれか一項に記載の
コンピュータプログラム。
【請求項18】
前記現在のCUの前記シンタックス要素の値を決定する前記ステップは、
前記Cb変換ブロックまたは前記Cr変換ブロックの前記TUコーディング済ブロックフラグを受信または推測するステップ
を含む、請求項14
から17のいずれか一項に記載の
コンピュータプログラム。
【請求項19】
前記コンテキストインデックスを決定する前記ステップは、
以下の(1)~(4)の式のセットのうちの1つに従って前記コンテキストインデックスを決定するステップであって、
(1)ctxIdx=(2*tu_cbf_cb+tu_cbf_cr-1)+3*(isIntra?0:1)、
(2)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(cbfCbCr+2*(isIntra?0:1))、
(3)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:((isIntra?cbfCbCr:3))、および
(4)cbfCbCr=2*tu_cbf_cb+tu_cbf_cr、
ctxIdx=(cbfCbCr==3)?0:(isIntra?1:2))、
isIntraは、現在のCUがイントラ予測モードでコーディングされている場合に真であり、現在のCUがインター予測モードでコーディングされている場合に偽であるブール値を表す、ステップ
を含む、請求項14
から18のいずれか一項に記載の
コンピュータプログラム。
【請求項20】
前記コンテキストインデックスを決定する前記ステップは、
前記現在のCUの隣接ブロックのデコード済情報に基づいて前記コンテキストインデックスを決定するステップ
を含む、請求項14
から19のいずれか一項に記載の
コンピュータプログラム。
【国際調査報告】