(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-02
(45)【発行日】2022-12-12
(54)【発明の名称】ビデオデコーディングのための方法、装置、媒体、およびプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20221205BHJP
H04N 19/12 20140101ALI20221205BHJP
H04N 19/159 20140101ALI20221205BHJP
H04N 19/176 20140101ALI20221205BHJP
【FI】
H04N19/70
H04N19/12
H04N19/159
H04N19/176
(21)【出願番号】P 2021538282
(86)(22)【出願日】2020-05-22
(86)【国際出願番号】 US2020034271
(87)【国際公開番号】W WO2020251743
(87)【国際公開日】2020-12-17
【審査請求日】2021-06-29
(32)【優先日】2019-06-11
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-05-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャン・リュウ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シアン・リ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/241858(WO,A1)
【文献】国際公開第2020/186042(WO,A1)
【文献】Jani Lainema,CE6: Shape adaptive transform selection (Test 3.1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0303,13th Meeting: Marrakech, MA,2019年01月,pp.1-5
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M1001 (version 7),3th Meeting: Marrakech, MA,2019年03月,pp.224-226
【文献】Han Gao, et al.,Non-CE6: Combined Test of JVET-N0172/JVET-N0375/JVET-N0419/JVET-N0420 on Unification of Implicit Transform Selection,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0866-v2,14th Meeting: Geneva, CH,2019年03月,pp.1-6
【文献】Shan Liu, Xin Zhao, and Xiang Li,Non-CE6: Modified high-level syntax control on implicit transform,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0541,15th Meeting: Gothenburg, SE,2019年06月,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオデコーディングの方法であって、
明示的な多重変換選択(MTS)がイントラコーディング済ブロックに対してイネーブルであるかディスエーブルであるかを示す第1の高レベルシンタックス(HLS)要素を受信するステップと、
インターコーディング済ブロックに対して前記明示的なMTSがイネーブルであるかディスエーブルであるかを示す第2のHLS要素を受信するステップであって、前記第1および第2のHLS要素は、前記イントラコーディング済ブロックおよび前記インターコーディング済ブロックを含むコーディングブロックの同じセットを制御する、ステップと、
前記第1のHLS要素が前記イントラコーディング済ブロックに対して前記明示的なMTSがディスエーブルであることを示し、
前記第2のHLS要素が前記イントラコーディング済ブロックに対して非分離二次変換(NSST)または行列ベースのイントラ予測(MIP)がディスエーブルであることを示す場合に、前記イントラコーディング済ブロックに対して暗黙的なMTSをイネーブルにするステップと
を含
み、前記イントラコーディング済ブロックは、イントラサブパーティショニング(ISP)モードでコーディングされていない、方法。
【請求項2】
前記イントラコーディング済ブロックに前記暗黙的なMTSを適用するステップであって、前記イントラコーディング済ブロックを処理するための変換タイプは、前記イントラコーディング済ブロックのサイズに従って決定される、ステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1または第2のHLS要素は、
ビデオパラメータセット(VPS)シンタックス要素か、
シーケンスパラメータセット(SPS)シンタックス要素か、
画像パラメータセット(PPS)シンタックス要素か、
スライスヘッダシンタックス要素か、
タイルヘッダシンタックス要素か、または
タイルグループヘッダシンタックス要素、
のうちの1つである、請求項1または2に記載の方法。
【請求項4】
前記インターコーディング済ブロックおよび前記イントラコーディング済ブロックの各々に対してMTSがイネーブルであることを示す第3のHLS要素を受信するステップ
をさらに含む、請求項1から
3のいずれか一項に記載の方法。
【請求項5】
ビデオデコーダにおけるビデオデコーディングの方法であって、
明示的な多重変換選択(MTS)がイントラコーディング済ブロックに対してイネーブルであるかディスエーブルであるかを示す第1の高レベルシンタックス(HLS)要素を受信するステップと、
前記イントラコーディング済ブロックに対して非分離二次変換(NSST)または行列ベースのイントラ予測(MIP)がディスエーブルであるかイネーブルであるかを示す第2のHLS要素を受信するステップと、
前記第1のHLS要素が前記イントラコーディング済ブロックに対して前記明示的なMTSがディスエーブルであることを示し、前記第2のHLS要素が前記イントラコーディング済ブロックに対して前記NSSTまたは前記MIPがディスエーブルであることを示す場合に、前記イントラコーディング済ブロックに対して暗黙的なMTSをイネーブルにするステップと
を含
み、前記イントラコーディング済ブロックは、イントラサブパーティショニング(ISP)モードでコーディングされていない、方法。
【請求項6】
前記第1のHLS要素が前記イントラコーディング済ブロックに対して前記明示的なMTSがディスエーブルであることを示し、前記第2のHLS要素が前記イントラコーディング済ブロックに対して前記NSSTまたは前記MIPがイネーブルであることを示す場合に、前記イントラコーディング済ブロックに対して前記暗黙的なMTSをイネーブルにするステップ
をさらに含む、請求項
5に記載の方法。
【請求項7】
イネーブルにする前記ステップは、
HLS要素によって示されるように、前記第1のHLS要素が前記イントラコーディング済ブロックに対して前記明示的なMTSがディスエーブルであることを示し、前記イントラコーディング済ブロックに対して前記NSSTおよび前記MIPの両方がディスエーブルである場合に、前記イントラコーディング済ブロックに対して前記暗黙的なMTSをイネーブルにするステップ
を含む、請求項
5または
6に記載の方法。
【請求項8】
前記イントラコーディング済ブロックに前記暗黙的なMTSを適用するステップ
をさらに含む、請求項
5から
7のいずれか一項に記載の方法。
【請求項9】
前記第1または第2のHLS要素は、
ビデオパラメータセット(VPS)シンタックス要素か、
シーケンスパラメータセット(SPS)シンタックス要素か、
画像パラメータセット(PPS)シンタックス要素か、
スライスヘッダシンタックス要素か、
タイルヘッダシンタックス要素か、または
タイルグループヘッダシンタックス要素、
のうちの1つである、請求項
5から
8のいずれか一項に記載の方法。
【請求項10】
前記イントラコーディング済ブロックに対してMTSがイネーブルであることを示す第3のHLS要素を受信するステップ
をさらに含む、請求項
5から
9のいずれか一項に記載の方法。
【請求項11】
ビデオデコーダにおけるビデオデコーディングの方法であって、
多重変換選択(MTS)が適用されるかどうかを示す第1のブロックレベルシンタックス要素と、非分離二次変換(NSST)が適用されるかどうかを示す第2のブロックレベルシンタックス要素と、に関連するイントラコーディング済ブロックを受信するステップと、
前記第1のブロックレベルシンタックス要素が前記MTSが適用されないことを示し、前記第2のブロックレベルシンタックス要素が前記NSSTが適用されないことを示す場合に、前記イントラコーディング済ブロック
に対
して暗黙的なMTSをイネーブルにするステップと
を含
み、前記イントラコーディング済ブロックは、イントラサブパーティショニング(ISP)モードでコーディングされていない、方法。
【請求項12】
前記第1のブロックレベルシンタックス要素が前記MTSが適用されないことを示し、前記第2のブロックレベルシンタックス要素が前記NSSTが適用されることを示す場合に、前記イントラコーディング済ブロック
に対
して前記暗黙的なMTSをディスエーブルにするステップ
をさらに含む、請求項1
1に記載の方法。
【請求項13】
前記イントラコーディング済ブロックは、行列ベースのイントラ予測(MIP)が適用されるかどうかを示す第3のブロックレベルシンタックス要素と関連付けられ、
イネーブルにする前記ステップは、前記第1のブロックレベルシンタックス要素が前記MTSが適用されないことを示し、前記第2のブロックレベルシンタックス要素が前記NSSTが適用されないことを示し、前記第3のブロックレベルシンタックス要素が前記MIPが適用されないことを示す場合に、前記イントラコーディング済ブロックに対
して前記暗黙的なMTSをイネーブルにするステップをさらに含む、請求項1
1または1
2に記載の方法。
【請求項14】
前記第1のブロックレベルシンタックス要素が前記MTSが適用されないことを示し、かつ、前記第2のブロックレベルシンタックス要素が前記NSSTが適用されることを示すか、もしくは前記第3のブロックレベルシンタックス要素が前記MIPが適用されることを示す場合に、前記イントラコーディング済ブロックに対
して前記暗黙的なMTSをディスエーブルにするステップ
をさらに含む、請求項1
3に記載の方法。
【請求項15】
前記第1のブロックレベルシンタックス要素は、前記イントラコーディング済ブロックを処理するためにDCT-2変換が使用されるべきであることを示すことによって、前記MTSが適用されないことを示す、請求項1
1から1
4のいずれか一項に記載の方法。
【請求項16】
前記イントラコーディング済ブロックに前記暗黙的なMTSを適用するステップ
をさらに含む、請求項1
1から1
5のいずれか一
項に記載の方法。
【請求項17】
前記イントラコーディング済ブロックに対してMTSがイネーブルであることを示す高レベルシンタックス(HLS)要素を受信するステップ
をさらに含む、請求項1
1から1
6のいずれか一項に記載の方法。
【請求項18】
請求項
1から17のいずれか一項に記載の方法を行うように構成された装置。
【請求項19】
命令を格納した非一時的コンピュータ可読記録媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されると、請求項
1から17のいずれか一項に記載される方法を少なくとも1つのプロセッサに実施させる、非一時的コンピュータ可読記録媒体。
【請求項20】
一つまたは複数のプロセッサに、請求項
1から17のいずれか一項に記載される方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、2020年5月19日に出願された米国特許出願第16/878,390号「Method and Apparatus for Video Coding」の利益を主張し、上記出願は、2019年6月11日に出願された米国仮出願第62/860,149号「High-level Syntax Control on Enabling Implicit Transform Selection」の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、ビデオコーディングに一般的に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、この背景技術の項に記載されている限りにおいて、ならびに出願時に従来技術として認められない可能性がある説明の態様は、本開示に対する従来技術として明示的にも暗示的にも認められない。
【0004】
ビデオのコーディングおよびデコーディングは、動き補償を伴う画像間予測を使用して実行することができる。非圧縮デジタルビデオは、一連の画像を含むことができ、各画像は、例えば1920×1080の輝度サンプルおよび関連するクロミナンスサンプルの空間次元を有する。一連の画像は、例えば毎秒60画像または60Hzの固定または可変の画像レート(非公式にはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは重要なビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60 Hzフレームレートでの1920×1080輝度サンプル解像度)は、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】
動き補償は非可逆圧縮技術とすることができ、以前に再構築された画像またはその一部(参照画像)からのサンプルデータのブロックが、動きベクトル(MV以降)によって示される方向に空間的にシフトされた後に、新たに再構築された画像または画像部分の予測に使用される技術に関することができる。場合によっては、参照画像は、現在再構築中の画像と同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有することができ、第3の次元は、使用中の参照画像(後者は、間接的に、時間次元とすることができる)の表示である。
【0012】
いくつかのビデオ圧縮技術では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば再構築中の領域に空間的に隣接し、デコーディング順でそのMVに先行するサンプルデータの別の領域に関連するMVから予測することができる。そうすることにより、MVのコーディングに必要なデータ量を実質的に削減することができ、それによって冗長性が排除され、圧縮が増加する。MV予測は、例えば、カメラ(自然ビデオとして知られている)から導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能な領域よりも大きい領域が同様の方向に移動する統計的尤度があり、したがって、場合によっては、隣接領域のMVから導出された同様の動きベクトルを使用して予測することができるため、効果的に機能することができる。これにより、所与の領域について見つかったMVは、周囲のMVから予測されたMVと類似または同じになり、エントロピーコーディング後に、MVを直接コーディングする場合に使用されるよりも少ないビット数で表すことができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合では、例えば、いくつかの周囲のMVから予測器を計算するときの丸め誤差のために、MV予測自体が非可逆であり得る。
【0013】
様々なMV予測メカニズムは、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。ここでは、H.265が提供する多くのMV予測機構のうち、「空間マージ」と呼ばれる技術について説明する。
【0014】
図1を参照すると、現在のブロック(101)は、空間的にシフトされた同じサイズの前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって見つけられたサンプルを含む。そのMVを直接コーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ102から106)で示される5つの周囲サンプルのいずれか1つに関連するMVを使用して、1つまたは複数の参照画像に関連するメタデータから、例えば最新の(デコーディング順で)参照画像から導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照画像からの予測器を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0015】
本開示の態様は、ビデオデコーダにおけるビデオデコーディングの第1の方法を提供する。本方法は、明示的な多重変換選択(MTS)がイントラコーディング済ブロックに対してイネーブルであるかディスエーブルであるかを示す第1の高レベルシンタックス(HLS)要素を受信するステップと、インターコーディング済ブロックに対して明示的なMTSがイネーブルであるかディスエーブルであるかを示す第2のHLS要素を受信するステップと、を含むことができる。第1および第2のHLS要素は、イントラコーディング済ブロックおよびインターコーディング済ブロックを含むコーディングブロックの同じセットを制御する。第1のHLS要素がイントラコーディング済ブロックに対して明示的なMTSがディスエーブルであることを示し、第2のHLS要素がインターコーディング済ブロックに対して明示的なMTSがイネーブルであることを示す場合に、イントラコーディング済ブロックに対して暗黙的なMTSがイネーブルにされ得る。
【0016】
本方法の一実施形態は、イントラコーディング済ブロックに暗黙的なMTSを適用するステップをさらに含むことができる。イントラコーディング済ブロックを処理する変換タイプは、イントラコーディング済ブロックのサイズに従って決定することができる。様々な例において、第1または第2のHLS要素は、ビデオパラメータセット(VPS)シンタックス要素か、シーケンスパラメータセット(SPS)シンタックス要素か、画像パラメータセット(PPS)シンタックス要素か、スライスヘッダシンタックス要素か、タイルヘッダシンタックス要素か、またはタイルグループヘッダシンタックス要素、のうちの1つであり得る。一実施形態では、イントラコーディング済ブロックは、イントラサブパーティショニング(ISP)モードでコーディングされない。一実施形態では、本方法は、インターコーディング済ブロックおよびイントラコーディング済ブロックの各々についてMTSがイネーブルであることを示す第3のHLS要素を受信するステップをさらに含むことができる。
【0017】
本開示の態様は、ビデオデコーダにおけるビデオデコーディングの第2の方法を提供する。第2の方法は、イントラコーディング済ブロックに対してMTSがイネーブルであるかディスエーブルであるかを示す第1のHLS要素を受信するステップと、イントラコーディング済ブロックに対して非分離二次変換(NSST)または行列ベースのイントラ予測(MIP)がディスエーブルであるかイネーブルであるかを示す第2のHLS要素を受信するステップと、を含むことができる。第1のHLS要素がイントラコーディング済ブロックに対して明示的なMTSがディスエーブルであることを示し、第2のHLS要素がイントラコーディング済ブロックに対してNSSTまたはMIPがディスエーブルであることを示す場合に、イントラコーディング済ブロックに対して暗黙的なMTSがイネーブルにされ得る。
【0018】
本開示はまた、ビデオデコーダにおけるビデオデコーディングの第3の方法を提供することができる。第3の方法は、MTSが適用されるかどうかを示す第1のブロックレベルシンタックス要素と、NSSTが適用されるかどうかを示す第2のブロックレベルシンタックス要素と、に関連するイントラコーディング済ブロックを受信するステップを含むことができる。第1のブロックレベルシンタックス要素がMTSが適用されないことを示し、第2のブロックレベルシンタックス要素がNSSTが適用されないことを示す場合に、イントラコーディング済ブロックに対して暗黙的なMTSがイネーブルにされ得る。
【0019】
本出願はNSSTに言及しているが、開示された方法およびシステムは、縮小サイズ変換(RST)および低周波非分離二次変換(LFNST)などのNSSTの変形に適用することができることに留意されたい。したがって、NSST、RST、および/またはLFNSTは、本出願を通して互換的に使用することができる。
【0020】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0021】
【
図1】一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図6】別の実施形態によるエンコーダのブロック図である。
【
図7】別の実施形態によるデコーダのブロック図である。
【
図8A】一実施形態による、4ポイントのDCT-2の例示的な変換コア行列を示す図である。
【
図8B】一実施形態による、8ポイントのDCT-2の例示的な変換コア行列を示す図である。
【
図8C】一実施形態による、16ポイントのDCT-2の例示的な変換コア行列を示す図である。
【
図8D】一実施形態による、32ポイントのDCT-2の例示的な変換コア行列を示す図である。
【
図9A】一実施形態によるサブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す図である。
【
図9B】一実施形態によるサブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す図である。
【
図9C】一実施形態によるサブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す図である。
【
図9D】一実施形態によるサブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す図である。
【
図10】一実施形態による、イントラサブパーティション(ISP)コーディングモードにおけるブロックサイズに応じたサブパーティションの数を示す図である。
【
図11】ISPコーディングモードでブロックが2つのサブパーティションに分割される例を示す図である。
【
図12】ISPコーディングモードでブロックが4つのサブパーティションに分割される例を示す図である。
【
図13A】一実施形態による64ポイントのDCT-2変換の64×64変換コア行列を示す図である。
【
図13B】一実施形態による64ポイントのDCT-2変換の64×64変換コア行列を示す図である。
【
図13C】一実施形態による64ポイントのDCT-2変換の64×64変換コア行列を示す図である。
【
図13D】一実施形態による64ポイントのDCT-2変換の64×64変換コア行列を示す図である。
【
図13E】一実施形態による64ポイントのDCT-2変換の64×64変換コア行列を示す図である。
【
図14】一実施形態によるDST/DCT変換の変換基底関数を示す図である。
【
図15】一実施形態による、mts_idx値とそれぞれの水平または垂直変換との間のマッピング関係を示す表を示す図である。
【
図16A】一実施形態によるDST-7変換タイプの変換コア行列を示す図である。
【
図16B】一実施形態によるDST-7変換タイプの変換コア行列を示す図である。
【
図16C】一実施形態によるDST-7変換タイプの変換コア行列を示す図である。
【
図16D】一実施形態によるDST-7変換タイプの変換コア行列を示す図である。
【
図17A】一実施形態によるDCT-8変換タイプの変換コア行列を示す図である。
【
図17B】一実施形態によるDCT-8変換タイプの変換コア行列を示す図である。
【
図17C】一実施形態によるDCT-8変換タイプの変換コア行列を示す図である。
【
図17D】一実施形態によるDCT-8変換タイプの変換コア行列を示す図である。
【
図18】シーケンスパラメータセット(SPS)シンタックス要素を使用して多重変換選択(MTS)の使用を制御する例を示す図である。
【
図19】一実施形態によるイントラ予測モードと変換セットとの間のマッピングの表を示す図である。
【
図20】一実施形態による、16×64変換コアを使用するRST 8×8のための代替変換コーディングプロセス(2000)を示す図である。
【
図21】一実施形態による、16×48変換コアを使用するRST 8×8のための代替変換コーディングプロセス(2100)を示す図である。
【
図22】例示的なCUレベルシンタックス表(2200)を示す図であり、低周波数非分離二次変換(LFNST)カーネルの選択を示すシンタックス要素lfnst_idxがCUレベルシンタックスの最後にシグナリングされる。
【
図23】一実施形態による、縮小変換のプロセス(2301)および縮小逆変換のプロセス(2302)を示す図である。
【
図24A】RST 8×8における二次変換を計算するための入力として使用される残差ブロック(2410)の左上の8×8係数(網掛けしたサブブロック)全体を示す図である。
【
図24B】RST 8×8における二次変換を計算するための入力として使用される残差ブロック(2410)の左上の3つの4×4サブブロック係数(網掛けしたサブブロック)を示す図である。
【
図25】一実施形態によるイントラ予測モードに基づく変換セット選択のための表を示す図である。
【
図26】行列ベースのイントラ予測(MIP)モードの例示的なプロセス(2600)を示す図である。
【
図27】一実施形態によるCUレベルのシンタックス表を示す図であり、行列ベースのイントラ予測(MIP)モードをシグナリングするフラグがフレーム(2701)に示されている。
【
図28A】ビットストリームから受信した関連するシンタックス要素に基づいて現在のブロックの明示的または暗黙的な変換選択を実行する変換コーディングプロセスを指定するテキスト(2800)を組み合わせて示す図である。
【
図28B】ビットストリームから受信した関連するシンタックス要素に基づいて現在のブロックの明示的または暗黙的な変換選択を実行する変換コーディングプロセスを指定するテキスト(2800)を組み合わせて示す図である。
【
図29】イントラ残差ブロックの暗黙的変換とインター残差ブロックの明示的変換とが共存することができる暗黙的な変換イネーブル方式に対応するテキスト(2800)に対する修正(2900)を示す図である。
【
図30】非分離二次変換(NSST)がディスエーブルである場合に暗黙的な変換がイネーブルにされるシナリオに対応するテキスト(2800)に対する修正(3000)を示す図である。
【
図31】MIPがディスエーブルである場合に暗黙的な変換がイネーブルにされるシナリオに対応するテキスト(2800)に対する修正(3100)を示す図である。
【
図32】MTSとNSSTの両方が現在のブロックに適用されないシナリオに対応するテキスト(2800)に対する修正(3200)を示す図である。
【
図33】MTS、NSST、またはMIPのいずれも現在のブロックに適用されないシナリオに対応するテキスト(2800)に対する修正(3300)を示す図である。
【
図34】本開示の実施形態による変換コーディングプロセス(3400)のフローチャートを示す図である。
【
図35】本開示の実施形態による変換コーディングプロセス(3500)のフローチャートを示す図である。
【
図36】本開示の実施形態による変換コーディングプロセス(3600)のフローチャートを示す図である。
【
図37】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0022】
I.ビデオコーディングのエンコーダおよびデコーダ
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末装置(210)および(220)の第1のペアを含む。
図2の例では、端末装置(210)および(220)の第1のペアは、データの一方向の送信を実行する。例えば、端末装置(210)は、ネットワーク(250)を介して他の端末装置(220)に送信するためにビデオデータ(例えば、端末装置(210)によって取り込まれたビデオ画像のストリーム)をコーディングすることができる。エンコード済ビデオデータは、1つまたは複数のコーディング済ビデオビットストリームの形態で送信することができる。端末装置(220)は、ネットワーク(250)からコーディング済ビデオデータを受信し、コーディング済ビデオデータをデコーディングしてビデオ画像を復元し、復元されたビデオデータに従ってビデオ画像を表示することができる。一方向のデータ送信は、メディアサービングアプリケーションなどでは一般的であり得る。
【0023】
別の例では、通信システム(200)は、例えばビデオ会議中に発生する可能性があるコーディング済ビデオデータの双方向送信を実行する端末装置(230)および(240)の第2のペアを含む。データの双方向送信のために、一例では、端末装置(230)および(240)の各端末装置は、ネットワーク(250)を介して端末装置(230)および(240)の他方の端末装置に送信するためのビデオデータ(例えば、端末装置によって取り込まれたビデオ画像のストリーム)をコーディングすることができる。端末装置(230)および(240)の各端末装置はまた、端末装置(230)および(240)の他方の端末装置によって送信されたコーディング済ビデオデータを受信することができ、コーディング済ビデオデータをデコーディングしてビデオ画像を復元することができ、復元されたビデオデータに従ってアクセス可能な表示装置にビデオ画像を表示することができる。
【0024】
図2の例では、端末装置(210)、(220)、(230)、および(240)は、サーバー、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器での用途を見出す。ネットワーク(250)は、例えば有線(有線)および/または無線通信ネットワークを含む、端末装置(210)、(220)、(230)および(240)の間でコーディング済ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回路切り替えおよび/またはパケット切り替えチャネルでデータを交換することができる。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、以下で本明細書において説明されない限り、本開示の動作にとって重要ではない場合がある。
【0025】
図3は、開示された主題に対する用途の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの格納などを含む他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0026】
ストリーミングシステムは、例えば非圧縮のビデオ画像(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の文脈で使用され得る。
【0027】
電子デバイス(320)および(330)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)はビデオエンコーダ(図示せず)も含むことができる。
【0028】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれ得る。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例のビデオデコーダ(310)の代わりに使用することができる。
【0029】
受信機(431)は、デコーダ(410)によってデコードされる1つまたは複数のコーデックビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つのコーディング済ビデオシーケンスであり、各コーディング済ビデオシーケンスのデコーディングは、他のコーディング済ビデオシーケンスから独立している。コーディング済ビデオシーケンスは、チャネル(401)から受信することができ、チャネルは、エンコード済ビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信機(431)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディング済オーディオデータおよび/または補助データストリームと共に、エンコード済ビデオデータを受信することができる。受信機(431)は、コーディング済ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(415)は、受信機(431)とエントロピーデコーダ/パーサー(420)(以後「パーサー(420)」)との間に結合され得る。特定の用途では、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他の場合には、ビデオデコーダ(410)の外部にあってもよい(図示せず)。さらに他のものでは、例えばネットワークジッタに対抗するためにビデオデコーダ(410)の外部にバッファメモリ(図示せず)があり、さらに例えば再生タイミングを処理するためにビデオデコーダ(410)の内部に別のバッファメモリ(415)があり得る。受信機(431)が十分な帯域幅と制御性の格納/転送デバイスから、または等時性ネットワークからデータを受信している場合に、バッファメモリ(415)は必要とされないか、または小さくなり得る。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(415)が必要とされてもよく、比較的大きくてもよく、有利には適応サイズであってもよく、ビデオデコーダ(410)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0030】
ビデオデコーダ(410)は、コーディング済ビデオシーケンスからシンボル(421)を再構築するためのパーサー(420)を含むことができる。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、および潜在的に、
図4に示されたように、電子デバイス(430)の不可欠な部分ではないが電子デバイス(430)に結合することができるレンダリングデバイス(412)(例えば、表示画面)などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスの制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。パーサー(420)は、受信したコーディング済ビデオシーケンスを解析/エントロピーデコードすることができる。コーディング済ビデオシーケンスのコーディングは、ビデオコーディング技術または標準規格に準拠することができ、可変長コーディング、ハフマンコーディング、文脈依存の有無にかかわらず算術コーディングなどを含む様々な原理に従うことができる。パーサー(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについて一組のサブグループパラメータを、コーディング済ビデオシーケンスから抽出することができる。サブグループは、画像のグループ(GOP)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサー(420)は、変換係数、量子化器パラメータ値、動きベクトルなどのコーディング済ビデオシーケンス情報からも抽出することができる。
【0031】
パーサー(420)は、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピーデコーディング/シンタックス解析動作を実行して、シンボル(421)を作成することができる。
【0032】
シンボル(421)の再構築は、コーディング済ビデオ画像またはその一部(インター画像およびイントラ画像、インターブロックおよびイントラブロックなど)のタイプ、およびその他の要因に応じて、多数の異なるユニットを含むことができる。どのユニットが含まれているか、およびどのように含まれているかは、パーサー(420)によってコーディング済ビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。パーサー(420)と以下の多数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0033】
既に述べた機能ブロックの他に、ビデオデコーダ(410)は、以下に説明するように、概念的にいくつかの機能ユニットに細分することができる。商業的な制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には、互いに統合され得る。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分が適切である。
【0034】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサー(420)からシンボル(421)として受け取る。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されうるサンプル値を含むブロックを出力することができる。
【0035】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラコーディング済ブロック、すなわち、以前に再構築された画像からの予測情報を使用していないが、現在の画像の以前に再構築された部分からの予測情報を使用できるブロックに関係することができる。そのような予測情報は、イントラ画像予測ユニット(452)によって提供され得る。場合によっては、イントラ画像予測ユニット(452)は、現在の画像バッファ(458)からフェッチされた周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在の画像バッファ(458)は、例えば、部分的に再構築された現在の画像および/または完全に再構築された現在の画像をバッファリングする。アグリゲータ(455)は、場合によっては、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供された出力サンプル情報に追加する。
【0036】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディング済の、場合によっては動き補償されたブロックに関係することができる。このような場合、動き補償予測ユニット(453)は、参照画像メモリ(457)にアクセスして、予測に使用されるサンプルをフェッチすることができる。フェッチされたサンプルをブロックに関係するシンボル(421)に従って動き補償した後に、これらのサンプルは、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)(この場合、残差サンプルまたは残差信号と呼ばれる)の出力に追加されて、出力サンプル情報を生成することができる。動き補償予測ユニット(453)が予測サンプルをフェッチする参照画像メモリ(457)内のアドレスは、動きベクトルによって制御でき、例えばX、Y、および参照画像の成分を有することができるシンボル(421)の形式で動き補償予測ユニット(453)が利用することができる。動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照画像メモリ(457)からフェッチされたサンプル値の補間、動きベクトル予測機構なども含むことができる。
【0037】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)における様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、コーディング済ビデオシーケンス(コーディング済ビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(420)からのシンボル(421)としてループフィルタユニット(456)に提供されるループ内フィルタ技術を含むことができるが、コーディング済画像またはコーディング済ビデオシーケンスの以前の(デコーディング順で)部分のデコーディング中に取得されたメタ情報に応答し、および以前に再構築されループフィルタ処理されたサンプル値に応答することもできる。
【0038】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力することができて、将来のインター画像予測で使用するために参照画像メモリ(457)に格納することができるサンプルストリームとすることができる。
【0039】
特定のコーディング済画像は、完全に再構築されると、将来の予測のための参照画像として使用することができる。例えば、現在の画像に対応するコーディング済画像が完全に再構築され、コーディング済画像が参照画像として(例えば、パーサー(420)によって)識別されると、現在の画像バッファ(458)は、参照画像メモリ(457)の一部となることができ、そして、次のコーディング済画像の再構築を開始する前に、新しい現在の画像メモリを再割り当てすることができる。
【0040】
ビデオデコーダ(410)は、ITU-T Rec.H.265などの標準規格における所定のビデオ圧縮技術に従ってデコーディング動作を実行することができる。コーディング済ビデオシーケンスは、コーディング済ビデオシーケンスがビデオ圧縮技術または標準規格のシンタックスおよびビデオ圧縮技術または標準規格に文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または標準規格によって指定されたシンタックスに準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または標準規格で利用可能なすべてのツールから、そのプロファイルの下で使用可能な唯一のツールとして特定のツールを選択することができる。また、コーディング済ビデオシーケンスの複雑さが、ビデオ圧縮技術または標準規格のレベルで定義されている範囲内にあることも、コンプライアンスに必要である。場合によっては、レベルによって、最大画像サイズ、最大フレームレート、最大再構築サンプルレート(例えば、メガサンプル/秒で測定される)、最大参照画像サイズなどが制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)の仕様と、コーディング済ビデオシーケンスで通知されるHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0041】
一実施形態では、受信機(431)は、エンコード済ビデオと共に追加の(冗長な)データを受信することができる。追加のデータは、コーディング済ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、かつ/または元のビデオデータをより正確に再構築するためにビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長画像、前方誤り訂正符号などの形式にすることができる。
【0042】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、
図3の例のビデオエンコーダ(303)の代わりに使用することができる。
【0043】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされるビデオ画像を取り込むことができるビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(501)は電子デバイス(520)の一部である。
【0044】
ビデオソース(501)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式でビデオエンコーダ(503)によってコーディングされるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(501)は、以前に準備されたビデオを格納する記憶装置であってもよい。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個別の画像として提供されてもよい。画像自体は、ピクセルの空間アレイとして編成することができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明では、サンプルを中心に説明する。
【0045】
一実施形態によれば、ビデオエンコーダ(503)は、用途により必要に応じて、リアルタイムで、または任意の他の時間制約の下で、ソースビデオシーケンスの画像をコーディングし、コーディング済ビデオシーケンス(543)に圧縮することができる。適切なコーディング速度を強制することは、コントローラ(550)の機能の1つである。いくつかの実施形態では、コントローラ(550)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確にするために、結合は描かれていない。コントローラ(550)によって設定されるパラメータは、レート制御に関連するパラメータ(画像スキップ、量子化器、レート歪み最適化手法のラムダ値など)、画像サイズ、画像のグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(550)は、特定のシステム設計に最適化されたビデオエンコーダ(503)に関する他の適切な機能を有するように構成することができる。
【0046】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成される。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(530)(例えば、コーディングされる入力画像と、参照画像とに基づいて、シンボルストリームのようなシンボルを生成することを担当する)と、ビデオエンコーダ(503)に組み込まれた(ローカル)デコーダ(533)と、を含むことができる。デコーダ(533)は、(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構築する(開示された主題で考慮されるビデオ圧縮技術では、シンボルとコーディング済ビデオビットストリームとの間の任意の圧縮が可逆的であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(534)に入力される。シンボルストリームのデコーディングにより、デコーダの場所(ローカルまたはリモート)に関係なくビットが正確な結果が得られるので、参照画像メモリ(534)の内容もローカルエンコーダとリモートエンコーダとの間でビットが正確である。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用する場合にデコーダが「見る」であろうものとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像同期性のこの基本原理(および、例えばチャネルエラーのために同期性が維持できない場合に生じるドリフト)は、いくつかの関連技術においても使用される。
【0047】
「ローカル」デコーダ(533)の動作は、
図4に関連して既に詳細に説明したビデオデコーダ(410)などの「リモート」デコーダの動作と同じであり得る。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)およびパーサー(420)によるコーディング済ビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆であり得るため、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピーデコーディング部分、およびパーサー(420)は、ローカルデコーダ(533)に完全に実装されない場合がある。
【0048】
この時点で行うことができる観察は、デコーダに存在するシンタックス解析/エントロピーデコーディング以外の任意のデコーダ技術も、対応するエンコーダに実質的に同一の機能形式で必ず存在している必要があるということである。このため、開示された主題はデコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるから、省略することができる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0049】
動作中、いくつかの例では、ソースコーダ(530)は、「参照画像」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディング済の画像を参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(532)は、入力画像のピクセルブロックと、入力画像に対する予測参照として選択され得る参照画像のピクセルブロックとの間の差をコーディングする。
【0050】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって作成されたシンボルに基づいて、参照画像として指定され得る画像のコーディング済ビデオデータをデコーディングすることができる。コーディングエンジン(532)の動作は、有利には、損失のあるプロセスであってもよい。コーディング済ビデオデータがビデオデコーダ(
図5には示されていない)でデコーディングされ得る場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照画像に対してビデオデコーダによって実行され得るデコーディングプロセスを複製し、再構築された参照画像を参照画像キャッシュ(534)に格納させることができる。このようにして、ビデオエンコーダ(503)は、遠端ビデオデコーダによって得られる(送信エラーがない)再構築参照画像として共通のコンテンツを有する再構築参照画像のコピーをローカルに格納することができる。
【0051】
予測器(535)は、コーディングエンジン(532)の予測検索を実行することができる。すなわち、コーディングされる新しい画像について、予測器(535)は、(候補参照ピクセルブロックとしての)サンプルデータまたは参照画像の動きベクトル、ブロック形状などの特定のメタデータについて参照画像メモリ(534)を検索することができ、それは新しい画像の適切な予測参照として機能することができる。予測器(535)は、適切な予測参照を見つけるために、サンプルブロックバイピクセルブロックに基づいて動作することができる。場合によっては、予測器(535)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(534)に格納された多数の参照画像から引き出された予測参照を有してもよい。
【0052】
コントローラ(550)は、例えば、ビデオデータをコード化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理することができる。
【0053】
前述のすべての機能ユニットの出力は、エントロピーコーダ(545)でエントロピーコーディングを受けることができる。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを無損失圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディング済ビデオシーケンスに変換する。
【0054】
送信機(540)は、エントロピーコーダ(545)によって作成されたコーディング済ビデオシーケンスをバッファリングして、通信チャネル(560)を介して送信の準備をすることができ、通信チャネル(560)は、エンコード済ビデオデータを格納するであろう記憶装置へのハードウェア/ソフトウェアリンクであり得る。送信機(540)は、ビデオコーダ(503)からのコーディング済ビデオデータを、送信される他のデータ、例えばコーディング済オーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0055】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理することができる。コーディング中に、コントローラ(550)は、各コーディング済画像に特定のコーディング済画像タイプを割り当てることができ、これは、それぞれの画像に適用され得るコーディング技法に影響を及ぼすことができる。例えば、多くの場合、画像は次の画像タイプの1つとして割り当てられ得る。
【0056】
イントラ画像(I画像)は、シーケンス内のいかなる他の画像も予測のソースとして使用せずにコーディングおよびデコーディングされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)画像を含む異なるタイプのイントラ画像を可能にする。当業者は、I画像のそれらの変形およびそれらのそれぞれの用途および特徴を知っている。
【0057】
予測画像(P画像)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。
【0058】
双方向予測画像(B画像)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされ得るものであり得る。同様に、多数の予測画像は、単一のブロックの再構築に3つ以上の参照画像と関連メタデータを使用することができる。
【0059】
ソース画像は、通常、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロックごとにコーディングされる。ブロックは、ブロックのそれぞれの画像に適用されたコーディング割り当てによって決定されるように、他の(既にコーディング済)ブロックを参照して予測的にコーディングされ得る。例えば、I画像のブロックは非予測的にコーディングされてもよく、またはそれらは同じ画像の既にコーディング済のブロック(空間予測またはイントラ予測)を参照して予測的にコーディングされてもよい。P画像のピクセルブロックは、空間的予測を介して、または以前にコーディング済の1つの参照画像を参照する時間的予測を介して、予測的にコーディングされ得る。B画像のブロックは、空間的予測を介して、または以前にコーディング済の1つまたは2つの参照画像を参照する時間的予測を介して、予測的にコーディングされ得る。
【0060】
ビデオエンコーダ(503)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または標準規格に従ってコーディング動作を実行することができる。その動作では、ビデオエンコーダ(503)は、様々な圧縮動作を実行することができ、それは入力ビデオシーケンスにおける時間的および空間的冗長性を活用する予測コーディング動作を含む。したがって、コーディング済ビデオデータは、使用されているビデオコーディング技術または標準規格で指定されたシンタックスに準拠することができる。
【0061】
一実施形態では、送信機(540)は、エンコード済ビデオと共に追加のデータを送信することができる。ソースコーダ(530)は、コーディング済ビデオシーケンスの一部としてそのようなデータを含むことができる。追加のデータは、時間/空間/SNR拡張レイヤ、冗長画像およびスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含むことができる。
【0062】
ビデオは、複数のソース画像(ビデオ画像)として時系列に撮像されてもよい。画像内予測(しばしばイントラ予測と略される)は、所与の画像における空間相関を利用し、画像間予測は、画像間の(時間的または他の)相関を利用する。一例では、現在の画像と呼ばれる、コーディング/デコーディング中の特定の画像がブロックに分割される。現在の画像内のブロックがビデオ内の以前にコーディングされてまだバッファされている参照画像内の参照ブロックに類似しているとき、現在の画像内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングすることができる。動きベクトルは、参照画像内の参照ブロックを指し、複数の参照画像が使用されている場合、参照画像を識別する第3の次元を有することができる。
【0063】
いくつかの実施形態では、画像間予測に双予測技術を使用することができる。双予測技術によれば、第1の参照画像および第2の参照画像などの2つの参照画像が使用され、これらは両方ともビデオ内の現在の画像のデコーディング順より前にある(しかし、表示順序は、それぞれ過去および未来のものであってもよい)。現在の画像内のブロックは、第1の参照画像内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照画像内の第2の参照ブロックを指す第2の動きベクトルによってコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測することができる。
【0064】
さらに、コーディング効率を改善するために、画像間予測にマージモード技術を使用することができる。
【0065】
本開示のいくつかの実施形態によれば、画像間予測および画像内予測などの予測は、ブロック単位で実行される。例えば、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画素などの画素の値の行列(例えば、輝度値)を含む。
【0066】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオ画像のシーケンス内の現在のビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディング済ビデオシーケンスの一部であるコーディング済画像にエンコードするように構成される。一例では、ビデオエンコーダ(603)は、
図3の例のビデオエンコーダ(303)の代わりに使用される。
【0067】
HEVCの例では、ビデオエンコーダ(603)は、例えば8×8サンプルの予測ブロックのような処理ブロックのためのサンプル値の行列を受信する。ビデオエンコーダ(603)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良にコーディングされるかどうかを判定する。処理ブロックがイントラモードでコーディングされる場合、ビデオエンコーダ(603)は、処理ブロックをコーディング済画像へエンコードするために、イントラ予測技術を使用することができ、処理ブロックがインターモードまたは双予測モードでコーディングされるべきである場合、ビデオエンコーダ(603)は、処理ブロックをコーディング済画像にエンコードするために、それぞれインター予測技術または双予測技術を使用することができる。特定のビデオコーディング技術では、マージモードは、予測器の外側のコーディング済の動きベクトル成分の恩恵を受けずに動きベクトルが1つまたは複数の動きベクトル予測器から導出される画像間予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在することができる。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0068】
図6の例では、ビデオエンコーダ(603)は、
図6に示すように互いに結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、およびエントロピーエンコーダ(625)を含む。
【0069】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照画像(例えば、前の画像および後の画像内のブロック)内の1つまたは複数の参照ブロックと比較し、インター予測情報(例えば、インターコーディング技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照画像は、エンコード済ビデオ情報に基づいてデコードされたデコーディング済参照画像である。
【0070】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じ画像内で既にコーディング済のブロックと比較し、変換後に量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラコーディング技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(622)は、イントラ予測情報と、同一画像内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)を算出する。
【0071】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(621)は、ブロックのモードを決定し、モードに基づいてスイッチ(626)に制御信号を提供する。例えば、汎用コントローラ(621)は、モードがイントラモードである場合、残差計算器(623)が用いるイントラモード結果を選択するようにスイッチ(626)を制御し、イントラ予測情報を選択してビットストリームに含めるようにエントロピーエンコーダ(625)を制御し、汎用コントローラ(621)は、モードがインターモードである場合、残差計算器(623)で用いるインター予測結果を選択するようにスイッチ(626)を制御すると共に、インター予測情報を選択してビットストリームに含めるようにエントロピーエンコーダ(625)を制御する。
【0072】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果と、の差分(残差データ)を算出するように構成される。残差エンコーダ(624)は、変換係数を生成するために残差データをエンコードするために残差データに基づいて動作するように構成される。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。変換係数はその後に、量子化された変換係数を得るために量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(603)はまた、残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、デコード済残差データを生成するように構成される。デコード済残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)において好適に用いることができる。例えば、インターエンコーダ(630)は、デコード済残差データとインター予測情報とに基づいてデコード済ブロックを生成し、イントラエンコーダ(622)は、デコード済残差データとイントラ予測情報とに基づいてデコード済ブロックを生成することができる。いくつかの例では、デコード済ブロックは、デコード済画像を生成するために適切に処理され、デコード済画像は、メモリ回路(図示せず)にバッファされ、参照画像として使用され得る。
【0073】
エントロピーエンコーダ(625)は、エンコード済ブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC標準規格などの適切な標準規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、一般制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0074】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディング済ビデオシーケンスの一部であるコーディング済画像を受信し、コーディング済画像をデコードして再構築された画像を生成するように構成される。一例では、ビデオデコーダ(710)は、
図3の例のビデオデコーダ(310)の代わりに使用される。
【0075】
図7の例では、ビデオデコーダ(710)は、
図7に示すように互いに結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構築モジュール(774)、およびイントラデコーダ(772)を含む。
【0076】
エントロピーデコーダ(771)は、コーディング済画像から、コーディング済画像が構成されるシンタックス要素を表す特定のシンボルを再構築するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モードなどであり、後者の2つはマージサブモードまたは別のサブモードである)、イントラデコーダ(772)またはインターデコーダ(780)によってそれぞれ予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報など)、ならびに、例えば量子化変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双予測モードである場合、インター予測情報はインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0077】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0078】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0079】
残差デコーダ(773)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)はまた、(量子化器パラメータ(QP)を含むために)特定の制御情報を必要とする場合があり、その情報はエントロピーデコーダ(771)によって提供される場合がある(これとして示されていないデータ経路は、低ボリューム制御情報のみであり得る)。
【0080】
再構築モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と(場合によってはインターまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構築画像の一部であり得る再構築されたブロックを形成するように構成され、再構築されたブロックは再構築されたビデオの一部であり得る。視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができることに留意されたい。
【0081】
ビデオエンコーダ(303)、(503)、および(603)、ならびにビデオデコーダ(310)、(410)、および(710)は、任意の適切な技術を使用して実装することができることに留意されたい。一実施形態では、ビデオエンコーダ(303)、(503)、および(603)、ならびにビデオデコーダ(310)、(410)、および(710)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(303)、(503)、および(503)、ならびにビデオデコーダ(310)、(410)、および(710)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0082】
II.変換コーディング技術および関連技術
1.DCT-2一次変換の例
いくつかの実施形態では、4ポイント、8ポイント、16ポイントおよび32ポイントのDCT-2変換が一次変換として使用される。
図8A~
図8Dは、それぞれ4ポイント、8ポイント、16ポイント、および32ポイントのDCT-2の変換コア行列を示す。これらの変換コア行列の要素は8ビット整数を使用して表すことができ、したがって、これらの変換コア行列は8ビット変換コアと呼ばれる。図示するように、より小さいDCT-2の変換コア行列は、より大きいDCT-2の変換コア行列の一部である。
【0083】
DCT-2コア行列は対称性/逆対称性特性を示す。したがって、演算カウント数(乗算、加算/減算、シフト)を減らすために、いわゆる「部分的なバタフライ」実装をサポートすることができる。部分的なバタフライ実装を使用すると、部分的なバタフライ実装を使用しない場合と比較して、行列乗算の同一の結果を得ることができる。
【0084】
2.サブブロック変換コーディングの例
2.1サブブロック変換(SBT)
いくつかの実施形態では、空間変動変換(SVT)とも呼ばれるサブブロック変換(SBT)が使用される。いくつかの実施形態では、SBTはインター予測残差に適用される。例えば、コーディングブロックはサブブロックに分割することができ、サブブロックの一部のみが残差ブロックで処理される。サブブロックの残りの部分についてはゼロ残差が想定される。したがって、残差ブロックはコーディングブロックよりも小さく、SBTにおける変換サイズはコーディングブロックサイズよりも小さい。残差ブロックでカバーされていない領域については、変換処理は行われない。
【0085】
図9A~
図9Dは、SBTでサポートされるサブブロックタイプ(SVT-H、SVT-V)(例えば、垂直または水平に分割されている)、サイズ、および位置(例えば、左半分、左1/4、右半分、右1/4、上半分、上1/4、下半分、下1/4)を示す。文字「A」でラベル付けされた網掛け領域は、変換コーディングされる残差ブロックであり、他の領域は、変換なしのゼロ残差であると仮定される。
【0086】
2.2.イントラサブパーティション(ISP)コーディングモード
いくつかの実施形態では、イントラサブパーティション(ISP)コーディングモードが使用される。ISPコーディングモードでは、輝度イントラ予測ブロックは、2つまたは4つのサブパーティションに垂直または水平に分割することができる。サブパーティションの数は、ブロックのサイズに依存することができる。
図10は、ブロックサイズに応じたサブパーティションの数を示す。
図11は、ブロックが2つのサブパーティションに分割されるシナリオを示す。
図12は、ブロックが4つのサブパーティションに分割されるシナリオを示す。一例では、すべてのサブパーティションは、少なくとも16個のサンプルを有するという条件を満たす。一例では、ISPは彩度成分に適用されない。
【0087】
一例では、コーディングブロックから分割されたサブパーティションの各々について、エンコーダから送信されたそれぞれの係数をエントロピーデコーディングし、次いでそれらを逆量子化および逆変換することによって残差信号が生成される。次に、サブパーティションのうちの第1のサブパーティションがイントラ予測されて予測信号を生成する。予測信号は、対応する再構築されたサンプルを取得するために、第1のサブパーティションのそれぞれの残差信号に加算される。その後に、第1のサブパーティションの再構築されたサンプル値は、サブパーティションのうちの第2のものの予測を生成するために利用可能であり得る。このプロセスは、コーディングブロックからのすべてのサブパーティションが再構築されるまで、サブパーティションごとに繰り返すことができる。一例では、すべてのサブパーティションが同じイントラモードを共有する。
【0088】
一実施形態では、ISPコーディングモードは、最も可能性の高いモード(MPM)リストの一部であるイントラモードでのみテストされる。したがって、ブロックがISPを使用する場合、MPMフラグは1であると推測することができる。加えて、ISPが特定のブロックに使用されるとき、DCモードを除外し、ISPの水平分割のための水平イントラモードおよび垂直のための垂直イントラモードを優先するために、それぞれのMPMリストが修正される。
【0089】
ISPコーディングモードでは、変換および再構築はサブパーティションごとに個別に実行されるため、各サブパーティションはサブTUと見なすことができる。
【0090】
3.拡張されたDCT-2変換および多重変換選択(MTS)を用いた変換コーディング
いくつかの実施形態では、コーディングブロックの高さおよび幅の両方が64サンプル以下である場合、変換サイズは常にコーディングブロックサイズと同じである。コーディングブロックの高さまたは幅のいずれかが64サンプルより大きい場合、変換またはイントラ予測を実行するとき、コーディングブロックは複数のサブブロックにさらに分割され、各サブブロックの幅および高さは64以下であり、各サブブロックに対して変換処理が実行される。
【0091】
3.1拡張されたDCT-2変換を用いた変換コーディング
いくつかの実施形態では、上述の4ポイント、8ポイント、16ポイントおよび32ポイントのDCT-2変換に加えて、2ポイントおよび64ポイントのDCT-2変換を使用することができる。
図13A~
図13Eは、64ポイントのDCT-2変換の64×64変換コア行列を示す。
【0092】
3.2明示的にシグナリングされた変換
いくつかの実施形態では、DCT-2および4×4 DST-7変換コーディングに加えて、多重変換選択(MTS)(拡張多重変換(EMT)、または適応多重変換(AMT)としても知られている)を、インターコーディング済ブロックおよびイントラコーディング済ブロックの両方の残差コーディングに使用することができる。MTSは、DCT-2および4×4 DST-7変換以外の離散コサイン変換(DCT)/離散サイン変換(DST)ファミリからの複数の選択された変換を使用する。選択は、エンコーダで実行され、エンコーダからデコーダに明示的にシグナリングされ得る。例えば、選択された変換は、DST-7またはDCT-8変換を含むことができる。
図14は、DST/DCT変換の変換基底関数を示す。いくつかの実施形態では、MTSで使用されるDST/DCT変換コア行列は、8ビット表現で表される。
【0093】
いくつかの実施形態では、MTSは、32サンプル以下の幅および高さの両方を有するCUに適用することができる。MTSを適用するか否かは、mts_flagで表されるフラグによって制御することができる。例えば、mts_flagが0に等しい場合、DCT-2のみが残差ブロックのコーディングに適用される。MTSが適用されることを示すmts_flagが1に等しい場合、選択された変換を使用することができる。例えば、使用される水平および垂直変換を指定するために2つのビンを使用して、mts_idxによって示されるインデックスをさらにシグナリングすることができる。
【0094】
図15は、mts_idx値とそれぞれの水平または垂直変換との間のマッピング関係を示す表(1500)を示す。mts_idxの値が-1である行(1301)は、mts_flagが0である(MTSが適用されていないことを示す)シナリオに対応し、DCT-2変換が使用される。0、1、2、または3の値を有するmts_idxを有する行(1302)~(1305)は、mts_flagが1に等しい(MTSが適用されることを示す)シナリオに対応する。表(1500)の右側の2列において、0はDCT-2の変換タイプを表し、1はDST-7の変換タイプを表し、2はDCT-8の変換タイプを表す。
【0095】
【0096】
いくつかの実施形態では、MTSは、高レベルシンタックス(HLS)要素を使用してイネーブルまたはディスエーブルにすることができる。各HLS要素は、ビデオパラメータセット(VPS)シンタックス要素、シーケンスパラメータセット(SPS)シンタックス要素、画像パラメータセット(PPS)シンタックス要素、スライスヘッダシンタックス要素、タイルヘッダシンタックス要素、またはタイルグループヘッダシンタックス要素などであり得る。
図18は、SPSシンタックス要素を使用してMTSの使用を制御する例を示す。図示するように、SPSシンタックス要素sps_mts_enabled_flagは、ビデオシーケンスに対してMTSがイネーブルであるかどうかを示すためにシグナリングすることができる。MTSがイネーブルになると、2つのシンタックス要素、sps_explicit_mts_intra_enabled_flagおよびsps_explicit_mts_inter_enabled_flagがシグナリングされて、それぞれ、MTSがインター予測ブロックまたはイントラ予測ブロックをコーディングするためにイネーブルであるかどうかを示すことができる。
【0097】
一実施形態では、上記のシグナリングベースのMTS(明示的MTSと呼ばれる)が使用されない場合には、暗黙的なMTSが適用される。暗黙的なMTSでは、シグナリングに基づく代わりに、ブロック幅および高さに従って変換選択を行うことができる。例えば、暗黙的なMTSを用いて、変換ブロックの短い側に対してDST-7変換を選択することができ、変換ブロックの長い側に対してDCT-2変換を選択することができる。
【0098】
3.3暗黙的な変換選択が適用されるシナリオ
様々な実施形態において、特定のシナリオでは、DST-7および/またはDCT-8は、明示的にシグナリングされることなく使用することができる。例えば、DST-7および/またはDCT-8は、エンコーダおよび対応するデコーダの両方に利用可能な情報に基づいて暗黙的に使用することができる。これらのシナリオは以下を含む。
【0099】
3.3.1イントラサブパーティショニング(ISP)
ISPモードでコーディングされた残差ブロックの場合、残差ブロックのブロック幅が4以上16以下である限り、水平変換がDST-7として選択され、残差ブロックのブロック高さが4以上16以下である限り、垂直変換がDST-7として選択される。
【0100】
3.3.2サブブロック変換(SBT)
SBTモードの場合、現在のCUの左半分(または4分の1)または右半分(または4分の1)に位置するサブTUについて、水平変換は、それぞれDCT-8またはDST-7とすることができる。そうでなければ(サブTUは現在のCUと同じ幅を有する)、DCT-2を使用することができる。現在のCUの上半分(または4分の1)または下半分(または4分の1)に位置するサブTUについて、垂直変換は、それぞれDCT-8またはDST-7とすることができる。そうでなければ(サブTUは現在のCUと同じ高さを有する)、DCT-2を使用することができる。
【0101】
3.3.3 HLS要素によってディスエーブルされるMTS
例えば、sps_mts_enabled_flagがtrueとしてシグナリングされるが、sps_explicit_mts_intra_enabled_flagとsps_explicit_mts_inter_enabled_flagの両方が偽としてシグナリングされる場合、イントラ予測残差については、それぞれのブロック幅が4以上16以下であれば水平変換をDST-7として選択することができ、それぞれのブロック高さが4以上16以下であれば垂直変換をDST-7として選択することができる。
【0102】
4.非分離二次変換(NSST)
4.1 NSSTの初期設計
いくつかの実施形態では、(エンコーダにおける)順方向コア変換と量子化との間、および(対応するデコーダにおける)逆量子化と逆コア変換との間に、モード依存の非分離二次変換(NSST)を適用することができる。低複雑度を維持するために、いくつかの実施形態では、NSSTは、一次変換後の低周波数係数にのみ適用することができる。変換係数ブロックの幅(W)および高さ(H)の両方が8以上である場合には、8×8の非分離二次変換を変換係数ブロックの左上の8×8の領域に適用することができる。そうではなく、変換係数ブロックのWまたはHのいずれかが4に等しい場合には、4×4の非分離二次変換を適用することができ、4×4の非分離二次変換は、変換係数ブロックの左上のmin(8,W)×min(8,H)領域に対して実行される。上記の変換選択規則は、輝度成分と彩度成分の両方に適用される。
【0103】
非分離変換の行列乗算の実装は、例として4×4入力ブロックを使用して以下のように説明される。非分離変換を適用するために、4×4入力ブロックX
【数1】
はベクトル
【数2】
として表され、
【数3】
【0104】
非分離変換は次のように計算される。
【数4】
、ここで、
【数5】
は変換係数ベクトルを示し、Tは16×16の変換行列である。16×1の係数ベクトル
【数6】
は、その後に、そのブロックのスキャン順序(水平、垂直、または斜め)を使用して4×4のブロックとして再編成される。インデックスが小さい係数は、4×4係数ブロック内のスキャンインデックスが小さい係数に配置される。一例では、非分離変換の複雑さを低減するために、行列乗算の代わりにバタフライ実装を用いたハイパーキューブ変換(HyGT)が使用される。
【0105】
NSSTの一例では、4×4および8×8ブロックサイズの両方に対して合計35×3の非分離二次変換が存在することができ、35はイントラ予測モードにそれぞれ対応する変換セットの数であり、3は各イントラ予測モードに対するNSST候補の数である。イントラ予測モードから変換セットへのマッピングは、
図19に示す表(1900)に定義される。例えば、輝度/彩度変換係数に適用される変換セットは、表(1900)に従って対応する輝度/彩度イントラ予測モードによって指定することができる。34より大きいイントラ予測モード(例えば、対角予測方向)の場合、変換係数ブロックは、エンコーダ/デコーダにおいて二次変換の前/後に転置される。
【0106】
各変換セットについて、選択された非分離二次変換候補は、明示的にシグナリングされたCUレベルのNSSTインデックスによってさらに指定される。インデックスは、変換係数および切り捨てられた単項2値化が使用された後に、イントラCUごとに1回ビットストリームでシグナリングされる。切り捨て値は、平面モードまたはDCモードの場合は2であり、角度イントラ予測モードの場合は3である。このNSSTインデックスは、CUに複数の非ゼロ係数がある場合にのみシグナリングされる。シグナリングされない場合、デフォルト値は0である。このシンタックス要素のゼロ値は、現在のCUに二次変換が適用されないことを示し、値1~3は、セットからのどの二次変換が適用されるべきかを示す。
【0107】
NSSTは、変換スキップモードでコーディングされたブロックに適用されなくてもよい。NSSTインデックスがCUに対してシグナリングされ、ゼロに等しくないとき、NSSTは、CU内の変換スキップモードでコーディングされた成分のブロックには使用されない。すべての成分のブロックを有するCUが変換スキップモードでコーディングされるか、または非変換スキップモードCBの非ゼロ係数の数が2未満である場合、NSSTインデックスはCUに対してシグナリングされない。
【0108】
4.2縮小サイズ変換(RST)
いくつかの実施形態では、縮小サイズ変換(RST)または低周波非分離二次変換(LFNST)と呼ばれるNSSTの変形が使用される。RSTは、変換ゼロアウト方式を使用する。イントラ予測モードが平面であるかDCであるかは、NSSTの変換インデックスをエントロピーコーディングするためにチェックされる。
【0109】
一例では、4つの変換セットが適用され、各変換セットは3つのRST変換コアを含む。RST変換コアは、16×48(または16×64)(高さおよび幅の両方が8以上である変換係数ブロックに適用される)または16×16(高さまたは幅のいずれかが4である変換係数ブロックに適用される)のサイズを有することができる。表記の便宜上、16×48(または16×64)変換はRST 8×8として示され、16×16変換はRST 4×4として示される。
【0110】
RST 8×8の場合、16×64変換コアおよび16×48変換コアを使用する2つの代替変換コーディングプロセス(2000)および(2100)が、それぞれ
図20および
図21に示されている。VVC Draft 5では、16×48個の変換コアを用いるものが採用されている。
【0111】
図20の例のプロセス(2000)では、エンコーダ側で、まず残差ブロックに対して順方向一次変換(2010)を実行し、続いて順方向一次変換(2010)から生成された係数に対して順方向二次変換(2012)を実行することができる。順方向二次変換(2012)では、係数ブロック(2013)の左上隅の4×4サブブロックA/B/C/Dの64個の係数が64個の長さベクトルに表され、式(3)に従って16×64の変換行列と掛け合わせることで、16長さのベクトルを得ることができる。16の長さベクトル内の要素は、係数ブロック(2013)の左上の4×4サブブロックAに埋め戻される。サブブロックB/C/D内の係数は、ゼロの値をとることができる。順方向二次変換2012の後に得られた係数は、次に(2014)のステップで量子化され、ビットストリーム(2016)内のコーディング済ビットを生成するためにエントロピーコーディングされる。
【0112】
コーディング済ビットは、デコーダ側で受信され、エントロピーデコーディングされた後に、逆量子化(2024)されて係数ブロック(2023)を生成することができる。左上の4×4サブブロックEにおける16個の係数にわたって逆二次変換(2022)を実行して、4×4サブブロックE/F/G/Hに埋め戻される64個の係数を取得することができる。その後に、逆二次変換(2022)後のブロック(2023)内の係数は、逆一次変換(2020)で処理されて復元された残差ブロックを取得することができる。
【0113】
図21の例のプロセス(2100)は、順方向二次変換(2012)の間に処理される係数がより少ない(48)ことを除いて、プロセス(2000)と同様である。具体的には、サブブロックA/B/C内の48個の係数は、16×48のサイズのより小さい変換行列で処理される。より小さい変換行列を使用することにより、変換行列を格納するためのメモリサイズ、およびそれぞれの計算の複雑さを低減することができる。
【0114】
図22は、例示的なCUレベルシンタックス表(2200)を示し、CUレベルシンタックスの最後に、LFNSTカーネルの選択を示すシンタックス要素lfnst_idxがシグナリングされる。
【0115】
4.3 RST計算の例
縮小変換(RT)の主な概念は、N次元ベクトルを異なる空間内のR次元ベクトルにマッピングすることであり、R/N(R<N)は縮小係数である。
【0116】
RST行列は、以下のようなR×N行列である。
【数7】
ここで、変換のR個の行は、N次元空間のR個の基底である。RTの逆変換行列は、その順変換の転置である。
【0117】
図23は、縮小変換のプロセス(2301)および縮小逆変換のプロセス(2302)を示す。Tは、RxNの次元を有するRST変換行列を表し、T
Tは、NxRの次元を有するTの転置行列を表す。
【0118】
RST 8×8では、縮小率4(1/4サイズ)が実現されている。例えば、従来の8×8の非分離変換行列サイズである64×64の代わりに、16×64の直接行列が使用される。64×16の逆RST行列は、8×8の左上領域においてコア(一次)変換係数を生成するためにデコーダ側で使用される。順方向RST 8×8は、所与の8×8領域内の左上の4×4領域においてのみ非ゼロ係数を生成するように、16×64(または8×8ブロックの場合は8×64)個の行列を使用する。言い換えれば、RSTが適用される場合、左上の4×4領域を除く8×8領域は、ゼロ係数のみを有することになる。RST 4×4の場合、16×16(または4×4ブロックの場合は8×16)の直接行列乗算を適用することができる。
【0119】
加えて、RST 8×8の場合、変換行列サイズをさらに削減するために、二次変換を計算するための入力として残差ブロック(2410)の左上の8×8係数(
図24Aの影付きサブブロック)全体を使用する代わりに、残差ブロック(2410)の左上の3つの4×4サブブロック係数(
図24Bの影付きサブブロック)が二次変換を計算するための入力として使用される。
【0120】
一例では、以下の2つの条件が満たされる場合、逆RSTが条件付きで適用される:(i)それぞれのブロックサイズが所与のしきい値以上である(W>=4&&H>=4)、および(ii)変換スキップモードフラグが0に等しい。例えば、変換係数ブロックの幅(W)および高さ(H)の両方が4より大きい場合、変換係数ブロックの左上8×8領域にRST 8×8が適用される。そうでない場合、RST 4×4は、変換係数ブロックの左上のmin(8,W)×min(8,H)領域に適用される。
【0121】
一例では、RSTインデックスが0に等しいとき、RSTは適用されない。そうでなければ、RSTが適用され、RSTインデックスを用いてカーネルが選択される。一例では、RSTは、イントラおよびインタースライスの両方におけるイントラCU、ならびに輝度および彩度の両方に適用される。デュアルツリーがイネーブルである場合には、輝度および彩度のRSTインデックスは別々にシグナリングされる。インタースライス(デュアルツリーがディスエーブルである)の場合、単一のRSTインデックスがシグナリングされ、輝度と彩度の両方に使用される。ISPモードが選択されると、RSTはディスエーブルにされ、RSTインデックスはシグナリングされない。
【0122】
4.4 RST変換行列の選択例
一例では、各々が2つの変換からなる4つの変換セットからRST行列を選択することができる。どの変換セットを適用するかは、以下のように適用イントラ予測モードに基づいて決定することができる。3つの交差成分線形モデル(CCLM)モードのうちの1つが示されるとき、変換セット0を選択することができる。そうでなければ、変換セット選択は、
図25に示す表(2500)に従って実行することができる。IntraPredModeと表記される、表(2500)にアクセスするためのインデックスは、例えば、広角イントラ予測に用いられる変換後のモードインデックスである[-14,83]の範囲とすることができる。
【0123】
5.行列ベースのイントラ予測(MIP)モード
いくつかの実施形態では、行列ベースのイントラ予測(MIP)モードが使用される。
図26は、MIPモードの例示的なプロセス(2600)を示す。幅Wおよび高さHの矩形ブロック(2610)のサンプルを予測するために、MIPは、ブロック(2610)の左にあるH個の再構築された隣接する境界サンプルの1つのラインおよびブロック(2610)の上にあるW個の再構築された隣接する境界サンプルの1つのラインを入力として取得する。再構築されたサンプルが利用できない場合には、再構築されたサンプルは、従来のイントラ予測と同様の方法で生成することができる。
【0124】
予測信号の生成は、以下の(2601)~(2603)の3つのステップに基づくことができる。ステップ(2601)では、境界サンプルのうち、W=H=4の場合は4つのサンプル、それ以外の場合は8つのサンプルを平均して抽出する。
【0125】
ステップ(2602)において、行列ベクトル乗算Ak・bdryred、続いてオフセットbkの加算が、平均化されたサンプルbdryredを入力として実行される。結果は、元のブロック内のサブサンプルされたサンプルのセット(2621)上の低減された予測信号である。行列Akおよびオフセットbkは、MIPモードインデックスkに基づいて選択することができる。
【0126】
ステップ(2603)において、残りの位置(2622)の予測信号は、各方向の単一ステップ線形補間である線形補間によってサブサンプルされたセット(2621)上の予測信号から生成される。
【0127】
予測信号を生成するために必要な行列A
kおよびオフセットベクトルb
kは、行列の3つのセットS
0,S
1,S
2から取得することができる。集合S
0は、各々が16行および4列を有する18個の行列
【数8】
と、各々がサイズ16の18個のオフセットベクトル
【数9】
と、からなる。そのセットの行列およびオフセットベクトルは、サイズ4×4のブロックに使用される。集合S
1は、各々が16行および8列を有する10個の行列
【数10】
と、各々がサイズ16の10個のオフセットベクトル
【数11】
とからなる。そのセットの行列およびオフセットベクトルは、サイズ4×8、8×4および8×8のブロックに使用される。最後に、集合S
2は、各々が64行8列を有する6つの行列
【数12】
と、サイズ64の6つのオフセットベクトル
【数13】
とからなる。これらの行列およびオフセットベクトルのセットまたは一部の行列およびオフセットベクトルは、他のすべてのブロック形状に使用される。
【0128】
図示するように、8×8のブロック(2610)が与えられると、MIPは、境界の各軸に沿って4つの平均をとる。結果として得られる8つの入力サンプルは、行列ベクトル乗算に入る。行列は、集合S1から取得される。これにより、予測ブロックの奇数位置に16個のサンプル(2621)が得られる。したがって、1サンプルあたり合計(816)/(88)=2回の乗算が行われる。オフセットを追加した後に、これらのサンプルは、縮小された上部境界サンプルを使用して垂直に補間される。水平補間は、元の左境界サンプルを使用することによって続く。この場合、補間プロセスは乗算を必要としない。
【0129】
5.1 MIPモードのシグナリング
いくつかの実施形態では、イントラモードの各コーディングユニット(CU)について、MIPモードが対応する予測ユニット(PU)に適用されるか否かを示すフラグをビットストリームで送信することができる。MIPモードが適用される場合、MIPモードのインデックスpredmodeは、3つのMPMを含むMPMリストを使用してシグナリングされる。
【0130】
MPMの導出は、上記および左のPUのイントラモードを用いて以下のように行うことができる。3つの固定マッピング表map_angular_to_mipidx,idx∈{0,1,2}があり、各表は、以下の式に記載されるように、各従来のイントラ予測モードpredmodeAngularを特定のMIPモードと関連付ける。
predmodeMIP=map_angular_to_mip[predmodeAngular] (式5)
ここで、map_angular_to_mipは固定のルックアップテーブルである。マッピング表のインデックスは、PUの幅Wおよび高さHに基づいて決定され、以下に説明するように、合計3つのインデックスが利用可能である。
idx(PU)=idx(W,H)∈{0,1,2} (式6)
これは、3つのセットのうちのどれからMIPパラメータが上記で取得されるべきかを示す。
【0131】
いくつかの例では、MIPモードによってコーディングされた現在のブロックのMPMリストを生成するために、上記のMIPモード、すなわち
【数14】
および左MIPモード、すなわち
【数15】
が最初に導出される。
【0132】
【数16】
の値は、以下のように導き出すことができる。
- 上記のPU PU
aboveが利用可能であり、現在のPUが存在する同じCTUに属しており、PU
aboveがMIPモード
【数17】
を使用してMIPによってコーディングされている場合には、
【数18】
- 上記のPU PU
aboveが利用可能であり、現在のPUが存在するのと同じCTUに属し、PU
aboveが従来のイントラ予測モード
【数19】
を使用してコーディングされる場合には、
【数20】
- それらでない場合には、
【数21】
これは、このモードが利用できないことを意味する。
【0133】
【数22】
の値は、
【数23】
を導出するのと同じ方法で導出されるが、現在のPUが存在する同じCTUに左のPUが属するかどうかはチェックされない。
【0134】
最後に、導出された
【数24】
および
【数25】
と、それぞれが3つの異なるMIPモードを含む3つの予め定義された固定デフォルトMPMリストlist
idx,idx∈{0,1,2}とが与えられると、MPMリストが構築される。MPMリストは、デフォルト値で-1を置換すると共に重複するMIPモードを除去することによって、所与のデフォルトリストlist
idx(PU)ならびに
【数26】
および
【数27】
に基づいて構築される。
【0135】
一例として、
図27は、MIPモードをシグナリングするフラグがフレーム(2701)に示されているCUレベルシンタックス表を示す。
【0136】
5.2従来のイントラ予測モードのためのMPMリスト導出
いくつかの実施形態では、MIPモードは、以下のように従来のイントラ予測モードのMPMベースのコーディングと調和される。従来のイントラ予測モードの輝度および彩度MPMリスト導出プロセスは、MIPモードpredmodeMIPを従来のイントラ予測モードのうちの1つにマップする別個の固定テーブルmap_mip_to_angularidx,idx∈{0,1,2}を使用し、
predmodeAngular=map_mip_to_angular[predmodeMIP] (式11)
ここで、map_mip_to_angularは固定ルックアップテーブルである。輝度MPMリスト導出の場合、隣接する輝度ブロックがMIPモードpredmodeMIPによってコーディングされるときはいつでも、このブロックは従来のイントラ予測モードpredmodeAngularを使用しているかのように扱われる。彩度MPMリスト導出の場合、現在の輝度ブロックがMIPモードを使用するときはいつでも、同じマッピングを使用してMIPモードを従来のイントラ予測モードに変換する。
【0137】
III.高レベルシンタックス要素またはブロックレベルシンタックス要素に基づく暗黙的な変換選択のイネーブル
いくつかの実施形態では、暗黙的変換(または暗黙的変換選択と呼ばれる)および明示的変換(または明示的変換選択と呼ばれる)の2つの変換コーディング方式を使用することができる。
【0138】
暗黙的変換では、変換インデックスシグナリングなしで、非DCT 2変換のグループ(例えば、DST-1、DCT-5、DST-7、DCT-8、DST-4、DCT-4)を選択することができる。例えば、非DCT 2変換のグループは、エンコーダおよび対応するデコーダの両方に利用可能な既にコーディング済の情報を使用して選択することができる。既にコーディング済の情報は、イントラ予測モード(例えば、平面モード、DCモード、角度モード)、ブロックサイズ、ブロック幅、ブロック高さ、ブロックアスペクト比、ブロックエリアサイズ、イントラコーディングモード(例えば、複数の基準線(MRL)、ISP、MIPが使用されているかどうか)、選択された空間マージ候補の位置(例えば、上マージ候補、左マージ候補)、インター予測モード(例えば、位置依存予測合成(PDPC間)モード、結合されたインターイントラ予測(CIIP)モード)を含むことができるが、これらに限定されない。
【0139】
対照的に、明示的な変換では、どの変換タイプが選択されるかを示すためにシグナリングされたインデックスを用いて、変換タイプ候補(DCT-2、DST-1、DCT-5、DST-7、DCT-8、DST-4、DCT-4など)のグループから1つの変換を選択することができる。
【0140】
1.明示的なMTSがディスエーブルである場合の暗黙的な変換のイネーブル
いくつかの実施形態では、セクションII.3.2に記載されているように、ISPによってコーディングされていないイントラ予測残差ブロックに対して、高レベルシンタックス(HLS)要素によって示されるように、イントラ予測残差ブロックとインター予測残差ブロックの両方に対して明示的なMTSがディスエーブルである場合、暗黙的な変換選択がイネーブルにされ得る。例えば、SPSシンタックス要素、sps_explicit_mts_intra_enabled_flagおよびsps_explicit_mts_inter_enabled_flagが両方とも0である場合、デコーダは、SPSシンタックス要素に関連付けられた画像またはブロックの暗黙的変換選択をイネーブルにすることを決定することができる。
【0141】
一例として、
図28A~
図28Bは、ビットストリームから受信した関連するシンタックス要素に基づいて現在のブロックの明示的または暗黙的な変換選択を実行する変換コーディングプロセスを指定するテキスト(2800)を組み合わせて示す。テキスト(2800)は、ビデオコーディング標準規格の一部として使用することができる。
図28Aには2つのセクション(2801)および(2802)が示されており、
図28Bには1つのセクション(2803)ならびに2つの表(2804)および(2805)が示されている。
【0142】
セクション(2801)では、変換コーディングプロセスの入出力について説明する。具体的には、現在のブロックの位置、サイズ、色成分、逆量子化された変換係数が入力であり、選択された変換を使用する逆変換処理後の残差サンプルが出力である。
【0143】
セクション(2802)では、implicitMtsEnabledで表される変数の導出について説明する。変数は、暗黙的な選択がイネーブルであるか否かを示す。説明したように、SPSシンタックス要素sps_mts_enabled_flagが1に等しい場合(このSPSシンタックス要素に関連する画像またはブロックに対してMTSがイネーブルであることを示す)、implicitMtsEnabledは、以下の3つの条件のうちの1つが真である場合に1に等しい。(i)ISPが現在のブロックをコーディングするために使用される、(ii)SBTがイネーブルであり、現在のブロックの両側が32以下であり、これはSBTが使用されることを示す、または(iii)sps_explicit_mts_intra_enabled_flagおよびsps_explicit_mts_inter_enabled_flagが両方とも0に等しく(これは、イントラコーディング済ブロックとインターコーディング済ブロックの両方に対して明示的なMTSがディスエーブルであることを示す)、現在のブロックがイントラコーディングされている。そうでない場合、implicitMtsEnabledは0に等しく設定され、これは、暗黙の変換選択が現在のブロックに対してディスエーブルであることを示す。
【0144】
セクション(2802)で説明したように、条件(i)によれば、ISPモードでコーディングされたイントラ予測ブロックに対して、このイントラ予測ブロックをコーディングするための暗黙的変換をイネーブルにすることができる。条件(iii)によれば、ISPモードでコーディングされていないイントラ予測ブロックについて、イントラ予測ブロックとインター予測ブロックの両方で明示的なMTSがディスエーブルである場合、ISPモードでコーディングされていないイントラ予測ブロックをコーディングするために、暗黙的変換をイネーブルにすることができる。
【0145】
セクション(2803)において、垂直変換および水平変換は、変数implicitMtsEnabled、プロセスへの入力、および関連するシンタックス要素に従って決定される。例えば、sps_explicit_mts_intra_enabled_flagとsps_explicit_mts_inter_enabled_flagの両方が0に等しい場合、(輝度成分およびイントラ予測の)現在のブロックには、それぞれ式(3-1)および式(3-2)に従って水平変換カーネル(trTypeHorで示される)および垂直変換カーネル(trTypeBerで示される)を与えることができる。
【0146】
表(2804)および(2805)において、水平または垂直変換カーネルタイプを示すための番号1および2は、それぞれDST-7変換およびDCT-8変換を示し、番号0はDCT-2変換を示す。いくつかの例では、DST-7変換の代わりにDST-4変換を使用することができる。
【0147】
図28A~
図28Bの例では、HLS要素sps_explicit_mts_intra_enabled_flagおよびsps_explicit_mts_inter_enabled_flagによって制御されるブロックについて、インターコーディング済ブロックの明示的なMTSと、イントラコーディング済ブロック(非ISPコーディング)の暗黙的な変換とを共存させることはできない。しかしながら、イントラ予測残差ブロックに対する暗黙的な変換選択は、インター予測残差を可能にするMTSを制御するHLS要素(例えば、sps_explicit_mts_inter_enabled_flag)に必ずしも依存する必要はない。したがって、いくつかの実施形態では、ISPモードによって予測されないイントラコーディング済ブロックについて、暗黙的変換が適用され得るかどうかは、MTSがイントラ予測残差(例えば、sps_explicit_mts_intra_enabled_flagの値)に適用され得るかどうかに依存するが、MTSがインター予測残差(sps_explicit_mts_inter_enabled_flagの値)に適用され得るかどうかには依存しない。このような制御機構により、インターMTS(インター予測残差ブロックに適用される明示的なMTS)と(イントラ予測残差に対する)暗黙的な変換との両方を同時にイネーブルにすることができる。
【0148】
例えば、第1および第2のHLS要素をデコーダで受信することができる。第1および第2のHLS要素は、イントラコーディング済残差ブロックおよびインターコーディング済残差ブロックを含むことができる画像または領域の同じセット(例えば、ビデオシーケンス、画像、スライス、タイルなど)を制御する。第1のHLS要素は、それぞれのイントラコーディング済残差ブロックに対して明示的なMTSがイネーブルかディスエーブルかを示し、第2のHLS要素は、それぞれのインターコーディング済残差ブロックに対して明示的なMTSがイネーブルかディスエーブルかを示す。インターMTSの項に関して、イントラコーディング済残差ブロックに適用される明示的なMTSは、イントラMTSと呼ぶことができる。
【0149】
第1のHLS要素が、イントラコーディング済残差ブロックに対して明示的なMTSがディスエーブルであることを示す場合、デコーダは、それに応じて、第2のHLS要素の値を考慮することなく、イントラコーディング済ブロックに対して暗黙的な変換(または暗黙的なMTS)をイネーブルすることを決定することができる。例えば、第2のHLS要素は、0または1のいずれかとすることができ、これは、イントラコーディング済残差ブロックのための暗黙的変換のイネーブルに影響を与えない。
【0150】
一例として、
図29は、イントラ残差ブロックの暗黙的変換とインター残差ブロックの明示的変換とが共存することができる暗黙的変換イネーブル方式に対応するテキスト(2800)に対する修正(2900)を示す。修正(2900)では、除去されたテキストは取り消し線でマークされ、追加されたテキストは下線でマークされる。図示するように、0であるsps_explicit_mts_inter_enabled_flagの条件は除去されている。
【0151】
2.他のコーディングツールがイネーブルである場合の暗黙的変換のディスエーブル
いくつかの実施形態では、(ISPモードによって予測されない)イントラコーディング済ブロックに暗黙的変換を適用できるかどうかは、特定のコーディングツールがHLS要素によって示されるようにイネーブルであるかどうかに依存する。
【0152】
2.1 NSSTがイネーブルである場合
一実施形態では、HLS要素がNSSTがイネーブルであることを示す場合、(ISPモードによって予測されない)イントラコーディング済ブロックに対して暗黙的変換をディスエーブルにすることができる。例えば、セクションII.4.1で説明したように、変換行列Tは、二次変換処理のための(式3)で使用される。変換行列Tは、定数要素を含むことができ、明示的な変換選択から生じる係数ブロックなどのターゲット係数ブロックの特定の統計値を仮定して設計することができる。したがって、暗黙的な変換選択から生じる係数ブロックは、それぞれの係数の統計に関してNSSTと一致しない場合がある。例えば、暗黙的変換の結果にNSSTを適用してもコーディング性能は向上しない。上記の理由から、NSSTがイネーブルであるときに暗黙的な変換をディスエーブルにすることが望ましい場合がある。
【0153】
本開示では、NSSTという用語は、NSST、RST、LFNSTなどの初期設計などの非分離二次変換コーディング方式のファミリを指すために使用することができる。
【0154】
例えば、デコーダは、2つのHLS要素を受信することができ、一方のHLS要素(例えば、sps_explicit_mts_intra_enabled_flag)は、明示的なMTSがディスエーブルであることを示し、他方のHLS要素(例えば、sps_lfnst_enabled_flag)は、NSSTがイネーブルであることを示す。したがって、デコーダは、これら2つのHLS要素によって制御されるイントラコーディング済ブロックのための暗黙的な変換をイネーブルにしないことを決定することができる。対照的に、一方のHLS要素が明示的なMTSがディスエーブルであることを示し、他方のHLS要素もまたNSSTがディスエーブルであることを示す場合には、デコーダは、それぞれのイントラコーディング済ブロックのための暗黙的な変換をイネーブルにすることを決定することができる。
【0155】
一例として、
図30は、NSSTがディスエーブルであるときに暗黙的変換がイネーブルにされるシナリオに対応するテキスト(2800)に対する修正(3000)を示す。図示するように、変数implicitNtsEnabledを導出するための条件(iii)に、「sps_lfnst_enabled_flagが0に等しい」という追加の制限が加えられる。
【0156】
2.2 MIPがイネーブルである場合
NSSTがイネーブルされるシナリオと同様に、いくつかの実施形態では、HLS要素がMIPがイネーブルであることを示す場合、イントラコーディング済ブロック(ISPモードによって予測されない)に対して暗黙的変換がディスエーブルにされる。例えば、MIPイントラコーディングモードをブロックに適用すると、通常のイントラコーディングモードでコーディングされた残差ブロックとは異なる統計値を有する残差ブロックが得られる。したがって、MIPでコーディングされた残差ブロックは、通常のイントラモードから生じる残差統計を仮定することができる暗黙的変換と一致しない場合がある。したがって、MIPがイネーブルである場合、暗黙的変換をディスエーブルにすることが望ましい場合がある。
【0157】
例えば、デコーダは、2つのHLS要素を受信することができる。一方のHLS要素(例えば、sps_explicit_mts_intra_enabled_flag)は、明示的なMTSがディスエーブルであることを示し、他方のHLS要素(例えば、sps_mip_enabled_flag)は、MIPがイネーブルであることを示す。したがって、デコーダは、これら2つのHLS要素によって制御されるイントラコーディング済ブロックのための暗黙的な変換をイネーブルにしないことを決定することができる。対照的に、2つのHLS要素によって示されるように、明示的なMTSとMIPの両方がディスエーブルである場合、デコーダは、それぞれのイントラコーディング済ブロックの暗黙的な変換をイネーブルにすることを決定することができる。
【0158】
一例として、
図31は、MIPがディスエーブルである場合に暗黙的変換がイネーブルにされるシナリオに対応するテキスト(2800)に対する修正(3100)を示す。図示するように、変数implicitNtsEnabledを導出するための条件(iii)に、「sps_mip_enabled_flagが0に等しい」という追加の制限が加えられる。
【0159】
3.ブロックレベルシンタックス要素指示に基づく暗黙的変換のイネーブル
いくつかの実施形態では、(ISPモードによって予測されない)暗黙的変換をイントラコーディング済ブロックに適用できるかどうかは、ブロックレベルシンタックス要素によって示されるように、MTS、NSST、またはMIPがイントラコーディング済ブロックに適用されるかどうかに依存する。
【0160】
3.1 MTSおよびNSSTを適用しない場合
一実施形態では、イントラコーディング済ブロックに暗黙的変換を適用できるかどうかは、ブロックレベルシンタックス要素によって示されるように、イントラコーディング済ブロックにMTSとNSSTの両方が適用されないかどうかに依存する。
【0161】
例えば、デコーダは、イントラコーディングされ、ISPモードによって予測されない現在のブロックに関連付けられた第1および第2のCUレベル(またはブロックレベル)シンタックス要素を受信することができる。現在のブロックは、画像内の座標[x0][y0]の位置に位置することができる。
【0162】
第1のCUレベルのシンタックス要素(例えば、tu_mts_idx[x0][y0])は、MTS(例えば、DST-7、DCT-8、DCT-4など)で使用される変換の代わりに、DCT-2変換が現在のブロックに使用され得ることを示すことができる。一例として、表(2804)において、tu_mts_idx[x0][y0]が0の値を有するとき、trTypeHorおよびtrTypeVerの変数は両方とも0の値を有し、これは、水平および垂直変換がDCT-2変換であり、DST-7またはDCT-8変換が適用されないことを示す。第2のCUレベルシンタックス要素(例えば、lfnst_idx[x0][y0])は、NSSTが現在のブロックに適用されないことを示すことができる。上記の第1および第2のCUレベルのシンタックス要素に基づいて、デコーダは、現在のブロックの暗黙的なMTSをイネーブルにすることを決定することができる。
【0163】
対照的に、第1のCUレベルのシンタックス要素および第2のCUレベルのシンタックス要素が、MTSが適用されること(tu_mts_idx[x0][y0]は、1、2、3、または4の値を有する)、またはNSSTが適用されること(lfnst_idx[x0][y0]が非ゼロ値を有すること)を示す場合、デコーダは、暗黙的なMTSをディスエーブルにすることを決定することができる。
【0164】
一例として、
図32は、MTSとNSSTの両方が現在のブロックに適用されないシナリオに対応するテキスト(2800)に対する修正(3200)を示す。図示するように、テキスト(2800)の元の条件(iii)は、2つのCUレベルシンタックス要素「tu_mts_idx[x0][y0]およびlfnst_idx[x0][y0]が両方とも0に等しい」という条件に置き換えられる。
【0165】
3.2 MTS、NSST、およびMIPを適用しない場合
一実施形態では、イントラコーディング済ブロックに暗黙的変換を適用できるかどうかは、ブロックレベルシンタックス要素によって示されるように、イントラコーディング済ブロックにMTS、NSST、およびMIPが適用されないかどうかに依存する。セクションIII.3.1と比較して、もう1つのコーディングツールMIPがさらに考慮される。
【0166】
例えば、デコーダは、イントラコーディングされ、ISPモードによって予測されない現在のブロックに関連付けられた第1、第2、および第3のCUレベル(またはブロックレベル)シンタックス要素を受信することができる。現在のブロックは、画像内の座標[x0][y0]の位置に位置することができる。
【0167】
第1のCUレベルシンタックス要素(例えば、tu_mts_idx[x0][y0])は、MTSで使用される変換の代わりにDCT-2変換を現在のブロックに使用できることを示すことができる。第2のCUレベルシンタックス要素(例えば、lfnst_idx[x0][y0])は、NSSTが現在のブロックに適用されないことを示すことができる。第3のCUレベルシンタックス要素(例えば、tu_mip_flag)は、MIPが現在のブロックに適用されないことを示すことができる。上記の3つのCUレベルのシンタックス要素に基づいて、デコーダは、現在のブロックの暗黙的なMTSをイネーブルにすることを決定することができる。
【0168】
対照的に、上記の3つのCUレベルのシンタックス要素が、MTSが適用される(tu_mts_idx[x0][y0]は、1、2、3、または4の値を有する)、NSSTが適用される(lfnst_idx[x0][y0]が非ゼロ値を有する)、またはMIPが適用される(tu_mip_flagが1の値を有する)ことを示す場合、デコーダは、暗黙的なMTSをディスエーブルにすることを決定することができる。
【0169】
一例として、
図33は、MTS、NSST、またはMIPのいずれも現在のブロックに適用されないシナリオに対応するテキスト(2800)に対する修正(3300)を示す。図示するように、テキスト(2800)内の元の条件(iii)は、3つのCUレベルシンタックス要素「tu_mts_idx[x0][y0]、intra_mip_flag[x0][y0]およびlfnst_idx[x0][y0]はすべて0に等しい」という条件に置き換えられる。
【0170】
4.変換コーディングプロセスの例
図34~
図36は、本開示のいくつかの実施形態による変換コーディングプロセス(3400)、(3500)、および(3600)のフローチャートを示す。プロセス(3400)、(3500)、および(3600)は、再構築中のブロックの残差ブロックを生成するために、デコーダにおける逆変換処理で使用することができる。様々な実施形態では、プロセス(3400)、(3500)、および(3600)は、端末装置(210)、(220)、(230)、および(240)の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路などの処理回路によって実行することができる。いくつかの実施形態では、プロセス(3400)、(3500)、および(3600)はソフトウェア命令で実施することができ、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(3400)、(3500)、および(3600)を実行する。
【0171】
4.1プロセス(3400):明示的なMTSがディスエーブルである場合の暗黙的な変換のイネーブル
プロセス(3400)は、(S3401)から開始し、(S3410)に進む。
【0172】
(S3410)において、第1のHLS要素がデコーダにおいて受信される。第1のHLS要素は、イントラコーディング済ブロックに対して明示的なMTSがディスエーブルであるか否かを示すことができる。例えば、イントラコーディング済ブロックは再構築中であるため、現在のブロックと呼ぶことができる。第1のHLS要素は、現在のブロックを含むコーディングブロックのセットに関連付けられ得る。
【0173】
(S3420)において、第2のHLS要素がデコーダで受信される。第2のHLS要素は、インターコーディング済ブロックに対して明示的なMTSがイネーブルであるか否かを示すことができる。例えば、第2のHLS要素は、第1のHLS要素と同じコーディングブロックのセットに関連付けることができる。現在のブロックとインターコーディング済ブロックの両方がコーディングブロックのセットに含まれる。
【0174】
(S3430)において、デコーダは、第1のHLS要素が、イントラコーディング済ブロックに対して、明示的なMTSがディスエーブルであることを示し、第2のHLS要素が、インターコーディング済ブロックに対して、明示的なMTSがイネーブルであることを示す場合、現在のブロックに対して、暗黙的なMTSをイネーブルにすることを決定することができる。プロセス(3400)は、(S3499)に進むことができ、(S3499)において終了する。
【0175】
4.2プロセス(3500):他のコーディングツールがイネーブルである場合の暗黙的変換のディスエーブル
プロセス(3500)は、(S3501)から開始し、(S3510)に進む。
【0176】
(S3510)において、第1のHLS要素がデコーダで受信される。第1のHLS要素は、イントラコーディング済ブロックに対して明示的なMTSがイネーブルであるか否かを示すことができる。イントラコーディング済ブロックは、再構築中のブロックとすることができる。第1のHLS要素は、イントラコーディング済ブロックを含むコーディングブロックのセットを制御する。
【0177】
(S3520)において、第2のHLS要素がデコーダで受信される。第2のHLS要素は、イントラコーディング済ブロックに対してNSSTまたはMIPがディスエーブルであるか否かを示すことができる。例えば、第2のHLS要素は、第1のHLS要素と同じコーディングブロックのセットを制御することができる。
【0178】
(S3530)において、デコーダは、第1のHLS要素および第2のHLS要素に基づいて、イントラコーディング済ブロックを処理するために、暗黙的なMTSをイネーブルにするか否かを決定することができる。例えば、デコーダは、第1のHLS要素がイントラコーディング済ブロックに対して明示的なMTSがディスエーブルであることを示し、第2のHLS要素がイントラコーディング済ブロックに対してNSSTまたはMIPがディスエーブルであることを示す場合、イントラコーディング済ブロックに対して暗黙的なMTSをイネーブルにすることを決定することができる。あるいは、デコーダは、第1のHLS要素が、イントラコーディング済ブロックに対して明示的なMTSがディスエーブルであることを示すが、第2のHLS要素が、イントラコーディング済ブロックに対してNSSTまたはMIPがイネーブルであることを示す場合、イントラコーディング済ブロックに対して暗黙的なMTSをディスエーブルにすることを決定することができる。プロセス(3500)は、(S3599)に進むことができ、(S3599)において終了する。
【0179】
4.3プロセス(3600):ブロックレベルシンタックス要素指示に基づく暗黙的変換のイネーブル
プロセス(3600)は、(S3601)から開始し、(S3610)に進む。
【0180】
S(3610)において、イントラコーディング済ブロックがデコーダで受信される。イントラコーディング済ブロックは、MTSが適用されるか否かを示す第1のブロックレベルシンタックス要素と、NSSTが適用されるか否かを示す第2のブロックレベルシンタックス要素とに関連付けることができる。例えば、イントラコーディング済ブロックは、第1および第2のブロックレベルシンタックス要素を含むCUレベルのシンタックス要素を含むCUに属する。
【0181】
(S3620)において、デコーダは、第1のブロックレベルシンタックス要素および第2のブロックレベルシンタックス要素に基づいて、イントラコーディング済ブロックのための暗黙的なMTSをイネーブルにするか否かを決定することができる。例えば、デコーダは、第1のブロックレベルシンタックス要素が、MTSが適用されないことを示し、第2のブロックレベルシンタックス要素が、NSSTが適用されないことを示す場合、イントラコーディング済ブロックのための暗黙的なMTSをイネーブルにすることを決定することができる。あるいは、デコーダは、第1のブロックレベルシンタックス要素が、MTSが適用されないことを示すが、第2のブロックレベルシンタックス要素が、NSSTが適用されることを示す場合、イントラコーディング済ブロックのための暗黙的なMTSをディスエーブルにすることを決定することができる。プロセス(3600)は、(S3699)に進むことができ、(S3699)において終了する。
【0182】
IV.コンピュータシステム
上述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に格納されたコンピュータソフトウェアとして実装することができる。例えば、
図37は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(3700)を示す。
【0183】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などにより、アセンブリ、コンパイル、リンク、または同様の機構の対象となり得、直接に、または翻訳、マイクロコードの実行などを通じて実行され得る命令を含むコードを作成することができる、任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングすることができる。
【0184】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバー、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0185】
コンピュータシステム(3700)について
図37に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する制限を示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム(3700)の例示的な実施形態に示されている構成要素のいずれか1つまたは組み合わせに関する依存性または要件を有するものとして解釈されるべきではない。
【0186】
コンピュータシステム(3700)は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)による、1人または複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェースデバイスを使用して、音声(スピーチ、音楽、環境音など)、画像(スキャンされた画像、静止画像カメラから得られる写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることもできる。
【0187】
入力ヒューマンインターフェースデバイスは、キーボード(3701)、マウス(3702)、トラックパッド(3703)、タッチスクリーン(3710)、データグローブ(図示せず)、ジョイスティック(3705)、マイクロフォン(3706)、スキャナ(3707)、カメラ(3708)のうちの1つまたは複数(各々示されているうちのただ1つ)を含むことができる。
【0188】
コンピュータシステム(3700)はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて、1人または複数の人間のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(3710)、データグローブ(図示せず)、またはジョイスティック(3705)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(3709)、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(3710)などであって、それぞれタッチスクリーン入力機能の有無にかかわらず、また触覚フィードバック機能の有無にかかわらず、-これらの一部は、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず)などの手段を介して、2次元の視覚的出力または3次元を超える出力を出力することができる)、ならびにプリンタ(図示せず)を含むことができる。
【0189】
コンピュータシステム(3700)はまた、CD/DVDまたは同様の媒体(3721)を備えたCD/DVD ROM/RW(3720)を含む光学メディア、サムドライブ(3722)、取り外し可能なハードドライブまたはソリッドステートドライブ(3723)、テープおよびフロッピーディスク(図示せず)などの従来の磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなどの、人間がアクセス可能な記憶装置および関連メディアを含むことができる。
【0190】
当業者はまた、ここで開示される主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0191】
コンピュータシステム(3700)はまた、1つまたは複数の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光であり得る。さらに、ネットワークは、ローカル、広域、大都市圏、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むテレビ有線または無線広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークでは、一般に、特定の汎用データポートまたは周辺バス(3749)(例えばコンピュータシステム(3700)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタが必要であり、その他のネットワークは、一般に、後述するようにシステムバスへの取り付けによりコンピュータシステム(3700)のコアに統合されている(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(3700)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイス)、または双方向、例えば、ローカルエリアまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。上記のように、特定のプロトコルとプロトコルスタックは、これらのネットワークとネットワークインターフェースのそれぞれで使用することができる。
【0192】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(3700)のコア(3740)に取り付けることができる。
【0193】
コア(3740)は、1つまたは複数の中央処理装置(CPU)(3741)、グラフィック処理装置(GPU)(3742)、フィールドプログラマブルゲートエリア(FPGA)(3743)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(3744)などを含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(3745)、ランダムアクセスメモリ(3746)、ユーザがアクセスできない内部ハードドライブ、SSD(3747)などの内部大容量記憶装置と共に、システムバス(3748)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(3748)は1つまたは複数の物理プラグの形でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(3748)に直接、または周辺バス(3749)を介して接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0194】
CPU(3741)、GPU(3742)、FPGA(3743)、およびアクセラレータ(3744)は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(3745)またはRAM(3746)に格納することができる。移行データはまた、RAM(3746)に格納することができ、一方、永続データは、例えば内部大容量記憶装置(3747)に格納することができる。メモリデバイスのいずれかへの高速記憶および検索は、1つまたは複数のCPU(3741)、GPU(3742)、大容量記憶装置(3747)、ROM(3745)、RAM(3746)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
【0195】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードをその上に有することができる。メディアおよびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術の当業者に周知であり利用可能な種類のものであり得る。
【0196】
限定ではなく例として、アーキテクチャ(3700)、具体的にはコア(3740)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上で紹介されたようなユーザがアクセス可能な大容量記憶装置、ならびにコア内部大容量記憶装置(3747)またはROM(3745)などの非一時的な性質のコア(3740)の特定の記憶装置に関連する媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(3740)によって実行され得る。コンピュータ可読媒体は、特定のニーズに従って、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(3740)とその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、ソフトウェアで定義されたプロセスに従ってRAM(3746)に格納されているデータ構造の定義やそのようなデータ構造の変更など、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替例として、コンピュータシステムは、ハードウェアに組み込まれた、または回路(例えばアクセラレータ(3744))に組み込まれたロジックの結果として、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行するソフトウェアの代わりにまたは一緒に動作できる機能を提供することができる。ソフトウェアへの言及はロジックを含むことができ、妥当な場合には、その逆も可能である。コンピュータ可読媒体への言及は、実行のためのソフトウェア、実行のためのロジックを具体化する回路、または妥当な場合には、その両方を格納する回路(集積回路(IC)など)を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付記A:略語
AMT:適応多重変換
ASIC:特定用途向け集積回路
BMS:ベンチマークセット
CANBus:コントローラエリアネットワークバス
CCLM:交差成分線形モデル
CD:コンパクトディスク
COT:複合正規直交変換
CPU:中央処理装置
CRT:陰極線管
CTB:コーディングツリーブロック
CTU:コーディングツリーユニット
CU:コーディングユニット
DVD:デジタルビデオディスク
EMT:拡張された多重変換
FPGA:フィールドプログラマブルゲートエリア
GOP:画像のグループ
GPU:グラフィックス処理装置
GSM:グローバル移動体通信システム
HDR:高ダイナミックレンジ
HEVC:高効率ビデオコーディング
HLS:高レベルシンタックス
HRD:仮想参照デコーダ
IBC:イントラブロックコピー
IC:集積回路
IDT:識別情報変換
ISP:イントラサブパーティショニング
JEM:共同探索モデル
JVET:共同ビデオ探索チーム
KLT:Karhunen-Loeve変換
LAN:ローカルエリアネットワーク
LCD:液晶ディスプレイ
LFNST:低周波非分離二次変換
LTE:ロングタームエボリューション
MIP:行列ベースのイントラ予測モード
MRL(またはMRLP):多重参照線予測
MTS:多重変換選択
MV:動きベクトル
NSST:非分離二次変換
OLED:有機発光ダイオード
PB:予測ブロック
PCI:周辺機器相互接続
PLD:プログラマブルロジックデバイス
PPS:画像パラメータセット
PU:予測ユニット
RAM:ランダムアクセスメモリ
ROM:読出し専用メモリ
RST:縮小サイズ変換
SBT:サブブロック変換
SDR:標準ダイナミックレンジ
SEI:補足拡張情報
SNR:信号雑音比
SPS:シーケンスパラメータセット
SSD:ソリッドステートドライブ
SVT:空間変動変換
TSM:変換スキップモード
TU:変換ユニット、
USB:ユニバーサルシリアルバス
VPS:ビデオパラメータセット
VUI:ビデオユーザビリティ情報
VVC:多用途ビデオコーディング
【0197】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある変更、置換、および様々な代替均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。
【符号の説明】
【0198】
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 インターデコーダ
1301 行
1302 行
1303 行
1304 行
1305 行
1500 表
1900 表
2000 代替変換コーディングプロセス
2010 順方向一次変換
2012 順方向二次変換
2013 係数ブロック
2016 ビットストリーム
2020 逆一次変換
2022 逆二次変換
2023 係数ブロック
2024 逆量子化
2100 代替変換コーディングプロセス
2200 CUレベルシンタックス表
2301 縮小変換のプロセス
2302 縮小逆変換のプロセス
2410 残差ブロック
2500 表
2600 MIPモードの例示的なプロセス
2610 矩形ブロック
2621 サブサンプルされたセット
2622 残りの位置
2701 フレーム
2800 テキスト
2801 セクション
2802 セクション
2803 セクション
2804 表
2805 表
2900 修正
3000 修正
3100 修正
3200 修正
3300 修正
3400 変換コーディングプロセス
3500 変換コーディングプロセス
3600 変換コーディングプロセス
3700 コンピュータシステム
3701 キーボード
3702 マウス
3703 トラックパッド
3705 ジョイスティック
3706 マイクロフォン
3707 スキャナ
3708 カメラ
3709 スピーカ
3710 タッチスクリーン
3720 CD/DVD ROM/RW
3721 媒体
3722 サムドライブ
3723 ソリッドステートドライブ
3740 コア
3741 中央処理装置(CPU)
3742 グラフィック処理装置(GPU)
3743 フィールドプログラマブルゲートエリア(FPGA)
3744 ハードウェアアクセラレータ
3745 読取り専用メモリ(ROM)
3746 ランダムアクセスメモリ
3747 内部大容量記憶装置
3748 システムバス
3749 周辺バス