図3は、本開示の実施形態による通信システム(300)の簡略ブロック図の概略図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)および(320)を含む。図3の例では、第1の対の端末装置(310)および(320)は、データの単方向伝送を実行する。例えば、端末装置(310)は、ネットワーク(350)を介して他方の端末装置(320)へ伝送するためにビデオデータ(例えば、端末装置(310)によってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。コーディングされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形で送信され得る。端末装置(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向のデータ伝送は、メディア配信アプリケーションなどで一般的である。
別の一例では、通信システム(300)は、例えば、ビデオ会議中に発生し得るコーディングされたビデオデータの双方向伝送を実行する第2の対の端末装置(330)および(340)を含む。データの双方向伝送の場合、一例では、端末装置(330)および(340)のそれぞれは、ネットワーク(350)を介して端末装置(330)および(340)のうちの他方の端末装置に伝送するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。端末装置(330)および(340)のそれぞれは、端末装置(330)および(340)のうちの他方の端末装置で伝送されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャにアクセス可能な表示装置に表示させることができる。
図3の例では、端末装置(310)、(320)、(330)および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、しかし、本開示の原理はこれに制限されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、および/または専用のビデオ会議機器に応用できる。ネットワーク(350)は、例えば有線および/または無線通信ネットワークを含む、端末装置(310)、(320)、(330)および(340)間でコーディングされたビデオデータを伝送する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要でない可能性がある。
図4は、開示された主題のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、および、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ機能アプリケーションに同様に適用可能である。
ストリーミングシステムは、例えば非圧縮のビデオピクチャストリーム(402)を作成するデジタルカメラなどのビデオソース(401)を含み得るキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャストリーム(402)は、デジタルカメラによって撮像されたサンプルを含む。コーディングされたビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較した際の高いデータ量を強調するために太線で示されたビデオピクチャストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子機器(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示された主題の態様を可能にするか或いは実施するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャ(402)のストリームと比較した際の低いデータ量を強調するために細い線で示された、コーディングされたビデオデータ(404)(またはコーディングされたビデオビットストリーム(404))は、将来に使用するためにストリーミングサーバ(405)に記憶され得る。図4におけるクライアントサブシステム(406)および(408)のような1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、コーディングされたビデオデータ(404)のコピー(407)および(409)を検索することができる。クライアントサブシステム(406)は、例えば、電子機器(430)におけるビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、コーディングされたビデオデータの入力コピー(407)をデコーディングし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)に表示できるビデオピクチャ(411)の出力ストリームを作成する。一部のストリーミングシステムにおいて、コーディングされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってコーディングされ得る。これらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、非公式的に多用途ビデオコーディング(VVC)として知られている。開示された主題は、VVCの文脈において使用され得る。
なお、電子機器(420)および(430)は、他の構成要素(図示せず)を含み得る。例えば、電子機器(420)は、ビデオデコーダ(図示せず)を含むことができ、電子機器(430)は、ビデオエンコーダ(図示せず)を含むこともできる。
図5は、本開示の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子機器(530)に含まれることができる。電子機器(530)は、受信機(531)(例えば、受信回路)を含み得る。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(410)の代わりに使用され得る。
受信機(531)は、ビデオデコーダ(510)によってデコーディングされた1つまたは複数のコーディングされたビデオシーケンスを受信でき、同一または別の実施形態では、一度に1つのコーディングされたビデオシーケンスであり、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、コーディングされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信されることができる。受信機(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームを有する、コーディングされたビデオデータを受信し得る。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」と称される)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の実施形態では、バッファメモリはビデオデコーダ(510)(図示せず)の外部に存在し得る。さらに別の実施形態では、例えば、ネットワークジッタを防止するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在し、且つ、例えば、再生タイミングを取り扱うためにビデオデコーダ(510)の内部に別のバッファメモリ(515)が存在し得る。受信機(531)が十分な帯域幅および制御性を有する記憶/転送装置から、または等同期ネットワークからデータを受信する際に、バッファメモリ(515)は必要とされず、または小さくされる場合がある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要になる場合があり、バッファメモリ(515)は、比較的大きくされ、有利には適応サイズとすることができ、ビデオデコーダ(510)の外部のオペレーティングシステムまたは類似の要素(図示せず)に少なくとも部分的に実現され得る。
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の操作を管理するために使用される情報、および、電子機器(530)の構成部分ではないが、図5に示されるように電子機器(530)に結合され得るレンダリングデバイス(512)(例えば、表示画面)のようなレンダリングデバイスを制御する潜在的情報を含む。レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形式でもよい。パーサ(520)は、受信されたコーディングされたビデオシーケンスを解析/エントロピーデコーディングすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存を有するまたは有しない算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダにおける画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出することができる。サブグループは、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)は、コーディングされたビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報を抽出することもできる。
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコーディング/解析操作を実行することができる。
シンボル(521)の再構成には、コーディングされたビデオピクチャまたはその一部(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)のタイプ、および他の要因に応じて、複数の異なるユニットが関与できる。どのユニットがどのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。明確化にするために、パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは示されていない。
すでに述べた機能ブロックに加えて、ビデオデコーダ(510)は、以下で説明されるようにいくつかの機能ユニットに概念的に細分され得る。商業的な制約の下で実際の実現にあたっては、これらのユニットの多くは互いに密接に相互作用し、少なくとも一部に互いに統合することができる。しかしながら、開示された主題の説明の目的で、以下の機能ユニットへの概念的な細分化が適切である。
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力可能なサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用せず、現在のピクチャの以前に再構成された部分からの予測情報を使用できるブロックに関係し得る。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)から取り出された周囲の既に再構成された情報を用いて、再構成中のブロックの同サイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加する。
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、潜在的に動き補償されたブロックに関係することがある。このような場合に、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測のためのサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(521)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加され得る(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルを取り出す参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御され得る。動き補償は、サブサンプルの正確な動きベクトルが使用中である際に参照ピクチャメモリ(557)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれる、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能とされたパラメータによって制御され、それに、コーディングされたピクチャまたはコーディングされたビデオシーケンスの前の部分(デコーディング順で)のデコーディング進行中に取得されたメタ情報に応じるとともに、以前に再構成されループフィルタリングされたサンプル値に応答することもできるループフィルタ技術を含み得る。
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)へ出力されるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶されることができるサンプルストリームであり得る。
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のために参照ピクチャとして使用されることができる。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、且つ次のコーディングされたピクチャの再構成を開始する前に新しい現在のピクチャバッファは、再び割り当てられることができる。
ビデオデコーダ(510)は、ITU-T Rec.H.265のような規格での所定のビデオ圧縮技術に従ってデコーディング操作を実行することができる。コーディングされたビデオシーケンスが、ビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、特定のツールをそのプロファイルで使用できる一意のツールとして選択することができる。コーディングされたビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様およびコーディングされたビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
実施形態では、受信機(531)は、コーディングされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコーディングし、および/または、元のビデオデータをより正確に再構成するためにビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形式であり得る。
図6は、本開示の実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子機器(620)に含まれる。電子機器(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例におけるビデオエンコーダ(403)の代わりに使用され得る。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるビデオ画像をキャプチャし得るビデオソース(60l)(図6の例における電子機器(620)の一部ではない)からビデオサンプルを受信することができる。別の一例では、ビデオソース(601)は、電子機器(620)の一部である。
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で提供し得る。メディア配信システムでは、ビデオソース(601)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、連続して見た際に動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムでまたはアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャをコーディングし、コーディングされたビデオシーケンス(643)に圧縮することができる。適切なコーディング速度を強制することは、コントローラ(650)の機能の1つである。いくつかの実施形態では、コントローラ(650)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明確にするために、カップリングは描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技術のラムダ値、・・・)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に対して最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成され得る。
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化した説明として、一例では、コーディングループは、ソースコーダー(630)(例えば、コーディングしようとする入力ピクチャおよび参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、およびビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含み得る。デコーダ(633)は、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成するためにシンボルを再構成する(シンボルとコーディングされたビデオビットストリーム間の如何なる圧縮は、開示された主題で考慮されるビデオ圧縮技術では可逆であるため)。再構成されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果につながるため、参照ピクチャメモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコーディング中に予測を使用する際にデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性(および例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)のかような基本原理は、いくつかの関連分野にも使用されている。
「ローカル」デコーダ(633)の動作は、前文で図5を参照して既に詳細に説明された、ビデオデコーダ(510)などの「リモート」デコーダの動作と同様であり得る。しかしながら、図5を簡単に参照すると、シンボルが使用可能であり、エントロピーコーダー(645)およびパーサ(520)によるコーディングビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆であり得るので、バッファメモリ(515)、およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)では完全に実現されない場合がある。
この点から分かるように、デコーダに存在する解析/エントロピーデコーディング以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示された主題は、デコーダ操作を中心とする。エンコーダ技術の説明は、包括的に説明されたデコーダ技術と逆なものであるため、省略できる。特定の領域でのみ、より詳細な説明が必要となり、以下に提供される。
操作中、いくつかの例では、ソースコーダー(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行してもよい。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差異をコーディングする。
ローカルビデオデコーダ(633)は、ソースコーダー(630)で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングすることができる。コーディングエンジン(632)の操作は、有利にはロッシープロセスであり得る。コーディングされたビデオデータをビデオデコーダ(図6に示せず)でデコーディングできる際、再構成されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャを実行し得るデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される再構成された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構成された参照ピクチャのコピーをローカルに記憶し得る。
予測器(635)は、コーディングエンジン(632)に対する予測検索を実行できる。つまり、コーディング対象となる新しいピクチャについて、予測器(635)は、(候補の参照画素ブロックとしての)サンプルデータ、または、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(634)から検索することができる。予測器(635)は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに操作することができる。場合によっては、予測器(635)で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
コントローラ(650)は、例えば、ビデオデータをコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダー(630)のコーディング操作を管理することができる。
前述のすべての機能ユニットの出力は、エントロピーコーダー(645)においてエントロピーコーディングを受け得る。エントロピーコーダー(645)は、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディングビデオシーケンスに変換する。
送信機(640)は、コーディングされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備のために、エントロピーコーダー(645)によって作成されたコーディングされたビデオシーケンスをバッファリングすることができる。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは示されていない)とマージすることができる。
コントローラ(650)は、ビデオエンコーダ(603)の操作を管理し得る。コーディングの際に、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る。例えば、ピクチャは、通常、次のピクチャタイプのいずれかに割り当てられ得る。
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずにコーディングおよびデコーディングされ得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのそれらの変形およびそれらのそれぞれの用途および特徴を知っている。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコーディングおよびデコーディングされ得るものであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコーディングおよびデコーディングされ得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックを再構成するために2つを超える参照ピクチャおよび関連メタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定された他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、或いは、同一のピクチャの既にコーディングされたブロック(空間予測またはイントラ予測)を参照して予測的にコーディングされてもよい。Pピクチャの画素ブロックは、1つの予めコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされ得る。
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの予め設定されたビデオコーディング技術または規格に従って、コーディング操作を実行することができる。操作中、ビデオエンコーダ(603)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測コーディング操作を含む、様々な圧縮操作を実行することができる。したがって、コーディングされたビデオデータは、使用されるビデオコーディング技術または規格によって指定されたシンタックスに準拠する場合がある。
実施形態では、送信機(640)は、コーディングされたビデオとともに追加のデータを送信することができる。ソースコーダー(630)は、このようなデータをコーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形式での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
ビデオは、時系列の複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間的相関性を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関性を利用する。一例では、現在のピクチャと呼ばれるエンコーディング/デコーディング中の特定のピクチャは、ブロックに分割される。現在のピクチャにおけるブロックが、ビデオにおける以前にコーディングされ、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在のピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
いくつかの実施形態では、インターピクチャ予測において双方向予測法を使用することができる。双方向予測法によれば、ビデオにおける現在のピクチャよりもデコーディング順序がそれぞれ前である(ただし、表示順序でそれぞれ過去および未来にあり得る)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャを使用する。現在のピクチャにおけるブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測され得る。
さらに、マージモード技術をインターピクチャ予測に適用して、コーディング効率を向上させることができる。
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、ビデオ ピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素など、同一のサイズを有する。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64画素のCTUは、64×64画素の1つのCU、32×32画素の4つのCU、または16×16画素の16個のCUに分割され得る。一例では、各CUを解析して、インター予測タイプまたはイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。通常、各PUは、ルマ予測ブロック(PB)と2つのクロマPBを含む。実施形態では、コーディング(エンコーディング/デコーディング)における予測操作は、予測ブロックの単位で実行される。ルマ予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素など画素の値(例えば、ルマ値)の行列を含む。
図7は、本開示の他の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャシーケンスにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにコーディングするように構成される。一例では、図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(703)を使用する。
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、例えばレート歪み最適化を用いて、処理ブロックをイントラモード、インターモード、または双方向予測モードにより最良にコーディングするか否かを決定する。処理ブロックがイントラモードでコーディングされようとする場合、ビデオエンコーダ(703)は、イントラ予測法を用いて処理ブロックをコーディングされたピクチャにコーディングすることができる。また、処理ブロックがインターモードまたは双予測モードでコーディングされようとする場合、ビデオエンコーダ(703)は、それぞれインター予測または双方向予測法を用いて、処理ブロックをコーディングされたピクチャにコーディングすることができる。特定のビデオコーディング技術では、マージモードは、予測器外のコーディングされた動きベクトル成分を介することなく、1つまたは複数の動きベクトル予測器から動きベクトルを導出するインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
図7の例では、ビデオエンコーダ(703)は、図7に示すように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差算出部(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)およびエントロピーエンコーダ(725)を含む。
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、前の先行ピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターコーディング法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な技術を用いてインター予測結果(例えば、予測されたブロック)を算出するように構成される。いくつかの例では、参照ピクチャは、コーディングされたビデオ情報に基づいてデコーディングされた参照ピクチャである。
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既にコーディングされたブロックと比較し、変換後に、量子化された係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラコーディング技術によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ(722)は、同一のピクチャ内の参照ブロックおよびイントラ予測情報に基づいてイントラ予測結果(例えば、予測されたブロック)も算出する。
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、このモードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、汎用コントローラ(721)は、残差算出部(723)が使用するためのイントラモード結果を選択するようにスイッチ(726)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。また、モードがインターモードである場合、汎用コントローラ(721)は、残差算出部(723)が使用するためのインター予測結果を選択するようにスイッチ(726)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。
残差算出部(723)は、受信されたブロックとイントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データをコーディングして変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域へ変換し、変換係数を生成するように構成される。その後、変換係数に対して量子化処理を行い、量子化された変換係数を得る。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)をさらに含む。残差デコーダ(728)は、逆変換を実行し、デコーディングされた残差データを生成するように構成される。デコーディングされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用され得る。例えば、インターエンコーダ(730)は、デコーディング残差データよびインター予測情報に基づいて、デコーディングブロックを生成することができ、且つイントラエンコーダ(722)は、デコーディングされた残差データおよびイントラ予測情報に基づいて、デコーディングブロックを生成することができる。いくつかの例では、デコーディングブロックは、デコーディングピクチャを生成するように適切に処理され、デコーディングピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用され得る。
エントロピーエンコーダ(725)は、コーディングされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、およびビットストリームにおける他の適切な情報を含むように構成される。開示された主題によれば、インターモードまたは双方向予測モードのマージサブモードでブロックをコーディングする場合、残差情報はないことに留意されたい。
図8は、本開示の他の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコーディングして、再構成ピクチャを生成するように構成される。一例では、図4の例におけるビデオデコーダ(410)の代わりにビデオデコーダ(810)を使用する。
図8の例では、ビデオデコーダ(810)は、図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャを構成する構文要素を表す特定のシンボルを再構成するように構成されることができる。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双方向予測モード、後の両者のマージサブモードまたは他のサブモード)、それぞれイントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインターまたは双方向予測モードであれば、インター予測情報は、インターデコーダ(880)に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ(872)に提供される。残差情報は、逆量子化され、残差デコーダ(873)に提供されることができる。
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
残差デコーダ(873)は、逆量子化を実行して、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)は、特定の制御情報(量子化器パラメータ(QP)を含めるように)を必要とする場合があり、この情報は、エントロピーデコーダ(871)によって提供されてもよい(データパスは、少量の制御情報のみであり得るため、示されていない)。
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と、(場合によってはインターまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構成ビデオの一部となり得る再構成ピクチャの一部であり得る再構成ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができる。
なお、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、任意の適切な技術を用いて実現されることができる。実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、1つまたは複数の集積回路を用いて実現され得る。別の実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを用いて実現され得る。
ブロックの1つまたは複数の隣接ブロックの再構成サンプル(例えば、特徴インジケータ(例えば、ブロックの1つまたは複数の隣接ブロックの再構成サンプルの特徴ベクトルまたは特徴スカラー)に基づく変換セットまたは変換カーネル選択スキームに関連するビデオコーディング技術が開示されている。ビデオコーディングフォーマットは、AOMedia Video 1(AV1)またはAV1を超える次世代のAOMedia Videoフォーマットのような、インターネッを介したビデオ伝送のために設計されたオープンビデオコーディングフォーマットを含み得る。また、ビデオコーディング規格は、高効率ビデオコーディング(High Efficiency Video Coding、HEVC)規格や、HEVCを超える次世代のビデオコーディング(例えば、多用途ビデオコーディング(Versatile Video Coding、VVC))などを含み得る。
イントラ予測、例えばAV1、VVCなどにおいて、様々なイントラ予測モードを使用し得る。実施形態では、例えばAV1において、指向性イントラ予測が使用される。指向性イントラ予測では、ブロックの予測サンプルは、一方向に沿って隣接する再構成サンプルから外挿することによって生成できる。方向は角度に対応する。ブロックの予測サンプルを予測するために指向性イントラ予測で使用されるモードは、指向性モードと呼ばれることがある(指向性予測モード、指向性イントラモード、指向性イントラ予測モード、角度モードとも呼ばれる)。各々の指向性モードは、異なる角度または異なる方向に対応し得る。一例では、例えばオープンビデオコーディングフォーマットVP9では、45°から207°までの8つの角度に対応する8通りの指向性モードが使用される。8通りの指向性モードは、公称モード(例えば、V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED、およびD67_PRED)と呼ばれることもできる。指向性テクスチャ(例えばAV1)ではより多様な空間的冗長性を利用するために、指向性モードは、例えば、8つの公称モードを超えて、図9に示すように、より細かい粒度およびより多くの角度(または方向)を有する角度セットに拡張され得る。
図9は、本開示の実施形態によるコーディングブロック(CB)(910)の公称モードの一例を示す。特定の角度(公称角度と呼ばれる)は、公称モードに対応することができる。一例では、8つの公称角度(または公称イントラ角度)(901)~(908)は、8通りの公称モード(例えば、V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED、およびD67_PRED)に対応する。また、8つの公称角度(901)~(908)および8通りの公称モードは、それぞれ、V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED、およびD67_PREDと呼ばれることができる。公称モードインデックスは、公称モード(たとえば、8つの公称モードのうちの1つ)を示すことができる。一例では、公称モードインデックスがシグナリングされる。
さらに、各公称角度は、複数のより細かい角度(例えば、7つのより細かい角度)に対応することができ、したがって、例えば、AV1において、56個の角度(または予測角度)または56通りの指向性モード(または角度モード、指向性イントラ予測モード)を使用することができる。各予測角度は、公称角度および角度オフセット(または角度デルタ)によって表されることができる。角度オフセットは、オフセット整数I(例えば、-3、-2、-1、0、1、2、または3)にステップサイズ(例えば、3°)を乗算することによって求められる。一例では、予測角度は、公称角度と角度オフセットの和に等しい。一例では、例えばAV1において、公称モード(例えば、8通りの公称モード(901)~(908))は、特定の非角度平滑モード(例えば、後述するDCモード、PAETHモード、SMOOTHモード、垂直SMOOTHモード、および水平SMOOTHモード)とともにシグナリングされることができる。続いて、現在の予測モードが指向性モード(または角度モード)である場合、公称角度に対応する角度オフセット(例えば、オフセット整数I)を示すインデックスをさらにシグナリングすることができる。一例では、指向性モード(例えば、56通りの指向性モードのうちの1つ)は、公称モードインデックスおよび公称モードからの角度オフセットを示すインデックスに基づいて決定され得る。一例では、汎用的な方法を介して指向性予測モードを実現するために、AV1で使用されるような56通りの指向性モードは、各画素を参照サブ画素位置に投影し、2タップバイリニアフィルタによって参照画素を補間することができる統一された指向性予測器で実現される。
無指向性平滑イントラ予測器(無指向性平滑イントラ予測モード、無指向性平滑モード、非角度平滑モードとも呼ばれる)は、CBのイントラ予測に使用され得る。いくつかの例では(例えば、AV1では)、5通りの無指向性平滑イントラ予測モードは、DCモードまたはDC予測器(例えば、DC)、PAETHモードまたはPAETH予測器(例えば、PAETH)、SMOOTHモードまたはSMOOTH予測器(例えば、SMOOTH)、垂直SMOOTHモード(SMOOTH_Vモード、SMOOTH_V予測器、SMOOTH_Vと呼ばれる)、および水平SMOOTHモード(SMOOTH_Hモード、SMOOTH_H予測器、SMOOTH_Hと呼ばれる)を含む。
図10は、本開示の態様による、無指向性平滑イントラ予測モード(例えば、DCモード、PAETHモード、SMOOTHモード、SMOOTH_Vモード、およびSMOOTH_Hモード)の例を示す。DC予測器に基づいてCB(1000)内のサンプル(1001)を予測するために、左隣接サンプル(1012)の第1の値と、上隣接サンプル(またはトップ隣接サンプル)(1011)の第2の値との平均値を予測器として使用することができる。
PAETH予測器に基づいてサンプル(1001)を予測するために、左隣接サンプル(1012)の第1の値、トップ隣接サンプル(1011)の第2の値、および左上隣接サンプル(1013)の第3の値を取得することができる。そして、式1を用いて参照値を求める。
参照値=第1の値+第2の値-第3の値 (式1)
参照値に最も近い第1の値、第2の値、第3の値のうちの1つをサンプル(1001)の予測器として設定することができる。
SMOOTH_Vモード、SMOOTH_Hモード、およびSMOOTHモードは、それぞれ、垂直方向、水平方向、および垂直方向と水平方向の平均値の二次補間を用いて、CB(1000)を予測することができる。SMOOTH予測器に基づいてサンプル(1001)を予測するために、第1の値、第2の値、右サンプル(1014)の値、およびボトムサンプル(1016)の値の平均値(例えば、加重組み合わせ)を使用することができる。様々な例では、右サンプル(1014)およびボトムサンプル(1016)は再構成されていないため、右上隣接サンプル(1015)の値および左下隣接サンプル(1017)の値は、それぞれ右サンプル(1014)およびボトムサンプル(1016)の値を置き換えることができる。したがって、第1の値、第2の値、右上隣接サンプル(1015)の値、および左下隣接サンプル(1017)の値の平均値(例えば、加重組み合わせ)を、SMOOTH予測器として使用することができる。SMOOTH_V予測器に基づいてサンプル(1001)を予測するために、トップ隣接サンプル(1011)の第2の値と左下隣接サンプル(1017)の値の平均値(例えば、加重組み合わせ)を使用することができる。SMOOTH_H予測器に基づいてサンプル(1001)を予測するために、左隣接サンプル(1012)の第1の値と右上隣接サンプル(1015)の値の平均値(例えば、加重組み合わせ)を使用することができる。
図11は、本開示の実施形態による再帰フィルタリングに基づくイントラ予測器(フィルタイントラモード、または再帰フィルタリングモードとも呼ばれる)の一例を示す。エッジ上の参照との減衰する空間的相関性をキャプチャするために、フィルタイントラモードをCB(1100)に使用することができる。一例では、CB(1100)は、ルマブロックである。ルマブロック(1100)は、複数のパッチ(例えば、8つの4×2パッチB0~B7)に分割されることができる。パッチB0~B7のそれぞれは、複数の隣接サンプルを有することができる。例えば、パッチB0は、4つのトップ隣接サンプルR01~R04、2つの左隣接サンプルR05~R06、および、左上隣接サンプルR00を含む7つの隣接サンプル(または7つの隣接要素)R00~R06を有する。同様に、パッチB7は、4つのトップ隣接サンプルR71~R74、2つの左隣接サンプルR75~R76、および左上隣接サンプルR70を含む7つの隣接サンプルR70~R76を有する。
いくつかの例では、例えばAV1のために、複数(例えば5つ)のフィルタイントラモード(または複数の再帰フィルタリングモード)が予め設計されている。各フィルタイントラモードは、対応する4×2パッチ(例えば、B0)内のサンプル(または画素)と、4×2パッチB0に隣接する7つの近傍(例えば、R00~R06)との間の相関を反映する8つの7タップフィルタのセットで表され得る。7タップフィルタの重み係数は、位置に依存することができる。パッチB0~B7のそれぞれについて、7つの近傍(例えば、B0についてはR00~R06、B7についてはR70~R76)は、対応するパッチ内のサンプルを予測するために使用されることができる。一例では、隣接要素R00~R06は、パッチB0内のサンプルを予測するために使用される。一例では、隣接要素R70~R76は、パッチB7内のサンプルを予測するために使用される。パッチB0のようなCB(1100)内の特定のパッチについては、7つの隣接要素(例えば、R00~R06)のすべてが既に再構成されている。CB(1100)内の他のパッチについては、7つの隣接要素のうち少なくとも1つは再構成されていないため、直近の隣接要素の予測値(または直近の隣接要素の予測サンプル)を基準として使用することができる。例えば、パッチB7の7つの隣接要素R70~R76は再構成されていないので、直近の隣接要素の予測サンプルを使用することができる。
クロマサンプルは、ルマサンプルから予測され得る。一実施形態では、ルマからのクロマ(chroma from luma)モード(例えば、CfLモード、CfL予測器)は、クロマサンプル(または画素)を、一致する再構成されたルマサンプル(または画素)の線形関数としてモデル化できるクロマのみのイントラ予測器である。例えば、CfL予測は、以下のように式2を用いて表現できる。
CfL(α)=αLA+D (式2)
ここで、LAはルマ成分のAC寄与を表し、αは線形モデルのスケーリングパラメータを表し、Dはクロマ成分のDC寄与を表す。一例では、再構成されたルマ画素は、クロマ解像度に基づいてサブサンプリングされ、平均値を減算してAC寄与(例えば、LA)が得られる。AC寄与からクロマAC成分を近似するために、デコーダによるスケーリングパラメータαの計算に代わって、いくつかの例では、例えば、AV1では、CfLモードはオリジナルのクロマ画素に基づいてスケーリングパラメータαを決定し、ビットストリームでスケーリングパラメータαをシグナリングすることで、デコーダの複雑さを軽減しつつ、より正確な予測を得ることができる。クロマ成分のDC寄与は、イントラDCモードを用いて求められる。イントラDCモードは、ほとんどのクロマコンテンツに対して十分であり、成熟した高速実現が可能である。
マルチラインイントラ予測は、イントラ予測のために、より多くの参照線を使用することができる。参照線は、ピクチャ内の複数のサンプルを含み得る。一例では、参照線は、行のサンプルおよび列のサンプルを含む。一例では、エンコーダは、イントラ予測器を生成するために使用される参照線を決定し、シグナリングすることができる。参照線を示すインデックス(参照線インデックスとも呼ばれる)は、イントラ予測モードの前にシグナリングされ得る。一例では、非ゼロの参照線インデックスがシグナリングされた場合、MPMのみが許可される。図12は、CB(1210)のための4つの参照線の一例を示す。図12を参照すると、参照線は、最大6つのセグメント、例えばセグメントA~Fと、左上参照サンプルとを含み得る。例えば、参照線0は、セグメントBおよびEと左上参照サンプルとを含む。例えば、参照線3は、セグメントA~Fと左上参照サンプルとを含む。セグメントAおよびFは、それぞれセグメントBおよびEからの最近接サンプルでパディングされ得る。いくつかの例では、例えば、HEVCにおいて、1本の参照線(例えば、CB(1210)に隣接する参照線0)のみがイントラ予測に使用される。いくつかの例では、例えば、VVCにおいて、複数本の参照線(例えば、参照線0、1、3)がイントラ予測に使用される。
通常、ブロックは、例えば、図9~図12を参照して上記で説明したような様々なイントラ予測モードの1つまたは適切な組み合わせを使用して予測され得る。
以下にて、AОMedia Videо 1(AV1)で使用されるような一次変換の実施形態について説明する。周波数ドメイン(または空間周波数ドメイン)での変換係数を含むTBが得られるように、順方向変換(例えば、エンコーダで)は、残差(例えば、空間ドメインでの残差)を含む変換ブロック(TB)に実行され得る。空間ドメインでの残差を含むTBは残差TBと呼ばれ、周波数ドメインの変換係数を含むTBは係数TBと呼ばれる。一例では、順方向変換は、残差TBを係数TBに変換できる順方向一次変換を含む。一例では、順方向変換は、順方向一次変換および順方向二次変換を含み、中では、順方向一次変換は、残差TBを中間係数TBに変換することができ、また順方向二次変換は、中間係数TBを係数TBに変換することができる。
空間ドメインでの残差TBが得られるように、周波数ドメインでの係数TBに対して逆変換(例えば、エンコーダまたはデコーダなどで)を実行し得る。一例では、逆変換は、係数TBを残差TBに変換できる逆一次変換を含む。一例では、逆変換は、逆一次変換および逆二次変換を含み、なお、逆二次変換は係数TBを中間係数TBに変換することができ、また逆一次変換は中間係数TBを残差TBに変換することができる。
通常、一次変換とは、順方向一次変換または逆一次変換を指すことができ、一次変換が残差TBと係数TBとの間で実行される。いくつかの実施形態では、一次変換は分離型変換であり得る。ここで、2D一次変換には、水平一次変換(水平変換とも呼ばれる)と垂直一次変換(垂直変換とも呼ばれる)が含まれていてもよい。二次変換とは、順方向二次変換または逆二次変換を指すことができ、二次変換は、中間係数TBと係数TBの間で実行される。
本開示に記載されているような拡張コーディングブロックパーティションをサポートするために、複数の変換サイズ(例えば、各次元について4ポイントから64ポイントまでの範囲)および変換形状(例えば、正方形、幅と高さの比が2:1、1:2、4:1または1:4である矩形)が、例えばAV1などで使用され得る。
2D変換プロセスでは、コーディングされた残差ブロックの次元ごとに異なる1D変換を含めることができるハイブリッド変換カーネルが使用され得る。一次1D変換には、(a)4ポイント、8ポイント、16ポイント、32ポイント、64ポイントのDCT-2;(b)4ポイント、8ポイント、16ポイントの非対称DST(ADST)(例えばDST-4、DST-7など)および対応する反転バージョン(たとえば、ADSTの反転バージョンまたはFlipADSTはADSTを逆方向順序で適用できる)および/または(c)4ポイント、8ポイント、16ポイント、32ポイントの恒等変換(IDTX)が含まれ得る。図13は、本開示の実施形態による一次変換基底関数の例を示す。図13の例における一次変換基底関数は、Nポイント入力を有するDCT-2および非対称DST(DST-及びDST-7)の基底関数を含む。図13に示す一次変換基底関数は、AV1に使用され得る。
ハイブリッド変換カーネルの可用性は、変換ブロックサイズおよび予測モードに依存し得る。図14Aは、変換ブロックサイズ(たとえば、第3の列に示されているサイズ)と予測モード(たとえば、第3の列に示されているイントラ予測とインター予測)に基づく様々な変換カーネル(例えば、第1の列に示され、第2の列に記載される変換タイプ)の可用性の例示的な依存性を示す。予測モードおよび変換ブロックサイズに基づく例示的なハイブリッド変換カーネル及びその可用性は、AV1で使用できる。図14Aを参照すると、記号
は、水平寸法(水平方向とも呼ばれる)および垂直寸法(垂直方向とも呼ばれる)を示す。記号
は、対応するブロックサイズ及び予測モードに対する変換カーネルの可用性を示す。たとえば、記号
は、変換カーネルが使用可能であり、記号「×」は変換カーネルが使用不可能であることを示す。
一例では、変換タイプ(1410)は、図14Aの第1の列に示されるようなADST_DCTによって表される。変換タイプ(1410)は、図14Aの第2の列示されるように、垂直方向のADSTおよび水平方向のDCTを含む。図14Aの第3の列によれば、変換タイプ(1410)は、ブロックサイズが16x16(例えば、16x16サンプル、16x16ルマサンプル)以下である場合、イントラ予測およびインター予測に利用可能である。
一例では、変換タイプ(1420)は、図14Aの第1の列に示されるように、V_ADSTによって示される。変換タイプ(1420)は、図14Aの第2の列に示されるように、垂直方向でのADSTおよび水平方向でのIDTX(すなわち、単位行列)を含む。したがって、変換タイプ(1420)(例えば、V_ADST)は、垂直方向に実行され、水平方向には実行されない。図14Aの第3の列によれば、変換タイプ(1420)は、ブロックサイズにも関わらず、イントラ予測に利用できない。変換タイプ(1420)は、ブロックサイズが16x16(例えば、16x16サンプル、16x16ルマサンプル)未満である場合、インター予測に利用可能である。
一例では、図14Aは、ルマ成分に適用可能である。クロマ成分の場合、変換タイプ(または変換カーネル)の選択は暗黙的に実行され得る。一例では、予測内残差の場合、変換タイプは、図14Bに示されるように、イントラ予測モードに従って選択され得る。一例では、図14Bに示される変換タイプの選択は、クロマ成分に適用可能である。インター予測残差の場合、変換タイプは、同じ場所に配置されたルマブロックの変換タイプに従って選択され得る。したがって、一例では、クロマ成分のための変換タイプはビットストリームでシグナリングされない。
一次変換、二次変換などの変換は、CBなどのブロックに適用され得る。一例では、変換は、一次変換、二次変換の組み合わせを含む。また、変換は、非分離変換、分離型変換または非分離変換と分離型変換の組み合わせであり得る。
二次変換は、VVCなどで実行できる。いくつかの例では、図15~16に示すように、例えばVVCにおいて、低周波非分離変換(LFNST)(縮小二次変換(RST)とも呼ばれる)を、エンコーダ側での順方向一次変換および量子化と、デコーダ側での逆量子化と逆一次変換との間で適用し、一次変換係数をさらに相関解除することができる。
LFNSTで使用できる非分離変換の適用は、4×4入力ブロック(または入力行列)Xを一例として用いて、以下のように説明することができる(式3に示す)。4×4非分離変換を適用するために、4×4入力ブロックXは、式3~4に示すように、ベクトル
で表されることができ
非分離変換は、
として計算されることができる。ここで、
は変換係数ベクトルを示し、Tは16×16変換行列である。16×1係数ベクトル
は、その後、4×4入力ブロックの走査順序(例えば、水平走査順序、垂直走査順序、ジグザグ走査順序、または対角走査順序)を用いて、4×4出力ブロック(または出力行列、係数ブロック)に再編成されることができる。より小さなインデックスを持つ変換係数は、4×4係数ブロックにおいて小さな走査インデックスで配置されることができる。
非分離二次変換は、CBなどのブロックに適用され得る。いくつかの例では、例えば、VVCにおいて、LFNSTは、図15~16に示すように、順方向一次変換と量子化との間(例えば、エンコーダ側で)、および、逆量子化と逆一次変換との間(例えば、デコーダ側で)に適用される。
図15~16は、それぞれ、16×64変換(または、変換が順方向二次変換であるか逆二次変換であるかに応じて64×16変換)および16×48変換(または、変換が順方向二次変換であるか逆二次変換であるかに応じて48×16変換)を用いた2つの変換コーディングプロセス(1700)および(1800)の例を示す。図15を参照すると、プロセス(1700)において、エンコーダ側では、まず、ブロック(例えば、残差ブロック)に対して順方向一次変換(1710)を実行して、係数ブロック(1713)を取得することができる。続いて、順方向二次変換(または順方向LFNST)(1712)を、係数ブロック(1713)に適用することができる。順方向二次変換(1712)では、係数ブロック(1713)の左上隅にある4×4サブブロックA~Dの64個の係数を64長のベクトルで表すことができ、64長のベクトルに64×16(すなわち、幅64および高さ16)の変換行列を乗算することで16長のベクトルを得ることができる。16長のベクトル内の要素は、係数ブロック(1713)の左上の4×4サブブロックAに埋め戻される。サブブロックB~D内の係数はゼロであり得る。量子化ステップ(1714)において順方向二次変換(1712)がなされた後に得られた係数を量子化し、エントロピーコーディングして、ビットストリーム(1716)内のコーディングされたビットを生成する。
コーディングされたビットは、デコーダ側で受信され、エントロピーデコーディングされ、続いて逆量子化ステップ(1724)がなされ、係数ブロック(1723)を生成することができる。逆RST8×8などの逆二次変換(または逆LFNST)(1722)を実行して、例えば、左上の4×4サブブロックEにおける16個の係数から64個の係数を取得することができる。また、64個の係数を4×4サブブロックE~Hに埋め戻すことができる。さらに、逆二次変換(1722)後の係数ブロック(1723)内の係数を逆一次変換(1720)で処理して、復元された残差ブロックを取得することができる。
図16の例のプロセス(1800)は、順方向二次変換(1712)の間に、より少ない(すなわち、48個の)係数が処理されることを除いて、プロセス(1700)と同様である。具体的には、サブブロックA~C内の48個の係数は、48×16のサイズのより小さい変換行列で処理される。48×16のより小さい変換行列を使用することで、変換行列を記憶するためのメモリサイズおよび計算回数(例えば、乗算、加算、減算など)を減らすことができるため、算出の複雑さを軽減することができる。
一例では、ブロックCBなどのブロックサイズに応じて、4×4非分離変換(例えば、4×4 LFNST)または8×8非分離変換(例えば、8×8 LFNST)を適用する。CBのブロックサイズは、幅、高さなどを含み得る。例えば、4×4 LFNSTは、幅と高さの最小値が8のようなしきい値よりも小さい(例えば、min(幅、高さ)<8)CBに対して適用される。例えば、8×8 LFNSTは、幅と高さの最小値が4のようなしきい値よりも大きい(例えば、min(幅、高さ)>4)CBに対して適用される。
非分離変換(例えば、LFNST)は、直接行列乗算アプローチに基づいて行え、したがって、反復なしでシングルパスに実施され得る。非分離変換行列の次元を縮小し、算出上の複雑さおよび変換係数を記憶するためのメモリ空間を最小化するために、LFNSTでは、縮小非分離変換法(またはRST)を使用することができる。したがって、縮小非分離変換では、N(例えば、8×8非分離二次変換(NSST)ではNは64)次元のベクトルを、異なる空間におけるR次元のベクトルにマッピングすることができ、ここで、N/R(R<N)は縮小係数である。したがって、RST行列は、N×N行列の代わりに、式5で説明されるように、R×N行列となる。
式5において、R×N変換行列のR行は、N次元空間のR基底である。逆変換行列は、順方向変換で使用される変換行列(例えば、TR×N)の転置であり得る。8×8LFNSTの場合、縮小係数4を適用することができ、図15に示すように、8×8非分離変換で使用される64×64直接行列を16×64直接行列に縮小することができる。あるいはまた、4よりも大きい縮小係数を適用してもよく、図16に示すように、8×8非分離変換で使用される64×64直接行列を16×48直接行列に縮小することができる。したがって、48×16逆RST行列をデコーダ側で使用して、8×8左上領域のコア(一次)変換係数を生成することができる。
図16を参照すると、同じ変換セット構成を有する16×64行列の代わりに16×48行列が適用される場合、16×48行列への入力は、右下の4×4ブロックDを除く左上の8×8ブロック内の3つの4×4ブロックA、B、Cからの48個の入力データを含んでいる。次元の削減によって、LFNST行列を記憶するためのメモリ使用量を、例えば、最小限の性能低下で10KBから8KBに減らすことができる。
複雑さを軽減するために、LFNSTは、第1の係数サブグループ外の係数が非有意の場合に適用できるように制限され得る。一例では、LFNSTは、第1の係数サブグループ外のすべての係数が非有意の場合にのみ適用できるように制限され得る。図15~16を参照すると、第1の係数サブグループは、左上ブロックEに対応し、したがって、ブロックE外にある係数は、非有意である。
一例では、LFNSTが適用された場合、一次変換係数のみは非有意である(例えば、ゼロ)。一例では、LFNSTが適用される場合、すべての一次変換係数のみはゼロである。一次変換係数のみは、二次変換を伴わない一次変換から得られる変換係数を指すことができる。したがって、LFNSTインデックスシグナリングは、最後有意位置を条件とすることができ、その結果、LFNSTにおける余分な係数走査を回避することができる。いくつかの例では、余分な係数走査は、特定の位置で有意変換係数をチェックするために使用される。一例では、LFNSTの最悪の取り扱いは、例えば、画素あたりの乗算に関しては、4×4ブロックと8×8ブロックの非分離変換を、それぞれ8×16変換と8×48変換に制限する。上記の場合、LFNSTが適用されると、最後有意走査位置は8より小さくすることができる。その他のサイズの場合、LFNSTが適用されると、最後有意走査位置は16より小さくすることができる。4×NとN×4(Nが8より大きい)のCBの場合、この制限は、CBの左上の4×4領域にLFNSTが適用されることを意味することができる。一例では、この制限は、CBの左上の4×4領域のみに、LFNSTが一度だけ適用されることを意味する。一例では、LFNSTが適用される場合、すべての一次係数のみが非有意である(例えば、ゼロ)ので、一次変換のための演算回数が減少する。エンコーダの観点からは、LFNST変換がテストされた場合、変換係数の量子化を大幅に簡素化することができる。レート歪み最適化量子化は、例えば走査順序で最初の16個の係数に対して最大限で行うことができ、残りの係数はゼロにすることができる。
LFNST変換(例えば、変換カーネル、変換コアまたは変換行列)は、以下で説明するように選択され得る。一実施形態では、複数の変換セットを使用することができ、1つまたは複数の非分離変換行列(またはカーネル)は、LFNSTにおける複数の変換セットのそれぞれに含まれ得る。本開示の態様によれば、複数の変換セットから変換セットを選択することができ、変換セット内の1つまたは複数の非分離変換行列から非分離変換行列を選択することができる。
表1は、本開示の一実施形態によるイントラ予測モードから複数の変換セットへの例示的なマッピングを示す。このマッピングは、イントラ予測モードと複数の変換セットとの間の関係を示す。表1に示されるような関係は、予め定義され、且つエンコーダおよびデコーダに記憶されることができる。
表1を参照すると、複数の変換セットは、4つの変換セット、例えば、0から3までの変換セットインデックス(例えば、Tr.set index)でそれぞれ表される変換セット0から3を含む。インデックス(例えば、IntraPredMode)は、イントラ予測モードを示すことができ、変換セットインデックスは、インデックスと表1に基づいて取得できる。したがって、変換セットはイントラ予測モードに基づいて決定され得る。一例では、3つのクロスコンポーネント線形モデル(CCLM)モード(例えば、INTRA_LT_CCLM、INTRA_T_CCLMまたはINTRA_L_CCLM)のうちの1つがCBに使用されると(例えば、81≦IntraPredMode≦83)、CBに対して、変換セット0が選択される。
上述のように、各変換セットは、1つまたは複数の非分離変換行列を含み得る。1つまたは複数の非分離変換行列のうちの1つは、明示的にシグナリングされるLFNSTインデックスによって選択され得る。LFNSTインデックスは、例えば、変換係数をシグナリングした後に、イントラコーディングされたCU(例えば、CB)ごとに1回、ビットストリームでシグナリングされることができる。一実施形態では、各変換セットは、2つの非分離変換行列(カーネル)を含み、且つ選択された非分離二次変換候補は、2つの非分離変換行列のうちの1つであり得る。いくつかの例では、LFNSTは、CBに適用されない(例えば、変換スキップモードでコーディングされたCB、またはCBの非ゼロ係数の数がしきい値よりも小さい)。一例では、LFNSTがCBに適用されない場合、CBに対してLFNSTインデックスはシグナリングされない。LFNSTインデックスのデフォルト値は、ゼロであり、シグナリングされなく、これは、CBにLFNSTが適用されないことを示している。
一実施形態では、LFNSTは、第1の係数サブグループ外のすべての係数が非有意の場合にのみ適用できるように制限され、LFNSTインデックスのコーディングは、最後有意係数の位置に決定され得る。LFNSTインデックスは、コンテキストコーディングされ得る。一例では、LFNSTインデックスのコンテキストコーディングは、イントラ予測モードに依存せず、第1のビンのみがコンテキストコーディングされる。LFNSTは、イントラスライスまたはインタースライス内のイントラコーディングされたCUに適用されることができ、ルマ成分とクロマ成分の両方に適用されることができる。デュアルツリーが有効な場合、ルマ成分とクロマ成分のためのLFNSTインデックスは別々にシグナリングされることができる。インタースライスの場合(例えば、デュアルツリーが無効な場合)、単一のLFNSTインデックスはシグナリングされ、且つルマ成分とクロマ成分の両方に使用されることができる。
イントラサブパーティション(Intra sub-partition、ISP)コーディングモードを使用することができる。ISPコーディングモードでは、ルマイントラ予測ブロックを、ブロックサイズに応じて、垂直方向または水平方向に2つまたは4つのサブパーティションに分割することができる。いくつかの例では、RSTがすべての実行可能なサブパーティションに適用される場合、パフォーマンスの向上は限界に達する。したがって、いくつかの例では、ISPモードが選択された場合、LFNSTは無効化され、LFNSTインデックス(またはRSTインデックス)はシグナリングされない。ISP予測された残差に対してRSTまたはLFNSTを無効化することで、コーディングの複雑さを軽減することができる。いくつかの例では、行列ベースのイントラ予測モード(MIP)が選択された場合、LFNSTは無効化され、LFNSTインデックスはシグナリングされない。
いくつかの例では、最大変換サイズの制限(例えば64×64)のため、64×64よりも大きいCUは暗黙的に分割(TUタイリング)され、LFNSTインデックス検索は、一定数のデコーディングパイプラインステージのためにデータバッファリングを4倍に増やすことができる。したがって、LFNSTが許容される最大サイズを64×64に制限することができる。一例では、LFNSTは離散コサイン変換(DCT)タイプ2(DCT-2)変換のみで有効にされる。
いくつかの例では、分離変換スキームは、指向性テクスチャパターン(たとえば、45°または135°方向に沿ったエッジ)をキャプチャするのに効率的でない場合がある。非分離変換スキームは、たとえば、上記の場合でコーディング効率を向上させることができる。計算の複雑さとメモリ使用量を減らすために、非分離変換スキームを、一次変換から取得される低周波数変換係数に適用される二次変換として使用できる。
いくつかの実装形態では、例えば、グループ化された変換カーネルから、使用されるべき変換カーネルを選択することは、予測モード情報に基づく。予測モード情報は、予測モードを示すことができる。
いくつかの例では、予測モード情報だけでは、予測モードで観察された残差パターンの空間全体の大まかな表現しか提供されない。図17A~17Dは、実施態様によれば、隣接する再構成されたサンプルは、残差パターンをより効率的に表現するための追加情報を提供できる。したがって、予測モード情報に加えて、隣接する再構成されたサンプルに基づく変換セット選択および/または変換カーネル選択の方法が開示される。たとえば、予測モード情報に加えて、隣接する再構成されたサンプルの特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーS)は、選択プロセスへの入力として使用される。
本開示では、ブロックという用語は、PB、CB、コーディングされたブロック、コーディングユニット(CU)、変換ブロック(TB)、変換ユニット(TU)、ルマブロック(例えば、ルマCB)、クロマブロック(例えば、クロマCB)などを指すことができる。
本開示では、ブロックのサイズとは、ブロック幅、ブロック高さ、ブロックアスペクト比(例えば、ブロック高さに対するブロック幅の比、ブロック幅に対するブロック高さの比)、ブロックエリアサイズまたはブロックエリア(例えば、ブロック幅×ブロック高さ)、ブロック幅およびブロック高さの最小値、ブロック幅およびブロック高さの最大値などを指すことができる
本開示では、ブロックの変換カーネルは、一次変換、二次変換、三次変換、または三次変換を超えた変換スキームに使用できる。変換カーネルは、分離変換または非分離変換に使用できる。変換カーネルは、ルマブロック、クロマブロック、インター予測、イントラ予測などに使用できる。また、変換カーネルは、変換コア、変換候補、変換カーネルオプションなどと呼ばれることもある。一例では、変換カーネルは変換行列である。ブロックの変換は、少なくとも変換カーネルに基づいて行われることができる。したがって、本開示の方法は、一次変換、二次変換、三次変換、三次変換を超えた任意の変換スキーム、分離変換、非分離変換、ルマブロック、クロマブロック、インター予測、イントラ予測などに適用できる。
本開示では、変換セットとは、変換カーネルのグループまたは変換カーネルオプションを指すことができる。変換セットは、1つまたは複数の変換カーネルまたは変換カーネルオプションを含み得る。一例では、変換セットからブロックの変換カーネルを選択できる。
本開示の態様によれば、隣接する再構成サンプルを使用して、変換セットのグループから変換カーネルを決定することができる。現在のピクチャの再構成中のブロックの隣接する再構成サンプルを使用して、変換セットのグループからブロックの変換カーネルを決定することができる。変換セットのグループは予め定められてもよい。一例では、変換セットのグループは、エンコーダおよび/またはデコーダに予め記憶されている。
ブロックの隣接する再構成サンプル(例えば、隣接する再構成サンプルセット)とは、現在のピクチャにおける以前にデコーディングされた隣接ブロックからの再構成サンプル(例えば、再構成サンプルのグループ)、または以前にデコーディングされたピクチャにおける再構成サンプルを参照することができる。以前にデコーディングされた隣接ブロックは、このブロックの1つまたは複数の隣接ブロックを含むことができ、且つ隣接する再構成サンプルは、このブロックの1つまたは複数の隣接ブロックにおける再構成サンプルとも呼ばれる。このブロックの1つまたは複数の隣接ブロックは、現在のピクチャまたは現在のピクチャと異なる再構成ピクチャ(たとえば、参照ピクチャ)内に含まれ得る。このブロックの隣接する再構成サンプルは、現在のピクチャのブロックの空間的に隣接するサンプル、および/または現在のピクチャと異なる別のピクチャ(例えば、以前にデコーディングされたピクチャ)のブロックの時間的に隣接するサンプルを含み得る。図18は、本開示の実施形態によるブロックの例示的な空間隣接サンプルを示す。このブロックは、現在のピクチャの現在のブロック(1851)である。サンプル1~4およびA~Xは、現在のブロック(1851)の空間的に隣接するサンプルであって且つ既に再構成された。一例では、サンプル1~4およびA~Xは、現在のブロック(1851)の1つまたは複数の再構成された隣接ブロックにある。本開示の各態様によれば、サンプル1~4およびA~Xのうちの1つまたは複数は、現在のブロック(1851)の変換カーネルを決定するために使用される。一例では、現在のブロック(1851)の隣接する再構築サンプルは、左上隣接サンプル4、サンプルA~Fを含む左隣接列(1852)、およびサンプルG~Lを含む上隣接行(1854)を含み、現在のブロック(1851)の変換カーネルを決定するために使用される。一例では、現在のブロック(1851)の隣接する再構成サンプルは、左上隣接サンプル1-4、サンプルA~FとM~Rを含む左隣接列(1852)~(1853)、およびサンプルG~Lを含む上隣接行(1854)~(1855)を含み、現在のブロック(1851)の変換カーネルを決定するために使用される。
変換セットのグループは、1つまたは複数の変換セットを含み得る。1つまたは複数の変換セットのそれぞれは、任意の適切な1つまたは複数の変換カーネルを含み得る。したがって、変換セットのグループは、一次変換、二次変換、三次変換、または三次変換を超えた変換スキームで使用される変換カーネルを含み得る。変換セットのグループは、分離変換および/または非分離変換である変換カーネルを含み得る。変換セットのグループは、ルマブロック、クロマブロック、インター予測、イントラ予測などに使用される変換カーネルを含み得る。
本開示の態様によれば、現在のピクチャのブロックの1つまたは複数の隣接ブロックにおける再構成サンプルに基づいて、変換セットのグループから、このブロックの変換カーネル(または変換候補)を決定することができる。現在のピクチャのブロックの1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーS)に基づいて、変換セットのグループから、このブロックの変換カーネル(または変換候補)を決定することができる。変換セットのグループの各セットには、このブロックの1つまたは複数の変換候補を含み得る。1つまたは複数の隣接ブロックは、現在のピクチャまたは現在のピクチャと異なる再構成ピクチャにあることができる。また、決定された変換候補に基づいて、ブロックのサンプルを再構成することができる。
一実施形態では、隣接する再構成サンプルから、隣接する再構成サンプルの特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)を抽出し得る。したがって、ブロック(例えば、現在のブロック(1851))の変換カーネルは、特徴インジケータに基づいて決定できる。特徴インジケータは、ベクトル(特徴ベクトル
と呼ばれる)またはスカラー(特徴スカラーSと呼ばれる)であり得る。隣接する再構成サンプルの統計情報または統計分析に基づいて、たとえば、隣接する再構成サンプルに関連付けられた1つまたは複数の変数に基づいて、特徴インジケータを抽出できる。1つまたは複数の変数は、隣接する再構成サンプルのサンプル値の1つまたは複数の分布を示すことができる。
一実施形態では、ブロックの(例えば、現在のブロック(1851))の変換カーネルは、ブロックの隣接する再構成サンプル(例えば、特徴インジケータ)および予測モード情報に基づいて決定され得る。ブロックの予測モード情報は、ブロックのインター予測またはイントラ予測など、ブロックの予測に使用される情報を示すことができる。本開示の態様によれば、ブロックの予測モード情報は、ブロックの予測モード(例えば、イントラ予測モード、インター予測モード)を示すことができる。一例では、ブロックの変換カーネルは、隣接する再構成サンプル(例えば、特徴インジケータ)およびブロックの予測モードに基づいて決定される。
一例では、ブロックはイントラコード化またはイントラ予測され、且つ予測モード情報はイントラ予測モード情報と呼ばれる。ブロックの予測モード情報(例えば、イントラ予測モード情報)は、ブロックに使用されるイントラ予測モードを示すことができる。イントラ予測モードは、ブロックのイントラ予測に使用される予測モード、例えば、図9に記載された指向性モード(または指向性予測モード)、図10に記載された無指向性予測モード(例えば、DCモード、PAETHモード、SMOOTHモード、SMOOTH_Vモード、またはSMOOTH_Hモード)、または図11に記載の再帰フィルタリングモードを指すことができる。イントラ予測モードは、また、本開示に記載されている予測モード、本開示に記載されている予測モードの適切な変形、または本開示に記載されている予測モードの適切な組み合わせを指すこともできる。例えば、イントラ予測モードは、図12に記載されているマルチラインイントラ予測と組み合わせることができる。
より具体的には、例えば、コーディングされたビデオビットストリームからのブロックのコーディングされた情報に基づいて、変換セットのグループから変換セットのサブグループを選択し得る。ブロックのコーディングされた情報は、ブロックの予測モード(例えば、イントラ予測モードまたはインター予測モード)を示す予測モード情報を含み得る。一実施形態では、予測モード情報(例えば、予測モード)に基づいて、変換セットのグループから変換セットのサブグループを選択し得る。
本開示の態様によれば、は、ブロックのコーディングされた情報で示されるブロックの予測モードに基づいて、変換セットのグループから変換セットのサブグループを選択することができる。さらに、変換セットのサブグループからの変換候補は、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルに基づいて決定できる。たとえば、変換セットのサブグループからの変換候補は、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーS)に基づいて決定できる。
変換セットのグループから変換セットのサブグループを選択した後、ブロックの変換カーネルは、少なくとも隣接する再構成サンプル(例えば、特徴インジケータ)に基づいて、以下で説明する任意の適切な方法を利用してさらに決定され得る。
一実施形態では、ブロックの隣接する再構成サンプル(または1つまたは複数の隣接ブロックにおける再構成サンプル)を使用して、選択された変換セットのサブグループから、選択された変換セットのサブグループの変換セットを識別または選択する。一例では、1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)を使用して、選択された変換セットのサブグループの変換セットを識別または選択する。また、第1のインデックスに基づいて、識別された(または選択された)変換セットから、ブロックの変換カーネル(または変換候補)を決定(例えば、選択)し得る。コーディングされた情報は、第1のインデックスを示す(例えば、含む)ことができる。第1のインデックスは、コーディングされたビデオビットストリームにおいてシグナリングされ得る。
一実施形態では、第2のインデックスに基づいて、選択された変換セットのサブグループから、選択された変換セットのサブグループの変換セットを選択する。コーディングされた情報は、第2のインデックスを示す(例えば、含む)ことができる。第2のインデックスは、コーディングされたビデオビットストリームにおいてシグナリングされ得る。さらに、選択された変換セットからのブロックの変換カーネル(または変換候補)は、ブロックの隣接する再構成サンプル(またはブロックの1つまたは複数の隣接ブロックにおける再構成サンプル)(例えば、特徴インジケータ)に基づいて決定(例えば、選択)できる。一例では、選択された変換セット内の変換カーネル(または変換候補)は、ブロックの機能インジケータ(たとえば、特徴ベクトル
または特徴スカラーS)によって決定できる。
一実施形態では、ブロックの隣接する再構成サンプルに基づいて、選択された変換セットのサブグループから、ブロックの変換カーネル(または変換候補)を暗黙的に決定(または識別)する。一例では、変換カーネル(または変換候補)は、選択された変換セットのサブグループからのブロックの特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)を使用し、且つコーディングされたビデオビットストリームでシグナリングされたインデックスを使用せずに暗黙的に決定(または識別)される。
ブロックの特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)は、隣接する再構成サンプルに基づいて決定(例えば、導出)され得る。本開示の態様によれば、ブロックの特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)は、ブロックの隣接する再構成サンプル(またはブロックの1つまたは複数の隣接ブロックにおける再構成サンプル)の統計分析によって決定または導出され得る。上述のように、(i)特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)に基づいて、変換セットのサブグループから変換セットを決定すること、(ii)特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)に基づいて、変換セットのサブグループから変換候補を決定すること、または、(iii)コーディングされた情報のインデックスに基づいて、変換セットのサブグループから変換セットを選択し、特徴インジケータ(例えば、特徴ベクトル
または特徴スカラーS)に基づいて、選択された変換セットから変換候補を決定することのうちのいずれか1つを実行することができる。
一実施形態では、単一の変数Xを使用して、隣接する再構成サンプルを示すことができ、ブロックの特徴インジケータは、ブロックの特徴スカラーSである。変数Xは、隣接する再構成サンプルのサンプル値を示すことができる。一例では、変数Xは、隣接する再構成サンプルのサンプル値を含むアレイであり、隣接する再構成サンプルにおけるサンプル値の分布を反映している。特徴スカラーSは、サンプル値の統計情報を示すことができる。特徴スカラーSには、変数Xの平均値(または1次モーメント)、変数Xの分散(または2次モーメント)、変数Xの歪度(または3次モーメント)など、隣接する再構成サンプルから得られた変数Xのスカラー定量的測定値を含めることができるが、これらに限定されない。一例では、変数Xはランダム変数Xと呼ばれる。
一例では、特徴インジケータは、特徴スカラーSである。特徴スカラーSは、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルのサンプル値を示す変数Xのモーメント(例えば1次モーメント、2次モーメント、3次モーメントなど)として決定される。
変数Xの例は図18に示されている。一例では、変数Xは、サンプル4、左隣接列(1852)、および上隣接行(1854)を含む、現在のブロック(1851)に隣接する再構成隣接サンプルを含む。一例では、変数Xは、再構成隣接サンプル1~4およびA~Xを含む。
一実施形態では、複数の変数(例えば、2つの変数YおよびZ)を使用して、隣接する再構成サンプル(利用可能な場合)の異なるセット(例えば、Yに対応する第1のセットおよびZに対応する第2のセット)を別々に示すことができ、ブロックの特徴インジケータは、このブロックの特徴ベクトル
である。複数の変数は、それぞれ、隣接する再構成サンプルの異なるセットのサンプル値を示すことができる。一例では、変数Yは、隣接する再構成サンプルの第1のセットの第1のサンプル値を含むアレイであり、隣接する再構成サンプルの第1のセットの第1のサンプル値の分布を反映する。変数Zは、隣接する再構成サンプルの第2のセットの第2のサンプル値を含むアレイであり、隣接する再構成サンプルの第2のセットの第2のサンプル値の分布を反映する。特徴ベクトル
は、複数の変数の統計情報を示すことができる。
特徴ベクトル
には、複数の変数の共同変動測定(たとえば、複数の変数(たとえば、2つの変数YとZ)共分散または2次モーメント)など、隣接する再構成サンプルから得られた複数の変数の統計分析を含めるが、これらに限定されないことができる。一例では、この複数の変数(たとえば、2つの変数YとZ)はランダム変数と呼ばれる。
図18には、複数の変数YおよびZの例が示されている。一例では、変数Yには、左隣接列(1852)が含まれ、変数Zには上隣接行(1854)が含まれている。一例では、変数YとZのうちの1つに、左上のサンプル4が含まれている。
一例では、特徴インジケータは特徴ベクトル
である。特徴ベクトル
は、変数(たとえば、変数YとZ)の共同変動として決定され、これらの変数は、それぞれ、ブロック(例えば、現在のブロック(1851))の左隣接列(たとえば、左隣接列(1852))の再構成サンプルのサンプル値と、ブロック(例えば、現在のブロック(1851))の上側の隣接行(たとえば、上隣接行(1854))の再構成サンプルのサンプル値を示している。
一例では、変数Yには、左隣接列(1852)~(1853)が含まれ、変数Zには、上隣接行(1854)~(1855)が含まれている。一例では、変数YおよびZのうちの1つには、左上のサンプル1~4が含まれている。
本開示の態様によれば、特徴インジケータが、ブロックの変換カーネルまたはブロックの変換カーネルを含む変換セットを決定する際に使用される場合、変換カーネルまたは変換セットは、特徴インジケータおよびしきい値に基づいて決定され得る。予め定義されたしきい値セットから、しきい値を選択できる。変換カーネルまたは変換セットは、任意の適切な方法を使用して、特徴インジケータとしきい値に基づいて決定できる。以下で、いくつかの例示的な方法が記述される。上述のように、本開示の各態様によれば、変換セットのサブグループは、例えば、予測モード情報に基づいて、変換セットのグループから選択される。続いて、一例では、変換セットは、ブロックの特徴インジケータおよびしきい値を使用して、選択された変換セットのサブグループから識別される。別の一例では、選択された変換セットのサブグループの変換セットは、コーディングされたビデオビットストリームでシグナリングされたインデックス(例えば、第2のインデックス)を使用して選択され、選択された変換セットからのブロックの変換カーネルは、ブロックの特徴インジケータとしきい値を使用して決定されることができる。別の一例では、変換カーネルは、選択された変換セットのサブグループからの特徴インジケータとしきい値を使用して暗黙的に識別される。
しきい値セット(Ksとして示される)は、たとえば分類化の目的で予め定義されている。一例では、(i)変数Xのモーメントと、予め定義されたしきい値セットKsから選択されたしきい値に基づいて、変換セットのサブグループから変換セットを決定すること、(ii)変数Xのモーメントとしきい値に基づいて、変換セットのサブグループから変換候補を決定すること、または(iii)コーディングされた情報のインデックスに基づいて変換セットのサブグループから変換セットを選択し、変数Xのモーメントとしきい値に基づいて、選択された変換セットから変換候補を決定することのいずれか1つを実行することができる。
一実施形態では、特徴スカラーSは、例えば、上述のように選択された変換セットのサブグループから、ブロックの変換カーネルを識別するために、またはブロックの変換カーネルを含む変換セットを識別するために使用される。しきい値セットKsには、1つまたは複数の第1のしきい値(または第1のしきい値)が含まれ得る。
一例では、特徴スカラーSは、例えば、変数Xの平均値、分散、歪度などの変数Xの定量的測定値である。たとえば、特徴スカラーSは、変数Xのモーメントである。変数のモーメントは、変数Xの1次モーメント(または平均値)、変数Xの2次モーメント(または分散)、または変数Xの3次モーメント(歪度など)のいずれかであり得る。
各予測モード(例えば、イントラ予測モードまたはインター予測モード)は、例えば、複数の予測モードと複数のしきい値セットKsとの間の単射マッピングを示す、しきい値セットKsのうちの一意のしきい値サブセットKs'に対応することができる。ブロックの予測モードは、複数の予測モードのうちの1つであり得る。各予測モードと対応するしきい値サブセットKs'の間のマッピングは、単射マッピングである。たとえば、しきい値セットKsには、第1の予測モードに対応するしきい値サブセットKs1’と、第2の予測モードに対応するしきい値サブセットKs2'が含まれ、また、しきい値サブセットKs1’には、しきい値サブセットKs2'内の要素またはしきい値と同一である要素またはしきい値がない。
一例では、特徴スカラーSは、変数Xの平均値、分散、歪度などの変数Xの定量的測定値である。各予測モードは、しきい値セットKs内のいずれかのしきい値サブセットKs’に対応することができる。各予測モードとしきい値セットKsにおける対応するしきい値サブセットKs’との間のマッピングは非単射マッピングである。一例では、複数の予測モード(たとえば、第1の予測モードおよび第2の予測モード)は、しきい値セットKsにおける同一のしきい値サブセットKs’に対応することができる。一例では、しきい値セットKsは、第1の予測モードに対応するしきい値サブセットKs3'のおよび第2の予測モードに対応するしきい値サブセットKs4'を含み、且つしきい値サブセットKs3'における要素(またはしきい値)は、しきい値サブセットKs4'における要素(またはしきい値)と同じである。一例では、しきい値セットKsは単一の要素セットである。
実施形態では、しきい値セットKsにおけるしきい値サブセットKs'の要素は、量子化インデックス(または量子化インデックスに関連付けられた対応する量子化ステップサイズ)に依存するしきい値である。通常、各量子化インデックスは、一意の量子化ステップサイズに対応することができる。上記の説明は、各予測モードと、しきい値セットKs内の対応するしきい値サブセットKs'との間のマッピングが非単射または単射である場合に適用される。
一実施形態では、特定の量子化インデックス(または対応する量子化ステップサイズ)に対応するしきい値セットKsにおけるしきい値サブセットKs'の1つの要素のみが定義される。しきい値サブセットKs'における残りの要素(ある場合)は、マッピング関数を使用して導出され得る。マッピング関数は、線形または非線形であり得る。マッピング関数は、エンコーダおよび/またはデコーダによって予め定義および使用されたものであり得る。しきい値サブセットKs'における残りの要素は、異なる量子化インデックスまたは(または対応する量子化ステップサイズ)に対応することができる。上記の説明は、各予測モードと、しきい値セットKsにおける対応するしきい値サブセットKs'との間のマッピングが非単射または単射である場合に適用される。
一実施形態では、ルックアップテーブルを利用してしきい値サブセットKs'を決定することができる。たとえば、ルックアップテーブルは、予測モードおよび/または量子化インデックスに基づいて、しきい値サブセットKs'のために要素を選択するために使用される。一例では、ルックアップテーブルは、予測モード、量子化インデックス(または対応する量子化ステップサイズ)としきい値の関係を含む。ルックアップテーブルをトラバースして、予測モード(たとえば、イントラ予測モードまたはインター予測モード)および/または量子化インデックス(または対応する量子化ステップサイズ)を使用して、しきい値サブセットKs'を決定する(たとえば、しきい値サブセットKs'のために要素を選択する)ことができる。上記の説明は、各予測モードと、しきい値セットKs内の対応するしきい値サブセットKs'との間のマッピングが非単射または単射である場合に適用される。
実施形態では、量子化インデックス(または対応する量子化ステップサイズ)からしきい値へのマッピングは、線形マッピングである。勾配や切片など、線形マッピングに使用されるパラメータは、予め定義されたか、またはブロックのコーディングされた情報を使用して導出されたものであり得る。コーディングされた情報は、ブロックサイズ、量子化インデックス(または対応する量子化ステップサイズ)、予測モード(例えば、イントラ予測モードまたはインター予測モード)を含むことができるが、これらに限定されない。線形マッピング(例えば、線形マッピングに使用されるパラメータ)は、予め定義されたか、またはブロックサイズ、量子化インデックス(または対応する量子化ステップサイズ)、予測モードのうちの1つまたは組み合わせに基づいて導出されたものであり得る。量子化インデックス(または対応する量子化ステップサイズ)からしきい値へのマッピングが非線形マッピングである場合、この記述を適切に調整することができる。上記の説明は、各予測モードと、しきい値セットKsにおける対応するしきい値サブセットKs'との間のマッピングが非単射または単射である場合に適用される。
上述のように、特徴スカラーSは、ブロックの変換カーネルを含む変換セットを識別するために、またはブロックの変換カーネルを識別するために使用されることができ、且つしきい値セットKsは、1つまたは複数の第1のしきい値を含むことができる。実施形態では、例えば、しきい値セットKsからのしきい値の選択は、ブロックのブロックサイズに依存する。実施形態では、例えば、しきい値セットKsからのしきい値の選択は、量子化インデックス(または対応する量子化ステップサイズ)など、量子化で使用された量子化パラメータに依存する。実施形態では、例えば、しきい値セットKsからのしきい値の選択は、予測モード(例えば、イントラ予測モードおよび/またはインター予測モード)に依存する。
一実施形態では、特徴ベクトル
は、ブロックの変換カーネルを識別するために、またはブロックの変換カーネルを含む変換セットを識別するために使用される。分類ベクトルセット
および分類ベクトルセット
に関連付けられたしきい値セット(K
vとして示される)は、分類の目的で予め定義されている。しきい値セットK
vには、1つまたは複数の第2のしきい値、または複数の第2のしきい値が含まれ得る。
一例では、各予測モード(例えば、イントラ予測モードまたはインター予測モード)は、
実施形態では、しきい値セットK
vにおけるしきい値サブセットK
v'の要素は、量子化インデックス(または量子化インデックスに関連付けられた対応する量子化ステップサイズ)に依存するしきい値である。
実施形態では、特定の量子化インデックス(または対応する量子化ステップサイズ)に対応する、
一実施形態では、ルックアップテーブルは、しきい値サブセットK
v'のために要素を選択してしきい値サブセットK
v'を決定し、分類ベクトルサブセット
のために要素を選択して対応する分類ベクトルサブセット
を決定するために使用され得る。一例では、ルックアップテーブルは、予測モード、量子化インデックス(または対応する量子化ステップサイズ)としきい値の関係を含む。ルックアップテーブルをトラバースして、予測モード(たとえば、イントラ予測モードまたはインター予測モード)および/または量子化インデックス(または対応する量子化ステップサイズ)を使用して、しきい値サブセットK
v'(たとえば、しきい値サブセットK
v'のために要素を選択する)および、対応する分類ベクトルサブセット
(たとえば、分類ベクトルサブセット
のために要素を選択する)を決定することができる。上記の説明は、(i)各予測モードと、(ii)対応するしきい値サブセットK
v'及びしきい値サブセットK
v'に対応する分類ベクトルサブセット
との間のマッピングが非単射または単射である場合に適用される。
一実施形態では、
の距離との比較によって識別され得る。
一例では、(i)距離と、しきい値セットK
vに含まれるしきい値サブセットK
v'から選択されたしきい値(例えば、{K
v'})との比較に基づいて、変換セットのサブグループから変換セットを決定すること、(ii)距離としきい値(例えば、{K
v'})との比較に基づいて、変換セットのサブグループから変換候補を決定すること、または(iii)コーディングされた情報のインデックスに基づいて変換セットのサブグループから変換セットを選択し、距離としきい値(例えば、{K
v'})との比較に基づいて、選択された変換セットから変換候補を決定することのうちの1つを実行することができる。
一例では、この距離は、2つのベクトル
次元(サイズなど)を表す。
一実施形態では、この比較は、(i)距離がしきい値以下であるかどうか
を決定することができるが、これに限定されない。ここで、{}は対応するセットの要素を表す。
いくつかの実施形態では、隣接する再構成サンプルの特徴インジケータなどの隣接する再構成サンプルを使用して、変換セットのサブグループから変換候補を選択することを制限することができる。ブロックの予測モード(たとえば、イントラ予測モード、インター予測モード)などのコーディングされた情報を使用して選択された幾つかの変換セットのサブグループの場合、変換候補または変換カーネルの識別プロセスには、隣接する再構成サンプルの特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーS)を使用しない。代わりに、変換候補は、コーディングされたビデオビットストリームでシグナリングされる1つまたは複数の関連付けられたインデックスによって識別できる。一例では、幾つかの変換セットのサブグループのそれぞれは、利用可能な変換セットおよび/または変換カーネルの数が少なくなっている。一例では、上記の制限は、
および水平SMOOTHモードSMOOTH_Hなどの特定の予測モードに適用可能であるが、これらに限定されない。したがって、特定の予測モード(たとえば、
およびSMOOTH_H)に基づいて選択された特定の変換セットのサブグループの場合、ブロックの変換候補は、コーディングされたビデオビットストリームでシグナリングされる1つまたは複数の関連付けられたインデックスによって識別されることができ、且つブロックの特徴インジケータに基づいて決定されるわけではない。
図19は、本開示の一実施形態によるプロセス(1900)を概説するフローチャートを示す。プロセス(1900)は、CB、CU、PB、TB、TU、ルマブロック(例えば、ルマCBまたはルマTB)、クロマブロック(例えば、クロマCBまたはクロマTB)などのブロックの再構成に使用されることができる。様々な実施形態では、プロセス(1900)は、端末装置(310)、(320)、(330)および(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1900)はソフトウェア命令で実施されるため、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1900)を実行する。プロセスは、(S1901)から開始し、(S1910)に進む。
(S1910)において、現在のピクチャのブロックの1つまたは複数の隣接ブロックにおける再構成サンプル、たとえば、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーSのうちの1つ)に基づいて、変換セットのグループから、ブロックの変換候補を決定することができる。変換セットのグループの各変換セットは、ブロックの1つまたは複数の変換候補を含み得る。1つまたは複数の隣接ブロックは、現在のピクチャまたは現在のピクチャと異なる再構成ピクチャにあることができる。
実施形態では、ブロックのコーディングされた情報でシグナリングされたブロックの予測モード(たとえば、イントラ予測モード、インター予測モード)に基づいて、変換セットのグループから、変換セットのサブグループを選択することができる。ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーSのうちの1つ)に基づいて、変換セットのサブグループから、変換候補を決定することができる。
一例では、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーSのうちの1つ)に基づいて、変換セットのサブグループのうちの1つの変換セットを選択することができる。コーディングされた情報でシグナリングされたインデックスに基づいて、変換セットのサブグループの選択された1つの変換セットから、ブロックの変換候補を決定することができる。
一例では、コーディングされた情報でシグナリングされた第2のインデックスに基づいて、変換セットのサブグループのうちの1つの変換セットを選択することができる。ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーSのうちの1つ)に基づいて、変換セットのサブグループの選択された1つの変換セットから、ブロックの変換候補を決定することができる。
一例では、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルから抽出された特徴インジケータ(たとえば、特徴ベクトル
または特徴スカラーSのうちの1つ)に基づいて、変換セットのサブグループから、変換候補を暗黙的に決定することができる。
一例では、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルの統計分析に基づいて、
選択された変換セットから変換候補を決定することのうちのいずれか1つを実行することができる。
一例では、特徴インジケータは特徴スカラーSであり、且つ、ブロックの1つまたは複数の隣接ブロックにおける再構成サンプルのサンプル値を示す変数のモーメントとして決定される。しきい値セットKSは予め定義されている。したがって、(i)変数のモーメントとしきい値セットKSから選択されたしきい値に基づいて、変換セットのサブグループから変換セットを決定すること、(ii)変数のモーメントとしきい値に基づいて、変換セットのサブグループから変換候補を決定すること、または(iii)コーディングされた情報の第2のインデックスに基づいて、変換セットのサブグループから変換セットを選択し、変数のモーメントとしきい値に基づいて、選択された変換セットから変換候補を決定することのうちのいずれか1つを実行することができる。
一例では、変数のモーメントは、変数の1次モーメント、前記変数の2次モーメント、または前記変数の3次モーメントのうちの1つである。ブロックの予測モードは、複数の予測モードのうちの1つである。複数の予測モードのそれぞれは、しきい値セットKSにおける一意のしきい値サブセットKS'に対応し、この一意のしきい値サブセットKS'は、複数の予測モードと、しきい値セットKSにおける複数のしきい値サブセットとの間の単射マッピングを示している。
(i)ブロックのブロックサイズ、(ii)量子化パラメータ、または(iii)ブロックの予測モードのうちの1つに基づいて、しきい値セットKSからしきい値を選択する。
一例では、特徴インジケータは
したがって、(i)距離と、しきい値セットK
vに含まれるしきい値サブセットK
v’から選択されたしきい値との比較に基づいて、変換セットのサブグループから変換セットを決定すること、(ii)距離としきい値K
vとの比較に基づいて、変換セットのサブグループから変換候補を決定すること、または、(iii)コーディングされた情報の第2のインデックスに基づいて、変換セットのサブグループから変換セットを選択し、距離としきい値との比較に基づいて、選択された変換セットから変換候補を決定することのうちのいずれか1つを実行することができる。
(S1920)において、決定された変換候補に基づいて、ブロックのサンプルを再構成することができる。
プロセス(1900)は適切に調整され得る。プロセス(1900)における1つまたは複数のステップは、変更および/または省略され得る。1つまたは複数の追加のステップは追加され得る。任意の適切な実現順序を使用することができる。
本開示の実施形態は、単独で使用されるか、または任意の順序で組み合わせて使用されることができる。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実現され得る。一例では、1つまたは複数のプロセッサは、非一時的なコンピュータ可読媒体に格納されているプログラムを実行する。本開示の実施形態は、ルマブロックまたはクロマブロックに適用され得る。
以上で説明された技術は、コンピュータ読取可能な命令を使用するコンピュータソフトウェアとして実現され、1つまたは複数のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、図20は、開示された主題の特定の実施形態を実行することに適したコンピュータシステム(2000)を示す。
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行され得る命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いてコーディングされることができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
コンピュータシステム(2000)について、図20に示される例示的なコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図されない。またコンポーネントの構成は、コンピュータシステム(1700)の例示的な実施形態で示されるコンポーネントのうちのいずれか1つ又は組み合わせに関する任意の依存性又は必要性を有するとして解釈されるべきでもない。
コンピュータシステム(2000)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(示されていない)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクフォン(2006)、スキャナ(2007)、カメラ(2008)(各種につき1つのみ示されている)のうちの1つまたは複数を含み得る。
コンピュータシステム(2000)は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2010)、データグローブ(図示せず)、またはジョイスティック(2005)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(2009)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2010)(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(図示せず)、ホログラフィックディスプレおよびスモークタンク(図示せず)など)、およびプリンタ(図示せず)を含み得る。
コンピュータシステム(2000)は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体(2021)付きのCD/DVD ROM/RW(2020)を含む光学媒体、サムドライブ(2022)、リムーバブルハードドライブまたはソリッドステートドライブ(2023)、テープやフロッピー(登録商標)ディスクなどの従来の磁気媒体(図示せず)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(図示せず)などをも含み得る。
ここで、開示された主題に合わせて使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を含まないことは、当業者に理解されるべきであろう。
コンピュータシステム(2000)は、1つまたは複数の通信ネットワーク(2055)へのインターフェース(2054)をさらに含み得る。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例としては、イーサネット(登録商標)、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2049)(例えば、コンピューターシステム(2000)のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピューターシステム(2000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネット(登録商標)インターフェースまたはスマートフォンコンピューターシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム(2000)は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(2000)のコア(2040)に接続されることができる。
コア(2040)は、1つまたは複数の中央処理装置(CPU)(2041)、グラフィックスプロセッシングユニット(GPU)(2042)、フィールドプログラマブルゲートアレイ(FPGA)(2043)の形式の専用プログラマブル処理ユニット、特定のタスク向けのハードウェアアクセラレータ(2044)、グラフィックアダプタ(2050)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量記憶装置(2047)とともに、システムバス(2048)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(2048)は、1つまたは複数の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(2048)に直接、または周辺バス(2049)を介して接続され得る。一例では、ディスプレイ(2010)は、グラフィックアダプタ(2050)に接続され得る。周辺バスのアーキテクチャは、PCI、USBなどを含む。
CPU(2041)、GPU(2042)、FPGA(2043)、およびアクセラレータ(2044)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2045)またはRAM(2046)に記憶され得る。移行データはRAM(1746)にも記憶できるが、永続データは、例えば、内部大容量ストレージ(2047)に記憶され得る。1つまたは複数のCPU(2041)、GPU(2042)、大容量ストレージ(2047)、ROM(2045)、RAM(2046)などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速保存および検索が可能になる。
コンピュータ読取可能な媒体は、様々なコンピュータ実現操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。
限定ではなく、一例として、アーキテクチャを有するコンピュータシステム(2000)、特にコア(2040)は、1つまたは複数の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能を提供することができる。このようなコンピュータ読取可能な媒体は、以上で説明されたようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ(2047)またはROM(2045)などの非一時的な性質を持つコア(2040)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア(2040)によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2040)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2046)に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更することを含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(2044))に有線接続されたまたは組み込まれたロジックの結果としての機能を提供することができる。ソフトウェアへの引用は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への引用は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
付録A:頭字語
JEM:Joint Exploration Model(共同探索モデル)
VVC:Versatile Video Coding(多用途ビデオコーディング)
BMS:Benchmark Set(ベンチマークセット)
MV:Motion Vector(動きベクトル)
HEVC:High Efficiency Video Coding(高効率ビデオコーディング)
SEI:Supplementary Enhancement Information(補足拡張情報)
VUI:Video Usability Information(ビデオユーザビリティ情報)
GOP:Groups of Pictures(グループオブピクチャ)
TU:Transform Units(変換ユニット)
PU:Prediction Units(予測ユニット)
CTU:Coding Tree Units(コーディングツリーユニット)
CTB:Coding Tree Blocks(コーディングツリーブロック)
PB:Prediction Blocks(予測ブロック)
HRD:Hypothetical Reference Decoder(仮想参照デコーダ)
SNR:Signal Noise Ratio(信号対雑音比)
CPU:Central Processing Units(中央処理装置)
GPU:Graphics Processing Units(グラフィックスプロセッシングユニット)
CRT:Cathode Ray Tube(陰極線管)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
CD:Compact Disc(コンパクトディスク)
DVD:Digital Video Disc(デジタルビデオディスク)
ROM:Read-Only Memory(リードオンリーメモリ)
RAM:Random Access Memory(ランダムアクセスメモリ)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
LAN:Local Area Network(ローカルエリアネットワーク)
GSM:Global System for Mobile Communications(グローバルモバイル通信システム)
LTE:Long-Term Evolution(長期的な進化)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
FPGA:Field Programmable Gate Array(フィールドプログラマブルゲートアレイ)
SSD:Solid-State Drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(コーディングユニット)
本開示はいくつかの例示的な実施形態について説明してきたが、本開示の範囲内に含まれる変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明記または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれる様々なシステムおよび方法を考案できることは、理解されるべきであろう。