図3は、本開示のある実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、たとえばネットワーク(350)を介して互いに通信することができる複数の端末装置を含む。たとえば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)および(320)を含む。図3の例では、第1の対の端末装置(310)および(320)は、データの一方向伝送を実行する。たとえば、端末装置(310)は、ネットワーク(350)を介した他方の端末装置(320)への伝送のために、ビデオ・データ(たとえば、端末装置(310)によって捕捉されたビデオ・ピクチャーのストリーム)を符号化してもよい。エンコードされたビデオ・データは、一つまたは複数の符号化ビデオ・ビットストリームの形で伝送されることができる。端末装置(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)、たとえばデジタル・カメラを含むことができ、たとえば非圧縮のビデオ・ピクチャーのストリーム(402)を生成する捕捉サブシステム(413)を含んでいてもよい。一例では、ビデオ・ピクチャーのストリーム(402)は、デジタル・カメラによって取り込まれたサンプルを含む。エンコードされたビデオ・データ(404)(または符号化されたビデオ・ビットストリーム)と比較した場合の高いデータ・ボリュームを強調するために太線として描かれているビデオ・ピクチャーのストリーム(402)は、ビデオ源(401)に結合されたビデオ・エンコーダ(403)を含む電子装置(420)によって処理されることができる。ビデオ・エンコーダ(403)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にし、または実現するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオ・ピクチャーのストリーム(402)と比較した場合の、より低いデータ・ボリュームを強調するために細い線として描かれている、エンコードされたビデオ・データ(404)(またはエンコードされたビデオ・ビットストリーム(404))は、将来の使用のためにストリーミング・サーバー(405)に記憶されることができる。図4のクライアント・サブシステム(406)および(408)のような一つまたは複数のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(405)にアクセスして、エンコードされたビデオ・データ(404)のコピー(407)および(409)を取り出すことができる。クライアント・サブシステム(406)は、たとえば電子装置(430)内にビデオ・デコーダ(410)を含むことができる。ビデオ・デコーダ(410)は、エンコードされたビデオ・データの入来コピー(407)をデコードし、ディスプレイ(412)(たとえば表示画面)または他のレンダリング装置(図示せず)上にレンダリングできるビデオ・ピクチャーの出ていくストリーム(411)を生成する。いくつかのストリーミング・システムでは、エンコードされたビデオ・データ(404)、(407)、および(409)(たとえば、ビデオ・ビットストリーム)は、ある種のビデオ符号化/圧縮標準に従ってエンコードされることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化規格は、非公式にVVCとして知られている。開示される主題は、多用途ビデオ符号化(VVC)の文脈で使用されてもよい。
電子装置(420)および(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。たとえば、電子装置(420)は、ビデオ・デコーダ(図示せず)を含むことができ、電子装置(430)は、ビデオ・エンコーダ(図示せず)も含むことができる。
図5は、本開示のある実施形態によるビデオ・デコーダ(510)のブロック図を示す。ビデオ・デコーダ(510)は、電子装置(530)に含まれることができる。電子装置(530)は、受領器(531)(たとえば、受領回路)を含むことができる。ビデオ・デコーダ(510)は、図4の例におけるビデオ・デコーダ(310)の代わりに使用できる。
受領器(531)は、ビデオ・デコーダ(510)によってデコードされるべき一つまたは複数の符号化ビデオ・シーケンスを受領してもよい;同じまたは別の実施形態において、一度に1つの符号化ビデオ・シーケンスであり、各符号化ビデオ・シーケンスのデコードは、他の符号化ビデオ・シーケンスから独立である。符号化ビデオ・シーケンスは、チャネル(501)から受信されてもよく、該チャネルは、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。受領器(531)は、エンコードされたビデオ・データを、他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリームと一緒に受領してもよく、これらのデータは、それぞれの使用エンティティ(図示せず)を転送されてもよい。受領器(531)は、符号化ビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタ対策として、バッファメモリ(515)が、受領器(531)とエントロピー・デコーダ/パーサー(520)(以下「パーサー」)との間に結合されてもよい。ある種のアプリケーションでは、バッファメモリ(515)はビデオ・デコーダ(510)の一部である。他のアプリケーションでは、ビデオ・デコーダ(510)の外部にあることができる(図示せず)。さらに他のアプリケーションでは、たとえばネットワーク・ジッタに対抗するために、ビデオ・デコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、さらに、たとえば再生タイミングを扱うために、ビデオ・デコーダ(510)の内部に別のバッファメモリ(515)があってもよい。受領器(531)が、十分な帯域幅および制御可能性の記憶/転送装置から、またはアイソクロナス・ネットワークからデータを受領している場合は、バッファメモリ(515)は、必要とされなくてもよく、または小さくてもよい。インターネットのようなベストエフォート型のパケット・ネットワークでの使用のためには、バッファメモリ(515)が要求されることがあり、比較的大きいことがあり、有利には適応サイズであることができ、少なくとも部分的に、ビデオ・デコーダ(510)の外部でオペレーティング・システムまたは同様の要素(図示せず)において実装されてもよい。
ビデオ・デコーダ(510)は、符号化ビデオ・シーケンスからシンボル(521)を再構成するためのパーサー(520)を含んでいてもよい。これらのシンボルのカテゴリーは、ビデオ・デコーダ(510)の動作を管理するために使用される情報と、潜在的には、レンダー装置(512)(たとえば表示画面)のようなレンダリング装置を制御するための情報とを含む。レンダー装置は、図5に示されたように、電子装置(530)の一体的な部分ではなく、電子装置(530)に結合されることができる。レンダリング装置(単数または複数)のための制御情報は、補足向上情報(Supplementary Enhancement Information)(SEIメッセージ)またはビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセット・フラグメント(図示せず)の形であってもよい。パーサー(520)は、受領された符号化ビデオ・シーケンスをパースする/エントロピー復号することができる。符号化ビデオ・シーケンスの符号化は、ビデオ符号化技術または標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性ありまたはなしの算術符号化などを含む、さまざまな原理に従うことができる。パーサー(520)は、符号化ビデオ・シーケンスから、ビデオ・デコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループ・パラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、ピクチャーグループ(Group of Pictures、GOP)、ピクチャー、タイル、スライス、マクロブロック、符号化単位(Coding Unit、CU)、ブロック、変換単位(Transform Unit、TU)、予測単位(Prediction Unit、PU)などを含むことができる。パーサー(520)はまた、符号化ビデオ・シーケンスから、変換係数、量子化器パラメータ値、動きベクトル等の情報を抽出することができる。
パーサー(520)は、バッファメモリ(515)から受領されたビデオ・シーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(521)を生成することができる。
シンボル(521)の再構成は、符号化されたビデオ・ピクチャーまたはその諸部分のタイプ(たとえば、インターおよびイントラ・ピクチャー、インターおよびイントラ・ブロック)および他の要因に依存して、複数の異なるユニットに関わることができる。どのユニットがどのように関わるかは、符号化ビデオ・シーケンスからパーサー(520)によってパースされたサブグループ制御情報によって制御されることができる。パーサー(520)と下記の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確のため、描かれていない。
すでに述べた機能ブロックのほかに、ビデオ・デコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実際的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題を記述する目的のためには、下記の機能単位への概念的な細分が適切である。
第1のユニットは、スケーラー/逆変換ユニット(551)である。スケーラー/逆変換ユニット(551)は、パーサー(520)から、量子化された変換係数および制御情報をシンボル(単数または複数)(521)として受領する。制御情報は、どの変換を使用するか、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む。スケーラー/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
場合によっては、スケーラー/逆変換(551)の出力サンプルは、イントラ符号化されたブロック、すなわち、以前に再構成されたピクチャーからの予測情報を使用していないが、現在ピクチャーの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラ・ピクチャー予測ユニット(552)によって提供されることができる。場合によっては、イントラ・ピクチャー予測ユニット(552)は、現在ピクチャー・バッファ(558)から取ってきた、周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャー・バッファ(558)は、たとえば、部分的に再構成された現在ピクチャーおよび/または完全に再構成された現在ピクチャーをバッファリングする。集計器(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラー/逆変換ユニット(551)によって提供される出力サンプル情報に加算する。
他の場合には、スケーラー/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(553)は、予測のために使用されるサンプルを取ってくるために参照ピクチャー・メモリ(557)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラー/逆変換ユニットの出力(この場合、残差サンプルまたは残差信号と呼ばれる)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(553)が予測サンプルを取ってくる参照ピクチャー・メモリ(557)内のアドレスは、シンボル(521)の形で動き補償ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、たとえばX、Y、および参照ピクチャー成分を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャー・メモリ(557)から取ってこられるサンプル値の補間、動きベクトル予測機構などを含むことができる。
集計器(555)の出力サンプルは、ループ・フィルタ・ユニット(556)内でさまざまなループ・フィルタリング技法にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化ビデオ・シーケンス(符号化されたビデオ・ビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループ・フィルタ・ユニット(556)に利用可能にされるが、符号化されたピクチャーまたは符号化されたビデオ・シーケンスの(デコード順で)前の部分のデコード中に得られたメタ情報に応答するとともに、以前に再構成されループ・フィルタリングされたサンプル値に応答することもできる。
ループ・フィルタ・ユニット(556)の出力はサンプル・ストリームであることができ、これは、レンダー装置(512)に出力されることができ、また将来のインターピクチャー予測において使用するために参照ピクチャー・メモリ(557)に記憶されることができる。
符号化された画像は、いったん完全に再構成されると、将来の予測のための参照ピクチャーとして使用できる。たとえば、現在ピクチャーに対応する符号化されたピクチャーが完全に再構成され、該符号化されたピクチャーが(たとえば、パーサー(520)によって)参照ピクチャーとして同定されると、現在ピクチャー・バッファ(558)は参照ピクチャーメモリ(557)の一部となることができ、後続の符号化されたピクチャーの再構成を開始する前に、新鮮な現在ピクチャー・バッファが再割当てされることができる。
ビデオ・デコーダ(510)は、ITU-T勧告H.265のような標準における所定のビデオ圧縮技術に従ってデコード動作を実行することができる。符号化ビデオ・シーケンスはビデオ圧縮技術または標準のシンタックスおよびビデオ圧縮技術または標準において文書化されているプロファイルに従うという意味で、符号化されたビデオ・シーケンスは、使用されているビデオ圧縮技術または標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術または標準において利用可能なすべてのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、ある種のツールを選択することができる。準拠のためにはまた、符号化ビデオ・シーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあることも必要であることがある。いくつかの場合には、レベルは、最大ピクチャー・サイズ、最大フレーム・レート、最大再構成サンプル・レート(たとえば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャー・サイズなどを制約する。レベルによって設定された限界は、場合によっては、符号化ビデオ・シーケンスにおいて信号伝達される、HRDバッファ管理のための仮設参照デコーダ(Hypothetical Reference Decoder、HRD)仕様およびメタデータを通じてさらに制約されることができる。
ある実施形態において、受領器(531)は、エンコードされたビデオとともに追加の(冗長な)データを受領してもよい。追加データは、符号化されたビデオ・シーケンス(単数または複数)の一部として含まれていてもよい。追加データは、データを適正にデコードするため、および/またはもとのビデオ・データをより正確に再構成するために、ビデオ・デコーダ(510)によって使用されてもよい。追加データは、たとえば、時間的、空間的、または信号対雑音比(SNR)の向上層、冗長スライス、冗長ピクチャー、前方誤り訂正符号などの形でありうる。
図6は、本開示のある実施形態によるビデオ・エンコーダ(603)のブロック図を示している。ビデオ・エンコーダ(603)は、電子装置(620)に含まれる。電子装置(620)は、送信器(640)(たとえば、送信回路)を含む。ビデオ・エンコーダ(603)は、図4の例におけるビデオ・エンコーダ(403)の代わりに使用できる。
ビデオ・エンコーダ(603)は、ビデオ・エンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオ源(601)(これは図6の例では電子装置(620)の一部ではない)からビデオ・サンプルを受領することができる。別の例では、ビデオ源(601)は、電子装置(620)の一部である。
ビデオ源(601)は、任意の好適なビット深さ(たとえば、8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 YCrCB、RGB、…)および任意の好適なサンプリング構造(たとえば、YCrCb 4:2:0、YCrCb 4:4:4)でありうるデジタル・ビデオ・サンプル・ストリームの形で、ビデオ・エンコーダ(603)によって符号化されるべき源ビデオ・シーケンスを提供することができる。メディア・サービス・システムにおいては、ビデオ源(601)は、事前に準備されたビデオを記憶している記憶装置であってもよい。ビデオ会議システムにおいては、ビデオ源(601)は、ローカルでの画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見たときに動きを付与する複数の個々のピクチャーとして提供されてもよい。ピクチャー自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに依存して、一つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
ある実施形態によれば、ビデオ・エンコーダ(603)は、源ビデオ・シーケンスのピクチャーを、リアルタイムで、またはアプリケーションによって要求される任意の他の時間的制約の下で、符号化および圧縮して、符号化ビデオ・シーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の一つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットを制御し、該他の機能ユニットに機能的に結合される。かかる結合は、明確のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャー・スキップ、量子化器、レート‐歪み最適化技法のラムダ値、…)、ピクチャー・サイズ、ピクチャーグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、ある種のシステム設計のために最適化されたビデオ・エンコーダ(603)に関する他の好適な機能を有するように構成できる。
いくつかの実施形態では、ビデオ・エンコーダ(603)は、符号化ループにおいて動作するように構成される。思い切って単純化した説明として、一例では、符号化ループは、源符号化器(630)(たとえば、符号化されるべき入力ピクチャーと参照ピクチャー(算数または複数)に基づいてシンボル・ストリームのようなシンボルを生成することを受け持つ)と、ビデオ・エンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモートの)デコーダも生成するであろうのと同様の仕方でサンプル・データを生成するよう前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、シンボルと符号化ビデオ・ビットストリームとの間のどの圧縮も無損失である)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャー・メモリ(634)に入力される。シンボル・ストリームのデコードは、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャー・メモリ(634)の内容もローカル・エンコーダとリモート・エンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャー・サンプルとして「見る」。参照ピクチャー同期性のこの基本原理(および、たとえば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても使用される。
「ローカル」デコーダ(633)の動作は、図5との関連ですでに上記で詳細に述べた「リモート」デコーダ、たとえばビデオ・デコーダ(410)の動作と同じであってよい。しかしながら、暫時図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)およびパーサー(420)による、シンボルの符号化ビデオ・シーケンスへのエンコード/デコードが可逆でありうるので、バッファメモリ(415)およびパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号部は、ローカル・デコーダ(633)においては完全には実装されなくてもよい。
この時点で行なうことができる観察は、デコーダ内に存在するパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要があることである。このため、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、短縮することができる。ある種の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
動作中、いくつかの例では、源符号化器(630)は、「参照ピクチャー」として指定された、ビデオ・シーケンスからの一つまたは複数の以前に符号化されたピクチャーを参照して、入力ピクチャーを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(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)は、エントロピー符号化器(645)によって生成される符号化ビデオ・シーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。送信器(640)は、ビデオ符号化器(630)からの符号化されたビデオ・データを、送信されるべき他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリーム(源は図示せず)とマージすることができる。
コントローラ(650)は、ビデオ・エンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャーに、ある符号化ピクチャー・タイプを割り当てることができる。符号化ピクチャー・タイプは、それぞれのピクチャーに適用されうる符号化技術に影響しうる。たとえば、ピクチャーはしばしば、以下のピクチャー・タイプのうちの1つとして割り当てられることがある。
イントラピクチャー(Iピクチャー)は、予測の源としてシーケンス内の他のピクチャーを使用せずに、符号化され、デコードされうるものでありうる。いくつかのビデオ・コーデックは、たとえば、独立デコーダ・リフレッシュ(Independent Decoder Refresh、「IDR」)・ピクチャーを含む、異なるタイプのイントラ・ピクチャーを許容する。当業者は、Iピクチャーのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識する。
予測ピクチャー(Pピクチャー)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。
双方向予測ピクチャー(Bピクチャー)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。同様に、マルチ予測ピクチャーは、単一のブロックの再構成のために、3つ以上の参照ピクチャーおよび関連するメタデータを使用することができる。
源ピクチャーは、普通、空間的に複数のサンプル・ブロック(たとえば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロック毎に符号化されうる。ブロックは、ブロックのそれぞれのピクチャーに適用される符号化割り当てによって決定されるところにより、他の(すでに符号化された)ブロックを参照して予測的に符号化されうる。たとえば、Iピクチャーのブロックは、非予測的に符号化されてもよく、または、同じピクチャーのすでに符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測またはイントラ予測)。Pピクチャーのピクセル・ブロックは、以前に符号化された一つの参照ピクチャーを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。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)に分割され、ピクチャーにおけるそれらのCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有する。一般に、CTUは、1つのルーマCTBおよび2つのクロマCTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、再帰的に、一つまたは複数の符号化単位(CU)に四分木分割されていくことができる。たとえば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCU、または16×16ピクセルの16個のCUに分割されることができる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプのような、そのCUについての予測タイプを決定するために解析される。CUは時間的および/または空間的予測可能性に依存して、一つまたは複数の予測単位(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)は、処理ブロックを符号化されたピクチャーにエンコードするために、それぞれ、インター予測技法または双予測技法を使用してもよい。ある種のビデオ符号化技術では、マージモード(merge mode)は、動きベクトルが一つまたは複数の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、ピクチャー間予測サブモードでありうる。ある種の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオ・エンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
図7の例では、ビデオ・エンコーダ(703)は、インター・エンコーダ(730)、イントラ・エンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、およびエントロピー符号化器(725)を、図7に示されるように一緒に結合されて含む。
インター・エンコーダ(730)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを参照ピクチャー内の一つまたは複数の参照ブロック(たとえば、以前のピクチャーおよび後のピクチャー内のブロック)と比較し、インター予測情報(たとえば、インター・エンコード技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技法を使用してインター予測結果(たとえば、予測されたブロック)を計算するように構成される。いくつかの例では、前記参照ピクチャーは、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照ピクチャーである。
イントラ・エンコーダ(722)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、場合によっては、該ブロックを、同じピクチャー内ですでに符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(たとえば、一つまたは複数のイントラ・エンコード技法によるイントラ予測方向情報)も生成するように構成される。一例では、イントラ・エンコーダ(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)は、エントロピー・デコーダ(871)、インター・デコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラ・デコーダ(872)が図8に示されるように一緒に結合されたものを含む。
エントロピー・デコーダ(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)は、一つまたは複数の集積回路を使用して実装できる。別の実施形態では、ビデオ・エンコーダ(403)、(603)、(603)、およびビデオ・デコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する一つまたは複数のプロセッサを使用して実装できる。
本開示の諸側面は、ビデオ符号化/復号のためのフィルタリング技法を提供する。
アーチファクトを低減するために、ブロックベースのフィルタ適応を有する適応ループフィルタ(ALF)を、エンコーダ/デコーダによって適用することができる。ルーマ成分については、複数のフィルタ(たとえば、25個のフィルタ)のうちの1つを、たとえば、局所的な勾配の方向および活性に基づいて、4×4ルーマ・ブロックについて選択することができる。
ALFは任意の適切な形状およびサイズを有することができる。図9を参照すると、ALF(910)~(911)は、ALF(910)についての5×5ダイヤモンド形状、ALF(911)についての7×7ダイヤモンド形状のようなダイヤモンド形状を有する。ALF(910)では、要素(920)~(932)がダイヤモンド形状を形成し、フィルタリング・プロセスにおいて使用できる。要素(920)~(932)について、7つの値(たとえば、C0~C6)が使用できる。ALF(911)では、要素(940)~(964)がダイヤモンド形状を形成し、フィルタリング・プロセスにおいて使用できる。要素(940)~(964)について、13の値(たとえば、C0~C12)が使用できる。
図9を参照すると、いくつかの例において、ダイヤモンドフィルタ形状を有する2つのALF(910)~(911)が使用される。5×5ダイヤモンド形状のフィルタ(910)はクロマ成分(クロマブロック、クロマCBなど)について、7×7ダイヤモンド形状のフィルタ(911)はルーマ成分(ルーマブロック、ルーマCBなど)について適用できる。ALFでは、他の適切な形状およびサイズが使用できる。たとえば、9×9のダイヤモンド形状のフィルタが使用できる。
それらの値(たとえば、(910)のC0~C6または(920)のC0~C12)によって示される位置におけるフィルタ係数は、ゼロでない場合がある。さらに、ALFがクリッピング機能を含む場合、それらの位置でのクリッピング値はゼロでない可能性がある。
ルーマ成分のブロック分類については、ブロック(またはルーマ・ブロック、ルーマCB)は複数(たとえば、25)のクラスのうちの1つとして範疇分けまたは分類できる。
分類インデックスCは、方向性パラメータと、活性値Aの量子化された値とに基づいて、式(1)を用いて導出できる。
方向性パラメータDおよび量子化された値
〔^Aと記すこともある〕を計算するために、垂直方向、水平方向、および2つの対角方向(たとえば、d1およびd2)のそれぞれのグラデーションgv、gh、gd1、およびgd2が、1-Dラプラシアンを使用して以下のように計算できる。
ここで、インデックスiおよびjは4×4ブロック内の左上サンプルの座標を指し、R(k,l)は座標(k,l)における再構成されたサンプルを示す。方向(たとえば、d1およびd2)は、2つの対角方向を指すことができる。
上述のブロック分類の複雑さを低減するために、サブサンプリングされた1-Dラプラシアン計算を適用することができる。図10A~10Dは、垂直(図10A)、水平(図10B)、および2つの対角方向d1(図10C)およびd2(図10D)の勾配gv、gh、gd1およびgd2をそれぞれ計算するために使用されるサブサンプリングされる位置の例を示す。同じサブサンプリングされる位置を、異なる方向の勾配計算に使用することができる。図10Aにおいて、ラベル「V」は、垂直勾配gvを計算するためのサブサンプリング位置を示す。図10Bにおいて、ラベル「H」は、水平勾配ghを計算するためのサブサンプリング位置を示す。図10Cにおいて、ラベル「D1」は、d1対角勾配gd1を計算するためのサブサンプリング位置を示す。図10Dにおいて、ラベル「D2」は、d2対角勾配gd2を計算するためのサブサンプリング位置を示す。
水平方向と垂直方向の勾配gvとghのうちの最大値gh,v
maxおよび最小値gh,v
minは次のように設定できる:
2つの対角方向の勾配gd1とgd2のうちの最大値gd1,d2
maxおよび最小値gd1,d2
minは次のように設定できる:
方向性パラメータDは、上記の値および2つの閾値t1およびt2に基づき、以下のように導出できる。
活性値Aは次のように計算できる:
Aはさらに、0~4の範囲(両端含む)に量子化されることができ、量子化された値は
と記される。
ピクチャー内のクロマ成分についてはブロック分類が適用されないため、各クロマ成分についてALF係数の単一の集合を適用できる。
幾何学的変換が、フィルタ係数および対応するフィルタ・クリッピング値(クリッピング値とも称される)に適用されることができる。ブロック(たとえば、4×4ルーマ・ブロック)をフィルタリングする前に、たとえばそのブロックについて計算された勾配値(たとえば、gv、gh、gd1、および/またはgd2)に依存して、回転または対角および垂直反転などの幾何学的変換を、フィルタ係数f(k,l)および対応するフィルタ・クリッピング値c(k,l)に適用できる。フィルタ係数f(k,l)および対応するフィルタ・クリッピング値c(k,l)に適用される幾何学的変換は、フィルタによってサポートされる領域内のサンプルに幾何学的変換を適用することと等価でありうる。幾何学的変換は、それぞれの方向性を整列させることにより、ALFが適用される異なるブロックをより類似させることができる。
対角反転、垂直反転、および回転を含む3つの幾何学的変換は、それぞれ式(9)~(11)に記載されるように実行できる。
ここで、KはALFまたはフィルタのサイズであり、0≦k,l≦K-1は、係数の座標である。たとえば、位置(0,0)は左上隅にあり、位置(K-1,K-1)はフィルタfまたはクリッピング値行列(またはクリッピング行列)cの右下隅にある。それらの変換は、そのブロックについて計算された勾配値に依存して、フィルタ係数f(k,l)およびクリッピング値c(k,l)に適用できる。変換と4つの勾配との関係の例を表1にまとめてある。
いくつかの実施形態では、ALFフィルタ・パラメータは、ピクチャーについて適応パラメータセット(APS)において信号伝達される。APSでは、ルーマ・フィルタ係数およびクリッピング値インデックスの一つまたは複数の集合(最大で25個の集合)が信号伝達されることができる。一例では、該一つまたは複数の集合のうちの集合はルーマ・フィルタ係数と一つまたは複数のクリッピング値インデックスとを含むことができる。クロマ・フィルタ係数およびクリッピング値インデックスの一つまたは複数の集合(最大で8個の集合)が信号伝達されることができる。信号伝達〔シグナリング〕オーバーヘッドを減らすために、ルーマ成分についての異なる分類(たとえば、異なる分類インデックスをもつ)のフィルタ係数をマージすることができる。スライス・ヘッダにおいて、現在のスライスについて使用されているAPSのインデックスが信号伝達されることができる。
ある実施形態では、クリッピング値インデックス(クリッピング・インデックスとも称される)がAPSからデコードされることができる。クリッピング値インデックスは、たとえば、クリッピング値インデックスと対応するクリッピング値との間の関係に基づいて、対応するクリッピング値を決定するために使用できる。この関係は、あらかじめ定義され、デコーダに記憶されることができる。一例では、この関係は、クリッピング値インデックスと対応するクリッピング値のルーマ・テーブル(たとえばルーマCBのために使用)、クリッピング値インデックスと対応するクリッピング値のクロマ・テーブル(たとえばクロマCBのために使用)などのテーブルによって記述される。クリッピング値は、ビット深さBに依存することができる。ビット深さBは、内部ビット深さ、フィルタリングされるCB内の再構成されたサンプルのビット深さ等を指すことができる。いくつかの例において、テーブル(たとえば、ルーマ・テーブル、クロマ・テーブル)は、式(12)を使用して得られる。
ここで、AlfClipはクリッピング値、Bはビット深さ(たとえばbitDepth)、N(たとえばN=4)は許容されるクリッピング値の数、(n-1)はクリッピング値インデックス(クリッピング・インデックスまたはclipIdxとも称される)である。表2は、N=4での式(12)を用いて得られる表の例を示す。クリッピング・インデックス(n-1)は表2では0、1、2、3であることができ、nは1、2、3、4であることができる。
現在のスライスのために使用できるルーマ・フィルタ集合を指定するために、現在のスライスについてのスライス・ヘッダにおいて、一つまたは複数のAPSインデックス(最大7つのAPSインデックス)が信号伝達されることができる。フィルタリング・プロセスは、ピクチャー・レベル、スライス・レベル、CTBレベルおよび/またはその他などの一つまたは複数の適切なレベルで制御できる。ある実施形態では、フィルタリング・プロセスは、CTBレベルでさらに制御されることができる。ALFがルーマCTBに適用されるかどうかを示すフラグが信号伝達される。ルーマCTBは、複数の固定したフィルタ集合(たとえば、16個の固定したフィルタ集合)と、APSにおいて信号伝達されるフィルタ集合(信号伝達されるフィルタ集合とも称される)の中からフィルタ集合を選択できる。フィルタ集合インデックスがルーマCTBについて信号伝達されて、適用されるフィルタ集合(たとえば、複数の固定したフィルタ集合および信号伝達されたフィルタ集合のうちのフィルタ集合)を示す。複数の固定したフィルタ集合は、エンコーダおよびデコーダにおいてあらかじめ定義され、ハードコーディングされ、あらかじめ定義されたフィルタ集合と呼ぶことができる。
クロマ成分については、現在のスライスについて使用されるクロマ・フィルタ集合を示すために、APSインデックスがスライス・ヘッダにおいて信号伝達されることができる。CTBレベルでは、APSに複数のクロマ・フィルタ集合がある場合、各クロマCTBについてフィルタ集合インデックスが信号伝達されることができる。
フィルタ係数は、128に等しいノルムで量子化できる。乗算の複雑さを低減するために、非中心位置の係数値が-27~27-1(両端含む)の範囲内であるようにビットストリーム適合性を適用することができる。一例では、中心位置の係数はビットストリームにおいて信号伝達されず、128に等しいと考えることができる。
いくつかの実施形態では、クリッピング・インデックスおよびクリッピング値の構文および意味内容は、以下のように定義される:
alf_luma_clip_idx[sfIdx][j]は、sfIdxによって示される信号伝達されるルーマ・フィルタのj番目の係数を乗算する前に、使用するクリッピング値のクリッピング・インデックスを指定するために使用できる。ビットストリーム適合性の要件は、sfIdx=0ないしalf_luma_num_filters_signalled_minus1、j=0ないし11でのalf_luma_clip_idx[sfIdx][j]の値が0~3の範囲であることを含むことができる。
filtIdx=0ないしNumAlfFilters-1、j=0ないし11での要素AlfClipL[adaptation_parameter_set_id][filtIdx][j]のルーマ・フィルタ・クリッピング値AlfClipL[adaptation_parameter_set_id]は、BitDepthYに等しく設定されたbitDepthおよびalf_luma_clip_idx[alf_luma_coeff_delta_idx][filtIdx]][j]に等しく設定されたclipIdxに依存して、表2に指定されているように導出できる。
alf_chroma_clip_idx[altIdx][j]は、代替クロマ・フィルタのj番目の係数にインデックスaltIdxを乗算する前に、使用するクリッピング値のクリッピング・インデックスを指定するために使用できる。ビットストリーム適合性の要件は、altIdx=0ないしalf_chroma_num_alt_filters_minus1、j=0ないし5でのalf_chroma_clip_idx[altIdx][j]の値が0~3の範囲(両端含む)にあることを含むことができる。
altIdx=0ないしalf_chroma_num_alt_filters_minus1、j=0ないし5での要素AlfClipC[adaptation_parameter_set_id][altIdx][j]をもつクロマ・フィルタ・クリッピング値AlfClipC[adaptation_parameter_set_id][altIdx]は、BitDepthCに等しく設定されたbitDepthおよびalf_chroma_clip_idx[altIdx][j]に等しく設定されたclipIdxに依存して、表2に指定されるように導出できる。
ある実施形態では、フィルタリング・プロセスは、以下のように記述できる。デコーダ側では、CTBについてALFが有効にされると、CU(またはCB)内のサンプルR(i,j)がフィルタリングされることができ、その結果、式(13)を用いて以下に示されるように、フィルタリングされたサンプル値R'(i,j)が得られる。一例では、CU内の各サンプルはフィルタリングされる。
ここで、f(k,l)はデコードされたフィルタ係数であり、K(x,y)はクリッピング関数であり、c(k,l)はデコードされたクリッピング・パラメータ(またはクリッピング値)を表す。変数kとlは、-L/2とL/2の間で変わりうる。ここで、Lはフィルタ長を表す。クリッピング関数K(x,y)=min(y,max(-y,x))は、クリッピング関数Clip3(-y,y,x)に対応する。クリッピング関数K(x,y)を組み込むことにより、ループ・フィルタリング方法(たとえば、ALF)は非線形プロセスとなり、非線形ALFと称することができる。
非線形ALFでは、クリッピング値の複数の集合が表3において提供されることができる。一例では、ルーマ集合は4つのクリッピング値{1024,181,32,6}を含み、クロマ集合は4つのクリッピング値{1024,161,25,4}を含む。ルーマ集合内の4つのクリッピング値は、ルーマ・ブロックについてのサンプル値(10ビットで符号化)の全範囲(1024など)を対数領域でほぼ均等に分割することによって選択できる。この範囲は、クロマ集合について4~1024の間であることができる。
選択されたクリッピング値は、以下のように"alf_data"構文要素で符号化されることができる:適切な符号化方式(たとえば、ゴロム符号化方式)を使用して、表3に示されるような選択されたクリッピング値に対応するクリッピング・インデックスをエンコードすることができる。符号化方式は、フィルタ集合インデックスをエンコードするために使用されるものと同じ符号化方式でありうる。
ある実施形態では、ALFのラインバッファ要件を低減するために、仮想境界フィルタリング・プロセスを使用することができる。よって、CTU境界(たとえば、水平CTU境界)付近のサンプルについては、修正されたブロック分類およびフィルタリングが使用できる。仮想境界(1130)は、図11のAに示されるように、水平CTU境界(1120)を「Nsamples」サンプルだけシフトすることによって定義できる。ここで、Nsamplesは正の整数でありうる。一例では、Nsamplesはルーマ成分については4に等しく、Nsamplesはクロマ成分については2に等しい。
図11Aを参照すると、ルーマ成分について修正ブロック分類を適用することができる。一例では、仮想境界(1130)の上の4×4ブロック(1110)の1Dラプラシアン勾配計算については、仮想境界(1130)上のサンプルのみが使用される。同様に、図11Bを参照すると、CTU境界(1121)からシフトされた仮想境界(1131)の下の4×4ブロック(1111)の1Dラプラシアン勾配計算については、仮想境界(1131)の下のサンプルのみが使用される。1Dラプラシアン勾配計算で使用されるサンプル数の減少を考慮することによって、活性値Aの量子化をしかるべくスケーリングすることができる。
フィルタリング処理については、ルーマ成分とクロマ成分の両方に仮想境界での対称パディング操作を使用することができる。図12のA~Fは、仮想境界におけるルーマ成分についてのそのような修正されたALFフィルタリングの例を示している。フィルタリングされるサンプルが仮想境界の下に位置する場合、仮想境界の上に位置する近傍サンプルがパディングされることができる。フィルタリングされるサンプルが仮想境界の上に位置する場合、仮想境界の下に位置する近傍サンプルがパディングされることができる。図12Aを参照すると、近傍サンプルC0は、仮想境界(1210)の下に位置するサンプルC2でパディングされることができる。図12Bを参照すると、近傍サンプルC0は、仮想境界(1220)の上に位置するサンプルC2でパディングされることができる。図12Cを参照すると、近傍サンプルC1~C3は、それぞれ、仮想境界(1230)の下に位置するサンプルC5~C7でパディングされることができる。図12Dを参照すると、近傍サンプルC1~C3は、それぞれ、仮想境界(1240)の上に位置するサンプルC5~C7でパディングされることができる。図12Eを参照すると、近傍サンプルC4~C8は、それぞれ、仮想境界(1250)の下に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。図12Fを参照すると、近傍サンプルC4~C8は、それぞれ、仮想境界(1260)の上に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。
いくつかの例では、サンプルおよび近傍サンプルが仮想境界の左側(または右側)および右側(または左側)に位置する場合、上記の説明を適切に適応させることができる。
本開示のある側面によれば、符号化効率を改善するために、フィルタリング・プロセスに基づいてピクチャーを分割することができる。いくつかの例では、CTUは、最大符号化単位(LCU)とも呼ばれる。一例では、CTUまたはLCUは、64×64ピクセルのサイズを有することができる。いくつかの実施形態では、LCU整列されたピクチャー四分木分割を、フィルタリングに基づく分割のために使用することができる。いくつかの例では、符号化単位同期的なピクチャー四分木ベースの適応ループ・フィルタを使用することができる。たとえば、ルーマ・ピクチャーをいくつかのマルチレベルの四分木パーティションに分割し、各パーティション境界をLCUの境界に整列させる。各パーティションは独自のフィルタリング・プロセスをもち、よって、フィルタ単位(FU)と呼ばれる。
いくつかの例では、2パスのエンコード・フローを使用することができる。2パスのエンコード・フローの最初のパスで、ピクチャーの四分木分割パターンと各FUの最良のフィルタを決定することができる。いくつかの実施形態では、ピクチャーの四分木分割パターンの決定およびFUのための最良のフィルタの決定は、フィルタリング歪みに基づく。フィルタリング歪みは、決定プロセスにおける高速フィルタリング歪み推定(fast filtering distortion estimation、FFDE)技法により推定できる。ピクチャーは、四分木パーティションを使用して分割される。決定された四分木分割パターンおよびすべてのFUの選択されたフィルタに従い、再構成されたピクチャーをフィルタリングすることができる。
2パスのエンコード・フローの2回目のパスでは、CU同期的なALFオン/オフ制御が実行される。ALFのオン/オフ結果に従って、最初のフィルタリングされたピクチャーが、再構成されたピクチャーによって部分的に回復される。
具体的には、いくつかの例では、レート‐歪み基準を使用することによって、ピクチャーをマルチレベル四分木パーティションに分割するために、トップダウン分割戦略が採用される。各パーティションは、フィルタ単位(FU)と呼ばれる。分割プロセスは、四分木パーティションをLCU境界に整列させる。FUのエンコード順序はzスキャン順に従う。
図13は、本開示のいくつかの実施形態による分割例を示す。図13の例では、ピクチャー(1300)は、10個のFUに分割され、エンコード順序は、FU0、FU1、FU2、FU3、FU4、FU5、FU6、FU7、FU8、およびFU9である。
図14は、ピクチャー(1300)についての四分木分割パターン(1400)を示す。図14の例では、ピクチャー分割パターンを示すために分割フラグが使用される。たとえば、"1"はブロックに対して四分木パーティションが実行されることを示し、"0"はブロックがそれ以上パーティション分割されないことを示す。いくつかの例では、最小サイズのFUはLCUサイズをもち、最小サイズのFUについては分割フラグは必要ない。分割フラグは、図14に示されるように、z順でエンコードされ、送信される。
いくつかの例では、各FUのフィルタは、レート‐歪み基準に基づいて、2つのフィルタ集合から選択される。第1の集合は、現在のFUのために導出された1/2対称正方形および菱形フィルタを有する。第2の集合は、時間遅延フィルタ・バッファに由来し、時間遅延フィルタ・バッファは、以前のピクチャーのFUについて以前に導出されたフィルタを記憶している。これら2つの集合の最小レート‐歪みコストをもつフィルタが、現在のFUについて選択されることができる。同様に、現在のFUが最小のFUではなく、さらに4つの子FUに分割されることができる場合、4つの子FUのレート‐歪みコストが計算される。分割ケースと非分割ケースのレート‐歪みコストを再帰的に比較することにより、ピクチャー四分木分割パターンを決定することができる。
いくつかの例では、FUの最大数を制限するために、最大四分木分割レベルを使用することができる。一例では、最大四分木分割レベルが2の場合、FUの最大数は16である。さらに、四分木分割決定の間に、最低四分木レベルにある16個のFU(最小FU)のウィーナー係数を導出するための相関値を再利用することができる。残りのFUは、最低四分木レベルにある16個のFUの相関からウィーナー・フィルタを導出することができる。したがって、この例では、すべてのFUのフィルタ係数を導出するために、1つのフレーム・バッファ・アクセスが実行されるだけである。
四分木分割パターンが決定された後、フィルタリング歪みをさらに低減するために、CU同期的なALFオン/オフ制御を実行することができる。各リーフCUにおけるフィルタリング歪みと非フィルタリング歪みを比較することにより、リーフCUはそのローカル領域において明示的にALFのオン/オフを切り換えることができる。いくつかの例では、ALFオン/オフ結果に従ってフィルタ係数を再設計することによって、符号化効率はさらに改善されうる。
成分横断フィルタリング・プロセスは、成分横断適応ループ・フィルタ(cross-component adaptive loop filter、CC-ALF)のような成分横断フィルタを適用することができる。成分横断フィルタは、ルーマ成分(たとえばルーマCB)のルーマ・サンプル値を使用して、クロマ成分(たとえばルーマCBに対応するクロマCB)を洗練することができる。一例では、ルーマCBとクロマCBはCUに含まれる。
図15は、本開示のある実施形態による、クロマ成分を生成するために使用される成分横断フィルタ(たとえば、CC-ALF)を示す。いくつかの例において、図15は、第1のクロマ成分(たとえば、第1のクロマCB)、第2のクロマ成分(たとえば、第2のクロマCB)、およびルーマ成分(たとえば、ルーマCB)のフィルタリング・プロセスを示す。ルーマ成分は、サンプル適応オフセット(SAO)フィルタ(1510)によってフィルタリングされ、SAOフィルタリングされたルーマ成分(1541)を生成することができる。SAOフィルタリングされたルーマ成分(1541)は、ALFルーマ・フィルタ(1516)によってさらにフィルタリングされ、フィルタリングされたルーマCB(1561)になる(たとえば、「Y」)。
第1のクロマ成分は、SAOフィルタ(1512)およびALFクロマ・フィルタ(1518)によってフィルタリングされ、第1の中間成分(1552)を生成することができる。さらに、SAOフィルタリングされたルーマ成分(1541)は、第1のクロマ成分について、成分横断フィルタ(たとえば、CC-ALF)(1521)によってフィルタリングされて、第2の中間成分(1542)を生成することができる。その後、第2の中間成分(1542)および第1の中間成分(1552)の少なくとも一方に基づいて、フィルタリングされた第1のクロマ成分(1562)(たとえば、「Cb」)が生成されることができる。一例では、フィルタリングされた第1のクロマ成分(1562)(たとえば、「Cb」)は、第2の中間成分(1542)および第1の中間成分(1552)を加算器(1522)を用いて組み合わせることによって生成されることができる。第1のクロマ成分についての成分横断適応ループ・フィルタリング・プロセスは、CC-ALF(1521)によって実行されるステップと、たとえば加算器(1522)によって実行されるステップとを含むことができる。
上記の説明は、第2のクロマ成分に適応されることができる。第2のクロマ成分は、SAOフィルタ(1514)およびALFクロマ・フィルタ(1518)によってフィルタリングされ、第3の中間成分(1553)を生成することができる。さらに、SAOフィルタリングされたルーマ成分(1541)は、第2のクロマ成分についての成分横断フィルタ(たとえば、CC-ALF)(1531)によってフィルタリングされて、第4の中間成分(1543)を生成することができる。その後、第4の中間成分(1543)および第3の中間成分(1553)の少なくとも一方に基づいて、フィルタリングされた第2のクロマ成分(1563)(たとえば、「Cr」)が生成されることができる。一例において、フィルタリングされた第2のクロマ成分(1563)(たとえば、「Cr」)は、第4の中間成分(1543)および第3の中間成分(1553)を加算器(1532)を用いて組み合わせることによって生成されることができる。一例では、第2のクロマ成分についての成分横断適応ループ・フィルタリング・プロセスは、CC-ALF(1531)によって実行されるステップと、たとえば加算器(1532)によって実行されるステップとを含むことができる。
成分横断フィルタ(たとえば、CC-ALF(1521)、CC-ALF(1531))は、各クロマ成分(たとえば、第1のクロマ成分、第2のクロマ成分)を洗練するために、任意の適切なフィルタ形状を有する線形フィルタをルーマ成分(またはルーマ・チャネル)に適用することによって動作することができる。
図16は、本開示のある実施形態による、フィルタ(1600)の例を示す。フィルタ(1600)は、ゼロでないフィルタ係数およびゼロのフィルタ係数を含んでいてもよい。フィルタ(1600)は、フィルタ係数(1610)によって形成されたダイヤモンド形状(1620)(黒で塗りつぶされた円で示される)を有する。一例では、フィルタ(1600)におけるゼロでないフィルタ係数はフィルタ係数(1610)に含まれ、フィルタ係数(1610)に含まれないフィルタ係数はゼロである。よって、フィルタ(1600)におけるゼロでないフィルタ係数は、ダイヤモンド形状(1620)に含まれ、ダイヤモンド形状(1620)に含まれないフィルタ係数はゼロである。一例では、フィルタ(1600)のフィルタ係数の数は、フィルタ係数(1610)の数に等しく、これは、図16に示される実施形態では18である。
CC-ALFは、任意の適切なフィルタ係数(CC-ALFフィルタ係数とも呼ばれる)を含むことができる。図15に戻って参照すると、CC-ALF(1521)およびCC-ALF(1531)は、図16に示されるダイヤモンド形状(1620)などと同じフィルタ形状、および同じ数のフィルタ係数を有することができる。一例では、CC-ALF(1521)におけるフィルタ係数の値は、CC-ALF(1531)のフィルタ係数の値とは異なる。
一般に、CC-ALF内のフィルタ係数(たとえば、ゼロでないフィルタ係数)は、たとえば、APS内で伝送されうる。一例では、フィルタ係数は、ある因子(たとえば、210)によってスケーリングされることができ、固定小数点表現のために丸められることができる。CC-ALFの適用は、可変ブロック・サイズで制御されることができ、サンプルの各ブロックについて受領されるコンテキスト符号化されたフラグ(たとえば、CC-ALFイネーブル・フラグ)によって信号伝達されることができる。CC-ALFイネーブル・フラグのようなコンテキスト符号化されたフラグは、ブロック・レベルのような任意の適切なレベルで信号伝達されることができる。ブロック・サイズは、CC-ALFイネーブル・フラグとともに、各クロマ成分についてスライス・レベルで受領されることができる。いくつかの例では、(クロマ・サンプル単位での)ブロック・サイズ16×16、32×32、64×64をサポートすることができる。
図17は、本開示のいくつかの実施形態によるCC-ALFについての構文例を示す。図17の例では、alf_ctb_cross_component_cross_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は、成分横断Cbフィルタが使用されるかどうかを示すインデックスであり、使用される場合はその成分横断Cbフィルタのインデックスである。たとえば、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しい場合、成分横断Cbフィルタはルーマ位置(xCtb,yCtb)におけるCb色成分サンプルのブロックには適用されず;alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しくない場合、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は、適用されるべきフィルタについてのインデックスである。たとえば、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]番目の成分横断Cbフィルタがルーマ位置(xCtb,yCtb)におけるCb色成分サンプルのブロックに適用される。
さらに、図17の例では、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が、成分横断Crフィルタが使用されるかどうかを示すために使用され、使用される成分横断Crフィルタのインデックスである。たとえば、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しい場合、成分横断Crフィルタはルーマ位置(xCtb,yCtb)におけるCr色成分サンプルのブロックには適用されず、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しくない場合、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は成分横断Crフィルタのインデックスである。たとえば、alf_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]番目の成分横断Crフィルタがルーマ位置(xCtb,yCtb)におけるCr色成分サンプルのブロックに適用されることができる。
いくつかの例では、クロマ・サブサンプリング技法が使用され、よって、クロマ・ブロックのそれぞれにおけるサンプルの数を、ルーマ・ブロックにおける多数のサンプルよりも少なくすることができる。クロマ・サブサンプリング・フォーマット(クロマ・サブサンプリング・フォーマットとも呼ばれ、たとえば、chroma_format_idcによって指定される)は、クロマ・ブロックのそれぞれと対応するルーマ・ブロックとの間のクロマ水平サブサンプリング因子(たとえば、SubWidthC)およびクロマ垂直サブサンプリング因子(たとえば、SubHeightC)を示すことができる。一例では、クロマ・サブサンプリング・フォーマットは4:2:0であり、よって、クロマ水平サブサンプリング因子(たとえば、SubWidthC)およびクロマ垂直サブサンプリング因子(たとえば、SubHeightC)は、図18A、18Bに示されるように、2である。一例では、クロマ・サブサンプリング・フォーマットは4:2:2であり、よって、クロマ水平サブサンプリング因子(たとえばSubWidthC)は2であり、クロマ垂直サブサンプリング因子(たとえばSubHeightC)は1である。一例では、クロマ・サブサンプリング・フォーマットは4:4:4であり、よって、クロマ水平サブサンプリング因子(たとえば、SubWidthC)およびクロマ垂直サブサンプリング因子(たとえば、SubHeightC)は1である。クロマ・サンプル・タイプ(クロマ・サンプル・ポジションとも呼ばれる)は、ルーマ・ブロック内の少なくとも1つの対応するルーマ・サンプルに対するクロマ・ブロック内のクロマ・サンプルの相対位置を示すことができる。
図18A~18Bは、本開示の実施形態による、ルーマ・サンプルに対するクロマ・サンプルの例示的な位置を示す。図18Aを参照すると、ルーマ・サンプル(1801)は、行(1811)~(1818)に位置する。図18Aに示されるルーマ・サンプル(1801)は、ピクチャーの一部を表すことができる。一例では、ルーマ・ブロック(たとえば、ルーマCB)は、ルーマ・サンプル(1801)を含む。ルーマ・ブロックは、クロマ・サブサンプリング・フォーマットが4:2:0である2つのクロマ・ブロックに対応することができる。一例では、各クロマ・ブロックはクロマ・サンプル(1803)を含む。各クロマ・サンプル(たとえば、クロマ・サンプル(1803(1)))は、4つのルーマ・サンプル(たとえば、ルーマ・サンプル(1801(1))~(1801(4)))に対応する。一例では、4つのルーマ・サンプルは、左上のサンプル(1801(1))、右上のサンプル(1801(2))、左下のサンプル(1801(3))、および右下のサンプル(1801(4))である。クロマ・サンプル(たとえば、(1803(1)))は、左上のサンプル(1801(1))と左下のサンプル(1801(3))の間の左中央位置に位置し、クロマ・サンプル(1803)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ0と称することができる。クロマ・サンプル・タイプ0は、左上のサンプル(1801(1))と左下のサンプル(1801(3))の中間の左中央位置に対応する相対位置0を示す。4つのルーマ・サンプル(たとえば(1801(1))~(1801(4)))は、クロマ・サンプル(1803)(1)の近傍ルーマ・サンプルと称されることができる。
一例では、各クロマ・ブロックは、クロマ・サンプル(1804)を含む。クロマ・サンプル(1803)に関する上記の説明は、クロマ・サンプル(1804)に適応されることができ、よって、簡潔のため、詳細な説明を省略することができる。クロマサンプル(1804)のそれぞれは、対応する4つのルーマ・サンプルの中心位置に位置することができ、クロマサンプル(1804)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ1と称されることができる。クロマ・サンプル・タイプ1は、4つのルーマ・サンプル(たとえば(1801(1))~(1801(4)))の中心位置に対応する相対位置1を示す。たとえば、クロマサンプル(1804)の1つは、ルーマ・サンプル(1801(1))~(1801(4))の中心部分に位置することができる。
一例では、各クロマ・ブロックは、クロマ・サンプル(1805)を含む。クロマサンプル(1805)のそれぞれは、対応する4つのルーマサンプル(1801)の左上のサンプルと共位置である左上の位置に位置することができ、クロマサンプル(1805)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ2と称されることができる。よって、各クロマサンプル(1805)は、それぞれのクロマ・サンプルに対応する4つのルーマサンプル(1801)の左上サンプルと共位置にある。クロマ・サンプル・タイプ2は、4つのルーマサンプル(1801)の左上の位置に対応する相対位置2を示す。たとえば、クロマサンプル(1805)の1つは、ルーマ・サンプル(1801(1))~(1801(4))の左上の位置に位置することができる。
一例では、各クロマ・ブロックは、クロマ・サンプル(1806)を含む。クロマサンプル(1806)のそれぞれは、対応する左上のサンプルと対応する右上のサンプルとの間の上中央位置に位置することができ、クロマサンプル(1806)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ3と称されることができる。クロマ・サンプル・タイプ3は、左上のサンプル(および右上のサンプル)の間の上中央位置に対応する相対位置3を示す。たとえば、クロマサンプル(1806)の1つは、ルーマ・サンプル(1801(1))~(1801(4))の上中央位置に位置することができる。
一例では、各クロマ・ブロックは、クロマ・サンプル(1807)を含む。クロマサンプル(1807)のそれぞれは、対応する4つのルーマサンプル(1801)の左下のサンプルと共位置である左下位置に位置することができ、クロマサンプル(1807)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ4と称されることができる。よって、各クロマサンプル(1807)は、それぞれのクロマ・サンプルに対応する4つのルーマサンプル(1801)の左下サンプルと共位置にある。クロマ・サンプル・タイプ4は、4つのルーマサンプル(1801)の左下位置に対応する相対位置4を示す。たとえば、クロマサンプル(1807)の1つは、ルーマ・サンプル(1801(1))~(1801(4))の左下位置に位置することができる。
一例では、各クロマ・ブロックは、クロマ・サンプル(1808)を含む。クロマサンプル(1808)のそれぞれは、左下サンプルと右下サンプルとの間の下中央位置に位置し、クロマサンプル(1808)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ5と称されることができる。クロマ・サンプル・タイプ5は、4つのルーマサンプル(1801)の左下サンプルと右下サンプルの間の下中央位置に対応する相対位置5を示す。たとえば、クロマサンプル(1808)の1つは、ルーマ・サンプル(1801(1))~(1801(4))の左下サンプルと右下のサンプルとの間に位置することができる。
一般に、クロマ・サブサンプリング・フォーマットについて、任意の適切なクロマ・サンプル・タイプを用いることができる。クロマ・サンプル・タイプ0~5は、クロマ・サブサンプリング・フォーマット4:2:0で説明される例示的なクロマ・サンプル・タイプである。クロマ・サブサンプリング・フォーマット4:2:0については、追加的なクロマ・サンプル・タイプが使用されてもよい。さらに、他のクロマ・サンプル・タイプおよび/またはクロマ・サンプル・タイプ0~5の変形が、4:2:2、4:4:4などの他のクロマ・サブサンプリング・フォーマットのために使用されることができる。一例では、クロマ・サンプル(1805)および(1807)を組み合わせたクロマ・サンプル・タイプがクロマ・サブサンプリング・フォーマット4:2:2のために使用される。
一例では、ルーマ・ブロックは、4つのルーマ・サンプル(たとえば、(1801(1))~(1801(4)))の上の2つのサンプル(たとえば、(1801(1))~(1801(2)))と下の2つのサンプル(たとえば、(1801(3))~(1801(4)))をそれぞれ含む、行(1811)~(1812))のような交互の行をもつと考えられる。よって、行(1811)、(1813)、(1815)、および(1817)は、現在の行と称されることができ(表フィールドとも呼ばれる)、行(1812)、(1814)、(1816)、および(1818)は、次の行と称されることができる(裏フィールドとも呼ばれる)。4つのルーマ・サンプル(たとえば(1801(1))~(1801(4)))は、現在の行(たとえば(1811))と次の行(たとえば(1812))に位置する。相対位置2~3は現在の行に位置し、相対位置0~1は各現在の行とそれぞれの次の行との間に位置し、相対位置4~5は次の行に位置する。
クロマ・サンプル(1803)、(1804)、(1805)、(1806)、(1807)、または(1808)は、各クロマ・ブロックにおける行(1851)~(1854)に位置する。行(1851)~(1854)の特定の位置は、クロマ・サンプルのクロマ・サンプルのタイプに依存することができる。たとえば、それぞれのクロマ・サンプル・タイプ0~1を有するクロマサンプル(1803)~(1804)について、行(1851)は行(1811)~(1812)の間に位置する。それぞれのクロマ・サンプル・タイプ2~3を有するクロマサンプル(1805)~(1806)については、行(1851)が現在の行(1811)と共位置にある。それぞれのクロマ・サンプル・タイプ4~5を有するクロマサンプル(1807)~(1808)については、行(1851)は次の行(1812)と共位置にある。上記の説明は、行(1852)~(1854)に適切に適応されることができ、詳細な説明は、簡潔のために省略される。
任意の適当な走査方法を使用して、図18Aに上述したルーマ・ブロックおよび対応するクロマ・ブロックを表示、記憶、および/または伝送することができる。一例では、順次走査が使用される。
図18Bに示されるように、インターレースされた走査が使用されることができる。前述のように、クロマ・サブサンプリング・フォーマットは4:2:0である(たとえば、chroma_format_idcは1に等しい)。一例では、変数クロマロケーションタイプ(たとえば、ChromaLocType)は、現在の行(たとえば、ChromaLocTypeがchroma_sample_loc_type_top_fieldである)または次の行(たとえば、ChromaLocTypeがchroma_sample_loc_type_bottom_fieldである)を示す。現在の行(1811)、(1813)、(1815)および(1817)および次の行(1812)、(1814)、(1816)および(1818)を別々に走査することができる。たとえば、現在の行(1811)、(1813)、(1815)および(1817)を最初に走査し、続いて次の行(1812)、(1814)、(1816)および(1818)がスキャンされる。現在の行はルーマサンプル(1801)を含むことができ、次の行はルーマサンプル(1802)を含むことができる。
同様に、対応するクロマ・ブロックがインターレース走査されることができる。塗りつぶされていないクロマ・サンプル(1803)、(1804)、(1805)、(1806)、(1807)または(1808)を含む行(1851)および(1853)は、現在の行(または現在のクロマ行)と称されることができ、グレーで塗りつぶされたクロマ・サンプル(1803)、(1804)、(1805)、(1806)、(1807)または(1808)を含む行(1852)および(1854)は、次の行(または次のクロマ行)と称されることができる。一例では、インターレースされた走査の間、行(1851)および(1853)が最初に走査され、続いて行(1852)および(1854)が走査される。
いくつかの例では、制約された方向性向上フィルタリング技法を使用することができる。ループ内の制約された方向性向上フィルタ(CDEF)の使用は、画像の詳細を保持しながら符号化アーチファクトを除去することができる。一例(たとえば、HEVC)においては、サンプル適応オフセット・アルゴリズムは、異なるクラスのピクセルについて信号オフセットを定義することによって、同様の目標を達成することができる。SAOとは異なり、CDEFは非線形空間フィルタである。いくつかの例において、CDEFは、容易にベクトル化可能である(すなわち、単一命令複数データ(SIMD)演算で実装可能である)ように制約されうる。メジアンフィルタ、バイラテラルフィルタのような他の非線形フィルタは、同じ仕方では扱えないことに留意されたい。
いくつかの場合には、符号化された画像におけるリンギング・アーチファクトの量は、量子化きざみサイズにほぼ比例する傾向がある。詳細の量は入力画像の特性であるが、量子化された画像において保持される最小の詳細も量子化きざみサイズに比例する傾向がある。所与の量子化きざみサイズについて、リンギングの振幅は、一般に、詳細の振幅よりも小さい。
CDEFは、各ブロックの方向を識別し、次いで、識別された方向に沿って適応的にフィルタリングし、識別された方向から45度回転された諸方向に沿って、より少ない程度でフィルタリングするために使用されることができる。いくつかの例では、エンコーダは、フィルタ強度を探索することができ、フィルタ強度は明示的に信号伝達されることができ、これにより、ぼけに対する高い度合いの制御が可能になる。
具体的には、いくつかの例において、方向探索は、ブロッキング解除フィルタの直後に、再構成されたピクセルに対して実行される。これらのピクセルはデコーダに利用可能であるので、デコーダによって方向を探索することができ、よって、方向は一例においては信号伝達を必要としない。いくつかの例では、方向探索は、8×8ブロックのような、直線でないエッジを適切に扱うのに十分小さいが量子化された画像に適用されるときに方向を確実に推定するのに十分大きい、あるブロック・サイズで動作することができる。また、8×8領域にわたって一定方向を有することにより、フィルタのベクトル化が容易になる。いくつかの例において、各ブロック(たとえば、8×8)は、完璧な方向性のブロックと比較されて、差を決定することができる。完璧な方向性のブロックは、1つの方向のラインに沿ったピクセルのすべてが同じ値をもつブロックである。一例では、ブロックと完璧な方向性のブロックのそれぞれの差の指標、たとえば平方差分和(SSD)、二乗平均平方根(RMS)誤差を計算することができる。次いで、最小差(たとえば、最小のSSD、最小のRMS等)を有する完璧な方向性のブロックを決定することができ、決定された完璧な方向性のブロックの方向が、そのブロック内のパターンに最も良く一致する方向であることができる。
図19は、本開示のある実施形態による方向探索の一例を示す。一例では、ブロック(1910)は、再構成され、ブロッキング解除フィルタから出力される8×8ブロックである。図19の例では、方向探索は、ブロック(1910)について(1920)によって示される8方向から方向を決定することができる。8つの完璧な方向性のブロック(1930)は、それぞれ8つの方向(1920)に対応して形成される。ある方向に対応する完璧な方向性のブロックは、その方向の線に沿ったピクセルが同じ値を有するブロックである。さらに、ブロック(1910)と完璧な方向性のブロック(1930)のそれぞれとのSSD、RMS誤差などの差の指標を計算することができる。図19の例では、RMS誤差が(1940)によって示される。(1943)によって示されているように、ブロック(1910)と完璧な方向性のブロック(1933)とのRMS誤差が最小であり、よって方向(1923)がブロック(1910)のパターンに最もよく一致する方向である。
ブロックの方向が識別された後、非線形低域通過方向性フィルタが決定されることができる。たとえば、非線形低域通過方向性フィルタのフィルタ・タップは、識別された方向に沿って整列されて、方向性エッジまたはパターンを保持しながらリンギングを低減することができる。しかしながら、いくつかの例では、指向性フィルタリングのみではリンギングを十分に低減できない場合がある。一例では、識別された方向に沿って存在するのでないピクセルに対して、追加のフィルタ・タップも使用される。ぼけのリスクを減らすために、追加のフィルタ・タップはより保存的に扱われる。このため、CDEFは、一次フィルタ・タップと二次フィルタ・タップを含む。一例では、完全な2-D CDEFフィルタは式(14)として表すことができる:
ここで、Dはダンピング・パラメータを表し、S(p)は一次フィルタ・タップの強度を表し、S(s)は二次フィルタ・タップの強度を表し、round(・)はタイの場合にゼロから離れるように丸める演算を表し、wはフィルタの重みを表し、f(d,S,D)はフィルタリングされたピクセルと近傍ピクセルのそれぞれとの間の差に対して作用する制約条件関数である。一例では、差が小さい場合、関数f(d,S,D)はDに等しく、フィルタを線形フィルタのように振る舞わせることができ、差が大きい場合、関数f(d,S,D)は0に等しく、フィルタ・タップを事実上無視することができる。
いくつかの例では、ブロッキング解除動作を越えて一般的にノイズ除去し、エッジの品質を向上させるために、ブロッキング解除後にビデオ符号化において、ループ内復元方式が使用される。一例では、ループ内復元方式は、適切なサイズのタイル毎にフレーム内で切り換え可能である。ループ内復元方式(in-loop restoration scheme)は、分離可能な対称ウィーナー・フィルタ(separable symmetric Wiener filter)、部分空間投影を有するデュアル自己案内フィルタ(dual self-guided filter with subspace projection)、およびドメイン変換再帰フィルタ(domain transform recursive filter)に基づいている。コンテンツ統計はフレーム内で実質的に変化しうるので、ループ内復元方式は、フレームの異なる領域において異なる方式がトリガーされうる切り換え可能な枠組み内に統合される。
分離可能な対称ウィーナー・フィルタは、ループ内復元方式の一つでありうる。いくつかの例では、劣化したフレーム内のすべてのピクセルは、その周囲のw×w窓内のピクセルの非因果的フィルタリングされたバージョンとして再構成されることができる。ここで、w=2r+1は整数rに対して奇数である。2Dフィルタ・タップが列ベクトル化された形でw2×1要素のベクトルFで表される場合、直接的なLMMSE最適化により、フィルタ・パラメータはF=H-1Mによって与えられることになる。ここで、H=E[XXT]はxの自己共分散、ピクセル周囲のw×w窓内のw2個のサンプルの列ベクトル化されたバージョンであり、M=E[YXT]は、xの、スカラー・ソース・サンプルyとの相互相関であり、推定されるべきものである。一例では、エンコーダは、ブロッキング解除されたフレームおよびソース内の実現値からHおよびMを推定することができ、結果として得られたフィルタFをデコーダに送ることができる。しかしながら、これは、w2個のタップを送信する際に実質的なビットレート・コストを被るだけでなく、分離可能でないフィルタリングも、復号を法外に複雑にする。いくつかの実施形態では、Fの性質にいくつかの追加の制約条件が課される。第1の制約条件については、フィルタリングが分離可能な水平および垂直のw-タップ畳み込みとして実装できるように、Fは分離可能であるように制約される。第2の制約条件については、水平フィルタと垂直フィルタのそれぞれが対称になるように制約される。第3の制約条件については、水平フィルタ係数と垂直フィルタ係数の両方の合計が1になると想定される。
部分空間投影を有するデュアル自己案内フィルタリングは、ループ内復元方式の一つでありうる。案内されるフィルタリングは、フィルタリングされていないサンプルxからフィルタリングされた出力yを計算するために、式(15):
y=Fx+G Eq.(15)
によって示される局所線形モデルが使用される画像フィルタリング技法である。ここで、FとGは、劣化した画像の統計とフィルタリングされたピクセルの近傍の案内画像に基づいて決定される。案内画像が劣化した画像と同じであれば、結果として得られるいわゆる自己案内フィルタリングは、エッジを保存する平滑化の効果を有する。一例では、自己案内式フィルタリングの特定の形を使用することができる。自己案内フィルタリングの特定の形は、半径rとノイズ・パラメータeの2つのパラメータに依存し、以下の諸ステップとして列挙される:
1.各ピクセルのまわりの(2r+1)×(2r+1)窓におけるピクセルの平均μおよび分散σ2を得る。このステップは、統合イメージングに基づくボックス・フィルタリングを用いて効率的に実装できる。
2.すべてのピクセルについて:f=σ2/(σ2+e);g=(1-f)μを計算する。
3.使用するピクセルのまわりの3×3窓におけるf値およびg値の平均として、各ピクセルについてのFとGを計算する。
自己案内フィルタの特定の形は、rおよびeによって制御され、ここで、rが大きいほど空間分散(spatial variance)が大きく、eが大きいほどレンジ分散(range variance)が大きいことを意味する。
図20は、いくつかの例における部分空間投影を示す例を示す。図20に示されるように、復元X1、X2のいずれもソースYに近くないが、適切な乗数{α,β}は、それらがいくぶん正しい方向に動いている限り、それらをソースYにずっと近づけることができる。
いくつかの例(たとえば、HEVC)では、サンプル適応オフセット(SAO)と呼ばれるフィルタリング技法を使用することができる。いくつかの例では、SAOは、ブロッキング解除フィルタの後に再構成信号に適用される。SAOは、スライス・ヘッダにおいて与えられるオフセット値を使用することができる。いくつかの例では、ルーマ・サンプルについては、エンコーダは、あるスライスに対してSAOを適用する(イネーブルする)かどうかを決定できる。SAOが有効にされると、現在のピクチャーは、符号化単位を4つの部分領域に再帰的に分割することを許容し、各部分領域は、その部分領域内の特徴に基づいて、複数のSAOタイプからSAOタイプを選択することができる。
図21は、本開示のある実施形態による、複数のSAOタイプの表(2100)を示す。表(2100)では、SAOタイプ0~6が示されている。SAOタイプ0は、SAO適用がないことを示すために使用されることに留意されたい。また、SAOタイプ1~SAOタイプ6の各SAOタイプは複数のカテゴリーを含む。SAOは、部分領域の再構成されたピクセルをカテゴリーに分類し、部分領域内の各カテゴリーのピクセルにオフセットを加えることによって歪みを低減することができる。いくつかの例では、エッジ特性をSAOタイプ1~4におけるピクセル分類のために使用でき、ピクセル強度は、SAOタイプ5~6におけるピクセル分類のために使用できる。
具体的には、SAOタイプ5~6のようなある実施形態では、部分領域のすべてのピクセルを複数のバンドに分類するために、バンドオフセット(BO)が使用できる。複数のバンドの各バンドは、同じ強度区間内のピクセルを含む。いくつかの例では、強度範囲は、ゼロから最大強度値(たとえば、8ビットピクセルについては255)までの32の区間のような複数の区間に均等に分割され、各区間は、オフセットと関連付けられる。さらに、一例では、32個のバンドは、第1のグループおよび第2のグループのような2つのグループに分割される。第1のグループは、中央の16個のバンド(たとえば、強度範囲の中央にある16個の区間)を含み、第2のグループは、残りの16個のバンド(たとえば、強度範囲の低い側にある8個の区間と強度範囲の高い側にある8個の区間)を含む。一例では、2つのグループの一方のオフセットのみが伝送される。いくつかの実施形態では、BOにおけるピクセル分類操作が使用される場合、各ピクセルの5つの最上位ビットが、バンド・インデックスとして直接使用できる。
さらに、SAOタイプ1~4のようなある実施形態では、エッジ・オフセット(EO)が、ピクセル分類およびオフセットの決定のために使用できる。たとえば、ピクセル分類は、エッジ方向情報を考慮して、1次元の3ピクセル・パターン(3-pixel patterns)に基づいて決定できる。
図22は、いくつかの例におけるエッジ・オフセットにおけるピクセル分類のための3ピクセル・パターンの例を示す。図22の例では、第1のパターン(2210)(3つのグレー・ピクセルで示す)は0度パターンと称され(水平方向が0度パターンに関連付けられる)、第2のパターン(2220)(3つのグレー・ピクセルで示す)が90度パターンと称され(対直方向が90度パターンに関連付けられる)、第3のパターン(2230)(3つのグレー・ピクセルで示す)が135度パターンと称され(135度対角方向が135度パターンに関連付けられる)、第4のパターン(2240)(3つのグレー・ピクセルで示す)が45度パターンと称される(45度対角方向が45度パターンに関連付けられる)。一例では、図22に示される4つの方向パターンのうちの1つが、部分領域についてのエッジ方向情報を考慮して選択されることができる。選択は、符号化されたビデオ・ビットストリームにおいて、一例ではサイド情報として送ることができる。次いで、部分領域内のピクセルは、各ピクセルを、方向パターンに関連する方向上の2つの近傍ピクセルと比較することによって、複数のカテゴリーに分類できる。
図23は、いくつかの例におけるエッジ・オフセットについてのピクセル分類規則についての表(2300)を示す。具体的には、ピクセルc(図22の各パターンにも示されている)は、2つの近傍ピクセル(図22の各パターンにおいて灰色で示されている)と比較され、ピクセルcは、図23に示されているピクセル分類規則に従った比較に基づいて、カテゴリー0~4のうちの1つに分類されることができる。
いくつかの実施形態では、デコーダ側のSAOは、ラインバッファを節約することができるように、最大符号化単位(LCU)(たとえば、CTU)とは独立して動作させることができる。いくつかの例では、90度、135度、45度の分類パターンが選択される場合には、各LCUにおける上および下の行のピクセルはSAO処理されず;0度、135度、45度のパターンが選択される場合には、各LCUにおける左端と右端の列のピクセルはSAO処理されない。
図24は、近傍CTUからパラメータがマージされない場合に、CTUについて信号伝達される必要がある場合がある構文の例(2400)を示す。たとえば、構文要素sao_type_idx[cldx][rx][ry]は、部分領域のSAOタイプを示すように信号伝達されることができる。SAOタイプは、BO(バンド・オフセット)またはEO(エッジ・オフセット)でありうる。sao_type_idx[cldx][rx][ry]の値が0である場合、そのことは、SAOがオフであることを示し;1~4の値は、0°、90°、135°、45°に対応する4つのEOカテゴリーのうちの1つが使用されることを示し;5の値は、BOが使用されることを示す。図24の例では、BOおよびEOタイプのそれぞれは、信号伝達される4つのSAOオフセット値(sao_offset[cIdx][rx][ry][0]~sao_offset[cIdx][rx][ry][3])を有する。
一般に、フィルタリング・プロセスは、第1の色成分の再構成されたサンプルを入力(たとえば、YもしくはCbもしくはCrまたはRもしくはGもしくはB)として使用して出力を生成することができ、フィルタリング・プロセスの出力は、第1の色成分と同じであってもよいし、あるいは第1の色成分とは異なる別の色成分であってもよい第2の色成分に適用される。
成分横断フィルタリング(cross-component filtering、CCF)の関連した例では、フィルタ係数は、いくつかの数式に基づいて導出される。導出されたフィルタ係数はエンコーダ側からデコーダ側へ信号伝達され、導出されたフィルタ係数は線形結合を用いてオフセットを生成するために使用される。生成されたオフセットは、次いで、フィルタリング・プロセスとして再構成されたサンプルに加算される。たとえば、オフセットはルーマ・サンプルとフィルタリング係数の線形結合に基づいて生成され、生成されたオフセットは再構成されたクロマ・サンプルに加えられる。CCFのこの関連した例は、再構成されたルーマ・サンプル値と、もとのクロマ・サンプルと再構成されたクロマ・サンプルの間のデルタ値との間の線形マッピング関係の前提に基づいている。しかしながら、再構成されたルーマ・サンプル値ともとのクロマ・サンプルと再構成されたクロマ・サンプルとの間のデルタ値との間のマッピングは、必ずしも、線形マッピング・プロセスに従うわけではなく、よって、CCFの符号化性能は線形マッピング関係の前提の下で制限される可能性がある。
いくつかの例では、成分横断フィルタリングおよび/または同じ色成分フィルタリングにおいて、重大な信号伝達オーバーヘッドなしで、非線形マッピング技法が使用できる。一例では、非線形マッピング技法は、成分横断フィルタリングにおいて使用されて、成分横断サンプル・オフセットを生成することができる。別の例では、非線形マッピング技法は、同じ色成分フィルタリングにおいて使用されて、局所サンプル・オフセットを生成することができる。
便宜上、非線形マッピング技法を使用するフィルタリング・プロセスは、非線形マッピングによるサンプル・オフセット(sample offset by non linear mapping、SO-NLM)と称されることができる。成分横断フィルタリング・プロセスにおけるSO-NLMは、成分横断サンプル・オフセット(cross-component sample offset、CCSO)と称することができる。同じ色成分フィルタリングにおけるSO-NLMは、局所サンプル・オフセット(local sample offset、LSO)と称することができる。非線形マッピング技法を使用するフィルタは、非線形マッピング・ベースのフィルタと称することができる。非線形マッピング・ベースのフィルタは、CCSOフィルタ、LSOフィルタ等を含むことができる。
一例では、CCSOおよびLSOは、再構成されたサンプルの歪みを低減するためのループ・フィルタリングとして使用されることができる。CCSOとLSOは、関連する例示的なCCFにおいて使用されている線形マッピングの前提に依存しない。たとえば、CCSOは、ルーマ再構成されたサンプル値と、もとのクロマ・サンプルとクロマ再構成されたサンプルの間のデルタ値との間の線形マッピング関係の前提に頼らない。同様に、LSOは、色成分の再構成されたサンプル値と、該色成分のもとのサンプルと該色成分の再構成されたサンプルの間のデルタ値との間の線形マッピング関係の前提に頼らない。
以下の説明では、SO-NLMフィルタリング・プロセスが説明される。これは、第1の色成分の再構成されたサンプルを入力(たとえば、YもしくはCbもしくはCr、またはRもしくはGもしくはB)として使用して出力を生成し、フィルタリング・プロセスの出力は第2の色成分に適用される。第2の色成分が第1の色成分と同じ色成分である場合は、この記述は、LSOに適用可能である;第2の色成分が第1の色成分と異なる場合は、この記述はCCSOに適用される。
SO-NLMではエンコーダ側で非線形マッピングが導出される。非線形マッピングは、フィルタ・サポート領域内の第1の色成分の再構成されたサンプルと、フィルタ・サポート領域内の第2の色成分に加えられるオフセットとの間のものである。第2の色成分が第1の色成分と同じ場合には、非線形マッピングはLSOにおいて使用され;第2の色成分が第1の色成分と異なる場合には、非線形マッピングはCCSOにおいて使用される。非線形マッピングのドメインは、処理された入力された再構成されたサンプルの異なる組み合わせ(可能な再構成されたサンプル値の組み合わせとも呼ばれる)によって決定される。
SO-NLMの技法は、特定の例を用いて説明できる。該特定の例では、フィルタ・サポート・エリア(「フィルタ・サポート領域」とも呼ばれる)内に位置する第1の色成分からの再構成されたサンプルが決定される。フィルタ・サポート領域は、その中ではフィルタが適用できる領域であり、フィルタ・サポート領域は、任意の好適な形状を有することができる。
図25は、本開示のいくつかの実施形態による、フィルタ・サポート領域(2500)の例を示す。フィルタ・サポート領域(2500)は、第1の色成分のP0、P1、P2、およびP3の4つの再構成されたサンプルを含む。図25の例では、4つの再構成されたサンプルは、垂直方向および水平方向において十字状の形状を形成することができ、十字状の形状の中心位置は、フィルタリングされるサンプルの位置である。中心位置にあり、P0~P3と同じ色成分のサンプルはCで表される。中心位置にあり、第2の色成分のサンプルはFで表される。第2の色成分は、P0~P3の第1の色成分と同じであってもよいし、あるいはP0~P3の第1の色成分とは異なるものであってもよい。
図26は、本開示のいくつかの実施形態による、別のフィルタ・サポート領域(2600)の例を示す。フィルタ・サポート領域(2600)は、正方形形状を形成する第1の色成分の4つの再構成されたサンプルP0、P1、P2、およびP3を含む。図26の例では、正方形形状の中心位置は、フィルタリングされるべきサンプルの位置である。中心位置にあり、P0~P3と同じ色成分のサンプルはCで表される。中心位置にあり、第2の色成分のサンプルはFで表される。第2の色成分はP0~P3の第1の色成分と同じであってもよいし、あるいはP0~P3の第1の色成分と異なるものであってもよい。
再構成されたサンプルは、SO-NLMフィルタに入力され、フィルタ・タップを形成するために適切に処理される。一例では、SO-NLMフィルタへの入力である再構成されたサンプルの位置は、フィルタ・タップ位置と呼ばれる。特定の例では、再構成されたサンプルは、以下の2つのステップで処理される。
第1のステップでは、P0~P3とCの間のそれぞれのデルタ値が計算される。たとえば、m0はP0とCの間のデルタ値を表し、m1はP1とCの間のデルタ値を表し、m2はP2とCの間のデルタ値を表し、m3はP3とCの間のデルタ値を表する。
第2のステップでは、デルタ値m0~m3がさらに量子化され、量子化された値はd0、d1、d2、d3として表される。一例では、量子化された値は、量子化プロセスに基づいて、-1、0、1のいずれかでありうる。たとえば、mが-Nより小さい場合(Nは正の値であり、量子化きざみサイズと称される)、値mは-1に量子化されることができ;mが[-N,N]の範囲にある場合、値mは0に量子化されることができ;mがNより大きい場合、値mは1に量子化されることができる。いくつかの例において、量子化きざみサイズNは、4、8、12、16などのうちの1つでありうる。
いくつかの実施形態において、量子化された値d0~d3は、フィルタ・タップであり、フィルタ・ドメイン内の1つの組み合わせを同定するために使用することができる。たとえば、フィルタ・タップd0~d3は、フィルタ・ドメイン内で組み合わせを形成することができる。各フィルタ・タップは3つの量子化された値をもつことができるので、4つのフィルタ・タップが使用される場合、フィルタ・ドメインは81(3×3×3×3)個の組み合わせを含む。
図27A~27Cは、本開示のある実施形態による、81個の組み合わせを有するテーブル(2700)を示す。テーブル(2700)は、81個の組み合わせに対応する81の行を含む。組み合わせに対応する各行において、第1の列は、組み合わせのインデックスを含み;第2の列は、その組み合わせについてのフィルタ・タップd0の値を含み;第3の列は、その組み合わせについてのフィルタ・タップd1の値を含み;第4の列は、その組み合わせについてのフィルタ・タップd2の値を含み;第5の列は、その組み合わせについてのフィルタ・タップd3の値を含み;第6の列は、非線形マッピングについてその組み合わせに関連するオフセット値を含む。一例では、フィルタ・タップd0~d3が決定される場合、d0~d3の組み合わせに関連するオフセット値(sによって表される)は、テーブル(2700)に従って決定されることができる。一例では、オフセット値s0~s80は、0、1、-1、3、-3、5、-5、-7などの整数である。
いくつかの実施形態では、式(16)に示されるように、SO-NLMの最終フィルタリング・プロセスが適用されることができる:
f'=clip(f+s) Eq.(16)
ここで、fは、フィルタリングされるべき第2の色成分の再構成されたサンプルであり、sは、テーブル(2700)を使うなどして、第1の色成分の再構成されたサンプルの処理結果であるフィルタ・タップに従って決定されるオフセット値である。再構成されたサンプルFとオフセット値sの和は、ビット深さに関連する範囲内にさらにクリッピングされて、第2の色成分の最終的なフィルタリングされたサンプルf'を決定する。
なお、LSOの場合、上記の説明の第2の色成分は第1の色成分と同じであり;CCSOの場合、上記の説明の第2の色成分は第1の色成分とは異なる場合がある。
なお、上記の説明は、本開示の他の実施形態のために調整されることができる。
いくつかの例では、エンコーダ側で、エンコード装置は、フィルタ・サポート領域内の第1の色成分の再構成されたサンプルと、第2の色成分の再構成されたサンプルに加えられるべきオフセットとの間のマッピングを導出することができる。マッピングは、任意の適切な線形または非線形マッピングでありうる。すると、フィルタリング・プロセスは、該マッピングに基づいて、エンコーダ側および/またはデコーダ側で適用されることができる。たとえば、マッピングは、適切にデコーダに通知され(たとえば、マッピングは、エンコーダ側からデコーダ側に送信される符号化ビデオ・ビットストリームに含まれる)、その後、デコーダは、マッピングに基づいてフィルタリング・プロセスを実行することができる。
本開示のいくつかの側面によれば、CCSOフィルタ、LSOフィルタなどの非線形マッピング・ベースのフィルタの実行は、フィルタ形状構成に依存する。固定したフィルタ形状構成を使用することは、非線形マッピング・ベースのフィルタの性能を制限する可能性がある。これらの技法の諸側面は、CCSOフィルタ、LSOフィルタなどの非線形マッピング・ベースのフィルタのための、切り換え可能なフィルタ形状構成の技法を提供する。
本開示のいくつかの側面によれば、フィルタのフィルタ形状構成(フィルタ形状とも呼ばれる)は、フィルタ・タップ位置によって形成されるパターンの特性を指すことができる。パターンは、フィルタ・タップ位置の幾何学的形状、フィルタ・タップ位置の、パターンの中心までの距離等のさまざまなパラメータによって定義できる。
いくつかの実施形態では、CCSOフィルタ、LSOフィルタなどの非線形マッピング・ベースのフィルタのフィルタ形状構成は、十字形の幾何形状を有することができる。具体的には、フィルタ・タップ位置は、それらのフィルタ・タップ位置の中心位置の上、下、左、および右に存在する。フィルタ・タップ位置からフィルタ・タップ位置の中心までの距離(nで表される)は、一例ではサンプル単位での、1、2、3、4、5などのような任意の適切な正の整数でありうる。
図28は、本開示のある実施形態による、フィルタ形状構成(2800)の一例を示す。フィルタ形状構成(2800)は、十字形の幾何形状を有し、フィルタ・タップ位置の、フィルタ形状構成(2800)の中心までの距離は、1サンプル(n=1)である。図28において、各円は、サンプルを表すために使用される。中心位置は、図28においてはCによって示されている。フィルタ形状構成(2800)は、p0、p1、p2、およびp3によって示される4つのフィルタ・タップ位置を含む。示されるように、フィルタ・タップ位置p0は、中心位置Cの上にあり;フィルタ・タップ位置p1は、中心位置Cの左にあり;フィルタ・タップ位置p2は、中心位置Cの下にあり;フィルタ・タップ位置p3は、中心位置Cの右にある。フィルタ・タップ位置p0と中心位置Cまでの距離は1サンプルであり:フィルタ・タップ位置p1と中心位置Cまでの距離は1サンプルであり;フィルタ・タップ位置p2の中心位置Cまでの距離は1サンプルであり;フィルタ・タップ位置p3の中心位置Cまでの距離は1サンプルである。
一例では、フィルタ形状構成(2800)のフィルタをサンプルに適用するために、フィルタリングされるサンプルは、中心位置Cに位置し;フィルタ・タップ位置p0に位置する再構成されたサンプルは、第1のフィルタタップ(d0)を導出するために使用され;フィルタ・タップ位置p1に位置する再構成されたサンプルは、第2のフィルタタップ(d1)を導出するために使用され;フィルタ・タップ位置p2に位置する再構成されたサンプルは、第3のフィルタタップ(d2)を導出するために使用され;フィルタ・タップ位置p3に位置する再構成されたサンプルは、第4のフィルタタップ(d1)を導出するために使用される。次いで、フィルタ・タップd0~d3を使用して、フィルタリングされるサンプルに適用されるサンプル・オフセットを決定する。
図29は、本開示のある実施形態による、フィルタ形状構成(2900)の別の例を示す。フィルタ形状構成(2900)は、十字形の幾何学形状を有し、フィルタ・タップ位置の、フィルタ形状構成(2900)の中心までの距離は、4サンプル(n=4)である。具体的には、各円は、サンプルを表すために使用され、中心位置は、図29においてCによって示されている。フィルタ形状構成(2900)は、p0、p1、p2、およびp3によって示される4つのフィルタ・タップ位置を含む。図29に示されるように、フィルタ・タップ位置p0は、中心位置Cの上にあり;フィルタ・タップ位置p1は、中心位置Cの左にあり;フィルタ・タップ位置p2は、中心位置Cの下にあり;フィルタ・タップ位置p3は、中心位置Cの右にある。フィルタ・タップ位置p0の、中心位置Cまでの距離は4サンプルであり;フィルタ・タップ位置p1の、中心位置Cまでの距離は4サンプルであり;フィルタ・タップ位置p2の、中心位置Cまでの距離は4サンプルであり;フィルタ・タップ位置p3の、中心位置Cまでの距離は4サンプルである。
一例では、フィルタ形状構成(2900)のフィルタをサンプルに適用するために、フィルタリングされるサンプルは、中心位置Cに位置し;フィルタ・タップ位置p0に位置する再構成されたサンプルは、第1のフィルタタップ(d0)を導出するために使用され;フィルタ・タップ位置p1に位置する再構成されたサンプルは、第2のフィルタタップ(d1)を導出するために使用され;フィルタ・タップ位置p2に位置する再構成されたサンプルは、第3のフィルタタップ(d2)を導出するために使用され;フィルタ・タップ位置p3に位置する再構成されたサンプルは、第4のフィルタタップ(d1)を導出するために使用される。次いで、フィルタ・タップd0~d3を使用して、フィルタリングされるサンプルに適用されるサンプル・オフセットを決定する。
図30は、本開示のある実施形態による、フィルタ形状構成(3000)の一例を示す。フィルタ形状構成(3000)は、矩形の幾何学的形状を有し、フィルタ・タップ位置の、フィルタ・タップ位置の中心までの距離は、1サンプル(n=1)である。具体的には、中心位置は、図30においてCによって示されている。フィルタ形状構成(3000)は、q0、q1、q2、およびq3によって示される4つのフィルタ・タップ位置を含む。示されるように、フィルタ・タップ位置q0は、中心位置Cの左上に位置し;フィルタ・タップ位置q1は、中心位置Cの左下に位置し;フィルタ・タップ位置q2は、中心位置Cの右下に位置し;フィルタ・タップ位置q3は、中心位置Cの右上に位置する。フィルタ・タップ位置q0から中心位置Cまでの距離は1サンプルであり;フィルタ・タップ位置q1から中心位置Cまでの距離は1サンプルであり;フィルタ・タップ位置q2から中心位置Cまでの距離は1サンプルであり;フィルタ・タップ位置q3から中心位置Cまでの距離は1サンプルである。
一例では、フィルタ形状構成(3000)のフィルタをサンプルに適用するために、フィルタリングされるサンプルは、中心位置Cに位置し;フィルタ・タップ位置q0に位置する再構成されたサンプルは、第1のフィルタタップ(d0)を導出するために使用され;フィルタ・タップ位置q1に位置する再構成されたサンプルは、第2のフィルタタップ(d1)を導出するために使用され;フィルタ・タップ位置q2に位置する再構成されたサンプルは、第3のフィルタタップ(d2)を導出するために使用され;フィルタ・タップ位置q3に位置する再構成されたサンプルは、第4のフィルタタップ(d1)を導出するために使用される。次いで、フィルタ・タップd0~d3を使用して、フィルタリングされるサンプルに適用されるサンプル・オフセットを決定する。
図31は、本開示のある実施形態による、フィルタ形状構成(3100)の一例を示す。フィルタ形状構成(3100)は、矩形の幾何学的形状を有し、フィルタ・タップ位置からフィルタ・タップ位置の中心までの距離は、4サンプル(n=4)である。具体的には、中心位置は図31においてCによって示されている。フィルタ形状構成(3100)は、q0、q1、q2、およびq3によって示される4つのフィルタ・タップ位置を含む。示されるように、フィルタ・タップ位置q0は、中心位置Cの左上に位置し;フィルタ・タップ位置q1は、中心位置Cの左下に位置し;フィルタ・タップ位置q2は、中心位置Cの右下に位置し;フィルタ・タップ位置q3は、中心位置Cの右上に位置する。フィルタ・タップ位置q0から中心位置Cまでの距離は4サンプルであり;フィルタ・タップ位置q1から中心位置Cまでの距離は4サンプルであり;フィルタ・タップ位置q2から中心位置Cまでの距離は4サンプルであり;フィルタ・タップ位置q3から中心位置Cまでの距離は4サンプルである。
一例では、フィルタ形状構成(3100)のフィルタをサンプルに適用するために、フィルタリングされるべきサンプルは、中心位置Cに位置し;フィルタ・タップ位置q0に位置する再構成されたサンプルは、第1のフィルタタップ(d0)を導出するために使用され;フィルタ・タップ位置q1に位置する再構成されたサンプルは、第2のフィルタタップ(d1)を導出するために使用され;フィルタ・タップ位置q2に位置する再構成されたサンプルは、第3のフィルタタップ(d2)を導出するために使用され;フィルタ・タップ位置q3に位置する再構成されたサンプルは、第4のフィルタタップ(d1)を導出するために使用される。次いで、フィルタ・タップd0~d3を使用して、フィルタリングされるサンプルに適用されるサンプル・オフセットを決定する。
本開示のある側面によれば、CCSOフィルタ、LSOフィルタなどの非線形マッピング・ベースのフィルタのフィルタ形状構成は、符号化ビデオ・ビットストリームからのビデオの再構成中に切り換え可能でありうる。非線形マッピング・ベースのフィルタは、ピクチャー・レベル、ブロック・レベル、スライス・レベル、タイル・レベルなどの適切なレベルで、複数の候補のフィルタ形状構成の1つを選択することができる。
ある実施形態では、複数の候補フィルタ形状構成が、同じ幾何形状を有することができる。
図32は、十字状の幾何形状を有する3つの候補フィルタ形状構成の例(3200)を示す。3つの候補フィルタ形状構成によるフィルタ・タップ位置の中心までの距離は、異なる可能性がある。
具体的には、図32において、中心位置Cおよびフィルタ・タップ位置p0、p1、p2およびp3は、第1の候補フィルタ形状構成を形成する。フィルタ・タップ位置p0、p1、p2、およびp3の中心位置Cまでの距離は1サンプルである。中心位置Cおよびフィルタ・タップ位置p0'、p1'、p2'およびp3'は、第2の候補フィルタ形状構成を形成する。フィルタ・タップ位置p0'、p1'、p2'およびp3'から中心位置Cまでの距離は4サンプルである。中心位置Cおよびフィルタ・タップ位置p0"、p1"、p2"、およびp3"は、第3の候補フィルタ形状構成を形成する。フィルタ・タップ位置p0"、p1"、p2"、およびp3"から中心位置Cまでの距離は7サンプルである。
いくつかの例では、第1の候補フィルタ形状構成、第2の候補フィルタ形状構成および第3の候補フィルタ形状構成のうちの1つが、ピクチャー・レベル、ブロック・レベル、スライス・レベル、タイル・レベルなどの適切なレベルで、該適切なレベルでのサンプル再構成において使用するために、選択されることができる。
図33は、十字状の幾何形状を有する2つの候補フィルタ形状構成の例(3300)を示す。2つの候補フィルタ形状構成による、フィルタ・タップ位置の中心までの距離は、異なる可能性がある。
具体的には、図33において、中心位置Cおよびフィルタ・タップ位置p0、p1、p2およびp3は、第1の候補フィルタ形状構成を形成する。フィルタ・タップ位置p0、p1、p2、およびp3の中心位置Cまでの距離は1サンプルである。中心位置Cおよびフィルタ・タップ位置p0'、p1'、p2'およびp3'は、第2の候補フィルタ形状構成を形成する。フィルタ・タップ位置p0'、p1'、p2'およびp3'から中心位置Cまでの距離は4サンプルである。
いくつかの例では、第1の候補フィルタ形状構成および第2の候補フィルタ形状構成のうちの1つが、ピクチャー・レベル、ブロック・レベル、スライス・レベル、タイル・レベルなどの適切なレベルで、該適切なレベルでのサンプル再構成に使用するために、選択されることができる。
候補フィルタ形状構成は、他の好適な幾何学形状を有することができることに留意されたい。
図34は、矩形の幾何形状を有する2つの候補フィルタ形状構成の例(3400)を示す。2つの候補フィルタ形状構成による、フィルタ・タップ位置の中心までの距離は、異なる可能性がある。
具体的には、図34において、中心位置Cおよびフィルタ・タップ位置q0、q1、q2およびq3は、第1の候補フィルタ形状構成を形成する。フィルタのタップ位置q0、q1、q2、q3から中心位置Cまでの距離は1サンプルである。中心位置Cおよびフィルタ・タップ位置q0'、q1'、q2'およびq3'は、第2の候補フィルタ形状構成を形成する。フィルタ・タップ位置q0'、q1'、q2'およびq3'から中心位置Cまでの距離は4サンプルである。
いくつかの例では、第1の候補フィルタ形状構成および第2の候補フィルタ形状構成のうちの1つが、ピクチャー・レベル、ブロック・レベル、スライス・レベル、タイル・レベルなどの適切なレベルで、該適切なレベルでのサンプル再構成に使用するために、選択することができる。
また、候補フィルタ形状構成は、異なる幾何形状を有することができることに留意されたい。
図35は、十字状の幾何形状と矩形の幾何形状の混合を有する4つの候補フィルタ形状構成の例(3500)を示す。4つの候補フィルタ形状構成によるフィルタ・タップ位置から中心までの距離は、異なる場合がある。
具体的には、図35において、中心位置Cおよびフィルタ・タップ位置p0、p1、p2およびp3は、第1の候補フィルタ形状構成を形成する。フィルタ・タップ位置p0、p1、p2、およびp3の中心位置Cまでの距離は1サンプルである。中心位置Cおよびフィルタ・タップ位置p0'、p1'、p2'およびp3'は、第2の候補フィルタ形状構成を形成する。フィルタ・タップ位置p0'、p1'、p2'およびp3'から中心位置Cまでの距離は4サンプルである。第1の候補フィルタ形状構成と第2の候補フィルタ形状構成は、十字状の幾何形状を有する。
さらに、中心位置Cおよびフィルタ・タップ位置q0、q1、q2およびq3は、第3の候補フィルタ形状構成を形成する。フィルタ・タップ位置q0、q1、q2、q3から中心位置Cまでの距離は1サンプルである。中心位置Cおよびフィルタ・タップ位置q0'、q1'、q2'およびq3'は、第4の候補フィルタ形状構成を形成する。フィルタ・タップ位置q0'、q1'、q2'およびq3'から中心位置Cまでの距離は4サンプルである。第3の候補フィルタ形状構成と第4の候補フィルタ形状構成は、矩形の幾何形状を有する。
いくつかの例において、第1の候補フィルタ形状構成、第2の候補フィルタ形状構成、第3の候補フィルタ形状構成、および第4の候補フィルタ形状構成のうちの1つが、ピクチャー・レベル、ブロック・レベル、スライス・レベル、タイル・レベルなどの適切なレベルで、該適切なレベルでのサンプル再構成において使用するために、選択されることができる。
本開示のある側面によれば、複数の候補フィルタ形状構成からのフィルタ形状構成の選択は、符号化ビデオ・ビットストリームにおいてエンコーダからデコーダへ信号伝達されることができる。
ある実施形態では、非線形マッピング・ベースのフィルタ(たとえば、CCSOフィルタ、LSOフィッタ)のためのフィルタ形状構成の切り換えは、ピクチャー・レベルにおいてである。一例では、複数の候補フィルタ形状構成からの選択されるフィルタ形状構成を示すインデックスが、符号化ビデオ・ビットストリーム内の各ピクチャーについて信号伝達される。
ある実施形態では、非線形マッピング・ベースのフィルタ(たとえば、CCSOフィルタ、LSOフィッタ)のためのフィルタ形状構成の切り換えは、ブロック・レベルにおいてである。ブロックは、予測ブロック、符号化ブロック、または符号化単位、すなわちCU、CTUブロック、またはスーパーブロック、またはフィルタリング単位(FU)として解釈されうる。一例では、複数の候補フィルタ形状構成からの選択されるフィルタ形状構成を示すインデックスが、符号化ビデオ・ビットストリーム内の各ブロックについて信号伝達される。
いくつかの実施形態では、選択されるフィルタ形状構成を示すインデックスは、APS、スライス・ヘッダ、フレームヘッダ、PPS、SPS、VPS等のような高レベルの構文で信号伝達されることができることに留意されたい。
本開示のある側面によれば、CCSOフィルタ、LSOフィルタなどの非線形マッピング・ベースのフィルタへの入力として使用される前に、フィルタ・タップ位置のサンプルを前処理することができる。
ある実施形態では、フィルタ・タップにおけるサンプル値の重み付けされた平均を計算することができる。
図36は、本開示のある実施形態による、前処理の例(3600)を示す。例(3600)は、図36に示されるように、8つのフィルタ・タップ位置p0~p7を含む。一例では、フィルタ・タップ位置p0およびp1におけるサンプルの平均が計算されてp0'として示され、フィルタ・タップ位置p2およびp3におけるサンプルの平均が計算されてp1'として示され、フィルタ・タップ位置p4およびp5におけるサンプルの平均が計算されてp2'として示され、フィルタ・タップ位置p6およびp7におけるサンプルの平均が計算されてp3'として示される。次いで、p0'p3'およびcが、CCSOフィルタ、LSOフィルタなどの非線形マッピング・ベースのフィルタの入力として使用される。
平均計算は、重み付けされた平均であってもよいことに留意されたい。たとえば、フィルタ・タップ位置p0およびp1におけるサンプルの平均を計算する場合、p0におけるサンプルおよびp1におけるサンプルは、異なる重みをかけられてもよい。
別の実施形態では、前置フィルタリング・プロセスを、フィルタ・タップに位置するサンプルに適用することができる。
図37は、本開示のある実施形態による前処理の例(3700)を示し、例(3700)は、4つのフィルタ・タップ位置p0、p1、p2、およびp3を含む。一例では、フィルタリング(前置フィルタリング)プロセスは、フィルタ・タップ位置に近接して(たとえば、隣接して、またはKは正の整数であるとしてKサンプル距離以内に)位置するサンプルに基づいて、フィルタ・タップ位置のサンプルに適用される。
たとえば、フィルタ・タップ位置p0にある第1サンプルに適用される、隣接位置q0~q3にある第1サンプルに基づく第1のフィルタリング(前置フィルタリング)プロセス;フィルタ・タップ位置p1にある第2サンプルに適用される、隣接位置r0~r3にある第2サンプルに基づく第2のフィルタリング(前置フィルタリング)プロセス;フィルタ・タップ位置p2にある第3サンプルに適用される、隣接位置s0~s3にある第3サンプルに基づく第3のフィルタリング(前置フィルタリング)プロセス;フィルタ・タップ位置p3にある第4サンプルに適用される、隣接位置t0~t3にある第4サンプルに基づく第4のフィルタリング(前置フィルタリング)プロセスである。次いで、フィルタリングされた第1サンプル、フィルタリングされた第2サンプル、フィルタリングされた第3サンプル、およびフィルタリングされた第4サンプルが、CCSOフィルタおよびLSOフィルタのような非線形マッピング・ベースのフィルタへの入力として使用されることができる。
前置フィルタリングは、任意の適切なフィルタ、線形フィルタ、または非線形フィルタによって行うことができることに留意されたい。
図38は、本開示のある実施形態による、プロセス(3800)の概要を示すフローチャートを示している。プロセス(3800)は、符号化ビデオ・ビットストリームにおいて搬送されるビデオを再構築するために使用できる。ブロックという用語が使用される場合、ブロックは、予測ブロック、符号化単位、ルーマ・ブロック、クロマ・ブロックなどとして解釈されうる。さまざまな実施形態において、プロセス(3800)は、端末装置(310)、(320)、(330)および(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(3800)は、ソフトウェア命令において実装され、よって、処理回路が該ソフトウェア命令を実行すると、処理回路は、プロセス(3800)を実行する。プロセスは(S3801)から始まり、(S3810)に進む。
(S3810)では、符号化ビデオ・ビットストリームにおいて搬送されるビデオ中の第1のサンプルが、第1のフィルタ形状構成を有する非線形マッピング・ベースのフィルタに基づいて再構成される。
(S3820)では、第1のフィルタ形状構成から第2のフィルタ形状構成への切り換えが決定される。第2のフィルタ形状構成は、第1のフィルタ形状構成とは異なる。いくつかの例において、第1のフィルタ形状構成と第2のフィルタ形状構成との間の差異は、フィルタ・タップ位置の幾何形状であってもよく、フィルタ・タップ位置からフィルタ・タップ位置の中心までの距離であってもよい。
フィルタ・タップ位置の幾何形状は、十字状の幾何形状であってもよく、または矩形の幾何形状であってもよい。第1のフィルタ形状構成および第2のフィルタ形状構成は、フィルタ・タップ位置の異なる幾何形状を有してもよく、またはフィルタ・タップ位置の同じ幾何形状を有してもよい。いくつかの例では、第1のフィルタ形状構成および第2のフィルタ形状構成は、同じ幾何形状を有するが、フィルタ・タップ位置からフィルタ・タップ位置の中心までの距離は、第1のフィルタ形状構成および第2のフィルタ形状構成について異なる。
いくつかの例では、ビデオを搬送する符号化ビデオ・ビットストリームからインデックスがデコードされる。インデックスは、第2のフィルタ形状構成を示す。次いで、インデックスに基づいて、第1のフィルタ形状構成から第2のフィルタ形状構成への切り換えが決定される。
一例では、インデックスは、ピクチャー・レベルで信号伝達され、第1のフィルタ形状構成から第2のフィルタ形状構成への切り換えは、ピクチャー・レベルで決定される。第1のサンプルはビデオの第1のピクチャーに、第2のサンプルはビデオの第2のピクチャーにある。
別の例では、インデックスは、ブロック・レベルで信号伝達され、第1のフィルタ形状構成から第2のフィルタ形状構成への切り換えは、ブロック・レベルで決定される。第1のサンプルは、ビデオのピクチャー内の第1のブロックにあり、第2のサンプルは、ビデオの該ピクチャー内の第2のブロックにある。
いくつかの例では、インデックスは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、ピクチャーパラメータセット(PPS)、適応パラメータセット(APS)、スライス・ヘッダ、タイルヘッダ、フレームヘッダなどの高レベルの構文におけるシグナリングからデコードできる。
(S3830)において、ビデオ中の第2のサンプルは、第2のフィルタ形状構成を有する非線形マッピング・ベースのフィルタに基づいて再構成される。
プロセス(3800)は(S3899)に進み、終了する。
いくつかの例では、非線形マッピング・ベースのフィルタは、成分横断サンプル・オフセット(CCSO)フィルタであり、いくつかの他の例では、非線形マッピング・ベースのフィルタは、ローカルサンプルオフセット(LSO)フィルタであることに留意されたい。
また、非線形マッピング・ベースのフィルタへの入力としてのサンプル値は、前処理されうることに留意されたい。たとえば、第1のサンプルを再構成するために、第1のフィルタ形状構成に対応するフィルタ・タップ位置にあるサンプルに対して前処理操作が実行されることができ、前処理操作は、前処理されたサンプルを生成することができる。次いで、前処理されたサンプルが非線形マッピング・ベースのフィルタへの入力として使用され、第1のサンプルに適用するオフセットが、前処理されたサンプルに基づいて決定できる。一例では、前処理操作は、重み付けされる平均化操作である。たとえば、2つ以上のフィルタ・タップ位置における平均サンプル値が計算されて、前処理されたサンプルを導出することができる。別の例では、前処理操作はフィルタリング操作である。たとえば、フィルタ・タップ位置にあるサンプル上にフィルタが適用され、フィルタリングされたサンプルを、前処理サンプルとして生成する。フィルタは、線形フィルタ、非線形フィルタなど、任意の適切なフィルタであってよい。
プロセス(3800)は、適切に適応できる。プロセス(3800)におけるステップは、修正および/または省略することができる。追加のステップを追加できる。任意の適切な実施順序を使用できる。
本開示の実施形態は、別々に、または任意の順序で組み合わせて使用されうる。さらに、各方法(または実施形態)、エンコーダ、およびデコーダは、処理回路(たとえば、一つまたは複数のプロセッサ、または一つまたは複数の集積回路)によって実装されてもよい。一例では、前記一つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。
上述の技法は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することができ、一つまたは複数のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。たとえば、図10は、開示された主題のある種の実施形態を実施するのに好適なコンピュータ・システム(3900)を示す。
コンピュータ・ソフトウェアは、任意の好適な機械コードまたはコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、または同様の機構の対象とされて、一つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、またはインタープリット、マイクロコード実行などを通じて実行可能な命令を含むコードを作成することができる。
命令は、たとえば、パーソナルコンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置等を含むさまざまなタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
コンピュータ・システム(3900)について図39に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータ・ソフトウェアの使用または機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータ・システム(3900)の例示的実施形態において示されているコンポーネントの任意の1つまたは組み合わせに関する何らかの依存性または要件を有するものとして解釈されるべきではない。
コンピュータ・システム(3900)は、ある種のヒューマン・インターフェース入力装置を含むことができる。そのようなヒューマン・インターフェース入力装置は、たとえば、触覚入力(たとえば、キーストローク、スワイプ、データグローブの動き)、音声入力(たとえば、声、拍手)、視覚入力(たとえば、ジェスチャー)、嗅覚入力(図示せず)を通じた一または複数の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース装置は、音声(たとえば、発話、音楽、周囲の音)、画像(たとえば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(たとえば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しないある種のメディアを捕捉するために使用できる。
入力ヒューマン・インターフェース装置は、キーボード(3901)、マウス(3902)、トラックパッド(3903)、タッチスクリーン(3910)、データグローブ(図示せず)、ジョイスティック(3905)、マイクロフォン(3906)、スキャナ(3907)、カメラ(3908)の一つまたは複数(それぞれの一つしか図示していない)を含んでいてもよい。
コンピュータ・システム(3900)はまた、ある種のヒューマン・インターフェース出力装置を含んでいてもよい。そのようなヒューマン・インターフェース出力装置は、たとえば、触覚出力、音、光、および臭い/味を通じて、一または複数の人間ユーザーの感覚を刺激するものであってもよい。そのようなヒューマン・インターフェース出力装置は、触覚出力装置(たとえば、タッチスクリーン(3910)、データグローブ(図示せず)、またはジョイスティック(3905)による触覚フィードバック;ただし、入力装置のはたらきをしない触覚フィードバック装置もありうる)、音声出力装置(たとえば、スピーカー(3909)、ヘッドフォン(図示せず))、視覚出力装置(たとえば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(3910);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力または立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイおよび煙タンク(図示せず))、およびプリンタ(図示せず)を含んでいてもよい。
コンピュータ・システム(3900)はまた、人間がアクセス可能な記憶装置および関連する媒体、たとえば、CD/DVDまたは類似の媒体(3921)とともにCD/DVD ROM/RW(3920)を含む光学式媒体、サムドライブ(3922)、取り外し可能なハードドライブまたはソリッドステートドライブ(3923)、テープおよびフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティ・ドングルのような特化したROM/ASIC/PLDベースの装置(図示せず)などを含むことができる。
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
コンピュータ・システム(3900)はまた、一つまたは複数の通信ネットワーク(3955)へのインターフェース(3954)を含むことができる。ネットワークは、たとえば、無線、有線、光学式でありうる。ネットワークは、さらに、ローカル、広域、都市圏、車載および工業用、リアルタイム、遅延耐性などでありうる。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラー・ネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車載および工業用などを含む。ある種のネットワークは、普通、ある種の汎用データ・ポートまたは周辺バス(3949)(たとえば、コンピュータ・システム(3900)のUSBポートなど)に取り付けられる外部ネットワーク・インターフェース・アダプターを必要とする。他は、普通、後述するようなシステム・バスへの取り付けによって、コンピュータ・システム(3900)のコアに統合される(たとえば、PCコンピュータ・システムへのイーサネット・インターフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータ・システム(3900)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(たとえば、放送テレビ)、一方向性送信専用(たとえば、ある種のCANbus装置へのCANbus)、または、たとえば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータ・システムへの双方向性であってもよい。上述のようなそれらのネットワークおよびネットワークインターフェースのそれぞれで、ある種のプロトコルおよびプロトコルスタックが使用できる。
前述のヒューマン・インターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータ・システム(3900)のコア(3940)に取り付けることができる。
コア(3940)は、一つまたは複数の中央処理装置(CPU)(3941)、グラフィックス処理装置(GPU)(3942)、フィールドプログラマブルゲートアレイ(FPGA)(3943)の形の特化したプログラマブル処理装置、ある種のタスクのためのハードウェアアクセラレータ(3944)、グラフィック・アダプター(3950)などを含むことができる。これらの装置は、読み出し専用メモリ(ROM)(3945)、ランダムアクセスメモリ(3946)、内部のユーザー・アクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)などの内部大容量記憶装置(3947)とともに、システム・バス(3948)を通じて接続されうる。いくつかのコンピュータ・システムでは、追加のCPU、GPUなどによる拡張を可能にするために、システム・バス(3948)は、一つまたは複数の物理プラグの形でアクセス可能であってもよい。周辺装置は、コアのシステム・バス(3948)に直接取り付けられることも、周辺バス(3949)を通じて取り付けられることもできる。一例では、グラフィック・アダプター(3950)にディスプレイ(3910)が接続されることができる。周辺バスのためのアーキテクチャーは、PCI、USBなどを含む。
CPU(3941)、GPU(3942)、FPGA(3943)、およびアクセラレータ(3944)は、組み合わせて上述のコンピュータコードを構成することができるある種の命令を、実行することができる。そのコンピュータコードは、ROM(3945)またはRAM(3946)に記憶できる。一時的データも、RAM(3946)に記憶されることができ、一方、持続的データは、たとえば、内部大容量記憶装置(3947)に記憶されることができる。一つまたは複数のCPU(3941)、GPU(3942)、大容量記憶装置(3947)、ROM(3945)、RAM(3946)などと密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶および取り出しを可能にすることができる。
コンピュータ読み取り可能な媒体は、さまざまなコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、または、コンピュータ・ソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
限定ではなく一例として、アーキテクチャー(3900)、具体的にはコア(3940)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が一つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザー・アクセス可能な大容量記憶ならびにコア内部の大容量記憶装置(3947)またはROM(3945)のような非一時的な性質のコア(3940)のある種の記憶に関連する媒体であることができる。本開示のさまざまな実施形態を実装するソフトウェアは、そのような装置に記憶され、コア(3940)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、一つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、RAM(3946)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定の特定部分を、コア(3940)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。追加的または代替的に、コンピュータ・システムは、回路(たとえば、アクセラレータ(3944))内に配線された、または他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、またはそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(たとえば集積回路(IC))、実行のための論理を具現する回路、またはその両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の好適な組み合わせを包含する。
付録A:頭字語
JEM: joint exploration model(共同探査モデル)
VVC: versatile video coding(多用途ビデオ符号化)
BMS: benchmark set(ベンチマークセット)
MV: Motion Vector(動きベクトル)
HEVC: High Efficiency Video Coding(高効率ビデオ符号化)
MPM: most probable mode(最確モード)
WAIP: Wide-Angle Intra Prediction(広角イントラ予測)
SEI: Supplementary Enhancement Information(補足向上情報)
VUI: Video Usability Information(ビデオ操作性情報)
GOP: Group of Pictures(ピクチャーグループ)
TU: Transform Unit(変換単位)
PU: Prediction Unit(予測単位)
CTU: Coding Tree Unit(符号化ツリー単位)
CTB: Coding Tree Block(符号化ツリーブロック)
PB: Prediction Block(予測ブロック)
HRD: Hypothetical Reference Decoder(仮設参照デコーダ)
SDR: standard dynamic range(標準ダイナミックレンジ)
SNR: Signal Noise Ratio(信号雑音比)
CPU: Central Processing Unit(中央処理装置)
GPU: Graphics Processing Unit(グラフィックス処理ユニット)
CRT: Cathode Ray Tube(陰極線管)
LCD: Liquid-Crystal Display(液晶ディスプレイ)
OLED: Organic Light-Emitting Diode(有機発光ダイオード)
CD: Compact Disc(コンパクトディスク)
DVD: Digital Video Disc(デジタルビデオディスク)
ROM: Read-Only Memory(読み出し専用メモリ)
RAM: Random Access Memory(ランダムアクセスメモリ)
ASIC: Application-Specific Integrated Circuit(特定用途向け集積回路)
PLD: Programmable Logic Device(プログラマブルロジックデバイス)
LAN: Local Area Network(ローカルエリアネットワーク)
GSM: Global System for Mobile communications(グローバル移動通信システム)
LTE: Long-Term Evolution(ロングタームエボリューション)
CANBus: Controller Area Network Bus(コントローラエリアネットワークバス)
USB: Universal Serial Bus(ユニバーサルシリアルバス)
PCI: Peripheral Component Interconnect(ペリフェラルコンポーネント相互接続)
FPGA: Field Programmable Gate Areas(フィールド・プログラマブル・ゲート・エリア)
SSD: solid-state drive(ソリッドステートドライブ)
IC: Integrated Circuit(集積回路)
CU: Coding Unit(符号化単位)
PDPC: Position Dependent Prediction Combination(位置依存予測組み合わせ)
ISP: Intra Sub-Partition(イントラサブパーティション)
SPS: Sequence Parameter Setting(シーケンスパラメータ設定)
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、およびさまざまな代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現し、よって、本開示の精神および範囲内にある多くのシステムおよび方法を考案することができることが理解されるであろう。