(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-14
(54)【発明の名称】組み合わせられたループフィルタ処理
(51)【国際特許分類】
H04N 19/117 20140101AFI20240307BHJP
H04N 19/182 20140101ALI20240307BHJP
H04N 19/136 20140101ALI20240307BHJP
【FI】
H04N19/117
H04N19/182
H04N19/136
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023560449
(86)(22)【出願日】2022-01-31
(85)【翻訳文提出日】2023-11-28
(86)【国際出願番号】 SE2022050100
(87)【国際公開番号】W WO2022211693
(87)【国際公開日】2022-10-06
(32)【優先日】2021-03-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】100109726
【氏名又は名称】園田 吉隆
(74)【代理人】
【識別番号】100150670
【氏名又は名称】小梶 晴美
(74)【代理人】
【識別番号】100199705
【氏名又は名称】仙波 和之
(74)【代理人】
【識別番号】100194294
【氏名又は名称】石岡 利康
(72)【発明者】
【氏名】ストレム, ヤコブ
(72)【発明者】
【氏名】ウェナーストン, ペール
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP14
5C159PP15
5C159PP16
5C159RC11
5C159TA69
5C159TB08
5C159TC02
5C159TD13
5C159TD16
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
1つまたは複数の画像を符号化するための方法が提供される。本方法は、第1のフィルタ処理された出力Ifirst(x,y)=I(x,y)+ΔIfirst(x,y)を生成するために、第1のフィルタで、入力サンプルI(x,y)をフィルタ処理することを含む。本方法は、第1のフィルタ処理された出力Ifirst(x,y)と、入力サンプルI(x,y)と、オリジナルサンプルIorig(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定することを含む。本方法は、第2のフィルタ処理された出力Isecond(x,y)=I(x,y)+ΔIsecond(x,y)を生成するために、第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することであって、第2のフィルタで、フィルタ処理することが、第2のフィルタのために推定されたパラメータに少なくとも部分的に基づく、第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することを含む。本方法は、組み合わせられた出力ICOMB(x,y)=I(x,y)+ΔIfirst(x,y)+ΔIsecond(x,y)を生成することを含む。
【選択図】
図17
【特許請求の範囲】
【請求項1】
1つまたは複数の画像を符号化するための方法であって、前記方法は、
第1のフィルタ処理された出力I
first(x,y)=I(x,y)+ΔI
first(x,y)を生成するために、第1のフィルタで、入力サンプルI(x,y)をフィルタ処理することと、
前記第1のフィルタ処理された出力I
first(x,y)と、前記入力サンプルI(x,y)と、オリジナルサンプルI
orig(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定することと、
第2のフィルタ処理された出力I
second(x,y)=I(x,y)+ΔI
second(x,y)を生成するために、前記第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することであって、前記第2のフィルタで、フィルタ処理することが、前記第2のフィルタのために推定された前記パラメータに少なくとも部分的に基づく、前記第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することと、
組み合わせられた出力I
COMB(x,y)=I(x,y)+ΔI
first(x,y)+ΔI
second(x,y)を生成することと
を含む、方法。
【請求項2】
前記第2のフィルタがサンプル適応オフセット(SAO)フィルタを備える、請求項1に記載の方法。
【請求項3】
前記第2のフィルタのためのパラメータを推定することは、
前記入力サンプルI(x,y)中の各サンプルについて、前記サンプルに関連するクラスを識別することであって、前記サンプルに関連するクラスを識別することが、クラスのセットを生じ、クラスの前記セット中の各クラスが、前記クラスに関連するサンプルI(x
i,y
i)に対応する0個またはそれ以上の位置(x
i,y
i)に関連する、前記サンプルに関連するクラスを識別することと、
各クラスについて、(1)前記クラスに関連する各位置(x
i,y
i)について、前記第1のフィルタ処理された出力I
first(x
i,y
i)と前記オリジナルサンプルI
orig(x
i,y
i)との間の偏差を計算すること、および(2)計算された前記偏差に基づいてオフセットを決定することと
を含む、請求項2に記載の方法。
【請求項4】
(1)前記クラスに関連する各位置(x
i,y
i)について、前記第1のフィルタ処理された出力I
first(x
i,y
i)と前記オリジナルサンプルI
orig(x
i,y
i)との間の偏差を計算することが、
を算出することを含み、ここで、Nが、前記クラスに関連する位置(x
i,y
i)の数を表し、(2)計算された前記偏差に基づいてオフセットを決定することが、-round(err)として前記オフセットを算出することを含む、請求項3に記載の方法。
【請求項5】
前記第2のフィルタが適応ループフィルタ(ALF)を備える、請求項1に記載の方法。
【請求項6】
前記第2のフィルタのためのパラメータを推定することは、
前記入力サンプルI(x,y)中の各サンプルについて、前記サンプルに関連するクラスを識別することであって、前記サンプルに関連するクラスを識別することが、クラスのセットを生じ、クラスの前記セット中の各クラスが、前記クラスに関連する前記サンプルI(x
i,y
i)に対応する0個またはそれ以上の位置(x
i,y
i)に関連する、前記サンプルに関連するクラスを識別することと、
各クラスについて、前記クラスに関連する各位置(x
i,y
i)について、前記第1のフィルタ処理された出力I
first(x
i,y
i)と前記オリジナルサンプルI
orig(x
i,y
i)との間の誤差を最小化するためのフィルタ係数を決定することと
を含む、請求項5に記載の方法。
【請求項7】
前記クラスに関連する各位置(x
i,y
i)について、前記第1のフィルタ処理された出力I
first(x
i,y
i)と前記オリジナルサンプルI
orig(x
i,y
i)との間の誤差を最小化するためのフィルタ係数を決定することが、err=Σ[I
first(x
k,y
k)+Filt(I(x
k,y
k))-I
orig(x
k,y
k)]
2を最小化することを含み、ここで、Filtが、前記決定されたフィルタ係数を有するフィルタを表す、請求項6に記載の方法。
【請求項8】
前記第1のフィルタ処理された出力I
first(x,y)と、前記入力サンプルI(x,y)と、オリジナルサンプルI
orig(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定することが、前記入力サンプルI(x,y)と変えられたオリジナルサンプルI
altorig(x,y)=I
orig(x,y)-ΔI
first(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定することを含む、請求項1に記載の方法。
【請求項9】
前記第2のフィルタがバイラテラルフィルタ(BIF)を備える、請求項1に記載の方法。
【請求項10】
第2のフィルタのための前記推定されたパラメータが、前記第2のフィルタのためのオン/オフスイッチを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
エンコーダ(500)の処理回路(502)によって実行されたとき、前記エンコーダ(500)に、請求項1から10のいずれか一項に記載の方法を実施させる命令(544)を備える、コンピュータプログラム(543)。
【請求項12】
請求項11に記載のコンピュータプログラムを含んでいるキャリアであって、前記キャリアが、電子信号、光信号、無線信号、およびコンピュータ可読記憶媒体(542)のうちの1つである、キャリア。
【請求項13】
エンコーダ(500)であって、UEが、
処理回路(502)と、
メモリ(542)と
を備え、前記メモリが、前記処理回路によって実行可能な命令(544)を含んでおり、それにより、前記UEが、請求項1から10のいずれか一項に記載の方法を実施するように設定された、エンコーダ(500)。
【請求項14】
1つまたは複数の画像を符号化するように設定されたエンコーダ(500)であって、前記エンコーダが、請求項1から10のいずれか一項に記載の方法を実施するように適応された、エンコーダ(500)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオシーケンスおよび/または静止画像のコーディングおよび復号に関し、より詳細には、そのようなコーディングおよび復号において使用される組み合わせられたループフィルタ処理に関する。
【背景技術】
【0002】
ビデオシーケンスは、ピクチャとも呼ばれる、1つまたは複数の画像を含み得る。本開示では、画像およびピクチャという用語は互換的に使用される。スクリーン上で閲覧されるとき、画像はピクセルからなり、各ピクセルは、一般に、赤、緑および青の値(RGB)を有する。しかしながら、ビデオシーケンスを符号化および復号するとき、画像は、しばしば、RGBを使用して表されないが、一般に、限定はしないが、YCbCrと、ICTCPと、非定輝度YCbCrと、定輝度YCbCrとを含む、別の色空間において表される。YCbCrの例をとる場合、YCbCrは、3つの成分、Y、CbおよびCrから構成される。ルーマと呼ばれ、輝度をほぼ表すYは、フル解像度のものであるが、2つの他の成分、すなわち、クロマと呼ばれるCbおよびCrは、より小さい解像度のものであることがしばしばある。一般的な例は、1920×1080RGBピクセルを含んでいるHDビデオシーケンスであり、これは、しばしば、1920×1080解像度Y成分と、960×540Cb成分と、960×540Cr成分とで表される。成分のエレメントは、サンプルと呼ばれる。上記の例では、したがって、Y成分の1920×1080サンプルがあり、したがって、サンプルとピクセルとの間に直接の関係がある。したがって、本明細書では、ピクセルおよびサンプルという用語は、しばしば互換的に使用される。Cb成分およびCr成分の場合、サンプルとピクセルとの間に直接の関係はなく、単一のCbサンプルが、一般に、いくつかのピクセルに影響を及ぼす。
【0003】
多くのビデオコーディング規格では、成分Y、CbおよびCrは、さらにブロックに区分される。一例として、アドバンストビデオコーディング(AVC)では、画像は、同じ16×16ピクセルエリアを表す、16×16 Yサンプルおよび8×8 CbおよびCrサンプルのマクロブロックに分割される。
【0004】
高効率ビデオコーディング(HEVC)では、画像は、コーディングツリーユニット(CTU)に分割される。CTUは、ルーマサンプルのN×NブロックとCbのためのM×MクロマサンプルとCrのためのM×Mクロマサンプルとを有する。一例は、N=64およびM=32を使用することである。CTUは、4つの正方形ブロックにスプリットされ得、それらの正方形ブロックは、再帰的に、4つの正方形ブロックにスプリットされ得る。したがって、これは、ルートとしてのCTUと、リーフとしてのコーディングユニット(CU)と呼ばれる正方形ブロックとをもつ、スプリッティングツリー(splitting tree)を形成する。
【0005】
多用途ビデオコーディング(VVC)では、画像は、コーディングツリーユニット(CTU)に分割される。CTUは、ルーマサンプルのN×NブロックとCbのためのM×MクロマサンプルとCrのためのM×Mクロマサンプルとを有する。一般的な一例は、N=128およびM=64を使用することである。ちょうどHEVCの場合のように、CTUは、次いで、より小さいブロックにスプリットされ得るが、これらは、正方形である必要はない。一例として、ブロックは、垂直スプリットを使用して2つのより小さいブロックにスプリットされ得、スプリットされたブロックは、オリジナルブロックと同じ幅を有するが、半分の高さを有する。このスプリットすることは、再帰的に続き、CTUがルートであり、リーフにおけるブロックがコーディングユニット(CU)と呼ばれる、スプリッティングツリーを形成し得る。これらのCUは、さらに変換ユニット、またはTUに分割され得る。デコーダでは、TUのサンプルが、同じ画像中の前に復号されたブロックからのサンプルを使用すること(イントラ予測)、または前に復号された画像中のブロックからのサンプルを使用すること(インター予測)、またはその2つの組合せのいずれかによって、最初に予測される。
【0006】
前に識別されたように、再構成された画像ブロックを形成した直後の画像データのバイラテラルフィルタ処理が、ビデオ圧縮のために有益であり得る。Wennerstenら、[1]によって説明されるように、バイラテラルフィルタを使用して、維持された視覚的品質を伴ってビットレートを低減することが可能である。(括弧内の番号は、本開示の最後にリストされる参考文献を指す。)ビットレートの低減は、BDレート(すなわち、Bjontegaardレート差)で測定され、ここで、-1%の負のデルタBDレート数字は、同じ視覚的品質を維持しながら、なんとかしてビットレートを1%だけ低減したことを意味する。[1]におけるフィルタの場合、デルタBDレートは、3%のランタイム増加について-0.5%(符号化)、およびランダムアクセスについて0%(復号)であった。ランタイムは、シーケンスを符号化または復号するためにかかる時間であり、したがって、低いランタイム増加が望ましい。この場合のフィルタ処理は、ブロック再構成の直後に起こるので、このタイプのバイラテラルフィルタ処理をポスト再構成(post reconstruction)バイラテラルフィルタ処理と呼ぶ。
【0007】
VVCでは、画像が再構成された後に、その画像は、フィルタ処理のいくつかの段階を通る。その場合、まだ符号化/復号されていない将来の画像の予測のために使用されるのは、その画像のフィルタ処理されたバージョンであり、フィルタ処理された画像は、したがって、コーディングループ内で使用されるので、これらのフィルタは、ループフィルタとして示される。これは、それらを、結果が予測のために使用されないフィルタ処理と区別するためのものであり、これは、ポストフィルタ処理と示される。VVCでは、3つのループフィルタ、すなわち、デブロッキングフィルタと、サンプル適応オフセット(SAO)フィルタと、適応ループフィルタ(ALF)とがある。SAOとALFの両方が、送信されたパラメータに依拠する。SAOは、たとえば、いくつかのサンプルが局所最大値をなす(サンプル値が、その左側のおよび右側のネイバーのものよりも高い)ので、それらのサンプルを識別する。SAOは、すべてのこれらの識別されたサンプルにオフセットを加算することができる。どんなオフセットを使用すべきかが、パラメータとしてエンコーダからデコーダに送られる。ALFの場合、1つまたは複数のFIRフィルタを使用してサンプルがフィルタ処理される。これらのフィルタの係数が、パラメータとしてエンコーダからデコーダに送られ得る。
【0008】
[2]では、バイラテラルフィルタが、VVCのコーディング効率を改善するための追加のループフィルタとして使用され得ることが説明された。したがって、画像を構成するためにブロックが復号されるにつれてそれらのブロックをバイラテラルフィルタ処理する代わりに、画像全体が復号されるまで待ち、次いで、バイラテラルフィルタ処理を使用して画像全体をフィルタ処理することが可能である。本明細書では、このタイプのバイラテラルフィルタ処理をバイラテラルループフィルタ処理と呼ぶ。
【0009】
バイラテラルフィルタの代替形態として、アダマール領域においてフィルタ処理することも可能である。[3]において説明されるように、これは、ちょうどバイラテラルフィルタの場合と同様に、各ブロックを再構成した直後に行われるか(ポスト再構成アダマールフィルタ処理)、またはループフィルタとして行われるか(アダマールループフィルタ処理)のいずれかであり得る。
【0010】
他の代替形態は、ニューラルネットワークを使用して、再構成された画像をフィルタ処理することを含む。JVET-T0079-v3[4]において説明されるように、ニューラルネットワークが、ALFループフィルタステップの後のまた別のループフィルタステップとして配置され得る。
【0011】
上記で説明されたように、バイラテラルフィルタ[1]およびアダマールフィルタ[3]など、いくつかのフィルタが、ポスト再構成フィルタとして配置され得る。しかしながら、ポスト再構成フィルタ処理は、フィルタ処理されていないサンプルが作り出されるポイントからそれらがフィルタ処理されたポイントまでのレイテンシがもたらされるという点で問題を伴う。これは、フィルタ処理されたサンプルが隣接ブロックの予測のために必要とされ得るので、問題になる。これは、小さいブロックをフィルタ処理することを回避することによって、およびブロック外のピクセルの使用を回避することによって避けられ得る。しかし残念ながら、これは、バイラテラルフィルタの場合、BDレートに関して-0.5%(負数はより良い圧縮効率を示す)から約-0.35%まで圧縮効率を低下させる。
【0012】
ループフィルタ処理は、約-0.45%のより良い利得を得ることができるが、すべてのサンプルがタッチされなければならない別個の段階であることにおいて、別の欠点を有する。多用途ビデオコーディング規格(VVC)は、3つのループフィルタ、すなわち、デブロッキングフィルタと、サンプル適応オフセット(SAO)と呼ばれるフィルタと、適応ループフィルタ(ALF)と呼ばれるフィルタとをすでに含んでいる。多くの連続したフィルタを有することは、フィルタが、一般に、少なくとも部分的に並列に適用されるので、ハードウェア実装形態を困難にすることがある。概念的に、ループフィルタ処理は、連続して起こるものと見なされ得る。デコーダが画像のすべてのブロックを再構成した後に、画像全体が、次いで、デブロッキングフィルタを使用してフィルタ処理される。これが終了したとき、デブロックされた画像全体が、次いで、SAOを使用してフィルタ処理され、それが終了したとき、画像全体がALFを使用してフィルタ処理される。しかしながら、現実のデコーダでは、これは、常に起こっていることであるとは限らない。レイテンシを回避するために、および数回、画像をメモリに書き込みおよびメモリから読み取る必要がないように、一般に起こることは、これらのプロセスが少なくとも部分的に並列に起こることである。これを、最後の2つのループフィルタ段階、すなわち、SAOおよびALFで例示する。SAOフィルタ処理がALFの前に起こる状況を仮定する。十分な数のサンプルがSAOによって出力されるとすぐに、効率的なデコーダがALFフィルタ処理を開始し得る。ただし、ALFは、画像のいくつかの部分に関して極めて高速であり、他の部分に関して遅くなり得るが、SAOについてはその反対が当てはまり得る。ALFが高速であるとき、ALFは、SAOに追いつき得、ALFが続けるための十分なデータをSAOが作り出すまで待たなければならないことになる。次いで、ALFが再び開始することができるとき、ALFは、画像データの遅いパッチに遭遇し、時間内で終了するのに苦労し得る。したがって、余分のループフィルタ段階を導入することは望ましくない。
【0013】
この問題を改善するために、1つのループフィルタ段階において2つのループフィルタを組み合わせることが可能である。これは、[5]において導入され、バイラテラルフィルタが、SAOと同じループフィルタ段階中に含まれた。これが働くやり方は、バイラテラルフィルタとSAOの両方が同じ入力サンプルI(x,y)(前の段階からの、この場合、デブロッキングフィルタからの出力サンプル)を得ることである。その場合、両方のフィルタがサンプルごとにオフセットを作り出す。バイラテラルフィルタはΔIBIF(x,y)を作り出し、SAOはΔISAO(x,y)を作り出す。出力サンプルICOMBは、フィルタ処理されていないサンプルI(x,y)と2つのオフセットとの和、すなわち、ICOMB=I(x,y)+ΔIBIF(x,y)+ΔISAO(x,y)である。このようにして、バイラテラルフィルタ処理とSAOとは並列に起こることができ、余分のループフィルタ段階が必要とされない。ハードウェア実装形態が、サンプルごとに2つのフィルタを完全に同期させることを確実にすることができ、したがって、フィルタが他方のフィルタを待つ必要がない。
【0014】
しかしながら、これは、個々のループフィルタのパラメータ推定を困難にすることがある。上記で説明されたように、SAOでは、どのオフセットを使用すべきかなど、パラメータを推定することが必要である。バイラテラルフィルタ処理されなかったサンプルに対してSAO推定が起こる場合、過剰フィルタ処理(over-filtering)が起こることがある。一例として、ピクセル中で、入力強度値I(x,y)=500が、オリジナル値510と比較してあまりに低く、理想的には、10強度レベル高くなるべきであると仮定する。バイラテラルフィルタは、これを、ΔIBIF(x,y)=10を選択することによって、完全に補正することが可能であり得る。しかしながら、SAOパラメータ推定方法は、10レベルも低い入力I(x,y)のみを得て、同じく、これを、ΔISAO(x,y)=10を選択することによって補正し得る。その場合、結果は、組み合わせられた値ICOMB=I(x,y)+ΔIBIF(x,y)+ΔISAO(x,y)=500+10+10=520であることになり、これは、10レベルも低いのではなく、10レベルも高く、過剰補正であり、これは、フィルタ処理されていないピクセル値I(x,y)も同然のものである。オリジナル値は、異なる意味を有することがあることに留意されたい。一般に、オリジナルは、ただ、圧縮の前のピクチャである。しかしながら、時々、雑音除去または画像安定化など、何らかの前処理が、圧縮より前に行われ得る。オリジナル値は、異なる実施形態では、圧縮の前のピクチャを指し得、雑音除去または画像安定化など、前処理を含み得るか、または、そのような前処理が行われる前のピクチャを指し得る。
【0015】
したがって、すでにバイラテラルフィルタ処理されたサンプルに対してSAOパラメータ推定が行われるソリューションが、[6]において提案される。これは、上記で説明された過剰フィルタ処理問題を回避する。
【発明の概要】
【0016】
図10は、デコーダが同じループフィルタ段階における2つのフィルタをどのようにハンドリングするかを示す。前の段階、たとえば、デブロッキングからの出力が、バイラテラルフィルタ(BIF)1002とSAOフィルタ1003の両方に送られる。両方の段階がオフセットを計算し、これらは、前の段階からの出力と組み合わせられて、出力I
COMB(x,y)=I(x,y)+ΔI
BIF(x,y)+ΔI
SAO(x,y)を作り出す。出力はまた、その後クリッピングされ得る。
【0017】
図11は、SAOフィルタ処理1003がどのように機能するかをより詳細に示す。ここで、1101において、たとえば、128×128サイズの、CTUブロックからのいくつかのサンプルが、あるクラスに属するもの、たとえば、水平方向における局所最小値であるものとして識別される。どのクラスを使用すべきか(最小値、最大値など)が、SAOパラメータから取得され得る。次のステップ1102において、これらのサンプルは、SAOパラメータから取得されたオフセットと加算される。最終的に、すべてのサンプルについてのデルタΔI
SAO(x,y)が計算される。これは、クラス外のすべてのサンプルについて0であり、クラス中のサンプルについてオフセットに等しいことになる。SAOパラメータはまた、SAOがこのCTUについてオフにされるべきであることをシグナリングし得、その場合、ΔI
SAO(x,y)は、CTU中のすべてのサンプルについて0にセットされることに留意されたい。
【0018】
エンコーディング側では、上記で説明されたように、バイラテラルフィルタ処理を通していないサンプルI(x,y)をSAOパラメータ推定に供給することは、SAOがBIFと同じ補償を行い得るので、理想的でない。これは、
図1に示されている。わかるように、SAOパラメータ推定プロセス103は、入力として前の段階からの出力I(x,y)を得るにすぎない。
図5は、パラメータ推定がどのように機能するかをより詳細に示す。第1に、ステップ501において、前の段階からのサンプルI(x,y)が、どのサンプルがあるクラスに属するかを識別するために調査される。一例として、SAOは、サンプルが局所最大値である場合、たとえば、左側のサンプルと右側のサンプルとが両方とも現在のサンプル値よりも低い場合にトリガされ得る。次に、ステップ502において、これらのサンプルがオリジナル画像からどの程度偏差するかが計算される。たとえば、平均して局所最大値をなすすべてのサンプルがオリジナルよりも2強度レベル高いことが見つけられた場合、errは2であることになる。ステップ3において、オフセットが決定される。平均誤差を補償するように、オフセットを-round(err)であるようにセットすることがしばしば望ましい。しかしながら、時々、オフセットをシグナリングすることは費用がかかりすぎることがあり、または場合によっては別のクラスがより良好である(たとえば、代わりに、最大値の代わりに極小値を探すクラス)。したがって、どのクラスが最良の誤差を与えるか、またはSAOフィルタがCTUについて完全にオフにされるべきであるかどうかを決定するための論理もあり得る。103からの出力は、オフセットおよびどのクラスを使用すべきかなど、SAOパラメータである。上記で説明されたように、103への入力として前の段階からの出力I(x,y)を使用することに関する問題は、誤差が、I(x,y)に対して計算され、I(x,y)+ΔI
BIF(x,y)に対して計算されないことである。これは、計算されるオフセットが不正確であり得ることを意味する。
【0019】
同じく上記で説明されたように、これは、
図2に示されている、[6]において提案されたソリューションによって矯正され得る。ここでは、前の段階からの出力I(x,y)を供給される代わりに、SAOパラメータ推定203は、代わりに、バイラテラルフィルタ処理された出力I
BIF(x,y)=I(x,y)+ΔI
BIF(x,y)を供給される。パラメータ推定の詳細は、
図6において説明される。ここでは、602における誤差の計算は、I
BIF(x,y)-I
ORIG(x,y)として正しく行われる。しかしながら、代わりに、別の問題がある。601におけるサンプルの識別が、今度は間違っている。これは、601において、これが、バイラテラルフィルタ処理されたサンプルに関して行われるが、デコーダでは、この決定が、バイラテラルフィルタ処理されていないサンプルI(x,y)に関して行われるためである。これは、SAOフィルタ処理ステップ1003に前のステップからの出力I(x,y)が供給される、
図10において見られ得る。これは、SAOパラメータ推定ステップが、I
BIF(x,y)におけるサンプルを最大値として識別し得るが、I(x,y)における最大値を探すことになるデコーダが、同じ位置において最大値を見つけないことがあることを意味する。
【0020】
したがって、どちらの場合も誤差があることになり、最良のSAOパラメータが、
図1および
図2の従来技術の推定のいずれにおいても見つけられないことがある。
【0021】
本明細書で開示される実施形態は、前の段階からの出力I(x,y)とフィルタ処理されたバージョンIBIF(x,y)の両方をパラメータ推定モジュールに供給することによって、これらのパラメータ推定問題(すなわち、間違った参照に対してパラメータを計算すること、ならびに間違った分類を計算すること)を回避する。これは、BIFおよびSAOについてだけでなく、並列に動作している2つのフィルタについても使用され得る、一般的なアイデアである。
【0022】
本明細書に組み込まれ、明細書の一部をなす添付の図面は、様々な実施形態を示している。
【図面の簡単な説明】
【0023】
【
図1】関連技術のシステムによる、エンコーダの例示的なアーキテクチャである。
【
図2】関連技術のシステムによる、エンコーダの例示的なアーキテクチャである。
【
図3】一実施形態による、エンコーダの例示的なアーキテクチャである。
【
図4】一実施形態による、エンコーダの例示的なアーキテクチャである。
【
図5】関連技術のシステムによる、SAOパラメータ推定の例示的なアーキテクチャである。
【
図6】関連技術のシステムによる、SAOパラメータ推定の例示的なアーキテクチャである。
【
図7】一実施形態による、SAOパラメータ推定の例示的なアーキテクチャである。
【
図8】関連技術のシステムによる、ALFパラメータ推定の例示的なアーキテクチャである。
【
図9】一実施形態による、ALFパラメータ推定の例示的なアーキテクチャである。
【
図10】一実施形態による、デコーダの例示的なアーキテクチャである。
【
図11】一実施形態による、SAOフィルタ処理の例示的なアーキテクチャである。
【
図12】一実施形態による、デコーダの例示的なアーキテクチャである。
【
図13】一実施形態による、エンコーダの例示的なアーキテクチャである。
【
図14】関連技術のシステムによる、デコーダの例示的なアーキテクチャである。
【
図15】関連技術のシステムによる、エンコーダの例示的なアーキテクチャである。
【
図16】一実施形態による、エンコーダの例示的なアーキテクチャである。
【
図18】一実施形態による、エンコーダのブロック図である。
【発明を実施するための形態】
【0024】
本明細書で開示される実施形態は、エンコーダが、両方のフィルタがデコーダ中で並列に動作している場合の一方のフィルタのためのパラメータを推定するためのやり方を提供する。アイデアは、第2のフィルタのパラメータを効率的に推定することである。これは、前の段階からのサンプルI(x,y)ならびに第1のフィルタからのフィルタ処理されたサンプルIfirst(x,y)の両方において供給することによって行われる。このようにして、両方の分類(検出、処理)が、正しく実施され、すなわち、ちょうどデコーダの場合のように実施されることになり、同時に、誤差計算が第1のフィルタについての結果を念頭に置いて行われることになる。代替的に、参照をオリジナルIORIG(x,y)からIALTORIG(x,y)=IORIG(x,y)-(Ifirst(x,y)-I(x,y))に変えることが可能である。
【0025】
図3は、一実施形態による、パラメータ推定がどのように行われるかを示す。前の段階からの出力サンプルI(x,y)が、301において取得され、次いで、バイラテラルフィルタ302でフィルタ処理され、ΔI
BIF(x,y)を生じる。バイラテラルフィルタ302の出力、すなわち、I
BIF(x,y)=I(x,y)+ΔI
BIF(x,y)は、SAOパラメータ推定段階303に供給される。しかしながら、SAOパラメータ推定段階303は、前の段階からの出力サンプルI(x,y)ならびにオリジナルサンプルI
ORIG(x,y)をも得る。SAOフィルタ処理304は、推定されたSAOパラメータを使用して、出力サンプルI(x,y)に対して実施され、ΔI
SAO(x,y)を生じる。次いで、組合せI
COMBが、305においてI
COMB(x,y)=I(x,y)+ΔI
BIF(x,y)+ΔI
SAO(x,y)として計算される。
【0026】
図7は、SAOパラメータ推定303がどのように機能するかをより詳細に示す。どのサンプルがあるクラスに属するかの識別は、ステップ701において行われ、これは、入力として前の段階からのサンプルI(x,y)をとる。これは、バイラテラルフィルタ処理されたサンプルが使用された、
図6中のステップ601とは異なる。702におけるオリジナルからの偏差の計算は、バイラテラルフィルタ処理されたサンプルI
BIF(x,y)に対して行われる。これは、前の段階からのサンプルI(x,y)が使用される
図5中のステップ503とは異なる。
【0027】
最終的に、ステップ703が、702において計算された偏差に基づいて、使用すべき最良のオフセットを決定する。このプロセス701、702および703は、SAO中のすべての異なる分類子について行われ得る。
【0028】
図3および
図7に示されている実施形態は、従来技術のソリューションの問題の両方を解決する。[6]とは対照的に、それは、
図10中のデコーダ1003が行うのと同じやり方でサンプルを識別し、なぜなら、それは、その識別を前の段階からのサンプルI(x,y)に基づかせるからである。しかしながら、その実施形態はまた、それが、ステップ702におけるI
BIF(x,y)を使用しているので、フィルタ処理中に過剰補償することを回避するために、バイラテラルフィルタ処理を考慮に入れて誤差を計算する。
【0029】
この技法は、バイラテラルフィルタ処理およびSAOが使用される場合に適用されるだけでなく、概して、2つのフィルタが同じループフィルタ処理段を共有する限り、およびフィルタのうちの少なくとも1つが、エンコーダ中で推定される必要がある送信されたパラメータを使用するとき、使用され得る。
【0030】
これは、より一般的には、
図12のデコーダにおいて示されており、フィルタ1とフィルタ2とが、それらが両方とも前の段階の出力サンプルI(x,y)に対して動作しているので、同じループフィルタ処理段階を共有する。フィルタ2は、エンコーダが推定し、デコーダに送った、送信されたパラメータを使用する。2つのフィルタの出力が、1205において組み合わせられて、最終出力I
COMB(x,y)を作り出す。
【0031】
そのような状況では、フィルタ2のためのパラメータが、一実施形態では、
図13に従って推定され得る。最初に、前の段階からの出力サンプルI(x,y)が、1301において取得され、ステップ1302においてフィルタ1を使用してフィルタ処理される。次いで、フィルタ2について、フィルタ処理された出力I
first(x,y)が前の段階からの出力サンプルI(x,y)および参照I
ORIG(x,y)とともにパラメータ推定ステップ1303に供給される。ステップ1303において、I(x,y)は、分類/処理/検出などがデコーダ中で行われることであるので、これのために使用されるべきであり、I
first(x,y)は、パラメータを推定するために誤差を計算するとき、使用されるべきである。パラメータは、次いで、ステップ1304においてI(x,y)を処理するために使用され、得られたデルタは、1302からのデルタとともに使用されて、ステップ1305において、I
COMB(x,y)を作り出す。
【0032】
ここでは、処理することの一般的な用語として「フィルタ」を使用することと、それは、有限インパルス応答フィルタ処理に制限されるべきでなく、わかるように、ニューラルネットワークを用いた処理など、より一般的な処理をも意味することができることとに留意されたい。
【0033】
同じループフィルタ段階において有することが有益であり得る2つのフィルタの一例は、[4]からのニューラルネットワークフィルタ、およびALFである。ただし、最初に、それが2つの異なるループフィルタ段階中で旧来どのように行われるかを見る。[4]において、2つのフィルタが、
図14に見られ得るように、異なるループフィルタ段階中にある。前の段階からの出力サンプルI(x,y)は、ステップ1401において、送信されたパラメータとともに取得され、結果は、サンプルごとのオフセットΔI
ALF(x,y)である。これらは、次いで、前の段階からの出力サンプルI(x,y)と組み合わせられ、ALFフィルタ処理されたサンプルI
ALF(x,y)を生じる。その後、ステップ1403は、ALFフィルタ処理されたサンプルのニューラルネットワークフィルタ処理を行う。
【0034】
この旧来の場合(両方のフィルタがそれら自体のループフィルタ段階中にある)におけるエンコーダは、
図15に示されている。ここでは、前の段階からの出力サンプルI(x,y)は、参照サンプルI
ORIG(x,y)とともにALFパラメータ推定ステップ1501に供給される。出力は、ALFパラメータであり、次いで、これを使用して、前の段階からの出力サンプルI(x,y)をフィルタ処理して、サンプルごとのALFオフセットを作り出し得、サンプルごとのALFオフセットは、次いで、ステップ1503においてI(x,y)と組み合わせられて、ALFフィルタ処理されたサンプルを作り出す。エンコーダは、次いで、1504においてニューラルネットワークフィルタ処理を進める。
【0035】
1501におけるALFパラメータ推定ステップは、
図8においてより詳細に説明される。前のステップからの出力サンプルI(x,y)はステップ801に入力され、ステップ801は、局所的に周囲のサンプルに基づいて各サンプルをいくつかのクラスのうちの1つに分類するために使用される。VVCでは、サンプルが属することができる25個のクラスがあり、各々が、異なるフィルタを有することができる。あらゆるサンプルが25個のクラスのうちの1つに属するものとして分類された後に、ステップ802は、各クラスについて最良の有限インパルス応答(FIR)フィルタを見つける。これは、誤差
を、あるクラスのすべてのサンプルkについて最小化するフィルタ係数を見つけることによって、行われる。FILT(I(x
k,y
k))は、位置(x
k,y
k)におけるFIRフィルタの出力である。(FILT(I(x
k,y
k))は、サンプルI(x
k,y
k)だけでなく、周囲のサンプルにも依存することに留意されたい。)ステップ803が、次いで、いくつかのフィルタがマージされるべきであるかどうかを確かめるために使用される。異なるクラスからの2つのフィルタが十分に類似する場合、それらのフィルタをマージし、1つのフィルタのみを送ることが有益であり得、なぜなら、これは、マージされたフィルタがその2つのクラスのいずれかについても最適でないことにより、ひずみがやや増え得るとしても、ビットを節約するからである。
【0036】
ループフィルタ段階の数を低減するために、代わりに、両方のフィルタを同じループフィルタ段階中に保つことが有益であり得る。これは、
図4に示されており、[4]からのニューラルネットワークフィルタがフィルタ1として使用され、ALFがフィルタ2として使用される。実施形態では、他のニューラルネットワークフィルタも使用され得る。前の段階からの出力サンプルI(x,y)は、ニューラルネットワーク402でフィルタ処理され、INN(x,y)を作り出す。これは、しばしば、最初に、デルタΔI
NN(x,y)=DNN(I(x,y))を計算し、次いで、フィルタ処理された出力I
NN(x,y)=I(x,y)+ΔI
NN(x,y)を作り出すことによって、行われる。出力は、ALFパラメータ推定ステップ403に供給される。このステップは、前のステップからの出力サンプルI(x,y)、ならびに参照またはオリジナルサンプルI
ORIG(x,y)をも取得する。
【0037】
図9は、パラメータ推定ステップ403をより詳細に示す。第1のステップ901が、入力として前の段階からの出力サンプルI(x,y)を使用する。これは、分類が、ちょうどデコーダ中で行われるように起こることになることを意味する(入力として前のステップからの出力サンプルI(x,y)をも得る、
図14中の1401参照)。ステップ902が、特定のクラスについて最良のフィルタ係数を計算する。
図8のステップ802について行われたように誤差
を最小化する代わりに、ステップ902は、誤差
を最小化する。
これは、それが、オリジナルにより近い、フィルタ処理されていないサンプルI(x,y)をもたらすフィルタ係数の代わりに、オリジナルにより近い、NNフィルタ処理されたバージョンI
NN(x,y)をもたらすフィルタ係数を見つけることを試みることを意味する。これは、それが、フィルタ推定ステップ902がニューラルネットワーク(NN)フィルタによってすでに行われた改善を考慮に入れることになることを意味するので、重要な差である。
【0038】
最終的に、ステップ903は、いくつかのフィルタがマージされるべきであるか否かを決定する。
【0039】
結論として、ステップ901において前の段階からの出力サンプルI(x,y)を使用することは、エンコーダがデコーダと同じ分類を使用することになることを保証し、ステップ902においてNNフィルタ処理されたサンプルを使用することは、エンコーダが、ニューラルネットワークフィルタ処理ステップによってすでに実施された補正を考慮に入れることになることを保証する。
【0040】
代替実施形態
【0041】
代替実施形態が
図16に示されている。前のステップからの出力サンプルI(x,y)が、1601において取得され、1602においてフィルタ1に供給される。次いで、出力オフセットΔI
first(x,y)が、ステップ1606に供給され、ステップ1606は、オリジナルI
ORIG(x,y)とフィルタ1からのフィルタオフセットΔI
first(x,y)とから、新しい代替オリジナルI
ALTORIG(x,y)を作成する。この代替オリジナルは、次いで、オリジナルとしてフィルタ2パラメータ推定ステップ1603に供給される。ステップ1603は、前のステップからの出力サンプルI(x,y)をも受信する。したがって、この実施形態では、I
first(x,y)は、フィルタ2パラメータ推定ステップ1603に供給されず、フィルタ2パラメータ推定ステップ1603は、したがって、
図13中の1303の場合のように3つではなく、2つの入力(I(x,y)およびI
ALTORIG(x,y))を有するにすぎない。
【0042】
フィルタ2がSAOである場合、1603は、
図5に従って実装され得るが、入力として、I
ORIG(x,y)ではなく、I
ALTORIG(x,y)を用いる。同様に、フィルタ2がALFである場合、1603は、
図8に従って実装され得るが、入力として、I
ORIG(x,y)ではなく、I
ALTORIG(x,y)を用いる。概して、1603は、I
ORIG(x,y)がI
ALTORIG(x,y)に変更されることを除いて、それが、フィルタが(別のフィルタと並列でない)それ自体のループフィルタ段階を有する場合に行われたであろうように、実装され得る。
【0043】
図17は、一実施形態によるフローチャートを示す。プロセス1700は、1つまたは複数の画像を符号化するための方法である。方法は、ステップs1702から始まり得る。
【0044】
ステップs1702は、第1のフィルタ処理された出力Ifirst(x,y)=I(x,y)+ΔIfirst(x,y)を生成するために、第1のフィルタで、入力サンプルI(x,y)をフィルタ処理することを含む。
【0045】
ステップs1704は、第1のフィルタ処理された出力Ifirst(x,y)と、入力サンプルI(x,y)と、オリジナルサンプルIORIG(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定することを含む。
【0046】
ステップs1706は、第2のフィルタ処理された出力Isecond(x,y)=I(x,y)+ΔIsecond(x,y)を生成するために、第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することであって、第2のフィルタで、フィルタ処理することが、第2のフィルタのために推定されたパラメータに少なくとも部分的に基づく、第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することを含む。
【0047】
ステップs1708は、組み合わせられた出力ICOMB(x,y)=I(x,y)+ΔIfirst(x,y)+ΔIsecond(x,y)を生成することを含む。
【0048】
いくつかの実施形態では、第1のフィルタはバイラテラルフィルタを備え、いくつかの実施形態では、第2のフィルタはサンプル適応オフセット(SAO)フィルタを備える。いくつかの実施形態では、第2のフィルタのためのパラメータを推定することは、入力サンプルI(x,y)中の各サンプルについて、サンプルに関連するクラスを識別することであって、サンプルに関連するクラスを識別することが、クラスのセットを生じ、クラスのセット中の各クラスが、クラスに関連するサンプルI(x
i,y
i)に対応する0個またはそれ以上の位置(x
i,y
i)に関連する、サンプルに関連するクラスを識別することと、各クラスについて、(1)クラスに関連する各位置(x
i,y
i)について、第1のフィルタ処理された出力I
first(x
i,y
i)とオリジナルサンプルI
ORIG(x
i,y
i)との間の偏差を計算すること、および(2)計算された偏差に基づいてオフセットを決定することとを含む。いくつかの実施形態では、(1)クラスに関連する各位置(x
i,y
i)について、第1のフィルタ処理された出力I
first(x
i,y
i)とオリジナルサンプルI
orig(x
i,y
i)との間の偏差を計算することは、
を算出することを含み、ここで、Nが、クラスに関連する位置(x
i,y
i)の数を表し、(2)計算された偏差に基づいてオフセットを決定することは、-round(err)としてオフセットを算出することを含む。
【0049】
いくつかの実施形態では、第1のフィルタはニューラルネットワークフィルタを備え、いくつかの実施形態では、第2のフィルタは適応ループフィルタ(ALF)を備える。いくつかの実施形態では、第2のフィルタのためのパラメータを推定することは、入力サンプルI(x,y)中の各サンプルについて、サンプルに関連するクラスを識別することであって、サンプルに関連するクラスを識別することが、クラスのセットを生じ、クラスのセット中の各クラスが、クラスに関連するサンプルI(xi,yi)に対応する0個またはそれ以上の位置(xi,yi)に関連する、サンプルに関連するクラスを識別することと、各クラスについて、クラスに関連する各位置(xi,yi)について、第1のフィルタ処理された出力Ifirst(xi,yi)とオリジナルサンプルIORIG(xi,yi)との間の誤差を最小化するためのフィルタ係数を決定することとを含む。いくつかの実施形態では、クラスに関連する各位置(xi,yi)について、第1のフィルタ処理された出力Ifirst(xi,yi)とオリジナルサンプルIORIG(xi,yi)との間の誤差を最小化するためのフィルタ係数を決定することは、err=Σ[Ifirst(xk,yk)+Filt(I(xk,yk))-IORIG(xk,yk)]2を最小化することを含み、ここで、Filtが、決定されたフィルタ係数を有するフィルタを表す。
【0050】
いくつかの実施形態では、第1のフィルタ処理された出力Ifirst(x,y)と、入力サンプルI(x,y)と、オリジナルサンプルIORIG(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定することは、入力サンプルI(x,y)と変えられたオリジナルサンプルIALTORIG(x,y)=IORIG(x,y)-ΔIfirst(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定することを含む。いくつかの実施形態では、第2のフィルタはバイラテラルフィルタ(BIF)を備える。いくつかの実施形態では、第2のフィルタのための推定されたパラメータは、第2のフィルタのためのオン/オフスイッチを含む。
【0051】
図18は、いくつかの実施形態による、エンコーダ1800のブロック図である。
図18に示されているように、エンコーダ1800は、1つまたは複数のプロセッサ(P)1855(たとえば、1つまたは複数の汎用マイクロプロセッサ、および/または、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、1つまたは複数の他のプロセッサなど)を含み得る処理回路(PC)1802であって、そのプロセッサが、単一のハウジングにおいてまたは単一のデータセンタにおいて共同サイト式であり得るかあるいは地理的に分散され得る(すなわち、エンコーダ1800が分散コンピューティング装置であり得る)、処理回路(PC)1802と、少なくとも1つのネットワークインターフェース1848(たとえば、物理インターフェースまたはエアインターフェース)であって、エンコーダ1800が、ネットワークインターフェース1848が(物理的にまたは無線で)接続されたネットワーク1810(たとえば、インターネットプロトコル(IP)ネットワーク)に接続された他のノードにデータを送信し、他のノードからデータを受信することを可能にするための送信機(Tx)1845および受信機(Rx)1847を備える(たとえば、ネットワークインターフェース1848が、エンコーダ1800がデータを無線で送信/受信することを可能にするための1つまたは複数のアンテナを備えるアンテナ構成に結合され得る)、少なくとも1つのネットワークインターフェース1848と、1つまたは複数の不揮発性記憶デバイスおよび/または1つまたは複数の揮発性記憶デバイスを含み得るローカル記憶ユニット(別名「データ記憶システム」)1808とを備え得る。PC1802がプログラマブルプロセッサを含む実施形態では、コンピュータプログラム製品(CPP)1841が提供され得る。CPP1841はコンピュータ可読媒体(CRM)1842を含み、CRM1842は、コンピュータ可読命令(CRI)1844を備えるコンピュータプログラム(CP)1843を記憶する。CRM1842は、磁気媒体(たとえば、ハードディスク)、光媒体、メモリデバイス(たとえば、ランダムアクセスメモリ、フラッシュメモリ)など、非一時的コンピュータ可読媒体であり得る。いくつかの実施形態では、コンピュータプログラム1843のCRI1844は、PC1802によって実行されたとき、CRIが、エンコーダ1800に、本明細書で説明されるステップ(たとえば、フローチャートを参照しながら本明細書で説明されるステップ)を実施させるように設定される。他の実施形態では、エンコーダ1800は、コードの必要なしに本明細書で説明されるステップを実施するように設定され得る。すなわち、たとえば、PC1802は、単に1つまたは複数のASICからなり得る。したがって、本明細書で説明される実施形態の特徴は、ハードウェアおよび/またはソフトウェアで実装され得る。
【0052】
様々な実施形態が本明細書で説明されたが、それらの実施形態は、限定ではなく、例として提示されたにすぎないことを理解されたい。したがって、本開示の広さおよび範囲は、上記で説明された例示的な実施形態のいずれによっても限定されるべきでない。その上、本明細書で別段に示されていない限り、またはコンテキストによって明確に否定されていない限り、上記で説明されたエレメントのそれらのすべての考えられる変形形態における任意の組合せが、本開示によって包含される。
【0053】
さらに、上記で説明され、図面に示されたプロセスは、ステップのシーケンスとして示されたが、これは、説明のためにのみ行われた。したがって、いくつかのステップが追加され得、いくつかのステップが省略され得、ステップの順序が並べ替えられ得、いくつかのステップが並行して実施され得ることが企図される。
【0054】
参考文献
[1]P.Wennersten、J.Strom、Y.Wang、K.Andersson、R.Sjoberg、J.Enhorn、「Bilateral Filtering for Video Coding」、IEEE Visual Communications and Image Processing(VCIP)、2017年12月。[文書はhttp://www.jacobstrom.com/publications/Wennersten_et_al_VCIP2017.pdfからダウンロード可能]
[2]J.Strom、P.Wennersten、J.Enhorn、R.Sjoberg、「CE1-related:Multiplication-free bilateral loop filter」、JVET-N0493、第14回JVET会議:ジュネーブ、CH、2019年3月19~27日。[文書はhttp://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0493-v4.zipからzipファイルとしてダウンロード可能]
[3]S.Ikonin、V.Stepin、A.Karabutov、J.Chen、「CE1:Hadamard transform domain filter (CE1-2)」、JVET-N0478、第14回JVET会議:ジュネーブ、CH、2019年3月19~27日。[文書はhttp://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0478-v3.zipからzipファイルとしてダウンロード可能]
[4]H.Wang、M.Karczewicz、J.Chen、A.M.Kotra、「AHG11:Neural Network-based In-Loop Filter」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29のジョイントビデオエキスパートチーム(JVET)第20回会議、遠隔会議にて、2020年10月7~16日。[文書はhttps://jvet-experts.org/doc_end_user/documents/20_Teleconference/wg11/JVET-T0079-v3.zipからzipファイルとしてダウンロード可能]
[5]J.Strom、P.Wennersten、J.Enhorn、D.Liu、K.AnderssonおよびR.Sjoberg、「Combined bilateral/SAO loop filter」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントビデオエキスパートチーム(JVET)第15回会議:イェーテボリ、SE、2019年7月3~12日。[文書はhttps://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0548-v7.zipからzipファイルとしてダウンロード可能]
[6]COMBINED LOOP FILTERING FOR IMAGE PROCESSING、米国出願第62/865533号、2019年6月24日出願
【手続補正書】
【提出日】2023-12-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数の画像を符号化するための方法であって、前記方法は、
第1のフィルタ処理された出力I
first(x,y)=I(x,y)+ΔI
first(x,y)を生成するために、第1のフィルタで、入力サンプルI(x,y)をフィルタ処理することと、
前記第1のフィルタ処理された出力I
first(x,y)と、前記入力サンプルI(x,y)と、オリジナルサンプルI
orig(x,y)とに少なくとも部分的に基づいて、第2のフィルタのためのパラメータを推定すること
であって、前記第2のフィルタがサンプル適応オフセット(SAO)フィルタを備え、前記第2のフィルタのためのパラメータを推定することが、
前記入力サンプルI(x,y)中の各サンプルについて、前記サンプルに関連するクラスを識別することであって、前記サンプルに関連するクラスを識別することが、クラスのセットを生じ、クラスの前記セット中の各クラスが、前記クラスに関連するサンプルI(x
i
,y
i
)に対応する0個またはそれ以上の位置(x
i
,y
i
)に関連する、前記サンプルに関連するクラスを識別することと、
各クラスについて、(1)前記クラスに関連する各位置(x
i
,y
i
)について、前記第1のフィルタ処理された出力I
first
(x
i
,y
i
)と前記オリジナルサンプルI
orig
(x
i
,y
i
)との間の偏差を計算すること、および(2)計算された前記偏差に基づいてオフセットを決定することと
を含む、第2のフィルタのためのパラメータを推定することと、
第2のフィルタ処理された出力I
second(x,y)=I(x,y)+ΔI
second(x,y)を生成するために、前記第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することであって、前記第2のフィルタで、フィルタ処理することが、前記第2のフィルタのために推定された前記パラメータに少なくとも部分的に基づく、前記第2のフィルタで、入力サンプルI(x,y)をフィルタ処理することと、
組み合わせられた出力I
COMB(x,y)=I(x,y)+ΔI
first(x,y)+ΔI
second(x,y)を生成することと
を含む、方法。
【請求項2】
(1)前記クラスに関連する各位置(x
i,y
i)について、前記第1のフィルタ処理された出力I
first(x
i,y
i)と前記オリジナルサンプルI
orig(x
i,y
i)との間の偏差を計算することが、
を算出することを含み、ここで、Nが、前記クラスに関連する位置(x
i,y
i)の数を表し、(2)計算された前記偏差に基づいてオフセットを決定することが、-round(err)として前記オフセットを算出することを含む、請求項
1に記載の方法。
【請求項3】
第2のフィルタのための前記推定されたパラメータが、前記第2のフィルタのためのオン/オフスイッチを含む、請求項1
または2に記載の方法。
【請求項4】
エンコーダ(500)の処理回路(502)によって実行されたとき、前記エンコーダ(500)に、請求項1から
3のいずれか一項に記載の方法を実施させる命令(544)を備える、コンピュータプログラム(543)。
【請求項5】
請求項
4に記載のコンピュータプログラムを含んでいるキャリアであって、前記キャリアが、電子信号、光信号、無線信号、およびコンピュータ可読記憶媒体(542)のうちの1つである、キャリア。
【請求項6】
エンコーダ(500)であって、UEが、
処理回路(502)と、
メモリ(542)と
を備え、前記メモリが、前記処理回路によって実行可能な命令(544)を含んでおり、それにより、前記UEが、請求項1から
3のいずれか一項に記載の方法を実施するように設定された、エンコーダ(500)。
【請求項7】
1つまたは複数の画像を符号化するように設定されたエンコーダ(500)であって、前記エンコーダが、請求項1から
3のいずれか一項に記載の方法を実施するように適応された、エンコーダ(500)。
【国際調査報告】