図3は、通信システム(300)の例示的なブロック図を示す。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するためのビデオデータ(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリーム)をコード化することができる。符号化ビデオデータは、1つまたは複数のコード化ビデオビットストリームの形式で送信することができる。端末デバイス(320)は、ネットワーク(350)からコード化ビデオデータを受信し、コード化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向データ送信は、メディアサービングアプリケーションなどで一般的であり得る。
別の例では、通信システム(300)は、例えばビデオ会議中にコード化ビデオデータの双方向送信を実行する端末デバイス(330)および(340)の第2のペアを含む。データの双方向送信の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)のうちの他の端末デバイスに送信するためのビデオデータ(例えば、端末デバイスによって取り込まれたビデオピクチャのストリーム)をコード化することができる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)のうちの他の端末デバイスによって送信されたコード化ビデオデータを受信することができ、コード化ビデオデータを復号してビデオピクチャを復元することができ、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示することができる。
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示されているが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器を用いるアプリケーションを見出す。ネットワーク(350)は、例えば、電線(有線)および/またはワイヤレスの通信ネットワークを含む、端末デバイス(310)、(320)、(330)、および(340)の間でコード化ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、以下の本明細書で説明されない限り、本開示の動作にとって重要でない場合がある。
図4は、開示された主題についてのアプリケーションの一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダを示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの格納などを含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成するビデオソース(401)、例えば、デジタルカメラを含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。符号化ビデオデータ(404)(またはコード化ビデオビットストリーム)と比較して多いデータ量を強調するために太い線として描写されたビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理することができる。ビデオエンコーダ(403)は、以下でより詳細に記載されるように、開示された主題の態様を可能にするかまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。ビデオピクチャのストリーム(402)と比較して少ないデータ量を強調するために細い線として描写された符号化ビデオデータ(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)から受信され得、チャネル(501)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、それらのそれぞれの使用エンティティ(描写せず)に転送され得る他のデータ、例えば、コード化オーディオデータおよび/または補助データストリームとともに符号化ビデオデータを受信することができる。受信機(531)は、コード化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に結合され得る。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のアプリケーションでは、それはビデオデコーダ(510)の外側にあり得る(描写せず)。さらに他のアプリケーションでは、例えば、ネットワークジッタに対抗するために、ビデオデコーダ(510)の外側にバッファメモリ(描写せず)があり、加えて、例えば、プレイアウトタイミングを処理するために、ビデオデコーダ(510)の内側に別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および制御可能性のストア/フォワードデバイスから、または等同期ネットワークからデータを受信しているとき、バッファメモリ(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)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(520)からシンボル(521)として受け取る。スケーラ/逆変換ユニット(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)によってコード化されるビデオ画像を取り込むことができる(図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は電子デバイス(620)の一部である。
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコード化されるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(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)を含むビデオデコーダ(510)のエントロピー復号部分、およびパーサ(520)は、ローカルデコーダ(633)に完全に実装されていない可能性がある。
一実施形態では、デコーダ内に存在する構文解析/エントロピー復号を除くデコーダ技術は、対応するエンコーダ内に同一または実質的に同一の機能形態で存在する。したがって、開示された主題は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるため、省略することができる。特定の領域において、より詳細な説明が以下に提供される。
動作中、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコード化されたピクチャを参照して入力ピクチャを予測的にコード化する、動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコード化する。
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータを復号することができる。コーディングエンジン(632)の動作は、有利なことに、非可逆プロセスであってもよい。コード化ビデオデータが(図6には示されていない)ビデオデコーダで復号され得るとき、復元されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、復元された参照ピクチャが参照ピクチャメモリ(634)に格納されるようにすることができる。このようにして、ビデオエンコーダ(603)は、(送信エラーがない)遠端ビデオデコーダによって取得される復元された参照ピクチャとして共通のコンテンツを有する、復元された参照ピクチャのコピーをローカルに格納することができる。
予測器(635)は、コーディングエンジン(632)のための予測検索を実行することができる。すなわち、コード化される新しいピクチャの場合、予測器(635)は、新しいピクチャのための適切な予測参照として役立つことができる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとにサンプルブロックに対して動作することができる。場合によっては、予測器(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有することができる。
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルに可逆圧縮を適用することにより、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。
送信機(640)は、エントロピーコーダ(645)によって作成されたコード化ビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信の準備をすることができ、通信チャネル(660)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオコーダ(603)からのコード化ビデオデータを、送信される他のデータ、例えば、コード化オーディオデータおよび/または補助データストリーム(ソースは図示されていない)とマージすることができる。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいかなる他のピクチャも使用せずにコード化および復号され得るピクチャであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、様々なタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くとも2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの復元のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
ソースピクチャは、通常、複数のサンプルブロック(例えば、各々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は3つのコーディングツリーブロック(CTB)を含み、それらは1つの輝度CTBおよび2つの彩度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ピクセルなどのピクセルの値(例えば、輝度値)の行列を含む。
図7は、ビデオエンコーダ(703)の例示的な図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内のカレントビデオピクチャ内でサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコード化ビデオシーケンスの一部であるコード化ピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
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)は、スイッチ(726)を制御して残差計算器(723)が使用するためのイントラモード結果を選択し、エントロピーエンコーダ(725)を制御してイントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのインター予測結果を選択し、エントロピーエンコーダ(725)を制御してインター予測情報を選択し、ビットストリームにインター予測情報を含める。
残差計算器(723)は、受信ブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な実施形態では、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ、いくつかの例では参照ピクチャとして使用することができる。
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従ってビットストリーム内に様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、ビットストリーム内に汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報を含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコード化するときは残差情報が存在しないことに留意されたい。
図8は、ビデオデコーダ(810)の例示的な図を示す。ビデオデコーダ(810)は、コード化ビデオシーケンスの一部であるコード化ピクチャを受信し、コード化ピクチャを復号して復元されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用される。
図8の例では、ビデオデコーダ(810)は、図8に示されたように一緒に結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、復元モジュール(874)、およびイントラデコーダ(872)を含む。
エントロピーデコーダ(871)は、コード化ピクチャから、コード化ピクチャが構成されるシンタックス要素を表す特定のシンボルを復元するように構成することができる。そのようなシンボルは、例えば、(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモードのうちの後者2つなどの)ブロックがコード化されるモード、および、それぞれ、イントラデコーダ(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)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
イントラ予測では、例えば、AOMedia Video 1(AV1)、Versatile Video Coding(VVC)などにおいて、様々なイントラ予測モードを使用することができる。AV1などの実施形態では、指向性イントラ予測が使用される。オープンビデオコーディングフォーマットVP9などの例では、8つの指向性モードが45°から207°までの8つの角度に対応する。指向性テクスチャにおいてより多くの空間的冗長性を活用するために、例えばAV1では、(指向性イントラモード、指向性イントラ予測モード、角度モードとも呼ばれる)指向性モードは、図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と呼ぶことができる。さらに、各公称角度は、複数のより細かい角度(例えば、7つのより細かい角度)に対応することができ、したがって、例えば、AV1では、56個の角度(もしくは予測角度)または56個の指向性モード(もしくは角度モード、指向性イントラ予測モード)を使用することができる。各予測角度は、公称角度および角度オフセット(または角度デルタ)によって提示することができる。角度オフセットは、オフセット整数I(例えば、-3、-2、-1、0、1、2、または3)にステップサイズ(例えば、3°)を乗算することによって取得することができる。一例では、予測角度は、公称角度と角度オフセットとの和に等しい。AV1などの例では、公称モード(例えば、8つの公称モード(901)~(908))は、特定の非角度平滑モード(例えば、以下に記載されるDCモード、PAETHモード、SMOOTHモード、垂直SMOOTHモード、および水平SMOOTHモードなどの5つの非角度平滑モード)と一緒にシグナリングすることができる。その後、カレント予測モードが指向性モード(または角度モード)である場合、公称角度に対応する角度オフセット(例えば、オフセット整数I)を示すために、インデックスをさらにシグナリングすることができる。一例では、一般的な方法によって指向性予測モードを実装するために、AV1で使用されるような56個の指向性モードは、各ピクセルを参照サブピクセル位置に投影し、2タップ双線形フィルタによって参照ピクセルを補間することができる統一された指向性予測器を用いて実装される。
CBなどのブロックについてのイントラ予測では、(非指向性平滑イントラ予測モード、非指向性平滑モード、非角度平滑モードとも呼ばれる)非指向性平滑イントラ予測器を使用することができる。いくつかの例では(例えば、AV1では)、5つの非指向性平滑イントラ予測モードは、DCモードまたはDC予測器(例えば、DC)、PAETHモードまたはPAETH予測器(例えば、PAETH)、SMOOTHモードまたはSMOOTH予測器(例えば、SMOOTH)、(SMOOTH_Vモード、SMOOTH_V予測器、SMOOTH_Vと呼ばれる)垂直SMOOTHモード、および(SMOOTH_Hモード、SMOOTH_H予測器、またはSMOOTH_Hと呼ばれる)水平SMOOTHモードを含む。
図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)の値の平均値(例えば、重み付き組合せ)を使用することができる。
AV1で使用される実施形態などの一次変換の実施形態が以下に記載される。AV1などにおいて、(例えば、次元ごとについて4ポイント~64ポイントの範囲に及ぶ)複数の変換サイズおよび様々な変換形状(例えば、正方形、幅対高さの比が2:1、1:2、4:1、または1:4の長方形形状)を使用することができる。
2D変換プロセスは、コード化残差ブロックの次元ごとに異なる1D変換を含むことができるハイブリッド変換カーネルを使用することができる。一次1D変換は、(a)4ポイント、8ポイント、16ポイント、32ポイント、64ポイントのDCT-2(もしくはDCT2)、(b)4ポイント、8ポイント、16ポイントの非対称DST(ADST)(例えば、DST-4もしくはDST4、DST-7もしくはDST7)および対応する反転バージョン(例えば、ADSTの反転バージョンもしくはFlipADSTは、ADSTを逆の順序で適用することができる)、ならびに/または(c)4ポイント、8ポイント、16ポイント、32ポイントの恒等変換(IDTXもしくはIDT)を含むことができる。図11は、一次変換基底関数の例を示す。図11の例における一次変換基底関数は、DCT-2ならびにNポイント入力を有する非対称DST(例えば、DST-4およびDST-7)のための基底関数を含む。図11に示された一次変換基底関数は、AV1において使用することができる。
ハイブリッド変換カーネルの可用性は、変換ブロックサイズおよび予測モードに依存する可能性がある。図12は、変換ブロックサイズ(例えば、第3列に示されたサイズ)ならびに予測モード(例えば、第3列に示されたイントラ予測およびインター予測)に基づく様々な変換カーネル(例えば、第1列に示され、第2列に説明された変換タイプ)の可用性の例示的な依存関係を示す。例示的なハイブリッド変換カーネル、ならびに予測モードおよび変換ブロックサイズに基づく可用性は、例えばAV1において使用することができる。図12を参照すると、記号「→」および「↓」は、それぞれ、(水平方向とも呼ばれる)水平次元および(垂直方向とも呼ばれる)垂直次元を意味する。記号
は、対応するブロックサイズおよび予測モードに対する変換カーネルの可用性を示す。例えば、記号
は変換カーネルが利用可能であることを示し、記号
は変換カーネルが利用できないことを示す。
一例では、図12の第1列にADST_DCTによって示された変換タイプは、図12の第2列に示されたように垂直方向のADSTおよび水平方向のDCTを含む。図12の第3列によれば、ブロックサイズが16×16(例えば、16×16サンプル、16×16輝度サンプル)以下であるとき、変換タイプADST_DCTは、イントラ予測およびインター予測に利用可能である。
一例では、図12の第1列に示されたようにV_ADSTによって示された変換タイプは、図12の第2列に示されたように垂直方向のADSTおよび水平方向のIDTX(すなわち、恒等行列)を含む。したがって、変換タイプV_ADSTは、垂直方向に実行され、水平方向には実行されない。図12の第3列によれば、変換タイプV_ADSTは、ブロックサイズにかかわらずイントラ予測には利用できない。変換タイプV_ADSTは、ブロックサイズが16×16(例えば、16×16サンプル、16×16輝度サンプル)未満であるときにインター予測に利用可能である。
一例では、図12は輝度成分に適用可能である。彩度成分に対しては、変換タイプ(または変換カーネル)の選択を暗黙的に実行することができる。一例では、イントラ予測残差について、図13に示されたように、イントラ予測モードに従って変換タイプを選択することができる。図13は、イントラ予測モードに基づく例示的な変換タイプの選択を示す。一例では、図13に示された変換タイプの選択は、彩度成分に適用可能である。インター予測残差の場合、変換タイプは、同じ場所にある輝度ブロックの変換タイプの選択に従って選択することができる。したがって、一例では、彩度成分用の変換タイプはビットストリーム内でシグナリングされない。
本開示は、適応型多重変換セット選択に関する実施形態を含む。
多用途ビデオコーディング(VVC)能力探索作業を超える合同ビデオ専門家チーム(JVET)拡張圧縮のための符号化技法および復号プロセスの参照実装形態を実証するために、拡張圧縮モデル(ECM)-2.0参照ソフトウェアを提供することができる。
ECM-2.0などの一実施形態では、DCT2に加えて複数(例えば、4つ)の異なる多重変換選択(MTS)候補が使用される。各MTS候補に関連付けられた(例えば、垂直方向に沿った垂直変換および水平方向に沿った水平変換を含む)変換ペアは、図12~図13に示されたように、TUサイズ(例えば、TBサイズもしくは変換ブロックサイズ)および/またはイントラモード(例えば、イントラ予測モード)などの予測モードに依存する可能性がある。一実施形態では、変換ペアは、DST7、DCT8、DCT5、DST4、DST1、および恒等変換(IDT)などの非DCT2変換カーネルを使用して構築することができる。
(例えば、mts_idxと示される)MTSインデックスは、複数のMTS候補からどのMTS候補が選択されるかを示すことができる。MTSインデックス(例えば、mts_idx)は、シグナリングまたは推測することができる。MTSインデックス(例えば、mts_idx)は、ブロック(例えば、TB)が少なくとも1つの非DC係数を含むとき、例えば、走査順序における最後の有意係数の位置が0より大きいときにシグナリングすることができる。係数を含むTBは、変換係数ブロックと呼ぶことができる。一例では、MTSインデックス(例えば、mts_idx)は、ブロック(例えば、TB)が少なくとも1つの非DC係数を含むとき、例えば、走査順序における最後の有意係数の位置が0より大きいときにシグナリングすることができる。そうでない場合、MTSインデックス(例えば、mts_idx)はシグナリングされず、変換は、例えば、ブロック(例えば、TB)が少なくとも1つの非DC係数を含むとき、DCT2である(例えば、mts_idxが0である)と推測することができる。MTSインデックス(例えば、mts_idx)をシグナリングするために、MTSインデックスの最初のビンは、MTSインデックスが0より大きいか否かを示すことができる。MTSインデックスが0より大きい場合、固定長コードを使用する追加のMビット(例えば、2ビット)をシグナリングして、複数(例えば、4つ)のMTS候補の中のシグナリングされたMTS候補を示すことができる。Mは正の整数であり得る。
関連するMTS方法などのいくつかの実施形態では、固定数(例えば、4つ)のMTS候補が使用される。固定数のMTS候補を使用することは、ブロック(例えば、TB)の残留特性が考慮されないので最適ではない場合がある。例えば、より少ない残差エネルギーまたはより少ない数の係数(例えば、より少ない数の非DC係数)を有するブロック(例えば、TB)は、MTS候補の数が減るとオーバーヘッドシグナリングを減らすことができるので、MTS候補の数が減ることから利益を得ることができる。より高い残留エネルギーまたはより多い数の係数(例えば、より多い数の非DC係数)を有するブロック(例えば、TB)は、より多い数のMTS候補がより多くの多様性をMTS候補選択に提供することができるので、より多い数のMTS候補から利益を得ることができる。
いくつかの実施形態では、走査順序における最後の有意係数の位置(例えば、lastScanPos)に応じて、可変数(例えば、1、4、または6)のMTS候補を選択することができる。より少ない数のMTS候補を有するより小さいMTS候補セットは、図14に示されたように、より多い数のMTS候補を有するより大きいMTS候補セット(例えば、すぐ次に大きいMTS候補セット)のサブセットであり得る。
図14は、MTS候補の一例、および走査順における最後の有意係数の位置(例えば、lastScanPos)に応じたMTS候補サブセットの選択を示す。MTS候補セット(例えば、フルMTS候補セット)は、複数のMTS候補を含む。複数のMTS候補は、任意の変換または任意の変換タイプを含むことができる。複数のMTS候補の数は、任意の正の数であり得る。一例では、MTS候補セット内の複数のMTS候補の数は1より大きい。図14の例では、MTS候補セット(例えば、フルMTS候補セット)は、複数のMTS候補T0~T5を含む。例えば、複数のMTS候補T0~T5は、DCT2、DST7、DCT8、DCT5、DST4、DST1、およびIDTの6つの候補を含む。一例では、複数のMTS候補T0~T5は、それぞれ、DCT2、DST7、DCT8、DCT5、DST4、およびDST1に対応する。一例では、複数のMTS候補T0~T5は、それぞれ、DST7、DCT8、DCT5、DST4、DST1、およびIDTに対応する。
MTS候補セットに基づいて複数のMTS候補サブセットを決定することができる。例えば、第1の閾値TH[0](例えば、6)および第2の閾値TH[1](例えば、32)などの1つまたは複数の閾値(TH)が、複数のMTS候補サブセットを決定するために使用される。図14の例では、TH[0]が6であること、TH[1]が32であることなど、1つまたは複数の閾値は固定の閾値である。図14を参照すると、複数のMTS候補サブセットは、第1のMTS候補サブセット、第2のMTS候補サブセット、および第3のMTS候補サブセットを含む。第1のMTS候補サブセットは、T0などの1つのMTS候補を含む。第2のMTS候補サブセットは、T0~T3などの4つのMTS候補を含む。第3のMTS候補サブセットは、T0~T5などの6つのMTS候補を含む。図14では、第3のMTS候補サブセットは、フルMTS候補セットである。
図14を参照すると、ブロック(例えば、TB)の走査順における最後の有意係数の位置(例えば、lastScanPos)が第1の閾値TH[0]以下であるとき、ブロックのMTS候補サブセットは第1のMTS候補サブセットである。ブロック(例えば、TB)の走査順における最後の有意係数の位置(例えば、lastScanPos)が、(i)第2の閾値TH[1]以下であり、(ii)第1の閾値TH[0]より大きいとき、ブロックのMTS候補サブセットは第2のMTS候補サブセットである。ブロック(例えば、TB)の走査順における最後の有意係数の位置(例えば、lastScanPos)が第2の閾値TH[1]以上であるとき、ブロックのMTS候補サブセットは第3のMTS候補サブセットである。
図14の例では、ECM-2.0と比較して追加の非DCT2変換カーネルは使用されない。TU形状およびイントラモード依存性は、ECM-2.0から変化しないままである。
様々な実施形態では、固定の閾値(例えば、図14のTH[0]は6であり、TH[1]は32である)に基づいてMTS候補サブセットを決定することは、(i)画像および/もしくはビデオのコンテンツならびに/または(ii)コーディング条件に最適に適合しない場合がある。本開示は、ブロック(例えば、TB)用のMTSサブセット選択を決定するために適応型方法を使用することができる、適応型MTSサブセット選択の実施形態を含む。
本開示に記載された実施形態は、個別に、または任意の形態の組合せによって適用することができる。MTS候補セットに含まれる変換または変換タイプは、任意の変換を含むことができ、図14を参照して記載されたT0~T5に限定されない。ブロックという用語は、予測ブロック、変換ブロック、コーディングブロック、コーディングユニット(CU)などとして解釈されてもよい。
一実施形態によれば、TB(例えば、変換係数ブロック)用のMTS候補サブセットを決定(例えば、選択)する方法は、例えば、高レベルシンタックス(HLS)ヘッダなどの高レベルでシグナリングすることができる。複数のTB(例えば、変換係数ブロック)は、HLSヘッダを参照することができる。複数のTBのMTS選択情報は、HLSヘッダ内でシグナリングすることができる。MTS選択情報は、MTS候補セットのどのMTS候補がTB用のMTS候補サブセットに含まれるかを示すことができる。
高レベルはブロックレベルよりも高くすることができる。HLSヘッダは、スライスヘッダ、ピクチャヘッダ、ピクチャパラメータセット(PPS)、ビデオパラメータセット(VPS)、適応パラメータセット(APS)、シーケンスパラメータセット(SPS)などを含むことができるが、それらに限定されない。
MTS候補セット(例えば、フルMTS候補セット)は、事前定義することができる。一例では、MTS候補セットは、エンコーダおよびデコーダによって合意されるか、またはそれらのために事前決定される。図14の例では、フルMTS候補セットは{T0,T1,T2,T3,T4,T5}である。MTS候補サブセット(例えば、図14の第1のMTS候補サブセット、第2のMTS候補サブセット、および第3のMTS候補サブセット)を形成するために使用される可能な変換は、フルMTS候補セットから導出することができる。一例では、MTS選択情報は、MTS候補サブセットを形成するために複数のTBによって使用される。
ブロックレベル(例えば、TBレベル)において、TB用のMTS候補サブセットは、(i)係数をカウントするための1つまたは複数の閾値を示す閾値情報、および(ii)フルMTS候補セットから形成することができるMTS候補サブセットなどの、能動的に使用される情報に基づいて決定することができる。閾値およびMTS候補サブセットは、ブロック(例えば、TB)が参照するHLSヘッダから決定(例えば、導出)することができる。
一実施形態では、1つまたは複数の閾値(例えば、TH[0]、TH[1])を示す閾値情報がシグナリングされる。例えば、HLSヘッダ内のMTS選択情報は、1つまたは複数の閾値を示す。図14に記載されたように、TB用のMTS候補サブセットは、TBの1つまたは複数の閾値および係数情報に基づいて決定することができる。TBの係数情報は、TB内の非ゼロ係数の数またはTBの走査順序における最後の有意係数の位置(例えば、lastScanPos)を示すことができる。一例では、TB用のMTS候補サブセットは、1つまたは複数の閾値と、(i)TB内の非ゼロ係数の数、または(ii)TBの走査順序における最後の有意係数の位置(例えば、lastScanPos)の比較に基づいて決定される。
一例では、1つまたは複数の閾値の数(例えば、TH[0]およびTH[1]の場合2)がシグナリングされる。一例では、1つまたは複数の閾値の数(例えば、TH[0]およびTH[1]の場合2)はシグナリングされない。1つまたは複数の閾値の数から異なるMTS候補サブセットの数を導出することができる。例えば、異なるMTS候補サブセットの数は、1つまたは複数の閾値の数プラス1に等しい。図14を参照すると、2つの閾値TH[0]およびTH[1]がシグナリングされ、MTSの3つのMTS候補サブセットを使用することができる。
一実施形態では、1つまたは複数のMTS候補サブセット内の変換選択を示すMTS選択情報がシグナリングされる。MTS選択情報は、HLSヘッダ内でシグナリングされてもよい。MTS選択情報は、1つまたは複数のMTS候補サブセットの各々における変換(例えば、MTS候補)の数を示すことができる。一例では、1つまたは複数のMTS候補サブセットの各々における変換の数がシグナリングされる。図14の例では、3つのMTS候補サブセットが形成されたことを示す数1、4、および6がシグナリングされる。3つのMTS候補サブセットは、それぞれ、1つ、4つ、および6つの変換(例えば、MTS候補)を含む。3つのMTS候補サブセットは、(i)数1、4、および6、ならびに(ii)MTS候補セット(例えば、T0~T5)に基づいて決定することができる。一例では、T0~T5は、選択される降順にランク付けされる。したがって、1つの変換を有する第1のMTS候補サブセットは{T0}であり、4つの変換を有する第2のMTS候補サブセットは{T0,T1,T2,T3}であり、6つの変換を有する第3のMTS候補サブセットは{T0,T1,T2,T3,T4,T5}である。
MTS候補サブセット(例えば、最後のMTS候補サブセット)がフルMTS候補セットであるように事前決定されている場合、MTS候補の対応する数(最大数6などの最後の数)はシグナリングされる必要はなく、フルMTS候補セット内の候補の数であると推測することができる。MTS候補サブセット(例えば、最初のMTS候補サブセット)が、デフォルト変換(例えば、T0がDCT2である)のみを含むように事前決定されている場合、MTS候補の対応する数はシグナリングされる必要はなく、1であると推測することができる。
本開示の一実施形態によれば、MTS選択情報は、以前にコード化された領域に基づいて決定することができる。
一実施形態では、カレント領域(例えば、カレントCTU、カレントスライス、カレントピクチャ、またはカレントピクチャグループ(GOP))内のTBにどのMTS候補サブセットが使用されるかを示す1つまたは複数の閾値を含む閾値情報を示すMTS選択情報を決定(例えば、導出)することができる。1つまたは複数の閾値は、以前にコード化された領域(例えば、以前にコード化されたCTU、以前にコード化されたスライス、以前にコード化されたピクチャ、または以前にコード化されたGOP)内の以前にコード化された残差情報に基づいて決定されてもよい。以前にコード化された領域は、複数の以前にコード化されたブロック(例えば、TB)を含むことができる。以前にコード化された領域は、カレント領域に対応することができる。一例では、以前にコード化された領域およびカレント領域はスライスである。一例では、以前にコード化された領域およびカレント領域はピクチャである。以前にコード化された残差情報は、複数の以前にコード化されたブロックの係数情報を示すことができる。
一実施形態では、以前にコード化された残差情報は、以前にコード化された領域内のコード化された残差(例えば、係数)を示す。以前にコード化された残差情報(例えば、以前にコード化された係数情報)は、以前にコード化された領域内のブロック当たり(例えば、TB当たり)の非ゼロ係数の平均数、または以前にコード化された領域内のブロック当たり(例えば、TB当たり)の走査順序における最後の有意係数の平均数を示すことができる。一例では、以前にコード化された領域内のTB当たりの非ゼロ係数の平均数、または以前にコード化された領域内のTB当たりの走査順序における最後の有意係数の平均数が計算および/または格納される。
以前にコード化された残差情報は、カレント領域用の1つまたは複数の閾値を決定するために使用することができる。例えば、カレント領域内の複数のTB用の1つまたは複数の閾値(例えば、TH[0]およびTH[1])は、以前にコード化された残差情報に基づいて決定され、シグナリングされない。
一例では、以前にコード化された領域からの以前にコード化された残差情報は、以前にコード化された領域内の異なるタイプのブロックサイズ(例えば、TBサイズ)に基づいて決定および/または格納される。ブロックサイズは、ブロック内のサンプル数、ブロック幅、ブロック高さなどによって測定することができる。カレント領域内のTB用のMTS候補サブセット選択は、以下に記載されるように、TBが属するタイプのブロックサイズの以前にコード化された残差情報に基づいて決定することができる。
以前にコード化された残差情報は、複数の係数情報を含むことができる。複数の係数情報の各々は、以前にコード化された領域内の複数のタイプのブロックサイズのそれぞれのタイプに対応することができる。一例では、以前にコード化された領域内の複数のタイプのブロックサイズは、(例えば、TB内のサンプル数がN1以下である)第1のタイプおよび(例えば、TB内のサンプル数がN1より大きい)第2のタイプを含む。N1は正の整数である。複数の係数情報は、それぞれ、第1のタイプおよび第2のタイプに対応する第1の係数情報および第2の係数情報を含む。第1の係数情報は、第1のタイプに属する複数の以前にコード化されたTBの第1のサブセットに基づいて決定することができる。第2の係数情報は、第2のタイプに属する複数の以前にコード化されたTBの第2のサブセットに基づいて決定することができる。
カレント領域は第1のTBおよび第2のTBを含む。第1のTB内のサンプルの第1の数はN1未満であり、第2のTB内のサンプルの第2の数はN1より大きい。第1のTBは第1のタイプに属し、第2のTBは第2のタイプに属する。第1のTB用の第1の閾値は、第1の係数情報に基づいて決定することができ、第2のTB用の第2の閾値は、第2の係数情報に基づいて決定することができる。その後、第1の閾値および第2の閾値に基づいて、第1のTBおよび第2のTBのMTS候補サブセットを決定することができる。
本開示の一実施形態によれば、以前にコード化された領域に基づいて決定されたMTS選択情報は、MTS候補サブセットを示す。カレント領域内のTBに対して選択されたMTS候補サブセット(例えば、図14の3つのMTS候補サブセット)は、以前にコード化された領域内の以前にコード化されたMTS情報に基づいて決定(例えば、導出)することができる。
一実施形態では、以前にコード化されたMTS情報は、以前にコード化された領域内で使用される変換タイプの統計情報(例えば、統計データ)を含む。一例では、以前にコード化された領域内で使用されているそれぞれの変換タイプ(例えば、DCT2、DST7、DCT8、DCT5、DST4、DST1、およびIDT)の頻度を決定することができる。例えば、以前にコード化された領域からのブロック当たり最も頻繁に使用される変換タイプを計算および/または格納することができる。以前にコード化されたMTS情報(例えば、それぞれの変換タイプの頻度)は、MTS候補サブセットにおける変換(例えば、変換タイプ)を決定するために使用することができる。以前にコード化されたMTS情報は、カレント領域内のMTS候補サブセットの中のMTS候補の順序を決定するために使用することができる。
図14を参照すると、以前にコード化された領域内で使用されたそれぞれの変換タイプの頻度は、降順にT0、T1、T2、T3、T4、およびT5である。したがって、1つ、4つ、および6つのMTS候補を有するMTS候補サブセットがカレント領域内のTBに対して決定されるべき場合、MTS候補サブセットは、図14に示された3つのMTS候補サブセットである。例えば、第2のMTS候補サブセットはT0、T1、T2、およびT3を含み、以前にコード化された領域内で最も頻繁に使用された変換T0は、第2のMTS候補サブセット内の1番目である。
一例では、以前にコード化された領域からの以前にコード化されたMTS情報は、上述されたように、以前にコード化された領域内の異なるタイプのブロックサイズ(例えば、TBサイズ)に基づいて決定および/または格納される。カレント領域内のTB用のMTS候補サブセット選択および/またはMTS候補サブセット内のMTS候補もしくは変換の順序は、以下に記載されるように、TBが属するタイプのブロックサイズの以前にコード化された残差情報に基づいて決定することができる。
以前にコード化されたMTS情報は、複数のMTS情報を含むことができる。複数のMTS情報の各々は、以前にコード化された領域内の複数のタイプのブロックサイズのそれぞれのタイプに対応することができる。複数のMTS情報は、それぞれ、第1のタイプおよび第2のタイプに対応する第1のMTS情報および第2のMTS情報を含む。第1のタイプに属する複数の以前にコード化されたTBの第1のサブセット内のそれぞれの変換タイプの第1の頻度などの第1のMTS情報は、第1のサブセットに基づいて決定することができる。第2のタイプに属する複数の以前にコード化されたTBの第2のサブセット内のそれぞれの変換タイプの第2の頻度などの第2のMTS情報は、第2のサブセットに基づいて決定することができる。
カレント領域は、上述されたように、第1のTBおよび第2のTBを含む。第1のTB用の第1のMTS候補サブセット内の第1の変換は、第1のMTS情報に基づいて決定することができ、第2のTB用の第2のMTS候補サブセット内の第2の変換は、第2のMTS情報に基づいて決定することができる。
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。例えば、カレント領域内の複数のTB用の閾値を示す閾値情報は、ビデオビットストリーム内でシグナリングすることができるか、以前にコード化された領域に基づいて導出することができるか、または事前に決定することができる。複数のMTS候補サブセットは、前述された閾値、それぞれのMTS候補サブセット内のMTS候補の数、以前にコード化された残差情報、および/または以前にコード化されたMTS情報などの、シグナリングされた情報および/または導出された情報に基づいて決定することができる。TB用のMTS候補サブセットは、(例えば、シグナリングまたは導出された)閾値、(例えば、導出または事前決定された)複数のMTS候補サブセット、およびTBの係数情報などの、シグナリングされた情報、導出された情報、および/または事前決定された情報に基づいて決定することができる。複数の導出されたMTS候補サブセットは、エンコーダおよびデコーダのために事前決定されたフルMTS候補セットから決定することができる。
図15は、本開示の一実施形態による、符号化プロセス(1500)を概説するフローチャートを示す。様々な実施形態では、プロセス(1500)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(例えば、(403)、(603)、(703))の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1500)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1500)を実行する。プロセスは(S1501)から始まり、(S1510)に進む。
(S1510)において、変換されるべき複数の変換ブロック(TB)の多重変換選択(MTS)選択情報が、以前にコード化された領域内の複数の以前にコード化されたTBなどの、以前にコード化された領域に基づいて決定され得る。MTS選択情報は、複数の変換ブロック(TB)の中のTB用の(i)閾値情報または(ii)複数のMTS候補サブセットのうちの少なくとも一方を示すことができる。
(S1520)において、複数のMTS候補サブセットのうちのどのMTS候補サブセットがTBに対して選択されるかが、MTS選択情報に基づいて決定され得る。
(S1530)において、TBが、決定されたMTS候補サブセットに含まれるMTS候補に基づいて変換され得る。
一例では、MTS選択情報は符号化される。符号化されたMTS選択情報は、ビデオビットストリームに含めることができる。
プロセス(1500)は、次いで(S1599)に進み、終了する。
プロセス(1500)は様々なシナリオに適切に適合することができ、プロセス(1500)内のステップはそれに応じて調整することができる。プロセス(1500)内のステップのうちの1つまたは複数は、適合、省略、反復、および/または結合することができる。プロセス(1500)を実施するために、任意の適切な順序を使用することができる。さらなるステップを追加することができる。
図16は、本開示の一実施形態による、復号プロセス(1600)を概説するフローチャートを示す。様々な実施形態では、プロセス(1600)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1600)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1600)を実行する。プロセスは、(S1601)から始まり、(S1610)に進む。
(S1610)において、コード化ビデオビットストリーム内の複数の変換係数ブロックの多重変換選択(MTS)選択情報が決定され得る。MTS選択情報は、複数の変換係数ブロックの中の変換係数ブロック用の閾値情報および/または複数のMTS候補サブセットを示すことができる。一例では、MTS選択情報は、複数の変換係数ブロックに適用可能である。
一実施形態では、MTS選択情報は、コード化ビデオビットストリーム内でシグナリングされる。
(S1620)において、複数のMTS候補サブセットのうちのどのMTS候補サブセットが変換係数ブロックに対して選択されるかが、MTS選択情報に基づいて決定され得る。
一例では、コード化ビデオビットストリーム内でシグナリングされるMTS選択情報は、少なくとも1つの閾値を含む閾値情報を示す。MTS候補サブセットは、少なくとも1つの閾値と、(i)変換係数ブロック内の非ゼロ係数の数または(ii)変換係数ブロック内の走査順における最後の有意係数の位置のうちの一方とに基づいて決定することができる。
一例では、複数のMTS候補サブセットの数は、少なくとも1つの閾値の数と1との和である。複数のMTS候補サブセットは、複数のMTS候補セットの数に基づいて決定することができ、MTS候補サブセットは、複数のMTS候補サブセットに基づいて決定することができる。
一実施形態では、コード化ビデオビットストリーム内でシグナリングされるMTS選択情報は、1つまたは複数の数を含む。1つまたは複数の数の各々は、複数のMTS候補サブセットの中の1つまたは複数のMTS候補サブセットのそれぞれ1つにおける1つまたは複数のMTS候補の数である。複数のMTS候補サブセットは、1つまたは複数の数およびMTS候補セットに基づいて決定することができる。MTS候補サブセットは、複数のMTS候補セットに基づいて決定することができる。一例では、複数のMTS候補サブセットは、1つまたは複数のMTS候補サブセットに含まれない最後のMTS候補サブセットを含み、最後のMTS候補サブセットはMTS候補セットである。一例では、複数のMTS候補サブセットは、1つまたは複数のMTS候補サブセットに含まれない最初のMTS候補サブセットを含み、最初のMTS候補サブセットはMTS候補セット内のデフォルトのMTS候補から構成される。
一実施形態では、MTS選択情報は、以前に復号された領域内の複数の以前に復号された変換係数ブロックに基づいて決定される。MTS選択情報は、複数の変換係数ブロックの少なくとも1つの閾値を含む閾値情報を示す。少なくとも1つの閾値は、複数の以前に復号された変換係数ブロックの係数情報に基づいて決定することができる。MTS候補サブセットは、少なくとも1つの閾値と、(i)変換係数ブロック内の非ゼロ係数の数または(ii)変換係数ブロック内の走査順における最後の有意係数の位置のうちの一方とに基づいて決定することができる。
一例では、複数の以前に復号された変換係数ブロックの係数情報は、(i)複数の以前に復号された変換係数ブロックの非ゼロ係数の平均数、または(ii)複数の以前に復号された変換係数ブロックの走査順における最後の有意係数の平均位置を示す。
一例では、MTS選択情報は、複数の変換係数ブロックの少なくとも1つの閾値を含む閾値情報を示す。複数の係数情報は、複数の以前に復号された変換係数ブロックに関連付けられる。複数の係数情報の各々は、以前に復号された領域内の複数のタイプのブロックサイズのそれぞれのタイプに対応する。少なくとも1つの閾値は、変換係数ブロックが属するそれぞれのタイプのブロックサイズに対応する係数情報に基づいて決定することができる。MTS候補サブセットは、少なくとも1つの閾値と、(i)変換係数ブロック内の非ゼロ係数の数または(ii)変換係数ブロック内の走査順における最後の有意係数の位置のうちの一方とに基づいて決定することができる。
一例では、MTS選択情報は、複数のMTS候補サブセットを示す。複数の変換係数ブロックについて、MTS候補セットから複数のMTS候補サブセットを形成するために使用されるMTS候補およびMTS候補の順序は、複数の以前に復号された変換係数ブロックの変換タイプの統計情報に基づいて決定することができる。複数のMTS候補サブセットは、MTS候補およびMTS候補の順序に基づいてMTS候補セットから決定することができる。MTS候補サブセットは、複数のMTS候補セットのうちの1つであるように決定することができる。
一例では、MTS選択情報は、複数のMTS候補サブセットを示す。変換タイプの複数の統計情報は、複数の以前に復号された変換係数ブロックに関連付けられる。変換タイプの複数の統計情報の各々は、以前に復号された領域内の複数のタイプのブロックサイズのそれぞれのタイプに対応する。変換係数ブロックについて、MTS候補セットから複数のMTS候補サブセットを形成するために使用されるMTS候補およびMTS候補の順序は、変換係数ブロックが属するタイプのブロックサイズに対応する変換タイプの1つの統計情報に基づいて決定することができる。MTS候補セットからの複数のMTS候補サブセットは、MTS候補およびMTS候補の順序に基づいて決定することができる。MTS候補サブセットは、複数のMTS候補セットのうちの1つであるように決定することができる。
(S1630)において、変換係数ブロックが、決定されたMTS候補サブセットに含まれるMTS候補に基づいて逆変換され得る。
プロセス(1600)は、(S1699)に進み、終了する。
プロセス(1600)は様々なシナリオに適切に適合することができ、プロセス(1600)内のステップはそれに応じて調整することができる。プロセス(1600)内のステップのうちの1つまたは複数は、適合、省略、反復、および/または結合することができる。プロセス(1600)を実施するために、任意の適切な順序を使用することができる。さらなるステップを追加することができる。
図17は、本開示の一実施形態による、復号プロセス(1700)を概説するフローチャートを示す。様々な実施形態では、プロセス(1700)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1700)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1700)を実行する。プロセスは、(S1701)から始まり、(S1710)に進む。
(S1710)において、高レベルシンタックスヘッダを含むコード化ビデオビットストリームが受信される。高レベルシンタックスヘッダは、複数の変換係数ブロックの多重変換選択(MTS)選択情報を含む。
(S1720)において、複数の変換係数ブロックの中の変換係数ブロック用の(i)閾値情報または(ii)複数のMTS候補サブセットのうちの少なくとも一方を示すMTS選択情報が決定される。
(S1730)において、複数のMTS候補サブセットのうちのどのMTS候補サブセットが変換係数ブロックに対して選択されるかが、MTS選択情報に基づいて決定される。
(S1740)において、変換係数ブロックが、決定されたMTS候補サブセットに含まれるMTS候補に基づいて逆変換され得る。
プロセス(1700)は、(S1799)に進み、終了する。
プロセス(1700)は様々なシナリオに適切に適合することができ、プロセス(1700)内のステップはそれに応じて調整することができる。プロセス(1700)内のステップのうちの1つまたは複数は、適合、省略、反復、および/または結合することができる。プロセス(1700)を実施するために、任意の適切な順序を使用することができる。さらなるステップを追加することができる。
図18は、本開示の一実施形態による、復号プロセス(1800)を概説するフローチャートを示す。様々な実施形態では、プロセス(1800)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1800)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1800)を実行する。プロセスは、(S1801)から始まり、(S1810)に進む。
(S1810)において、コード化ビデオビットストリーム内の複数の変換係数ブロックの多重変換選択(MTS)選択情報が、以前に復号された領域内の複数の以前に復号された変換係数ブロックに基づいて決定され得る。MTS選択情報は、複数の変換係数ブロックの中の変換係数ブロック用の(i)閾値情報または(ii)複数のMTS候補サブセットのうちの少なくとも一方を示す。
(S1820)において、複数のMTS候補サブセットのうちのどのMTS候補サブセットが変換係数ブロックに対して選択されるかが、MTS選択情報に基づいて決定される。
(S1830)において、変換係数ブロックが、決定されたMTS候補サブセットに含まれるMTS候補に基づいて逆変換され得る。
プロセス(1800)は、(S1899)に進み、終了する。
プロセス(1800)は様々なシナリオに適切に適合することができ、プロセス(1800)内のステップはそれに応じて調整することができる。プロセス(1800)内のステップのうちの1つまたは複数は、適合、省略、反復、および/または結合することができる。プロセス(1800)を実施するために、任意の適切な順序を使用することができる。さらなるステップを追加することができる。
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
上述された技法は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に記憶されるコンピュータソフトウェアとして実装することができる。例えば、図19は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1900)を示す。
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによる、直接、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブル、コンパイル、リンク、または同様のメカニズムを受けることができる任意の適切な機械語またはコンピュータ言語を使用してコード化することができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
コンピュータシステム(1900)に関して図19に示された構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関するいかなる制限も示唆するものではない。構成要素の構成は、コンピュータシステム(1900)の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関するいかなる依存関係または要件も有すると解釈されるべきでない。
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きなどの)触覚入力、(音声、拍手などの)オーディオ入力、(ジェスチャなどの)視覚入力、(描写されていない)嗅覚入力を介して、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、(音声、音楽、周囲の音などの)オーディオ、(走査画像、静止画カメラから取得された写真画像などの)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオなどの)ビデオなどの、人間による意識的な入力に必ずしも直接関連しない特定の媒体を取り込むために使用することもできる。
入力ヒューマンインターフェースデバイスには、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロフォン(1906)、スキャナ(1907)、カメラ(1908)のうちの1つまたは複数が含まれてもよい(各々の1つのみが描写されている)。
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(1910)、データグローブ(図示せず)、またはジョイスティック(1905)による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、(スピーカ(1909)、ヘッドフォン(描写せず)などの)オーディオ出力デバイス、(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1910)など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(描写せず)、ホログラフィックディスプレイおよびスモークタンク(描写せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能な場合がある)視覚出力デバイス、ならびにプリンタ(描写せず)が含まれてもよい。
コンピュータシステム(1900)は、CD/DVDまたは同様の媒体(1921)を有するCD/DVD ROM/RW(1920)を含む光学媒体、サムドライブ(1922)、リムーバブルハードドライブまたはソリッドステートドライブ(1923)、テープおよびフロッピーディスクなどのレガシー磁気媒体(描写せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(描写せず)などの、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体を含むこともできる。
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
コンピュータシステム(1900)は、1つまたは複数の通信ネットワーク(1955)へのインターフェース(1954)を含むこともできる。ネットワークは、例えば、ワイヤレス、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、ワイヤレスLANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線またはワイヤレスの広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークは、通常、(例えば、コンピュータシステム(1900)のUSBポートなどの)特定の汎用データポートまたは周辺バス(1949)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下に記載されるシステムバスに取り付けることによってコンピュータシステム(1900)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、ブロードキャストTV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述されたそれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1900)のコア(1940)に取り付けることができる。
コア(1940)は、1つまたは複数の中央処理装置(CPU)(1941)、グラフィックス処理装置(GPU)(1942)、フィールドプログラマブルゲートアレイ(FPGA)(1943)、特定のタスク用のハードウェアアクセラレータ(1944)、グラフィックスアダプタ(1950)などの形態の特殊なプログラマブル処理装置を含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(1945)、ランダムアクセスメモリ(1946)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1947)とともに、システムバス(1948)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1948)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺機器は、コアのシステムバス(1948)に直接取り付けることも、周辺バス(1949)を介して取り付けることもできる。一例では、スクリーン(1910)は、グラフィックスアダプタ(1950)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
CPU(1941)、GPU(1942)、FPGA(1943)、およびアクセラレータ(1944)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1945)またはRAM(1946)に記憶することができる。移行データもRAM(1946)に記憶することができるが、永続データは、例えば、内部大容量ストレージ(1947)に記憶することができる。メモリデバイスのいずれかに対する高速の記憶および検索は、1つまたは複数のCPU(1941)、GPU(1942)、大容量ストレージ(1947)、ROM(1945)、RAM(1946)などと密接に関連付けることができるキャッシュメモリを使用して可能にすることができる。
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをそこに有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
限定としてではなく一例として、アーキテクチャを有するコンピュータシステム(1900)、具体的にはコア(1940)は、1つまたは複数の有形のコンピュータ可読媒体内に具現化されたソフトウェアを(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが実行する結果として、機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能大容量ストレージ、ならびにコア内部大容量ストレージ(1947)またはROM(1945)などの非一時的な性質のコア(1940)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1940)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1940)、および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(1946)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる、回路(例えば、アクセラレータ(1944))内に配線された、またはさもなければ具現化されたロジックの結果として、機能を提供することができる。必要に応じて、ソフトウェアへの参照はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(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:Group of Pictures,ピクチャグループ
TU:Transform Unit,変換ユニット
PU:Prediction Unit,予測ユニット
CTU:Coding Tree Unit,コーディングツリーユニット
CTB:Coding Tree Block,コーディングツリーブロック
PB:Prediction Block,予測ブロック
HRD:Hypothetical Reference Decoder,仮想参照デコーダ
SNR:Signal Noise Ratio,信号対雑音比
CPU:Central Processing Unit,中央処理装置
GPU:Graphics Processing Unit,グラフィックス処理装置
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,コーディングユニット
R-D:Rate-Distortion,レート歪み
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある、多数のシステムおよび方法を考案できることが諒解されよう。