図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、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの格納などを含む、その他のビデオ対応の用途に等しく適用可能であり得る。
ストリーミングシステムは、例えばデジタルカメラなどのビデオソース(401)を含むことができるキャプチャサブシステム(413)を含むことができ、例えば圧縮されていないビデオ画像(402)のストリームを作成する。一例では、ビデオ画像のストリーム(402)は、デジタルカメラによって取得されたサンプルを含む。符号化されたビデオデータ(404)(または符号化されたビデオビットストリーム)と比較して高いデータ量を強調するために太線で描かれたビデオ画像のストリーム(402)は、ビデオソース(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勧告H.265が含まれる。例として、開発中のビデオ符号化標準は、非公式にVersatile Video Coding(VVC)として知られている。開示された主題は、VVCの文脈で使用されてもよい。
電子機器(420)および(430)は、他の構成要素(図示せず)を含む場合があることに留意されたい。例えば、電子機器(420)はビデオデコーダ(図示せず)を含む場合があり、電子機器(430)も同様にビデオエンコーダ(図示せず)を含む場合がある。
図5は、本開示の実施形態によるビデオデコーダ(510)のブロック図を示している。ビデオデコーダ(510)は、電子機器(530)に含まれ得る。電子機器(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(410)の代わりに使用することができる。
受信機(531)は、ビデオデコーダ(510)によって復号される1つまたは複数の符号化されたビデオシーケンスを受信することができ、同じ実施形態または別の実施形態では、一度に1つの符号化されたビデオシーケンスであり、各符号化されたビデオシーケンスの復号化は、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル(501)から受信されてよく、チャネルは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、それぞれの使用エンティティ(描かれていない)に転送され得る他のデータ、例えば符号化されたオーディオデータおよび/または補助データストリームとともに、符号化されたビデオデータを受信してよい。受信機(531)は、コード化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)との間に結合され得る。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合には、それはビデオデコーダ(510)の外側にある場合もある(描かれていない)。さらに他のものでは、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(描かれていない)がある場合もあり、またこれに加えて、再生タイミングに対処するために、例えばビデオデコーダ(510)の内部に別のバッファメモリ(515)がある場合もある。受信機(531)が十分な帯域幅と制御性を持つ記憶/転送装置から、またはアイソクロナスネットワークからデータを受信している場合、バッファメモリ(515)は必要なくてもよい、または小さい場合もある。インターネットなどのベストエフォート型のパケットネットワークで使用する場合、バッファメモリ(515)が必要になる場合があり、これは比較的大きく、有利な適応性のあるサイズであり、オペレーティングシステムまたはビデオデコーダ(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)は、以下で説明するように、概念的にいくつかの機能ユニットに分割され得る。商業的な制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明するために、概念的に以下の機能ユニットに細分するのが適切である。
最初のユニットは、スケーラ/逆変換ユニット(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などの規格における所定のビデオ圧縮技術に従って復号化動作を実行することができる。符号化されたビデオシーケンスは、ビデオ圧縮技術または規格の構文と、ビデオ圧縮技術で文書化されているプロファイルの両方に準拠しているという意味において、使用されているビデオ圧縮技術または規格によって指定された構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、そのプロファイルで使用できる唯一のツールとして特定のツールを選択できる。また、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルで定義されている範囲内にあることもコンプライアンスには必須である。一部のケースでは、レベルによって、最大画像サイズ、最大フレームレート、最大再構築サンプルレート(例えば、メガサンプル/秒で測定された)、最大参照画像サイズなどが制限される。レベルによって設定された制限は、一部のケースでは、仮想参照デコーダ(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)は、符号化ループで動作するように構成される。過度に単純化した説明として、一例では、符号化ループは、ビデオエンコーダ(603)に埋め込まれたソースコーダ(630)(例えば、符号化すべき入力画像および参照画像(複数可)に基づいてシンボルストリームなどのシンボルを作成する責任を負う)と、(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダが作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構築する(シンボルと符号化されたビデオビットストリーム間のいかなる圧縮も、開示された主題で考慮されるビデオ圧縮技術では可逆であるため)。再構築されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(634)に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビットイグザクト結果をもたらすため、参照画像メモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダ間ではビットイグザクトである。言い換えると、エンコーダの予測部分は、参照画像のサンプルとして、デコーダが復号中に予測を使用する際に「見る」のとまったく同じサンプル値を「見る」。参照画像の同期性(および、例えばチャネルエラーのために同期性を維持できない場合に結果として生じるドリフト)のこのような基本原理は、いくつかの関連技術でも使用されている。
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであってよく、これは、図5に関連して上記で詳細にすでに説明されている。しかしながら、図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)を介した送信の準備をすることができ、この通信チャネルは、エンコードされたビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであってよい。送信機(640)は、ビデオコーダ(603)からの符号化されたビデオデータを、送信すべき他のデータ、例えば符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)と合体してもよい。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。符号化中に、コントローラ(650)は、各符号化された画像に特定の符号化画像タイプを割り当ててもよく、これは、それぞれの画像に適用され得る符号化技術に影響を及ぼす可能性がある。例えば、多くの場合、画像は次の画像タイプのいずれかとして割り当てられてよい。
イントラ画像(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は、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)は、スイッチ(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つまたは複数のプロセッサを使用して実装できる。
本開示の態様は、イントロブロックコピーにおけるペアワイズ平均候補を用いたブロックベクトル予測のための技術を提供する。
ブロックベースの補償は、インター予測およびイントラ予測に使用できる。インター予測の場合、別の画像からのブロックベースの補償は動き補償として知られている。イントラ予測の場合、ブロックベースの補償は、同じ画像内の以前に再構築された領域から行うこともできる。同じ画像内の再構築された領域からのブロックベースの補償は、イントラ画像ブロック補償またはイントラブロックコピーと呼ばれる。同じ画像内の現在ブロックと参照ブロックとのオフセットを示す変位ベクトルは、ブロックベクトル(または略してBV)と呼ばれる。任意の値(正または負、x方向またはy方向のいずれか)にすることができる動き補償の動きベクトルとは異なり、ブロックベクトルには、参照ブロックが利用可能であり、かつすでに再構築されていることを保証するためにいくつかの制約がある。また、いくつかの例では、並列処理を考慮して、タイル境界または波面ラダー形状境界であるいくつかの参照領域が除外される。
ブロックベクトルの符号化は、明示的または暗黙的に行われる場合がある。明示的モードでは、ブロックベクトルとその予測子との差が通知され、暗黙モードでは、ブロックモードは、マージモードの動きベクトルと同様の方法で予測子(ブロックベクトル予測子と呼ばれる)から復元される。一部の実装形態では、ブロックベクトルの解像度は整数位置に制限されており、他のシステムでは、ブロックベクトルは小数の位置を指すことができる。
いくつかの例では、ブロックレベルでのイントラブロックコピーの使用は、参照インデックス手法を使用して通知することができる。復号化中の現在の画像は、参照画像として扱われる。一例では、そのような参照画像は、参照画像のリストの最後の位置に置かれる。この特別な参照画像は、復号された画像バッファ(DPB)などのバッファ内の他の時間参照画像とともに管理される。
イントラブロックコピーにはいくつかの変形もあり、例えば、反転イントラブロックコピー(参照ブロックが現在ブロックの予測に使用される前に水平または垂直に反転される)、またはラインベースのイントラブロックコピー(M×N符号化ブロック内の各補償ユニットはM×1または1×Nラインである)などである。
図9は、本開示の一実施形態によるイントラブロックコピーの一例を示す図である。現在の画像(900)は復号中である。現在の画像(900)は、再構築された領域(910)(灰色の領域)と、復号すべき領域(920)(白い領域)とを含む。現在ブロック(930)は、デコーダによって再構築中である。現在ブロック(930)は、再構築されたエリア(910)にある参照ブロック(940)から再構築することができる。参照ブロック(940)と現在ブロック(930)との間の位置オフセットは、ブロックベクトル(950)(またはBV(950))と呼ばれる。
いくつかの実装形態では、現在の画像の再構築されたサンプルは、アクセス速度が比較的高いがメモリ記憶空間サイズが小さいオンチップメモリなどの専用メモリに最初に格納され、その後、アクセス速度は比較的遅いが、メモリ記憶空間が大きいオフチップメモリなどのメインメモリなどに格納される。そのため、メインメモリへのアクセスは、専用メモリへのアクセスよりも時間がかかり、実装コストが増大する可能性がある。実装コストを考慮して、参照領域は専用メモリのメモリサイズに制限される。したがって、いくつかの実施形態では、イントラブロックコピーは、画像全体ではなく、いくつかの隣接する領域のみを参照することが許可される。一例では、専用メモリのメモリサイズは1CTUであり、この場合、参照ブロックが現在ブロックと同じCTU内にある場合、イントラブロックコピーモードを使用できる。別の例では、メモリサイズは2CTUであり、この場合、参照ブロックが現在のCTU内、または現在のCTUの左側のCTU内にある場合のみイントラブロックコピーモードを使用できる。参照ブロックが指定された隣接する領域の外にある場合、参照サンプルが再構築されていても、メモリアクセス時間の延長による遅延を回避するために、いくつかの例では参照サンプルをイントラ画像ブロックの補償に使用することはできない。
参照領域が制限されていると、イントラブロックコピーの効率は制限される。本開示は、制約された参照領域を用いてイントラブロックコピーの効率を改善するための技術を提供する。本開示のいくつかの態様によれば、インター予測で使用される動き補償技術をイントラブロックコピーで使用するために改良することができる。
一般に、動き補償はブロックレベルで実行される、つまり、現在ブロックは、同じ動き情報を使用して動き補償を実行する処理ユニットである。ブロックのサイズを考えると、ブロック内のすべてのピクセルは同じ動き情報を使用して予測ブロックを形成することになる。
一部の実施形態では、ブロックレベルのマージ候補を使用する技術が動き補償で使用される。ブロックレベルのマージ候補には、空間マージ候補と、時間的な隣接位置を含めることができる。双方向予測では、ブロックレベルのマージ候補には、既存のマージ候補からの動きベクトルのいくつかの組み合わせを含めることもできる。
図10は、空間マージ候補の一例を示す図である。図10の例では、現在ブロック(1001)は、空間的にシフトされた同サイズの前のブロックから予測可能であることが、動き探索プロセス中にエンコーダによって発見されたサンプルを含む。そのMVを直接符号化する代わりに、A0、A1、B0、B1、B2(それぞれ(1002)~(1006))で示される5つの周囲のサンプルのいずれか1つに関連付けられたMVを使用して、例えば最も最近の(復号順で)参照画像から、1つまたは複数の参照画像に関連付けられたメタデータからMVを導き出すことができる。このとき、MV予測は、隣接ブロックが使用しているのと同じ参照画像からの予測子を使用できる。図10の例では、現在ブロックの隣接位置(1002)~(1006)のサンプルが空間マージ候補に使用されている。
いくつかの実施形態では、1つまたは複数の候補リスト(候補セットとも呼ばれる)が復号化中に構築される。いくつかの例では、候補リスト内の候補の数は、異なる数の候補を処理する分岐演算が復号化効率を低下させる可能性があるため、統一復号化演算では定数であることが好ましい。ただし、選択したすべての空間位置で動きベクトルが常に使用できるとは限らず、一部の位置の動きベクトルは同じ(重複)である場合がある。本開示の一態様によれば、候補リストを上限数まで満たすために追加の動きベクトルを生成するための技術が開発される。
図11は、いくつかの例における空間的および時間的候補の一例を示す図である。
インター予測のマージモードの場合、候補リスト内のマージ候補は、現在ブロックの空間的または時間的隣接ブロックからの動き情報をチェックすることによって主に形成される。図11の例では、候補ブロックA1、B1、B0、A0およびB2が順次チェックされる。候補ブロックのいずれかが有効な候補であり、例えば動きベクトルで符号化される場合、このとき有効な候補ブロックの動き情報をマージ候補リストに追加することができる。重複する候補がリストに再び追加されないようにするために、一部のプルーニング操作が実行される。候補ブロックA1、B1、B0、A0およびB2は、現在ブロックの隅に隣接しており、コーナー候補と呼ばれる。
空間候補の後に、時間候補もチェックされ候補リストに入れられる。一部の例では、指定された参照画像内の現在ブロックの同じ場所にあるブロックが見つけられる。同じ場所にあるブロックのC0位置(現在ブロックの右下隅)の動き情報は、時間的マージ候補として使用される。この位置のブロックがインターモードで符号化されていないか、使用できない場合、いくつかの例では、C1位置(同じ場所にあるブロックの中心の外側の右下隅)が代わりに使用される。
双方向予測のいくつかの例では、2つの候補リスト(候補リスト0および候補リスト1など)が使用されることに留意されたい。2つの候補リストは、双方向予測のための2つの動きベクトルの動きベクトル情報をそれぞれ保持する。
いくつかの例では、空間的および時間的候補は、候補リストを完全に満たすことができない場合がある。候補リストをさらに満たすために、いくつかの実施形態では、ペアワイズ平均マージモードと呼ばれる技術が、2つの既存のマージ候補を平均化することによって新しいマージ候補を生成する。例えば、マージ候補リストにN個の既存のマージ候補がある場合、この場合、新しいマージ候補を生成するために
候補動きベクトルの対が平均化される。新しいマージ候補が候補リスト内の既存のマージ候補の重複ではない場合、新しいマージ候補を候補リストに追加できる。
ペアワイズ平均演算は候補リストに対してそれぞれ実行されることに留意されたい。例えば、ペアワイズ平均演算は候補リスト0の候補に対して実行でき、ペアワイズ平均演算の結果のベクトルは候補リスト0に追加される。ペアワイズ平均演算は候補リスト1の候補に対して実行でき、ペアワイズ平均演算の結果のベクトルは候補リスト1に追加される。
2つの既存のマージ候補が両方とも通常のインター動きベクトル候補(インター予測の動きベクトル候補)である場合、(2つの既存のマージ候補の)平均の結果のベクトルもインター動きベクトル候補(インター予測の動きベクトル候補)である。本開示のいくつかの態様によれば、イントラブロックコピーが有効であり、現在の画像が参照画像と見なされる場合、いくつかのマージ候補をイントラブロックコピーモードで符号化することができる。したがって、本開示は、イントラブロックコピーで符号化されたマージ候補の存在下で候補リスト内の既存のマージ候補に基づいてペアワイズ平均マージ候補を生成する技術を提供する。
開示される技術は、別々に使用されてもよく、または任意の順序で組み合わされてもよいことに留意されたい。以下では、ブロックという用語は、予測ブロック、符号化ブロック、または符号化ユニット、すなわちCUとして解釈され得る。
本開示の一態様によれば、動きベクトル候補およびブロックベクトル候補の両方は、制限なしに候補リストのペアワイズ平均演算で使用でき、平均演算から得られるベクトルのベクトルタイプ(動きベクトルまたはブロックベクトル)は、選択された既存の候補のベクトルタイプに基づいて決定される。
例えば、2つの選択された既存の候補が動きベクトル候補である場合、2つの選択された既存の候補の平均は動きベクトル候補である。2つの選択された既存の候補が異なる参照画像を有するとき、参照画像の1つは、平均演算の結果としての動きベクトルの参照画像として選択され得る。いくつかの例では、2つの選択された既存の候補が異なる参照画像を有する場合、平均演算の前にスケーリングが実行される。他のいくつかの例では、2つの選択された既存の候補が同じ参照画像を有するか、異なる参照画像を有するかに関係なく、平均演算の前にスケーリングは実行されない。
さらに、選択された2つの既存候補がブロックベクトル候補である場合、選択された2つの既存の候補の平均はブロックベクトル候補となる。平均演算の結果のブロックベクトル候補の参照画像は、現在の画像である。
さらに、2つの既存の候補の1つが動きベクトル候補であり、2つの既存の候補のもう1つがブロックベクトル候補である場合、結果としてのベクトルのタイプは、エンコーダ側とデコーダ側の両方で既知のルールに従って決定することができる。
一例では、ブロックベクトル候補は、現在の画像が参照画像である動きベクトル候補として扱われる。
規則の一実施形態において、2つの既存の候補の1つが(時間参照画像を参照する)既存の動きベクトル候補であり、2つの既存の候補の他方が(現在の画像を参照する)既存のブロックベクトル候補である場合、既存の動きベクトル候補と既存のブロックベクトル候補の結果としての平均ベクトルが、動きベクトル候補と見なされる。結果としての平均ベクトルの参照画像は、既存の動きベクトル候補の参照画像になる。
一例では、候補リストに最初に既存の動きベクトル候補しかない場合、ペアワイズ平均演算の結果は動きベクトル候補であり、結果が既存の動きベクトル候補と重複しない場合、候補リストに追加される。候補リストに最初に既存のブロックベクトル候補しかない場合、ペアワイズ平均演算の結果はブロックベクトル候補であり、結果が既存のブロックベクトル候補と重複しない場合、候補リストに追加される。候補リストに最初に既存の動きベクトル候補とブロックベクトル候補の両方がある場合、ペアワイズ平均演算の結果は動きベクトル候補であり、結果が既存の動きベクトル候補と重複しない場合、候補リストに追加される。候補リストに動きベクトル候補もブロックベクトル候補もない場合、候補リストには有効なベクトル候補はない(例えば、単予測の場合、候補リスト1には有効なベクトルがない可能性がある)。
特定の例では、双方向予測子は通常、第1の動きベクトル候補と第2の動きベクトル候補とを含み、第1の動きベクトル候補は候補リスト0内にあり、第2動きベクトル候補は候補リスト1内にある。候補リスト0にブロックベクトル候補がある場合、ブロックベクトル候補と第1の動きベクトル候補は平均化されて新しい動きベクトル候補を生成し、新しい動きベクトル候補(第1の動きベクトル候補と同じ参照画像を有する)は、候補リスト0に単方向予測候補として追加される。
規則の別の実施形態では、2つの既存の候補の1つが既存の動きベクトル候補(時間参照画像を参照)であり、2つの既存の候補のもう1つが既存のブロックベクトル候補(現在の画像を参照)である場合、既存の動きベクトル候補と既存のブロックベクトル候補の結果の平均ベクトルがブロックベクトル候補と見なされる。結果としての平均ベクトルの参照画像が現在の画像になる。
一例では、候補リストに最初に既存の動きベクトル候補しかない場合、ペアワイズ平均演算の結果は動きベクトル候補であり、結果が既存の動きベクトル候補と重複しない場合、候補リストに追加される。候補リストに最初に既存のブロックベクトル候補しかない場合、ペアワイズ平均演算の結果はブロックベクトル候補であり、結果が既存のブロックベクトル候補と重複しない場合、候補リストに追加される。候補リストに最初に既存の動きベクトルとブロックベクトルの両方がある場合、ペアワイズ平均演算の結果はブロックベクトル候補であり、結果が既存のブロックベクトル候補と重複しない場合、候補リストに追加される。候補リストに動きベクトル候補もブロックベクトル候補もしない場合、候補リストには有効なベクトルはない(例えば、単予測の場合、候補リスト1に有効なベクトルがない可能性がある)。
特定の例では、双方向予測子は第1動きベクトル候補と、第2動きベクトル候補とを含み、第1の動きベクトル候補は候補リスト0内にあり、第2の動きベクトル候補は候補リスト1内にある。候補リスト0にブロックベクトル候補がある場合、ブロックベクトル候補と第1の動きベクトル候補が平均化されて、現在の画像を参照する新しいブロックベクトル候補を生成し、新しいブロックベクトル候補は候補リスト0に追加される。
いくつかの実施形態では、結果としてのベクトルがブロックベクトル候補であり、予測サンプルを生成するための最終ブロックベクトルとして使用される場合、ブロックベクトルは、有効なブロックベクトルに課される他の適切な制限に準拠する有効なものであるかが確認される。
本開示の別の態様によれば、ペアワイズ平均演算では、動きベクトル候補が候補リストのブロックベクトル候補と混ざることが回避される。ペアワイズ平均演算は、候補リストの動きベクトルと、候補リストのブロックベクトルに対して別々に実行することができる。
例えば、2つの選択された既存の候補が動きベクトル候補である場合、2つの選択された既存の候補の平均は動きベクトル候補である。2つの選択された既存の候補が異なる参照画像を有するとき、参照画像の1つは、平均演算の結果としての動きベクトルの参照画像として選択され得る。いくつかの例では、2つの選択された既存の候補が異なる参照画像を有する場合、平均演算の前にスケーリングが実行される。他のいくつかの例では、平均演算の前に、2つの選択された既存の候補が同じ参照画像を有するか、異なる参照画像を有するかに関わらず、スケーリングは実行されない。
さらに、選択された2つの既存候補がブロックベクトル候補である場合、選択された2つの既存の候補の平均はブロックベクトル候補となる。平均演算の結果としてのブロックベクトルの参照画像は、現在の画像である。
さらに、2つの既存の候補の一方が動きベクトル候補であり、2つの既存の候補の他方がブロックベクトル候補である場合、2つの既存の候補に対して平均化の措置は実行されない。
本開示の別の態様によれば、候補リストのブロックベクトル候補は、ペアワイズ平均演算から除外される。ペアワイズ平均演算は、候補リスト内の動きベクトル候補に対してのみ実行することができる。マージ候補がイントラブロックコピーモードで符号化されている場合、マージ候補はペア平均操作の選択から除外される。例えば、候補リストに4つのマージ候補があり、2つのマージ候補はモーションベクトル候補であり、2つのマージ候補はブロックベクトル候補である。この場合、2つの動きベクトル候補を平均して、新しい動きベクトル候補を生成することができる。2つのブロックベクトル候補は、平均演算から除外される。
本開示の別の態様によれば、候補リストに単一のブロックベクトル候補がある場合、ブロックベクトル候補は、平均化演算のために選択されることから除外されるが、候補リストに複数のブロックベクトル候補がある場合、ブロックベクトル候補に対してペアワイズ平均演算を実行して、新しいブロックベクトル候補を生成することができる。例えば、候補リストに3つの動きベクトル候補と、1つのブロックベクトル候補がある場合がある。3つの動きベクトル候補に対してペアワイズ平均演算を実行して、3つの新しい動きベクトル候補を生成することができる。別の例では、候補リストに2つの動きベクトル候補と、2つのブロックベクトル候補がある場合がある。2つの動きベクトル候補に対してペアワイズ平均演算を実行して、新しい動きベクトル候補を生成することができる。さらに、2つのブロックベクトル候補に対してペアワイズ平均演算を実行して、新しいブロックベクトル候補を生成することができる。
実装では、特定のケースが回避される。一例では、2つのブロックベクトル候補が同じ値である場合、2つのブロックベクトル候補に対するペアワイズ平均演算が回避される。別の例では、2つの動きベクトル候補が同じ値である場合、2つの動きベクトル候補に対するペアワイズ平均演算が回避される。2つの候補に1つのブロックベクトル候補と、1つの動きベクトル候補が含まれる場合、ブロックベクトル候補と、動きベクトル候補が同じ値を有する場合(異なる参照画像を参照する場合がある)、2つの候補に対するペアワイズ平均演算が回避される。
本開示の様々な例において、結果として得られる平均ベクトルが、予測サンプルを生成するための最終ブロックベクトルとして使用されるブロックベクトルである場合、このとき、ブロックベクトルは、有効なブロックベクトルに課される任意の適切な制限に準拠する有効なものであるかが確認される。
図12は、本開示の実施形態によるプロセス(1200)を概説するフローチャートを示す。プロセス(1200)は、イントラモードで符号化されたブロックの再構築に使用できるため、再構築中のブロックの予測ブロックを生成できる。様々な実施形態では、プロセス(1200)は、端末装置(310)、(320)、(330)および(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、イントラ予測モジュール(552)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路、予測器(635)の機能を実行する処理回路、イントラエンコーダ(722)の機能を実行する処理回路、イントラデコーダ(872)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1200)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1200)を実行する。プロセスは(S1201)から始まり、(S1210)に進む。
(S1210)では、現在の画像の現在ブロックの為の予測情報を復号する。予測情報は、マージ候補リストに基づく予測モードを示すものである。
(S1220)では、マージ候補リストを作成する。マージ候補リストは、現在の画像が参照画像である第1のブロックベクトル候補を少なくとも含む。マージ候補リストには、動きベクトル候補と、他のブロックベクトル候補も含めることができる。
(S1230)で、マージ候補リスト内の既存の候補のペアワイズ平均化に基づいて新しいマージ候補が生成される。マージ候補を満たすために、新しいマージ候補がマージ候補リストに追加される。一部の例では、マージ候補の数が所定の数より少ない場合、マージ候補リストを満たすために新しいマージ候補が生成される。
一実施形態では、第1のブロックベクトル候補は、マージ候補リスト内の唯一のブロックベクトル候補であり、第1のブロックベクトル候補は、ペアワイズ平均化演算から除外される。
別の実施形態では、第1のブロックベクトル候補以外のブロックベクトル候補がマージ候補リスト内に存在する。このとき、第1のブロックベクトル候補および他のブロックベクトル候補に対してペアワイズ平均化演算を実行して、新しいブロックベクトル候補を生成することができる。
別の実施形態では、第1のブロックベクトル候補および動きベクトル候補に対して平均化演算を実行して、新しい動きベクトル候補を生成する場合もある。新しい動きベクトル候補は、第1のブロックベクトル候補と、動きベクトル候補の平均ベクトル値を有し、動きベクトル候補と同じ参照画像を有する。
別の実施形態では、第1のブロックベクトル候補および動きベクトル候補に対して平均化演算を実行して、新しいブロックベクトル候補を生成する場合もある。新しいブロックベクトル候補は、第1のブロックベクトル候補と、動きベクトル候補の平均ベクトル値を有し、現在の画像は新しいブロックベクトル候補の参照画像である。
(S1240)では、マージ候補リストから予測子を決定する。
(S1250)で、予測子に基づいて現在ブロックのサンプルが再構築される。そして(S1299)に進んで終了する。
上記の技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装でき、1つまたは複数のコンピュータ可読媒体に物理的に格納できる。例えば、図13は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1300)を示している。
コンピュータソフトウェアは、任意の適切な機械コードまたはコンピュータ言語を使用して符号化することができ、これらは、直接実行され得る、あるいは1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによる解釈、マイクロコードの実行などを通じて実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となる場合がある。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行することができる。
コンピュータシステム(1300)について図13に示されるコンポーネントは、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関していかなる制限も示唆することは意図していない。また、コンポーネントの構成は、コンピュータシステム(1300)の例示的な実施形態に示されているコンポーネントのいずれか1つまたはそれらの組み合わせに関する依存性または要件を有するものとして解釈するべきではない。
コンピュータシステム(1300)は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(描かれていない)を通して、1人または複数の人のユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、音声(発話、音楽、環境音など)、画像(スキャンした画像、静止画像カメラから取得した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの人間による意識的な入力に必ずしも直接関係しない特定の媒体を捕らえるのに使用することもできる。
入力ヒューマンインターフェースデバイスには、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチスクリーン(1310)、データグローブ(図示せず)、ジョイスティック(1305))、マイク(1306)、スキャナー(1307)、カメラ(1308)のうちの1つまたは複数(各々の1つのみが描かれる)が含まれてよい。
コンピュータシステム(1300)はまた、特定のヒューマンインターフェース出力デバイスを含む場合もある。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて、1人または複数の人間のユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(1310)、データグローブ(図示せず)、またはジョイスティック(1305)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、音声出力デバイス(スピーカー(1309)、ヘッドホン(描かれていない)など)、視覚的出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含めるスクリーン(1310)であり、それぞれにタッチスクリーン入力機能を備えたものと、備えていないものがあり、それぞれに触覚フィードバック機能の備えたものと、備えていないものがあり、その一部は、ステレオグラフィック出力、仮想現実の眼鏡(描かれていない)、ホログラフィックディスプレイおよびスモークタンク(描かれていない)などの手段を介して二次元の視覚的出力、または三次元を超える出力を出力することが可能であり得る)、およびプリンタ(描かれていない)が含まれてよい。
コンピュータシステム(1300)はまた、人間がアクセス可能な記憶装置と、それらに関連付けられた媒体、例えば、CD/DVDまたは同様の媒体(1321)を備えたCD/DVD ROM/RW(1320)、サムドライブ(1322)、取り外し可能なハードドライブまたはソリッドステートドライブ(1323)、テープおよびフロッピーディスク(描かれていない)などのレガシー磁気媒体、セキュリティドングル(描かれていない)などの専用のROM/ASIC/PLDベースのデバイスを含む光学媒体などを含むこともできる。
当業者はまた、ここで開示される主題に関連して使用される「コンピュータ可読媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
コンピュータシステム(1300)は、1つまたは複数の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、無線、有線、光であり得る。さらに、ネットワークは、ローカル、広域、大都市圏、車両および産業、リアルタイム、遅延耐性などである場合がある。ネットワークの例としては、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビおよび地上波放送を含むTV有線または無線広域デジタルネットワーク、CANBusなどを含む車両用、産業用などが含まれる。特定のネットワークは一般に、特定の汎用データポートまたは周辺バス(1349)(例えば、コンピュータシステム(1300)のUSBポートなど)に接続された外部のネットワークインターフェースアダプタを必要とし、他のものは一般に、以下に説明するようにシステムバスに接続することにより、コンピュータシステム(1300)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1300)は他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、または双方向、例えばローカルエリアまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。上記のように、特定のプロトコルおよびプロトコルスタックを、これらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
前述のヒューマンインターフェースデバイス、人がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1300)のコア(1340)に接続することができる。
コア(1340)には、1つまたは複数の中央処理装置(CPU)(1341)、グラフィックス処理装置(GPU)(1342)、フィールドプログラマブルゲート領域(FPGA)の形態の専用のプログラマブル処理装置(1343)、特定のタスクのハードウェアアクセラレータ(1344)などを含めることができる。これらのデバイスは、読み取り専用メモリ(ROM)(1345)、ランダムアクセスメモリ(1346)、ユーザがアクセスすることができない内部ハードドライブ、SSDなどの内部大容量記憶装置(1347)とともに、システムバス(1348)を介して接続されてよい。一部のコンピュータシステムでは、システムバス(1348)に1つまたは複数の物理プラグの形でアクセスして、追加のCPU、GPUなどによる拡張を可能にすることもできる。周辺機器は、コアのシステムバス(1348)に直接、または周辺バス(1349)を介して接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
CPU(1341)、GPU(1342)、FPGA(1343)、およびアクセラレータ(1344)は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM(1345)またはRAM(1346)に記憶することができる。移行データもまたRAM(1346)に記憶することができるが、永続的データは、例えば内部大容量記憶装置(1347)に記憶することができる。1つまたは複数のCPU(1341)、GPU(1342)、大容量記憶装置(1347)、ROM(1345)、RAM(1346)などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速記憶および取り出しを可能にすることできる。
コンピュータ可読媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードをそこに有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計され、構築されたものであり得るか、またはそれらはコンピュータソフトウェア技術の当業者に周知であり利用可能な種類のものであり得る。
限定ではなく一例として、アーキテクチャ(1300)、特にコア(1340)を有するコンピュータシステムは、プロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)が、1つまたは複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行した結果として機能性を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したユーザがアクセス可能な大容量記憶装置、およびコア内部大容量記憶装置(1347)やROM(1345)などの非一時的な性質を持つコア(1340)の特定の記憶装置に関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(1340)によって実行され得る。コンピュータ可読媒体は、特定のニーズに従って、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1340)および特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1346)に格納されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含め、本発明で説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本発明で説明した特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる回路(例えばアクセラレータ(1344))にハードワイヤードされた、または別の方法で組み込まれたロジックの結果として機能性を提供する場合もある。ソフトウェアへの言及はロジックを包含することができ、必要に応じてその逆も可能である。コンピュータ可読媒体への言及は、実行のためのソフトウェア、実行のためのロジックを具体化する回路、またはその両方を適切に格納する回路(集積回路(IC)など)を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付録物A:頭字語
JEM:ジョイント探索モデル
VVC:多用途ビデオ符号化
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオ符号化
SEI:追加の拡張情報
VUI:ビデオのユーザビリティ情報
GOP:画像のグループ
TU:変換単位
PU:予測ユニット
CTU:符号化ツリーユニット
CTB:符号化ツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号ノイズ比
CPU:中央処理装置
GPU:グラフィックスプロセッシングユニット
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み取り専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブルロジックデバイス
LAN:ローカルエリアネットワーク
GSM:モバイル通信用のグローバルシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:ペリフェラルコンポーネントインターコネクト
FPGA:フィールドプログラマブルゲートアレイ
SSD:ソリッドステートドライブ
IC:集積回路
CU:符号化ユニット
本開示はいくつかの例示的な実施形態を説明してきたが、変更、置換、および様々な代替の均等物が存在しており、これらは、本開示の範囲内にある。したがって、当業者は、本明細書では明示的に示されていない、または記載されていないが、本開示の原理を具現化し、したがってその精神および範囲内にある多数のシステムおよび方法を考案できることが理解されよう。