(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-05
(45)【発行日】2022-12-13
(54)【発明の名称】ビデオ・コーディングのための方法、装置及びコンピュータ・プログラム
(51)【国際特許分類】
H04N 19/12 20140101AFI20221206BHJP
H04N 19/157 20140101ALI20221206BHJP
H04N 19/176 20140101ALI20221206BHJP
H04N 19/593 20140101ALI20221206BHJP
H04N 19/70 20140101ALI20221206BHJP
【FI】
H04N19/12
H04N19/157
H04N19/176
H04N19/593
H04N19/70
(21)【出願番号】P 2021537953
(86)(22)【出願日】2020-06-03
(86)【国際出願番号】 US2020035953
(87)【国際公開番号】W WO2020247518
(87)【国際公開日】2020-12-10
【審査請求日】2021-06-28
(32)【優先日】2019-06-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-07-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-09-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/130661(WO,A1)
【文献】国際公開第2020/116961(WO,A1)
【文献】Moonmo Koo et al.,CE6: Reduced Secondary Transform (RST) (test 6.5.1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0292,13th Meeting: Marrakech, MA,2019年01月,pp.1-14
【文献】Moonmo Koo, Jaehyun Lim, Mehdi Salehifar, and Seung Hwan Kim,CE6: Reduced Secondary Transform (RST) (CE6-3.1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0193,14th Meeting: Geneva, CH,2019年03月,pp.1-19
【文献】Jianle Chen, Yan Ye, and Seung Hwan Kim,Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N1002-v1,14th Meeting: Geneva, CH,2019年05月,pp.1-8,46-49
【文献】Man-Shu Chiang, et al.,CE6-related: Simplifications for LFNST,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0292-v3,15th Meeting: Gothenburg, SE,2019年07月,pp.1-7
【文献】Man-Shu Chiang, et al.,CE6-related: Latency reduction for LFNST signalling,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0293-v5,15th Meeting: Gothenburg, SE,2019年07月,pp.1-11
【文献】Xin Zhao, Xiang Li, and Shan Liu,CE6-related: Unified LFNST using block size independent kernel,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0539-v2,15th Meeting: Gothenburg, SE,2019年07月,pp.1-13
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
デコーダにおけるビデオ復号化方法であって、
コーディングされたビデオ・シーケンスの一部である現在のピクチャにおける現在のブロックに対する予測情報を復号化するステップであって、前記予測情報は、前記現在のブロックに対する第1イントラ予測モード
とセカンダリ変換インデックスとを示す、ステップと、
前記第1イントラ予測モードと前
記セカンダリ変換インデックスとに基づいて、セカンダリ変換コアを決定するステップと、
前記セカンダリ変換コアと前記現在のブロックの第1変換係数ブロックとに基づいて、プライマリ変換係数ブロックを生成するステップであって、前記第1変換係数ブロックは前記予測情報から逆量子化され、前記第1変換係数ブロックのサイズは前記セカンダリ変換コアのサイズより小さい、ステップと、
1次元クロス・コンポーネント線形モデルのタイプに基づいて、前記プライマリ変換係数ブロックを転置するかどうかを決定するステップと、
前記プライマリ変換係数ブロックは転置されるべきである旨の決定に基づいて、前記プライマリ変換係数ブロックを転置するステップと、
転置された前記プライマリ変換係数ブロックに基づいて、前記現在のブロックを再構成するステップと
を含む方法。
【請求項2】
各々の座標位置において0である値とともに第2変換係数ブロックを生成するステップと、
前記第2変換係数ブロックの座標位置における値を、前記第1変換係数ブロックの同じ座標位置における値に基づいて決定するステップであって、前記プライマリ変換係数ブロックを生成する前記ステップは、前
記セカンダリ変換コアと前記第2変換係数ブロックとに基づいて、前記プライマリ変換係数ブロックを生成するステップを含む、ステップと
を更に含む請求項1に記載の方法。
【請求項3】
前記プライマリ変換係数ブロックを生成する前記ステップは、前
記セカンダリ変換コアの一部分を、前記第1変換係数ブロックに適用するステップを含む、請求項1又は2に記載の方法。
【請求項4】
前記第1変換係数ブロックのシンタックス要素は、前
記セカンダリ変換インデックスを示すシンタックス要素を含む、請求項1ないし
3のうちの何れか1項に記載の方法。
【請求項5】
前記第1変換係数ブロックの最後の非ゼロ変換係数の後であって、前記第1変換係数ブロックの係数コーディングに関連する1つ以上の前記シンタックス要素の前に、前
記セカンダリ変換インデックスは、シグナリングされる、請求項
4に記載の方法。
【請求項6】
前記シンタックス要素のうちの1つがシグナリングされるかどうかは、前
記セカンダリ変換インデックスと、前記シンタックス要素のうちの前記1つに関連する変換係数とに依存する、請求項
4に記載の方法。
【請求項7】
前記第1変換係数ブロックの最後の非ゼロ変換係数の後であって、前記第1変換係数ブロックの係数コーディングに関連する1つ以上のシンタックス要素の前に、前記現在のブロックに対する1つ以上のプライマリ変換コアを示すシンタックス要素は、シグナリングされる、請求項1ないし
6のうちの何れか1項に記載の方法。
【請求項8】
前
記セカンダリ変換コアの形状に基づいて、前
記セカンダリ変換インデックスのエントロピー・コーディングに使用されるコンテキストを決定するステップ
を更に含む請求項1ないし
7のうちの何れか1項に記載の方法。
【請求項9】
前記セカンダリ変換コアを決定する前記ステップは、
前
記セカンダリ変換インデックスと、前記第1イントラ予測モードのモード番号と、前記第1イントラ予測モードに隣接する第2イントラ予測モードとに基づいて、前記セカンダリ変換コアを決定するステップ
を含む、請求項1ないし
8のうちの何れか1項に記載の方法。
【請求項10】
前記第1イントラ予測モードのモード番号に基づいて、前
記セカンダリ変換インデックスのエントロピー・コーディングに使用されるコンテキストを決定するステップ
を更に含む請求項1ないし
9のうちの何れか1項に記載の方法。
【請求項11】
処理回路を含む装置であって、前記処理回路は
コーディングされたビデオ・シーケンスの一部である現在のピクチャにおける現在のブロックに対する予測情報を復号化するステップであって、前記予測情報は、前記現在のブロックに対する第1イントラ予測モード
とセカンダリ変換インデックスとを示す、ステップと、
前記第1イントラ予測モードと前
記セカンダリ変換インデックスとに基づいて、セカンダリ変換コアを決定するステップと、
前記セカンダリ変換コアと前記現在のブロックの第1変換係数ブロックとに基づいて、プライマリ変換係数ブロックを生成するステップであって、前記第1変換係数ブロックは前記予測情報から逆量子化され、前記第1変換係数ブロックのサイズは前記セカンダリ変換コアのサイズより小さい、ステップと、
1次元クロス・コンポーネント線形モデルのタイプに基づいて、前記プライマリ変換係数ブロックを転置するかどうかを決定するステップと、
前記プライマリ変換係数ブロックは転置されるべきである旨の決定に基づいて、前記プライマリ変換係数ブロックを転置するステップと、
転置された前記プライマリ変換係数ブロックに基づいて、前記現在のブロックを再構成するステップと
を行うように構成されている、装置。
【請求項12】
前記処理回路は、
各々の座標位置において0である値とともに第2変換係数ブロックを生成するステップと、
前記第2変換係数ブロックの座標位置における値を、前記第1変換係数ブロックの同じ座標位置における値に基づいて決定するステップであって、前記プライマリ変換係数ブロックを生成する前記ステップは、前
記セカンダリ変換コアと前記第2変換係数ブロックとに基づいて、前記プライマリ変換係数ブロックを生成するステップを含む、ステップと
を行うように更に構成されている、請求項
11に記載の装置。
【請求項13】
前
記セカンダリ変換コアの一部分を、前記第1変換係数ブロックに適用するステップ
を行うように更に構成されている、請求項
11又は
12に記載の装置。
【請求項14】
前記第1変換係数ブロックのシンタックス要素は、前
記セカンダリ変換インデックスを示すシンタックス要素を含む、請求項
11ないし
13のうちの何れか1項に記載の装置。
【請求項15】
前記第1変換係数ブロックの最後の非ゼロ変換係数の後であって、前記第1変換係数ブロックの係数コーディングに関連する1つ以上のシンタックス要素の前に、前記現在のブロックに対する1つ以上のプライマリ変換コアを示すシンタックス要素は、シグナリングされる、請求項
11ないし
14のうちの何れか1項に記載の装置。
【請求項16】
前記処理回路は、
前
記セカンダリ変換コアの形状に基づいて、前
記セカンダリ変換インデックスのエントロピー・コーディングに使用されるコンテキストを決定するステップ
を行うように更に構成されている、請求項
11ないし
15のうちの何れか1項に記載の装置。
【請求項17】
前記処理回路は、
前
記セカンダリ変換インデックスと、前記第1イントラ予測モードのモード番号と、前記第1イントラ予測モードに隣接する第2イントラ予測モードとに基づいて、前記セカンダリ変換コアを決定するステップ
を行うように更に構成されている、請求項
11ないし
16のうちの何れか1項に記載の装置。
【請求項18】
少なくとも1つのプロセッサに、
コーディングされたビデオ・シーケンスの一部である現在のピクチャにおける現在のブロックに対する予測情報を復号化するステップであって、前記予測情報は、前記現在のブロックに対する第1イントラ予測モード
とセカンダリ変換インデックスとを示す、ステップと、
前記第1イントラ予測モードと前
記セカンダリ変換インデックスとに基づいて、セカンダリ変換コアを決定するステップと、
前記セカンダリ変換コアと前記現在のブロックの第1変換係数ブロックとに基づいて、プライマリ変換係数ブロックを生成するステップであって、前記第1変換係数ブロックは前記予測情報から逆量子化され、前記第1変換係数ブロックのサイズは前記セカンダリ変換コアのサイズより小さい、ステップと、
1次元クロス・コンポーネント線形モデルのタイプに基づいて、前記プライマリ変換係数ブロックを転置するかどうかを決定するステップと、
前記プライマリ変換係数ブロックは転置されるべきである旨の決定に基づいて、前記プライマリ変換係数ブロックを転置するステップと、
転置された前記プライマリ変換係数ブロックに基づいて、前記現在のブロックを再構成するステップと
を実行させる、コンピュータ・プログラム。
【請求項19】
エンコーダにおけるビデオ符号化方法であって、
ビデオ・シーケンスの一部であるピクチャにおけるブロックに対する予測情報を決定し、前記予測情報を含むコーディングされたビデオ・シーケンスをデコーダに送信するステップ
を含み、前記予測情報は、前記ビデオ・シーケンスの一部である現在のピクチャにおける現在のブロックに対する第1イントラ予測モード
とセカンダリ変換インデックスとを示し、
前記第1イントラ予測モードと前
記セカンダリ変換インデックスとに基づいて、セカンダリ変換コアを決定し、前記セカンダリ変換コアと前記現在のブロックの第1変換係数ブロックとに基づいて、プライマリ変換係数ブロックを生成し、
1次元クロス・コンポーネント線形モデルのタイプに基づいて、前記プライマリ変換係数ブロックを転置するかどうかを決定し、前記プライマリ変換係数ブロックは転置されるべきである旨の決定に基づいて、前記プライマリ変換係数ブロックを転置し、転置された前記プライマリ変換係数ブロックに基づいて、前記現在のブロックを再構成することが可能であり、
前記第1変換係数ブロックは前記予測情報から逆量子化され、前記第1変換係数ブロックのサイズは前記セカンダリ変換コアのサイズより小さい、方法。
【発明の詳細な説明】
【背景技術】
【0001】
参照による援用
本出願は、2020年6月1日付で出願された米国特許出願第16/889,738号「ビデオ・コーディングのための方法及び装置」に対する優先権の利益を主張しており、その出願は2019年6月4日付で出願された米国仮出願第62/857,125号「統一されたセカンダリ変換」、2019年7月23日付で出願された米国仮出願第62/877,727号「更に統一されたセカンダリ変換」、及び2019年9月6日付で出願された米国仮出願第62/897,226号「効率的なエンコーダ・オプションを用いたセカンダリ変換設計」に対する優先権の利益を主張している。先行する出願の開示全体は参照により全体的に本願に組み込まれる。
【0002】
技術分野
本開示は一般にビデオ・コーディングに関連する実施形態を説明している。
【0003】
背景
本願で行われる背景の説明は、本開示の状況を一般的に提示するためのものである。現在の発明者の名の下になされる仕事は、その仕事がこの背景のセクションだけでなく、別の方法で出願時における先行技術としての適格性を付与されない記述の態様で説明される範囲において、本開示に対する先行技術として、明示的にも暗示的にも認められていない。
【0004】
ビデオ・コーディング及びデコーディングは、動き補償を伴うインター・ピクチャ予測を用いて実行されることが可能である。非圧縮化されたデジタル・ビデオは一連のピクチャを含むことが可能であり、各ピクチャは、例えば1920×1080のルミナンス・サンプル及び関連するクロミナンス・サンプルの空間次元を有する。一連のピクチャは、例えば60ピクチャ/秒、即ち60Hzの固定された又は可変のピクチャ・レート(非公式に、フレーム・レートとして知られている)を有することが可能である。非圧縮化されたビデオは、かなりのビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレーム・レートで1920x1080のルミナンス・サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオ・コーディング及びデコーディングの目的の1つは、圧縮による入力ビデオ信号の冗長性の低減であるということができる。圧縮は、場合によっては、2桁以上の大きさで、前述の帯域幅又は記憶スペース要件を低減するのに役立つ可能性がある。ロスレス及び非ロスレス圧縮の両方、並びにそれらの組み合わせを用いることができる。ロスレス圧縮とは、元の信号の正確なコピーが、圧縮された元の信号から再構成することができる技術をいう。非ロスレス圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪は、再構成された信号が、意図された用途にとって有用である程度に十分に小さい。ビデオの場合、非ロスレス圧縮が広く用いられている。許容される歪の量は、用途に依存し、例えば特定の消費者ストリーミング・アプリケーションのユーザーは、テレビ配信アプリケーションのユーザーよりも高い歪に耐え得る可能性がある。達成可能な圧縮比は、より高い許容可能な/耐え得る歪はより高い圧縮比をもたらし得ることを反映することが可能である。
【0006】
ビデオ・エンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピー・コーディングを含む幾つもの広範なカテゴリのうちの技術を利用することができる。
【0007】
ビデオ・コーデック技術は、イントラ・コーディングとして知られる技術を含むことが可能である。イントラ・コーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。幾つかのビデオ・コーデックでは、ピクチャは空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラ・モードでコーディングされる場合、そのピクチャはイントラ・ピクチャであるとすることが可能である。イントラ・ピクチャ及び独立なデコーダ・リフレッシュ・ピクチャのようなそれらの派生物は、デコーダ状態をリセットするために使用することが可能であり、従って、コーディングされたビデオ・ビットストリーム及びビデオセッションにおける第1ピクチャとして、又は静止画像として使用することができる。イントラ・ブロックのサンプルは、変換の作用を受けることが可能であり、変換係数は、エントロピー・コーディングの前に量子化されることが可能である。イントラ予測は、変換前のドメインにおけるサンプル値を最小化する技術である可能性がある。場合によっては、変換後のDC値が小さくほど、及びAC係数が小さいほど、エントロピー・コーディング後にブロックを表すために、所与の量子化ステップ・サイズで必要とされるビット数は少なくなる。
【0008】
例えばMPEG-2世代のコーディング技術などで知られているような伝統的なイントラ・コーディングは、イントラ予測を使用していない。しかしながら、幾つかのより新しいビデオ圧縮技術は、例えば、空間的に隣接する、及びデコード順で先行する、データのブロックを符号化/復号化する間に得られる周囲のサンプル・データ及び/又はメタデータから試みる技術を含む。このような技術は、以後「イントラ予測」技術と呼ばれる。少なくとも幾つかのケースでは、イントラ予測は、参照ピクチャからではなく、再構成中の現在のピクチャからの、参照データのみを使用することに留意を要する。
【0009】
多くの様々な形式のイントラ予測が存在する可能性がある。1つより多くのそのような技術が所与のビデオ・コーディング技術で使用されることが可能である場合、使用されるその技術は、イントラ予測モードでコーディングされることが可能である。ある場合には、モードは、サブモード及び/又はパラメータを有することが可能であり、それらは、個別にコーディングされることが可能であり、又はモード・コードワードに含めることが可能である。所与のモード/サブモード/パラメータの組み合わせに使用するコードワードは、イントラ予測によるコーディング効率利得に影響を与える可能性があり、従って、コードワードをビットストリームに変換するために使用されるエントロピー・コーディング技術にも同様に影響を与える可能性がある。
【0010】
ある種のイントラ予測モードがH.264で導入され、H.265で改良され、共同探索モデル(JEM)、多用途ビデオ・コーディング(VVC)、ベンチマーク・セット(BMS)のような新しいコーディング技術で更に改良された。既に利用可能なサンプルに属する隣接するサンプル値を使用して、予測子ブロックを形成することが可能である。隣接するサンプルのサンプル値は、ある方向に従って、予測子ブロックにコピーされる。使用中の方向に対する参照はビットストリームでコーディングされることが可能であり、或いはそれ自身は予測されることが可能である。
【0011】
図1Aを参照すると、右下に示されているものは、(35個のイントラ・モードのうちの33個の角度モードに対応する)H.265の33個の可能な予測子の方向から分かる9個の予測子方向のサブセットである。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を示す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で、1サンプル又は複数サンプルから右上の方へ、予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度で、1サンプル又は複数サンプルからサンプル(101)の左下の方へ、予測されることを示す。
【0012】
図1Aを更に参照すると、左上に4×4サンプルの正方形ブロック(104)が示されている(太い破線で示されている)。正方形ブロック(104)は16個のサンプルを含み、各サンプルは「S」と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでラベル付けされている。例えば、サンプルS21は、Y次元で2番目のサンプル(上から)であって、X次元で1番目のサンプル(左から)である。同様に、サンプルS44は、Y及びX次元の両方においてブロック(104)内で4番目のサンプルである。ブロックは4×4サンプルのサイズであるので、S44は右下にある。更に、同様の番号付け方式に従った参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(例えば、行インデックス)と、X位置(列インデックス)とでラベル付けされている。H.264とH.265の両方において、予測サンプルは再構成中のブロックに隣接しており;従って、負の値を使用する必要はない。
【0013】
シグナリングされる予測方向に応じて、隣接するサンプルから参照サンプル値をコピーすることによって、イントラ・ピクチャ予測を行うことができる。例えば、コーディングされたビデオ・ビットストリームが、このブロックに関し、矢印(102)に一致する予測方向を示すシグナリングを含んでいると仮定する。即ち、サンプルは、水平から45度の角度で、1つの予測サンプル又は複数のサンプルから右上の方へ予測される。その場合、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。そして、サンプルS44は、参照サンプルR08から予測される。
【0014】
場合によっては、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間によって組み合わせられてもよい;特に、方向が45度で均等に割り切れない場合にはなおさらである。
【0015】
可能な方向の数は、ビデオ・コーディング技術が発達するにつれて増えてきた。H.264(2003年)では、9つの異なる方向を表すことができた。これは、H.265(2013年)では33に増加し、本開示の時点におけるJEM/VVC/BMSは、最大93個の方向をサポートすることができる。最も可能性の高い方向を同定するために実験が行われ、エントロピー・コーディングにおける特定の技術が、より可能性の低い方向に対して特定のペナルティを受け入れながら、少ないビット数で、それらの可能性のある方向を表現するために使用される。更に、方向それ自体は、隣接する既に復号化されたブロックで使用された隣接する方向から、しばしば予測することが可能である。
【0016】
図1Bは、経時的に増加する予測方向の数を示すために、JEMに従う65個のイントラ予測方向を示す概略図(105)を示す。
【0017】
方向を表すコーディングされたビデオ・ビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオ・コーディング技術ごとに異なる可能性があり;例えば、予測方向の単純な直接的なマッピングから、イントラ予測モード、コードワード、最確モードを含む複雑な適応スキーム、及び類似の技術まで、多様である可能性がある。しかしながら、どのような場合でも、ビデオ・コンテンツにおいて、特定の他の方向よりも統計的に起こりにくい特定の方向が存在する可能性がある。ビデオ圧縮のゴールは、冗長性の低減であるので、これらの起こりそうにない方向は、良好に動作するビデオ・コーディング技術では、より可能性の高い方向よりも多いビット数で表現されるであろう。
【0018】
動き補償は、非ロスレス圧縮技術である可能性があり、動きベクトル(以下、MVとする)で示される方向に空間的にシフトした後に、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプル・データのブロックが、新たに再構成されるピクチャ又はピクチャの一部分の予測に使用される技術に関連する可能性がある。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じである可能性がある。MVは、2つの次元X及びY、又は3次元を有する可能性があり、第3の次元は、使用中の参照ピクチャの指示である(後者は、間接的に、時間次元であるとすることが可能である)。
【0019】
一部のビデオ圧縮技術では、サンプル・データの特定のエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプル・データの他のエリアに関連するものであって復号化の順番でそのMVに先行するものから、予測することが可能である。このようにすると、MVをコーディングするために必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を高めることができる。MV予測は、例えば、カメラ(ナチュラル・ビデオとして知られる)から導出される入力ビデオ信号をコーディングする際に、単一のMVが適用可能であるエリアよりも大きなエリアが、同様な方向に移動する統計的な尤度が存在し、従って場合によっては、隣接するエリアのMVから導出される同様な動きベクトルを用いて予測することが可能であるので、効果的に機能する可能性がある。これは、与えられたエリアに対して、周囲のMVから予測されるMVに類似する又は同一であると見出されるMVをもたらし、それは、エントロピー・コーディングの後に、MVを直接的にコーディングする場合に使用されるものよりも、より少ないビット数で表現されることが可能である。場合によっては、MV予測は、元の信号(即ち、サンプル・ストリーム)から導出された信号(即ち、MV)のロスレス圧縮の例である可能性がある。他の場合に、MV予測それ自体が、例えば幾つかの周囲のMVから予測子を計算する際に、丸め誤差に起因して非ロスレスである可能性がある。
【0020】
様々なMV予測メカニズムは、H.265/HEVC(ITU-T Rec.H.265,“High Efficiency Video Coding”,December 2016)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本願で説明されるものは、今後「空間マージ」と呼ばれる技術である。
【0021】
図1を参照すると、現在のブロック(111)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって発見されているサンプルを含む。そのMVを直接的にコーディングする代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えばA0、A1、及びB0、B1、B2と示される5つの隣接するブロック(それぞれ112から116)の何れかに関連付けられたMVを使用して、(復号化の順序で)最新の参照ピクチャから、導出されることが可能である。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の態様は、ビデオ符号化/復号化のための方法及び装置を提供する。幾つかの例において、ビデオ復号化のための装置は処理回路を含む。
【0023】
本開示の態様は、デコーダにおけるビデオ復号化のための方法が提供される。方法において、現在のブロックの予測情報が復号化される。現在のブロックは、コーディングされたビデオ・シーケンスの一部である現在のピクチャの中にある。予測情報は、現在のブロックに対する第1イントラ予測モードと第1セカンダリ変換インデックスとを示す。セカンダリ変換コアは、第1イントラ予測モードと第1セカンダリ変換インデックスとに基づいて決定される。プライマリ変換係数ブロックは、セカンダリ変換コアと現在のブロックの第1変換係数ブロックとに基づいて生成される。第1変換係数ブロックは予測情報から逆量子化される。第1変換係数ブロックのサイズはセカンダリ変換コアのサイズより小さい。現在のブロックはプライマリ変換係数ブロックに基づいて再構成される。
【0024】
実施形態において、第2変換係数ブロックが生成される。第2変換係数の各々の座標位置における値は0である。第2変換係数ブロックの座標位置における値は、第1変換係数ブロックの同じ座標位置における値に基づいて決定される。プライマリ変換係数ブロックは、第1セカンダリ変換コアと第2変換係数ブロックとに基づいて生成される。
【0025】
実施形態において、第1セカンダリ変換コアの一部分は、第1変換係数ブロックに適用される。
【0026】
実施形態において、プライマリ変換係数ブロックを転置するかどうかは、あるタイプの1次元クロス・コンポーネント線形モデルに基づいて決定される。プライマリ変換係数ブロックは転置されるべきである旨の決定に基づいて、プライマリ変換係数ブロックは転置される。
【0027】
実施形態において、第1変換係数ブロックのシンタックス要素は、第1セカンダリ変換インデックスを示すシンタックス要素を含む。
【0028】
実施形態において、第1変換係数ブロックの最後の非ゼロ変換係数の後であって、第1変換係数ブロックの係数コーディングに関連する1つ以上のシンタックス要素の前に、第1セカンダリ変換インデックスがシグナリングされる。
【0029】
実施形態において、シンタックス要素のうちの1つがシグナリングされるかどうかは、第1セカンダリ変換インデックスと、シンタックス要素のうちの1つに関連する変換係数とに依存する。
【0030】
実施形態において、第1変換係数ブロックの最後の非ゼロ変換係数の後であって、第1変換係数ブロックの係数コーディングに関連する1つ以上のシンタックス要素の前に、現在のブロックに対する1つ以上のプライマリ変換コアを示すシンタックス要素がシグナリングされる。
【0031】
実施形態において、第1セカンダリ変換インデックスのエントロピー・コーディングに使用されるコンテキストは、第1セカンダリ変換コアの形状に基づいて決定される。
【0032】
実施形態において、セカンダリ変換コアは、第1セカンダリ変換インデックスと、第1イントラ予測モードのモード番号と、第1イントラ予測モードに隣接する第2イントラ予測モードとに基づいて決定される。
【0033】
実施形態において、第1セカンダリ変換インデックスのエントロピー・コーディングに使用されるコンテキストは、第1イントラ予測モードのモード番号に基づいて決定される。
【0034】
本開示の態様は、ビデオ復号化のための方法のうちの任意の1つ又は組み合わせを実行するように構成された装置を提供する。実施形態において、装置は、コーディングされたビデオ・シーケンスの一部である現在のピクチャにおける現在のブロックに対する予測情報を復号化する処理回路を含む。予測情報は、現在のブロックに対する第1イントラ予測モードと第1セカンダリ変換インデックスとを示す。処理回路は、第1イントラ予測モードと第1セカンダリ変換インデックスとに基づいて、セカンダリ変換コアを決定する。処理回路は、セカンダリ変換コアと現在のブロックの第1変換係数ブロックとに基づいて、プライマリ変換係数ブロックを生成する。第1変換係数ブロックは予測情報から逆量子化される。第1変換係数ブロックのサイズはセカンダリ変換コアのサイズより小さい。処理回路は、プライマリ変換係数ブロックに基づいて、現在のブロックを再構成する。
【0035】
本開示の態様はまた、ビデオ復号化のためにコンピュータによって実行された場合に、ビデオ復号化のための方法のうちの任意の1つ又は組み合わせをコンピュータに実行させる命令を記憶する非一時的なコンピュータ読み取り可能な媒体を提供する。
【図面の簡単な説明】
【0036】
開示される対象事項の更なる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付の図面から更に明らかになるであろう。
【0037】
【
図1A】イントラ予測モードの例示的なサブセットの概略図を示す。
【0038】
【0039】
【
図1C】一例における現在のブロック及びその周囲の空間マージ候補の概略図を示す。
【0040】
【
図2】実施形態による通信システムの簡略化されたブロック図の概略図を示す。
【0041】
【
図3】実施形態による通信システムの簡略化されたブロック図の概略図を示す。
【0042】
【
図4】実施形態によるデコーダの簡略化されたブロック図の概略図を示す。
【0043】
【
図5】実施形態によるエンコーダの簡略化されたブロック図の概略図を示す。
【0044】
【
図6】実施形態によるエンコーダのブロック図を示す。
【0045】
【
図7】別の実施形態によるデコーダのブロック図を示す。
【0046】
【
図8A】幾つかの例における4×4変換行列を示す。
【
図8B】幾つかの例における8×8変換行列を示す。
【
図8C】幾つかの例における16×16変換行列を示す。
【
図8D】幾つかの例における32×32変換行列を示す。
【0047】
【
図9】本開示の実施形態による例示的な16×64変換コアを示す。
【0048】
【
図10】本開示の実施形態による例示的な16×48変換コアを示す。
【0049】
【
図11】幾つかの例における例示的な縮小サイズ変換(RST)行列を示す。
【0050】
【
図12A】幾つかの例における単純化された縮小変換を示す。
【
図12B】幾つかの例における単純化された縮小逆変換を示す。
【0051】
【
図13A】幾つかの例におけるRST8x8の例示的な代替例を示す。
【
図13B】幾つかの例におけるRST8x8の例示的な代替例を示す。
【0052】
【
図14】本開示の実施形態による例示的な統一セカンダリ変換を示す。
【0053】
【
図15】本開示の実施形態による例示的な統一セカンダリ変換を示す。
【0054】
【
図16】実施形態による例示的なプロセスの概略を示すフローチャートを示す。
【0055】
【
図17】実施形態によるコンピュータ・システムの概略図を示す。
【発明を実施するための形態】
【0056】
本開示は、統一セカンダリ変換に関する実施形態を含む。実施形態は、セカンダリ変換プロセスを改善するための方法、装置、及び非一時的なコンピュータ読み取り可能な記憶媒体を含む。更に、ブロックは、予測ブロック、コーディング・ブロック、又はコーディング・ユニットを指す可能性がある。
【0057】
I.ビデオ・エンコーダ及びデコーダ
【0058】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1ペアの端末デバイス(210)及び(220)を含む。
図2の例では、第1ペアの端末デバイス(210)及び(220)は、データの一方向送信を行う。例えば、端末デバイス(210)は、ネットワーク(250)を介する他の端末デバイス(220)への伝送のために、ビデオ・データ(例えば、端末デバイス(210)によって捕捉されたビデオ・ピクチャのストリーム)をコーディングすることができる。符号化されたビデオ・データは、1つ以上のコーディングされたビデオ・ビットストリームの形態で送信することができる。端末デバイス(220)は、コーディングされたビデオ・データをネットワーク(250)から受信し、コーディングされたビデオ・データを復号化して、ビデオ・ピクチャを復元し、復元されたビデオ・データに従ってビデオ・ピクチャを表示することができる。一方向性データ伝送は、媒体サービング・アプリケーション等において一般的なものであってもよい。
【0059】
別の例では、通信システム(200)は、例えば、ビデオ・カンファレンス中に発生する可能性があるコーディングされたビデオ・データの双方向伝送を行う第2ペアの端末デバイス(230)及び(240)を含む。データの双方向伝送に関し、例えば、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介して端末デバイス(230)及び(240)の他方の端末デバイスへ伝送するために、ビデオ・データ(例えば、端末デバイスによって捕捉されるビデオ・ピクチャのストリーム)をコーディングすることができる。端末デバイス(230)及び(240)の各端末デバイスもまた、端末デバイス(230)及び(240)の他方の端末デバイスによって送信されたコーディングされたビデオ・データを受信することが可能であり、コーディングされたビデオ・データを復号化してビデオ・ピクチャを復元することが可能であり、復元されたビデオ・データに従って、アクセス可能なディスプレイ・デバイスでビデオ・ピクチャを表示することが可能である。
【0060】
図2の例では、端末デバイス(210)、(220)、(230)、(240)は、サーバー、パーソナル・コンピュータ、スマートフォンとして示されているが、本開示の原理はそのように限定されない。本開示の実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤ、及び/又は専用のビデオ・カンファレンス装置のアプリケーションを見出している。ネットワーク(250)は、例えば有線(配線された)及び/又は無線通信ネットワークを含む、コーディングされたビデオ・データを端末デバイス(210)、(220)、(230)、及び(240)の間で運ぶネットワークを幾つでも表現してよい。通信ネットワーク(250)は、回線交換及び/又はパケット交換型のチャネルでデータを交換することができる。代表的なネットワークは、テレコミュニケーション・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、及び/又はインターネットを含む。本開示の目的に関し、ネットワーク(250)のアーキテクチャ及びトポロジーは、以下において説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0061】
図3は、開示される対象事項の適用例として、ストリーミング環境におけるビデオ・エンコーダ及びビデオ・デコーダの配置を示す。開示される対象事項は、例えば、ビデオ・カンファレンス、デジタルTV、圧縮されたビデオのデジタル・メディア(CD、DVD、メモリ・スティック等を含む)への記憶などを含む、他のビデオの利用が可能なアプリケーションにも等しく適用することが可能である。
【0062】
ストリーミング・システムは、ビデオ・ソース(301)、例えばデジタル・カメラを含むことが可能であり、例えば非圧縮のビデオ・ピクチャ(302)のストリームを生成することが可能なキャプチャ・サブシステム(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の状況で使用されてもよい。
【0063】
電子デバイス(320)及び(330)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオ・デコーダ(不図示)を含むことが可能であり、電子デバイス(330)は、ビデオ・エンコーダ(不図示)も含むことも可能である。
【0064】
図4は本開示の一実施形態によるビデオ・デコーダ(410)のブロック図を示す。ビデオ・デコーダ(410)は、電子デバイス(430)に含まれることが可能である。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことが可能である。ビデオ・デコーダ(410)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用することができる。
【0065】
受信機(431)は、ビデオ・デコーダ(410)によって復号化されるべき1つ以上のコーディングされたビデオ・シーケンスを受信することが可能であり;同じ又は別の実施形態において、各々のコーディングされたビデオ・シーケンスの復号化が、他のコーディングされたビデオ・シーケンスから独立している場合には、一度に1つのコーディングされたビデオ・シーケンスを受信することが可能である。コーディングされたビデオ・シーケンスは、チャネル(401)から受信することが可能であり、このチャネルは、符号化されたビデオ・データを記憶するストレージ・デバイスへのハードウェア/ソフトウェア・リンクであってもよい。受信機(431)は、符号化されたビデオ・データを、他のデータ、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリームとともに受信することが可能であり、これらのデータは、それぞれのエンティティ(不図示)を使用して転送されることが可能である。受信機(431)は、コーディングされたビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタに対処するために、バッファ・メモリ(415)は、受信機(431)とエントロピー・デコーダ/パーサー(420)(以後「パーサー(420)」と言及する)との間に結合されてもよい。特定のアプリケーションでは、バッファ・メモリ(415)はビデオ・デコーダ(410)の一部である。他の場合において、それはビデオ・デコーダ(410)の外側にある可能性がある(不図示)。更に別の例では、例えばネットワーク・ジッタに対処するために、ビデオ・デコーダ(410)の外側にバッファ・メモリ(不図示)が、更には、例えば再生タイミングを取り扱うためにビデオ・デコーダ(410)の内側に別のバッファ・メモリ(415)が、存在することが可能である。受信機(431)が、十分な帯域幅及び制御可能性を有するストア/フォワード・デバイスから、又は同期ネットワークから、データを受信している場合、バッファ・メモリ(415)は不要である可能性があるか、又は小さくすることが可能である。インターネットのようなベスト・エフォート・パケット・ネットワークでの使用のために、バッファ・メモリ(415)が必要とされるかもしれず、それは比較的大きい可能性があり、有利なことに適応的なサイズであるとすることが可能であり、ビデオ・デコーダ(410)の外側のオペレーティング・システム又は類似の要素(不図示)において少なくとも部分的に実装されてもよい。
【0066】
ビデオ・デコーダ(410)は、コーディングされたビデオ・シーケンスからシンボル(421)を再構成するためにパーサー(420)を含むことができる。これらのシンボルのカテゴリは、ビデオ・デコーダ(410)の動作を管理するために使用される情報、及び潜在的には、
図4に示されているように、電子デバイス(430)の不可欠な部分ではないが電子デバイス(430)に結合されることが可能なレンダリング・デバイス(412)(例えば、ディスプレイ・スクリーン)のようなレンダリング・デバイスを制御するための情報を含む。レンダリング・デバイスの制御情報は、サプルメンタル・エンハンスメント情報(SEIメッセージ)又はビデオ・ユーザビリティ情報(VUI)パラメータ・セット・フラグメント(不図示)の形態におけるものであってもよい。パーサー(420)は、受信されるコーディングされたビデオ・シーケンスを解析/エントロピー復号化することができる。コーディングされるビデオ・シーケンスのコーディングは、ビデオ・コーディング技術又は規格に従うことが可能であり、可変長コーディング、ハフマン・コーディング、コンテキストの影響を伴う又は伴わない算術コーディング等を含む種々の原理に従うことが可能である。パーサー(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオ・デコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループ・パラメータのセットを、コーディングされたビデオ・シーケンスから抽出することができる。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディング・ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことが可能である。パーサー(420)はまた、変換係数、量子化パラメータ値、動きベクトル等のコーディングされたビデオ・シーケンス情報から抽出することも可能である。
【0067】
パーサー(420)は、シンボル(421)を生成するために、バッファ・メモリ(415)から受信したビデオ・シーケンスに対してエントロピー復号化/解析処理を実行することが可能である。
【0068】
シンボル(421)の再構成は、コーディングされたビデオ・ピクチャ又はその部分のタイプ(インター及びイントラ・ピクチャ、インター及びイントラ・ブロック)及び他の要因に応じて、複数の異なるユニットを含むことが可能である。どのユニットがどのように包含されるかは、コーディングされたビデオ・シーケンスからパーサー(420)によって解析されたサブグループ制御情報によって制御されることが可能である。パーサー(420)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確性のために描かれていない。
【0069】
ビデオ・デコーダ(410)は、既に述べた機能ブロックを超えて更に、以下に説明するような複数の機能ユニットに概念的に細分されることが可能である。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることが可能である。しかしながら、開示される対象事項を説明する目的に関し、以下の機能ユニットへの概念的な細分は適切なことである。
【0070】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数だけでなく制御情報(使用する変換、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む)も、パーサー(420)からシンボル(421)として受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されることが可能なサンプル値を含むブロックを出力することが可能である。
【0071】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ・コーディングされたブロック:即ち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関連する可能性がある。このような予測情報は、イントラ・ピクチャ予測ユニット(452)によって提供することが可能である。場合によっては、イントラ・ピクチャ予測ユニット(452)は、現在のピクチャバッファ(458)から取り出された既に再構成された周囲の情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。現在のピクチャ・バッファ(458)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供されるような出力サンプル情報に加える。
【0072】
それ以外の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インター・コーディングされた動き補償される可能性のあるブロックに関連する可能性がある。このような場合において、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために、参照ピクチャ・メモリ(457)にアクセスすることが可能である。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力に加えられ(この場合は、残差サンプル又は残差信号と呼ばれる)、出力サンプル情報を生成する。動き補償予測ユニット(453)が予測サンプルをフェッチする元である参照ピクチャ・メモリ(457)内のアドレスは、例えばX、Y、及び参照ピクチャ成分を有することが可能であるシンボル(421)の形態で、動き補償予測ユニット(453)にとって利用可能な動きベクトルによって制御されることが可能である。また、動き補償は、サブ・サンプルの正確な動きベクトルが使用される場合に、参照ピクチャ・メモリ(457)から取り出されるようなサンプル値の補間、動きベクトル予測メカニズム等を含むことが可能である。
【0073】
アグリゲータ(455)の出力サンプルは、ループ・フィルタ・ユニット(456)内の様々なループ・フィルタリング技術の影響を受けることが可能である。ビデオ圧縮技術は、コーディングされたビデオ・シーケンス(コーディングされたビデオ・ビットストリームとも呼ばれる)に含まれ、且つパーサー(420)からのシンボル(421)としてループ・フィルタ・ユニット(456)にとって利用可能にされるパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオ・シーケンスの(復号化の順番で)以前の部分の復号化の間に取得されたメタ情報に応答することが可能であるとともに、以前に再構成されたループ・フィルタリングされたサンプル値にも応答することが可能である、ループ内フィルタ技術を含むことが可能である。
【0074】
ループ・フィルタ・ユニット(456)の出力は、レンダリング・デバイス(412)に出力できるだけでなく、将来のインター・ピクチャ予測に使用するために参照ピクチャ・メモリ(457)に格納することも可能なサンプル・ストリームであるとすることが可能である。
【0075】
所定のコーディングされたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用することが可能である。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサー(420)によって)参照ピクチャとして識別されると、現在のピクチャ・バッファ(458)は参照ピクチャ・メモリ(457)の一部となることが可能であり、新しい現在のピクチャ・バッファは、以後のコーディングされたピクチャの再構成を開始する前に、再割り当てされることが可能である。
【0076】
ビデオ・デコーダ(410)は、ITU-T Rec.H.265のような規格における所定のビデオ圧縮技術に従って復号化動作を実行することが可能である。コーディングされたビデオ・シーケンスは、コーディングされたビデオ・シーケンスが、ビデオ圧縮技術又は規格のシンタックス、及びビデオ圧縮技術又は規格で文書化されているようなプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術又は規格によって指定されたシンタックスに準拠することが可能である。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は規格で使用可能なすべてのツールから選択することが可能である。また、コンプライアンスのために必要なことは、コーディングされたビデオ・シーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることである。場合によっては、そのレベルは、最大ピクチャ・サイズ、最大フレーム・レート、最大再構成サンプル・レート(例えば、毎秒当たりのメガサンプルで測定される)、最大参照ピクチャ・サイズ等を制限する。レベルによって設定される限界は、場合によっては、コーディングされたビデオ・シーケンスでシグナリングされるHRDバッファ管理のための仮想リファレンス・デコーダ(HRD)仕様及びメタデータによって更に制限される可能性がある。
【0077】
一実施形態では、受信機(431)は、符号化されたビデオとともに追加的(冗長的)なデータを受信する可能性がある。追加的なデータは、コーディングされたビデオ・シーケンスの一部として含まれる可能性がある。追加的なデータは、データを適切に復号化するため、及び/又は元のビデオ・データをより正確に再構成するために、ビデオ・デコーダ(410)によって使用されてもよい。追加的なデータは、例えば、時間、空間、又は信号雑音比(SNR)エンハンスメント・レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形態におけるものとすることが可能である。
【0078】
図5は、本開示の一実施形態によるビデオ・エンコーダ(503)のブロック図を示す。ビデオ・エンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。ビデオ・エンコーダ(503)は、
図3の例におけるビデオ・エンコーダ(303)の代わりに使用することが可能である。
【0079】
ビデオ・エンコーダ(503)は、ビデオ・エンコーダ(503)によってコーディングされるべきビデオ画像を捕捉することが可能なビデオ・ソース(501)(
図5の例では電子デバイス(520)の一部ではない)から、ビデオ・サンプルを受信することが可能である。別の例では、ビデオ・ソース(501)は、電子デバイス(520)の一部である。
【0080】
ビデオ・ソース(501)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であるとすることが可能なデジタル・ビデオ・サンプル・ストリームの形態で、ビデオ・エンコーダ(503)によってコーディングされるソース・ビデオ・シーケンスを提供することが可能である。メディア・サービング・システムにおいて、ビデオ・ソース(501)は、事前に準備されたビデオを記憶するストレージ・デバイスであってもよい。ビデオ・カンファレンス・システムでは、ビデオ・ソース(501)は、ローカルな画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見た場合に動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間アレイとして組織されることが可能であり、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことが可能である。当業者は、ピクセルとサンプルとの間の関係を容易に理解することが可能である。以下の説明は、サンプルに焦点を当てている。
【0081】
一実施形態によれば、ビデオ・エンコーダ(503)は、リアルタイムに、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース・ビデオ・シーケンスのピクチャを、コーディングされたビデオ・シーケンス(543)にコーディングして圧縮することが可能である。適切なコーディング速度を強制することは、コントローラ(550)の1つの機能である。幾つかの実施形態において、コントローラ(550)は、以下で説明されるように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。その結合は明確性のために描かれていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャ・スキップ、量子化器、レート歪最適化技術のラムダ値、...)、ピクチャ・サイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことが可能である。コントローラ(550)は、特定のシステム設計のために最適化されたビデオ・エンコーダ(503)に関連する他の適切な機能を有するように構成することが可能である。
【0082】
一部の実施形態では、ビデオ・エンコーダ(503)は、コーディング・ループで動作するように構成される。極端に単純化された説明として、一例において、コーディング・ループは、ソース・コーダ(530)(例えば、コーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボル・ストリームのようなシンボルを生成する責任がある)と、ビデオ・エンコーダ(503)に組み込まれた(ローカル)デコーダ(533)とを含むことが可能である。デコーダ(533)は、(リモート)デコーダが生成するのと同様な方法で、サンプル・データを生成するためにシンボルを再構成する(シンボルとコーディングされたビデオ・ビットストリームとの間の任意の圧縮は、開示される対象事項で考慮されるビデオ圧縮技術ではロスレスであるからである)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャ・メモリ(534)に入力される。シンボル・ストリームの復号化は、デコーダの位置(ローカル又はリモート)に依存しないビット・イグザクト(bit-exact)な結果をもたらすので、参照ピクチャ・メモリ(534)中の内容もまた、ローカル・エンコーダとリモート・エンコーダとの間でビット・イグザクトである。言い換えると、エンコーダの予測部は、デコーダが復号化中に予測を使用する場合に「見る(see)」ものと厳密に同じサンプル値を、参照ピクチャ・サンプルとして「見る」。参照ピクチャ同期のこの基本原理(及び、例えばチャネル・エラーに起因して同期性が維持できない場合には、結果としてドリフトが生じる)は、幾つかの関連技術においても同様に使用される。
【0083】
「ローカル」デコーダ(533)の動作は、
図4に関連して上記で詳細に既に説明されているビデオ・デコーダ(410)のような「リモート」デコーダのものと同じであるとすることが可能である。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、且つエントロピー・コーダー(545)及びパーサー(420)によるシンボルのコーディングされたビデオ・シーケンスへの符号化/復号化はロスレスであるとすることが可能であるので、バッファ・メモリ(415)及びパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号化部は、ローカル・デコーダ(533)では完全には実現されない可能性がある。
【0084】
この時点で行うことが可能な観察は、デコーダに存在する解析/エントロピー復号化以外のデコーダ技術は、必然的に、実質的に同一の機能形態で、対応するエンコーダにも存在する必要があるということである。この理由のために、開示される対象事項はデコーダの動作に焦点を当てている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるので、省略することが可能である。特定のエリアにおいてのみ、より詳細な説明が必要であり、以下で与えられる。
【0085】
動作中に、ソース・コーダ(530)は、幾つかの例において、「参照ピクチャ」として指定されたビデオ・シーケンスからの1つ以上の以前にコーディングされたピクチャを参照して、入力ピクチャを予測的に符号化する、動き補償された予測符号化を実行することが可能である。このようにして、コーディング・エンジン(532)は、入力ピクチャのピクセル・ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセル・ブロックとの間の差分をコーディングする。
【0086】
ローカル・ビデオ・デコーダ(533)は、ソース・コーダー(530)によって生成されたシンボルに基づいて、参照ピクチャとして指定されることが可能なピクチャのコーディングされたビデオ・データを復号化することが可能である。コーディング・エンジン(532)の動作は、有利なことに、非ロスレス・プロセスであってもよい。コーディングされたビデオ・データがビデオ・デコーダ(
図5には示されていない)で復号化される場合、再構成されたビデオ・シーケンスは、典型的には、幾らかのエラーを伴うソース・ビデオ・シーケンスのレプリカである可能性がある。ローカル・ビデオ・デコーダ(533)は、リファレンス・ピクチャにおいてビデオ・デコーダによって実行されることが可能な復号化プロセスを繰り返し、再構成された参照ピクチャが、参照ピクチャ・キャッシュ(534)に記憶されることを引き起こすことが可能である。このように、ビデオ・エンコーダ(503)は、遠方端のビデオ・デコーダによって得られる再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーを、局所的に記憶することが可能である(伝送エラーはないものとする)。
【0087】
予測器(535)は、コーディング・エンジン(532)のために予測検索を行うことができる。即ち、コーディングされるべき新しいピクチャについて、予測器(535)は、サンプル・データ(候補の参照ピクセル・ブロックとして)又は所定のメタデータ(参照ピクチャ動きベクトル、ブロック形状など)について、参照ピクチャ・メモリ(534)を検索することができ、これらは、新しいピクチャについての適切な予測参照として役立つ可能性がある。予測器(535)は、適切な予測参照を見出すために、サンプル・ブロック-ピクセル・ブロック・ベースで動作することが可能である。場合によっては、予測器(535)によって得られた探索結果によって決定されるように、入力ピクチャは、参照ピクチャ・メモリ(534)に記憶された複数の参照ピクチャから引き出される予測参照を有する可能性がある。
【0088】
コントローラ(550)は、例えば、ビデオ・データを符号化するために使用されるパラメータ及びサブグループ・パラメータの設定を含む、ソース・コーダ(530)のコーディング動作を管理することが可能である。
【0089】
前述の機能ユニットのすべての出力は、エントロピー・コーダー(545)におけるエントロピー符号化を受けることが可能である。エントロピー・コーダー(545)は、ハフマン・コーディング、可変長コーディング、算術コーディング等の技術に従って、シンボルをロスレス圧縮することによって、種々の機能ユニットによって生成されたシンボルを、コーディングされたビデオ・シーケンスに変換する。
【0090】
送信機(540)は、エントロピー・コーダー(545)によって作成されるようなコーディングされたビデオ・シーケンスをバッファリングして、通信チャネル(560)を介する送信の準備を行うことが可能であり、通信チャネル(560)は、符号化されたビデオ・データを記憶する記憶デバイスへのハードウェア/ソフトウェア・リンクであってもよい。送信機(540)は、ビデオ・コーダ(503)からのコーディングされたビデオ・データを、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリーム(ソースは不図示)のような送信されるべき他のデータとマージすることが可能である。
【0091】
コントローラ(550)は、ビデオ・エンコーダ(503)の動作を管理することができる。コーディングの間に、コントローラ(550)は、コーディングされたピクチャの各々に、特定のコーディングされたピクチャ・タイプを割り当てることが可能であり、これは、各ピクチャに適用されることが可能なコーディング技術に影響を及ぼす可能性がある。例えば、ピクチャは、しばしば、次のピクチャ・タイプの1つとして割り当てられてもよい。
【0092】
イントラ・ピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用せずに、符号化及び復号化されることが可能なものである。幾つかのビデオ・コーデックは、例えば、独立デコーダ・リフレッシュ(“IDR”)ピクチャを含む異なるタイプのイントラ・ピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれら各自の用途及び特徴を認識している。
【0093】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、高々1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。
【0094】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、高々2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものである。同様に、複数の予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連するメタデータを使用することが可能である。
【0095】
ソース・ピクチャは、通常、複数のサンプル・ブロック(例えば、4×4、8×8、4×8、又は16×16サンプルのブロック)に空間的に細分され、ブロック毎にコーディングされることが可能である。ブロックは、ブロックそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされることが可能である。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、又は、それらは同じピクチャの既にコーディングされたブロックを参照して予測的に符号化されてもよい(空間予測又はイントラ予測)。Pピクチャのピクセル・ブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的にコーディングされてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的に符号化されてもよい。
【0096】
ビデオ・エンコーダ(503)は、ITU-T Rec.H.265のような所定のビデオ・コーディング技術又は規格に従ってコーディング動作を行うことが可能である。この動作において、ビデオ・エンコーダ(503)は、入力ビデオ・シーケンスにおける時間的及び空間的な冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行することが可能である。コーディングされたビデオ・データは、従って、使用されているビデオ・コーディング技術又は規格によって指定されたシンタックスに準拠することが可能である。
【0097】
一実施形態では、送信機(540)は、符号化されたビデオとともに追加データを送信することが可能である。ソース・コーダ(530)は、そのようなデータを、コーディングされたビデオ・シーケンスの一部として含むことが可能である。追加データは、時間的/空間的/SNR強調レイヤ、他の形式の冗長データ(冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータ・セット・フラグメント等)を含む可能性がある。
【0098】
ビデオは、時間シーケンスにおける複数のソース・ピクチャ(ビデオ・ピクチャ)として捕捉することが可能である。イントラ・ピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用しており、インター・ピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在のピクチャと呼ばれる符号化/復号化の下にある特定のピクチャは、ブロックに分割される。現在のピクチャ内のブロックが、ビデオにおいて以前にコーディングされ且つ依然としてバッファリングされている参照ピクチャの中の参照ブロックに類似する場合、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることが可能である。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することが可能である。
【0099】
一部の実施形態では、インター・ピクチャ予測に双-予測技術を用いることが可能である。双-予測技術によれば、ビデオ内で現在のピクチャに対して復号化順序で両方とも先行している(ただし、表示順序ではそれぞれ過去及び将来におけるものである可能性がある)第1参照ピクチャ及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによってコーディングされることが可能である。ブロックは、第1参照ブロックと第2参照ブロックとの組み合わせによって予測されることが可能である。
【0100】
更に、コーディング効率を改善するために、インター・ピクチャ予測にマージ・モード技術を用いることが可能である。
【0101】
本開示の幾つかの実施形態によれば、インター・ピクチャ予測及びイントラ・ピクチャ予測のような予測は、ブロックの単位で実行される。例えば、HEVC規格によれば、ビデオ・ピクチャのシーケンス中のピクチャは、圧縮のためにコーディング・ツリー・ユニットにパーティショニングされ、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのような同じサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つのコーディング・ツリー・ブロック(CTB)を含む。各CTUは、1つ又は複数のコーディング・ユニット(CU)に再帰的に4分木分割されることが可能である。例えば、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ピクセル等のような、ピクセルに対する値(例えば、ルマ値)のマトリクスを含む。
【0102】
図6は本開示の別の実施形態によるビデオ・エンコーダ(603)の図を示す。ビデオ・エンコーダ(603)は、ビデオ・ピクチャのシーケンス内の現在のビデオ・ピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャに符号化するように構成される。一例では、ビデオ・エンコーダ(603)は、
図3の例のビデオ・エンコーダ(303)の代わりに使用される。
【0103】
HEVCの例では、ビデオ・エンコーダ(603)は、8×8サンプルの予測ブロック等のような処理ブロックのサンプル値のマトリクスを受信する。ビデオ・エンコーダ(603)は、イントラ・モード、インター・モード、又は双-予測モードを使用して、例えばレート歪最適化を使用して、処理ブロックが最良にコーディングされるかどうかを決定する。処理ブロックがイントラ・モードでコーディングされるべき場合、ビデオ・エンコーダ(603)は、処理ブロックを、コーディングされたピクチャに符号化するためにイントラ予測技術を使用することが可能であり;処理ブロックがインター・モード又は双-予測モードで符号化されるべき場合、ビデオ・エンコーダ(603)は、処理ブロックを、コーディングされたピクチャに符号化するために、それぞれインター予測技術又は双-予測技術を使用することが可能である。特定のビデオ・コーディング技術では、マージ・モードがインター予測ピクチャ・サブモードである可能性があり、その場合、動きベクトルは、予測器外部のコーディングされた動きベクトル成分の恩恵なしに、1つ以上の動きベクトル予測子から導出される。特定の他のビデオ・コーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在する可能性がある。一例では、ビデオ・エンコーダ(603)は、処理ブロックのモードを決定するためにモード決定モジュール(不図示)のような他のコンポーネントを含む。
【0104】
図6の例では、ビデオ・エンコーダ(603)は、インター・エンコーダ(630)、イントラ・エンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、及びエントロピー・エンコーダ(625)を、
図6に示されるように共に結合して含んでいる。
【0105】
インター・エンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャのブロック及び以後のピクチャ内のブロック)と比較し、インター予測情報(例えば、符号化技術による冗長情報の記述、動きベクトル、マージ・モード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づいて、インター予測結果(例えば、予測ブロック)を計算するように構成される。幾つかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号化された復号化済み参照ピクチャである。
【0106】
イントラ・エンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によってはブロックを、同じピクチャ内で既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するように構成される。一例では、イントラ・エンコーダ(622)はまた、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0107】
ジェネラル・コントローラ(621)は、一般的な制御データを決定し、一般的な制御データに基づいてビデオ・エンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、ジェネラル・コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラ・モードである場合、ジェネラル・コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにイントラ・モード結果を選択し、且つエントロピー・エンコーダ(625)を制御して、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含める;モードがインター・モードである場合、ジェネラル・コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにインター予測結果を選択し、且つエントロピー・エンコーダ(625)を制御して、インター予測情報を選択し、インター予測情報をビットストリームに含める。
【0108】
残差計算器(623)は、受信ブロックと、イントラ・エンコーダ(622)又はインター・エンコーダ(630)から選択された予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインへ変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化された変換係数を得るために量子化処理にかけられる。様々な実施形態では、ビデオ・エンコーダ(603)はまた、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、復号化された残差データを生成するように構成される。復号化された残差データは、イントラ・エンコーダ(622)及びインター・エンコーダ(630)によって適切に使用することが可能である。例えば、インター・エンコーダ(630)は、復号化された残差データ及びインター予測情報に基づいて、復号化されたブロックを生成することが可能であり、イントラ・エンコーダ(622)は、復号化された残差データ及びイントラ予測情報に基づいて、復号化されたブロックを生成することが可能である。復号化されたブロックは、復号化されたピクチャを生成するために適切に処理され、復号化されたピクチャは、メモリ回路(不図示)内でバッファリングされ、幾つかの例では参照ピクチャとして使用することが可能である。
【0109】
エントロピー・エンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピー・エンコーダ(625)は、HEVC規格のような適切な規格に従って種々の情報を含むように構成される。一例では、エントロピー・エンコーダ(625)は、一般的な制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びその他の適切な情報をビットストリームに含めるように構成される。開示される対象事項に従って、インター・モード又は双-予測モードの何れかのマージ・サブモードにおけるブロックをコーディングする場合に、残差情報は存在しないことに留意されたい。
【0110】
図7は、本開示の別の実施形態によるビデオ・デコーダ(710)の図を示す。ビデオ・デコーダ(710)は、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャを復号化して、再構成されたピクチャを生成するように構成される。一実施形態では、ビデオ・デコーダ(710)は、
図3の例におけるビデオ・デコーダ(310)の代わりに使用される。
【0111】
図7の例では、ビデオ・デコーダ(710)は、エントロピー・デコーダ(771)、インター・デコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、及びイントラ・デコーダ(772)を、
図7に示されるように共に結合して含んでいる。
【0112】
エントロピー・デコーダ(771)は、コーディングされたピクチャを作り上げるシンタックス要素を表す特定のシンボルを、コーディングされたピクチャから再構成するように構成されることが可能である。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラ・モード、インター・モード、双-予測モード、マージ・サブモード又は別のサブモードにおける後者の2つ)、イントラ・デコーダ(772)又はインター・デコーダ(780)それぞれによって予測のために使用される特定のサンプル又はメタデータを識別することが可能な予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報(例えば、量子化された変換係数の形式におけるもの)等を含むことが可能である。一例において、予測モードがインター又は双-予測モードである場合には、インター予測情報がインター・デコーダ(780)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(772)に提供される。残差情報は、逆量子化を施されることが可能であり、残差デコーダ(773)に提供される。
【0113】
インター・デコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0114】
イントラ・デコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0115】
残差デコーダ(773)は、逆量子化を実行して非-量子化変換係数を抽出し、非-量子化変換係数を処理して残差を周波数ドメインから空間ドメインへ変換するように構成される。残差デコーダ(773)はまた、特定の制御情報(量子化パラメータ(QP)を含む)を必要とする可能性があり、その情報は、エントロピー・デコーダ(771)によって提供されてもよい(これは、僅かな量の制御情報でしかない可能性があるので、データ経路は描かれていない)。
【0116】
再構成モジュール(774)は、空間ドメインにおいて、残差デコーダ(773)による出力としての残差と、予測結果(場合によっては、インター又はイントラ予測モジュールによって出力されるもの)とを組み合わせて、再構成されたブロックを形成するように構成されており、再構成されたブロックは再構成されたピクチャの一部であり、再構成されたピクチャは再構成されたビデオの一部である可能性がある。デブロッキング処理などのような他の適切な処理が、視覚的な品質を改善するために実行される可能性があることに留意されたい。
【0117】
なお、ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、任意の適切な技術を用いて実現することが可能である。一実施形態では、ビデオ・エンコーダ(303)、(503)、及び(603)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、1つ以上の集積回路を使用して実現することが可能である。別の実施形態では、ビデオ・エンコーダ(303)、(503)、及び(503)、並びにビデオ・デコーダ(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することが可能である。
【0118】
II.HEVCプライマリ変換
【0119】
プライマリ変換は、HEVCでのように、4点、8点、16点、32点DCT-2を含むことが可能であり、変換コア行列は、8ビット整数、即ち8ビット変換コアを用いて表現することができる。
図8A-8Dにそれぞれ示されるように、より小さなDCT-2の変換コア行列は、より大きなDCT-2の行列の一部であるとすることが可能であり、4×4変換、8×8変換、16×16変換、及び32×32変換を含む。
【0120】
DCT-2コアは対称性/反対称性を示し、従って、所謂「部分的バタフライ」実装が、動作カウント数(乗算、加算/減算、シフト)を減少させるためにサポートされ、部分的バタフライを用いて、行列乗算の同一の結果を得ることができる。
【0121】
III.VVCプライマリ変換
【0122】
HEVCでのような4点、8点、16点、32点DCT-2変換の他に、VVCでのように、追加的な2点及び64点DCT-2を含めることが可能である。
【0123】
VVCで定められている64点DCT-2コアは、64×64行列として以下に示される。
【数1】
【0124】
HEVCで採用されているDCT-2及び4×4DST-7に加えて、適応多重変換(adaptive multiple transform,AMT)方式が、インター・及びイントラ・コーディングされたブロック双方の残差コーディングのためにVVCで使用されている。AMTは、エンハンスト多重変換(EMT)又は多重変換選択(MTS)とも呼ばれ、HEVCにおける現在の変換以外のDCT/DSTファミリーからの複数の選択された変換を使用する。新しく導入された変換行列はDST-7とDCT-8である。表1は、選択されたDST/DCTの例示的な基底関数を示す。
表1
【数2】
【0125】
VVCにおけるプライマリ変換行列は8ビット表現で使用される。AMTは、幅と高さの両方が32以下であるCUに適用され、AMTを適用するかどうかは、mts_flagと呼ばれるフラグによって制御される。mts_flagが0に等しい場合、残差をコーディングするために、DCT-2のみが適用される。mts_flagが1に等しい場合、表2に従って使用される水平及び垂直変換を識別するために、2つのビンを使用して、インデックスmts_idxが更にシグナリングされ、ここで、値1はDST-7を使用することを意味し、値2はDCT-8を使用することを意味する。
表2
【数3】
【0126】
シグナリング・ベースのMTS(即ち、明示的なMTS)が使用されない場合には、(例えば、VVCでは)暗黙のMTSを適用することも可能である。暗黙のMTSでは、変換選択は、シグナリングではなく、コーディング・ブロックのブロック幅とブロック高さに従って行われる。例えば、暗黙のMTSでは、DST-7はコーディング・ブロックの短辺に対して選択され、DCT-2はコーディング・ブロックの長辺に対して選択される。
【0127】
基底ベクトルで構成される行列である、DST-7の変換コアは、以下のように表すことも可能である:
4点DST-7:
【数4】
8点DST-7:
【数5】
16点DST-7:
【数6】
32点DST-7:
【数7】
4点DCT-8:
【数8】
8点DCT-8:
【数9】
16点DCT-8:
【数10】
32点DCT-8:
【数11】
【0128】
コーディング・ブロックの高さ及び幅の双方が64以下である場合、変換サイズは、VVCでのようにコーディング・ブロック・サイズと同じである。コーディング・ブロックの高さ又は幅の何れかが64よりも大きい場合、変換又はイントラ予測を実行するために、コーディング・ブロックは、複数のサブブロックに更に分割され、ここで、各サブブロックの幅及び高さは64以下であり、各サブブロックに対して1つの変換が実行される。
【0129】
IV.非セパラブル・セカンダリ変換(NSST)
【0130】
モード依存・非セパラブル・セカンダリ変換(mode-dependent non-separable secondary transform,NSST)は、フォワード・コア変換(即ち、プライマリ変換)と量子化(エンコーダにおけるもの)との間、及び逆量子化と逆コア変換(デコーダにおけるもの)との間に適用することが可能である。低い複雑性を維持するために、NSSTは、プライマリ変換後の低周波数係数にのみ適用される。変換係数ブロックの幅(W)と高さ(H)の両方が8以上である場合に、8×8非セパラブル・セカンダリ変換が、変換係数ブロックの左上8×8領域に適用される。そうでない場合、変換係数ブロックのW又はHの何れかが4に等しい場合、4×4の非セパラブル・セカンダリ変換が適用され、4×4非セパラブル変換が、変換係数ブロックの左上min(8,W)×min(8,H)領域に対して実行される。上記の変換選択ルールは、ルマ及びクロマ成分の両方に適用される。
【0131】
非セパラブル変換の行列乗算の実現は、4×4の入力ブロックを例として、次のように説明される。非セパラブル変換を適用するために、Eq.1の4×4入力ブロックXは、Eq.2のベクトルX
→として表すことができる。
【数12】
【0132】
非セパラブル変換は、F→=T・X→として計算され、F→は変換係数ベクトルを表し、Tは16×16変換行列である。その後、16×1の係数ベクトルF→は、ブロックのスキャニング順序(水平、垂直、又は対角)を用いて4×4ブロックとして再編成される。より小さなインデックスを有する係数は、4×4の係数ブロックでは、より小さなスキャニング・インデックスで置き換えることが可能である。一例では、非セパラブル変換の複雑さを低減するために、行列乗算の代わりに、バタフライ実装を使ったハイパーキューブ・ギブンズ変換(HyGT)が使用される。
【0133】
一実施形態では、NSSTにおいて、4×4及び8×8ブロック・サイズの両方に対して、合計35×3個の非セパラブル・セカンダリ変換が存在する可能性があり、35は変換背えっとの総数であり、3は各変換セットに含まれるNSST候補の数である。各変換セットは、イントラ予測モードによって指定される。イントラ予測モードから対応する変換セットへのマッピングは表3に定められている。ルマ/クロマ変換係数に適用される変換セットは、表3に従って、対応するルマ/クロマ・イントラ予測モードによって指定される。34(対角線の予測方向)より大きなイントラ予測モードについては、変換係数ブロックはエンコーダ/デコーダにおけるセカンダリ変換の前後に転置される。
【数13】
【0134】
各変換セットに対して、選択された非セパラブル・セカンダリ変換候補は、明示的にシグナリングされるCUレベルのNSSTインデックスによって更に指定される。NSSTインデックスは、変換係数及びトランケーテッド単項二値化が使用された後に、イントラCU毎に一度ビットストリームでシグナリングされる。トランケーテッド値は、プレーナ又はDCモードの場合は2であり、角度イントラ予測モードの場合は3である。NSSTインデックスは、CU内に1つより多い非ゼロ係数が存在する場合にのみシグナリングされる。NSSTインデックスがシグナリングされない場合、デフォルト値はゼロである。このシンタックス要素のゼロ値は、セカンダリ変換が現在のCUに適用されないことを示し、値1-3は、変換セットのうちの何れのセカンダリ変換が適用可能であるかを示す。
【0135】
実施形態では、NSSTは、変換スキップ・モードでコーディングされたブロックに対して適用されない可能性がある。NSSTインデックスがCUに対してシグナリングされ、且つゼロに等しくない場合、NSSTは、CUにおいて変換スキップ・モードでコーディングされる成分のブロックに対して使用されない。すべての成分のブロックを伴うCUが変換スキップ・モードでコーディングされるか、又は非変換スキップ・モードの非ゼロ係数の個数が2未満である場合、NSSTインデックスはCUに対してシグナリングされない。
【0136】
V.縮小サイズ変換(RST)
【0137】
実施形態では、NSSTは変換ゼロ・アウト方式、即ち縮小サイズ変換(reduced size transform,RST)を使用することができ、これはまた、VVCドラフト5のような幾つかの関連したケースでは低周波数非セパラブル・セカンダリ変換(low-frequency non-separable secondary transform,LFNST)とも呼ばれる。RSTは、NSSTの変換インデックスをエントロピー・コーディングするために、イントラ予測モードが平面であるか又はDCであるかをチェックする。
【0138】
RSTでは、合計4つの変換セットが適用され、各々の変換セットは3つのRST変換コアを含む。RST変換コアのサイズは、16×48(又は16×64)(高さと幅の両方が8以上である変換係数ブロックに適用される)又は16×16(高さ又は幅の何れかが4に等しい変換係数ブロックに適用される)のいずれかである可能性がある。表記上の便宜上、16×48(又は16×64)変換はRST8×8として示され、16×16変換はRST4×4として示される。
【0139】
RST8×8について、16×64変換コア及び16×48変換コアを使用する2つの例示的な代替例が、それぞれ
図9及び
図10に示されている。一例では、16×48変換コアを使用するものが使用される。
【0140】
VI.RSTの計算
【0141】
RSTは、N次元ベクトルを、別の空間のR次元ベクトルにマッピングすることであり、ここで、R/N (R<N)は縮小率である。RST行列は、
図11に示されるようなR×N行列であり、ここで、変換のR個の行は、N次元空間のR個の基底である。RTの逆変換行列は、そのフォワード変換の転置である。
図12A及び12Bはそれぞれ、単純化された縮小変換及び単純化された縮小逆変換を示す。
【0142】
実施形態では、4という縮小率(1/4サイズ)のRST8×8が適用される。従って、典型的な8×8非セパラブル変換行列サイズである64×64の代わりに、16×64のダイレクト・マトリクスがRST8×8で使用される。換言すれば、
図13Aに示すように、8×8左上領域でコア(プライマリ)変換係数を生成するために、64×16の逆RST行列がデコーダ側で使用される。フォワードRST8×8は、16×64(8×8ブロックでは8×64)行列を使用し、その結果、所与の8×8領域内の左上の4×4領域のみにおいて非ゼロ係数を生成する。言い換えれば、RSTが適用されると、左上4×4領域を除く8×8領域は、ゼロの係数を有するだけである。RST4×4については、16×16(又は4×4ブロックに対しては8×16)のダイレクト・マトリクス乗算が適用される。
【0143】
また、RST8×8については、変換行列サイズを更に削減するために、セカンダリ変換を計算するための入力として左上の8×8係数全体を用いる代わりに、
図13Bに示すように、セカンダリ変換を計算するための入力として、左上の3つの4×4係数が使用される。
【0144】
以下の2つの条件を満たす場合に、逆RSTが条件付きで適用される:(1)ブロック・サイズは所与の閾値以上であること(例えば、W>=4 && H>=4);及び(2)変換スキップ・モード・フラグはゼロに等しいこと。
【0145】
変換係数ブロックの幅(W)と高さ(H)の両方が4より大きい場合、RST8×8は変換係数ブロックの左上の8×8領域に適用される。そうでない場合、RST4×4は変換係数ブロックの左上のmin(8,W)×min(8,H)領域に適用される。
【0146】
RSTインデックスが0に等しい場合、RSTは適用されない。そうでない場合、RSTが適用され、RSTカーネルが、RSTインデックスを使って選択される。
【0147】
更に、RSTは、イントラ及びインター・スライスの両方でイントラCUに対して、及びルマ及びクロマの両方に対して適用されることが可能である。デュアル・ツリーがイネーブルにされる場合、ルマ及びクロマに対するRSTインデックスは別々にシグナリングされる。デュアル・ツリーがディセーブルにされるインター・スライスでは、1つのRSTインデックスがシグナリングされ、ルマ及びクロマの両方に使用される。イントラ・サブパーティション(ISP)モードが選択される場合、RSTはディセーブルにされ、RSTインデックスはシグナリングされない。
【0148】
RST行列は、それぞれが2つの変換を含む4つの変換セットから選択される。どの変換セットが適用されるかは、次のように、イントラ予測モードによって決定される:3つのクロス・コンポーネント線形モデル (CCLM)モードのうちの1つが示される場合には、変換セット0が選択される;そうではない場合、変換セットの選択は表4に従って実行される。インデックスIntraPredModeは[-14,83]のレンジを有し、幅広い角度イントラ予測に使用される変換済みモード・インデックスである。
表4
【数14】
【0149】
VII.RSTのメモリ・コスト
【0150】
本開示の態様によれば、8個(4×2)の16×16変換行列(RST4×4)及び8個(4×2)の16×48変換行列(RST8×8)が、RST(又はLFNST、又はNSST)で使用され、1つの変換行列における各要素は8ビット整数を用いて表現される。従って、合計4x2x(256+768)=8KバイトのメモリがRSTにおいて必要とされ、これはハードウェア設計にとって比較的高価である。これは、RSTでは2つの変換プロセス、即ちRST4x4とRST8x8が使用されるためである。更に、変換コアの異なるサイズを使用することは、統一された解決策となる可能性はなく、なぜならRSTでは変換コアのスイッチングが必要とされるからである。
【0151】
更に、幾つかの関連した例では、RSTにおけるセカンダリ変換インデックスは、残差コーディングの後にシグナリングされる。即ち、すべての残差係数が解析されるまで、RSTインデックスは利用可能ではない。RSTインデックスが使用可能になるまで、セカンダリ変換を開始できないので、これは遅延を引き起こす可能性がある。
【0152】
VIII.LFNSTの代替
【0153】
現在のLFNST方法は、エンコーダが3つのオプション(例えば、LFNSTなし、LFNSTインデックス1、LFNSTインデックス2)を試みて、ブロックごとに最も効率的な候補を取り出さなければならないので、比較的高いエンコーダ探索負担を負っている。
【0154】
2つの候補の代わりに、表5に示すように、(JVET-O0292及びJVET-O0350でのように)各ブロックに対して、LFNSTの唯1つの候補が使用されてシグナリングされることが可能である。表5では、ビットストリームでシグナリングされたLFSNTインデックスはlfnstIdxとして示され、所与の変換セットにおける選択されたLFNSTコア・インデックスはcoreIdxとして示され、イントラ予測モードはintraModeとして示される。
表5
【数15】
【0155】
JVET-O0292及びJVET-O0350で提案されている方法では、唯1つのLFNST候補しか残っていないが、この方式は、例えば、現在のVVCドラフト6で定められているように、LFNST候補のすべてを選択することをサポートしている。1つのLFNST候補のみが保持されるので、エンコーダでLFNSTを選択する負担は低減される。
【0156】
しかしながら、JVET-O0292及びJVET-O0350で提案される方法は、2番目のLFNST候補を規範的に落とす必要があり、従ってリスクが伴い、なぜなら、コーディング・パフォーマンスはエンコーダ探索がどのように設計されるかに依存するからである。例えば、JVET-O0292及びJVET-O0350によって報告されたのと同様のエンコーダ高速化を達成するために、エンコーダがlfnstIdx 2を落とした場合、2番目のLFNST候補は決して選択さえ得ないので、著しいコーディング損失が生じる可能性がある。
【0157】
IX.統一セカンダリ変換
【0158】
以下のアプリケーションは、セカンダリ変換のメモリ・コストを低減し、セカンダリ変換のパフォーマンスを向上させるための様々な統一されたセカンダリ変換方法を含む。
【0159】
本方法の一例としてLFNSTが説明されるが、本方法はNSSTやRSTのような他の変換にも適用できることに留意されたい。また、TUとは、変換処理が実行される単位を指す。TUは複数のカラー成分を含むことが可能であり、各カラー成分はTBとして表現される。従って、TUは複数のTBを含む可能性がある。
【0160】
本開示の態様によれば、サイズがMxN (RSTMxN)以上であるブロックに適用されるLFNST変換コアは、ブロック幅がMより小さいか、又はブロック高さがNより小さい、より小さなブロックにも適用することが可能である。Mの例示的な値は、8、16及び32を含むが、これらに限定されず、Nの例示的な値は、8、16及び32を含むが、これらに限定されない。
【0161】
一実施形態において、M=N=8を例として採用し、高さ(H)又は幅(W)の何れかが8未満であるWxHプライマリ変換係数ブロックに、フォワードLFNSTを適用し、先ず、8×8ブロックはすべて0として初期化される。次いで、各々の座標位置に対して、この8×8ブロックの値は、WxHプライマリ変換係数ブロックの同じ座標に位置する値として設定される。最終的に、この8×8ブロックはRST8×8変換コアを用いたRST8×8変換プロセスに入力され、出力はWxHプライマリ変換係数ブロックに適用されるセカンダリ変換の出力として使用される。
【0162】
図14は、本開示の実施形態による例示的な統一セカンダリ変換を示す。
図14では、先ず、8×4TUがフォワード変換1401によって処理され、次いで、8×4プライマリ変換係数ブロック1402がフォワード・プライマリ変換1401から出力される。8×8ブロック1403は、8×4プライマリ変換係数ブロック1402に基づいて生成される。8×8ブロック1403のトップ8×4領域は、8×4プライマリ変換係数ブロック1402から直接的にコピーされ、8×8ブロック1403のボトム8×4領域は0に設定される。次いで、8×8ブロック1403は、セカンダリ変換1404(例えば、RST8×8)に入力される。セカンダリ変換1404の出力は、8×4セカンダリ変換係数ブロック1405であり、これは、量子化プロセス1406に更に入力される。
【0163】
別の実施形態では、一例としてM及びNの両方が8であるとし、高さ(H)又は幅(W)が8未満であるWxHプライマリ変換係数ブロックに逆LFNSTを適用し、セカンダリ変換係数のベクトルである入力の下で、8x8プライマリ変換係数ブロックを生成することができる。しかしながら、WxHブロックと8×8ブロックとの間の重複部分のみが計算され、非重複部分は、WxHブロックの座標範囲外に位置するので、計算されない。
【0164】
図15は、本開示の実施形態による例示的な統一セカンダリ変換を示す。
図15において、8×4セカンダリ変換係数ブロック1502は、先ず、逆量子化ブロック1501から出力され、次いで、逆セカンダリ変換1503(例えば、逆RST8×8)に入力される。逆セカンダリ変換1503のトップ8×4領域のみが、8×4セカンダリ変換係数ブロック1502に適用され、逆セカンダリ変換1503のボトム8×4領域は計算されない。従って、8×8ブロック1504が逆セカンダリ変換1503から出力され、8×8ブロック1504のトップ8×4領域が、8×4プライマリ変換係数ブロック1505として使用され、フォワード・プライマリ変換1506に入力される。
【0165】
本開示の態様によれば、上記の目下のLFNSTスキームは、高さ及び/又は幅が閾値(例えば、8)よりも小さな任意のブロック・サイズに適用することができる。例えば、上記の目下のLFNSTスキームは、2×Hブロック、W×2ブロック、6×Hブロック、及びW×6ブロックに適用することができる。
【0166】
一実施形態では、開示された統一LFNSTスキームは、2xH及びWx2クロマTUなどのクロマTUに適用することができる。H(又はW)が8以下である場合、セカンダリ変換が何らかの影響を及ぼすか否かにかかわらず、フォワード・スキャニング順序(例えば、低周波から高周波へのスキャニング)に沿うような第1数の係数(例えば、最初の8個の係数)のみが維持され、残りの係数は0に設定されるか、又は0とみなされる。H(又はW)が8より大きい場合、セカンダリ変換が影響を及ぼすか否かにかかわらず、フォワード・スキャニング順序に沿うような第2数の係数(例えば、最初の16個の係数)のみが維持され、残りの係数は0に設定されるか、又は0とみなされる。
【0167】
一実施形態では、特定のブロック・サイズ(例えば、8×4及び4×8ブロック)に対して、LFNSTを実行する場合、高々所定数の変換係数のみ(例えば、高々8個の変換係数のみ)が計算され、残りの係数は0として設定される。例えば、所定数の変換係数は、係数解析順序における係数位置の最後の所定数であるとすることができる。
【0168】
一実施形態では、特定のブロック・サイズ(例えば、8×4及び4×8ブロック)に対して、特定の位置から、例えば順方向係数走査順序に沿った8番目の位置から、非ゼロ係数が識別される場合、セカンダリ変換インデックスはシグナリングされず、セカンダリ変換は適用されない。
【0169】
一実施形態では、特定のブロック・サイズ(例えば、Nx4及び4xNブロック)に対して(ここで、Nは8より大きい)、2つのRST4x4を実行する代わりに、唯1つのRST8x8が実行され、開示される統一LFNST方式は、32個までの非ゼロ係数の代わりに、16個までの非ゼロ係数を生成することができる。
【0170】
一実施形態では、セカンダリ変換インデックスが変換係数の前にシグナリングされる場合、修正係数コーディング方式が使用される。MxN TUでは、MとNの両方が8以下であって2より大きい場合、スキャニング順序に沿った最初の8個の係数のみがコーディングされ、残りの係数のシンタックス要素(例えば、有意性フラグ)はコーディングされない。MとNの両方が4より大きい場合、スキャニング順序に沿った最初の16個の係数のみがコーディングされ、残りの係数のシンタックス要素(例えば、CGフラグ、有意性フラグ)はコーディングされない。
【0171】
本開示の態様によれば、LFNSTインデックスは、TBレベルでシグナリングされる。即ち、1つのTUの各TB又は各カラー成分は、個々のLFNSTインデックスに対応する。
【0172】
一実施形態は、最後の位置(例えば、変換係数ブロック内の最後の非ゼロ変換係数)の後であって、CGフラグ(coded_sub_block_flag)、有意性フラグ(sig_coeff_flag)、gtXフラグ(abs_level_gtx_flag)、パリティ・フラグ(par_level_flag)、サイン・フラグ(coeff_sign_flag)、及び/又は絶対残余レベル(abs_remainder)のような1つ以上の係数コーディング関連シンタックスの前に、LFNSTはシグナリングされる。
【0173】
一実施形態では、シグナリングされたLFNSTインデックス値及びコーディングされるべき係数の位置に応じて、1つ以上の係数コーディング関連シンタックスは、スキップされ、シグナリングされず、デフォルト値として導出することができる。
【0174】
一実施形態では、スキップされてシグナリングされない可能性がある1つ以上の係数コーディング関連シンタックスは、CGフラグ(coded_sub_block_flag)、有意性フラグ(sig_coeff_flag)、gtXフラグ(abs_level_gtx_flag)、パリティ・フラグ(par_level_flag)、サイン・フラグ(coeff_sig_flag)、及び/又は絶対残余レベル(abs_remainder)を含む。
【0175】
一実施形態では、スキップされてシグナリングされない可能性があるコーディング関連シンタックスは、関連する係数が0であることを示す0として導出することができる。
【0176】
シグナリングされたLFNSTインデックスが、LFNSTが適用されることを示す一実施形態において、1つ以上の係数コーディング関連シンタックスは、シグナリングされず、デフォルト値として導出されることが可能である。スキップされてシグナリングされない可能性がある1つ以上の係数コーディング関連シンタックスは、CGフラグ(coded_sub_block_flag)、有意性フラグ(sig_coeff_flag)、gtXフラグ(abs_level_gtx_flag)、パリティ・フラグ(par_level_flag)、サイン・フラグ(coeff_sign_flag)、及び/又は絶対残余レベル(abs_remainder)を含む。
【0177】
一実施形態では、WxHのサイズを有する現在のTBに関し、WとHの両方が閾値(例えば8)以下である場合において、LFNSTインデックスが現在のTBに適用される場合、最初のCGのCGフラグは依然としてシグナリングされるが、スキャニング順序に沿ったN番目(例えば8番目)の位置の後に位置する係数に対する他のシンタックス要素(例えばsig_coeff_flag,abs_level_gtx_flag,par_level_flag,coeff_sign_flag,及び/又はabs_remainder)は、シグナリングされず、デフォルト値として導出される。デフォルト値は係数が0であることを示す値であってもよい。
【0178】
一実施形態では、WxHのサイズを有する現在のTBに関し、W又はHのいずれかが閾値8より大きい場合において、LFNSTインデックスが現在のTBに適用される場合、スキャニング順序に沿った最初のCGの後に位置する係数に対する係数コーディング関連シンタックス要素は、シグナリングされず、デフォルト値として導出される。デフォルト値は、関連するCG内の係数がすべて0であることを示す値であってもよい。
【0179】
一実施形態では、LFNSTインデックスが現在のTBに適用される場合、スキャニング順序に沿って最初のCGの後に位置する係数に対する係数コーディング関連シンタックス要素は、シグナリングされず、デフォルト値として導出される。デフォルト値は、関連するCG内の係数がすべて0であることを示す値であってもよい。
【0180】
本開示の態様によれば、最後の位置(例えば、変換係数ブロックの最後の非ゼロ変換係数)の後であって、CGフラグ(coded_sub_block_flag)、有意性フラグ(sig_coeff_flag)、gtXフラグ(abs_level_gtx_flag)、パリティ・フラグ(par_level_flag)、サイン・フラグ(coeff_sign_flag)、及び/又は絶対残余レベル(abs_remainder)のような、1つ以上の係数コーディング関連シンタックスの前に、シンタックス要素tu_mts_idxはシグナリングされる。
【0181】
一実施形態では、最後の位置の後であって、LFNSTインデックスの前であり、且つ、CGフラグ(coded_sub_block_flag)、有意性フラグ(sig_coeff_flag)、gtXフラグ(abs_level_gtx_flag)、パリティ・フラグ(par_level_flag)、サイン・フラグ(coeff_sig_flag)、及び/又は絶対残余レベル(abs_remainder)のような、幾つかの係数コーディング関連シンタックスの前に、シンタックス要素tu_mts_idxはシグナリングされる。
【0182】
本開示の態様によれば、LFNSTインデックスのエントロピー符号化に使用されるコンテキストは、LFNSTカーネルの形状に依存する。使用されるコンテキストは、ブロック幅又は高さと或る値(例えば、4)との比較に依存する可能性がある。
【0183】
一実施形態では、ブロック幅又は高さがその値(例えば4)であるかどうかに依存して、異なるコンテキストが、FNSTインデックスのエントロピー・コーディングに適用される可能性がある。
【0184】
一実施形態では、ブロック幅又は高さの何れかがその値(例えば、4)より大きいかどうかに依存して、異なるコンテキストが、LFNSTインデックスのエントロピー・コーディングに適用される可能性がある。
【0185】
本開示の態様によれば、CCLMモデル・パラメータを導出するためにトップ参照サンプルのみを使用する一次元クロス・コンポーネント線形モデル(CCLM)モードCCLM_TOPと、CCLMモデル・パラメータを導出するために左参照サンプルのみを使用するCCLM_LEFTとに関し、逆LFNSTの出力 (又はフォワードLFNSTの入力)の出力が転置されるかどうかの決定は異なる。
【0186】
一実施形態において、CCLM_TOPモードでは、逆LFNSTの出力(又はフォワードLFNSTの入力)は転置されるが、CCLM_LEFTモードでは、逆LFNSTの出力(又はフォワードLFNSTの入力)は転置されない。
【0187】
一実施形態において、CCLM_TOPモードでは、逆LFNSTの出力(又はフォワードLFNSTの入力)は転置されず、CCLM_LEFTモードでは、逆LFNSTの出力(又はフォワードLFNSTの入力)は転置される。
【0188】
本開示の態様によれば、1つのブロックについて、変換セットが先ず識別される。変換セットは、N個のLFNST候補を含む。次いで、LFNSTインデックス値は、ビットストリームにおいて、即ち1~Nの範囲に及ぶlfnstIdxにおいてシグナリングされる。lfnstIdxが0に等しい場合、LFNSTは適用されない。lfnstIdxは、与えられた変換セット内のN個の候補の1つにマッピングされ、どのLFNSTコアが、シグナリングされたlfnstIdx値に対して選択されるかを指定する。隣接するイントラ予測モードに対しては、同じ変換セットが適用されるが、lfnstIdxは、与えられた変換セットにおいて異なるLFNST候補にマッピングされる。
【0189】
一実施形態では、変換セットは、2つのLFNST候補を含み、即ちNは2に等しく、lfnstIdxは表6に従ってマッピングされる。例えば、intraMode 2とintraMode 3は同じ変換セットを共有することができる。IntraMode 2では、lfnstIdx 1とlfnstIdx 2はそれぞれ与えられた変換セットの第1候補と第2候補を示し、intraMode 3では、lfnstIdx 1とlfnstIdx 2はそれぞれ与えられた変換セットの第2候補と第1候補を示す。
表6
【数16】
【0190】
一実施形態では、変換セットは、2つのLFNST候補を含み、即ちNは2に等しく、lfnstIdxは表7に従ってマッピングされる。例えば、intraMode 2とintraMode 3は同じ変換セットを共有することができる。intraMode 2とintraMode 3は両方とも閾値(例えば35)未満であるので、intraMode 2ではlfnstIdx 1とlfnstIdx 2はそれぞれ与えられた変換セットの第1候補と第2候補を示し、intraMode 3ではlfnstIdx 1とlfnstIdx 2はそれぞれ与えられた変換セットの第2候補と第1候補を示す。
表7
【数17】
【0191】
本開示の態様によれば、LFNSTに対して同一の変換セット及び同一の変換選択方式を適用することができる。しかしながら、LFNSTインデックスのエントロピー・コーディング・ビンに対するコンテキストは、イントラ予測モードが偶数であるか又は奇数であるか、及び/又はイントラ予測モードが閾値(例えば、VVCドラフト6の対角線イントラ予測モード・インデックス34)より大きいかどうかに依存する。
【0192】
本開示の態様によれば、上述のcoreIdx導出法は、現在のブロックの予測(又はエラー予測)として使用することができる。このような予測については、2つの選択肢しかないので、lfnstIdxは、予測が正しいかどうかをシグナリングすることによって、ビットストリームで示すことができる。
【0193】
一実施形態では、lfnstIdx 1とlfnstIdx 2の二値化の2つのビンは、それぞれ10と11である。最初のビンは常に1であるので、予測が正しいかどうかを示すために、2つのビンの2番目のビンを使用することができる。例えば、lfnstIdx 1が選択され、2番目のビンが0である場合、予測は正しい;lfnstIdx 1が選択され、2番目のビンが1である場合、予測は間違っている。
【0194】
X.修正残差コーディング・シンタックス
【0195】
表8は、本開示の実施形態による例示的な修正残差コーディング・シンタックスを示す。
表8
【数18】
【0196】
表9は、本開示の実施形態による別の例示的な修正残差コーディング・シンタックスを示す。
表9
【数19】
【0197】
CGフラグcoded_sub_block_flag[ xS ][ yS ]は、現在の変換ブロック内の位置(xS,yS)におけるサブブロックについて、以下を示す(ただし、サブブロックは、16個の変換係数レベルの(4x4)アレイである):
- coded_sub_block_flag[ xS ][ yS ]が0に等しい場合、位置(xS,yS)におけるサブブロックの16個の変換係数レベルは、0に等しいと推測される。
- そうでない場合(coded_sub_block_flag[ xS ][ yS ]が1に等しい場合)、以下が適用される:
- (xS,yS)が(0,0)に等しく、( LastSignificantCoeffX,LastSignificantCoeffY )が(0,0)に等しくない場合、16個のうちの少なくとも1つのsig_coeff_flagシンタックス要素は、位置(xS,yS)におけるサブブロックに対して存在する。
- そうでない場合、位置(xS,yS)におけるサブブロックの16個のうちの少なくとも1つの変換係数レベルは、非ゼロ値を有する。
【0198】
coded_sub_block_flag[ xS ][ yS ]が存在しない場合、以下のように推測される:
- lfnst_idx[ xS ][ yS ]が0に等しい、又は(xS,yS)が(0,0)に等しい、又は(xS,yS)が( LastSignificantCoeffX, LastSignificantCoeffY )に等しい場合、coded_sub_block_flag[ xS ][ yS ]は1として推測される。
- そうでない場合、coded_sub_block_flag[ xS ][ yS ]は0として推測される。
【0199】
XI.修正ジェネラル変換プロセス
【0200】
以下のプロセスは、本開示の実施形態に従った、現在のルマTBに関する例示的な修正された変換プロセスを示す。
【0201】
このプロセスへの入力は:(1)現在のルマTBの左上のサンプルを、現在のピクチャの左上ルマ・サンプルに対して指定するルマ位置(xTbY,yTbY)、(2)現在のTBの幅を指定する変数nTbW、(3)現在のTBの高さを指定する変数nTbH、(3)CBのカラー成分を指定する変数cIdx、(4)x=0..nTbW-1,y=0..nTbH-1によりスケーリングされた変換係数の(nTbW)x(nTbH)の配列d[x][y]を含む。
【0202】
このプロセスの出力は、x=0..nTbW-1,y=0..nTbH-1の残差サンプルの (nTbW)x(nTbH)配列r[x][y]である。
【0203】
lfnst_idx[xTbY][yTbY] が0に等しくなく、nTbWとnTbHの両方が4以上である場合、変数nLfnstSize,log2LfnstSize,numLfnstX,numLfnstY,及びnonZeroSizeは以下のように導出される:(1)log2LfnstSizeが3に等しく設定され、nLfnstOutSizeが48に等しく設定され;(2)nLfnstSizeが(1<<log2LfnstSize)に等しく設定され;(3) numLfnstXが1に等しく設定され;(4)numLfnstYが1に等しく設定され;(5)nTbWとnTbHの両方が8以下であるならば、nonZeroSizeが8に等しく設定され;(6)そうでない場合、nonZeroSizeが16に等しく設定される。
【0204】
xSbIdx=0..numLfnstX-1及びySbIdx=0..numLfnstY-1に関し、x=0..nonZeroSize-1に対する変数u[x]は、以下のように導出される:
xC = ( xSbIdx << log2LfnstSize ) + DiagScanOrder[ log2LfnstSize ][ log2LfnstSize ][ x ][ 0 ] (Eq.3)
yC = ( ySbIdx << log2LfnstSize ) + DiagScanOrder[ log2LfnstSize ][ log2LfnstSize ][ x ][ 1 ] (Eq.4)
u[ x ] = d[ xC ][ yC ] (Eq.5)
【0205】
x=0..nonZeroSize-1に対するu[x]は、スケーリングされた変換係数nonZeroSizeの変換入力長、変換出力長nLfnstOutSize、x=0..nonZeroSize-1に対するリストu[x]、変換セット選択のためのインデックスlfnstPredModeIntra、変換セットにおける変換選択のためのインデックスlfnst_idx[ xTbY ][ yTbY ]を入力として1次元変換プロセスを呼び出すことによって、x=0..nLfnstOutSize-1に対する変数配列v[x]に変換され、出力は、x=0..nLfnstOutSize-1に対するリストv[x]である。変数lfnstPredModeIntraは、IntraPredModeY[ xTbY ][ yTbY ]に等しく設定される。
【0206】
x = 0..min(nTbW, nLfnstSize) -1,y = 0..min(nTbH, nLfnstSize)-1に対する配列d[ ( xSbIdx << log2LfnstSize ) + x ][ ( ySbIdx << log2LfnstSize ) + y ]は、以下のようにして導出される:
【0207】
lfnstPredModeIntraが34以下であるか、又はINTRA_LT_CCLM,INTRA_T_CCLM,若しくはINTRA_L_CCLMに等しい場合、以下が適用される:
d[ ( xSbIdx << log2LfnstSize ) + x ][ ( ySbIdx << log2LfnstSize ) + y ] = ( y < 4 ) ? v[ x + ( y << log2LfnstSize ) ] : ( ( x < 4 ) ? v[ 32 + x + ( ( y - 4 ) << 2 ) ] : d[ x ][ y ] ) (Eq.7)
【0208】
そうでない場合、以下が適用される:
d[ ( xSbIdx << log2LfnstSize ) + x ][ ( ySbIdx << log2LfnstSize ) + y ] = ( x < 4 ) ? v[ y + ( x << log2LfnstSize ) ] : ( ( y < 4 ) ? v[ 32 + y + ( ( x - 4 ) << 2 ) ] : d[ x ][ y ] ) (Eq.8)
【0209】
XII.修正LFNSTプロセス
【0210】
以下のプロセスは、本開示の実施形態による例示的な修正されたLFNSTプロセスを示す。
【0211】
このプロセスに対する入力は:(1)変換入力長を指定する変数nonZeroSize、(2)変換出力長を指定する変数nTrS、(3) j=0..nonZeroSize-1に対する変換入力のリストx[j]、(4)変換セット選択のためのインデックスを指定する変数lfnstPredModeIntra、(5)変換セットにおける変換選択のためのインデックスを指定する変数lfnstIdxを含む。
【0212】
このプロセスの出力は、i=0..nTrS-1に対する変換されたサンプル のリストy [i]である。
【0213】
変換行列の導出プロセスは、変換出力長nTrS、変換セット選択のためのインデックスlfnstPredModeIntra、変換セットにおける変換選択のためのインデックスlfnstIdxを入力とし、変換行列lowFreqTransMatrixを出力として呼び出される。
【0214】
i=0..nTrS-1に対する変換されたサンプルのリストy[i]は、以下のように導出される:
【数20】
【0215】
以下のプロセスは、本開示の実施形態による別の例示的な修正されたLFNSTプロセスを示す。
【0216】
このプロセスに対する入力は、(1)変換入力長を指定する変数nonZeroSize、(2)変換出力長を指定する変数nTrS、(3)j=0..nonZeroSize-1に対するスケーリングされた非ゼロ変換係数のリストx[j]、(4)LFNSTセット選択に対するイントラ予測モードを指定する変数predModeIntra、及び(5)選択されたLFNSTセットにおける変換選択のためのLFNSTインデックスを指定する変数lfnstIdxを含む。
【0217】
このプロセスの出力は、i=0..nTrS-1に対する変換されたサンプルのリストy[i]である。
【0218】
変数lfnstIdxは、( predModeIntra % 2 ) == 0 ? lfnstIdx:( 3-lfnstIdx )に等しく設定される。
【0219】
指定された変換行列の導出プロセスは、変換出力長nTrS、LFNSTセット選択のためのイントラ予測モードpredModeIntra、選択されたLFNSTセットにおける変換選択のためのLFNSTインデックスlfnstIdxを入力とし、(nTrS)x(nonZeroSize)のLFNST行列lowFreqTransMatrixを出力として呼び出される。
【0220】
i=0..nTrS-1に対する変換されたサンプルのリストy[i]は、以下のように導出される:
【数21】
【0221】
XIII.修正LFNST行列導出プロセス
【0222】
以下のプロセスは、例示的な修正されたLFNST行列導出プロセスを示す。
【0223】
このプロセスに対する入力は、変換セット選択のためのインデックスを指定する変数lfnstPredModeIntraと、選択した変換セットにおける変換選択のためのインデックスを指定する変数lfnstIdxとを含む。
【0224】
このプロセスの出力は、変換行列lowFreqTransMatrixである。
【0225】
変数lfnstTrSetIdxは、lfnstPredModeIntraに依存して表10で指定される。
表10
【数22】
【0226】
変換行列lowFreqTransMatrixは、変換出力長nTrSによらず、lfnstTrSetIdxとlfnstIdxとに基づいて導出される。
【0227】
XIV.フローチャート
【0228】
図16は、本開示の実施形態による、例示的なプロセス(1600)の概略を示すフローチャートを示す。様々な実施形態において、プロセス(1600)は、端末デバイス(210)、(220)、(230)及び(240)における処理回路、ビデオ・エンコーダ(303)の機能を実行する処理回路、ビデオ・デコーダ(310)の機能を実行する処理回路、ビデオ・デコーダ(410)の機能を実行する処理回路、イントラ予測モジュール(452)の機能を実行する処理回路、ビデオ・エンコーダ(503)の機能を実行する処理回路、予測器 (535)の機能を実行する処理回路、イントラ・エンコーダ(622)の機能を実行する処理回路、イントラ・デコーダ(772)の機能を実行する処理回路などのような処理回路によって実行される。幾つかの実施形態では、プロセス(1600)は、ソフトウェア命令で実現され、従って処理回路がソフトウェア命令を実行する場合に、処理回路はプロセス(1600)を実行する。
【0229】
一般に、プロセス(1600)はステップ(S1610)で始まることが可能であり、プロセス(1600)は、コーディングされたビデオ・シーケンスの一部である現在のピクチャにおける現在のブロックに対する予測情報を復号化する。予測情報は、現在のブロックに対する第1イントラ予測モードと第1セカンダリ変換インデックスとを示す。次いで、プロセス(1600)はステップ(S1620)に進む。
【0230】
ステップ(S1620)において、プロセス(1600)は、第1イントラ予測モードと第1セカンダリ変換インデックスとに基づいてセカンダリ変換コアを決定する。次いで、プロセス(1600)はステップ(S1630)に進む。
【0231】
ステップ(S1630)において、プロセス(1600)は、セカンダリ変換コアに基づくプライマリ変換係数ブロックと、現在のブロックの第1変換係数ブロックとを生成する。第1変換係数ブロックは、予測情報から逆量子化され、第1変換係数ブロックのサイズは、セカンダリ変換コアのサイズより小さい。次いで、プロセス(1600)はステップ(S1640)に進む。
【0232】
ステップ(S1640)において、プロセス(1600)は、プライマリ変換係数ブロックに基づいて現在のブロックを再構成する。
【0233】
現在のブロックを再構築した後に、プロセス(1600)は終了する。
【0234】
実施形態において、プロセス(1600)は、各座標位置における値が0である第2変換係数ブロックを生成する。そして、プロセス(1600)は、第2変換係数ブロックの座標位置における値を、第1変換係数ブロックの同じ座標位置における値に基づいて決定する。プロセス(1600)は、第1セカンダリ変換コアと第2変換係数ブロックとに基づいてプライマリ変換係数ブロックを生成する。
【0235】
実施形態において、プロセス(1600)は第1セカンダリ変換コアの一部を、第1変換係数ブロックに適用する。
【0236】
実施形態において、プロセス(1600)は、1次元クロス・コンポーネント線形モデルのタイプに基づいて、プライマリ変換係数ブロックを転置するかどうかを決定する。そして、プロセス(1600)は、プライマリ変換係数ブロックは転置されるべきであるという決定に基づいて、プライマリ変換係数ブロックを転置する。
【0237】
本開示の態様によれば、第1変換係数ブロックのシンタックス要素は、第1セカンダリ変換インデックスを示すシンタックス要素を含む。
【0238】
実施形態において、第1セカンダリ変換インデックスは、第1変換係数ブロックの最後の非ゼロ変換係数の後であって、第1変換係数ブロックの係数コーディングに関連する1つ以上のシンタックス要素の前に、シグナリングされる。
【0239】
実施形態において、シンタックス要素の1つがシグナリングされるかどうかは、第1セカンダリ変換インデックスと、シンタックス要素の1つに関連付けられた変換係数とに依存する。
【0240】
実施形態において、現在のブロックに対する1つ以上のプライマリ変換コアを示すシンタックス要素は、第1変換係数ブロックの最後の非ゼロ変換係数の後であって、第1変換係数ブロックの係数コーディングに関連する1つ以上のシンタックス要素の前に、シグナリングされる。
【0241】
実施形態において、プロセス(1600)は、第1セカンダリ変換コアの形状に基づいて、第1セカンダリ変換インデックスのエントロピー・コーディングに使用されるコンテキストを決定する。
【0242】
実施形態において、プロセス(1600)は、第1セカンダリ変換インデックス、第1イントラ予測モードのモード番号、及び第1イントラ予測モードに隣接する第2イントラ予測モードに基づいて、セカンダリ変換コアを決定する。
【0243】
実施形態において、プロセス(1600)は、第1イントラ予測モードのモード番号に基づいて、第1セカンダリ変換インデックスのエントロピー・コーディングに使用されるコンテキストを決定する。
【0244】
XV.コンピュータ・システム
【0245】
更に、実施形態、エンコーダ、及びデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実現されることが可能である。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に格納されたプログラムを実行する。
【0246】
上述した技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することが可能であり、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶することが可能である。例えば、
図17は、開示される対象事項の特定の実施形態を実現するのに適したコンピュータ・システム(1700)を示す。
【0247】
コンピュータ・ソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に実行されることが可能な命令、又は解釈やマイクロコード実行などを経由する命令、を含むコードを作成することが可能である。
【0248】
命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム・デバイス、モノのインターネット・デバイス等を含む、種々のタイプのコンピュータ又はそのコンポーネント上で実行されることが可能である。
【0249】
コンピュータ・システム(1700)について
図17に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの使用範囲又は機能性に関する如何なる制限も示唆するようには意図されていない。また、コンポーネントの構成は、コンピュータ・システム(1700)の例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性や要件を有するものとして解釈されてはならない。
【0250】
コンピュータ・システム(1700)は、特定のヒューマン・インターフェース入力デバイスを含むことが可能である。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、聴覚的な入力(例えば、声、拍手)、視覚的な入力(例えば、ジェスチャ)、嗅覚的な入力(図示されていない)を介して、1人以上の人間ユーザーによる入力に応答することが可能である。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体ピクチャを含む3次元ビデオ)のような、人間による意識的な入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することが可能である。
【0251】
入力ヒューマン・インターフェース・デバイスは、キーボード(1701)、マウス(1702)、トラックパッド(1703)、タッチ・スクリーン(1710)、データ・グローブ(不図示)、ジョイスティック(1705)、マイクロホン(1706)、スキャナ(1707)、カメラ(1708)のうちの(描かれているものはそれぞれ唯1つであるが)1つ以上を含む可能性がある。
【0252】
コンピュータ・システム(1700)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザーの感覚を刺激することが可能である。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(1710)、データ・グローブ(不図示)、ジョイスティック(1705)による触覚フィードバックであるが、入力として役立たない触覚フィードバック・デバイスが存在する可能性もある)、聴覚的な出力デバイス(例えば、スピーカー(1709)、ヘッドフォン(不図示せず))、視覚的な出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(1710)であり、各々はタッチ・スクリーン入力機能を備えるか又は備えておらず、各々は触覚フィードバック機能を備えるか又は備えておらず、それらのうちの幾つかは、二次元的な視覚的な出力、立体出力のような手段による三次元以上の出力を出力することが可能であってもよい;仮想現実メガネ(図示せず)、ホログラフィック・ディスプレイ、及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことが可能である。これらの視覚的な出力デバイス(スクリーン(1710)等)は、グラフィックス・アダプタ(1750)を介してシステム・バス(1748)に接続されることが可能である。
【0253】
コンピュータ・システム(1700)はまた、CD/DVD等の媒体(1721)を使うCD/DVD ROM/RW(1720)を含む光媒体、サム・ドライブ(1722)、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ(1723)、テープ及びフロッピー・ディスク(図示せず)等のレガシー磁気媒体(不図示)、セキュリティ・ドングル(不図示)等の特殊化されたROM/ASIC/PLDベースのデバイスのような、人間がアクセス可能な記憶デバイス及びそれらに関連する媒体を含むことも可能である。
【0254】
当業者は、ここで開示される対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の過渡的な信号を包含しないことも理解するはずである。
【0255】
コンピュータ・システム(1700)は、1つ以上の通信ネットワーク(1755)へのネットワーク・インターフェース(1754)も含むことが可能である。1つ以上の通信ネットワーク(1755)は、例えば、無線、有線、光であるとすることが可能である。1つ以上のネットワーク(1755)は、更に、ローカル、ワイド・エリア、メトロポリタン、車両及び工業、リアルタイム、遅延耐性などに関するものであるとすることが可能である。1つ以上の通信ネットワーク(1755)の例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTE等を含む)、TVの有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、CANBusを含む車両及び産業などを含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(1749)に取り付けられる外部ネットワーク・インターフェース・アダプタを必要とする(例えば、コンピュータ・システム(1300)のUSBポート);その他は、一般に、以下に説明するようなシステム・バスに取り付けることによって、コンピュータ・システム(1700)のコアに統合される(例えば、イーサーネット・インターフェースはPCコンピュータ・システム内に、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システム内に統合される)。これらのうちの任意のネットワークを使用して、コンピュータ・システム(1700)は、他のエンティティと通信することが可能である。このような通信は、片方向受信専用(例えば、放送テレビ)、片方向送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は双方向、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0256】
前述のヒューマン・インターフェース・デバイス、ヒューマン・アクセシブル・ストレージ・デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(1700)のコア(1740)に取り付けられることが可能である。
【0257】
コア(1740)は、1つ以上の中央処理ユニット(CPU)(1741)、グラフィックス処理デバイス(GPU)(1742)、フィールド・プログラマブル・ゲート・エリア(FPGA)(1743)の形式における特殊プログラマブル処理デバイス、特定のタスク用のハードウェア・アクセラレータ(1744)等を含むことが可能である。これらのデバイスは、リード・オンリ・メモリ(ROM)(1745)、ランダム・アクセス・メモリ(1746)、内部大容量ストレージ・デバイス(例えば、内的な非ユーザー・アクセシブル・ハード・ドライブ、SSD等)(1747)と共に、システム・バス(1748)を介して接続されることが可能である。幾つかのコンピュータ・システムでは、システム・バス(1748)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である可能性がある。周辺デバイスは、コアのシステム・バス(1748)に直接取り付けられるか、又は周辺バス(1749)を介して取り付けられることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0258】
CPU(1741)、GPU(1742)、FPGA(1743)、及びアクセラレータ(1744)は、組み合わされて、前述のコンピュータ・コードを構成することが可能な特定の命令を実行することが可能である。コンピュータ・コードは、ROM(1745)又はRAM(1746)に格納されることが可能である。一時的なデータはRAM(1746)に格納されることが可能である一方、永続的なデータは例えば内的な大容量ストレージ(1747)に格納されることが可能である。任意のメモリ・デバイスに対する高速な記憶及び検索は、キャッシュ・メモリを利用することで可能になる可能性があり、キャッシュ・メモリは、1つ以上のCPU(1741)、GPU(1742)、大容量ストレージ(1747)、ROM(1745)、RAM(1746)等と密接に関連付けることが可能である。
【0259】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装済み動作を実行するためのコンピュータ・コードをその上に有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、又はそれらは、コンピュータ・ソフトウェアの分野における当業者にとって周知であり且つ入手可能な種類のものであるとすることが可能である。
【0260】
例示として、限定ではなく、アーキテクチャ(1700)、具体的にはコア(1740)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行する機能を提供することが可能である。そのようなコンピュータ読み取り可能な媒体は、コア内部の大容量ストレージ(1747)又はROM(1745)のような非一時的な性質のコア(1740)の特定のストレージと同様に、上述したようなユーザー・アクセシブル大容量ストレージに関連するメディアであるとすることが可能である。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(1740)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、RAM(1746)に記憶されたデータ構造を定めること、及びソフトウェアによって定められたプロセスに従ってそのようなデータ構造を修正することを含む、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を、コア(1740)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(1744))内に配線された又は他の方法で具現化されたロジックの結果として機能を提供することが可能であり、その回路は、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を実行することを、ソフトウェアの代わりに又はそれと共に実行することが可能である。ソフトウェアに対する言及はロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能な媒体に対する言及は、実行のためのソフトウェアを記憶する(集積回路(IC)のような)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を包含することが可能である。本開示はハードウェア及びソフトウェアの適切な任意の組み合わせを包含する。
【0261】
本開示は、幾つかの例示的な実施形態を説明してきたが、本開示の範囲内に該当する、変更、置換、及び種々の代替的な均等物が存在する。従って、当業者は、本願で明示的には図示も説明もされていないが、本開示の原理を具体化し、従ってその精神及び範囲内にある多くのシステム及び方法を考え出すことが可能であることは理解されるであろう。
【0262】
付録A:頭字語
AMT: Adaptive Multiple Transform
AMVP: Advanced Motion Vector Prediction
ASIC: Application-Specific Integrated Circuit
ATMVP: Alternative/Advanced Temporal Motion Vector Prediction
BDOF: Bi-directional Optical Flow
BDPCM (or RDPCM): Residual Difference Pulse Coded Modulation
BIO: Bi-directional Optical Flow
BMS: Benchmark Set
BT: Binary Tree
BV: Block Vector
CANBus: Controller Area Network Bus
CB: Coding Block
CBF: Coded Block Flag
CCLM: Cross-Component Linear Mode/Model
CD: Compact Disc
CPR: Current Picture Referencing
CPU: Central Processing Unit
CRT: Cathode Ray Tube
CTB: Coding Tree Block
CTU: Coding Tree Unit
CU: Coding Unit
DM: Derived Mode
DPB: Decoder Picture Buffer
DVD: Digital Video Disc
EMT: Enhanced Multiple Transform
FPGA: Field Programmable Gate Areas
GOP: Group of Picture
GPU: Graphics Processing Unit
GSM: Global System for Mobile communications
HDR: High Dynamic Range
HEVC: High Efficiency Video Coding
HRD: Hypothetical Reference Decoder
IBC: Intra Block Copy
IC: Integrated Circuit
IDT: Identify Transform
ISP: Intra Sub-Partitions
JEM: Joint Exploration Model
JVET: Joint Video Exploration Team
LAN: Local Area Network
LCD: Liquid-Crystal Display
LFNST: Low Frequency Non-Separable Transform, or Low Frequency Non-Separable Secondary Transform
LTE: Long-Term Evolution
L_CCLM: Left-Cross-Component Linear Mode/Model
LT_CCLM: Left and Top Cross-Component Linear Mode/Model
MIP: Matrix based Intra Prediction
MPM: Most Probable Mode
MRLP (or MRL): Multiple Reference Line Prediction
MTS: Multiple Transform Selection
MV: Motion Vector
NSST: Non-Separable Secondary Transform
OLED: Organic Light-Emitting Diode
PBs: Prediction Blocks
PCI: Peripheral Component Interconnect
PDPC: Position Dependent Prediction Combination
PLD: Programmable Logic Device
PPR: Parallel-Processable Region
PPS: Picture Parameter Set
PU: Prediction Unit
QT: Quad-Tree
RAM: Random Access Memory
ROM: Read-Only Memory
RST: Reduced-Size Transform
SBT: Sub-block Transform
SCC: Screen Content Coding
SCIPU: Small Chroma Intra Prediction Unit
SDR: Standard Dynamic Range
SEI: Supplementary Enhancement Information
SNR: Signal Noise Ratio
SPS: Sequence Parameter Set
SSD: Solid-state Drive
SVT: Spatially Varying Transform
TSM: Transform Skip Mode
TT: Ternary Tree
TU: Transform Unit
T_CCLM: Top Cross-Component Linear Mode/Model
USB: Universal Serial Bus
VPDU: Visual Process Data Unit
VPS: Video Parameter Set
VUI: Video Usability Information
VVC: Versatile Video Coding
WAIP: Wide-Angle Intra Prediction