(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-28
(45)【発行日】2023-05-11
(54)【発明の名称】ビデオ復号の方法および装置、並びにプログラム
(51)【国際特許分類】
H04N 19/119 20140101AFI20230501BHJP
H04N 19/136 20140101ALI20230501BHJP
H04N 19/176 20140101ALI20230501BHJP
H04N 19/436 20140101ALI20230501BHJP
H04N 19/70 20140101ALI20230501BHJP
【FI】
H04N19/119
H04N19/136
H04N19/176
H04N19/436
H04N19/70
(21)【出願番号】P 2021536694
(86)(22)【出願日】2020-03-20
(86)【国際出願番号】 US2020023829
(87)【国際公開番号】W WO2020197996
(87)【国際公開日】2020-10-01
【審査請求日】2021-06-22
(32)【優先日】2019-03-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-19
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/235511(WO,A1)
【文献】国際公開第2020/235510(WO,A1)
【文献】米国特許出願公開第2020/0037002(US,A1)
【文献】Chih-Wei Hsu et al.,CE1-related: Constraint for binary and ternary partitions,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-K0556-v2,11th Meeting: Ljubljana, SI,2018年07月,pp.1-3
【文献】Xin Zhao, Xiang Li, and Shan Liu,CE6-related: Configurable max transform size in VVC,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0362,14th Meeting: Geneva, CH,2019年03月13日,pp.1-8
【文献】Ling Li, et al.,Maximum transform size signaling in HLS,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0227-v1,14th Meeting: Geneva, CH,2019年03月19日,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオ復号の方法であって、
Wピクセルの幅、及びHピクセルの高さを有する符号化ブロックを受信するステップと、
前記符号化ブロックをサブ処理ユニット(SPU)に分割するステップであって、各サブ処理ユニットは、WまたはKピクセルのうちの小さい方の幅、及びHまたはKピクセルのうちの小さい方の高さを有し、Kは、K×Kピクセルのエリアを有する仮想パイプラインデータユニット(VPDU)のディメンションである、ステップと、
各SPUを変換ユニットに分割するステップであって、各変換ユニットはMピクセルの最大許容変換ユニットサイズを有し、MはKよりも小さい、ステップと、
Mピクセルの前記最大許容変換ユニットサイズを示すビットストリームにおける構文要素を受信するステップであって、前記最大許容変換ユニットサイズは制御可能である、ステップと、
を含む方法。
【請求項2】
SPU処理順序に従って前記SPUの変換ユニットを処理するステップ、をさらに含む、請求項
1に記載の方法。
【請求項3】
前記SPUを処理するための前記SPU処理順序は、ラスタースキャン順序、垂直スキャン順序、ジグザグ順序、または対角スキャン順序のうちの1つである、
請求項
2に記載の方法。
【請求項4】
各SPU内の前記変換ユニットを処理するための順序は、ラスタースキャン順序、垂直スキャン順序、ジグザグ順序、または対角スキャン順序のうちの1つである、
請求項
2に記載の方法。
【請求項5】
前記SPU処理順序、及び各SPU内の前記変換ユニットを処理するための順序は両方ともラスタースキャン順序である、
請求項
2に記載の方法。
【請求項6】
Kは64であり、Mは32である、
請求項1~
5のいずれか1項に記載の方法。
【請求項7】
回路を備えるビデオ復号の装置であって、
前記回路は、請求項1~
6のいずれか1項に記載の方法を実行するように構成される装置。
【請求項8】
コンピュータに、請求項1~
6のいずれか1項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年3月19日に出願され、「ビデオ符号化のための方法および装置」と題された、米国特許出願第16/824,440号の優先権の利益を主張し、当該出願は、2019年3月22日に出願され、「VPDU互換最大変換制御」と題された、米国仮出願第62/822,757号の優先権の利益を主張する。先行の出願の開示は、参照することによりその全体として本出願に組み込まれる。
【0002】
本開示は、一般にビデオ符号化に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書中に提供される「背景技術」の記述は、開示の文脈を一般的に提供するのを目的としている。出願時に先行技術としての資格を有しない記述の態様は勿論のこと、現在指名されている発明者の成果は、本背景技術セクションにおいて記述されている程度において、本開示に対する先行技術として明示的にも黙示的にも認められてはいない。
【0004】
ビデオの符号化と復号は、動き補償を伴うインターピクチャ予測を使用して実行できる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連するクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば、毎秒60枚または60Hzの固定または可変のピクチャレート(非公式にはフレームレートとも呼ぶ)を持つことができる。非圧縮ビデオには、重要なビットレート要件がある。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)には、1.5Gbit/sに近い帯域幅が必要である。1時間分の当該ビデオは、600GBytesを超えるストレージスペースを必要とする。
【0005】
ビデオの符号化と復号の目的の1つは、圧縮によって入力ビデオ信号の冗長性を減らすことである。圧縮は、前述の帯域幅またはストレージスペースの要件を、場合によっては2桁以上低減するのに役立つ。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用することができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構成できる手法を指す。非可逆圧縮を使用する場合、再構成された信号は元の信号と同一ではない場合があるが、元の信号と再構成された信号の間の歪みは、再構成された信号を意図されたアプリケーションに役立てる程度に小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なる。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピー符号化を含む、いくつかの広いカテゴリーからの手法を利用することができる。
【0007】
ビデオ符号化技術には、イントラ符号化と呼ぶ手法を含めることができる。イントラ符号化では、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオ符号化では、ピクチャはサンプルのブロックに空間的に細分される。サンプルのブロックがすべてイントラモードで符号化される場合、そのピクチャはイントラピクチャである可能性がある。イントラピクチャおよび独立したデコーダリフレッシュピクチャなどのそれらの派生物は、デコーダの状態をリセットするために使用できるため、符号化されたビデオビットストリームおよびビデオセッションの最初のピクチャとして、または静止ピクチャとして使用できる。イントラブロックのサンプルは変換にさらされることができ、変換係数はエントロピー符号化の前に量子化されることができる。イントラ予測は、変換前の領域のサンプル値を最小化する手法であり得る。場合によっては、変換後のDC値が小さく、かつAC係数が小さいほど、エントロピー符号化後のブロックを表すために所定の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えば、MPEG-2世代の符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、一部の新しいビデオ圧縮技術は、例えば、周囲のサンプルデータおよび/または空間的に隣接しデコード順で先行するデータのブロックの符号化/復号中に取得されたメタデータから試みる手法を含む。このような手法は、以降「イントラ予測」手法と呼ぶ。なお、少なくとも一部の場合では、イントラ予測は再構成中の現在のピクチャからの参照データのみを使用し、参照ピクチャからは使用しない。
【0009】
イントラ予測にはさまざまな形式がある。所定のビデオ符号化技術で使用され得るそのような手法が複数ある場合、使用されている手法は、イントラ予測モードで符号化できる。場合によっては、モードにサブモードおよび/またはパラメータが含まれることがあり、それらを個別に符号化することも、モードコードワードに含ませることもできる。所定のモード/サブモード/パラメータの組み合わせに用いられるコードワードは、イントラ予測による符号化効率の向上に影響を与えることができ、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術も同様である。
【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】
H.265/HEVC(ITU-T Rec.H.265、「高効率ビデオ符号化」、2016年12月)には、様々なMV予測メカニズムが記載されている。H.265が提供する多くのMV予測メカニズムのうち、ここで説明するのは、以降、「空間的マージ」と呼ぶ手法である。
【0014】
図1を参照すると、現在ブロック(101)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるとエンコーダによって動き検出プロセスにおいて発見されたサンプルを含む。そのMVを直接符号化する代わりに、A0、A1、およびB0、B1、B2(それぞれ102から106)で示される5つの周囲のサンプルのいずれか1つに関連付けられるMVを用いて、1つ以上の参照ピクチャに関連付けられるメタデータから、例えば最新の(デコード順で)参照ピクチャから、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0015】
本開示の態様は、ビデオ符号化/復号のための方法および装置を提供する。一部の例では、ビデオ復号のための装置は、受信回路および処理回路を含む。処理回路は、Wピクセルの幅、及びHピクセルの高さを有する符号化ブロックを受信し、前記符号化ブロックをサブ処理ユニット(SPU)に分割するように構成され、各サブ処理ユニットは、WまたはKピクセルのうちの小さい方の幅、及びHまたはKピクセルのうちの小さい方の高さを有し、Kは、K×Kピクセルのエリアを有する仮想パイプラインデータユニット(VPDU)のディメンション(dimension)である。各SPUは、変換ユニットに分割され、各変換ユニットはMピクセルの最大許容変換ユニットサイズを有する。
【0016】
一実施形態では、構文要素は、Mピクセルの前記最大許容変換ユニットサイズを示すビットストリームにおいて受信されることができる。前記SPUの前記変換ユニットは、SPU処理順序に従って処理されることができる。一例では、前記SPUを処理するための前記SPU処理順序は、ラスタースキャン順序、垂直スキャン順序、ジグザグ順序、または対角スキャン順序のうちの1つである。さらに、各SPU内の前記変換ユニットを処理するための順序は、ラスタースキャン順序、垂直スキャン順序、ジグザグ順序、または対角スキャン順序のうちの1つである。一例では、前記SPU処理順序および各SPU内の前記変換ユニットを処理するための順序は両方ともラスタースキャン順序である。さらに、一実施形態では、Kは64であり、Mは32である。
【0017】
本開示の態様はまた、ビデオ復号のためにコンピュータによって実行されると、コンピュータにビデオ復号のための方法を実行させる命令を格納する非一時的なコンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0018】
開示される主題のさらなる特徴、性質、およびさまざまな利点は、以下の詳細な説明および添付の図面からさらに明らかになるであろう。
【0019】
【
図1】一例における現在ブロックおよびその周囲の空間マージ候補の概略図である。
【
図2】一実施形態による通信システム(200)の簡略化されたブロック図の概略図である。
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図6】別の実施形態によるエンコーダのブロック図を示す。
【
図7】別の実施形態によるデコーダのブロック図を示す。
【
図8A】四分木プラス二分木(QTBT)構造(820)で分割されるCTUを示す。
【
図10A】それぞれ、4点、8点、16点、および32点DCT-2変換の変換コア行列を示す。
【
図10B】それぞれ、4点、8点、16点、および32点DCT-2変換の変換コア行列を示す。
【
図10C】それぞれ、4点、8点、16点、および32点DCT-2変換の変換コア行列を示す。
【
図10D】それぞれ、4点、8点、16点、および32点DCT-2変換の変換コア行列を示す。
【
図11A】64点DCT-2変換の64×64変換コア行列を示す。
【
図11B】64点DCT-2変換の64×64変換コア行列を示す。
【
図11C】64点DCT-2変換の64×64変換コア行列を示す。
【
図11D】64点DCT-2変換の64×64変換コア行列を示す。
【
図11E】64点DCT-2変換の64×64変換コア行列を示す。
【
図12】適応多重変換(AMT)の選択された離散正弦変換(DST)/離散余弦変換(DCT)の変換基底関数を示す。
【
図13】mts_idx値とそれぞれの水平または垂直変換との間のマッピング関係を示す表(1300)を示す。
【
図16】ブロックサイズに応じたサブパーティションの数を示す。
【
図17】ブロックが2つのサブパーティションに分割されるシナリオを示す。
【
図18】ブロックが4つのサブパーティションに分割されるシナリオを示す。
【
図19A】イントラサブパーティション(ISP)符号化モードのために信号を送られる関連する構文要素を含む例示的な構文テーブル(1900)を示す。
【
図19B】イントラサブパーティション(ISP)符号化モードのために信号を送られる関連する構文要素を含む例示的な構文テーブル(1900)を示す。
【
図20A】サブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す。
【
図20B】サブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す。
【
図20C】サブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す。
【
図20D】サブブロック変換(SBT)でサポートされるサブブロックタイプ、サイズ、および位置を示す。
【
図21A】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21B】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21C】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21D】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21E】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21F】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21G】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21H】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図21I】SBTが使用される場合のビデオ符号化規格の仕様テキストへの変更を示す。
【
図22】一部の実施形態で使用される異なるYUVフォーマット(例えば、4:4:4、4:2:2、4:1:1、および4:2:0)を示す。
【
図23】許容されない三分木(TT)と二分木(BT)の分割の例を示す。
【
図24】128×64サンプルのサイズを有する符号化ブロック(2410)を示す。
【
図25】128×32サンプルのサイズを有する符号化ブロック(2510)を示す。
【
図26】128×32サンプルのサイズを有する符号化ブロック(2610)を示す。
【
図27】本開示の一実施形態による、変換ブロック分割および処理プロセス(2700)を概説するフローチャートを示す。
【
図28】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0020】
I.ビデオ符号化のためのエンコーダおよびデコーダ
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1の対の端末装置(210)および(220)を含む。
図2の例では、第1の対の端末装置(210)および(220)は、データの単方向送信を実行する。例えば、端末装置(210)は、ネットワーク(250)を介して他方の端末装置(220)へ送信するためにビデオデータ(例えば、端末装置(210)によってキャプチャされたビデオピクチャのストリーム)を符号化し得る。エンコードされたビデオデータは、1つ以上の符号化されたビデオビットストリームの形態で送信されることができる。端末装置(220)は、ネットワーク(250)から符号化ビデオデータを受信し、符号化ビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向のデータ送信は、メディア供給アプリケーションなどで一般的であり得る。
【0021】
他の例では、通信システム(200)は、例えばビデオ会議中に発生し得る符号化ビデオデータの双方向送信を実行する第2の対の端末装置(230)および(240)を含む。データの双方向送信の場合、一例では、端末装置(230)および(240)のそれぞれは、ネットワーク(250)を介して端末装置(230)および(240)のうちの他方の端末装置へ送信するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)を符号化し得る。端末装置(230)および(240)の一方は、端末装置(230)および(240)の他方から送信された符号化ビデオデータを受信し、符号化ビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャをアクセス可能な表示装置に表示することができる。
【0022】
図2の例では、端末装置(210)、(220)、(230)および(240)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、本開示の原理はこれに制限されることはない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、および/または専用のビデオ会議機器に適用可能である。ネットワーク(250)は、例えば有線および/または無線通信ネットワークを含む、端末装置(210)、(220)、(230)および(240)間で符号化ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要でないかもしれない。
【0023】
図3は、開示された主題の適用の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、および、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応アプリケーションに等しく適用可能である。
【0024】
ストリーミングシステムは、例えば非圧縮のビデオピクチャ(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のコンテキストに使用されてもよい。
【0025】
なお、電子デバイス(320)および(330)は、他の構成要素(図示せず)を含むことができる。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)も含むことができる。
【0026】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信機(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、
図3の例におけるビデオデコーダ(310)の代わりに使用されることができる。
【0027】
受信機(431)は、ビデオデコーダ(410)によってデコードされる1つ以上の符号化ビデオシーケンスを受信することができ、同一または別の一実施形態では、一度に1つの符号化ビデオシーケンスを受信してもよく、各符号化ビデオシーケンスのデコードは、他の符号化ビデオシーケンスから独立している。符号化ビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(401)から受信されることができる。受信機(431)は、それぞれの使用エンティティ(描画せず)に転送され得る他のデータ、例えば、符号化オーディオデータおよび/または補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信機(431)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(415)は、受信機(431)とエントロピーデコーダ/パーサ(420)(以降、「パーサ(420)」)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他の場合、ビデオデコーダ(410)(描画せず)の外部に存在し得る。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ(410)の外部にバッファメモリ(描画せず)が存在し、さらに、例えば、再生タイミングを取り扱うためにビデオデコーダ(410)の内部に別のバッファメモリ(415)が存在し得る。受信機(431)が十分な帯域幅および可制御性を有する記憶/転送装置から、または等同期ネットワークからデータを受信する際に、バッファメモリ(415)は必要とされないことがあり、または小さくされることがある。インターネットのようなベストエフォートパケットネットワークで用いるために、バッファメモリ(415)が必要になる場合があり、比較的大きいことがあり、有利には適応サイズであることができ、ビデオデコーダ(410)の外部のオペレーティングシステムまたは類似の要素(描画せず)に少なくとも部分的に実現されてもよい。
【0028】
ビデオデコーダ(410)は、符号化ビデオシーケンスからシンボル(421)を再構成するパーサ(420)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(410)の操作を管理するための情報、および、電子デバイス(430)の不可欠な部分ではないが、
図4に示すように電子デバイス(430)に結合され得るレンダリングデバイス(412)(例えば、表示画面)のようなレンダリングデバイスを制御する潜在的情報を含む。レンダリングデバイスのための制御情報は、補助強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(描画せず)の形態であってよい。パーサ(420)は、受信される符号化ビデオシーケンスを構文解析/エントロピーデコードすることができる。符号化ビデオシーケンスの符号化は、ビデオ符号化技術または規格に合わせることができ、可変長符号化、ハフマン符号化、文脈感受性を有するもしくは有さない算術符号化などを含む様々な原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化ビデオシーケンスからビデオデコーダ内のピクセルの少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャ群(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(420)は、符号化ビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報をも抽出してもよい。
【0029】
パーサ(420)は、シンボル(421)を作成するために、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析操作を実行してもよい。
【0030】
シンボル(421)の再構成は、符号化ビデオピクチャまたはその一部のタイプ(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)、および他の要因に応じて、複数の異なるユニットが関与することができる。どのユニットが、どのように関与するかは、パーサ(420)によって符号化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数のユニットとの間のサブグループ制御情報の流れは、明確にするために示されていない。
【0031】
すでに述べた機能ブロックに加え、ビデオデコーダ(410)は、以下で説明されるように複数の機能ユニットに概念的に細分されることができる。商業的な制約の下で実際の実施にあたっては、これらのユニットの多くは互いに密接に相互作用し、少なくとも一部は互いに統合することができる。しかしながら、開示された主題の説明の目的で、以下の機能ユニットへの概念的な細分は、適切に行われる。
【0032】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(421)としてパーサ(420)から受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力可能なサンプル値を含むブロックを出力することができる。
【0033】
場合によっては、スケーラ/逆変換(451)の出力サンプルは、イントラ符号化ブロック、すなわち、予め再構成されたピクチャからの予測情報を用いていないが、現在ピクチャの予め再構成された部分からの予測情報を使用できるブロックに関係することがある。このような予測情報は、イントラピクチャ予測ユニット(452)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(452)は、現在ピクチャバッファ(458)から取り出された周囲の既に再構成された情報を用いて、再構成中のブロックの同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(458)は、例えば、一部再構成された現在ピクチャおよび/または完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(455)は、場合によっては、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に追加する。
【0034】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インター符号化された、潜在的に動き補償されたブロックに関係することがある。このような場合、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(421)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)の出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ぶ)。動き補償予測ユニット(453)が予測サンプルを取り出す参照ピクチャメモリ(457)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル(421)の形態で動き補償予測ユニット(453)に利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプル正確動きベクトルが使用中であるときに参照ピクチャメモリ(457)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
【0035】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において様々なループフィルタリング手法を受けられる。ビデオ圧縮技術は、符号化ビデオシーケンス(符号化されたビデオビットストリームとも呼ぶ)に含まれる、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能とされたパラメータによって制御されることができ、それに、符号化ピクチャまたは符号化ビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構成されループフィルタリングされたサンプル値に応じることもできるループ内フィルタ技術を含むことができる。
【0036】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)へ出力されることができるとともに、将来のインターピクチャ予測で用いるために参照ピクチャメモリ(457)に記憶されることができるサンプルストリームであり得る。
【0037】
特定の符号化ピクチャは、完全に再構成されると、将来の予測のために参照ピクチャとして使用されることができる。例えば、現在ピクチャに対応する符号化ピクチャが完全に再構成され、符号化ピクチャが(例えば、パーサ(420)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(458)は、参照ピクチャメモリ(457)の一部になることができ、次の符号化ピクチャの再構成を開始する前に新しい現在ピクチャバッファが再割当てされることができる。
【0038】
ビデオデコーダ(410)は、ITU-T Rec.H.265のような規格での所定のビデオ圧縮技術に従ってデコード操作を実行することができる。符号化ビデオシーケンスが、ビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、符号化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールから、特定のツールをそのプロファイルで使用できる唯一のツールとして選択することができる。符号化ビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様および符号化ビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0039】
一実施形態では、受信機(431)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、符号化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、および/または、元のビデオデータをより正確に再構成するためにビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態にされることができる。
【0040】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信機(540)(例えば、送信回路)を含む。
図3の例におけるビデオエンコーダ(303)の代わりにビデオエンコーダ(503)を用いることができる。
【0041】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によって符号化されるビデオ画像をキャプチャし得るビデオソース(501)(
図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信することができる。他の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0042】
ビデオソース(501)は、ビデオエンコーダ(503)によって符号化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース(501)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャそのものは、ピクセルの空間アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
【0043】
一実施形態によれば、ビデオエンコーダ(503)は、リアルタイムでまたはアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャを符号化し、符号化ビデオシーケンス(543)に圧縮することができる。適切な符号化速度を実行することは、コントローラ(550)の機能の1つである。一部の実施形態では、コントローラ(550)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、カップリングは示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化手法のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(550)は、あるシステム設計に対して最適化されたビデオエンコーダ(503)に関する他の適切な機能を有するように構成されてもよい。
【0044】
一部の実施形態では、ビデオエンコーダ(503)は、符号化ループで動作するように構成される。過度に簡略化した説明として、一例では、符号化ループは、ソースコーダ(530)(例えば、符号化対象となる入力ピクチャおよび参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、およびビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)を含むことができる。デコーダ(533)は、シンボルを再構成して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する(シンボルと符号化されたビデオビットストリーム間の如何なる圧縮は、開示された主題で考慮されるビデオ圧縮技術では可逆であるためである)。再構成されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(534)に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(534)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性の該基本原理(および例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連分野にも使用されている。
【0045】
「ローカル」デコーダ(533)の動作は、前文で
図4に関連して既に詳細に説明された、ビデオデコーダ(410)のような「リモート」デコーダの動作と同様であり得る。しかしながら、
図4も簡単に参照し、シンボルが使用可能であり、エントロピーコーダ(545)およびパーサ(420)による符号化ビデオシーケンスへのシンボルのエンコード/デコードが可逆であり得るので、バッファメモリ(415)、およびパーサ(420)を含むビデオデコーダ(410)のエントロピーデコード部分は、ローカルデコーダ(533)では完全に実現されない場合がある。
【0046】
これで分かるように、デコーダに存在する構文解析/エントロピーデコード以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示された主題は、デコーダの動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
【0047】
動作中、一部の例では、ソースコーダ(530)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の予め符号化されたピクチャを参照して入力ピクチャを予測的に符号化する動き補償予測符号化を実行してもよい。このようにして、符号化エンジン(532)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャのピクセルブロックとの差異を符号化する。
【0048】
ローカルビデオデコーダ(533)は、ソースコーダ(530)で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化ビデオデータをデコードすることができる。符号化エンジン(532)の動作は、有利には非可逆プロセスであり得る。符号化ビデオデータがビデオデコーダ(
図5に示されていない)でデコードされ得るとき、再構成されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(533)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ(534)に記憶させることができる。このようにして、ビデオエンコーダ(503)は、遠端ビデオデコーダによって取得される再構成された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構成された参照ピクチャのコピーをローカルに記憶し得る。
【0049】
予測器(535)は、符号化エンジン(532)の予測検索を実行することができる。つまり、符号化対象となる新しいピクチャについて、予測器(535)は、(候補の参照ピクセルブロックとしての)サンプルデータ、または、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(534)で検索することができる。予測器(535)は、適切な予測基準を見つけるために、サンプルブロック/ピクセルブロックごとに動作することができる。場合によっては、予測器(535)で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
【0050】
コントローラ(550)は、例えば、ビデオデータをエンコードするためのパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)の符号化動作を管理することができる。
【0051】
前述のすべての機能ユニットの出力は、エントロピーコーダ(545)においてエントロピー符号化を受けられる。エントロピーコーダ(545)は、例えば、ハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0052】
送信機(540)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(560)を介した送信の準備のために、エントロピーコーダ(545)によって作成された符号化ビデオシーケンスをバッファリングすることができる。送信機(540)は、ビデオコーダ(503)からの符号化ビデオデータを、送信されるべき他のデータ、例えば、符号化オーディオデータおよび/または補助データストリーム(ソースは示されていない)とマージすることができる。
【0053】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。符号化中、コントローラ(550)は、各符号化ピクチャに特定の符号化ピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得る符号化手法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。
【0054】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずに符号化および復号され得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形、並びに、それらのそれぞれの用途および特徴を知っている。
【0055】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために多くとも1つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測により符号化および復号され得るものであり得る。
【0056】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために多くとも2つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測により符号化および復号され得るものであり得る。同様に、多重予測ピクチャは、単一のブロックの再構成のために2つを超えた参照ピクチャおよび関連メタデータを用いることができる。
【0057】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロック単位で符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定された他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同一のピクチャの既に符号化されたブロック(空間的予測またはイントラ予測)を参照して予測的に符号化されてもよい。Pピクチャのピクセルブロックは、1つの予め符号化された参照ピクチャを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化され得る。Bピクチャのブロックは、1つまたは2つの予め符号化された参照ピクチャを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化され得る。
【0058】
ビデオエンコーダ(503)は、ITU-T Rec.H.265などの予め設定されたビデオ符号化技術または規格に従って、符号化動作を実行することができる。動作中、ビデオエンコーダ(503)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測符号化操作を含む、様々な圧縮操作を実行することができる。したがって、符号化ビデオデータは、使用されているビデオ符号化技術または規格によって指定されたシンタックスに準拠することができる。
【0059】
一実施形態では、送信機(540)は、エンコードされたビデオとともに追加のデータを送信することができる。ソースコーダ(530)は、このようなデータを符号化ビデオシーケンスの一部として含んでもよい。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形態での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0060】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在ピクチャと呼ぶエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在ピクチャにおけるブロックが、ビデオにおける予め符号化され、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在ピクチャにおけるブロックは、動きベクトルと呼ぶベクトルによって符号化されることができる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
【0061】
一部の実施形態では、インターピクチャ予測において双予測手法を用いることができる。双予測手法によれば、ビデオにおける現在ピクチャよりもデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去および未来にあり得る)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャを用いる。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによって符号化されることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0062】
さらに、マージモード手法をインターピクチャ予測に適用して、符号化効率を向上させることができる。
【0063】
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャ内のピクチャは、圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャにおけるCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなど、同一のサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的に四分木分割されることができる。例えば、64×64ピクセルのCTUは、1つの64×64ピクセルのCU、4つの32×32ピクセルのCU、または16つの16×16ピクセルのCUに分割されることができる。一例では、各CUを解析して、インター予測タイプまたはイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的および/または空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。通常、各PUは、1つのルマ予測ブロック(PB)と2つのクロマPBを含む。一実施形態では、符号化(エンコード/デコード)における予測操作は、予測ブロックの単位で実行される。ルマ予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルの値(例えば、ルマ値)の行列を含む。
【0064】
図6は、本開示の他の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、一連のビデオピクチャ内の現在ビデオピクチャにおけるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化ビデオシーケンスの一部である符号化ピクチャにエンコードするように構成される。一例では、
図3の例におけるビデオエンコーダ(303)の代わりにビデオエンコーダ(603)を用いる。
【0065】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(603)は、例えばレート歪み最適化を用いて、処理ブロックがイントラモード、インターモード、または双予測モードにより最も良く符号化されるか否かを決定する。処理ブロックがイントラモードで符号化されようとする場合、ビデオエンコーダ(603)は、イントラ予測手法を用いて処理ブロックを符号化ピクチャにエンコードすることができる。また、処理ブロックがインターモードまたは双予測モードで符号化されようとする場合、ビデオエンコーダ(603)は、それぞれインター予測または双予測手法を用いて、処理ブロックを符号化ピクチャにエンコードすることができる。特定のビデオ符号化技術では、マージモードは、予測子外の符号化動きベクトル成分の利便を介することなく、1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
【0066】
図6の例では、ビデオエンコーダ(603)は、
図6に示すように互いに結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差算出部(623)、スイッチ(626)、残差エンコーダ(624)、統括制御部(621)およびエントロピーエンコーダ(625)を含む。
【0067】
インターエンコーダ(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコード手法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な手法を用いてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされるデコード参照ピクチャである。
【0068】
イントラエンコーダ(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既に符号化されたブロックと比較し、変換後に、量子化された係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラエンコード手法によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ(622)は、イントラ予測情報および同一のピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も算出する。
【0069】
統括制御部(621)は、統括制御データを決定し、統括制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、統括制御部(621)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(626)に提供する。例えば、モードがイントラモードである場合、統括制御部(621)は、残差算出部(623)用のイントラモード結果を選択するようにスイッチ(626)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ(625)を制御する。また、モードがインターモードである場合、統括制御部(621)は、残差算出部(623)用のインター予測結果を選択するようにスイッチ(626)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ(625)を制御する。
【0070】
残差算出部(623)は、受信されたブロックとイントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、残差データを空間領域から周波数領域へと変換し、変換係数を生成するように構成される。その後、変換係数は量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(603)は、残差デコーダ(628)をも含む。残差デコーダ(628)は、逆変換を実行し、デコード残差データを生成するように構成される。デコード残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)によって適切に使用されることができる。例えば、インターエンコーダ(630)は、デコード残差データおよびインター予測情報に基づいて、デコードブロックを生成することができ、イントラエンコーダ(622)は、デコード残差データおよびイントラ予測情報に基づいて、デコードブロックを生成することができる。一部の例では、デコードブロックは、デコードピクチャを生成するように適切に処理され、デコードピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。
【0071】
エントロピーエンコーダ(625)は、エンコードブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVC規格などの適切な規格に従って様々な情報をビットストリームに含ませるように構成される。一例では、エントロピーエンコーダ(625)は、統括制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含ませるように構成される。開示された主題によれば、インターモードまたは双予測モードのマージサブモードでブロックを符号化する場合、残差情報はないことに留意されたい。
【0072】
図7は、本開示の他の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、符号化ビデオシーケンスの一部である符号化ピクチャを受信し、符号化ピクチャをデコードして、再構成ピクチャを生成するように構成される。一例では、
図3の例におけるビデオデコーダ(310)の代わりにビデオデコーダ(710)を用いる。
【0073】
図7の例では、ビデオデコーダ(710)は、
図7に示されるように互いに結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、およびイントラデコーダ(772)を含む。
【0074】
エントロピーデコーダ(771)は、符号化ピクチャから、符号化ピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成されることができる。このようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、後の2つのマージサブモードまたは他のサブモード)、それぞれイントラデコーダ(772)またはインターデコーダ(780)による予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形態での残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードであれば、インター予測情報は、インターデコーダ(780)に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ(772)に提供される。残差情報は、逆量子化を施されることができ、残差デコーダ(773)に提供される。
【0075】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0076】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0077】
残差デコーダ(773)は、逆量子化を実行することで、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(773)は、(量子化器パラメータ(QP)を含めるように)特定の制御情報をも必要とする場合があり、この情報は、エントロピーデコーダ(771)によって提供されてもよい(データパスは、低ボリューム制御情報のみであり得るため、示されていない)。
【0078】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)によって出力される残差と、(場合によってはインターまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構成ビデオの一部となり得る再構成ピクチャの一部であり得る再構成ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができる。
【0079】
なお、ビデオエンコーダ(303)、(503)および(603)とビデオデコーダ(310)、(410)および(710)は、任意の適切な手法を用いて実現されることができる。一実施形態では、ビデオエンコーダ(303)、(503)および(603)とビデオデコーダ(310)、(410)および(710)は、1つ以上の集積回路を用いて実現されることができる。他の実施形態では、ビデオエンコーダ(303)、(503)および(603)とビデオデコーダ(310)、(410)および(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実現されることができる。
【0080】
II、変換処理手法
1、四分木ブロック分割構造
ブロック分割構造は、符号化ツリーと呼ぶ。一部の実施形態では、四分木構造を使用することによって、符号化ツリーユニット(CTU)が符号化ユニット(CU)にスプリットされて、さまざまな局所特性に適応するようにする。インターピクチャ(時間的)またはイントラピクチャ(空間的)予測を用いてピクチャ領域を符号化するかどうかの決定は、CUレベルで行われる。各CUは、PUスプリッチングタイプに応じて、さらに1つ、2つ、または4つの予測ユニット(PU)にスプリットされることができる。1つのPU内で、同じ予測プロセスが適用され、関連情報がPUベースでデコーダに送信される。
【0081】
PUスプリッチングタイプに基づいて予測プロセスを適用して残差ブロックを取得した後、CUを別の四分木構造に従って変換ユニット(TU)に分割できる。これでわかるように、CU、PU、およびTUを含む複数の分割の概念がある。一部の実施形態では、CUまたはTUは正方形状のみであり得、一方、PUは正方形状または長方形状であり得る。一部の実施形態では、1つの符号化ブロックはさらに4つの正方形のサブブロックにスプリットされてもよく、変換は各サブブロック、すなわちTUに対して実行される。各TUは、残差四分木(RQT)と呼ぶ四分木構造を用いて、より小さなTUにさらに再帰的にスプリットされてもよい。
【0082】
ピクチャ境界では、一部の実施形態では、サイズがピクチャ境界に合うまでブロックが四分木スプリッチングを維持するように、暗黙的な四分木スプリットが使用されることができる。
【0083】
2、四分木プラス二分木(QTBT)ブロック分割構造
一部の実施形態では、四分木プラス二分木(QTBT)構造が使用される。QTBT構造は、複数の分割タイプの概念(CU、PU、およびTUの概念)を排除し、CU分割形状のより高い柔軟性をサポートする。QTBTブロック構造では、CUは正方形または長方形のいずれかの形状にすることができる。
【0084】
図8Aは、
図8Bに示されるQTBT構造(820)を用いて分割されるCTU(810)を示す。CTU(810)は、最初に四分木構造によって分割される。四分木リーフノードは、二分木構造または四分木構造によってさらに分割される。二分木スプリッチングには、対称水平スプリッチングと対称垂直スプリッチングとの2つのスプリッチングタイプがあることができる。二分木リーフノードはCUと呼ばれ、さらに分割することなく予測と変換処理に使用されることができる。したがって、CU、PU、およびTUは、QTBT符号化ブロック構造において同じブロックサイズを有する。
【0085】
一部の実施形態では、CUは、異なる色成分の符号化ブロック(CB)を含んでもよい。例えば、4:2:0のクロマフォーマットのPとBスライスの場合、1つのCUには1つのルマCBと2つのクロマCBとが含まれる。CUには、単一の色成分のCBが含まれても良い。例えば、Iスライスの場合、1つのCUには、1つのみのルマCB、または、2つのみのクロマCBが含まれる。
【0086】
一部の実施形態では、以下のパラメータは、QTBT分割スキームのために定義される。
【0087】
CTUサイズ:四分木のルートノードサイズ、例えば、HEVCと同じ概念。
【0088】
MinQTSize:許容される最小の四分木リーフノードサイズ。
【0089】
MaxBTSize:許容される最大の二分木ルートノードサイズ。
【0090】
MaxBTDepth:許容される最大の二分木の深さ。
【0091】
MinBTSize:許容される最小の二分木リーフノードサイズ。
【0092】
QTBT分割構造の一例では、CTUサイズは、2つの対応する64×64クロマサンプルのブロックを有する128×128のルマサンプルとして設定され、MinQTSizeは16×16に設定され、MaxBTSizeは64×64に設定され、MinBTSize(幅と高さの両方)は4×4に設定され、MaxBTDepthは4に設定される。四分木分割は、最初にCTUに適用されて四分木リーフノードが生成される。四分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを持つことができる。四分木リーフノードが128×128の場合、サイズがMaxBTSize(すなわち、64×64)を超えるため、二分木によってさらにスプリットされることはない。それ以外の場合、四分木リーフノードは二分木によってさらに分割される可能性がある。したがって、四分木リーフノードは二分木のルートノードでもあり、二分木の深さが0である。
【0093】
二分木の深さがMaxBTDepth(すなわち、4)に達すると、それ以上のスプリッチングは考慮されない。二分木ノードの幅がMinBTSize(すなわち、4)に等しい場合、それ以上の水平スプリッチングは考慮されない。同様に、二分木ノードの高さがMinBTSizeに等しい場合、それ以上の垂直スプリッチングは考慮されない。二分木のリーフノードは、さらに分割することなく、予測および変換処理によってさらに処理される。一実施形態では、最大のCTUサイズは256×256のルマサンプルである。
【0094】
図8Aおよび8Bにおいて、実線は四分木スプリッチングを示し、点線は二分木スプリッチングを示す。二分木の各スプリッチング(すなわち、非リーフ)ノードでは、どのスプリッチングタイプ(すなわち、水平または垂直)が使用されるかを示すように1つのフラグがシグナリングされる。例えば、0は水平スプリッチングを示し、1は垂直スプリッチングを示す。四分木スプリッチングの場合、四分木スプリッチングが常にブロックを水平方向と垂直方向の両方にスプリットして、同じサイズの4つのサブブロックを生成するため、スプリッチングタイプを示す必要がない。
【0095】
一部の実施形態では、QTBTスキームは、ルマおよびクロマが別個のQTBT構造を有するための柔軟性をサポートする。例えば、PとBスライスの場合、1つのCTUにおけるルマとクロマブロックは同じQTBT構造を共有する。しかし、Iスライスの場合、ルマCTBはQTBT構造によってCUに分割され、クロマブロックは別のQTBT構造によってクロマCUに分割される。したがって、IスライスのCUは、ルマ成分の符号化ブロックまたは2つのクロマ成分の符号化ブロックで構成され、PまたはBスライスのCUは、すべての3つの色成分の符号化ブロックで構成される。
【0096】
一部の実施形態では、小さなブロックのインター予測は、動き補償のメモリアクセスを減らすように制限される。例えば、双予測は4×8および8×4のブロックではサポートされず、インター予測は4×4のブロックではサポートされない。
【0097】
3、三分木(TT)ブロック分割構造
一部の実施形態では、マルチタイプツリー(MTT)構造は、ピクチャを分割するために使用される。MTT構造は、QTBT構造よりも柔軟なツリー構造である。MTTでは、四分木と二分木に加えて、それぞれ
図9Aと
図9Bに示す水平中央側三分木と垂直中央側三分木とが使用される。三分木分割は、四分木および二分木分割を補完することができる。例えば、三分木分割はブロック中心にあるオブジェクトをキャプチャできるが、四分木と二分木とはブロック中心を横切ってスプリットする。三分木による分割の幅と高さは2の累乗であり、追加の変換分割は必要とされない。
【0098】
4、一次変換の例
一部の実施形態では、4点、8点、16点、および32点DCT-2変換が一次変換として用いられる。
図10A~10Dは、それぞれ4点、8点、16点、および32点DCT-2の変換コア行列を示す。これらの変換コア行列の要素が8ビット整数を用いて表されることができるため、これらの変換コア行列は8ビット変換コアと呼ぶ。示されているように、より小さいDCT-2の変換コア行列は、より大きいDCT-2の変換コア行列の一部である。
【0099】
DCT-2コア行列は対称性/非対称性の特性を示す。したがって、いわゆる「部分的バタフライ(partial butterfly)」実装は、動作カウント(乗算、加算/減算、シフト)の数を減らすようにサポートされ得る。部分的バタフライ実装を用いることにより、行列乗算の同じ結果を得ることができる。
【0100】
5、追加の一次変換例
一部の実施形態では、上記の4点、8点、16点、および32点DCT-2変換に加えて、追加の2点および64点DCT-2が用いられる。
図11A~11Eは、64点DCT-2変換の64×64の変換コア行列を示す。
【0101】
一部の実施形態では、DCT-2および4×4のDST-7変換に加えて、適応多重変換(AMT)(拡張多重変換(EMT)または多重変換選択(MTS)とも呼ぶ)は、インターおよびイントラの両方の符号化ブロックの残差符号化に使用される。AMTは、DST-7の変換コア行列またはDCT-8変換などのDCT-2変換に加えて、離散余弦変換(DCT)/離散正弦変換(DST)ファミリから選択された複数の変換を使用する。
図12は、選択されたDST/DCT変換の変換基底関数を示す。
【0102】
一部の実施形態では、AMTで使用されるDST/DCT変換コア行列は、8ビット表現で表される。一部の実施形態では、AMTは、幅および高さの両方が32以下であるCUに適用される。AMTを適用するかどうかは、mts_flagで示されるフラグによって制御されることができる。例えば、mts_flagが0に等しい場合、DCT-2のみが残差ブロックの符号化に適用される。mts_flagが1に等しい場合、mts_idxで示されるインデックスは、使用されるべき水平および垂直変換を指定するように、2つのビンを用いてさらにシグナリングされることができる。
【0103】
図13は、mts_idx値とそれぞれの水平または垂直変換との間のマッピング関係を示す表(1300)を示す。値が-1のmts_idxを持つ行(1301)は、mts_flagが0に等しいシナリオに対応し、DCT-2変換が使用される。値が0、1、2、または3のmts_idxを持つ行(1302)~(1305)は、mts_flagが1に等しいシナリオに対応する。表(1300)の右側の2列において、0はDCT-2の変換タイプを表し、1はDST-7の変換タイプを表し、2はDCT8の変換タイプを表す。
【0104】
図14A~14Dは、DST-7変換の変換コア行列を示す。
図15A~15Dは、DCT-8変換の変換コア行列を示す。
【0105】
6、イントラサブパーティション(ISP)符号化モード
一部の実施形態では、イントラサブパーティション(ISP)符号化モードが使用される。ISP符号化モードでは、ルマイントラ予測ブロックは、垂直または水平に2つまたは4つのサブパーティションに分割されることができる。サブパーティションの数は、ブロックのサイズによって異なることができる。
図16は、ブロックサイズに応じたサブパーティションの数を示す。
図17は、ブロックが2つのサブパーティションに分割されるシナリオを示す。
図18は、ブロックが4つのサブパーティションに分割されるシナリオを示す。一例では、すべてのサブパーティションは少なくとも16個のサンプルを持つという条件を満たす。一例では、ISPはクロマ成分に適用されない。
【0106】
一例では、符号化ブロックから分割されたサブパーティションのそれぞれについて、残差信号は、エンコーダから送信されたそれぞれの係数をエントロピー復号し、次にそれらを逆量子化および逆変換することによって、生成される。次に、サブパーティションの最初の1つがイントラ予測され、予測信号が生成される。予測信号が第1のサブパーティションのそれぞれの残差信号に追加され、対応する再構成されたサンプルが取得される。その後、第1のサブパーティションの再構成されたサンプル値を利用して、サブパーティションのうちの第2のサブパーティションの予測を生成することができる。このプロセスは、符号化ブロックからのすべてのサブパーティションが再構成されるまで、サブパーティションごとに繰り返される。一例では、すべてのサブパーティションが同じイントラモードを共有する。
【0107】
一実施形態では、ISP符号化モードは、最も可能性の高いモード(MPM)リストの一部であるイントラモードでのみテストされる。したがって、ブロックがISPを使用する場合、MPMフラグは1つであると推測され得る。さらに、ISPが特定のブロックに使用されると、それぞれのMPMリストが変更され、DCモードが除外され、ISP水平スプリットの水平イントラモード、及び垂直スプリットの垂直イントラモードが優先される。
【0108】
ISP符号化モードでは、変換と再構成がサブパーティションごとに個別に実行されるため、各サブパーティションはサブTUと見なすことができる。
【0109】
図19A~19Bは、ISP符号化モードのためにシグラリングされる関連構文要素を含む例示的な構文テーブル(1900)を示す。フレーム(1910)に示されているように、構文要素intra_subpartitions_mode_flagは、ISPが使用されるかどうかを示す。構文要素intra_subpartitions_split_flagは、分割方向(垂直または水平)を示す。
【0110】
7、サブブロック変換(SBT)
一部の実施形態では、空間的変化変換(SVT)とも呼ぶサブブロック変換(SBT)が使用される。SBTは、インター予測残差に適用できる。例えば、符号化ブロックはサブブロックに分割されることができ、サブブロックの一部のみが残差ブロックで処理される。サブブロックの残りの部分については、ゼロ残差であると想定される。したがって、残差ブロックは符号化ブロックよりも小さく、SBTの変換サイズは符号化ブロックサイズよりも小さくなる。残差ブロックでカバーされていない領域については、変換処理は実行されない。
【0111】
図20A~20Dは、サブブロックタイプ(SVT-H、SVT-V)(例えば、垂直または水平に分割される)、SBTでサポートされるサイズおよび位置(例えば、左半分、左1/4、右半分、右1/4、上半分、上1/4、下半分、下1/4)を示す。文字「A」でラベル付けされた影付きの領域は、変換ありの残差ブロックであり、他の領域は、変換なしのゼロ残差であると想定される。
【0112】
一例として、
図21A~21Iは、SBTが使用される場合に、ジョイントビデオエキスパートチーム(JVET)によって開発されているビデオ符号化規格(例えば、VVC)の仕様テキストへの変更を示す。追加されたテキストは、(2101)から(2113)までのフレームに示される。示されているように、追加の構文要素cu_sbt_flag、cu_sbt_quad_flag、cu_sbt_horizontal_flag、およびcu_sbt_pos_flagは、それぞれサブブロックタイプ(水平または垂直)、サイズ(半分または1/4)、および位置(左または右、上または下)を示すようにシグナリングされる。
【0113】
8、YUVフォーマット
図22は、一部の実施形態で使用される異なるYUVフォーマット(例えば、4:4:4、4:2:2、4:1:1、および4:2:0)を示す。一例では、クロス成分線形モデルイントラ予測(cross component linear model intra prediction)は4:2:0フォーマットに用いられる。
図22に示すように、6タップ補間フィルタを適用して、クロマサンプルに対応するダウンサンプリングされたルマサンプルを取得することができる。公式的に、ダウンサンプリングされたルマサンプルRec’L[x,y]は、近くの再構成されたルマサンプル(Rec
L[x,y]で表される)から次の方法で計算されてもよい。
【0114】
【数1】
9、仮想パイプラインデータユニット(VPDU)
仮想パイプラインデータユニット(VPDU)は、ピクチャ内で非重複ユニットとして定義される。ハードウェアデコーダでは、連続するVPDUは複数のパイプラインステージによって同時に処理される。VPDUサイズは、ほとんどのパイプラインステージでバッファサイズにほぼ比例する。VPDUを特定のサイズ(例えば、64×64以下)に維持することが望ましい。最大変換ブロック(TB)のサイズは、一部のハードウェアデコーダによって必要とされるVPDUサイズに一致するように、ビデオ符号化規格で指定されてもよい。しかし、一部の例では、三分木(TT)および二分木(BT)分割を特定の制限なしで使用すると、結果の変換ブロックは、意図された最大変換ブロックサイズ(例えば、64×64)またはVPDUサイズと整合しないことがある。
【0115】
VPDUサイズを64×64のルマサンプルとして維持するために、一部の実施形態では、以下の規範的な分割制限(構文シグナリング変更を伴う)が適用される。
- TTスプリットは、幅または高さのいずれか、または幅と高さの両方が128に等しいCUでは許容されない。
- N≦64(すなわち、幅が128に等しく、高さが128より小さい)の128×NのCUの場合、水平BTは許容されない。
- N≦64(すなわち、高さが128に等しく、幅が128より小さい)のN×128のCUの場合、垂直BTは許容されない。
-
【0116】
図23は、許容されないTTおよびBT分割の例を示す。
【0117】
III、変換ブロック分割および処理手法
一部の実施形態では、一定の最大許容変換ユニット(TU)サイズ(例えば、64×64ピクチャまたはサンプル)が使用される。例えば、ツリー構造に基づく分割を実行することにより、ピクチャまたはスライスを符号化ブロックに分割して、イントラまたはインター予測処理を行うことができる。変換処理について、符号化ブロックが最大許容TUサイズよりも大きい場合(例えば、辺の長さが64サンプルよりも大きい場合、または幅と高さの両方が64サンプルよりも大きい場合)、結果のサブブロックのサイズが最大許容TUサイズと一致するように、符号化ブロックをさらにサブブロックに分割することができる。
【0118】
使用される一定の最大許容TUサイズがビデオ符号化規格で指定されることができるため、ハードウェアエンコーダまたはデコーダでマルチステージパイプラインを介して処理されるVPDUのサイズは決定されることができる。最大許容TUサイズに応じた変換ブロック分割により、パイプライン化されたエンコーダまたはデコーダによって必要とされるVPDUサイズと一致するサイズの変換ブロックが生成される。
【0119】
対照的に、一部の実施形態では、制御可能または構成可能な最大許容TUサイズが使用される。例えば、64×64サンプルのサイズの他に、最大TUサイズは、32×32サンプル、16×16サンプルなどの他のサイズであり得る。最大TUサイズは、エンコーダ側で決定され、デコーダ側にシグナリングされることができる。最大許容TUサイズの当該柔軟性は、エンコーダ実装(例えば、パイプライン中間バッファサイズ、乗算器の数など)のハードウェアの複雑さに影響を与え、ハードウェアエンコーダのパフォーマンスを潜在的に向上させることができるため、望ましい。
【0120】
制御可能な最大許容TUサイズが使用される場合、最大TUサイズ(例えば、16×16サンプル)がVPDUサイズ(例えば、64×64サンプル)よりも小さい可能性がある。そのようなシナリオの下で、一部の実施形態では、特定の変換ブロック分割手法を用いて、符号化ブロックを変換ブロックに分割する。それらの変換ブロックは、最大許容TUサイズを有する。同時に、それらの変換ブロックの分割はVPDUサイズと互換性がある。または、言い換えると、結果の変換ブロックは、VPDUサイズに基づくパイプライン処理の要件と互換性がある。
【0121】
さらに、一部の実施形態では、それらの変換ブロックは、処理されたブロックがパイプライン処理に適したVPDUに組み合わせられることができるように、特定の順序に従って処理される。例えば、デコーダでのそれらの変換ブロックの処理は、例えば、エントロピー復号、逆量子化、逆変換などを含んでもよい。パイプライン処理は、例えば、ブロック再構成、デブロッキング、サンプル適応オフセット(SAO)処理、適応ループフィルタ(ALF)処理などを含んでもよい。
【0122】
1、例A
一例では、最大許容TUサイズは、Mサンプル(例えば、M×Mサンプルのサイズ)に設定される。VPDUサイズはKサンプル(例えば、K×Kサンプルのサイズ)に設定される。符号化ブロック(またはCU)の幅はWサンプル、高さはHサンプルである。符号化ブロックは、VPDUサイズKと最大許容TUサイズMとに基づいて、次の方法で分割されてもよい。まず、W×Hサンプルのサイズの符号化ブロックはサブ処理ユニット(SPU)と呼ぶ複数のサブブロックに分割されることができ、各サブブロックのサイズはMin(W,K)×Min(H,K)サンプルである。次に、各SPUは、M×Mサンプルのサイズを持つ変換ブロック(またはTU)にさらに分割される。それらの変換ブロックは、サブTUと呼ぶことがある。
【0123】
さらに、一例では、SPUはそれぞれVPDUとして扱われ、それらのVPDUはマルチステージパイプラインを通ることができる。SPUは、第1の順序に従って処理できる。SPUを処理するための第1の順序に基づいて、サブTUを処理する順序を決定することができる。例えば、第1と第2のSPUは、マルチステージパイプラインを介して連続して処理される。したがって、第1のSPUにおけるサブTUは、最初に処理され(例えば、エントロピー復号、逆量子化、および逆変換)、そしてマルチステージパイプラインに入力される。続いて、第2のSPUにおけるサブTUが処理され、マルチステージパイプラインに入力される。サブPUをこの順序で処理することにより、VPDUに基づくパイプライン処理の要件を満たすことができる。
【0124】
さらに、各SPU内で、サブTUは、第2の順序に従って処理できる。
【0125】
さまざまな実施形態において、SPUを処理するための第1の順序およびSPU内のサブTUを処理するための第2の順序は、ラスタースキャン順序、垂直スキャン順序(例えば、SPUまたはサブTUを列方向に左から右に、またはその逆にスキャンする)、ジグザグ順序、対角線スキャン(diagonal scan)順序などのうちの1つであり得る。
【0126】
第1の順序および第2の順序は、異なる実施形態において同じであっても異なっていてもよい。例えば、一実施形態では、SPUを処理するための第1の順序およびSPU内のサブTUを処理するための第2の順序は両方ともラスタースキャン順序である。
【0127】
2、例B
図24は、W=128、およびH=64であるW×Hサンプルのサイズを有する符号化ブロック(またはCU)(2410)を示す。M=32サンプルの最大許容TUサイズは、エンコーダからデコーダにシグナリングされる。VPDUサイズはK=64サンプルとして指定される。変換ブロックをVPDUと整合させるために、符号化ブロック(2410)は最初に左側の64×64のSPU(2420)と右側の64×64のSPU(2430)とにスプリットされる。次に、左側のSPU(2420)と右側のSPU(2430)とは、それぞれ32×32サンプルのサイズを有するサブTU(0から7のラベルが付けられる)にさらに分割されることができる。0、1、2、および3でラベル付けされたサブTUは、第1のSPU(2420)に含まれ、4、5、6、および7でラベル付けされたサブTUは、第2のSPU(2430)に含まれる。
【0128】
設定されたまたはデフォルトの順序に従って、左側のSPU(2420)を最初に処理し、次に右側のSPU(2430)を処理することができる。各SPU(2420)または(2430)内で、結果のサブTU(0から7のラベルが付けられる)を処理するためのラスタースキャン順序を指定(またはデフォルト)することができる。したがって、0から7までのラベルが付けられたサブTUは、矢印(2451)によって示される順序に従って処理される。
【0129】
3、例C
図25は、W=128、およびH=32であるW×Hサンプルのサイズを有する符号化ブロック(2510)を示す。M=16サンプルの最大許容TUサイズは、エンコーダからデコーダにシグナリングされる。VPDUサイズはK=64サンプルとして指定される。WとKの小さい方は64で、HとKの小さい方は32である。したがって、変換ブロックをVPDUと整合させるために、SPUのサイズを64×32サンプルと決定することができる。符号化ブロック(2510)は、それぞれ64×32サンプルのサイズを有する左側のSPU(2520)および右側のSPU(2530)に分割されることができる。2つのSPU(2520)と(
2530)は、左から右の順序で処理できる。
【0130】
2つのSPU(2520)と(2530)のそれぞれは、それぞれが最大許容TUサイズである16×16サンプルを持つサブTU(0から15のラベルが付けられる)にさらにスプリットされることができる。示されているように、左側のSPU(2520)は0から7のラベルが付けられたサブTUに分割され、右側のSPU(2530)は8から15のラベルが付けられたサブTUに分割される。各SPU(2520)および(2530)内で、サブTUをラスタースキャン順序で処理することができる。したがって、0から15までのラベルが付けられたサブTUは、矢印(2551)によって示される順序で実行されることができる。
【0131】
4、例D
図26は、W=128、およびH=32であるW×Hサンプルのサイズを有する符号化ブロック(2610)を示す。M=16サンプルの最大許容TUサイズは、エンコーダからデコーダにシグナリングされる。VPDUサイズはK=64サンプルとして指定される。
図25の例と同様の方法で、符号化ブロック(2610)は、2つのSPU(2620)および(2630)に分割されることができ、それぞれのSPUは、0から15までのラベルが付けられたサブTUにさらに分割されることができる。SPU(2620)および(2630)は、
図25と同じ順序で左から右に処理されることができる。しかしながら、
図25の例とは異なり、各SPU(2620)および(2630)内のサブTUは、ジグザグスキャン順序で処理される。
【0132】
5、例E
図27は、本開示の一実施形態による、変換ブロック分割および処理プロセス(2700)を概説するフローチャートを示す。プロセス(2700)は、イントラモードまたはインターモードで符号化されたブロックの再構成に使用される。さまざまな実施形態では、プロセス(2700)は、端末デバイス(210)、(220)、(230)、および(240)の処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(2700)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2700)を実行する。プロセスは(S2701)から始まり、(S2710)に進む。
【0133】
(S2710)では、Mの最大許容TUサイズを示す構文要素をビットストリームから受信することができる。例えば、制御可能な最大許容TUサイズが用いられる。最大許容TUサイズは、エンコーダで決定され、デコーダにシグナリングされる。
【0134】
(S2720)では、Wピクセルの幅、及びHピクセルの高さを有する符号化ブロックをデコーダで受信できる。例えば、上記幅と高さを有する符号化ブロックを示す構文要素は、デコーダでビットストリームから受信されることができる。
【0135】
(S2730)では、符号化ブロックはSPUに分割される。例えば、K×Kサンプル(またはピクセル)のVPDUサイズをデコーダに事前設定することができる。VPDUサイズと符号化ブロックのサイズとに基づいて、SPUのサイズを決定することができる。例えば、SPUの幅はWまたはKピクセルの小さい方にすることができ、SPUの高さはHまたはKピクセルの小さい方にすることができる。したがって、符号化ブロックは、それぞれが決定された幅および高さを有するSPUに分割されることができる。
【0136】
(S2740)では、各SPUはサブTUに分割され、各サブTUはMの最大許容TUサイズを有する。
【0137】
(S2750)では、SPUのサブTUはSPU処理順序に従って処理される。例えば、SPU処理順序は、例えばマルチステージパイプラインを介してSPUを処理するために事前定義できる。各SPU内で、サブTUは事前定義された順序に従って処理できる。あるいは、SPUまたはサブTUを処理するための順序は、制御可能にされ、デコーダからシグナリングされてもよい。
【0138】
例えば、各SPU内のSPU処理順序およびサブTU処理順序に従って、各サブTUの残差信号は、一連の復号動作(例えば、変換係数のエントロピー復号、逆量子化、逆変換など)によって取得されることができる。一例では、残差信号を組み合わせて、SPUごとにマルチステージパイプラインに入力することができる。上記プロセスは(S2799)に進み、(S2799)で終了できる。
【0139】
IV、コンピュータシステム
以上で説明された技術は、コンピュータ読取可能な命令を用いるコンピュータソフトウェアとして実現され、1つ以上のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、
図28は、開示された主題のある実施形態を実施することに適したコンピュータシステム(2800)を示す。
【0140】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行されることができる命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いて符号化されることができる。
【0141】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0142】
コンピュータシステム(2800)について、
図28に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム(2800)の例示的な実施形態で示されるコンポーネントのうちのいずれか1つまたは組み合わせに関する任意の依存性または必要性を有するとして解釈されるべきではない。
【0143】
コンピュータシステム(2800)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(描画せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用できる。
【0144】
入力ヒューマンインターフェースデバイスは、キーボード(2801)、マウス(2802)、トラックパッド(2803)、タッチスクリーン(2810)、データグローブ(図示せず)、ジョイスティック(2805)、マイクロフォン(2806)、スキャナ(2807)、カメラ(2808)(それぞれ1つのみ示されている)のうちの1つ以上を含み得る。
【0145】
コンピュータシステム(2800)は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2810)、データグローブ(図示せず)、またはジョイスティック(2805)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(2809)、ヘッドホン(描画せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2810)(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(示されていない)、ホログラフィックディスプレイおよびスモークタンク(示されていない)など)、およびプリンタ(示されていない)を含み得る。
【0146】
コンピュータシステム(2800)は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体(2821)付きのCD/DVD ROM/RW(2820)を含む光学媒体、サムドライブ(2822)、リムーバブルハードドライブまたはソリッドステートドライブ(2823)、テープやフロッピーディスクなどの従来の磁気媒体(描画せず)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(描画せず)などをも含むことができる。
【0147】
ここで開示された主題に関連して使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことをも当業者が理解するべきである。
【0148】
コンピュータシステム(2800)は、1つ以上の通信ネットワークへのインターフェースをさらに含むことができる。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2849)(例えば、コンピューターシステム(2800)のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピュータシステム(2800)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム(2800)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで用いることができる。
【0149】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(2800)のコア(2840)に接続されることができる。
【0150】
コア(2840)は、1つ以上の中央処理装置(CPU)(2841)、グラフィックスプロセッシングユニット(GPU)(2842)、フィールドプログラマブルゲートエリア(FPGA)(2843)の形態での専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(2844)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2845)、ランダムアクセスメモリ(2846)、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量記憶装置(2847)とともに、システムバス(2848)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(2848)は、1つ以上の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(2848)に直接、または周辺バス(2849)を介して接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0151】
CPU(2841)、GPU(2842)、FPGA(2843)、およびアクセラレータ(2844)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2845)またはRAM(2846)に記憶されることができる。推移データはRAM(2846)にも記憶できるが、永続データは、例えば、内部大容量ストレージ(2847)に記憶されることができる。1つ以上のCPU(2841)、GPU(2842)、大容量ストレージ(2847)、ROM(2845)、RAM(2846)などと密接に関連付けることができるキャッシュメモリを用いることにより、任意のメモリデバイスへの高速保存および検索が可能になる。
【0152】
コンピュータ読取可能な媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。
【0153】
限定ではなく、一例として、アーキテクチャを有するコンピュータシステム(2800)、特にコア(2840)は、1つ以上の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能性を提供することができる。このようなコンピュータ読取可能な媒体は、以上で説明したようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ(2847)またはROM(2845)などの非一時的な性質を持つコア(2840)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア(2840)によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2840)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2846)に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更する言を含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(2844))に有線接続されたまたは組み込まれたロジックの結果としての機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
【0154】
付録A:頭字語
ASIC:特定用途向け集積回路
BMS:ベンチマークセット
CANBus:コントローラエリアネットワークバス
CBF:符号化されたブロックフラグ
CD:コンパクトディスク
CPU:中央処理装置
CRT:陰極線管
CTB:符号化ツリーブロック
CTU:符号化ツリーユニット
CU:符号化ユニット
DVD:デジタルビデオディスク
FPGA:フィールドプログラマブルゲートエリア
GOP:ピクチャグループ
GPU:グラフィックス処理装置
GSM:グローバルモバイル通信システム
HEVC:高効率ビデオ符号化
HRD:仮想参照デコーダ
ISP:イントラサブパーティション
IC:集積回路
JEM:共同探索モデル
LAN:ローカルエリアネットワーク
LCD:液晶ディスプレイ
LTE:長期的な進化
MPM:最も可能性の高いモード
MV:動きベクトル
OLED:有機発光ダイオード
PB:予測ブロック
PCI:周辺構成要素相互接続
PLD:プログラマブルロジックデバイス
PU:予測ユニット
RAM:ランダムアクセスメモリ
ROM:読み取り専用メモリ
SBT:サブブロック変換
SEI:補助強化情報
SNR:信号対雑音比
SSD:ソリッドステートドライブ
TU:変換ユニット
USB:ユニバーサルシリアルバス
VPDU:仮想パイプラインデータユニット
VUI:ビデオユーザビリティ情報
VVC:多用途ビデオ符号化
【0155】
本開示は一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、およびさまざまな代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれるさまざまなシステムおよび方法を考案できることが理解されよう。
【符号の説明】
【0156】
200 通信システム
210 端末装置
220 端末装置
230 端末装置
240 端末装置
250 通信ネットワーク