図1は、本開示の一実施形態による通信システム(100)の簡略化されたブロック図を示す。通信システム(100)は、例えばネットワーク(150)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(100)は、ネットワーク(150)を介して相互接続された端末装置(110)および(120)の第1のペアを含む。図1の例では、端末装置(110)および(120)の第1のペアは、データの一方向送信を行う。例えば、端末装置(110)は、ネットワーク(150)を介して他の端末装置(120)に送信するために、ビデオデータ(例えば、端末装置(110)によってキャプチャされたビデオ画像ストリーム)を符号化することができる。符号化されたビデオデータは、1つまたは複数の符号化されたビデオビットストリームの形態で送信され得る。端末装置(120)は、ネットワーク(150)から符号化されたビデオデータを受信し、符号化されたビデオデータを復号してビデオ画像を復元し、復元されたビデオデータに従ってビデオ画像を表示することができる。一方向データ送信は、メディアサービング用途などで一般的であることがある。
別の例では、通信システム(100)は、例えばテレビ会議中に発生する可能性がある符号化されたビデオデータの双方向送信を行う端末装置(130)および(140)の第2のペアを含む。データの双方向通信のために、一例では、端末装置(130)および(140)の各端末装置は、ネットワーク(150)を介して端末装置(130)および(140)の他方の端末装置に送信するためのビデオデータ(例えば、端末装置によってキャプチャされたビデオ画像ストリーム)を符号化することができる。端末装置(130)および(140)の各端末装置はまた、端末装置(130)および(140)の他方の端末装置によって送信された符号化されたビデオデータを受信することができ、符号化されたビデオデータを復号してビデオ画像を復元することができ、復元されたビデオデータに従ってアクセス可能なディスプレイ装置にビデオ画像を表示することができる。
図1の例では、端末装置(110)、(120)、(130)、および(140)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示されていることがあるが、本開示の原理は、そのように限定されないことがある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器を用いた用途を見出す。ネットワーク(150)は、例えば、有線および/または無線通信ネットワークを含む端末装置(110)、(120)、(130)、および(140)の間で、符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本議論の目的のために、ネットワーク(150)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではないことがある。
図2は、開示された主題の用途の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの保存を含む、他のビデオ対応用途に等しく適用することができる。
ストリーミングシステムは、ビデオソース(201)、例えば非圧縮であるビデオ画像のストリーム(202)を作成する例えばデジタルカメラを含むことができるキャプチャサブシステム(213)を含み得る。一例では、ビデオ画像のストリーム(202)は、デジタルカメラによって撮影されたサンプルを含む。符号化されたビデオデータ(204)(または符号化されたビデオビットストリーム)と比較して高いデータ量を強調するために太線として描かれているビデオ画像のストリーム(202)は、ビデオソース(201)に結合されたビデオエンコーダ(203)を含む電子装置(220)によって処理することができる。ビデオエンコーダ(203)は、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができ、以下でより詳細に説明されるように、開示された主題の態様を可能にするかまたは実施する。符号化されたビデオデータ(204)(または符号化されたビデオビットストリーム(204))は、ビデオ画像のストリーム(202)と比較してより少ないデータ量を強調するために細い線として描かれ、将来の使用のためにストリーミングサーバ(205)に記憶され得る。図2のクライアントサブシステム(206)および(208)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(205)にアクセスして、符号化されたビデオデータ(204)のコピー(207)および(209)を取得することができる。クライアントサブシステム(206)は、例えば電子装置(230)内のビデオデコーダ(210)を含み得る。ビデオデコーダ(210)は、符号化されたビデオデータの着信複製(207)を復号し、ディスプレイ(212)(例えば、ディスプレイ画面)または他のレンダリング装置(図示せず)上にレンダリングすることができるビデオ画像の出力ストリーム(211)を作成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ(204)、(207)、および(209)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮規格に従って符号化され得る。これらの規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオ符号化規格は、多用途ビデオ符号化(Versatile Video Coding:VVC)として非公式に知
られている。開示された主題は、VVCの文脈で使用されることがある。
電子装置(220)および(230)は、他の構成要素(図示せず)を含み得ることに留意されたい。例えば、電子装置(220)は、ビデオデコーダ(図示せず)を含み得て、電子装置(230)は、ビデオエンコーダ(図示せず)も含み得る。
図3は、本開示の一実施形態によるビデオデコーダ(310)のブロック図を示す。ビデオデコーダ(310)は、電子装置(330)に含まれ得る。電子装置(330)は、受信機(331)(例えば、受信回路)を含み得る。ビデオデコーダ(310)は、図2の例のビデオデコーダ(210)の代わりに使用され得る。
受信機(331)は、ビデオデコーダ(310)によって復号される1つまたは複数の符号化されたビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信することができ、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル(301)から受信し得て、チャネル(301)は、符号化されたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信機(331)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリームととともに、符号化されたビデオデータを受信することができる。受信機(331)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(315)を、受信機(331)とエントロピーデコーダ/パーサ(320)(以下、「パーサ(320)」)との間に結合されてもよい。特定の用途では、バッファメモリ(315)は、ビデオデコーダ(310)の一部である。他の場合には、これはビデオデコーダ(310)の外部にあってもよい(図示せず)。さらに他の場合には、例えば、ネットワークジッタに対抗するために、ビデオデコーダ(310)の外部にバッファメモリ(図示せず)があり、さらに、例えばプレイアウトタイミングを処理するために、ビデオデコーダ(310)の内部に別のバッファメモリ(315)があり得る。受信機(331)が、十分な帯域幅および制御可能性を有する記憶/転送装置から、またはアイソクロナスネットワークからデータを受信しているとき、バッファメモリ(315)は必要ないか、または小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(315)を必要とすることがあり、比較的大きくすることができ、有利には適応サイズにし得て、ビデオデコーダ(310)の外部のオペレーティングシステムまたは同様の要素(図示せず)において少なくとも部分的に実施されてもよい。
ビデオデコーダ(310)は、符号化されたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含み得る。これらのシンボルのカテゴリには、ビデオデコーダ(310)の動作を管理するために使用される情報と、図3に示されたように、潜在的に、電子装置(330)の不可欠な部分ではないが、電子装置(330)に結合できるレンダリング装置(312)(例えば、ディスプレイ画面)などのレンダリング装置を制御するための情報とが含まれる。レンダリング装置の制御情報は、補足エンハンスメント情報(Supplemental Enhancement Information)(SEIメッセージ)またはビデオユーザビリティ(Video Usability Information)(VUI)パラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(320)は、受信した符号化されたビデオシーケンスを解析/エントロピー復号することができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができ、可変長符号化、ハフマン符号化、文脈依存の有無にかかわらず算術符号化などを含む様々な原則に従うことができる。パーサ(320)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、グループオブピクチャ(GOP)、画像、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含み得る。パーサ(320)はまた、符号化されたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出することができる。
パーサ(320)は、バッファメモリ(315)から受信したビデオシーケンスに対してエントロピー復号/解析動作を実行して、シンボル(321)を作成することができる。
シンボル(321)の再構成は、符号化されたビデオ画像またはその一部(インター画像およびイントラ画像、インターブロックおよびイントラブロックなど)のタイプ、および他の要因に応じて、複数の異なるユニットを含み得る。どのユニットがどのように関与するかは、パーサ(320)によって、符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために描かれていない。
既に述べた機能ブロック以外に、ビデオデコーダ(310)は、以下に説明するように、概念的にいくつかの機能ユニットに細分され得る。商業的制約の下で動作する実際の実施では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合され得る。しかしながら、開示された主題を説明する目的で、以下の機能ユニットへの概念的細分化が適切である。
第1のユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報を、パーサ(320)からシンボル(321)として受け取る。スケーラ/逆変換ユニット(351)は、集約装置(355)に入力できるサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換(351)の出力サンプルは、イントラ符号化されたブロックに関係することができ、つまり、以前に再構成された画像からの予測情報は使用していないが、現在の画像の以前に再構成された部分からの予測情報を使用できるブロックである。そのような予測情報は、イントラ画像予測ユニット(352)によって提供され得る。場合によっては、イントラ画像予測ユニット(352)は、現在の画像バッファ(358)からフェッチされた周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在の画像バッファ(358)は、例えば、部分的に再構成された現在の画像および/または完全に再構成された現在の画像をバッファリングする。集約装置(355)は、場合によっては、サンプルごとに、イントラ予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に追加する。
他の場合では、スケーラ/逆変換ユニット(351)の出力サンプルは、インター符号化された、潜在的に動き補償されたブロックに関係し得る。このような場合、動き補償予測ユニット(353)は、参照画像メモリ(357)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(321)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、集約装置(355)によってスケーラ/逆変換ユニット(351)の出力に追加できる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(353)が予測サンプルをフェッチする参照画像メモリ(357)内のアドレスは、動きベクトルによって制御することができ、例えば、X、Y、および参照画像コンポーネントを有することができるシンボル(321)の形式で動き補償予測ユニット(353)に利用可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照画像メモリ(357)からフェッチされたサンプル値の補間、動きベクトル予測機構などを含み得る。
集約装置(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能になるインループフィルタ技術を含むことができるが、符号化された画像または符号化されたビデオシーケンスの前の(復号順で)部分の復号中に取得されたメタ情報に応答することもでき、以前に再構成およびループフィルタリングされたサンプル値に応答することもできる。
ループフィルタユニット(356)の出力は、レンダリング装置(312)に出力され得るだけでなく、将来のインター画像予測で使用するために参照画像メモリ(357)に記憶され得るサンプルストリームであり得る。
特定の符号化された画像は、完全に再構成されると、将来の予測のための参照画像として使用され得る。例えば、現在の画像に対応する符号化された画像が完全に再構成され、(例えば、パーサ(320)によって)符号化された画像が参照画像として識別されると、現在の画像バッファ(358)は、参照画像メモリ(357)の一部になることができ、次の符号化された画像の再構成を開始する前に、新しい現在の画像バッファを再割り当てされ得る。
ビデオデコーダ(310)は、ITU-T Rec.H.265などの規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化されたビデオシーケンスは、符号化されたビデオシーケンスがビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格に文書化されたプロファイルとの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠してもよい。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールから、そのプロファイルの下で使用可能な唯一のツールとして、特定のツールを選択し得る。また、コンプライアンスのために必要なのは、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される境界内にあることであり得る。場合によっては、レベルは、最大画像サイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒当たりメガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想基準デコーダ(HRD)仕様、および符号化されたビデオシーケンスにおいて信号で通知されたHRDバッファ管理のためのメタデータによってさらに制限され得る。
一実施形態では、受信機(331)は、符号化されたビデオととともに追加の(冗長な)データを受信することができる。追加のデータは、符号化されたビデオシーケンスの一部として含まれることがある。追加のデータは、データを適切に復号するために、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(310)によって使用されることがある。追加データは、例えば、時間的、空間的、または信号対雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、順方向エラー訂正コードの形式をとることができる。
図4は、本開示の一実施形態によるビデオエンコーダ(403)のブロック図を示す。ビデオエンコーダ(403)は、電子装置(420)に含まれる。電子装置(420)は、送信機(440)(例えば、送信回路)を含む。ビデオエンコーダ(403)は、図2の例のビデオエンコーダ(203)の代わりに使用され得る。
ビデオエンコーダ(403)は、ビデオエンコーダ(403)によって符号化されるビデオ画像をキャプチャすることができるビデオソース(401)(図4の例の電子装置(420)の一部ではない)からビデオサンプルを受信してもよい。別の例では、ビデオソース(401)は、電子装置(420)の一部である。
ビデオソース(401)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCb、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCB 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(403)によって符号化されるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(401)は、以前に準備されたビデオを保存する記憶装置であってもよい。ビデオ会議システムでは、ビデオソース(401)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順に見たときに動きを与える複数の個々の画像として提供されてもよい。画像自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含み得る。当業者であれば、画素とサンプルとの関係を容易に理解することができる。以下、サンプルに着目して説明する。
一実施形態によれば、ビデオエンコーダ(403)は、リアルタイムで、または用途によって要求される任意の時間制約の下で、ソースビデオシーケンスの画像を復号されたビデオシーケンス(443)に符号化および圧縮することができる。適切な符号化速度を強制することは、コントローラ(450)の1つの機能である。いくつかの実施形態では、コントローラ(450)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合されている。明確にするために、結合は、描かれていない。コントローラ(450)によって設定されるパラメータには、レート制御関連のパラメータ(画像スキップ、量子化器、レート歪み最適化手法のラムダ値など)、画像サイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル検索範囲などを含み得る。コントローラ(450)は、特定のシステム設計に最適化されたビデオエンコーダ(403)に関する他の適切な機能を有するように構成され得る。
いくつかの実施形態では、ビデオエンコーダ(403)は、符号化ループで動作するように構成される。過度に簡略化された説明として、一例では、符号化ループは、(例えば、符号化される入力画像と、参照画像とに基づいて、シンボルストリームなどのシンボルを作成する役割を果たす)ソースコーダ(430)と、ビデオエンコーダ(403)に組み込まれた(ローカル)デコーダ(433)とを含み得る。デコーダ(433)は、(リモート)デコーダもまた作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構成する(シンボルと符号化されたビデオビットストリームとの間の圧縮は、開示された主題で考慮されるビデオ圧縮技術において可逆であるため)。再構成されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(434)に入力される。シンボルストリームの復号により、デコーダの位置(ローカルまたはリモート)に関係なくビットイグザクトな結果が得られるため、参照画像バッファ(434)の内容もまたローカルエンコーダとリモートエンコーダとの間でビットイグザクトになる。言い換えると、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照画像サンプルとして「見る」。参照画像の同期性(および、例えばチャネルエラーのために同期性を維持できない場合に生じるドリフト)のこの基本原理は、いくつかの関連する技術においても使用される。
「ローカル」デコーダ(433)の動作は、ビデオデコーダ(310)などの「リモート」デコーダの動作と同じであることが可能であり、これは、図3に関連して上記で詳細に説明されている。しかしながら、図3も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(445)およびパーサ(320)による符号化されたビデオシーケンスへのシンボルの符号化/復号は可逆であり得るため、バッファメモリ(315)およびパーサ(320)を含むビデオデコーダ(310)のエントロピー復号部分は、ローカルデコーダ(433)において完全には実現されていないことがある。
この時点で行うことができる観察は、デコーダに存在する解析/エントロピー復号以外のデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能的形式で必ず存在する必要があるということである。このため、開示される主題は、デコーダ動作に焦点を合わせている。エンコーダ技術の説明は、それらが包括的に説明されるデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
動作中、いくつかの例では、ソースコーダ(430)は、「参照画像」として指定されたビデオシーケンスからの1つまたは複数の以前に符号化された画像を参照して入力画像を予測的に符号化する動き補償予測符号化を実行することができる。このようにして、符号化エンジン(432)は、入力画像の画素ブロックと、入力画像への予測参照として選択され得る参照画像の画素ブロックとの間の差異を符号化する。
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって作成されたシンボルに基づいて、参照画像として指定され得る画像の符号化されたビデオデータを復号できる。符号化エンジン(432)の動作は、有利には、非可逆プロセスであり得る。符号化されたビデオデータがビデオデコーダ(図4には示されていない)で復号される場合、再構成されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(433)は、参照画像上でビデオデコーダによって実行することができる復号プロセスを複製し、再構成された参照画像を参照画像キャッシュ(434)に記憶させることができる。このようにして、ビデオエンコーダ(403)は、遠端ビデオデコーダによって取得される再構成された参照画像として共通の内容を有する再構成された参照画像のコピーをローカルに記憶し得る(送信エラーがない)。
予測器(435)は、符号化エンジン(432)の予測検索を実行することができる。すなわち、符号化される新しい画像に対して、予測器(435)は、(候補参照画素ブロックとしての)サンプルデータまたは新しい画像の適切な予測参照として機能することができる参照画像動きベクトル、ブロック形状などの特定のメタデータについて、参照画像メモリ(434)を検索することができる。予測器(435)は、適切な予測参照を見つけるために、画素ブロックごとに1つのサンプルブロックで動作することができる。場合によっては、予測器(435)によって取得された検索結果によって決定されるように、入力画像は、参照画像メモリ(434)に記憶された複数の参照画像から引き出された予測参照を有することができる。
コントローラ(450)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(430)の符号化動作を管理することができる。
前述したすべての機能ユニットの出力は、エントロピーコーダ(445)でエントロピー符号化を受けることがある。エントロピーコーダ(445)は、ハフマン符号化、可変長符号化、算術符号化などの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
送信機(440)は、エントロピーコーダ(445)によって作成された符号化されたビデオシーケンスをバッファリングして、通信チャネル(460)を介した送信のために準備し得て、通信チャネル(460)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。送信機(440)は、ビデオコーダ(403)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
コントローラ(450)は、ビデオエンコーダ(403)の動作を管理することができる。符号化中に、コントローラ(450)は、それぞれの符号化された画像に特定の符号化された画像タイプを割り当てることがあり、これは、それぞれの画像に適用され得る符号化技術に影響を及ぼすことがある。例えば、画像は、多くの場合、次の画像タイプのいずれかとして割り当てられることがある。
イントラ画像(Iピクチャ)は、シーケンス内の任意の他の画像を予測元として使用することなく符号化および復号可能なものであってもよい。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR」)画像を含む、異なるタイプのイントラ画像を可能にする。当業者は、Iピクチャのこれらの変形、ならびにそれらのそれぞれの用途および機能を認識している。
予測画像(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、符号化および復号され得るものであってもよい。
双方向予測画像(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、符号化および復号され得るものであってもよい。同様に、複数予測画像は、単一ブロックの再構成のために3つ以上の参照画像および関連付けられたメタデータを使用することができる。
ソース画像は、一般に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16のサンプルブロック)に空間的に細分化され、ブロックごとに符号化され得る。ブロックは、ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(既に符号化された)ブロックを参照して、予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化され得て、または、同じ画像の既に符号化されたブロックを参照して、予測的に符号化され得る(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、以前に符号化された1つの参照画像を参照して、空間予測を介して、または時間予測を介して予測的に符号化され得る。Bピクチャのブロックは、1つまたは2つの以前に符号化された参照画像を参照して、空間予測を介して、または時間予測を介して、予測的に符号化され得る。
ビデオエンコーダ(403)は、ITU-T Rec.H.265などの所定のビデオ符号化技術または規格に従って符号化動作を実行することができる。その動作において、ビデオエンコーダ(403)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術または規格によって指定されたシンタックスに準拠していてもよい。
一実施形態では、送信機(440)は、符号化ビデオととともに追加のデータを送信することができる。ソースコーダ(430)は、符号化されたビデオシーケンスの一部としてそのようなデータを含み得る。追加のデータは、時間的/空間的/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画素などの画素の値(例えば、ルマ値)の行列を含む。
図5は、本開示の別の実施形態によるビデオエンコーダ(503)の図を示す。ビデオエンコーダ(503)は、ビデオ画像のシーケンス内の現在のビデオ画像内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化されたビデオシーケンスの一部である符号化された画像に符号化するように構成される。一例では、ビデオエンコーダ(503)は、図2の例のビデオエンコーダ(203)の代わりに使用される。
HEVCの例では、ビデオエンコーダ(503)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(503)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良に符号化されるか否かを判定する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(503)は、処理ブロックを符号化された画像に符号化するために、イントラ予測技術を使用することが可能であり、処理ブロックがインターモードまたは双予測モードで符号化される場合、ビデオエンコーダ(503)は、処理ブロックを符号化された画像に符号化するために、インター予測技術または双予測技術をそれぞれ使用することができる。いくつかのビデオ符号化技術では、マージモードは、予測子の外側の符号化された動きベクトル成分の恩恵を受けずに、動きベクトルが、1つまたは複数の動きベクトル予測子から導出されるインター画像予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在することがある。一例では、ビデオエンコーダ(503)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
図5の例では、ビデオエンコーダ(503)は、図5に示すように互いに結合されたインターエンコーダ(530)、イントラエンコーダ(522)、残差算出部(523)、スイッチ(526)、残差エンコーダ(524)、一般コントローラ(521)、およびエントロピーエンコーダ(525)を含む。
インターエンコーダ(530)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照画像内の1つまたは複数の参照ブロック(例えば、前の画像および後の画像内のブロック)と比較し、インター予測情報(例えば、インター符号化技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照画像は、符号化されたビデオ情報に基づいて復号される復号参照画像である。
イントラエンコーダ(522)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、そのブロックを同じ画像内で既に符号化されているブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(522)はまた、イントラ予測情報と、同じ画像内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
一般コントローラ(521)は、一般制御データを決定し、一般制御データに基づいてビデオエンコーダ(503)の他の構成要素を制御するように構成される。一例では、一般コントローラ(521)は、ブロックのモードを決定し、モードに基づいてスイッチ(526)に制御信号を提供する。例えば、一般コントローラ(521)は、モードがイントラモードである場合、スイッチ(526)を制御して、残差算出部(523)が用いるイントラモード結果を選択させ、エントロピーエンコーダ(525)を制御して、インター予測情報を選択してビットストリームに含めさせ、モードがインターモードである場合、一般コントローラ(521)は、スイッチ526を制御して、残差算出部(523)が用いるインター予測結果を選択させるとともに、エントロピーエンコーダ(525)を制御して、インター予測情報を選択して、インター予測情報をビットストリームに含めさせる。
残差算出部(523)は、受信したブロックと、イントラエンコーダ(522)またはインターエンコーダ(530)から選択された予測結果との差分(残差データ)を算出する。残差エンコーダ(524)は、残差データに基づいて動作して、変換係数を生成するために残差データを符号化するように構成される。一例では、残差エンコーダ(524)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。変換係数は、量子化された変換係数を得るために量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(503)はまた、残差デコーダ(528)を含む。残差デコーダ(528)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(522)およびインターエンコーダ(530)によって好適に用いることができる。例えば、インターエンコーダ(530)は、復号された残差データとインター予測情報とに基づいて復号されたブロックを生成することができ、イントラエンコーダ(522)は、復号された残差データとイントラ予測情報とに基づいて復号されたブロックを生成することができる。いくつかの例では、復号されたブロックは、復号された画像を生成するために適切に処理され、復号された画像は、メモリ回路(図示せず)にバッファされ、参照画像として使用することができる。
エントロピーエンコーダ(525)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(525)は、HEVC規格などの適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(525)は、一般制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックを符号化するとき、残差情報は存在しないことに留意されたい。
図6は、本開示の別の実施形態によるビデオデコーダ(610)の図を示す。ビデオデコーダ(610)は、符号化されたビデオシーケンスの一部である符号化された画像を受信し、符号化された画像を復号して再構成された画像を生成するように構成される。一例では、ビデオデコーダ(610)は、図2の例のビデオデコーダ(210)の代わりに使用される。
図6の例では、ビデオデコーダ(610)は、図6に示すように互いに結合されたエントロピーデコーダ(671)、インターデコーダ(680)、残差デコーダ(673)、再構成モジュール(674)、およびイントラデコーダ(672)を含む。
エントロピーデコーダ(671)は、符号化された画像から、符号化された画像を構成するシンタックス要素を表す特定のシンボルを再構成するように構成することができる。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、後者の2つはマージサブモードまたは別のサブモードで)、イントラデコーダ(672)またはインターデコーダ(680)によってそれぞれ予測に使用されるいくつかのサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報など)、例えば、量子化変換係数の形態の残差情報などを含み得る。一例では、予測モードがインター予測モードまたは双予測モードである場合、インター予測情報は、インターデコーダ(680)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報は、イントラデコーダ(672)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(673)に提供される。
インターデコーダ(680)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
イントラデコーダ(672)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
残差デコーダ(673)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(673)はまた、(量子化器パラメータ(QP)を含むために)特定の制御情報を必要とする場合があり、その情報は、エントロピーデコーダ(671)によって提供される場合がある(これとして示されていないデータ経路は、低容量制御情報のみであってもよい)。
再構成モジュール(674)は、空間領域において、残差デコーダ(673)による出力としての残差と、(場合によってはインター予測モジュールまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成された画像の一部であってもよい再構成されたブロックを形成するように構成され、再構成されたブロックは、再構成されたビデオの一部である場合がある。視覚的品質を改善するために、非ブロック化動作などの他の適切な動作を実行することができることに留意されたい。
ビデオエンコーダ(203)、(403)、および(503)、ならびにビデオデコーダ(210)、(310)、および(610)は、任意の適切な技術を使用して実現することができることに留意されたい。一実施形態では、ビデオエンコーダ(203)、(403)、および(503)、ならびにビデオデコーダ(210)、(310)、および(610)は、1つまたは複数の集積回路を使用して実現することができる。別の実施形態では、ビデオエンコーダ(203)、(403)、および(403)、ならびにビデオデコーダ(210)、(310)、および(610)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実現することができる。
本開示の態様は、L字形分割などの非矩形形状分割のための変換方式を提供する。
一般に、画像はブロックに分割され、ブロックは、符号化、予測、変換などの様々な処理のためのユニットであってもよい。様々なブロック分割技術を用いることができる。
図7は、Alliance for Open Media(AOMedia)によるビデオ符号化フォーマットVP9で使用される分割技術の例を示す。例えば、画像(710)は、サイズ64×64(例えば、64サンプル×64サンプル)の複数のブロック(720)に分割される。さらに、4様式分割ツリーは、64×64レベルから開始してより小さいブロックにすることができ、最下位レベルは4×4レベル(例えば、4サンプル×4サンプルのブロックサイズ)とすることができる。いくつかの例では、8×8以下のブロックにいくつかの追加の制限が適用され得る図7の例では、64×64ブロック(720)は、第1の様式(721)、第2の様式(722)、第3の様式(723)、および第4の様式(724)のうちの1つを使用して、より小さいブロックに分割することができる。(第4の様式(724)に示される)Rとして指定される分割は、同じ分割ツリーがより低いスケールで最低の4×4レベルまで繰り返され得るという点で再帰的と呼ばれることに留意されたい。
図8は、インターネットを介したビデオ送信のために設計されたビデオ符号化フォーマットAOMediaビデオ1(AV1)で使用される分割技術の例を示す。AV1は、VP9の後継として開発された。例えば、画像(810)は、サイズ128×128(例えば、128サンプル×128サンプル)の複数のブロック(820)に分割される。さらに、10様式の分割構造は、128×128から開始して、より小さいブロックにすることができる。図8の例では、128×128のブロックは、10様式(821)~(830)のうちの1つを使用して、より小さいブロックに分割することができる。AV1は、分割ツリーを10様式構造に拡張するだけでなく、最大サイズ(VP9/AV1用語でスーパブロックと呼ばれる)を128×128から開始するように増加させる。10様式構造は、VP9では存在しなかった4:1/1:4の矩形分割を含むことに留意されたい。一例では、矩形分割のいずれも、さらに細分化され得ない。さらに、AV1は、2×2クロマインター予測が特定の場合に可能になるという意味で、8×8レベル未満の分割の使用にさらなる柔軟性を加える。
いくつかの例では、ブロック分割構造は、符号化ツリーと呼ばれる。一例(例えば、HEVC)では、符号化ツリーは、各分割がより大きい正方形ブロックを4つのより小さい正方形ブロックに分割する四分木構造を有することができる。いくつかの例では、画像は、符号化ツリーユニット(CTU)に分割され、次いで、CTUは、四分木構造を使用してより小さいブロックに分割される。四分木構造により、符号化ツリーユニット(CTU)は、様々なローカル特性に適応するために符号化ユニット(CU)に分割される。インター画像(時間)予測またはイントラ画像(空間)予測を使用して画像領域を符号化すべきかどうかについての判断は、CUレベルで行うことができる。各CUは、PU分割タイプに応じて1つ、2つ、または4つの予測ユニット(PU)にさらに分割することができる。1つのPU内では、同じ予測処理が適用され、関連情報がPUベースでデコーダに送信される。
PU分割タイプに基づく予測処理を適用することによって残差ブロックを取得した後、CUは、別の四分木構造に従って変換ユニット(TU)に分割することができる。HEVCの例では、CU、PU、およびTUを含む複数の分割概念がある。いくつかの実施形態では、CUまたはTUは、正方形形状のみとすることができるが、PUは、正方形または矩形形状であってもよい。いくつかの実施形態では、1つの符号化ブロックは、4つの正方形サブブロックにさらに分割され得て、変換は、各サブブロック、すなわちTUに対して実行される。各TUは、残差四分木(RQT)と呼ばれる四分木構造を使用して、より小さいTUに再帰的にさらに分割することができる。
画像境界では、いくつかの例(例えば、HEVC)では、サイズが画像境界に適合するまでブロックが四分木分割を維持するように、暗黙的四分木分割が採用され得る。
いくつかの例(例えば、VVC)では、ブロック分割構造は、四分木プラス二分木(QTBT)ブロック分割構造を使用することができる。QTBT構造は、複数の分割タイプの概念(CU、PU、およびTU概念)を取り除くことができ、CU分割形状をより柔軟にサポートする。QTBTブロック分割構造では、CUは、正方形または矩形のいずれかの形状を有することができる。
図9Aは、図9Bに示されるQTBTブロック分割構造(920)を使用することによって分割されたCTU(910)を示す。CTU(910)は、まず四分木構造によって分割される。四分木リーフノードは、二分木構造または四分木構造によってさらに分割される。二分木分割には、対称的な水平方向の分割(例えば、QTBTブロック分割構造(920)では「0」と表示)と対称的な垂直方向の分割(例えば、QTBTブロック分割構造(920)では「1」と表示)の2つの分割タイプがあり得る。さらなる分割を伴わないリーフノードは、CUと呼ばれ、さらに分割されることなく予測および変換処理に使用され得る。したがって、QTBTブロック分割構造では、CU、PUおよびTUは、同じブロックサイズを有する。
いくつかの例(例えば、JEM)では、CUは、異なる色成分の符号化ブロック(CB)を含み得る。例えば、4:2:0クロマフォーマットのPおよびBスライスの場合、1つのCUは、1つのルマCBおよび2つのクロマCBを含む。CUは、単一の色成分のCBを含み得る。例えば、Iスライスの場合、1つのCUには、1つのルマCBのみまたは2つのクロマCBのみが含まれる。
いくつかの実施形態では、QTBTブロック分割方式に以下のパラメータが定義される。
-CTUサイズ:四分木のルートノードサイズ、例えば、HEVCと同じ概念
-MinQTSize:四分木リーフノードの最小許容サイズ
-MaxBTSize:二分木ルートノードの最大許容サイズ
-MaxBTDepth:二分木の最大許容深さ
-MinBTSize:二分木リーフノードの最小許容サイズ
QTBTブロック分割構造の一例では、CTUサイズは、128×128のルマサンプルとそれに対応する64×64のクロマサンプルの2つのブロックとして設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、MinBTSize(幅と高さの両方)は4×4として設定され、MaxBTDepthは4として設定される。最初にCTUに四分木分割を適用し、四分木リーフノードを生成する。四分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有することがある。リーフ四分木ノードが128×128の場合、リーフ四分木ノードは、サイズがMaxBTSize(すなわち、64×64)を超えるため、二分木によってさらに分割されない。そうでない場合は、リーフ四分木ノードは、二分木によってさらに分割することができる。したがって、四分木リーフノードは、二分木のルートノードでもあり、二分木の深さは、0である。
二分木の深さがMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されない。二分木ノードの幅がMinBTSizeに等しい場合(すなわち、4)、それ以上の水平分割は考慮されない。同様に、二分木ノードの高さがMinBTSizeに等しい場合、それ以上の垂直分割は考慮されない。二分木のリーフノードは、さらに分割されることなく、予測および変換処理によってさらに処理される。一実施形態では、最大CTUサイズは、256×256のルマサンプルである。
図9Aおよび図9Bでは、実線は四分木分割を示し、点線は二分木分割を示す。二分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされる。例えば、0は水平分割を示し、1は垂直分割を示す。四分木分割の場合、四分木分割は、ブロックを水平および垂直の両方に分割して、等しいサイズを有する4つのサブブロックを生成することができるため、分割タイプを示す必要はない。
いくつかの実施形態では、QTBTブロック分割方式は、ルマおよびクロマが別個のQTBTブロック分割構造を有するという柔軟性をサポートする。例えば、PスライスおよびBスライスでは、1つのCTU内のルマブロックおよびクロマブロックは、同じQTBTブロック分割構造を共有する。しかしながら、Iスライスの場合、ルマCTBはQTBTブロック分割構造によってCUに分割され、クロマブロックは別のQTBTブロック分割構造によってクロマCUに分割される。したがって、Iスライス内のCUは、ルマ成分の符号化ブロックまたは2つのクロマ成分の符号化ブロックで構成され、PまたはBスライス内のCUは、3つのすべての色成分の符号化ブロックで構成される。
いくつかの例(例えば、HEVC)では、動き補償のメモリアクセスを減らすために、小さいブロックについてはインター予測が制限される。例えば、4×8および8×4ブロックでは双予測がサポートされず、4×4ブロックではインター予測がサポートされない。
さらに、いくつかの例(例えば、VCC)では、マルチタイプツリー(MTT)ブロック分割構造が使用される。MTTブロック分割構造は、QTBTブロック分割構造よりも柔軟なツリー構造である。MTTでは、四分木分割および二分木分割に加えて、水平中心側三分木分割および垂直中心側三分木分割を使用することができる。
図10Aは、垂直中心側三分木分割の例を示し、図10Bは、水平中心側三分木分割の例を示す。三分木分割は、四分木および二分木分割を補完することができる。例えば、三分木分割は、ブロック中心に位置するオブジェクトをキャプチャすることができ、四分木および二分木は、ブロック中心を横切って分割する。三分木による分割の幅および高さは2の累乗であるため、追加の変換分割は必要ない。
ブロック分割の設計は、主に複雑さの低減が動機となっている。理論的には、ツリーのトラバースの複雑さはTDであり、ここで、Tは分割タイプの数を表し、Dはツリーの深さである。
本開示のいくつかの態様によれば、L字形分割などの非矩形形状分割がブロック分割で使用することができる。例えば、符号化ユニットまたは符号化ブロックは、L字形を有することができる。
図11は、ブロック分割による分割の1つであるL字形ブロック(1100)を示す。例えば、矩形ブロック分割を使用する代わりに、L型分割は、ブロックを1つまたは複数のL字形分割と1つまたは複数の矩形分割とに分割することができる。図11に示すように、L字形(またはL型)分割は、幅、より短い幅、高さ、およびより短い高さと呼ばれる4つのパラメータによって定義することができる。L字形分割(1100)は、適切に回転または反転させることができる。
図12は、本開示のいくつかの実施形態による、L型分割ツリーの例(1210)、(1220)、(1230)、および(1240)を示す。(1210)、(1220)、(1230)および(1240)の例では、矩形ブロックは、1つのL字形分割(「1」によって示される)および1つの矩形分割(「0」によって示される)を含む2つの分割に分割することができる。
いくつかの例(例えば、AV1)では、変換ブロックを生成するために変換ブロック分割を行うことができる。イントラ符号化されたブロックおよびインター符号化されたブロックの両方について、符号化ブロックを複数の変換ユニットにさらに分割することができ、分割の深さは最大で2レベル(2つの深さ)である。一例では、現在の深さから次の深さへの1-1サイズマッピングが使用される。
図13は、現在の深さの変換サイズから次の深さの変換サイズへのサイズマッピングの表を示す。表中の数字はサンプルの数を指すことに留意されたい。例えば、最後の行は、現在の深さの変換ユニットのサイズが64サンプル×16サンプルであり、変換ユニットがさらに分割された場合、次の深さの変換ユニットのサイズが32サンプル×16サンプルであることを示す。
いくつかの例では、イントラ符号化されたブロックおよびインター符号化されたブロックは、異なる変換分割技術を使用することができる。
図14は、イントラ符号化されたブロックの変換分割の例を示す。イントラ符号化されたブロックの場合、変換分割は、すべての変換ブロックが同じサイズを有するように行われ、変換ブロックはラスタ走査順に符号化される。例えば、イントラ符号化されたブロック(1410)は、(1420)によって示されるように、同じサイズの4つの変換ブロックに(例えば、四分木分割を使用して)分割することができる。別の例では、イントラ符号化されたブロック(1410)は、(1430)によって示されるように、(例えば、2つの深さの四分木分割を使用して)同じサイズの16個のブロックに分割することができる。変換ブロックは、図14の矢印線によって示されるラスタ走査順に符号化され得る。
インター符号化されたブロックの場合、変換ユニットの分割は、再帰的に行うことができ、分割深さは最大2レベル(2つの深さ)である。インターコード化されたブロックの変換分割は、4×4~64×64の範囲で、1:1(正方形)、1:2/2:1、および1:4/4:1変換ユニットサイズなど、異なる形状をサポートすることができる。一例では、符号化ブロックが64×64以下の場合、変換ブロック分割はルマ成分にのみ適用でき、その場合、クロマブロックについては、変換ブロックサイズは符号化ブロックサイズと同一である。そうではなく、符号化ブロックの幅または高さが64よりも大きい場合、ルマ符号化ブロックとクロマ符号化ブロックの両方を、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換ブロックの倍数に暗黙的に分割することができる。
図15は、インター符号化されたブロックの変換分割の例を示す。例えば、第1の変換分割深さにおいて、イントラ符号化されたブロック(1510)は、(例えば、四分木分割を使用して)同じサイズの4つの変換ブロックA、B、C、およびDに分割される。次いで、第2の変換分割深さにおいて、変換ブロックBは、(例えば、四分木分割を使用して)4つの変換ブロックB1、B2、B3、およびB4に分割される。変換ブロックは、図15の矢印線によって示されるように、例えば、A、B1、B2、B3、B4、C、およびDの順に、ラスタ走査順に符号化され得る。
符号化ブロックがL字形分割で、予測後、残差がL字形を有することができる場合、残差ブロックは、L字形残差ブロックと呼ばれることがあることに留意されたい。以下の変換方式の説明において、L字形分割は、処理ユニットの幾何学的属性を定義するために使用することができ、処理ユニットは、残差ブロック、変換係数ブロック、中間変換係数ブロックなどのうちのいずれかであり得る。本開示の態様は、L字形残差ブロックなどの非矩形形状残差ブロックのための変換方式を提供する。
以下の説明では、変換方式はL字形分割で示されるが、変換方式は他の非矩形ブロックで適切に使用することができることにも留意されたい。
本開示の一態様によれば、L字形分割(例えば、L字形符号化ブロック)について、L字形残差ブロック全体に変換が適用され得る。いくつかの実施形態では、分離可能な2次元変換がL字形残差ブロック全体に適用され得る。いくつかの実施形態では、分離不可能な変換がL字形残差ブロック全体に適用され得る。いくつかの実施形態では、L字形残差ブロックは、矩形残差ブロックを形成するように適切に調整され、変換が矩形残差ブロックに適用され得る。
本開示の別の態様によると、L字形分割(例えば、L字形残差ブロック、L字形変換係数ブロック)は、複数の矩形形状変換ユニットなどの複数の変換ユニットにさらに分割することができる。次いで、複数の矩形形状の変換ユニットなどの変換ユニットに対して変換をそれぞれ実行することができる。
いくつかの実施形態では、L字形分割が分割されるか否かは、ビットストリームにおいてシグナリングされ得る。一例では、シーケンスレベルフラグを使用して、現在のシーケンスにおいてL字形分割に対してさらなる分割が許容されるかどうかを示す。シーケンスレベルフラグが、現在のシーケンスに対してさらなる分割が許容されないことを示す場合、シーケンスの全L字形残差ブロックのそれぞれに変換が適用される。シーケンスレベルフラグが、さらなる分割が現在のシーケンス対して許容されることを示す場合、符号化ブロックレベルフラグを使用して、さらなる分割が現在のL字形符号化ブロックに適用されるか否かをシグナリングすることができる。
本開示の一態様によれば、L字形符号化ブロックは、少なくとも2つの正方形または非正方形の矩形サブブロックなど、2つ以上の矩形サブブロックに分割することができる。矩形サブブロックは、変換ユニットとして使用することができる。次に、矩形ブロックの変換方式が各矩形サブブロックの残差に適用され得る。
いくつかの実施形態では、L字形符号化ブロックは、同じサイズの3つの矩形変換ユニットに分割することができる。矩形変換ユニットは、正方形または非正方形の矩形とすることができる。さらに、各変換ユニットは、いくつかの例では、個々に分割され得るか、または分割され得ない。
図16は、本開示の一実施形態による、L字形分割に対する変換分割の一例を示す。図16では、L字形ブロック(1600)(例えば、符号化ユニット)が3つの矩形ブロック(1601)~(1603)(例えば、変換ユニット)に分割されている。分割(変換分割とも呼ばれる)は破線で示されている。3つの矩形ブロック(1601)~(1603)は、一例では3つの変換ユニットとすることができる。
一実施形態では、L字形分割のイントラ符号化ブロックについて、L字形分割内のすべての変換ユニットは同じサイズを有する。図16を例として使用すると、L字形ブロック(1600)はイントラ符号化ブロックであり、矩形ブロック(1601)~(1603)は正方形であり、同じサイズを有する。
別の実施形態では、L字形分割のインター符号化されたブロックについて、変換ユニットは、個々にさらに小さな変換ユニットに分割することができる。
図17は、本開示の一実施形態による、L字形分割に対する変換分割の例を示す。図17では、L字形ブロック(1700)が3つの矩形ブロック(1701)~(1703)に分割されている。分割(変換分割とも呼ばれる)は破線で示されている。さらに、矩形ブロック(1701)および(1703)はさらに分割されないが、矩形ブロック(1702)はさらに4つの矩形ブロックA~Dに分割される。その場合、ブロック(1701)、(1703)、およびA~Dは、一例では変換ユニットとすることができる。ブロック(1701)、(1703)およびA~Dは、一例では正方形形状を有することができる。
いくつかの実施形態では、L字形符号化ブロックは、異なるサイズおよび/またはアスペクト比を有する複数の変換ユニットに分割することができる。一例では、L字形符号化ブロックは、正方形変換ユニットおよび非正方形矩形変換ユニットなどの、2つの変換ユニットに分割することができる。さらに、各変換ユニットは、さらなる分割に関して個別に決定することができる。
図18は、本開示のいくつかの実施形態による、L字形分割に対する変換分割の2つの例を示す。図18において、L字形ブロック(1810)は、破線で示される垂直分割によって2つの矩形ブロック(1811)および(1812)に分割される。一例では、ブロック(1811)および(1812)のうちの少なくとも1つは、例えば(1811)は、正方形形状を有する。さらに、図18において、L字形状ブロック(1820)は、破線で示される水平分割によって、2つの矩形ブロック(1821)および(1822)に分割されている。一例では、ブロック(1821)および(1822)のうちの少なくとも1つ、例えば(1821)は、正方形形状を有する。
一実施形態では、変換ユニットが正方形形状を有する場合、その変換ユニットは、さらに分割するために個々に決定することができ、非正方形矩形変換ユニットにはさらなる分割を適用することはできない。
別の実施形態では、正方形変換ユニットおよび非正方形矩形変換ユニットの両方を、さらに分割するために個々に決定することができる。
いくつかの実施形態では、L字形符号化ユニットがインター符号化ブロックである場合に限り、L字形符号化ブロックを1つの正方形変換ユニットと1つの非正方形矩形変換ユニットに分割することができる。
いくつかの実施形態では、L字形符号化ブロックは、3つの正方形または非正方形矩形変換ユニットに分割することができる。3つの変換ユニットのサイズは同じであってもよく、または異なっていてもよい。さらに、各変換ユニットを、さらに分割するために個々に決定することができる。
図19は、本開示のいくつかの実施形態による、L字形分割に対する変換分割の例を示す。図19において、L字型ブロック(1910)は、破線で示される垂直分割および水平分割によって3つの矩形ブロック(1911)、(1912)および(1913)に分割されている。
L字形符号化ブロックの残差は、符号化ブロックと同じL字形を有することができ、L字形残差ブロックと呼ぶことができることに留意されたい。以下の説明では、L字形残差ブロックを指すために、L字形分割を使用することがある。本開示のいくつかの態様はまた、L字形残差ブロックを矩形ブロックにさらに分割することなく、L字形残差ブロックに、水平変換と垂直変換を含む分離可能2次元変換などの分離可能な変換を使用する技術を提供する。L字形分割に対して分離可能な2次元変換を行う場合、L字形残差ブロックの異なる行/列について、変換サイズが異なる可能性がある。
一実施形態では、L字形分割の残差サンプル(入力サンプルとも呼ばれる)の各行について水平変換を行う場合、変換サイズは、その行の残差サンプル(入力サンプル)の数に応じて調整される。例えば、変換サイズは、それぞれの行の残差サンプルの数と同じである。
図20は、本開示の一実施形態による変換サイズ調整の例を示す。図20において、L字形変換ユニット(2000)は、それぞれROW1~ROW8と呼ばれる8つの行を含む。ROW1~ROW4のそれぞれは8つのサンプルを含み、ROW5~ROW8のそれぞれは4つのサンプルを含む。一例では、最初の4つの行ROW1~ROW4のそれぞれに対して8点変換を行うことができ、最後の4つの行ROW5~ROW8のそれぞれに対して4点変換を行うことができる。
別の実施形態では、L分割の残差サンプル(入力サンプルとも呼ばれる)の各列に対して垂直変換を行う場合、変換サイズは、その列の残差サンプルの数に応じて調整される。例えば、変換サイズは、それぞれの列の残差サンプルの数と同じである。
図21は、本開示の一実施形態による変換サイズ調整の例を示す。図21において、L字形変換ユニット(2100)は、それぞれCOL1~COL8と呼ばれる8つの列を含む。COL1~COL4のそれぞれは8つのサンプルを含み、COL5~COL8のそれぞれは4つのサンプルを含む。一例では、最初の4つの列COL1~COL4のそれぞれに対して8点変換を行い、最後の4つの列COL5~COL8のそれぞれに対して4点変換を行う。
本開示の一態様によると、L字形分割のための2次元変換は、水平変換と垂直変換の順に、または垂直変換と水平変換の順になど、水平変換と垂直変換を順次実行することによって実施することができる。
いくつかの実施形態では、2次元変換は、水平変換と垂直変換の順に行われる。水平変換がL字形の残差ブロックに適用されると、K個のサンプルの行に対して(Kは正の整数)、1行にK個の変換係数が決定される。異なる行に対しては、変換係数の数は異なり得ることに留意されたい。水平変換を適用した後、行の変換係数は変換係数ブロックに適切に整列され、次いで、その変換係数ブロックに垂直変換が適用され得る。一実施形態では、行の変換係数は左に整列され、変換係数ブロックは残差ブロックと同じ形状を有する。
図22は、2次元変換を水平変換と垂直変換の順に適用した例を示す。図22の例では、L字形の残差ブロック(2210)に水平変換が適用されている。具体的には、L字形残差ブロック(2210)は、それぞれROW1~ROW8と呼ばれる8つの行を含む。ROW1~ROW4のそれぞれは8個の残差サンプルを含み、ROW5~ROW8のそれぞれは4個の残差サンプルを含む。一例では、最初の4つの行ROW1~ROW4のそれぞれに対して8点変換を行い、最初の4つの行ROW1~ROW4のそれぞれにおいて8つの変換係数を決定することができ、最後の4つの行ROW5~ROW8のそれぞれに対して4点変換を行い、最後の4つの行ROW5~ROW8のそれぞれにおいて4つの変換係数を決定することができる。
次いで、ROW1~ROW8の変換係数が左に整列されて、残差ブロック(2210)と同じL字形である変換係数ブロック(2220)が形成される。次に、L字形の変換係数ブロック(2220)に垂直変換が適用される。具体的には、L字形変換係数ブロック(2220)は、それぞれCOL1~COL8と呼ばれる8つの列を含む。COL1~COL4のそれぞれは8個の変換係数サンプルを含み、COL5~COL8のそれぞれは4個の変換係数サンプルを含む。一例では、最初の4つの列COL1~COL4のそれぞれに対して8点変換を行い、最初の4つの列COL1~COL4のそれぞれにおいて8つの最終変換係数を決定することができ、最後の4つの列COL5~COL8のそれぞれに対して4点変換を行い、最後の4つの列COL5~COL8のそれぞれにおいて4つの最終変換係数を決定することができる。
いくつかの実施形態において、2次元変換は、垂直変換と水平変換の順に実行される。垂直変換がL字形の残差ブロックに適用される場合、Kサンプル(Kは正の整数)の列に対して、1列にK個の変換係数が決定される。異なる列に対しては、列の変換係数の数は異なり得ることに留意されたい。垂直変換が適用された後、列の変換係数は変換係数ブロックに適切に整列され、次いで、その変換係数ブロックに水平変換が適用され得る。一実施形態では、列の変換係数は上に整列され、変換係数ブロックは残差ブロックと同じ形状を有する。
図23は、2次元変換を垂直変換および水平変換の順に適用した例を示す。図23の例では、L字形の残差ブロック(2310)に垂直変換が適用される。具体的には、L字形残差ブロック(2310)は、それぞれCOL1~COL8と呼ばれる8つの列を含む。COL1~COL4のそれぞれは8個の残差サンプルを含み、COL5~COL8のそれぞれは4個の残差サンプルを含む。一例では、最初の4つの列COL1~COL4のそれぞれに対して8点変換を行い、最初の4つの列COL1~COL4のそれぞれにおいて8つの変換係数を決定することができ、最後の4つの列COL5~COL8のそれぞれに対して4点変換を行い、最後の4つの列COL5~COL8のそれぞれにおいて4つの変換係数を決定することができる。
次いで、COL1~COL8の変換係数は、上に整列されて、残差ブロック(2310)と同じL字形である変換係数ブロック(2320)を形成する。次に、L字形の変換係数ブロック(2320)に水平変換が適用される。具体的には、L字形変換係数ブロック(2320)は、それぞれROW1~ROW8と呼ばれる8つの行を含む。ROW1~ROW4のそれぞれは8個の変換係数サンプルを含み、ROW5~ROW8のそれぞれは4個の変換係数サンプルを含む。一例では、最初の4つの行ROW1~ROW4のそれぞれに対して8点変換を行い、最初の4つの行ROW1~ROW4のそれぞれにおける8つの最終変換係数を決定することができ、最後の4つの行ROW5~ROW8のそれぞれに対して4点変換を行い、最後の4つの行ROW5~ROW8のそれぞれにおける4つの最終変換係数を決定することができる。
本開示の一態様によると、2次元変換の場合、第1の変換の後に、変換係数は、残差ブロックとは異なる形状の変換係数ブロックを形成するために他の適切な方法で整列され得て、次いで、第2の変換が、最終変換係数を決定するために変換係数ブロックに適用され得る。
一例として、2次元変換は、水平変換および垂直変換の順に行われる。水平変換がL字形の残差ブロックに適用される場合、K個のサンプル(Kは正の整数)の行に対して、行のK個の変換係数が決定される。異なる行に対しては、変換係数の数は異なり得ることに留意されたい。水平変換が適用された後、行の変換係数は、(例えば、より良好な符号化効率のためのエネルギープロファイル類似性に基づいて)変換係数ブロックに適切に整列され、次いで、垂直変換が変換係数ブロックに適用され得る。一例では、より少数の変換係数を有する行の変換係数は、より多数の変換係数を有する行の変換係数の選択された位置(例えば、奇数位置または偶数位置)と整列される。
図24は、2次元変換を水平変換および垂直変換の順に適用した例を示す。図24の例では、L字形の残差ブロック(2410)に水平変換が適用されている。具体的には、L字形残差ブロック(2410)は、それぞれROW1~ROW8と呼ばれる8つの行を含む。ROW1~ROW4のそれぞれは8個の残差サンプルを含み、ROW5~ROW8のそれぞれは4個の残差サンプルを含む。一例では、最初の4つの行ROW1~ROW4のそれぞれに対して8点変換を行い、最初の4つの行ROW1~ROW4のそれぞれにおいて8つの変換係数を決定することができ、最後の4つの行ROW5~ROW8のそれぞれに対して4点変換を行い、最後の4つの行ROW5~ROW8のそれぞれにおいて4つの変換係数を決定することができる。
次に、ROW5~ROW8の変換係数がROW1~ROW4の奇数列位置に整列されて、残差ブロック(2410)とは異なる形状の変換係数ブロック(2420)が形成される。次に、垂直変換が非矩形形状の変換係数ブロック(2420)に適用される。具体的には、変換係数ブロック(2420)は、それぞれCOL1~COL8と呼ばれる8つの列を含む。奇数列COL1、COL3、COL5、およびCOL7のそれぞれは、8つの変換係数サンプルを含み、偶数列COL2、COL4、COL6、およびCOL8のそれぞれは、4つの変換係数サンプルを含む。一例では、奇数列COL1、COL3、COL5、およびCOL7のそれぞれに対して8点変換を実行して、奇数列COL1、COL3、COL5、およびCOL7のそれぞれにおいて8つの最終変換係数を決定することができ、偶数列COL2、COL4、COL6、およびCOL8のそれぞれに対して4点変換を実行して、偶数列COL2、COL4、COL6、およびCOL8のそれぞれにおいて4つの最終変換係数を決定することができる。
いくつかの実施形態において、2次元変換は、垂直変換と水平変換の順に実行される。垂直変換がL字形の残差ブロックに適用される場合、Kサンプル(Kは正の整数)の列に対して、1列にK個の変換係数が決定される。異なる列に対しては、列の変換係数の数は異なり得ることに留意されたい。垂直変換が適用された後、列の変換係数は、(例えば、エネルギーに基づいて)変換係数ブロックに適切に整列され、次いで、水平変換が変換係数ブロックに適用され得る。一例では、より少ない数の変換係数を有する列の変換係数は、より多い数の変換係数を有する列の変換係数の選択された位置(例えば、奇数位置または偶数位置)と整列される。
図25は、2次元変換を垂直変換および水平変換の順に適用した例を示す。図25の例では、L字形の残差ブロック(2510)に垂直変換が適用される。具体的には、L字形残差ブロック(2510)は、それぞれCOL1~COL8と呼ばれる8つの列を含む。COL1~COL4のそれぞれは8個の残差サンプルを含み、COL5~COL8のそれぞれは4個の残差サンプルを含む。一例では、最初の4つの列COL1~COL4のそれぞれに対して8点変換を行い、最初の4つの列COL1~COL4のそれぞれにおいて8つの変換係数を決定することができ、最後の4つの列COL5~COL8のそれぞれに対して4点変換を行い、最後の4つの列COL5~COL8のそれぞれにおいて4つの変換係数を決定することができる。
次いで、COL5~COL8の変換係数は、残差ブロック(2510)とは異なる形状である変換係数ブロック(2520)を形成するために、COL1~COL4の奇数行位置に整列される。次に、L字形の変換係数ブロック(2520)に水平変換が適用される。具体的には、L字形変換係数ブロック(2520)は、それぞれROW1~ROW8と呼ばれる8つの行を含む。奇数行ROW1、ROW3、ROW5、およびROW7のそれぞれは、8つの変換係数サンプルを含み、偶数行ROW2、ROW4、ROW6、およびROW8のそれぞれは、4つの変換係数サンプルを含む。一例では、奇数行ROW1、ROW3、ROW5、およびROW7のそれぞれに対して8点変換を実行して、奇数行ROW1、ROW3、ROW5、およびROW7のそれぞれにおいて8つの最終変換係数を決定することができ、偶数行ROW2、ROW4、ROW6、およびROW8のそれぞれに対して4点変換を実行して、偶数行ROW2、ROW4、ROW6、およびROW8のそれぞれにおいて4つの最終変換係数を決定することができる。
いくつかの実施形態では、矩形形状の変換係数の走査技術は、エントロピー符号化中に非矩形形状の変換係数を走査するために適切に調整することができる。例えば、水平方向に最大W個のサンプルおよび垂直方向に最大H個のサンプルを有するL-分割の変換係数のエントロピー符号化を行う場合、まずW×H個の矩形ブロックの走査順序が導出される。次に、走査順序に沿って、走査位置がL分割の外側のサンプル位置を指している場合、その走査位置をスキップすることができ、走査は次の走査位置に続く。係数の走査処理は、L分割のすべてのサンプルが走査されるまで終了しない。
図26は、本開示の一実施形態によるL字形分割(2600)の走査順序の一例を示す。図26の例では、8×8ブロックのジグザグ走査順序(2610)が最初に導出され、次いで、L字形分割の外側のサンプルをスキップすることによって、L字形分割に対する走査順序が導出される。図26の例では、L字形分割内の実際の走査位置が実線で示され、L字形分割の外側のスキップされた位置が点線で示されている。
いくつかの実施形態では、L分割に対する2次元変換において分離不可能な変換が使用される。一実施形態では、分離不可能な変換は、KLTとすることができる。図26のL字形分割を例として使用すると、L字形分割(2600)は48個のサンプルを含み、48個のサンプルは48個の要素のベクトルを形成することができ、次いで、そのベクトルに対してKLT変換を行って、例えば48個の変換係数を生成することができる。
いくつかの実施形態では、L分割に対して2次元変換を行う場合、パディングを行って、L字形分割の外側の位置に追加のサンプルを追加することができ、その場合、追加されたサンプルおよびL字形分割内のサンプルは、仮想矩形ブロックを形成することができる。さらに、矩形ブロックに対する2D変換技術を仮想矩形ブロックに適用して、このL分割の変換係数を導出することができる。
一実施形態では、追加のサンプルは、L字形分割内の既存のサンプルを使用して導出される。
別の実施形態では、追加のサンプルは、予め定義された値を使用して導出される。
図27は、本開示の一実施形態によるプロセス(2700)を概説するフローチャートを示す。プロセス(2700)は、ブロックの再構成において使用され、再構成中のブロックの予測ブロックを生成することができる。様々な実施形態において、プロセス(2700)は、端末装置(110)、(120)、(130)、および(140)内の処理回路、ビデオエンコーダ(203)の機能を実行する処理回路、ビデオデコーダ(210)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオエンコーダ(403)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(2700)は、ソフトウェア命令で実現され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2700)を実行する。プロセスは(S2701)で開始し、(S2710)に進む。
(S2710)において、画像の非矩形分割である符号化ブロックに関連付けられた変換係数が、符号化されたビデオビットストリームから復号される。
いくつかの実施形態では、エンコーダ側では、非矩形分割の変換ユニットの変換係数は、非矩形分割を包含する矩形ユニットに対する走査順序に従って走査され、非矩形分割の外側の位置はスキップされる。したがって、デコーダ側では、非矩形分割を包含する矩形ユニットに対する走査順序に従い、非矩形分割の外にある位置をスキップすることによって、非矩形分割に対する変換ユニットを形成することができる。
(S2720)では、変換係数に基づいて符号化ブロックの残差が決定される。
本開示のいくつかの態様によれば、変換係数は、エンコーダ側で、非矩形分割を2つ以上の矩形分割にさらに分割することによって生成され、次いで、デコーダ側で、変換係数に基づいて、それぞれの矩形分割の残差をそれぞれ決定することができる。いくつかの実施形態では、デコーダ側で、第1の矩形サブブロックの第1の残差が、変換係数の第1の変換係数に基づいて決定される。第1の矩形サブブロックは、非矩形分割の第1の分割である。さらに、第2の矩形サブブロックの第2の残差が、変換係数の第2の変換係数に基づいて決定される。第2の矩形サブブロックは、非矩形分割の第2の分割である。第2の矩形サブブロックは、第1の矩形サブブロックと同じサイズを有することができ、または第1の矩形サブブロックとは異なるサイズを有することができる。いくつかの実施形態では、3つ以上の矩形サブブロックの残差を変換係数から決定することができる。いくつかの例では、矩形のサブブロックは正方形形状を有することができる。
本開示のいくつかの他の態様によれば、変換係数は、エンコーダ側で非矩形部分全体に対して変換を行うことによって生成され、次いで、デコーダ側で、逆変換が変換係数に適切に適用されて、残差が決定される。
いくつかの実施形態では、エンコーダ側が分離可能な2次元変換を適用する。デコーダ側では、いくつかの例では、中間変換ユニットの中間変換係数が、変換ユニットの逆変換を第1の方向に実行することによって決定される。変換ユニットは、変換係数によって形成される。次いで、中間変換ユニットの逆変換を第2の方向に実行することによって、符号化ブロックの残差が決定される。いくつかの例では、中間変換ユニットおよび変換ユニットは、非矩形分割と同じ形状およびサイズを有することができる。いくつかの他の例では、より良いコーディング効率を達成するためにエンコーダ側で整列を行い、したがって、デコーダ側で、逆変換の前に再整列を行うことがある。
いくつかの例では、第1の方向は垂直方向であり、第2の方向は水平方向である。例えば、第1の逆変換演算は、変換ユニットの第1の列に対してそれぞれ行われる。第1の逆変換演算はそれぞれ、一例では8点逆変換などの第1の数の点の逆変換である。第2の逆変換演算は、変換ユニットの第2の列に対してそれぞれ行われる。第2の逆変換はそれぞれ、一例では4点逆変換などの第2の数の点の逆変換である。さらに、第3の逆変換演算が、中間変換ユニットの第1の行に対してそれぞれ行われる。第3の逆変換演算はそれぞれ、一例では8点逆変換などの、第3の数の点の逆変換である。次いで、中間変換ユニットの第2の行に対して第4の逆変換演算がそれぞれ行われる。第4の逆変換演算はそれぞれ、一例では4点逆変換など、第4の数の点の逆変換である。
いくつかの例では、第1の方向は水平方向であり、第2の方向は垂直方向である。例えば、第1の逆変換演算は、変換ユニットの第1の行に対してそれぞれ行われる。第1の逆変換演算はそれぞれ、一例では4点逆変換などの第1の数の点の逆変換である。第2の逆変換演算は、変換ユニットの第2の行に対してそれぞれ行われる。第2の逆変換はそれぞれ、一例では8点逆変換などの第2の数の点の逆変換である。さらに、第3の逆変換演算が、中間変換ユニットの第1の列に対してそれぞれ行われる。第3の逆変換演算はそれぞれ、一例では4点逆変換などの第3の数の点の逆変換である。第4の逆変換演算は、中間変換ユニットの第2の列に対してそれぞれ行われる。第4の逆変換演算はそれぞれ、一例では8点逆変換などの、第4の数の点の逆変換である。
本開示の別の態様によると、変換係数は、エンコーダ側で、非矩形部分全体に対するカルーネン・レーベ変換(KLT)によって生成され、次いで、デコーダ側で、逆カルーネン・レーベ変換(KLT)を変換係数に適切に適用して残差を決定することができる。
本開示の別の態様によると、エンコーダ側で、パディングを行って、符号化ブロックに追加のサンプルを追加して、非矩形分割を包含する矩形ユニットを作成することができ、次いで、その矩形ユニットに対して変換を行うことができる。したがって、デコーダ側では、いくつかの実施形態では、変換係数の2次元逆変換を実行することによって、非矩形分割を含む矩形ユニットの第1の残差を決定することができ、次いで、その矩形ユニットの第1の残差から符号化ブロックの残差を選択することができる。
(S2730)において、残差に基づいて、符号化ブロックのサンプルが再構成される。例えば、符号化ブロックの適切な予測を行い、次いで、残差を予測に適切に追加することができる。次いで、プロセスはS2799に進み、終了する。
上述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして実現することができる。例えば、図28は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(2800)を示す。
コンピュータソフトウェアは、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングすることができ、これらの言語は、アセンブリ、コンパイル、リンクなどのメカニズムの対象となり、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、または解釈、マイクロコード実行などを介して、実行することができる命令を含むコードを生成することができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはそのコンポーネント上で実行することができる。
コンピュータシステム(2800)について図28に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定も示唆することを意図するものではない。コンポーネントの構成は、コンピュータシステム(2800)の例示的な実施形態に示されるコンポーネントのいずれか1つまたは組み合わせに関連する依存性または要件を有すると解釈されるべきではない。
コンピュータシステム(2800)は、特定のヒューマンインターフェース入力装置を含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、音声(例えば、スピーチ、音楽、周囲音)、画像(例えば、走査された画像、静止画像カメラから取得した写真画像)、ビデオ(例えば、2次元ビデオ、立体ビデオを含む3次元ビデオ)などの、人間による意識的な入力に必ずしも直接関連しない特定の媒体をキャプチャするためにも使用することができる。
入力ヒューマンインターフェースデバイスは、キーボード(2801)、マウス(2802)、トラックパッド(2803)、タッチ画面(2810)、データグローブ(図示せず)、ジョイスティック(2805)、マイクロフォン(2806)、スキャナ(2807)、カメラ(2808)のうちの1つまたは複数(それぞれ1つのみ図示)を含み得る。
コンピュータシステム(2800)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激するものであってもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面(2810)、データグローブ(図示せず)、またはジョイスティック(2805)による触覚フィードバックを含むことができるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、音声出力デバイス(例えば、スピーカ(2809)、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(2810)など、それぞれタッチ画面入力機能を有するかまたは有さず、それぞれ触覚フィードバック機能を有するかまたは有さず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)、ならびにプリンタ(図示せず)などの手段を通して、2次元視覚出力または3次元以上の出力を出力することが可能であり得る)を含み得る。
コンピュータシステム(2800)はまた、人間がアクセス可能な記憶装置、およびCD/DVDまたは同様の媒体(2821)を備えたCD/DVD ROM/RW(2820)を含む光媒体、サムドライブ(2822)、取り外し可能なハードドライブまたはソリッドステートドライブ(2823)、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースの装置などのそれらの関連媒体を含み得る。
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
コンピュータシステム(2800)はまた、1つまたは複数の通信ネットワークへのインターフェースを含み得る。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などとすることができる。ネットワークの例には、イーサネット、ワイヤレスLANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、および地上放送テレビを含むテレビ有線または無線広域デジタルネットワーク、CANBusを含む車両および産業などが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2849)(例えば、コンピュータシステム(2800)のUSBポートなど)に取り付けられる外部ネットワークインターフェースアダプタを必要とし、他は、一般に、以下で説明するようにシステムバスに取り付けることによってコンピュータシステム(2800)のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2800)は、他のエンティティと通信することができる。このような通信は、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えば、ローカルもしくはワイドエリアデジタルネットワークを使用する他のコンピュータシステムに対してのものであってもよい。特定のプロトコルおよびプロトコルスタックを上述したようなこれらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
前述のヒューマンインターフェースデバイス、ヒューマンアクセス可能記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2800)のコア(2840)に取り付けることができる。
コア(2840)は、1つまたは複数の中央処理装置(CPU)(2841)、グラフィックス処理装置(GPU)(2842)、フィールドプログラマブルゲートエリア(FPGA)(2843)の形態の専用プログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ(2844)などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM)(2845)、ランダムアクセスメモリ(2846)、内部非ユーザアクセスハードドライブ、SSDなどの内部大容量記憶装置(2847)ととともに、システムバス(2848)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(2848)は、1つまたは複数の物理プラグの形態でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス(2848)に直接取り付けることも、周辺バス(2849)を介して取り付けることもできる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
CPU(2841)、GPU(2842)、FPGA(2843)、およびアクセラレータ(2844)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2845)またはRAM(2846)に記憶することができる。一時的データも、RAM(2846)に記憶することができるが、恒久的なデータは、例えば、内部大容量記憶装置(2847)に記憶することができる。1つまたは複数のCPU(2841)、GPU(2842)、大容量記憶装置(2847)、ROM(2845)、RAM(2846)などと密接に関連付けることができるキャッシュメモリの使用によって、メモリデバイスのいずれかへの高速記憶および取得を可能にすることができる。
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に良く知られた利用可能な種類のものであってもよい。
限定ではなく例として、図28に示されるアーキテクチャを有するコンピュータシステム(2800)、具体的にはコア(2840)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行する結果として機能を提供することができる。このようなコンピュータ可読媒体は、上記で紹介されたようなユーザアクセス可能な大容量記憶装置、ならびにコア内部の大容量記憶装置(2847)またはROM(2845)などの非一時的な性質のものであるコア(2840)の特定の記憶装置と関連付けられた媒体であってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2840)によって実行することができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア(2840)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2846)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に説明される特定のプロセスまたは特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに、またはそれとともに動作することができる回路(例えば、アクセラレータ(2844))にハードワイヤードのまたはその他の方法で具現化されたロジックの結果として、機能を提供することができる。適切な場合は、ソフトウェアへの言及は、ロジックを包含することができ、その逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合は、実行のためにソフトウェアを記憶する回路(集積回路(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 Areas フィールドプログラマブルゲートエリア
SSD:solid-state drive ソリッドステートドライブ
IC:Integrated Circuit 集積回路
CU:Coding Unit 符号化ユニット
TSM:Transform Skip Mode 変換スキップモード
IBC:Intra Block Copy イントラブロックコピー
DPCM:Differential pulse-code modulation 差動パルス符号変調
BDPCM:Block based DPCM ブロックベースDPCM
本開示はいくつかの例示的な実施形態を説明したが、本開示の範囲内に入る変更、置換、および様々な代替的な均等物が存在する。したがって、当業者は、本明細書に明示的に図示または説明されていないが、本開示の原理を具現化し、したがって、その精神および範囲内にある、多数のシステムおよび方法を考案することができることを理解されたい。