図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は、開示された主題に対するアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を図示する。開示された主題は、例えば、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶、ビデオ会議、デジタルTVなどを含む、他のビデオサポートアプリケーションにも同等に適用可能である。
ストリーミングシステムは、捕捉サブシステム(413)を含むことができ、この捕捉サブシステムが、例えばデジタルカメラなどのビデオソース(401)を含むことができ、例えば圧縮されていないビデオ画像ストリーム(402)を作成する。一例では、ビデオ画像ストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。符号化されたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較する際に、高いデータボリュームを強調するために太い線で描かれたビデオ画像ストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下でより詳細に説明するように、開示された主題の様々な態様を可能にするかまたは実現するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオ画像ストリーム(402)と比較する際に、より低いデータボリュームを強調するために細い線で描かれた、符号化されたビデオデータ(404)(または符号化されたビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶されることができる。図3のクライアントサブシステム(406)および(408)などのような1つ以上のストリーミングクライアントサブシステムは、符号化されたビデオデータ(404)のコピー(407)および(409)を検索するために、ストリーミングサーバー(405)にアクセスすることができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、伝入される、符号化されたビデオデータのコピー(407)を復号して、伝出される、ビデオ画像ストリーム(411)を生成し、このビデオ画像ストリーム(411)が、ディスプレイ(412)(例えば、ディスプレイスクリーン)または他のレンダリングデバイス(図示せず)に表示されることができる。一部のストリーミングシステムでは、符号化されたビデオデータ(404)、(407)および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従って符号化されることができる。これらの規格の例は、ITU-T推薦H.265を含む。一例では、開発中のビデオコーディング規格は、非公式には次世代ビデオコーディング(VVC)と呼ばれる。開示された主題は、VVCのコンテキストで使用されることができる。
なお、電子デバイス(420)および(430)は、他のコンポーネント(図示せず)を含むことができる。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、同様にビデオエンコーダ(図示せず)を含むことができる。
図5は、本開示の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図3の例におけるビデオデコーダ(510)の代わりに使用することができる。
受信機(531)は、ビデオデコーダ(510)によって復号される1つ以上のコーディングされたビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスが復号され、ここで、各コーディングされたビデオシーケンスの復号が、他のコーディングされたビデオシーケンスから独立されている。コーディングされたビデオシーケンスは、チャネル(501)から受信されることができ、このチャネルが、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアのリンクであってもよい。受信機(531)は、それぞれの使用エンティティ(図示せず)に伝送されることができる、例えばコーディングされたオーディオデータおよび/または補助データストリームなどのような他のデータとともに、符号化されたビデオデータを受信することができる。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/解析器(Parser)(520)(以降「解析器(520)」)との間に結合されることができる。いくつかのアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合では、バッファメモリ(515)は、ビデオデコーダ(510)の外部に配置されてもよい(図示せず)。さらに他の場合では、例えばネットワークジッタを防止するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があり得て、さらに、例えば再生タイミングを処理するために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および制御可能性を有するストア/フォワードデバイスからまたは等時性同期ネットワーク(isosynchronous network)からデータを受信する場合、バッファメモリ(515)は、必要ではないかまたは小さくてもよい。インターネットなどのようなベストエフォートパケットネットワークで使用するために、バッファメモリ(515)は、必要になる場合があり、比較的大きくすることができ、有利には適応性のサイズにすることができ、オペレーティングシステムまたはビデオデコーダ(510)の外部の類似要素(図示せず)に少なくとも部分的に実装されることができる。
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構築するための解析器(520)を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報と、電子デバイス(530)の不可欠な部分ではないが、図5に示すように、電子デバイス(530)に結合されることができるレンダリングデバイス(512)(例えば、ディスプレイスクリーン)などのようなレンダリングデバイスを制御するための潜在的情報とが含まれる。レンダリングデバイスの制御情報は、補足強化情報(SEIメッセージ)またはビジュアルユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であってもよい。解析器(520)は、受信された、コーディングされたビデオシーケンスに対して解析/エントロピー復号を行うことができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を有するかまたは有しないかの算術コーディングなどを含む、様々な原理に従うことができる。解析器(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、画像のグループ(GOP:Group of Pictures)、画像、タイル、スライス、マクロブロック、コーディングユニット(CU:Coding Unit)、ブロック、変換ユニット(TU:Trans form Unit)、予測ユニット(PU:Prection Unit)などを含むことができる。解析器(520)は、変換係数、量子化器パラメータ値、MVなどのような情報をコーディングされたビデオシーケンスから抽出することもできる。
解析器(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/解析動作を実行することができる。
シンボル(521)の再構築は、コーディングされたビデオ画像またはその一部(例えば、フレーム間画像およびフレーム内画像、フレーム間ブロックおよびフレーム内ブロック)のタイプおよび他の要因に応じて、複数の異なるユニットに関連することができる。どのようなユニットに関連するか、およびどのように関連するかは、解析器(520)によって、コーディングされたビオシーケンスから解析されたサブグループ制御情報によって制御されることができる。解析器(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明瞭にするために示されていない。
既に言及された機能ブロックに加えて、ビデオデコーダ(510)は、以下に説明するように、いくつかの機能ユニットに概念的に細分されることができる。商業的制約で動作する実際の実施形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合されることができる。しかしながら、開示された主題を説明する目的のために、以下の機能ユニットへの概念的な細分は適切である。
第1ユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数と、どのような変換を使用するかということ、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報とを、解析器(520)からシンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力できるサンプル値を含むブロックを出力することができる。
いくつかの場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、フレーム内コーディングブロックに属することができ、即ち、以前に再構築された画像からの予測情報を使用していないが、現在画像の以前に再構築された部分からの予測情報を使用することができるブロックである。このような予測情報は、フレーム内画像予測ユニット(552)によって提供されてもよい。いくつかの場合では、フレーム内画像予測ユニット(552)は、現在画像バッファ(558)から抽出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在画像バッファ(558)は、例えば、部分的に再構築された現在画像および/または完全に再構築された現在画像をバッファリングする。アグリゲータ(555)は、いくつかの場合では、サンプルごとに基づいて、フレーム内予測ユニット(552)によって生成された予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、フレーム間コーディングされたブロックおよび潜在的に動き補償されたブロックに属することができる。このような場合、動き補償予測ユニット(553)は、参照画像メモリ(557)にアクセスして、予測に用いられるサンプルを抽出することができる。抽出されたサンプルが、ブロックに関連するシンボル(521)に基づいて動き補償された後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されることができる。動き補償予測ユニット(553)が予測サンプルを抽出するときの参照画像メモリ(557)内のアドレスは、例えば、X、Y、および参照画像成分を有することができるシンボル(521)の形で、動き補償予測ユニット(553)に利用可能なMVによって制御されることができる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに、参照画像メモリ(557)から抽出されたサンプル値の補間、MV予測メカニズムなどを含むこともできる。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術によって採用されてもよい。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれ、解析器(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるパラメータによって制御されるインループフィルタ技術を含むことができ、また、コーディングされた画像またはコーディングされたビデオシーケンスの前の部分(復号順序で)を復号する期間で得られたメタ情報に応答し、および、以前に再構築されてループフィルタリングされたサンプル値に応答することもできる。
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力することができ、および、将来のフレーム間画像予測で使用するために参照画像メモリ(557)に記憶することができるサンプルストリームとすることができる。
特定のコーディングされた画像は、完全に再構築されると、将来の予測のための参照画像として使用することができる。例えば、現在画像に対応するコーディングされた画像が完全に再構築され、コーディングされた画像が(例えば、解析器(520)によって)参照画像として識別されると、現在画像バッファ(558)は、参照画像メモリ(557)の一部になることができ、そして、後続のコーディングされた画像の再構築を開示する前に、新しい現在画像バッファを再割り当てることができる。
ビデオデコーダ(510)は、例えばITU-T Rec.H.265.などのような規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格の文書としてのプロファイルとの両方に従うという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に従うことができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、そのプロファイルで使用できる唯一のツールとしていくつかのツールを選択することができる。コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格の階層によって定義された範囲内にあるということもコンプライアンスに必要である。いくつかの場合では、階層は、最大画像サイズ、最大フレームレート、(例えば、毎秒メガ(mega)個のサンプルを単位として測定された)最大再構築サンプルレート、最大参照画像サイズなどを制限する。階層によって設定された制限は、いくつかの場合では、仮想参照デコーダ(HRD:Hypthetical Reference Decoder)仕様と、コーディングされたビデオシーケンスにおいてシグナルで通知されるHRDバッファ管理のメタデータとによって、さらに制限されることができる。
一実施形態では、受信機(531)は、符号化されたビデオとともに付加(冗長)的なデータを受信することができる。付加的なデータは、コーディングされたビデオシーケンスの一部として含まれることができる。付加的なデータは、データを適切に復号し、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ(510)によって使用されることができる。付加的なデータは、例えば、時間的、空間的、または信号雑音比(SNR:signal noise ratio)拡張層、冗長スライス、冗長画像、前方誤り訂正符号などのような形式にすることができる。
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例におけるビデオエンコーダ(403)の代わりに使用することができる。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされたビデオ画像を捕捉するビデオソース(601)(図6の例における電子デバイス(620)の一部ではない)から、ビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされたソースビデオシーケンスをデジタルビデオサンプルストリームの形式で提供することができ、前記デジタルビデオサンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット…)、任意の色空間(例えば、BT.601 Y CrCB、RGB…)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)を有することができる。メディアサービスシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってもよい。ビデオデータは、順番に見られるときに動きを与える複数の個別の画像として提供されることができる。画像自体は、空間画素アレイとして構成されてもよく、ここで、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスの画像を、コーディングされたビデオシーケンス(643)にコーディングし圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下で説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。該結合は、明瞭にするために図示されていない。コントローラ(650)によって設定されたパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のλ(ラムダ)値…)、画像サイズ、画像のグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に対して最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成されることができる。
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡単化された説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされる入力画像と、参照画像とに基づいて、シンボルストリームなどのようなシンボルを作成することを担当する)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダがサンプルデータを作成すると同様の方法でシンボルを再構築してサンプルデータを作成する(開示された主題で考慮されているビデオ圧縮技術では、シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が無損失であるからである)。再構築されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(634)に入力される。シンボルストリームの復号により、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照画像メモリ(634)のコンテンツは、ローカルエンコーダとリモートエンコーダの間でもビットで正確に対応する。言い換えれば、エンコーダの予測部分が「見た」参照画像サンプルは、デコーダが復号期間に予測を使用する際に「見た」サンプル値と全く同じである。この参照画像の同期性の基本原理(および、例えばチャネル誤差の原因で同期性が維持されない場合に生じるドリフト)は、いくつかの関連技術でも使用されている。
「ローカル」デコーダ(633)の動作は、既に図4に関連して以上で詳細に説明された、ビデオデコーダ(510)などのような「リモート」デコーダの動作と同じであってもよい。しかし、図5をさらに簡単に参照すると、シンボルが利用可能であり、かつ、エントロピーコーダ(645)および解析器(520)によってコーディングされたビデオシーケンスへのシンボルの符号化/復号が無損失であることができるため、バッファメモリ(515)と解析器(520)を含むビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)で完全に実行できない可能性がある。
この時点で、デコーダに存在する解析/エントロピー復号以外のいかなるデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要がある、ということが観察されている。このため、開示された主題は、デコーダ動作に焦点を合わせる。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略されることができる。特定の領域だけで、より詳細な説明が必要であり、以下で提供される。
動作期間中に、いくつかの実施形態では、ソースコーダ(630)は、動き補償予測コーディングを実行することができ、前記動き補償予測コーディングは、ビデオシーケンスから「参照画像」として指定された1つ以上の以前にコーディングされた画像を参照して、入力画像を予測的にコーディングする。このようにして、コーディングエンジン(632)は、入力画像の画素ブロックと、入力画像に対する予測参照として選択されることができる参照画像の画素ブロックとの間の差分をコーディングする。
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照画像として指定されることができる画像のコーディングされたビデオデータを復号することができる。コーディングエンジン(632)の動作は、有利には損失性プロセスであってもよい。コーディングされたビデオデータがビデオデコーダ(図6に示されない)で復号された場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、参照画像に対してビデオデコーダによって実行されることができる復号プロセスをコピーして、再構築された参照画像を参照画像キャッシュ(634)に記憶することができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって得られる(伝送誤差が存在しない)再構築された参照画像と共通のコンテンツを有する再構築された参照画像のコピーを、ローカルに記憶することができる。
予測器(635)は、コーディングエンジン(632)に対して予測検索を実行することができる。すなわち、コーディングされる新しい画像について、予測器(635)は、新しい画像の適切な予測参照として機能するサンプルデータ(候補参照画素ブロックとして)または特定のメタデータ、例えば参照画像動きベクトル、ブロック形状などについて、参照画像メモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合では、予測器(635)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(634)に記憶された複数の参照画像から引き出された予測参照を有することができる。
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
上述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピーコーディングされることができる。エントロピーコーダ(645)は、例えばハフマンコーディング、可変長コーディング、算術コーディングなどのような技術に従って、シンボルを無損失で圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
送信機(640)は、コードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであることができる通信チャネル(660)を介した送信に備えるために、エントロピーコーダ(645)によって生成成された、コーディングされたビデオシーケンスをバッファリングすることができる。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディングする期間、コントローラ(650)は、各コーディングされた画像に、特定のコーディングされた画像タイプを割り当てることができ、これは、それぞれの画像に適用できるコーディング技術に影響を与える可能性がある。例えば、画像は、以下の画像タイプのいずれかとして割り当てられることが多いし、即ち、
フレーム内画像(I画像)は、シーケンス内の任意の他の画像を予測のソースとして使用せずに、符号化および復号されることができるものであってもよい。いくつかのビデオコーデックは、独立したデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)画像などの異なるタイプのフレーム内画像を許容する。当業者は、I画像の変種とそれらのアプリケーションおよび機能とを理解している。
予測画像(P画像)は、多くとも1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して符号化および復号され得るものであってもよい。
双方向予測画像(B画像)は、多くとも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して符号化および復号され得るものであってもよい。同様に、複数の予測画像は、単一のブロックの再構築に、2つ以上の参照画像および関連付けられたメタデータを使用することができる。
ソース画像は、一般的に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16個のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされることができる。これらのブロックは、ブロックのそれぞれの画像に適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされることができる。例えば、I画像のブロックは、非予測的にコーディングされてもよく、またはそれらが同じ画像の既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはフレーム内予測)。P画像の画素ブロックは、1つ前に符コーディングされた参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的にコーディングされてもよい。B画像のブロックは、1つまたは2つ前にコーディングされた参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的にコーディングされてもよい。
ビデオエンコーダ(603)は、例えばITU-T H.265などのような所定のビデオコーディング技術または規格に従って、コーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的と空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コーディングされたビデオデータは、使用されるビデオコーディング技術または規格によって指定された構文に従うことができる。
一実施形態では、送信機(640)は、符号化されたビデオとともに、付加的なデータを送信することができる。ソースコーダ(630)は、そのようなデータを、コーディングされたビデオシーケンスの一部として含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長画像やスライスなどのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含むことができる。
ビデオは、時系列で複数のソース画像(ビデオ画像)として捕捉されることができる。フレーム内画像予測(フレーム内予測と略称されることが多い)は、与えられた画像における空間的相関を利用し、フレーム間画像予測は、画像間の(時間的または他の)相関を利用する。一例では、現在画像と呼ばれる、符号化/復号中の特定の画像がブロックにパーティショニングされる。現在画像のブロックが、ビデオにおける以前にコーディングされ、まだバッファリングされている参照画像における参照ブロックに類似している場合、現在画像のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることができる。動きベクトルは、参照画像における参照ブロックを指し、複数の参照画像が使用されている場合、参照画像を識別する3番目の次元を有することができる。
いくつかの実施形態では、双方向予測技術は、フレーム間画像予測に使用されることができる。双方向予測技術によれば、例えば、復号の順で両方とも、ビデオにおける現在画像の前にある(ただし、表示の順でそれぞれ、過去と将来にあるかもしれない)第1参照画像および第2参照画像などのような2つの参照画像が使用される。現在画像におけるブロックは、第1参照画像における第1参照ブロックを指す第1の動きベクトルと、第2参照画像における第2参照ブロックを指す第2の動きベクトルによってコーディングされることができる。ブロックは、第1参照ブロックおよび第2参照ブロックの組み合わせによって予測されることができる。
さらに、コーディング効率を向上させるために、マージモード技術は、フレーム間画像予測で使用されることができる。
本開示のいくつかの実施形態によれば、フレーム間画像予測やフレーム内画像予測などのような予測は、ブロックの単位で実行される。例えば、HEVC規格に従って、ビデオ画像のシーケンスにおける画像は、圧縮のためにコーディングツリーユニット(CTU:coding tree unit)にパーティショニングされ、画像におけるCTUは同じサイズ、例えば64×64画素、32×32画素、または16×16画素を有する。一般的に、CTUは、1つの輝度CTBと2つの色度CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、再帰的にクワッドツリーで1つ以上のコーディングユニット(CU)に分割されてもよい。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16つの16×16画素のCUに分割されることができる。一例では、各CUは、フレーム間予測タイプまたはフレーム内予測タイプなどのようなCUに対する予測タイプを決定するために分析される。CUは、時間的および/または空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。通常、各PUは、輝度予測ブロック(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)および(703)と、ビデオデコーダ(410)、(510)および(810)とは、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装されることができる。
超解像度ベースのコーディングに関連するビデオコーディング技術、例えば超解像度ベースのコーディングの適応方法が開示される。ビデオコーディングフォーマットは、任意の適切なビデオコーディングフォーマット、例えば、オープンメディア同盟(AOMedia:Alliance for Open Media)ビデオ1(AV1)またはAV1を超える次世代のAOMediaビデオフォーマットなどのような、インターネット上でのビデオ伝送のために設計されたオープンビデオコーディングフォーマットを含むことができる。ビデオコーディング規格は、高効率ビデオコーディング(HEVC)規格、HEVCを超える次世代ビデオコーディング(例えば、汎用ビデオコーディング(VVC))などを含むことができる。
一般に、画像またはフレームはブロックにパーティショニングされ、ブロックは、パーティショニング、予測、変換などの様々な処理のためのユニットであり得る。様々なブロックパーティション技術は使用され得る。
図9は、AOMediaによるビデオコーディングフォーマットVP9において使用されるパーティション技術の例を示す。例えば、画像(910)は、64×64(例えば、64サンプル×64サンプル)のサイズの複数のブロック(920)にパーティショニングされる。さらに、4ウェイパーティションツリーは、64×64レベルから始まり、より小さなブロックまで続くことができ、最低レベルは、4×4レベル(例えば、4サンプル×4サンプルのブロックサイズ)にすることができる。いくつかの例では、ブロック8×8およびその以下に対して追加の制限が適用され得る。図9の例では、64×64ブロック(920)は、第1ウェイ(921)、第2ウェイ(922)、第3ウェイ(923)および第4方向(924)のうちの1つを使用して、より小さなブロックにパーティショニングされ得る。Rとして指定されたパーティション(第4ウェイ(924)において示されている)は、再帰パーティションと呼ばれ、ここで、同じパーティションツリーは、最低の4×4レベルに達するまで、より低いスケールで繰り返され得る。
図10は、インターネット上でのビデオ伝送のために設計されたAV1で使用されるパーティション技術の例を示す。AV1は、VP9の後継として開発された。例えば、画像(1010)は、128×128(例えば、128サンプル × 128サンプル)のサイズの複数のブロック(1020)にパーティショニングされる。さらに、10ウェイパーティション構造は、128×128から始まり、より小さなブロックまで続くことができる。図10の例では、128×128ブロックは、10ウェイ(1021)~(1030)のうちの1つを使用して、より小さなブロックにパーティショニングされ得る。AV1は、パーティションツリーを10ウェイ構造に拡張するだけでなく、最大サイズ(VP9/AV1ではスーパーブロックと呼ばれる)を128×128から開始するように増加させる。Rとして指定されたパーティション(ウェイ(1029)において示されている)は、再帰パーティションと呼ばれ、ここで、同じパーティションツリーは、より低いスケールで繰り返され得る。10ウェイ構造は、(1021)および(1028)によって示されているような、4:1および1:4の長方形のパーティションを含むことができる。1つの例では、これらの長方形のパーティションはどれも、さらに細分化され得ない。さらに、AV1は、8×8レベル以下のパーティションを使用するために、柔軟性を向追加する。例えば、特定のケースでは、2×2色度フレーム間予測が可能である。
いくつかの例では、ブロックパーティショニング構造は、コーディングツリーと呼ばれる。一例(例えば、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:residual quad tree)と呼ばれるクワッドツリー構造を使用して、より小さなTUにさらに再帰的に分割され得る。
画像境界では、いくつかの例(例えば、HEVC)において、暗黙的なクワッドツリー分割が採用され、これにより、ブロックでは、そのサイズが画像境界に適合するまで、クワッドツリー分割が保持される。
いくつかの例(例えば、VVC)では、ブロックパーティショニング構造では、クワッドツリープラスバイナリツリー(QTBT:quad tree plus binary tree)ブロックパーティショニング構造が使用され得る。QTBT構造では、複数のパーティションタイプの概念(CU、PUおよびTU概念)が除去され、また、CUパーティション形状のための更な柔軟性がサポートされ得る。QTBTブロックパーティショニング構造では、CUは、正方形または長方形のいずれかの形状を有することができる。
図11Aは、図11Bに示されているQTBTブロックパーティショニング構造(1120)を使用してパーティショニングされたCTU(1110)を示す。CTU(1110)は、まず、クワッドツリー構造によってパーティショニングされる。クワッドツリーのリーフノードは、バイナリツリー構造またはクワッドツリー構造によってさらにパーティショニングされる。バイナリツリー分割では、対称水平分割(例えば、QTBTブロックパーティショニング構造(1120)において「0」としてラベル付けられる)と対称垂直分割(例えば、QTBTブロックパーティショニング構造(1120)において「1」としてラベル付けられる)という2つの分割タイプがあり得る。さらに分割されていないリーフノードはCUと呼ばれ、さらなるパーティショニングを必要とせずに予測プロセスおよび変換プロセスに使用され得る。したがって、QTBTブロックパーティショニング構造において、CU、PUおよびTUは、同じブロックサイズを有する。
いくつかの例(例えば、JEM)では、CUは、異なる色成分のコーディングブロックを含むことができる。例えば、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サイズは、色度サンプルの2つの対応する64×64ブロックを有する128×128輝度サンプルとして設定され、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輝度サンプルである。
図11Aおよび11Bでは、実線は、クワッドツリー分割を示し、点線は、バイナリツリー分割を示す。バイナリツリーの各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために、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:multi-type tree)ブロックパーティショニング構造が使用される。いくつかの例では、MTTブロックパーティショニング構造は、QTBTブロックパーティショニング構造よりも柔軟なツリー構造である。MTTでは、クワッドツリーパーティショニングおよびバイナリツリーパーティショニングに加えて、ターナリツリー(TT:ternary tree)パーティショニングが使用され得る。TTは、水平中央側トリプルツリーパーティショニングおよび垂直中央側トリプルツリーパーティショニングを含むことができる。
図12Aは、垂直中央側トリプルツリーパーティショニングの例を示し、図12Bは、水平中央側トリプルツリーパーティショニングの例を示す。TTパーティショニングは、クワッドツリーパーティショニングおよびバイナリツリーパーティショニングを補完することができる。例えば、トリプルツリーパーティショニングは、ブロックの中央に位置するオブジェクトをキャプチャすることができ、一方、クワッドツリーとバイナリツリーは、ブロックの中央を横切って分割する。一例では、トリプルツリーによるパーティションの幅と高さは、2のべき乗であるため、追加の変換パーティションは必要がない。
2レベルツリーなどのブロックパーティショニング設計は、主に複雑さを低減するために動機づけられるものである。ツリーのトラバースの複雑さは、TDとすることができ、ここで、Tは、分割タイプの数を示し、Dは、ツリーの深さである。
本開示では、用語「解像度」および「空間解像度」は、交換可能に使用され得る。
超解像度コーディングモードは、ビデオコーディングフォーマット、例えばAV1において使用され得る。図13は、本開示の一実施形態による、フレームレベル(または画像レベル)の超解像度コーディングモードを含む例示的なループフィルタリングパイプライン(1300)を示す。
フレームレベル(または画像レベル)の超解像度コーディングモードは、ダウンサンプリングされた画像に符号化されるソース画像をダウンサンプリング(ダウンスケーリングとも呼ばれる)することと、低空間解像度(低減された空間解像度またはダウンサンプリングされた空間解像度とも呼ばれる)で、ダウンサンプリングされた画像をエンコーダ側で符号化することとを含むことができる。ソース画像は、低空間解像度よりも高い完全空間解像度(高空間解像度または原空間解像度とも呼ばれる)を有する。低空間解像度を有する、符号化されたダウンサンプリングされた画像は、デコーダに送信され、またデコーダ側では低空間解像度で復号され得る。続いて、復号されたダウンサンプリングされた画像は、高空間解像度を有する復号された画像にアップサンプリング(またはスケールアップ)され得る。
図13を参照すると、エンコーダ側で、ソースフレーム(ソース画像とも呼ばれる)は、高空間解像度(例えば、4K×2K)に対応するソース画像サイズ(例えば、4K×2Kまたは4000サンプル×2000サンプル)を有する。ソースフレームは、最初に、非規範的な方式でダウンスケーラ(ダウンサンプラとも呼ばれる)(1311)によってダウンスケーリング(またはダウンサンプリング)され、したがって、低空間解像度(例えば、2k×2k)で符号化され得る。ダウンサンプリングされた後、ダウンサンプリングされた画像は、低空間解像度に対応するダウンスケーリングされた画像サイズ、例えば2K×2Kまたは2000サンプル×2000サンプルなどを有する。ダウンサンプリングされた画像は、フレーム内予測またはフレーム間予測、変換、量子化、エントロピー符号化などを含むことができる符号化ツール(1312)を使用して符号化される。符号化されたダウンサンプリングされた画像は、例えばデブロッキングフィルタおよび制約付き方向エンハンスメントフィルタ(CDEF:Constrained Directional Enhancement Filter)などの、1つまたは複数のフィルタを含むフィルタツール(1313)によってフィルタリングされ得る。フィルタリングされたダウンサンプリングされた画像は、アップスケーラ(1314)によってアップスケーリング(またはアップサンプリング)されて、高空間解像度(例えば、4K×2K)を有する、アップスケーリング(またはアップサンプリング)された画像を生成することができる。アップスケーリングされた画像は、例えば別の画像を予測するために、高空間解像度(例えば、4K×2K)を有する参照画像として使用され得る。アップスケーラ(1314)は、規範的な方式での線形アップスケーラ(線形アップスケーリングフィルタとも呼ばれる)であってもよい。いくつかの例では、ループ復元ツール(1315)は、ダウンサンプリングおよび量子化の期間に失われた高周波の詳細を復元するために、アップスケーリングされた画像に高空間解像度で適用される。
超解像度コーディングモードまたはフレームベースの超解像度コーディングモードが適用された場合、低空間解像度を有する、フィルタリングされたダウンサンプリングされた画像は、ビデオビットストリームでデコーダに送信され得る。デコーダ側で、復号ツール(1322)が、デコーダによって受信された、フィルタリングされたダウンサンプリングされた画像を復号するために使用される。復号されたダウンサンプリングされた画像は、例えばデブロッキングフィルタおよびCDEFなどの、1つまたは複数のフィルタを含むフィルタツール(1323)によってさらにフィルタリングされ得る。デブロックフィルタおよびCDEFは、低解像度でエッジを保持しながら、コーディングアーティファクトを除去するために適用され得る。次に、例えば、アップスケーラ(132)は、例えば水平方向のみに沿って適用されて、高空間解像度を有する完全空間解像度再構築(例えば、アップスケーリングされた再構築された画像)を得る。アップスケーラ(1324)は、規範的な方式での線形アップスケーリングフィルタであってもよい。ループ復元ツール(またはループ復元フィルタ)(1325)は、ダウンサンプリングおよび量子化の期間に失われた高周波の詳細を復元するために、オプションで、アップスケーリングされた再構築された画像に高空間解像度で適用される。
フレームレベル超解像度コーディングモードは、水平方向および/または垂直方向に適用され得る。一例では、フレームレベル超解像度コーディングモードは、水平方向に適用され、ここでは、画像の、水平方向に沿った空間解像度が変更され、また、垂直方向に沿った空間解像度がコーディングプロセス全体で同じままであり、したがって、水平のみフレームレベル超解像度解像度モードと呼ばれる。
いくつかの例(例えば、AV1)では、超解像度コーディングモードは、フレームレベル(画像レベルとも呼ばれる)で、信号で通知された特別なモードである。各コーディングされたフレームは、比率の制約内で選択された解像度を有する水平のみ超解像度コーディングモードを使用することができる。信号で通知された情報は、フレームの復号後に線形アップサンプリングが適用されるかどうか、および使用されるスケーリング比率を示すことができる。
超解像度コーディングモードが一方向(例えば、水平方向または垂直方向)のみに適用される場合、スケーリング比率は、アップサンプリング比率または対応するダウンサンプリング比率を指すことができる。アップサンプリング比率は、d/8として与えられる、9つの可能な値を持つことができる。1例では、dは、8から16の範囲内の整数であり、したがって、dは8、9、…、または16である。符号化前の対応するダウンサンプリング比率は、アップサンプリング比率に対する1の比率(例えば8/d)であり得、したがって、1/2~1の範囲内であり得る。図13を参照すると、超解像度コーディングモードは、水平方向のみに適用され、ダウンサンプリング比率は1/2であり、d=16であることに対応して、アップサンプリング比率は2である。
出力フレーム次元W×H(高空間解像度に対応する)とアップサンプリング比率d/8とが与えられると、エンコーダおよびデコーダは、低解像度コーディングされたフレーム次元をw×Hとして計算することができ、ここで、低減された(またはダウンサンプリングされた)幅wが(8w+d/2)/dである。アップスケーラ(例えば、(1314)または(1324))によって実行される線形アップスケーリングプロセスへの入力は、低空間解像度w×Hの低減されたフレームであり、アップスケーラ(例えば、(1314)または(1324))によって実行される線形アップスケーリングプロセスからの出力は、フレームヘッド(画像ヘッドとも呼ばれる)において指定された、高空間解像度W×Hを有するフレームである。AV1における規範的な水平線形アップスケーラ(例えば、(1314)または(1324))は、各行の補間のために、1/16位相線形8タップフィルタを使用することができる。
超解像度コーディングモードが水平方向および垂直方向に適用される場合、スケーリング比率は、水平スケーリング比率および垂直スケーリング比率を含むことができる。水平スケーリング比率は、上述のように、水平アップサンプリング比率または対応する水平ダウンサンプリング比率を指す。垂直スケーリング比率は、垂直アップサンプリング比率または対応する垂直ダウンサンプリング比率を指し、また、上記の説明は、垂直スケーリング比率に適用され得る。
残差ブロックにおける残差値(残差データとも呼ばれる)は、係数ブロックにおける変換係数に変換(または順変換)されてもよい。係数ブロックにおける変換係数は、残差ブロックにおける残差値に変換(または逆変換)され得る。例えばAV1における変換コーディングの例は、以下に説明され得る。
拡張されたコーディングブロックパーティションをサポートするために、複数の変換サイズ(各次元について4サポートから64サポートまでの範囲)および変換形状(例えば、2:1、1:2、4:1、または1:4の幅/高さ比率を有する正方形形状、長方形形状)は、例えばAV1におけるプライマリー変換のために使用され得る。2D変換プロセスは、ハイブリッド変換カーネル(例えば、コーディングされた残差ブロックの各次元のための異なる1D変換を含む)を使用することができる。プライマリー1D変換は、a)4ポイント、8ポイント、16ポイント、32ポイント、64ポイントDCT-2;b)4ポイント、8ポイント、16ポイントの非対称DST(例えば、DST-4、例えば、DST-7)および対応するフリップされたバージョン;およびc)4ポイント、8ポイント、16ポイント、32ポイントの恒等変換(identity transform)を含むことができる。
ハイブリッド変換カーネルの利用可能性は、変換ブロックサイズおよび予測モードに基づくことができる。色度成分については、変換タイプの選択は、暗黙的な方法で実行され得る。フレーム内予測残差については、変換タイプは、フレーム内予測モードに従って選択され得る。フレーム間予測残差については、変換タイプは、同じ位置に配置された輝度ブロックの変換タイプ選択に従って選択され得る。したがって、色度成分については、ビットストリーム中に変換タイプシグナリングは存在していない。
残差コーディングは、変換係数のコーディングを指すことができる。いくつかの例では、例えばAV1では、各変換ユニット(TU:transform unit)について、係数コーダは、スキップ記号のコーディングから開始し、その後、変換コーディングがスキップされない場合、変換カーネルタイプのコーディングと、すべての非ゼロ係数のブロック終了(EOB:end-of-block)位置のコーディングが続く。スキップ記号は、変換コーディングがスキップされるかどうかを示すことができる。次に、各係数値は、複数のレベルマップ(例えば、3つのレベルプレーン)および記号マップ(または記号プレーン)にマッピングされ得る。記号プレーンは、係数の記号をカバーすることができ、3つのレベルプレーンは、低レベルプレーン、中レベルプレーン、および高レベルプレーンを含む、係数マグニチュード(magnitudes)の異なる範囲に対応することができる。低レベルプレーンは、0~2の範囲に対応することができ、中レベルプレーンは、3~14の範囲に対応することができ、高レベルプレーンは、15以上の範囲をカバーすることができる。
EOB位置がコーディングされた後、低レベルプレーンおよび中レベルプレーンは、逆スキャン順序で一緒にコーディングされ得る。低レベルプレーンは、係数マグニチュードが0と2の間であるかどうかを示し、中レベルプレーンは、この範囲が3と14の間であるかどうかを示すことができる。その後、記号プレーンおよび高レベルプレーンは、順スキャン順序で一緒にコーディングされ得て、高レベルプレーンは、14より大きいマグニチュードを有する残差値を示すことができ、残りは、Exp-Golombコードを使用してエントロピーコーディングされる。従来のジグザグスキャン順序は、例えばAV1などで使用され得る。
このような分離(例えば、3つのレベルプレーンと1つの記号プレーンにマッピングされた係数値)は、リッチなコンテキストモデルを低レベルプレーンに割り当てることを許可し、これは、双方向、水平方向および垂直方向などの変換方向、変換サイズ、および最大5つの隣接係数を考慮することで、適度なコンテキストモデルサイズで圧縮効率を向上させる。中レベルプレーンは、コンテキスト隣接係数の数が5から2に減少された低レベルプレーンと同様のコンテキストモデルを使用することができる。高レベルプレーンは、コンテキストモデルを使用せずに、Exp-Golombコードでコーディングされ得る。記号プレーンにおいて、DC記号は、TUの隣接変換ユニットのDC記号をコンテキスト情報として使用してコーディングされ、他の記号ビットは、コンテキストモデルを使用せずに直接コーディングされる。
いくつかの例(例えば、AV1)では、超解像度コーディングモードは、フレームレベルで実行され、したがって、画像におけるすべての領域に固定のスケーリング比率で適用される。画像内の異なる領域における信号統計量は、大きく変化する可能性があり、したがって、いくつかの例では、すべての領域にダウンサンプリングおよび/またはアップサンプリングを適用することは、良好なレート歪みトレードオフではない可能性がある。
いくつかの例(例えば、AV1)では、最大CUサイズは、128×128(例えば、128サンプルx128サンプル)であるが、最大変換サイズは、わずか64×64(例えば、64サンプルx64サンプル)である。大きなCUの使用から利益を得るために、それに応じて大きな変換カーネル(例えば、128×128)を使用することができる。あるいは、大きな変換カーネルによって行われるのと同様にエネルギー圧縮を達成できる他の方法を使用することができる。
本開示の様々な態様によれば、超解像度コーディングモードが適用されるかどうかは、サブ画像レベル(または、サブフレームレベル)でフレーム(または、画像)の部分に対して適応的に決定され得る。当該部分は、フレーム内の、ブロックのサブセットまたは単一ブロックを含むことができる。一実施形態では、フレームの当該部分は、ブロックであり、超解像度コーディングモードが適用されるかどうかは、このブロックに対して適応的に決定され得る。このブロックは、コーディングブロック(CB)、コーディングユニット(CU)、予測ブロック(PB)、変換ブロック(TB)などを指すことができる。このブロックは、マルチチャンネル信号の輝度成分、色度成分、または他の任意の成分(例えば、RGB信号の1つ)に対応することができる。一例では、このブロックは、輝度ブロックまたは色度ブロックである。このブロックは、フレーム内コーディングされてもよく、フレーム間コーディングされてもよい。超解像度コーディングモードがこのブロックに適用されることが決定された場合、超解像度コーディングモードは、このブロックに適用され、ブロックレベルの超解像度コーディングモードと呼ばれる。ブロックレベルの超解像度コーディングモードでは、超解像度コーディングモードが画像におけるブロックに適用されるかどうかは、ブロックごとに個別に決定され得る。いくつかの例では、画像におけるブロックの第1サブセットが、超解像度コーディングモードを使用してコーディングされ、画像におけるブロックの第2サブセットが、超解像度コーディングモードを使用せずにコーディングされる。超解像度コーディングモードを使用してコーディングされた、画像におけるブロックの第1サブセットは、同じスケーリング比率または異なるスケーリング比率を有することができる。一例では、超解像度コーディングモードが適用されるかどうかは、画像における各ブロックに対して適応的に決定され得る。
本開示において、用語「ソースブロック」は、エンコーダによって符号化されるブロックを指すことができ、また、エンコーダへの入力信号とすることができる。用語「再構築されたブロック」は、デコーダによって再構築されたブロックを指すことができ、また、デコーダからの出力信号とすることができる。再構築されたブロックは、ソースブロックに対応することができ、再構築されたブロックおよびソースブロックは、高空間解像度または完全空間解像度を有することができる。
超解像度コーディングモードが高空間解像度を有するブロック(例えば、ソースブロック)に適用されることが決定された場合は、ダウンサンプリングプロセスは、エンコーダによってブロックレベルで実行され得る。順変換や逆変換などの変換は、低空間解像度で実行され得る。アップサンプリングは、デコーダによってブロックレベルで実行され得る。
図14は、本開示の一実施形態による、超解像度コーディングモードを使用してブロックをコーディングするプロセスを示す。エンコーダ側で、ソース信号および参照信号(予測信号とも呼ばれる)のダウンサンプリングされたバージョンを使用して、低減された解像度の残差信号(または、ダウンサンプリングされた残差信号)を生成することができる。そして、低減された解像度の残差信号は、変換されてコーディングされ得る。
デコーダ側で画像を復号する場合、まず、ダウンサンプリングされた予測信号が生成され、復号された、低減された解像度の残差信号が加算されて、ダウンサンプリングされた再構築されたブロックが生成され得る。最後に、低減された解像度の再構築されたブロックは、元の解像度を有する再構築されたブロックにアップサンプリングされ得る。
より具体的には、図14を参照すると、エンコーダ側で、ソースブロック(1401)などのソース信号がダウンサンプラ(1402)によってダウンサンプリングされ、したがって、ダウンサンプリングされた信号(例えば、ダウンサンプリングされたソースブロック(1403))が生成される。参照ブロック(1405)などの参照信号がダウンサンプラ(1406)によってダウンサンプリングされ、したがって、ダウンサンプリングされた信号(例えばダウンサンプリングされた参照ブロック(1407))が生成される。続いて、ダウンサンプリングされた残差ブロック(1404)が残差計算器(1418)を使用して生成される。残差計算器(1418)は、ダウンサンプリングされたソースブロック(1403)と、ダウンサンプリングされた参照ブロック(1407)との間の差(残差データまたは残差値)を計算するように構成され得る。この差は、ダウンサンプリングされた残差ブロック(1404)と呼ばれる。このダウンサンプリングされた残差ブロック(1404)は、ツール(1408)によって、変換、量子化およびエントロピー符号化されて、ダウンサンプリングされた係数ブロック(1409)を生成することができる。このダウンサンプリングされた係数ブロック(1409)は、空間周波数ドメインにおける変換係数を含むことができる。このダウンサンプリングされた係数ブロック(1409)は、エンコーダからデコーダに送信され得る。
再び図14を参照すると、デコーダ側で、ダウンサンプリングされた係数ブロック(1409)は、デコーダによって受信される。いくつかの例では、受信されたダウンサンプリングされた係数ブロックは、伝送損失、歪みなどによって、ダウンサンプリングされた係数ブロック(1409)とは異なる。簡潔にするために、ダウンサンプリングされた係数ブロック(1409)は、デコーダでは、ツール(1410)への入力信号として使用される。エントロピー復号、逆量子化および逆変換(Inv-Transform)は、ダウンサンプリングされた係数ブロック(1409)に対して実行されて、ダウンサンプリングされた残差ブロック(1411)が生成され得る。参照ブロック(1412)は、ダウンサンプラ(1413)によってダウンサンプリングされて、ダウンサンプリングされた参照ブロック(1414)が生成され得る。続いて、アグリゲータ(1419)は、ダウンサンプリングされた残差ブロック(1411)およびダウンサンプリングされた参照ブロック(1414)に基づいて、ダウンサンプリングされた再構築されたブロック(1415)を生成することができる。一例では、ダウンサンプリングされた残差ブロック(1411)およびダウンサンプリングされた参照ブロック(1414)は加算されて、ダウンサンプリングされた再構築されたブロック(1415)が生成される。最後に、ダウンサンプリングされた再構築されたブロック(1415)は、アップサンプラ(1416)によってアップサンプリングされて、再構築されたブロック(1417)が生成され得る。ダウンサンプリングされた再構築されたブロック(1415)および再構築されたブロック(1417)は、空間ドメインにおけるサンプル値、例えば輝度サンプル値、色度サンプル値、RGB信号のサンプル値などを含むことができる。
図14を参照すると、ソースブロック(1401)、対応する再構築されたブロック(1417)、参照ブロック(1405)および(1412)は、高空間解像度を有する。図14における残りのブロックは、低空間解像度を有し、したがって、エンコーダ側での符号化プロセスと復号側での復号プロセスの両方では、処理するサンプルの数の削減により、高いコーディング効率が得られる。
いくつかの例では、図14に示される符号化プロセスおよび復号プロセスは、ダウンサンプラ(1402)、(1406)、(1413)およびアップサンプラ(1416)によって実行されるプロセスを除いて、超解像度コーディングモードを使用しないものと類似であるか、または同様である。一例では、ダウンサンプラ(1406)は、ダウンサンプラ(1413)と同じであり、参照ブロック(1405)は、参照ブロック(1412)と同じであり、したがって、ダウンサンプリングされた参照ブロック(1407)は、ダウンサンプリングされた参照ブロック(1414)と同じである。ダウンサンプラ(1402)は、ダウンサンプラ(1406)と同じであっても異なっていてもよい。
一実施形態では、解像度が低減された再構築の前に参照ブロックをダウンサンプリングするために、ダウンサンプラ(1413)で使用されるダウンサンプリングフィルタ係数のセットは、信号で直接に通知され得て、または、ダウンサンプリングフィルタ係数のセットを示すインデックスは、信号で通知され得る。このインデックスは、予め定義された係数の第1セットからのダウンサンプリングされたフィルタ係数のセットを示すことができる。恒等フィルタ(identity-filter)(例えば、フィルタリングなし)は、予め定義された係数の第1セットに含まれ得る。
ブロックベースの超解像度コーディングモードは、適切に適応され得る。本開示の態様によれば、エンコーダ側で、元の空間解像度の参照信号を元の空間解像度のソース信号から減算して、元の空間解像度の差信号(または残差信号)を生成することができる。この差信号をダウンサンプリングして、低減された解像度の残差信号を生成することができる。デコーダ側でブロックを復号する際に、低減された解像度の残差信号をアップサンプリングし、元の解像度の参照信号に加算して、再構築されたブロックを生成することができる。図15Aは、本開示の実施形態による、ブロックベースの超解像度コーディングモードの代替実施形態を使用してブロックをコーディングするプロセスを示す。
図15Aを参照すると、エンコーダ側で、残差ブロック(1504)は、ソースブロック(1501)などのソース信号と参照ブロック(1502)などの参照信号とに基づいて、残差演算器(1503)を使用して生成され得る。残差計算器(1503)は、ソースブロック(1501)と参照ブロック(1502)との間の差(残差データまたは残差値)を計算するように構成され得る。残差ブロック(1504)は、ダウンサンプラ(1505)によってダウンサンプリングされて、ダウンサンプリングされた残差ブロック(1506)が生成され得る。続いて、ダウンサンプリングされた残差ブロック(1506)は、ツール(1507)によって変換、量子化およびエントロピー符号化されて、ダウンサンプリングされた係数ブロック(1508)が生成され得る。ダウンサンプリングされた係数ブロック(1508)は、エンコーダからデコーダに送信され得る。
再び図15Aを参照すると、デコーダ側で、ダウンサンプリングされた係数ブロック(1508)は、デコーダによって受信される。いくつかの例では、受信されたダウンサンプリングされた係数ブロックは、伝送損失、歪みなどによって、ダウンサンプリングされた係数ブロック(1508)とは異なる。簡潔にするために、ダウンサンプリングされた係数ブロック(1508)は、デコーダでは、ツール(1509)への入力信号として使用される。エントロピー復号、逆量子化および逆変換(Inv-Transform)は、ダウンサンプリングされた係数ブロック(1508)に対して実行されて、ダウンサンプリングされた残差ブロック(1510)が生成され得る。ダウンサンプリングされた残差ブロック(1510)は、アップサンプラ(1511)によってアップサンプリングされて、残差ブロック(1512)が生成され得る。続いて、アグリゲータ(1514)は、残差ブロック(1512)および参照ブロック(1513)に基づいて、再構築されたブロック(1515)を生成することができる。一例では、残差ブロック(1512)および参照ブロック(1513)は加算されて、再構築されたブロック(1515)を生成する。
図15Aを参照すると、ソースブロック(1501)、対応する再構築されたブロック(1515)、参照ブロック(1502)、(1513)、および残差ブロック(1504)、(1512)は、高空間解像度を有する。図15Aにおける残りのブロックは、低空間解像度を有するため、エンコーダ側での符号化プロセスと復号側での復号プロセスの両方では、処理するサンプルの数の削減により、高いコーディング効率が得られる。
いくつかの例では、図15Aに示される符号化プロセスおよび復号プロセスは、ダウンサンプラ(1505)およびアップサンプラ(1511)によって実行されるプロセスを除いて、超解像度コーディングモードを使用しないものと類似であるか、または同様である。
図14および図15Aに記載のブロックベースの超解像度コーディングモードは、適切に適応され得る。一実施形態では、ブロックレベルの超解像度コーディングモードが適用されるかどうかは、その上で変換が実行されるTBなどのブロックに対して決定される。一方、フレーム間予測やフレーム内予測などの予測プロセスは、TBとはサイズの異なる他のブロック(例えば、CB)について実行される。一例では、1つのCBは、複数の変換ブロック(TB)を含む。予測は、このCB上で実行される。ブロックレベルの超解像度コーディングモードは、このCBにおける各TBに対して個別に有効化または無効化される。例えば、1つのCBは、4つのTBを含み、ブロックレベルの超解像度コーディングモードは、4つのTBのうちの1つに対して有効化され、4つのTBのうちの残りの3つに対して無効化される。
図15Bは、本開示の一実施形態による、ブロックベースの超解像度コーディングモードを使用してブロックをコーディングするプロセスを示す。エンコーダ側で、ソースブロック(1501B)は、CB(1501B)である。図15Bに示す例では、ソースCB(1501B)は、4つのソースTBを含む。残差CB(1504B)は、ソースCB(1501B)などのソース信号と、参照CB(1502B)などの参照信号とに基づいて、残差計算器(1503)を使用して生成され得る。残差計算器(1503)は、ソースCB(1501B)と参照CB(1502B)との間の差(残差データまたは残差値)を計算するように構成され得る。
図15Bを参照すると、残差CB(1504B)は、4つのソースTBにそれぞれ対応する残差TB(例えば、TB1~TB4)を含む。ブロックレベルの超解像度コーディングモードは、各TBに対して個別に有効化または無効化される。図15Bの例では、ブロックレベルの超解像度コーディングモードは、TB1に対して有効化され、TB2~TB4に対して無効化される。したがって、TB1は、ダウンサンプラ(1505)によってダウンサンプリングされて、ダウンサンプリングされた残差TB(1506B)が生成され得る。続いて、ダウンサンプリングされた残差TB(1506B)は、ツール(1507)によって変換、量子化およびエントロピー符号化されて、ダウンサンプリングされた係数TB(1508B)が生成され得る。ダウンサンプリングされた係数TB(1508B)は、エンコーダからデコーダに送信され得る。残差CB(1504B)内の残りのTB(例えば、TB2~TB4)は、例えばツール(1507)によってさらに符号化されて、係数TB(例えば、係数TB2~TB4)が生成され、また、この係数TB2~TB4は、エンコーダからデコーダに送信され得る。
再び図15Bを参照すると、デコーダ側で、ダウンサンプリングされた係数TB(1508B)は、デコーダによって受信される。いくつかの例では、受信されたダウンサンプリングされた係数TBは、伝送損失、歪みなどによって、ダウンサンプリングされた係数TB(1508B)とは異なる。簡潔にするために、ダウンサンプリングされた係数TB(1508B)は、デコーダでは、ツール(1509)への入力信号として使用される。エントロピー復号、逆量子化および逆変換(Inv-Transform)は、ダウンサンプリングされた係数TB(1508B)に対して実行されて、ダウンサンプリングされた残差TB(1510B)が生成され得る。ダウンサンプリングされた残差TB(1510B)は、アップサンプラ(1511)によってアップサンプリングされて、残差TB1’が生成され得る。さらに、TB2~TB4に対応する、受信された係数TB(例えば、係数TB2~TB4)は、例えばツール(1509)によって復号されて、TB2~TB4に対応する残差TB(例えば、TB2’~TB4’)はそれぞれ生成され得る。
残差TB1’および残差TB(例えば、TB2’~TB4’)を組み合わせて、残差CB(1512B)を形成することができる。続いて、アグリゲータ(1514)は、残差CB(1512B)および参照CB(1513B)に基づいて、再構築されたCB(1515B)を生成することができる。一例では、残差CB(1512B)および参照CB(1513B)とは加算されて、再構築されたCB(1515B)が生成され得る。
図15Bを参照すると、ソースCB(1501B)、対応する再構築されたCB(1515B)、参照CB(1502B)、(1513B)、および残差CB(1504B)、(1512B)は、高空間解像度を有する。また、TB1~TB4、係数TB2~TB4、およびTB1’~TB4’は、高空間解像度を有する。ダウンサンプリングされた残差TB(1506B)、ダウンサンプリングされた係数TB(1508B)およびダウンサンプリングされた残差TB(1510B)は、低空間解像度を有する。
いくつかの例では、図15Bに示される符号化プロセスおよび復号プロセスは、ダウンサンプラ(1505)およびアップサンプラ(1511)によって実行されるプロセスを除いて、超解像度コーディングモードを使用しないものと類似であるか、または同様である。
本開示の態様によれば、例えば図14および図15Aを参照して説明したような、ブロックベースの超解像度コーディングモードは、M×Nである元の空間解像度を有するソースブロック(M×Nブロックとも呼ばれる)に適用され得、また、サイズが(M/DX)×(N/DY)を有するダウンサンプリングされたブロック(例えば、ダウンサンプリングされた係数ブロック(1409)または(1508))は、コーディングされ得る。パラメータDXおよびDYは、水平方向および垂直方向のそれぞれに沿ったダウンサンプリング係数を指す。一例では、パラメータDXおよびパラメータDYは、それぞれ水平アップサンプリング比率および垂直アップサンプリング比率に対応する。MおよびNの例示的な値は、256、128、64、32、16および8を含むことができるが、これらに限定されず、また、パラメータDXまたはDYは、正の整数であってもよく、2、4、8などを含むが、これらに限定されない。
一例では、例えばAV1およびH.266/VVCでは、CUサイズは、128×128とすることができ、CUと同じサイズ(例えば、128×128)の大きな変換カーネルは避けられる。代わりに、64×64変換は、128×128CUの4つの象限のそれぞれに適用される。この象限とは、128×128CU内の均等に分割された4つの領域のうちの1つである。本開示の態様によれば、ブロックレベルの超解像度コーディングモードは、図16に示されるように、128x128CUを以下のようにコーディングするために適用され得る。
図16は、本開示の一実施形態によるブロックレベルの超解像度コーディングモードの一例を示す。図16を参照すると、ソースブロック(1401)、参照ブロック(1405)、(1413)、および再構築されたブロック(1417)は、128×128のサイズを有するCU(または、CB)に対応する。したがって、元の空間解像度は128×128である。ダウンサンプラ(1402)および(1406)のダウンサンプリングファクタDXおよびDYは2である。したがって、低空間解像度は64×64である。したがって、ダウンサンプリングされたソースブロック(1403)、ダウンサンプリングされた参照ブロック(1407)、ダウンサンプリングされた残差ブロック(1404)、ダウンサンプリングされた係数ブロック(1409)、ダウンサンプリングされた残差ブロック(1411)、ダウンサンプリングされた再構築されたブロック(1415)、およびダウンサンプリングされた参照ブロック(1414)は、64×64のサイズを有する。図16の詳細な説明は、ブロック(1600)および(1610)に関連付けられたプロセスを除いて、図14の説明と類似であるか、または同様であり、したがって、図14と図16の間の(ブロック(1600)および(1610)に関連付けられた)違いは、以下に説明する。
ブロック(1600)は、サイズ128×128を有するCUに対応する残差ブロック(1600)であり、サイズ128×128を有する。具体的には、残差ブロック(1600)の4つの象限(1601)~(1604)のうちの1つは、ダウンサンプリングされた64×64バージョン(例えば、ダウンサンプリングされた残差ブロック(1404))に置き換えられ、また、残りの3つの象限(1602)~(1604)は、ゼロ化され得る。例えば、残りの3つの象限(1602)-(1604)は、変換スキップされる。したがって、1つの64×64変換のみ(4つの64×64変換とは対照的に)は128×128CUに適用され、同時に、エネルギー圧縮は、図16におけるダウンサンプリングプロセスおよびアップサンプリングプロセスによって促進される。いくつかの例(例えば、AV1)では、変換サブ分割は、CU内で許可され、残りの3つの64×64象限(1602)~(1604)には残差がないため、変換スキップは、残りの3つの64×64象限(1602)~(1604)に対して選択され得る。図16を参照すると、3つの64×64象限(1602)~(1604)は、ゼロブロックであり、ここで、残差値がゼロである。ブロックレベルの超解像度コーディングモードを使用してCUがコーディングされた場合には変換スキップが推定され得たので、変換スキップが信号で通知される必要はない。
デコーダ側では、ブロック(1610)は、ダウンサンプリングされた再構築されたブロック(1415)である象限(1611)と、3つの象限(1612)~(1614)とを含む。3つの象限(1612)~(1614)のそれぞれは、ゼロブロックであり、ここで、残差値がゼロである。続いて、象限(1611)は、アップサンプリングされて、再構築されたブロック(1417)が得られる。
あるいは、128×128のCUに対応する128×128残差ブロックのダウンサンプリングされた64×64バージョンは符号化および/または復号され得る。ダウンサンプリングされた再構築されたブロックのアップサンプリングされたバージョンは、図16における方法を使用してCUがコーディングされた場合、象限または変換スキップを含むプロセスを使用せずに、128×128のCUに対応する128×128の再構築されたブロックを埋めるためにデコーダで使用され得る。
いくつかの例では、ツール(1408)に示されるように、ダウンサンプリングされた残差ブロックに64×64変換が適用された場合、高周波数変換係数のゼロ化(例えば、AV1で規範的に指定されているように)は、多すぎる情報を廃棄することを回避するために、無効化され得る。
図15Aにおけるブロックレベルの超解像度コーディングモードは、図17に示すように同様に適応され得る。図17の詳細な説明は、ブロック(1600)および(1610)に関連付けられたプロセスを除いて、図15Aの説明と類似であるか、または同様であり、したがって、図15Aと図17の間の(ブロック(1600)および(1610)に関連付けられた)違いは、以下に説明する。さらに、ブロック(1600)および(1610)の詳細な説明は、図16の説明と類似であるか、または同様であり、簡潔にするために省略される。具体的には、残差ブロック(1600)の4つの象限(1601)~(1604)のうちの1つ(例えば、(1601))は、ダウンサンプリングされた64×64バージョン(例えば、ダウンサンプリングされた残差ブロック(1506))に置き換えられ、また、残りの3つの象限(1602)~(1604)は、図16に記載されたものと同様にゼロ化され得る。
デコーダ側では、ブロック(1610)は、ダウンサンプリングされた残差ブロック(1510)である象限(1611)と、3つの象限(1612)~(1614)とを含む残差ブロック(1610)である。3つの象限(1612)~(1614)のそれぞれは、ゼロブロックであり、ここで、残差値がゼロである。続いて、象限(1611)がアップサンプリングされて、残差ブロック(1512)が得られる。
本開示の態様によれば、アップサンプラ(例えば、低減された解像度の再構築されたブロックをアップサンプリングするための図14および図16におけるアップサンプラ(1416)、または低減された解像度の残差ブロックをアップサンプリングするための図15A、15Bおよび図17におけるアップサンプラ(1511))は、アップサンプリングフィルタ係数のセットによって示されるアップサンプリングフィルタとすることができる。アップサンプリングフィルタ係数のセットは、直接に信号で通知されてもよく、または、アップサンプリングフィルタ係数のセットを示すインデックスは、信号で通知されてもよい。このインデックスは、例えば恒等フィルタ(例えば、フィルタリングなし)を含む、予め定義された係数のセットからのアップサンプリングフィルタ係数のセットを示すことができる。
本開示の態様によれば、ブロックレベルの超解像度コーディングモード(例えば、図14、図15A、図15B、図16、図17を参照して説明したものなど)が適用されるかどうかは、CUサイズに依存され得る。CUサイズは、CU幅、CU高さ、CU面積(例えば、CU幅×CU高さなど)などの任意のサイズ情報を指すことができる。ブロックレベルの超解像度コーディングモードがどのCUサイズに適用されるかに関する決定は、信号で通知され得る。例えば、高レベルのシンタックス(例えば、サブ画像レベル、画像ヘッダ、画像パラメータセット、シーケンスパラメータセットなどの、CUレベルより上のレベル)では、ブロックレベルの超解像度コーディングモードが適用されるCUサイズは、信号で通知され得る。
本開示の態様によれば、ブロックレベルの超解像度コーディングモード(例えば、図14、図15A、図15B、図16、図17を参照して説明したものなど)は、任意の適切なレベルで、そのレベル内の1つまたは複数のブロックに対して、適応的に有効化または無効化され得る。このレベルは、複数のブロックを含むサブ画像領域、ブロック、画像、または複数の画像に対応することができる。本開示の態様によれば、ブロックレベルの超解像度コーディングモードは、CUレベルでのCUごとに、スーパーブロックレベルでのスーパーブロックごとに、PBレベルでのPBごとに、TBレベルでのTBごとに、タイルレベルでのタイルごとに、セグメントレベルでのコーディングされたセグメントごとに、フレーム(または画像)レベルでのフレーム(または画像)ごとに、シーケンスレベルでのシーケンスごとなどに、有効化または無効化され得る。ブロックレベルの超解像度コーディングモードがこのレベル内の1つまたは複数のブロックに対して有効化または無効化されるかどうかは、信号で通知され、または推測され得る。
一例では、このレベルはタイルレベルであり、タイルは複数のCBを含む。1つまたは複数のブロックは複数のCBである。ブロックレベルの超解像度コーディングモードが複数のCBに対して有効化されるかどうかは、このタイルに対して信号で通知され得る。ブロックレベルの超解像度コーディングモードが複数のCBに対して有効化されると決定された場合、図14、図15A、図16、図17に示すように、タイにおける各CBは、超解像度コーディングモードで符号化および/または復号され得る。
一例では、1つのCBは複数のTBを含み、そのレベルはTBレベルである。1つまたは複数のブロックは、TBであってもよい。ブロックレベルの超解像度コーディングモードがTBに対して有効化されるかどうかは、TBレベルでは信号で通知され得る。したがって、ブロックレベルの超解像度コーディングモードは、図15Bに示すように、CBにおける各TBに対して、個別に有効化または無効化される。
本開示の態様によれば、ブロックレベルの超解像度コーディングモード(例えば、図14、図15A、図16、図17を参照して説明したものなど)が有効化された場合、(i)ダウンサンプラおよび/またはアップサンプラのタイプ、および/または(ii)ブロックレベルの超解像度コーディングモードで使用されるスケーリング比率は、CU、タイル、またはコーディングされたセグメントなどの、画像の一部の特徴に基づいて、決定され得る。ダウンサンプラおよびアップサンプラは、それぞれダウンサンプリングフィルタおよびアップサンプリングフィルタとも呼ばれる。この特徴は、例えば、CU、タイル、またはコーディングされたセグメントの方向性または信号統計量(例えば、信号分散)などの、特徴インジケータによって示され得る。特徴インジケータは、エンコーダおよびデコーダで、信号で通知されてもよく、または導出されてもよい。一例では、異なるダウンサンプリングフィルタ、アップサンプリングフィルタ、および/またはスケーリング比率は、特徴インジケータに基づいて使用され得る。
一例では、左上のサンプル位置rを有するサイズN×N(例えば、Nサンプル×Nサンプル、ここで、Nは、正の整数である)の各CUについて、水平および垂直の1-Dラプラシア活動(Laplacian activities)(それぞれ、HNXNおよびVNXNとして示される)は、以下に示すように、(N-2)×(N-2)の内部サンプルのみを使用して、エンコーダおよびデコーダで予測サンプルを使用して計算され得る。
ここで、hor(r,i,j)およびver(r,i,j)は、次のように定義される。
ここで、I(x,y)は、サンプル位置(x,y)での画素強度値(サンプル値ともいう)を表す。
2Dラプラシア活動は、VNXNおよびHNXNを加算して合計値を取得して、その合計値を複数の活動レベルクラス(例えば、0、1、2、3、4、5)に量子化することによって計算され得る。2Dラプラシア活動を示す複数の活動レベルクラスは、エンコーダおよび/またはデコーダによって、特徴インジケータとして使用され得る。
一例では、超解像度コーディングモードに関連付けられた方向(方向性インジケータと呼ばれる)は、以下のように決定され得る。HNXN>2VNXNの場合、方向性インジケータは、第1方向性(例えば、水平方向)を示し、したがって、ダウン/アップサンプリングフィルタおよび/またはサンプリング比率は、第1方向性(例えば、HNXNが2VNXNよりも大きい)に基づいて選択され得る。VNXN>2HNXNの場合、方向性インジケータは、第2方向性(例えば、垂直方向)を示し、したがって、ダウン/アップサンプリングフィルタおよび/またはサンプリング比率は、第2方向性(例えば、VNXNが2HNXNよりも大きい)に基づいて選択され得る。さもないと、例えば、HNXNが2VNXN以下であるとともに、VNXNが2HNXN以下である場合、方向性インジケータは、第3方向性(例えば、方向性なし)を示し、したがって、ダウン/アップサンプリングフィルタおよび/またはアップサンプリング比率は、それに応じて選択され得る。一例では、方向性インジケータが第3方向性を示している場合、アップサンプリング/ダウンサンプリングは、水平方向および垂直方向の両方に実行される。上記した方向性は、エンコーダおよび/またはデコーダによって、特徴インジケータとして使用され得る。
図18は、本開示の一実施形態に係る処理(1800)を概説するフローチャートを示す。処理(1800)は、CB、CU、PB、TB、TU、輝度ブロック(例えば、輝度CBまたは輝度TB)、色度ブロック(例えば、色度CBまたは色度TB)などのブロックの再構築において使用され得る。様々な実施形態では、処理(1800)は、端末デバイス(310)、(330)、(340)における処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、処理(1800)はソフトウェア命令で実現され、したがって、処理回路がソフトウェア命令を実行するときに、処理回路は、処理(1800)を実行する。この処理は、(S1801)から開始し、(S1810)に進む。
(S1810)において、コーディングされたビデオビットストリームから、1つまたは複数のブロックのためのコーディングされた情報を復号することができる。コーディングされた情報は、超解像度コーディングモード(またはブロックベース超解像度コーディングモード)が1つまたは複数のブロックに適用されるかどうかを示すことができる。いくつかの例では、超解像度コーディングモードは、1つまたは複数のブロックがエンコーダによって高空間解像度から低空間解像度にダウンサンプリングされたことに応答して適用される。一例では、超解像度コーディングモードが1つまたは複数のブロックに適用されるかどうかを示すために、フラグは、コーディングされた情報では信号で通知される。あるいは、超解像度コーディングモードが1つまたは複数のブロックに適用されるかどうかは、コーディングされた情報から推測され得る。
一実施形態では、1つまたは複数のブロックは、コーディングブロック(CB)、コーディングユニット(CU)、予測ブロック(PB、または変換ブロック(TB)である。コーディングされた情報は、超解像度コーディングモードが1つまたは複数のブロックの各々に適用されるかどうかを示すことができる。
一実施形態では、コーディングされた情報は、超解像度コーディングモードが、CU、CB、スーパーブロック、PB、TB、タイル、コーディングされたセグメント、フレーム、または1つまたは複数のブロックを含むシーケンスに適用されるかどうかを示すことができる。
(S1820)において、超解像度コーディングモードが1つまたは複数のブロックに適用されたことを示すコーディングされた情報に基づいて、超解像度コーディングモードを使用して、1つまたは複数のブロックにおける第1ブロックに基づいて、再構築されたブロックを生成することができる。いくつかの例では、再構築されたブロックは、1つまたは複数のブロックにおける第1ブロックの情報をアップサンプリングすることによって、超解像度コーディングモードを使用して生成され得る。第1ブロックの情報は、第1ブロックに関連付けられた、ダウンサンプリングされた残差ブロック、または第1ブロックに関連付けられた、ダウンサンプリングされた再構築されたブロックを含むことができる。第1ブロックは、低空間解像度を有し、再構築されたブロックは。低空間解像度よりも高い高空間解像度を有することができる。1つまたは複数のブロックは、空間周波数ドメイン(周波数ドメインとも呼ばれる)における変換係数を含むことができ、再構築されたブロックは、空間ドメインにおけるサンプル値、例えば輝度サンプル値および/または色度サンプル値などを含む。一例では、それぞれの再構築されたブロックは、1つまたは複数のブロックの各々に基づいて、ブロックレベルの超解像度コーディングモードを使用して生成される。
一実施形態では、第1ブロックは、例えば図14と図16におけるツール(1410)および図15A、図15Bと図17におけるツール(1509)によって、低空間解像度を有するダウンサンプリングされた残差ブロックに逆変換される。図14、図15A、図15B、図16、および図17を参照すると、第1ブロックは、ダウンサンプリングされた係数ブロック(1409)、(1508)または(1508B)を指すことができ、ダウンサンプリングされた残差ブロックは、ダウンサンプリングされた残差ブロック(1411)、(1510)または(1510B)を指すことができる。
第1ブロックがダウンサンプリングされた残差ブロックに逆変換された後、異なる方法は、再構築されたブロックを取得するために使用され得る。
一例では、ダウンサンプリングされた参照ブロックは、第1ブロックのための参照ブロックをダウンサンプリングすることによって得られる。参照ブロックおよびダウンサンプリングされた参照ブロックは、それぞれ高空間解像度および低空間解像度を有することができる。図14または図16を参照すると、ダウンサンプリングされた参照ブロック(1414)は、第1ブロックのための参照ブロック(1412)をダウンサンプリングすることによって得られる。ダウンサンプリングされた再構築されたブロック(例えば、(1415))は、ダウンサンプリングされた残差ブロック(例えば、(1411))およびダウンサンプリングされた参照ブロック(例えば、(1414))に基づいて生成され得て、ここで、ダウンサンプリングされた再構築されたブロックは、低空間解像度を有する。さらに、再構築されたブロック(例えば、(1417))は、ダウンサンプリングされた再構築されたブロック(例えば、(1415))をアップサンプリングすることによって生成され得る。
別の例では、図15Aまたは図17に示されるように、残差ブロック(例えば、(1512))は、ダウンサンプリングされた残差ブロック(例えば、(1510))をアップサンプリングすることによって得られ、ここで、残差ブロックは、高空間解像度を有する。続いて、再構築されたブロック(例えば、(1515))は、得られた残差ブロック(例えば、(1512))と、第1ブロックのための参照ブロック(例えば、(1513))とに基づいて生成され得る。
処理(1800)は、(S1899)に進み、終了する。
処理(1800)は、適切に適応され得る。処理(1800)におけるステップは、変更および/または省略され得る。追加のステップは追加され得る。任意の適切な実現順序は使用され得る。一例では、1つまたは複数のブロックは、再構築されるべき現在画像におけるブロックのサブセットであり、超解像度コーディングモードは、現在画像における、1つまたは複数のブロックとは異なるブロックには適用されない。
一例では、現在画像におけるタイルは、複数のCBを含む。1つまたは複数のブロックは、複数のCBである。(S1810)において、コーディングされた情報は、超解像度コーディングモード(ブロックレベルの超解像度コーディングモード)がタイルに適用されることをタイルレベルで示す。したがって、コーディングされた情報は、超解像度コーディングモードがタイルにおける複数のCBに適用されることをタイルレベルで示す。(S1820)において、超解像度コーディングモードを使用して、例えば図14、図15A、図16、図17を参照して説明したブロックなどの、複数のCBにおける第1ブロックに基づいて、再構築されたブロック(例えば、再構築されたCB)を生成する。第1ブロックは、複数のCBのうちの1つのCBであり、また、低空間解像度を有する。再構築されたブロックは、高空間解像度を有する。ステップ(S1820)は、タイルにおける複数のCBのそれぞれに適用されて、個別の再構築されたブロックが再構築され得る。
図19は、本開示の一実施形態による処理(1900)を概説するフローチャートを示す。処理(1900)は、CB、CU、PB、TB、TU、輝度ブロック(例えば、輝度CBまたは輝度TB)、色度ブロック(例えば、色度CBまたは色度TB)などのブロックの符号化に使用され得る。様々な実施形態において、処理(1900)は、端末デバイス(310)、(320)、(330)、(340)における処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、処理(1900)は、ソフトウェア命令で実現され、したがって、処理回路がソフトウェア命令を実行するときに、処理回路は、処理(1900)を実行する。この処理は、(S1901)から開始し、(S1910)に進む。
(S1910)において、超解像度コーディングモードがビデオにおける第1ブロックに適用されるかどうかを決定することができる。第1ブロックは、空間ドメインにおけるサンプル値、例えば輝度サンプル値および/または色度サンプル値などを含み、また、高空間解像度を有することができる。
一実施形態では、第1ブロックは、CB、CU、PB、またはTBである。
(S1920)において、超解像度コーディングモードが第1ブロックに適用されると決定されたことに基づいて、超解像度コーディングモードを使用して、第1ブロックに基づいて、ダウンサンプリングされた係数ブロックを生成することができる。ダウンサンプリングされた係数ブロックは、変換係数を含み、また、高空間解像度よりも低い低空間解像度を有することができる。
一実施形態では、ダウンサンプリングされた残差ブロックは、第1ブロックと、高空間解像度を有する第1ブロックのための参照ブロックとに基づいて生成され得る。ダウンサンプリングされた残差ブロックは、残差値を含み、また、低空間解像度を有することができる。ダウンサンプリングされた残差ブロックは変換されて、ダウンサンプリングされた係数ブロックが得られる。
異なる方法は、ダウンサンプリングされた残差ブロックを生成するために使用され得る。一例として、図14および図16に示されるように、第1ブロックはダウンサンプリングされて、低空間解像度を有するダウンサンプリングされたブロックが得られる。参照ブロックはダウンサンプリングされて、低空間解像度を有するダウンサンプリングされた参照ブロックが得られる。続いて、ダウンサンプリングされた残差ブロックは、ダウンサンプリングされたブロックとダウンサンプリングされた参照ブロックとに基づいて生成され得る。
別の例では、残差ブロックは、第1ブロックおよび参照ブロックに基づいて生成され得る。残差ブロックは、高空間解像度を有することができる。残差ブロックはダウンサンプリングされて、ダウンサンプリングされた残差ブロックが得られる。
(S1930)において、第1ブロックのための情報は、ビデオビットストリームにおいて符号化され得る。符号化された情報は、超解像度コーディングモードが第1ブロックに適用されるかどうかを示すことができる。超解像度コーディングモードが第1ブロックに適用されると決定されたことに基づいて、符号化された情報は、超解像度コーディングモードが第1ブロックに適用されたことを示すことができる。一例では、超解像度コーディングモードが第1ブロックに適用されるかどうかを示すために、フラグは、符号化された情報では信号で通知される。あるいは、超解像度コーディングモードが第1ブロックに適用されるかどうかは、符号化された情報から推測され得る。
一実施形態では、符号化された情報は、超解像度コーディングモードがCU、CB、スーパーブロック、PB、TB、タイル、コーディングされたセグメント、フレーム、または第1ブロックを含むシーケンスに適用されるかどうかを示す。超解像度コーディングモードが第1ブロックに適用されると決定されたことに基づいて、符号化された情報は、超解像度コーディングモードがCU、CB、スーパーブロック、PB、TB、タイル、コーディングされたセグメント、フレーム、または第1ブロックを含むシーケンスに適用されたことを示すことができる。
処理(1900)は、(S1999)に進み、終了する。
処理(1900)は、適切に適応され得る。処理(1900)におけるステップは、変更および/または省略され得る。追加のステップは追加され得る。任意の適切な実現順序は使用され得る。一例では、超解像度コーディングモードが第1ブロックに適用されないと決定される。したがって、(S1920)において、超解像度コーディングモードなしに、第1ブロックに基づいて、高空間解像度を有する係数ブロックを生成する。(S1930)において、符号化された情報は、超解像度コーディングモードが第1ブロックに適用されていないことを示す。
本開示の実施形態は、単独で使用されてもよく、任意の順序で組み合わせて使用されてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実現され得る。一例では、1つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に記憶されているプログラムを実行する。本開示における実施形態は、輝度ブロックまたは色度ブロックに適用され得る。
上記技術は、上記の技術は、コンピュータ読み取り可能な命令を使用するコンピュータソフトウェアとして実現され、また、物理的に1つ以上のコンピュータ読み取り可能な媒体に記憶されることができる。例えば、図20は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(2000)を示す。
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を使用してコーディングされることができ、アセンブリ、コンパイル、リンク、または同様のメカニズムを受けて命令を含むコードを作成することができ、命令は、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接的に実行されてもよく、またはコード解釈、マイクロコード実行などによって実行されてもよい。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、オブジェクトネットワークデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
図20に示されるコンピュータシステム(2000)のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム(2000)の例示的な実施形態に示されているコンポーネントのいずれかまたは組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
コンピュータシステム(2000)は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、触覚入力(例えば、キーストローク、スワイプ、データグローブの=動きなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスはまた、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連されているとは限らない、特定のメディアを捕捉するために使用されることもできる。
ヒューマンインターフェース入力デバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロホン(2006)、スキャナ(2007)およびカメラ(2008)(それぞれの1つだけが図示された)のうちの1つまたは複数を含むことができる。
コンピューターシステム(2000)はまた、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2010)、データグローブ(図示せず)またはジョイスティック(2005)による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ(2009)、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2010)であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは備えていなくてもよいし、各々は、触覚フィードバック機能を備えてもよく、あるいは備えていなくてもよいし、これらのいくつかは、例えば、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
コンピューターシステム(2000)は、CD/DVDを有するCD/DVD ROM/RW(2020)を含む光学媒体または類似の媒体(2021)、サムドライブ(2022)、リムーバブルハードドライブまたはソリッドステートドライブ(2023)、テープおよびフロッピーディスク(図示せず)などのようなレガシー磁気媒体、セキュリティドングル(図示せず)などのような特殊なROM/ASIC/PLDベースのデバイスなどのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
当業者はまた、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
コンピューターシステム(2000)はまた、一つ以上の通信ネットワーク(2055)へのネットワークインターフェース(2054)を含むことができる。通信ネットワーク例えば、無線、有線、光学的であってもよい。ネットワークはさらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク(GSM(登録商標)、3G、4G、5G、LTEなど)などのLAN、テレビケーブルまたは無線広域デジタルネットワーク(有線テレビ、衛星テレビ、地上放送テレビを含む)、車両用および産業用ネットワーク(CAN Busを含む)などを含む。いくつかのネットワークは、一般に、いくつかの汎用データポートまたは周辺バス(2049)(例えば、コンピュータシステム(2000)のUSBポート)に接続された外部ネットワークインターフェースアダプタが必要であり、他のシステムは、通常、以下に説明するようにシステムバスに接続することによって、コンピュータシステムシステム(2000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、Canbusから特定のCanbusデバイスへ)、あるいは、双方向の、例えばローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上述のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェースのそれぞれで使用されることができる。
上記ヒューマンマシンインタフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピューターシステム(2000)のコア(2040)に接続されることができる。
コア(2040)は、1つ以上の中央処理ユニット(CPU)(2041)、グラフィック処理ユニット(GPU)(2042)、フィールドプログラマブルゲートアレイ(FPGA)(2043)の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェア加速器(2044)、グラフィックスアダプタ(2050)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、例えば内部の非ユーザアクセスハードディスクドライブ、SSDなどの内部大容量ストレージ(2047)などとともに、システムバス(2048)を介して接続されてもよい。いくつかのコンピュータシステムでは、付加的なCPU、GPUなどによって拡張を可能にするために、システムバス(2048)に1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス(2048)に直接的に接続されてもよく、または周辺バス(2049)を介して接続されてもよい。一例では、スクリーン(2010)は、グラフィックスアダプタ(2050)に接続されて得る。周辺バスのアーキテクチャは、外部コントローラインターフェース(PCI)、汎用シリアルバス(USB)などを含む。
CPU(2041)、GPU(2042)、FPGA(2043)、および加速器(2044)は、いくつかの命令を実行することができ、これらの命令を組み合わせて上述のコンピュータコードを構成することができる。そのコンピュータコードは、ROM(2045)またはRAM(2046)に記憶されることができる。また、一時的なデータは、RAM(2046)に記憶されることができる一方、永久的なデータは、例えば内部大容量ストレージ(2047)に記憶されることができる。1つ以上のCPU(2041)、GPU(2042)、大容量ストレージ(2047)、ROM(2045)、RAM(2046)などと密接に関連することができる、キャッシュメモリを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能になる。
コンピュータ読み取り可能な媒体は、様々なコンピュータ実行された動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の技術者によって知られ、利用可能な媒体およびコードであってもよい。
限定ではなく例として、アーキテクチャ(2000)、特にコア(2040)を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、加速器などを含む)プロセッサとして機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上記のユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ(2047)またはROM(2045)などの、不揮発性コア(2040)を有する特定のストレージであってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア2040)によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア(2040)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2046)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、本明細書に説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤードされているか、または別の方法で回路(例えば、アクセラレータ(2044))に組み込まれているため、機能を提供することができ、この回路は、ソフトウェアの代わりに動作し、またはソフトウェアと一緒に動作して、本明細書に説明された特定のプロセスの特定のプロセスまたは特定の部分を実行することができる。適切な場合には、ソフトウェアへの参照はロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行されるソフトウェアを記憶する回路(集積回路(IC)など)を含み、実行されるロジックを具体化する回路、またはその両方を兼ね備えることができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含する。
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、配置、および様々な均等置換が存在している。したがって、当業者は、本明細書では明確に示されていないかまたは説明されていないが、本開示の原則を具現しているので、本開示の精神および範囲内にある、様々なシステムおよび方法を設計することができる、ということを理解されたい。
付録A:略語
JEM:joint exploration model、共同探査モデル
VVC:versatile video coding、汎用ビデオコーディング
BMS:benchmark set、ベンチマークセット
MV:Motion Vector、動きベクトル
HEVC:High Efficiency Video Coding、高効率ビデオコーディング
SEI:Supplementary Enhancement Information、補足強化情報
VUI:Visual 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、コーディングユニット