図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)は、デジタルカメラによって撮影されたサンプルを含む。ビデオピクチャのストリーム(402)は、符号化ビデオデータ(404)(またはコード化ビデオビットストリーム)と比較して高いデータ量を強調するために太線で描かれており、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示される主題の態様を可能にするかまたは実装するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。符号化ビデオデータ(404)(または符号化ビデオビットストリーム(404))は、ビデオピクチャのストリーム(402)と比較してより低いデータボリュームを強調するために細線で描かれており、将来の使用のためにストリーミングサーバ(405)に記憶され得る。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化ビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)においてビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化ビデオデータの到来コピー(407)を復号し、ディスプレイ(412)(例えば、ディスプレイスクリーン)または他のレンダリングデバイス(図示せず)上にレンダリングされ得るビデオピクチャの発信ストリーム(411)を作成する。いくつかのストリーミングシステムでは、符号化ビデオデータ(404)、(407)および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格にしたがって符号化され得る。それらの規格の例としては、ITU-T Recommendation H.265が挙げられる。一例では、開発中のビデオコーディング規格は、非公式に汎用ビデオコーディング(VVC)として知られている。開示される主題は、VVCの文脈で使用され得る。
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、同様に電子デバイス(430)はビデオエンコーダ(図示せず)を含むことができる。
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)中に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用することができる。
受信機(531)は、ビデオデコーダ(510)によって復号されることとなる1つまたは複数のコード化ビデオシーケンス、同じまたは別の実施形態では一度に1つのコード化ビデオシーケンスを受信し得、ここで、各コード化ビデオシーケンスの復号は、他のコード化ビデオシーケンスから独立している。コード化ビデオシーケンスは、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信され得る。受信機(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コード化オーディオデータおよび/または補助データストリームとともに、符号化ビデオデータを受信し得る。受信機(531)は、コード化ビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対処するために、受信機(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間にはバッファメモリ(515)が結合され得る。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のアプリケーションでは、ビデオデコーダ(510)の外部にあり得る(図示せず)。さらに他のアプリケーションでは、例えばネットワークジッタに対処するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)を設け、加えて、例えば再生タイミングを処理するために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)を設けることができる。受信機(531)が、十分な帯域幅および可制御性の記憶/転送デバイスから、または等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は、必要とされなくてもよいし、小さくてもよい。インターネットなどのベストエフォート型パケットネットワーク上で使用するために、バッファメモリ(515)は、必要とされ得、比較的大きくすることができ、有利には適応サイズとすることができ、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)内に少なくとも部分的に実装され得る。
ビデオデコーダ(510)は、コード化ビデオシーケンスからシンボル(521)を再構築するためのパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、場合によっては、図5に示されたように、電子デバイス(530)の一体部分ではないが、電子デバイス(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などの規格における所定のビデオ圧縮技術にしたがって復号動作を実行し得る。コード化ビデオシーケンスは、コード化ビデオシーケンスがビデオ圧縮技術または規格のシンタックスとビデオ圧縮技術または規格において文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能なすべてのツールから、そのプロファイルの下で使用するために利用可能な唯一のツールとして、特定のツールを選択することができる。また、準拠のためには、コード化ビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあることが必要である。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、メガサンプル/秒で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)仕様と、コード化ビデオシーケンス中でシグナリングされる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)に入力される。シンボルストリームの復号は、デコーダのロケーション(ローカルまたはリモート)とは無関係にビットイグザクトな(bit-exact)結果をもたらすので、参照ピクチャメモリ(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)は、適切な予測参照を見つけるために、サンプルブロック単位かつピクセルブロック単位(on a sample block-by-pixel block basis)で動作し得る。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受け得る。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術にしたがってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。
送信機(640)は、符号化ビデオデータを記憶することになる記憶デバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備のために、エントロピーコーダ(645)によって作成されたコード化ビデオシーケンス(複数可)をバッファし得る。送信機(640)は、ビデオエンコーダ(603)からのコード化ビデオデータを、送信されるべき他のデータ、例えば、コード化オーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディングの間、コントローラ(650)は、各コード化ピクチャに、それぞれのピクチャに適用され得るコーディング技術に影響を与え得る特定のコード化ピクチャタイプを割り当て得る。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられ得る:
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス中の任意の他のピクチャを使用することなしにコーディングおよび復号され得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形およびそれらのそれぞれの用途および特徴を認識している。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るものであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトルと参照インデックスとを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るものであり得る。同様に、複数予測ピクチャ(multiple-predictive pictures)は、単一のブロックの再構築のために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)は、ビデオピクチャのシーケンス中の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コード化ビデオシーケンスの一部であるコード化ピクチャに符号化するように構成される。一例では、ビデオエンコーダ(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)は、残差計算器(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)は、コード化ビデオシーケンスの一部であるコード化ピクチャを受信し、コード化ピクチャを復号して、再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ(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つまたは複数のプロセッサを使用して実装され得る。
本開示は、最確モード(MPM)リスト構成に対する改善を含む。
ITU-T VCEG(Q6/16)およびISO/IEC MPEG((JTC 1/SC 29/WG 11)は、2013(version 1)、2014(version 2)、2015(version 3)、および2016(version 4)においてH.265/HEVC(高効率ビデオコーディング)規格を公開した。2015年には、これらの2つの規格団体は、HEVCを超える次のビデオコーディング規格を開発する可能性を探るためにJVET(Joint Video Exploration Team)を共同で結成した。2018年4月には、JVETは、HEVCを超える次世代ビデオコーディングの標準化プロセスを正式に開始した。新しい規格は、汎用ビデオコーディング(VVC)と命名され、JVETは、Joint Video Expert Teamと改名された。2020年7月には、H.266/VVC version 1が完成した。2021年1月には、VVC能力を超える拡張圧縮を調査するためにアドホックグループが設立された。
MPMリストを形成するために、一例では、22個のエントリを有する一般的なMPMリストが最初に構築され得る。一般的なMPMリスト内の最初の6つのエントリは、プライマリMPM(PMPM)リストに含まれ得、残りのエントリは、セカンダリMPM(SMPM)リストを形成することができる。一般的なMPMリスト内の第1のエントリは、平面モードであり得る。一般的なMPMリスト内の残りのエントリは、(i)左(L)、上(A)、左下(BL)、右上(AR)、および左上(AL)の隣接ブロックのイントラモードと、(ii)隣接ブロックの最初の2つの利用可能な指向性モードからの追加されたオフセットをもつ指向性モードと、(iii)デフォルトモードとを含むことができる。L、A、BL、AR、およびAL隣接ブロックの位置が図9に示され得る。
CUブロック(例えば、図9の(902))の高さがCUブロックの幅以上である場合、隣接ブロックの順序は、A、L、BL、AR、およびALであり得、そうでない場合、隣接ブロックの順序は、L、A、BL、AR、およびALであり得る。エントリのインデックスは切り捨てられたバイナリでコーディングされ得るので、MPMエントリの順序が重要となる可能性がある。切り捨てられたバイナリの後者は、コーディングにより多くのビットを要する可能性がある。
隣接ブロックAL、A、およびARが、現在CU(例えば、(902))のコーディングツリーユニット(CTU)とは異なるCTU中にあるとき、隣接ブロックAL、A、およびARは、ラインバッファの制限により利用不可能とみなされる可能性がある。したがって、利用不可能な隣接CUのイントラモードは、MPMリストに挿入されないことがある。
伝搬イントラモードはまた、MPMリスト構築に適用され得る。例えば、VVCでは、隣接CUがインターコーディングされたCUであるとき、その隣接CUのイントラモードは、平面モードとみなされ得、MPMリストに挿入される。
イントラコーディングされたCUのイントラモードは、4×4ピクセルサンプルの単位でメモリに記憶され得る。復号側イントラモード導出(DIMD)が適用されるイントラコーディングされたCUの場合、最高勾配ヒストグラム(HoG)をもつDIMDに基づくデコーダ側導出イントラモードがメモリに記憶され得る。テンプレートベースのイントラモード導出(TIMD)が適用されるイントラコーディングされたCUの場合、最小のSATD(sum of absolute transformed difference)コストをもつデコーダ側導出イントラモードが記憶され得る。ブロックベースの差分パルス符号変調(BDPCM)が適用されるイントラコーディングされたCUの場合、シグナリングされたBDPCM方向が記憶され得る。行列ベースのイントラ予測(MIP)またはテンプレートマッチング予測(TMP)が適用されるイントラコーディングされたCUの場合、平面モードが記憶され得る。他のイントラコーディングされたCUの場合、MPMリストまたは非MPMリストから導出されたイントラモードが記憶され得る。
MPMリストの精度を高めるために、隣接ブロックがインターコーディングされるとき、伝搬イントラ予測モードが、動きベクトルと参照ピクチャとを使用して導出され得る。インターコーディングされたCUの場合、イントラモードは、参照されたエリアからインターコーディングされたCUに伝搬され得る。
イントラテンプレートマッチング予測(イントラTMPとも呼ばれる)は、L字型テンプレートが現在テンプレート(例えば、現在ブロックのテンプレート)に一致する現在フレームの再構築された部分から最良の予測ブロックをコピーする特殊なイントラ予測モードである。あらかじめ定義された探索範囲について、エンコーダは、現在フレームの再構築された部分において現在テンプレートに最も類似するテンプレートを探索し、対応ブロックを予測ブロックとして使用し、ここで、最も類似するテンプレートは、対応ブロックに関連付けられ、現在テンプレートは、現在ブロックに関連付けられる。次いで、エンコーダは、イントラTMPモードの使用をシグナリングし、デコーダ側で同じ予測動作が実行され得る。マッチングブロック(または対応ブロック)(1002)は、図10に示され、現在CU(1004)のためのマッチングエリアとして機能することができる。
図10に示すように、予測信号は、現在ブロック(1004)のL字型の因果ネイバー(causal neighbor)(またはL字型テンプレート)をあらかじめ定義された探索エリア中の別のブロックとマッチングすることによって生成され得る。例示的なあらかじめ定義された探索エリアは、R1(現在CTU)と、R2(左上CTU)と、R3(上CTU)と、R4(左CTU)とを含むことができる。差分絶対値和(SAD)は、コスト関数として使用され得る。
各探索エリア内で、デコーダは、現在テンプレート(例えば、現在ブロック(1004)のテンプレート)に対して最小のSADをもつブロックのテンプレートを探索し、最小のSADをもつブロックを現在ブロックの対応ブロックとして使用することができる。対応ブロックはさらに、現在ブロック(例えば、(1004))のための予測ブロックとして機能することができる。
すべての探索領域の寸法(例えば、SearchRange_w、SearchRange_h)は、現在ブロックのブロック寸法(例えば、BlkW、BlkH)に比例して設定され得る。したがって、各ピクセルにおいて一定数のSAD比較が取得され得る。例えば、探索領域(または探索範囲)の寸法は、以下のように式1および式2において定義され得る:
SearchRange_w = a * BlkW 式(1)
SearchRange_h = a * BlkH 式(2)
ここで、「a」は、利得と探索プロセスの複雑さとの間のトレードオフを制御する定数である。一例では、「a」は5に等しい。
イントラTMPは、特定のサイズのCUに対して有効にされ得る。例えば、イントラTMPは、幅および高さのサイズが64以下のCUに対して有効にされ得る。イントラTMPに対する最大CUサイズは設定可能である。イントラTMPモードはシグナリングされ得る。例えば、イントラTMPモードは、専用フラグを通してCUレベルでシグナリングされ得る。
クロマのための導出モード(DM)では、クロマCUは、コロケーテッドルーマCUを有することができる。クロマCUのコロケーテッドルーマCUのイントラモードは、クロマCUのイントラモードとして使用され得る。
位置(x,y)が現在ピクチャに対するクロマCUの左上サンプルを指定し、クロマCUがWの幅とHの高さとを含むとき、クロマCUのコロケーテッドルーマCUのロケーションは、(x+W/2,y+H/2)であり得る。コロケーテッドルーマCUがイントラコーディングされない場合、デフォルト値(例えば、DCまたは平面)がコロケーテッドルーマCUのイントラモードとして使用され得る。
コロケーテッドルーマCUが、コーディングされたイントラブロックコピー(IBC)またはパレットコーディング(PLT)コード化などの特定のモードのうちの1つである場合、コロケーテッドルーマCUのイントラモードは、DCモードとみなされ得る。そうでない場合、コロケーテッドルーマCUのイントラモードは、ロケーション(x+W/2,y+H/2)を含むCUのイントラモードであり得る。
図11は、クロマCU(1104)と、クロマCU(1104)に関連付けられたルーマエリア(1102)とを含むクロマのための例示的な導出モードを示す。図11に示すように、クロマCU(1104)は、対応位置(1106)を含むことができる。対応位置(1106)は、クロマCU(1104)上の基準点に対する、第1の軸(例えば、X軸)上の第1の座標値と第2の軸(例えば、Y軸)上の第2の座標値とを含むことができる。例えば、基準点は、クロマCU(1104)の左下コーナーであり得る。第1の軸は、第2の軸に垂直とすることができる。いくつかの実施形態では、対応位置(1106)は、クロマCU(1104)の左下コーナーに対して(W/2,H/2)のロケーションを有することができ、WはクロマCU(1104)の幅であり、HはクロマCU(1104)の高さである。したがって、対応位置(1106)は、クロマCU(1104)の中心であり得る。図11は一例にすぎず、対応位置(1106)は、クロマCU(1104)のどの位置にあってもよく、基準点もクロマCU(1104)のどの位置にあってもよい。クロマCU(1104)のコロケーテッドルーマCUは、ルーマエリア(1102)中の対応位置(1106)を含むルーマCU(1108)であり得る。
ユニバーサルイントラモードマップを使用して、サンプルの単位でイントラモードを記憶することができる。シグナリングされたイントラモード、デコーダ導出イントラモード、デフォルトイントラモード、または伝搬イントラモードを含む任意のイントラモードが記憶され得る。サンプルの単位は、暗黙的にあらかじめ定義されるか、または明示的にシグナリングされ得る。例えば、エンコーダおよびデコーダは、4×4ピクセルを単位として暗黙的にあらかじめ定義するか、またはビットストリーム中で2×2もしくは8×8を明示的にシグナリングすることができる。ユニバーサルイントラモードマップは、CUまたはCTUにわたって広がることができることに留意されたい。さらに、イントラまたはインターCUがイントラモードを記憶することができるだけでなく、すべてのCUがイントラモードを記憶することができる。
部分的ユニバーサルイントラモードマップの一例が図12Aおよび図12Bに示されており、ここで、各正方形は4×4単位のサンプルを表し得る。
一実施形態では、ユニバーサルイントラモードマップは、最初は空であり得る。さらに、ユニバーサルイントラモードマップは、復号プロセス中に取得される、シグナリングされたイントラモード、デコーダ導出イントラモード、および/または伝搬イントラモードを記憶するか、または別の方法で含むことができる。
別の実施形態では、デフォルトイントラモードを使用して、最初にユニバーサルイントラモードマップを初期化することができる。さらに、デフォルトイントラモードは、復号プロセス中に取得される、シグナリングされたイントラモード、デコーダ導出イントラモード、または伝搬イントラモードによって置き換えることができる。例えば、図12Aに示すように、デフォルトイントラモード0(または平面)が、ユニバーサルイントラモードマップ(1202)のすべての単位に記憶され得る。その後、デフォルトイントラモード0が、別のイントラモードと置き換えられ得る。例えば、他のイントラモードは、シグナリングされたイントラモード、デコーダ導出イントラモード、または伝搬イントラモードであり得る。
さらに別の実施形態では、ユニバーサルイントラモードマップは、最初は空であり得る。さらに、ユニバーサルイントラモードマップの空(またはブランク)単位のうちのいくつかは、復号プロセス中に達成される、シグナリングされたイントラモード、デコーダ導出イントラモード、および/または伝搬イントラモードを記憶することができる。CUが復号された後、残りのブランク単位は、イントラモード0(または平面)などのデフォルトイントラモードで充填され得る。
図12Bに示すように、ユニバーサルイントラモードマップ(1204)は、最初、空であり得、空の単位のうちのいくつかが、復号プロセス中にイントラモードで充填され得る。CUが復号された後、ブランク単位(例えば、(1206)および(1208))は、イントラモード0(または平面)などのデフォルトイントラモードで充填され得る。
伝搬イントラモードは、イントラコーディングされていないCUに伝搬イントラモードを含ませることができ、これにより、イントラコーディングされていないCUが有することができる可能なイントラモードを多様化することができる。本開示では、TMPモードおよびクロマの導出モードのための伝搬に対する改善を含む、イントラモード伝搬に対する改善が提供される。
一実施形態では、マッチングエリアのイントラモードは、TMPモードのために現在ブロックに伝搬され得る。現在ブロック(または現在CU)のマッチングエリアは、L字型テンプレートを使用して探索領域中で発見されたマッチングされた予測器であり得る。他の形状を有するテンプレートを適用することもできる。探索領域は、再構築された領域であり得る。探索領域および現在ブロックは、同じフレームまたは同じピクチャ中に含まれ得る。いくつかの実施形態では、マッチングエリアのL字型テンプレートおよび現在ブロックのL字型テンプレートは、探索領域内で最小コスト値(例えば、SAD)を有することができる。マッチングエリアのL字型テンプレートは、マッチングエリアの左側および上側に隣接するなど、隣接ピクセルを含むことができる。現在CUのL字型テンプレートは、現在CUの左側および上側に隣接するなど、隣接ピクセルを含むことができる。
現在CUの対応位置(例えば、correspondPosition(a,b))を使用して、伝搬イントラモードを導出することができる。対応位置は、現在CU内の任意の位置であり得る。例えば、対応位置は、現在CUの中心に位置し得る。対応位置は、現在ブロックの左下コーナーなどの基準点に対する、第1の軸(例えば、X軸)上の第1の座標値(例えば、a)と、第2の軸(例えば、Y軸)上の第2の座標値(例えば、b)とを含むことができ、第1の軸は、第2の軸に垂直とすることができる。
対応位置は、あらかじめ定義され、エンコーダとデコーダの両方上で暗黙的に合意され得る。代替的に、対応位置は、帯域内または帯域外のビットストリーム中で、明示的または暗黙的にシグナリングされ得る。
一例では、マッチングエリア内の対応位置(例えば、correspondPosition(a,b))を含むCUは、対応CUがどのようにコーディングされるかにかかわらず、現在ブロックの対応CUであり得る。したがって、マッチングエリア内の対応位置は、マッチングエリアの左下コーナーなどの基準点に対する第1の軸(例えば、X軸)上の第1の座標値(例えば、a)と、第2の軸(例えば、Y軸)上の第2の座標値(例えば、b)とを含むことができる。
本開示では、対応CUのイントラモード(例えば、通常のイントラモード、伝搬イントラモード、デフォルトイントラモードなど)の任意の種類または組み合わせが、TMPモードに基づいて現在CUに伝搬され得る。現在ブロックに伝搬されるイントラモードはさらに、記憶され、次のCUに伝搬され得る。
図13は、現在ブロック(1304)の例示的な対応CU(1308)を示す。図13に示すように、対応CU(1308)は、マッチングエリア(1306)中に含まれ得る。マッチングエリア(1306)は、ピクチャ(1302)内の再構築エリアであり得る。現在ブロック1304も、ピクチャ(1302)中に含まれ得る。マッチングエリア(1306)は、L字型テンプレート(1316)などのテンプレートを有することができる。図13に示すように、L字型テンプレート(1316)は、マッチングエリアの左側および上側に隣接するエリアを含むことができる。現在CU(1304)は、L字型テンプレート(1318)などのテンプレートを有することができる。L字型テンプレート(1318)は、現在CUの左側および上側に隣接するエリアを含むことができる。マッチングエリアのL字型テンプレートおよび現在ブロックのL字型テンプレートは、ピクチャ(1302)の探索領域において最小コスト値(例えば、SAD)を有することができる。図13は一例にすぎない。テンプレート(1316)およびテンプレート(1318)は、それぞれ、マッチングエリア(1306)および現在CU(1304)に隣接する他の形状を有する領域を含むことができる。
一例では、現在CU(1304)は、現在CU(1304)の任意のロケーションに対応位置(1312)を有し、(a,b)のロケーションを有することができ、ここで、aは、現在CU(1304)上の基準点に対する、第1の軸(例えば、X)上の第1の座標値であり、bは、第2の軸(例えば、Y)上の第2の座標値である。基準点は、現在CU(1304)の任意の位置に位置し得る。例えば、基準点は、現在CU(1304)の左下コーナー(1314)であり得る。対応位置は、現在CU(1304)の任意の位置に位置し得る。例えば、現在CU(1304)の対応位置(1312)は、現在CU(1304)の中心に位置し得る。したがって、対応位置(1312)は、現在CU(1304)の左下コーナーに対して(W/2,H/2)のロケーションを有することができ、ここで、WおよびHは、それぞれ、現在CU(1304)の幅および高さである。マッチングエリア(1306)において対応位置(1310)を含むCU(例えば、(1308))は、現在CU(1304)の対応CU(1308)と表記され得る。マッチングエリア(1306)の対応位置(1310)はまた、マッチングエリア(1306)上の基準点(例えば、左下コーナー(1320))に対して第1の軸および第2の軸上にロケーション(a,b)を有することができる。したがって、対応位置(1312)が現在CU(1304)の左コーナーに対して(W/2,H/2)のロケーションを有する場合、対応位置(1310)は、マッチングエリア(1306)の左下コーナーに対して(W/2,H/2)のロケーションを有することができる。
別の例では、対応位置(1312)が、現在CU(1304)の左コーナー(1314)など、現在CU(1304)上の基準点に対して(W/2,H/2)のロケーションを有する場合、対応位置(1310)は、マッチングエリア(1306)の左下コーナー(1320)など、マッチングエリア(1306)上の基準点に対して(W’/2,H’/2)のロケーションを有することができ、ここで、W’およびH’は、それぞれ、マッチングエリア(1306)の幅および高さである。
さらに別の例では、対応位置(1312)は、現在CU(1304)の左コーナー(1314)などの基準点に対して(W/a,H/b)のロケーションを有することができ、対応位置(1310)は、マッチングエリア(1306)の左下コーナー(1320)などのマッチングエリア(1306)上の基準点に対して(W’/a,H’/b)のロケーションを有することができ、ここで、aおよびbは、正の整数である。いくつかの実施形態では、WはW’に等しくなく、HはH’に等しくない。いくつかの実施形態では、WはW’に等しくてもよく、HはH’に等しくてもよい。したがって、マッチングエリア(1306)のサイズは、現在CU(1304)のサイズに等しい。
対応CU(1308)のイントラモードは、TMPモードに基づいて現在CU(1304)のイントラモードとして使用され得る。イントラモードは、さらに、4×4ピクセルサンプルの単位で記憶され、次のCUに伝搬され得る。
別の実施形態では、現在CUのイントラモードは、ユニバーサルイントラモードマップ中の対応位置のエントリ(または、割り当てられたイントラモード)にアクセスすることによって達成可能である。ユニバーサルイントラモードマップを通して達成されるイントラモードはさらに、記憶され、次のCUに伝搬され得る。
例えば、図14に示すように、ピクチャ(1402)は、現在CU(1404)と、現在ブロック(1404)のマッチングエリア(1406)とを含むことができる。現在CU(1404)は、マッチングエリア(1406)内の対応位置(1414)および対応CU(1408)を含むことができる。対応CU(1408)は、対応位置(1412)を含むことができる。対応位置(1414)は、現在CU(1404)の任意のロケーションに位置することができる。対応位置(1414)は、(a,b)のロケーションを有することができ、ここで、aは、現在CU(1404)上の基準点に対する第1の軸(例えば、X)上の第1の座標値であり、bは、第2の軸(例えば、Y)上の第2の座標値である。現在CU(1404)上の基準点は、現在CU(1404)の左下コーナー(1461)など、現在CU(1404)の任意のロケーションに位置することができる。
一例では、対応位置(1414)は、現在CU(1404)の中心に位置することができる。したがって、対応位置(1414)は、(W/2,H/2)のロケーションを有することができ、ここで、WおよびHは、それぞれ、現在CU(1404)の幅および高さである。対応位置(1412)はまた、マッチングエリア(1406)上の基準点に対して(a,b)のロケーションを有することができる。マッチングエリア(1406)上の基準点は、マッチングエリア(1406)の左下コーナー(1418)など、マッチングエリア(1406)の任意のロケーションに位置することができる。したがって、対応位置(1414)が、現在CU(1404)の左下コーナー(1416)に対して(W/2,H/2)のロケーションを有する場合、対応位置(1412)は、マッチングエリア(1406)の左下コーナー(1418)に対して(W/2,H/2)のロケーションを有することができる。
別の例では、対応位置(1414)は、現在CU(1404)の左コーナー(1416)に対して(W/a,H/b)のロケーションを有することができ、対応位置(1412)は、マッチングエリア(1406)の左下コーナー(1418)に対して(W’/a,H’/b)のロケーションを有することができる。WおよびHは、それぞれ、現在CU(1404)の幅および高さである。W’およびH’は、それぞれ、マッチングエリア(1406)の幅および高さである。いくつかの実施形態では、WはW’に等しくなく、HはH’に等しくない。いくつかの実施形態では、WはW’に等しくてもよく、HはH’に等しくてもよい。
さらに、ユニバーサルマップ(1410)は、マッチングエリア(1406)に割り当てられ得る。ユニバーサルマップ(1410)は、マッチングエリア(1406)を複数のサブエリアに分割することができる。複数のサブエリアの各々には、特定のイントラモードが割り当てられ得る。したがって、対応位置(1412)を含むサブエリアに割り当てられたイントラモード(例えば、イントラモード(51))は、現在CU(1404)に伝搬され得る。
本開示では、現在クロマCUは、コロケーテッドルーマCUを有することができる。コロケーテッドルーマCUは、現在クロマCUに関連付けられ得る。例えば、コロケーテッドルーマCUとルーマCUの両方は、対応位置(例えば、correspondPositionDM(a,b))を有することができ、コーディングツリーユニット(CTU)中に含まれ得る。いくつかの実施形態では、現在クロマCUは、コロケーテッドルーマCUとアラインされ得る。クロマDMモードによれば、現在クロマCUのコロケーテッドルーマCUのイントラモードは、現在クロマCUに伝搬され得る。クロマDMモードが使用される場合、イントラ予測モード、およびイントラブロックコピー(IBC)、インターモード、PLTなどの他の予測モードを用いてコロケーテッドルーマCUがコーディングされ得る。したがって、対応位置(例えば、correspondPositionDM(a,b))を適用して、コロケーテッドルーマCUから現在クロマCUへの伝搬イントラモードを導出する。
対応位置は、あらかじめ定義され、エンコーダとデコーダの両方上で暗黙的に合意され得る。代替的に、コロケーテッド位置(または対応位置)は、帯域内または帯域外のビットストリーム中で明示的または暗黙的にシグナリングされ得る。さらに、対応位置は、クロマCUの任意のロケーションに位置し、ロケーション(a,b)を含むことができ、ここで、aは、現在クロマCUの左下コーナーなど、現在クロマCUの基準点に対する、第1の軸(例えば、X)上の第1の座標値であり、bは、第2の軸(例えば、Y)上の第2の座標値である。
一実施形態では、クロマDMモードにしたがって、通常のイントラモード、伝搬イントラモード、デフォルトイントラモードなど、コロケーテッドルーマCUに関連付けられた任意の種類のイントラモードが現在クロマCUに伝搬され得る。
さらに、コロケーテッドルーマCUがIBCなどの特定のモードでコーディングされるかまたはインターコーディングされる場合、コロケーテッドルーマCUのデフォルトイントラモード値を使用する代わりに、コロケーテッドルーマCUの伝搬イントラモードが現在クロマCUに伝搬され得る。コロケーテッドルーマCUの伝搬イントラモードは、コロケーテッドルーマCUの隣接ルーマCUのイントラモードに基づいて取得され得る。そのような場合、現在クロマCUは、IBCまたはインターコーディングされたコロケーテッドルーマCUからのデフォルトイントラモード値以外の値を有することができる。
別の実施形態では、現在クロマCUのイントラモードは、ユニバーサルイントラモードマップ中のコロケーテッドルーマCUの位置にしたがってコロケーテッドルーマCUに割り当てられたユニバーサルイントラモードマップのエントリ(またはイントラモード)にアクセスすることによって達成され得る。ユニバーサルイントラモードマップは、コロケーテッドルーマCUを複数のサブエリアに分割することができる。複数のサブエリアの各々には、ユニバーサルイントラモードマップにしたがってそれぞれのイントラモードが割り当られ得る。対応位置を含むサブエリアに割り当てられたイントラモードは、現在クロマCUに伝搬され得る。
図15は、本開示のいくつかの実施形態による、第1の例示的な復号プロセス(1500)を概説するフローチャートを示す。図16は、本開示のいくつかの実施形態による、第2の例示的な復号プロセス(1600)を概説するフローチャートを示す。図17は、本開示のいくつかの実施形態による、第1の例示的な符号化プロセス(1700)を概説するフローチャートを示す。図18は、本開示のいくつかの実施形態による、第2の例示的な符号化プロセス(1800)を概説するフローチャートを示す。提案されるプロセスは、別々に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、プロセス(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装され得る。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
実施形態では、プロセスの任意の動作(例えば、(1500)、(1600)、(1700)および(1800))は、所望に応じて、任意の量または順序で組み合わせられるかまたは配置され得る。実施形態では、プロセス(例えば、(1500)、(1600)、(1700)および(1800))の動作のうちの2つ以上は、並行して実行されてもよい。
プロセス(例えば、(1500)、(1600)、(1700)および(1800))は、再構築中のブロックのための予測ブロックを生成するために、ブロックの再構築および/または符号化で使用され得る。様々な実施形態では、プロセス(例えば、(1500)、(1600)、(1700)および(1800))は、端末デバイス(210)、(220)、(230)および(240)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(例えば、(1500)、(1600)、(1700)および(1800))は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(例えば、(1500)、(1600)、(1700)および(1800))を実行する。
図15に示すように、プロセス(1500)は、(S1501)から開始し、(S1510)に進むことができる。(S1510)において、(i)ピクチャの現在ブロックおよび(ii)ピクチャの再構築エリアのコード化情報がコード化ビデオビットストリームから受信され得る。
(S1520)において、ピクチャの再構築エリアにおける現在ブロックのマッチングエリアが決定され得る。
(S1530)において、現在ブロックの第1の対応位置が現在ブロック内で決定され得る。第1の対応位置は、現在ブロック上の第1の基準点に対する第1の軸上の第1の座標値および第2の軸上の第2の座標値を含むことができる。第1の軸は、第2の軸に垂直とすることができる。
(S1540)において、現在ブロックの対応ブロックがマッチングエリアにおいて決定され得る。対応ブロックは、マッチングエリア上の第2の基準点に対する第1の軸上の第1の座標値および第2の軸上の第2の座標値を有する第2の対応位置を含むことができる。
(S1550)において、現在ブロックのイントラ予測モードが対応ブロックに基づいて決定され得る。
マッチングエリアを決定するために、複数の候補マッチングエリアがピクチャの再構築エリアにおいて探索され得る。現在ブロックのテンプレート領域と複数の候補マッチングエリアの各々の候補マッチングエリアのそれぞれのテンプレート領域との間のそれぞれのコスト値が決定され得る。マッチングエリアは、複数の候補マッチングエリアの中から最小コスト値を有する候補マッチングエリアとして決定され得る。現在ブロックのテンプレート領域は、現在ブロックの左側に隣接した第1の領域と、現在ブロックの上側に隣接した第2の領域とを含むことができる。複数の候補マッチングエリアの各々の候補マッチングエリアのそれぞれのテンプレート領域は、複数の候補マッチングエリアのうちのそれぞれ1つの左側に隣接した第1の領域と、複数の候補マッチングエリアのうちのそれぞれ1つの上側に隣接した第2の領域とを含むことができる。
いくつかの実施形態では、現在ブロックの第1の対応位置は、あらかじめ定義されるか、またはコード化情報中でシグナリングされ得る。
いくつかの実施形態では、第1の対応位置は、現在ブロックの中心であり得る。
いくつかの実施形態では、対応ブロックのイントラ予測モードは、現在ブロックのイントラ予測モードとして決定され得る。
いくつかの実施形態では、現在ブロックのイントラ予測モードはユニバーサルイントラモードマップに基づいて決定され得る。ユニバーサルイントラモードマップは、マッチングエリアを複数のサブエリアに分割することができる。複数のサブエリアの各々は、それぞれのイントラ予測モードに関連付けられ得る。現在ブロックのイントラ予測モードは、複数のサブエリアのうち、第2の対応位置を含むサブエリアに関連付けられたイントラ予測モードであり得る。
図16に示すように、プロセス(1600)は、(S1601)から開始し、(S1610)に進むことができる。(S1610)において、(i)クロマコーディングユニット(CU)および(ii)ルーマエリアのコード化情報がコード化ビデオビットストリームから受信され得る。
(S1620)において、クロマCUの対応位置がクロマCU内で決定され得る。対応位置は、第1の軸上の第1の座標値および第2の軸上の第2の座標値を含むことができる。第1の軸は、第2の軸に垂直とすることができる。
(S1630)において、クロマCUのコロケーテッドルーマCUがルーマエリアにおいて決定され得る。コロケーテッドルーマCUは、対応位置を含むことができる。
(S1640)において、クロマCUのイントラ予測モードがコロケーテッドルーマCUに基づいて決定され得る。
一実施形態では、コロケーテッドルーマCUがイントラ予測モードに基づいてイントラコーディングされたことに応答して、コロケーテッドルーマCUのイントラ予測モードがクロマCUのイントラ予測モードとして決定され得る。他の実施形態では、コロケーテッドルーマCUがイントラコーディングされていないことに応答して、コロケーテッドルーマCUの伝搬イントラモードがクロマCUのイントラ予測モードとして決定され得る。コロケーテッドルーマCUの伝搬イントラモードは、コロケーテッドルーマCUの隣接ルーマCUのイントラ予測モードに基づいて取得され得る。
いくつかの実施形態では、クロマCUの対応位置は、あらかじめ定義されるか、またはコード化情報中でシグナリングされ得る。
いくつかの実施形態では、クロマCUのイントラ予測モードがユニバーサルイントラモードマップに基づいて決定され得る。ユニバーサルイントラモードマップは、ルーマエリアを複数のサブエリアに分割することができる。複数のサブエリアの各々には、それぞれのイントラ予測モードが割り当てられ得る。クロマCUのイントラ予測モードは、複数のサブエリアのうち、対応位置を含むサブエリアに関連付けられたイントラ予測モードであり得る。
図17に示すように、プロセス(1700)は、(S1701)から開始し、(S1710)に進むことができる。(S1710)において、ピクチャの現在ブロックのマッチングエリアがピクチャの再構築エリアから決定され得る。
(S1720)において、現在ブロックの第1の対応位置が現在ブロック内で決定され得る。第1の対応位置は、現在ブロック上の第1の基準点に対する第1の軸上の第1の座標値および第2の軸上の第2の座標値を含むことができ、第1の軸は、第2の軸に垂直とすることができる。
(S1730)において、現在ブロックの対応ブロックがマッチングエリアから決定され得、対応ブロックは、マッチングエリア上の第2の基準点に対する第1の軸上の第1の座標値および第2の軸上の第2の座標値を有する第2の対応位置を含むことができる。
(S1740)において、対応ブロックに基づいて現在ブロックのイントラ予測モードを決定することができる。
(S1750)において、決定されたイントラ予測モードに基づいてイントラ予測が現在ブロックに対して実行され得る。
図18に示すように、プロセス(1800)は、(S1801)から開始し、(S1810)に進むことができる。(S1810)において、クロマCUの対応位置がクロマCU内で決定され得る。対応位置は、第1の軸上の第1の座標値および第2の軸上の第2の座標値を含むことができ、第1の軸は、第2の軸に垂直とすることができる。
(S1820)において、クロマCUのコロケーテッドルーマCUがルーマエリアにおいて決定され得、コロケーテッドルーマCUは、対応位置を含むことができる。
(S1830)において、クロマCUのイントラ予測モードがコロケーテッドルーマCUに基づいて決定され得る。
(S1840)において、決定されたイントラ予測モードに基づいてイントラ予測がクロマCUに対して実行され得る。
(S1850)において、(i)クロマCUおよび(ii)ルーマエリアのコード化情報を含むように、コード化ビデオビットストリームが生成され得る。
上記で説明した技法は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、図19は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(1900)を示す。
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理ユニット(GPU)などによって、直接、または解釈、マイクロコード実行などを通して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様の機構に従い得る、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行され得る。
コンピュータシステム(1900)に関して図19に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図されていない。また、構成要素の構成は、コンピュータシステム(1900)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関するいかなる依存性または要件も有するものと解釈されるべきではない。
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)を通した一人または複数の人間のユーザによる入力に反応し得る。ヒューマンインターフェースデバイスはまた、オーディオ(発話、音楽、周囲音など)、画像(スキャンされた画像、静止画像カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャするために使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロフォン(1906)、スキャナ(1907)、カメラ(1908)のうちの1つまたは複数(各々1つのみが示されている)を含み得る。
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を通して、一人または複数の人間のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(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を含む車両および産業用などが挙げられる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1949)(例えば、コンピュータシステム(1900)のUSBポートなど)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のものは、一般に、以下で説明するようにシステムバスに取り付けることによってコンピュータシステム(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(ビデオユーザビリティ情報)
GOPs:Groups of Pictures(ピクチャグループ)
TUs:Transform Units(変換ユニット)
PUs:Prediction Units(予測ユニット)
CTUs:Coding Tree Units(コーディングツリーユニット)
CTB:Coding Tree Blocks(コーディングツリーブロック)
PB:Prediction Blocks(予測ブロック)
HRD:Hypothetical Reference Decoder(仮想参照デコーダ)
SNR:Signal Noise Ratio(信号対雑音比)
CPUs:Central Processing Units(中央処理装置)
GPUs: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(コーディングユニット)
本開示では、いくつかの例示的な実施形態を説明してきたが、変更形態、置換形態、および様々な代替同等物が存在しており、これらは、本開示の範囲内に含まれるものである。したがって、当業者であれば、本明細書に明示的に図示または説明されていないが、本開示の原理を具現化し、したがって、本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができるであろうことを理解されよう。