(57)【要約】  再構築された画像、特にビデオ画像を適応乗算フィルタでフィルタリングするための装置および方法。フィルタリング演算の効率は、フィルタ係数の許可値を、２進表現で限られた数の「１」のみを有するそれらに制限することによって増加する。
2021515494.tif 000002
【特許請求の範囲】
【請求項１】
整数で表される適応乗算係数を有するフィルタ（１２０；２２０）を使用して画像のサンプル（１１５；２１５）のセットをフィルタリングするための装置であって、前記装置は、
前記フィルタ（１２０；２２０）の少なくとも１つの乗算係数の値を、許可値のセット内にあるように決定し、その結果、予め定められた桁数Ｌを有する前記少なくとも１つの乗算係数の絶対値の２進表現が、少なくとも１つの「ゼロ」を含むようにして、
前記フィルタ（１２０；２２０）を使用して画像のサンプル（１１５；２１５）の前記セットをフィルタリングするように構成される処理回路を有する、装置。
【請求項２】
前記セットの最大絶対値が予め定められた最大値Ｎｍａｘに制限される、請求項１に記載の装置。
【請求項３】
前記少なくとも１つの乗算係数の絶対値の２進表現が、最大で２つの「１」を含む、請求項１または２に記載の装置。
【請求項４】
前記少なくとも１つの乗算係数の絶対値の２進表現が、最大で１つの「１」を含む、請求項３に記載の装置。
【請求項５】
フィルタ（１２０；２２０）のすべての乗算係数が、許可値の前記セット内にあるようにと決定される、請求項１から４のいずれか１項に記載の装置。
【請求項６】
前記処理回路は、前記フィルタ（１２０；２２０）の乗算係数を少なくとも２つのグループにグループ化するようにさらに構成され、
前記グループの１つの乗算係数は、許可値の前記セットに制限される、
請求項１から４のいずれか１項に記載の装置。
【請求項７】
前記グループの他の１つの乗算係数が、絶対値の予め定められた最大値によって定義される範囲内のすべての値を仮定することを許可される、請求項６に記載の装置。
【請求項８】
画像のサンプルの前記セットがビデオ画像のサンプル（１１５；２１５）のセットである、請求項１から７のいずれか１項に記載の装置。
【請求項９】
前記装置は、各画像および各画素の乗算係数を個々に適応させるように構成される、請求項８に記載の装置。
【請求項１０】
整数で表される適応乗算係数を有するフィルタ（１２０；２２０）を使用して画像のサンプル（１１５；２１５）のセットをフィルタリングするための方法であって、前記方法は、
前記フィルタ（１２０；２２０）の少なくとも１つの乗算係数の値を、許可値のセット内にあるように決定し（Ｓ８０；Ｓ９２、Ｓ９４）、その結果、予め定められた桁数Ｌを有する前記少なくとも１つの乗算係数の絶対値の２進表現が、少なくとも１つの「ゼロ」を含むようにする段階と、
前記フィルタ（１２０；２２０）を使用した画像のサンプル（１１５；２１５）のセットのフィルタリング（Ｓ８２；Ｓ９６）をする段階と、
を有する方法。
【請求項１１】
複数の画素を含む画像のサンプルの現在のセット（１０３）をエンコーディングするための装置であって、前記装置は、
現在のセットを再構築するためのデコーダ（１１０、１１２、１１４）を有したエンコーダと、
前記再構築されたセット（１１５）をフィルタリングするための、請求項１から９のいずれか１項に記載の装置と、
を有する装置。
【請求項１２】
乗算係数の値を２進コードワードにマッピングして、
デコーディング装置（２００）に送信するために、前記コードワードをビットストリーム（３３０）に含める、
ように構成された処理回路をさらに有する、請求項１１に記載の装置。
【請求項１３】
前記コードワードの長さが、別個の乗算係数値の数に依存する、請求項１２に記載の装置。
【請求項１４】
前記処理回路が、
前記フィルタ（１２０）の乗算係数の予測を実行し、
実際の決定値を予測の結果から得られた予測値と比較することによって残差乗算係数を決定するようにさらに構成され、
２進コードワードへの前記マッピングは前記残差乗算係数に適用される、請求項１２または１３に記載の装置。
【請求項１５】
前記処理回路は、予測制御情報を生成し、前記予測制御情報を前記ビットストリーム（３３０）に含めるようにさらに構成される、請求項１４に記載の装置。
【請求項１６】
複数の画素を含む画像のサンプル（１７１）のコードされた現在のセットをデコーディングするための装置であって、前記装置は、
現在のセットを再構築するためのデコーダ（２０４、２１０、２１２、２１４）と、
前記再構築されたセット（２１５）をフィルタリングするための、請求項１から９のいずれか１項に記載の装置と、
を有する装置。
【請求項１７】
前記処理回路は、マッピング演算を適用することによって、受信されたビットストリーム（３３０）に含まれる２進コードワードから乗算係数を取得するようにさらに構成される、請求項１６に記載の装置。
【請求項１８】
前記取得された乗算係数は、実際の係数値と予測スキームに従って予測された乗算係数との差を表す残差乗算係数であり、
前記処理回路は、取得された残差乗算係数からそれらを再構築することにより、前記フィルタ（２２０）の前記乗算係数の値を決定するように構成される、
請求項１７に記載の装置。
【請求項１９】
前記予測スキームは、前記受信されたビットストリーム（３３０）にさらに含まれる予測制御情報によって示され、
前記処理回路は、再構築において前記予測制御情報をさらに使用するように構成される、
請求項１８に記載の装置。
【請求項２０】
前記処理回路による前記決定は、
マッピング演算によって、または取得された残差乗算係数からの再構築によって、受信されたビットストリーム（３３０）から直接取得された少なくとも１つの乗算係数の決定値が、許可値の前記セット内にあるかに関する決定を実行することと、
許可値の前記セット内にない場合、前記決定値を、許可値の前記セット内にある最も近い値に変換することと、
をさらに含む、請求項１７から１９のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、例えばビデオ画像および／または静止画像コーディングなどの画像処理の分野に関する。適応乗数フィルタ係数を有するフィルタを用いた画像フィルタリングのための新しい方法および装置が提供される。
【背景技術】
【０００２】
ビデオコーディング（ビデオエンコーディングおよびデコーディング）は、例えば、放送デジタルＴＶ、インターネットおよびモバイルネットワークを介したビデオ送信、またはビデオチャット、ビデオ会議、ＤＶＤおよびブルーレイディスク、ビデオコンテンツの取得と編集システム、セキュリティアプリケーションのカムコーダーなどのリアルタイムの会話型アプリケーションなど、幅広いデジタルビデオアプリケーションで使用される。
【０００３】
１９９０年にＨ.２６１標準でブロックベースのハイブリッドビデオコーディングアプローチが開発されて以降、新しいビデオコーディング技術とツールが開発され、新しいビデオコーディング標準の基礎を形成している。ほとんどのビデオコーディング標準の目標の１つは、画質を犠牲にすることなく、以前のバージョンと比較してビットレートの減少を達成することであった。さらなるビデオコーディング標準には、ＭＰＥＧ−１ビデオ、ＭＰＥＧ−２ビデオ、ＩＴＵ−Ｔ・Ｈ．２６２／ＭＰＥＧ−２、ＩＴＵ−Ｔ・Ｈ．２６３、ＩＴＵ−Ｔ・Ｈ．２６４／ＭＰＥＧ−４、パート１０、高度なビデオコーディング（ＡＶＣ）、ＩＴＵ−Ｔ・Ｈ．２６５、高効率ビデオコーディング（ＨＥＶＣ）、およびこれらの標準のスケーラビリティおよび／または３次元（３Ｄ）拡張などの拡張が含まれる。
【０００４】
コーディングシステム３００の実施形態を示す概略ブロック図が図１に示されており、これについては以下でより詳細に説明する。
【０００５】
図２は、本発明で実装することができ、以下で同様により詳細に説明されるビデオエンコーダの例示的な構造を示すブロック図である。
【０００６】
具体的には、図示されたエンコーダ１００は、「ループフィルタ」１２０を含み、本発明に係るフィルタリング演算を適用することができる。しかしながら、より一般的には、フィルタリング演算はコーデックの他の場所、例えば、補間フィルタで適用できる。さらにより一般的には、本発明は、ビデオだけでなく静止画像コーディングにも適用される。
【０００７】
図３は、ビデオデコーダの例示的な構造を示すブロック図であり、本発明で実装することができ、これについても以下でより詳細に説明する。具体的には、本発明は、例えば、ループフィルタ２２０に適用可能である。以下では、適応フィルタリングについてのいくつかの背景情報を要約する。
【０００８】
ビデオコーディングの適応フィルタリングは、ウィーナーベースの適応フィルタを使用して、元のサンプルとデコードされたサンプル間の平均二乗誤差を最小限に抑える働きをする。具体的には、提案されている適応ループフィルタ（ＡＬＦ）は、各画像の最後の処理段階に位置し、前の段階からのアーティファクトをキャッチして修正するツールと見なすことができる。適切なフィルタ係数は、エンコーダによって決定され、デコーダに明示的にシグナリングされる。
【０００９】
適応フィルタリングに関する一般的な情報は、Ｃｈｉａ−Ｙａｎｇ  Ｔｓａｉ,  Ｃｈｉｎｇ−Ｙｅｈ  Ｃｈｅｎ,  Ｔｏｍｏｏ  Ｙａｍａｋａｇｅ,  Ｉｎ  Ｓｕｋ  Ｃｈｏｎｇ,  Ｙｕ−Ｗｅｎ  Ｈｕａｎｇ,  Ｃｈｉｈ−Ｍｉｎｇ  Ｆｕ,  Ｔａｋａｙｕｋｉ  Ｉｔｏｈ,  Ｔａｋａｓｈｉ  Ｗａｔａｎａｂｅ,  Ｔａｋｅｓｈｉ  Ｃｈｕｊｏｈ,  Ｍａｒｔａ  Ｋａｒｃｚｅｗｉｃｚ,およびＳｈａｗ−Ｍｉｎ  Ｌｅｉによって、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｅｌｅｃｔｅｄ  Ｔｏｐｉｃｓ  ｉｎ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ（Ｖｏｌｕｍｅ：７、発行：２０１３年１２月６日）で発行された記事「ビデオコーディングの適応ループフィルタリング」に発見できる。
【００１０】
上記の文書で与えられた説明は、適応フィルタ係数を用いたフィルタリング演算の特定の実装を説明している。演算の一般的な原理は以下の通りに説明できる。概して、フィルタリング方程式は次のようになる。
【００１１】
【数１】
2021515494.tif 000003
【００１２】
ここで、Ｒ（ｉ、ｊ）は、座標（ｉ、ｊ）でフィルタリングする前の画像フレーム内のサンプルである。Ｒ'（ｉ，ｊ）は、フィルタリング後の画像フレームのサンプルである。ｆ（ｋ、ｌ）はフィルタ係数である。
【００１３】
フィルタカーネルの例を図４に示す。この例では、Ｃ２０はフィルタカーネルの中心座標（ｋ＝０，  ｌ＝０）であり、Ｌは８である。この例では、フィルタカーネルは中心に対して対称である。これは一般的には当てはまらない場合がある。整数演算を使用する場合、フィルタリング方程式は次のように記述できる。
【００１４】
【数２】
2021515494.tif 000004
【００１５】
ここで、Ｎは出力のビットシフトの数であり、すなわち、出力は正規化係数で除算される。具体的には、Ｎは予め定義され得る。「ｏｆｆｓｅｔ」は、整数演算での損失を補償するスカラである。Nによるビットシフトの場合、ｏｆｆｓｅｔは２（Ｎ−１）になる。上記の方程式では、フィルタリング係数ｆ（ｋ、ｌ）は整数であり、分数ではない値のみを持つことができる。整数演算によるフィルタリング方程式の実装は、ハードウェアでの正確な実装を保証するために重要である。右シフト演算「＞＞Ｎ」は、２Ｎによる除算とそれに続く切り捨て演算の効果がある。
【００１６】
通常（必須ではない）、平均照明レベルの変更が所望されない場合は、以下の方程式が成り立つ。
【００１７】
【数３】
2021515494.tif 000005
【００１８】
エンコーダでは、フィルタ係数は、元の画素とフィルタリングされた画素の間のエラーの期待値を最小化することによって推定される。
【００１９】
【数４】
2021515494.tif 000006
【００２０】
上記の方程式で、O（ｉ、ｊ）は元の画像のサンプルを示す。
【００２１】
図５は、適応フィルタのいくつかの典型的な例示的なフィルタ形状を示す。左側の図は、５×５ダイヤモンドフィルタ（７つの一意の係数を持つ１３のタップフィルタ）を示し、中央の図は、７×７ダイヤモンドフィルタ（１３の一意の係数を持つ２５のタップフィルタ）を示し、および右側の図は、９×９ダイヤモンドフィルタ（２１の一意の係数を持つ４１のタップフィルタ）を示す。
【００２２】
「適応」フィルタリングという用語は、フィルタリングプロセスをエンコーダで調整できる事実を意味する。これは、例えば、フィルタ形状、フィルタサイズ、フィルタリング係数の数、およびフィルタリング係数の値に関係する。「フィルタヒント」とも呼ばれるこれらのデータは、デコーダにシグナリングされる。
【００２３】
適応フィルタリングは、乗算を含むフィルタリングの実現に適用される場合、すなわち、フィルタ係数がいわゆる乗法的係数または乗算係数である場合、以下の問題を示唆する。換言すれば、本発明が解決しようとする以下の問題は、適応フィルタ係数を用いたフィルタリングに関するものであり、乗算演算で使用されるフィルタ係数は、個々に適応（変更）することができる。これに関連して、「個々に」は、各画像（画像、フレーム）、および／または各画素、および／または各係数を意味する。
【００２４】
問題は、特に専用のハードウェア実装では、乗算演算の実装にコストがかかることである。フィルタアプリケーションは、比較的多数のフィルタリング演算の乗算を要求する（例えば、図４に示すように、９×９のダイヤモンド型フィルタの場合、画素あたり４１の乗算）。これについては、以下でより詳細に説明する。
【００２５】
２つの符号なし８ビット整数を乗算したいと仮定する。フィルタ係数はＣで、サンプル画素はＡである。
【００２６】
乗算プロセスは、８つの１ビット乗算へ分解でき、各乗算は、２進算術のビットシフト演算と、以下に示す７つの加算演算として実装できる。従って、およそ１つの乗算は７つの加算と同等である。
【００２７】
問題は、乗算プロセスで大量の計算が必要になることである。従って、専用のハードウェアに実装するにはコストがかかる。
【００２８】
【表１】
2021515494.tif 000007
【００２９】
ここでは、８ビットの符号なしフィルタ係数Ｃが２進表現で示されており、Ｃ［０］は係数Ｃの最下位ビットで、Ｃ［７］は最上位ビットである。同様に、Ａ［７］、Ａ［６］、・・・Ａ［０］は、最上位ビットから最下位ビットに順番に対応するビットである。２進算術の演算Ｐ＝Ｃ＊Ａが示され、結果が一番下の行に示されている。
【００３０】
図４の例では、フィルタカーネルには４１のフィルタタップが含まれており、画素サンプルを処理するためには、４１の乗算演算が必要であることを意味する。
【００３１】
本発明およびそれが解決する上述の問題は、乗数フィルタ係数を用いた適応フィルタリングに特に関連することが指摘される。この問題は、固定フィルタには適用されず、具体的には、複数の固定フィルタを使用するフィルタリング演算には適用されない。
【００３２】
複数の固定フィルタを使用する例は、図６に示すように、インター予測の分数画素位置で補間する補間フィルタリングである。
【００３３】
多くの知られたコーデックは、固定補間フィルタを用いた補間フィルタリングを使用している。フィルタ係数はフィルタに対して固定されているが、異なる分数位置（図面の１／２画素と１／４画素の位置）には複数のフィルタがある。この例では、フィルタ設定全体が動きベクトルに基づいて適応されるが、フィルタ係数は個々には適応されない。
【００３４】
この図では、大きな丸が画像内の実際のサンプル位置に対応し、小さな丸が補間フィルタリング演算の適用によって生成される分数位置である。特定の例では、２つの実際の画像サンプル位置の間の位置に３つの分数位置（左１／４ペル、１／２ペル、および右１／４ペル）がある。図の左手側には、１／２画素（１／２ペル）の位置を補間するために適用される補間フィルタが示されている。図面の右手側は、１／４画素（１／４ペル）の位置に使用される補間フィルタを示している。これらのフィルタは互いに異なるが、各補間フィルタは固定フィルタである。示されているように、図６の例は、例示のみを目的として提供されており、本発明の一部を形成するものではない。
【００３５】
本発明は、乗算演算を単純化し、乗算演算の労力を削減することができる乗算適応フィルタリングの改善された概念を提供することを目的とする。
【発明の概要】
【００３６】
本発明の実施形態は、独立請求項の特徴および従属請求項の特徴による実施形態のさらに有利な実装によって定義される。
【００３７】
本発明の第１の態様によれば、整数によって表される適応乗算係数を有するフィルタを使用して画像のサンプルのセットをフィルタリングするための装置が提供される。装置は、フィルタの少なくとも１つの乗算係数の値が許可値のセット内にあるように決定し、その結果、予め定められた桁数Ｌを持つ少なくとも１つの乗算係数の絶対値の２進表現が少なくとも１つの「ゼロ」を含むようにして、フィルタで画像のサンプルのセットをフィルタリングするように構成される処理回路を有する。
【００３８】
本発明の第２の態様によれば、整数によって表される適応乗算係数を有するフィルタを使用して、画像のサンプルのセットをフィルタリングする方法が提供される。この方法は、フィルタの少なくとも１つの乗算係数の値が許可値のセット内にあるように決定し、その結果、予め定められた桁数Ｌを持つ少なくとも１つの乗算係数の絶対値の２進表現が少なくとも１つの「ゼロ」を含むようにする段階と、フィルタで画像のサンプルのセットをフィルタリングする段階と、を有する。
【００３９】
本開示によれば、画像のサンプルのセットは、例えば、ビデオ信号または静止画像信号のサンプルであり得る。処理回路は、ソフトウェアおよび／またはハードウェアの任意の組み合わせで実装できる。許可値のセットは、具体的には、予め定められた許可値のセットであり得る。概して、本発明は、画像の他の信号サンプルのセット、例えばオーディオデータを含む信号にも適用可能である。
【００４０】
本発明の特定のアプローチは、乗算演算が単純化されるように、適応乗算フィルタのフィルタ係数によって仮定できる値を制限することである。具体的には、絶対値を表す予め定められた数の２進数の範囲内で、限られた数の「１」のみが許可されるように、フィルタ係数の許可値が制限される。これは、フィルタリングのための乗算演算の単純化を可能にし、従って、フィルタリング演算をより効率的にする。
【００４１】
以下に示すように、予め定められたすべての数の２進数で許可される「１」の数が少ないほど、フィルタリング演算を実行する際の効率利得が向上する。例えば、係数値で仮定できる任意の値に含まれる「１」が最大で１つだけ、すなわち、最大で１つの「１」である場合、最良の効率利得の向上が達成できる。
【００４２】
実施形態によれば、許可値のセットの最大絶対値は、予め定められた最大値Ｎｍａｘに制限される。
【００４３】
実施形態によれば、少なくとも１つの乗算係数の絶対値の２進表現は、最大で２つの「１」を含む。より具体的には、少なくとも１つの乗算係数の絶対値の２進表現は、最大で１つの「１」を含む。上記したように、そして以下で詳細に説明するように、フィルタリングのための乗算演算を実行する際の単純化によって、利得と処理効率は、許可係数値の２進表現にあるゼロが多いほど（従って、１が少ないほど）高くなる。従って、もっとも効率的な場合は、「１」が１つだけの場合であるが、それに対して、例えば、許可された「１」が２つでも良好な結果が得られる。もちろん、何が有益かは状況の詳細に多く依存し、具体的には、大きなフィルタの場合、３つまたはそれより多いの「１」を有することも依然として有益である。
【００４４】
概して、許可値のセットは、フィルタの少なくとも１つの乗算係数に適用できる。 
【００４５】
実施形態によれば、許可値のセットは、フィルタのすべての乗算係数に適用される。
【００４６】
代替的な実施形態によれば、乗算係数は、少なくとも２つのグループにさらにグループ化され、１つのグループの乗算係数は、許可値のセットに制限される。他の１または複数のグループの乗算係数は、例えば、予め定められた範囲内のすべての値を仮定することができ、または他の予め定められたルールに従って制限することができる。より具体的には、他の１つのグループの乗算係数は、例えば、絶対値の予め定められた最大値によって定義される範囲内のすべての値を仮定することが許可される。
【００４７】
実施形態によれば、画像のサンプルのセットは、ビデオ画像のサンプルのセットを意味する。より具体的には、装置は、各画像および各画素に対して乗算係数を個々に適応させるように構成され得る。
【００４８】
本発明のさらなる特定の態様によれば、複数の画素を含む画像のサンプルの現在のセットをエンコーディングするための装置が提供される。この装置は、現在のセットを再構築するためのデコーダを有したエンコーダと、再構築されたセットをフィルタリングするための本発明の第１の態様による装置とを有する。
【００４９】
実施形態によれば、上記エンコーディング装置は、乗算係数の値を２進コードワードにマッピングし、デコーディング装置に送信されるビットストリームにコードワードを含めるように構成される処理回路をさらに有する。
【００５０】
より具体的には、コードワードの長さは、別個の乗算係数値の数に依存する。換言すれば、可能なフィルタ係数値と同じ数のコードワードがある。コードワードから値へのマッピング（１対１のマッピング）は、固定マッピングにすることができ、またはシグナリングされたサイド情報に応じて変更することができる。
【００５１】
実施形態によれば、処理回路は、フィルタの乗算係数の予測を実行し、実際の決定値を予測の結果から得られた予測値と比較することによって残差乗算係数を決定するようにさらに構成される。その後、２進コードワードへのマッピングが残差乗算係数に適用される。この場合、ビットストリームを受信するデコーディング装置が適用される予測方法を認識し、エンコードされた残差乗算係数からフィルタの乗算係数を再構築できるように、予測制御情報がビットストリームにさらに含まれる場合がある。代替的に、適用された予測方法を予め定義して、従って任意の送信されたサイド情報なしでエンコーダおよびデコーダに同じ方法で適用することもできる。可能な予測方法には、予め定義されたフィルタ予測子を使用した予測、および以前にシグナリングされたフィルタ係数からの予測が含まれ得るが、これらに制限されない。実際のフィルタ係数とそれぞれの予測フィルタ係数との差を表す残差フィルタ係数の値は、一般に絶対値が実際の係数よりも小さいため、コードワードの量、従ってコードワードのサイズを小さくすることができ、これにより、デコーダにシグナリングされる情報を追加的に減少する。
【００５２】
代替的に、ビットストリームに含めるための乗算係数のコードワードへのマッピングは、予測処理を実行することなく、本発明の第１の態様に従って決定された乗算係数に対して実行することができる。
【００５３】
本発明のさらに他の態様によれば、複数の画素を含む画像のサンプルのデコーディングされた現在のセットをデコードするための装置が提供される。この装置は、現在のセットを再構築するためのデコーダと、再構築されたセットをフィルタリングするための本発明の第１の態様による装置とを有する。
【００５４】
実施形態によれば、本発明の第１の態様による装置の処理回路は、マッピング演算を適用することにより、受信されたビットストリームに含まれる２進コードワードから乗算係数を取得するようにさらに構成される。
【００５５】
具体的には、取得された乗算係数は、フィルタリングに使用されるフィルタ係数であり得る。代替的に、取得された乗算係数は、実際の係数値と予測スキームに従って予測された乗算係数との間の差を表す残差乗算係数であってもよい。予測スキームは、受信されたビットストリームにさらに含まれる予測制御情報によって示され得る。その場合、処理回路は、取得された残差乗算係数および予測制御情報からフィルタ係数を再構築することによって、フィルタ係数の値を決定するようにさらに構成される。代替的には、予測スキーム（予測方法）を予め定義して、従って、任意の送信された予測制御情報なしでエンコーダおよびデコーダに同じ方法で適用することができる。その後、処理回路は、取得された残差乗算係数からフィルタ係数を再構築することにより、フィルタ係数の値を決定する。
【００５６】
実施形態によれば、処理回路による決定は、マッピング演算によって、または取得された残差乗算係数からの再構築によって、受信されたビットストリームから直接取得された少なくとも１つの乗算係数の決定値が許可値のセット内にあるかの決定を実行し、許可値のセット内にない場合は、決定値を、許可値のセット内にある最も近い値に変換することをさらに含む。
【００５７】
これにより、再構築された画像サンプルに適用されるフィルタ係数が、本発明によるルールに従うことが保証される。
【００５８】
１または複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００５９】
以下において、本発明の実施形態は、添付の図面を参照してより詳細に説明される。
【図１】本発明の実施形態を実装するように構成されたビデオコーディングシステムの例を示すブロック図である。
【図２】本発明の実施形態を実装するように構成されたビデオエンコーダの例を示すブロック図である。
【図３】本発明の実施形態を実装するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
【図４】本発明を適用することができるフィルタカーネルの例を示す。
【図５】本発明を適用することができる適応フィルタの典型的なフィルタ形状の例を示す図である。
【図６】比較例として、補間フィルタリングに適用される複数の固定フィルタの例を示す図である。
【図７】本発明の実施形態の特定の実装例を示す図である。
【図８Ａ】フィルタ係数のエンコーディングおよびシグナリングのための例示的なエンコーダ側の処理を示す図である。
【図８Ｂ】フィルタ係数をデコーディングおよび再構築するための例示的なデコーダ側の処理を示す図である。
【図９】本発明の他の実施形態の特定の実装例を示す図である。
【図１０】本発明のさらに他の実施形態の特定の実装例を示し、本発明の手段によって達成される利点の説明に役立つ。
【図１１】本発明を適用することができるフィルタカーネルのさらなる例を示す。図面において、同一の参照符号は、同一または少なくとも機能的に同等の特徴を指す。
【発明を実施するための形態】
【００６０】
以下の説明では、本開示の一部を形成し、例として、本発明の実施形態の具体的態様または本発明の実施形態が使用され得る具体的態様を示す添付の図面を参照する。本発明の実施形態は他の態様で使用されてもよく、図に示されない構造的または論理的変更を含んでもよいことが理解される。従って、以下の詳細な説明は、制限的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【００６１】
例えば、説明された方法に関連する開示は、方法を実行するように構成された対応するデバイスまたはシステムにも当てはまり得、逆もまた同様であることが理解される。例えば、１または複数の特定の方法の段階が説明されている場合、対応するデバイスは、記載された１または複数の方法の段階を実行するために１または複数のユニット、例えば機能ユニットを含むことができ（例えば、１または複数の段階を実行する１つのユニット、またはそれぞれが複数の段階の１または複数を実行する複数のユニット）、そのような１または複数のユニットが図に明示的に説明または図示されていない場合であっても同様である。他方、例えば、特定の装置が１または複数のユニット、例えば機能ユニットに基づいて説明される場合、対応する方法は、１または複数のユニットの機能を実行するための１つの段階を含み得（例えば、１または複数のユニットの機能を実行する１つの段階、または複数のユニットの１または複数の機能をそれぞれ実行する複数の段階）、そのような１または複数の段階が図に明示的に説明または図示されていない場合であっても同様である。さらに、特に断りのない限り、本明細書で説明するさまざまな例示的な実施形態および／または態様の特徴を互いに組み合わせることができることが理解される。
【００６２】
ビデオコーディングは典型的には、ビデオまたはビデオシーケンスを形成する一連の画像の処理を意味する。画像という用語の代わりに、フレームまたはイメージという用語が、ビデオコーディングの分野での同義語として使用されてもよい。ビデオコーディングは、ビデオエンコーディングとビデオデコーディングの２つの部分で構成される。ビデオエンコーディングはソース側で実行され、典型的には、元のビデオ画像の処理（例えば、圧縮によって）を含み、ビデオ画像を表すために必要なデータ量を削減する（より効率的なストレージおよび／または送信のため）。ビデオデコーディングは宛先側で実行され、典型的には、ビデオ画像を再構築するためのエンコーダと比較して逆の処理を含む。ビデオ画像（または後で説明する一般的な画像）の「コーディング」に言及する実施形態は、ビデオ画像の「エンコーディング」および「デコーディング」の両方に関連すると理解されるべきである。エンコーディング部分とデコーディング部分の組み合わせは、コーデック（コーディングおよびデコーディング）とも称される。
【００６３】
無損失ビデオコーディングの場合、元のビデオ画像を再構築でき、すなわち、再構築されたビデオ画像は元のビデオ画像と同じ品質である（保存中または送信中に伝送損失またはその他のデータ損失がないと仮定して）。不可逆ビデオコーディングの場合、例えば量子化などのさらなる圧縮が実行され、デコーダで完全に再構築できないビデオ画像を表すデータ量が削減され、すなわち、再構築されたビデオ画像の品質は、元のビデオ画像の品質と比較して低くなったり悪くなったりする。
【００６４】
Ｈ．２６１以降の複数のビデオコーディング標準は、「不可逆ハイブリッドビデオコーデック」のグループに属している（すなわち、サンプル領域での空間および時間予測と、変換領域で量子化を適用するための２Ｄ変換コーディングを組み合わせる）。ビデオシーケンスの各画像は、典型的には、非重複ブロックのセットへと分割され、典型的には、コーディングはブロックレベルで実行される。換言すれば、エンコーダでは、ビデオは典型的には、ブロック（ビデオブロック）レベルで処理、すなわち、エンコードされ、例えば、空間（イントラ画像）予測と時間（インター画像）予測を使用して予測ブロックを生成し、現在のブロック（現在処理中／処理予定のブロック）から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換し、変換領域で残差ブロックを量子化して、送信するデータ量を削減（圧縮）し、デコーダは、エンコーダと比較して逆の処理をエンコードまたは圧縮されたブロックに適用して、現在のブロックを再構築して表示する。さらに、エンコーダはデコーダ処理ループを複製して、両方が同一の予測（例えば、イントラ予測およびインター予測）および／または後続のブロックの処理、すなわち、コーディングのための再構築を生成するようにする。
【００６５】
ビデオ画像処理（動画処理とも称される）と静止画像処理（コーディングを含む処理という用語）は、多くのコンセプトと技術、またはツールを共有し、以下では、「画像」または「イメージ」という用語と同等の「画像データ」または「イメージデータ」という用語は、ビデオシーケンスのビデオ画像（上記で説明）および／または静止画像を指し、不要なビデオ画像と静止画像の不要な繰り返しと区別を回避するために使用される。説明が静止画像（または静止イメージ）のみに言及している場合、「静止画像」という用語が使用されるべきである。
【００６６】
エンコーダ１００の以下の実施形態では、デコーダ２００およびコーディングシステム３００は、図１から３に基づいて説明される（図７から９に基づいて本発明の実施形態をより詳細に説明する前に）。
【００６７】
図１は、コーディングシステム３００、例えば、画像コーディングシステム３００の実施形態を示す概念的または概略的なブロック図であり、ここで、コーディングシステム３００は、エンコードデータ３３０、例えば、エンコード画像３３０を、例えば、エンコードデータ３３０をデコーディングするための宛先デバイス３２０に提供するように構成された送信元デバイス３１０を有する。
【００６８】
送信元デバイス３１０は、エンコーダ１００またはエンコーディングユニット１００を有し、さらに追加的に、すなわち、任意選択的に、画像ソース３１２、前処理ユニット３１４、例えば画像前処理ユニット３１４、および通信インタフェースまたは通信ユニット３１８を含む。
【００６９】
画像ソース３１２は、例えば、実世界の画像を取り込むための任意の種類の画像取込デバイス、および／または任意の種類の画像生成デバイス、例えば、コンピュータアニメーション画像を生成するためのコンピュータグラフィックプロセッサ、または、実世界の画像、コンピュータアニメーション画像（例えば、画面コンテンツ、仮想現実（ＶＲ）画像）および／またはそれらの任意の組み合わせ（例えば、拡張現実（ＡＲ）画像）を取得および／または提供するための任意の種類のデバイスを含み得るか、またはそれらであり得る。以下では、これらの種類のすべての画像またはイメージ、および任意の他の種類の画像またはイメージを、特に明記しない限り、「画像」、「イメージ」、「画像データ」、または「イメージデータ」と称し、一方で、「ビデオ画像」および「静止画像」をカバーする「画像」または「イメージ」という用語に関するこれまでの説明は、明示的に異なる様に指定されない限り、依然として当てはまる。
【００７０】
（デジタル）画像は、強度値を持つサンプルの２次元配列またはマトリックスであるか、それとみなされ得る。アレイ内のサンプルは、画素（画像要素の短縮形）またはペルとも称され得る。アレイまたは画像の水平および垂直方向（または軸）のサンプル数は、画像のサイズおよび／または解像度を定義する。色を表現するために、典型的には３つの色成分が使用され、すなわち、画像が表されてもよく、３つのサンプルアレイが含まれる。ＲＧＢ形式または色空間では、画像は対応する赤、緑、青のサンプルアレイで構成される。しかしながら、ビデオコーディングでは、各画素は典型的には、輝度／クロミナンス形式または色空間で表され、例えば、Ｙ（代わりにＬが使用されることもある）で示される輝度成分と、ＣｂおよびＣｒで示される２つのクロミナンス成分で構成されるＹＣｂＣｒなどで表される。輝度（または省略してルマ）コンポーネントＹは、明度またはグレーレベルの強度（例えば、グレースケールの画像のような）を表し、一方、２つのクロミナンス（または短いクロマ）成分ＣｂおよびＣｒは、色度または色情報成分を表す。従って、ＹＣｂＣｒ形式の画像は、輝度サンプル値（Ｙ）の輝度サンプルアレイ、およびクロミナンス値（ＣｂおよびＣｒ）の２つのクロミナンスサンプルアレイを含む。ＲＧＢ形式の画像は、ＹＣｂＣｒ形式に転換または変換することができ、その逆もまた同様であり、このプロセスは、色変換または転換とも称される。画像がモノクロの場合、画像は輝度サンプルアレイのみで構成される。
【００７１】
画像ソース３１２は、例えば、画像を取り込むためのカメラ、以前に取り込まれたまたは生成された画像を含むまたは記憶するメモリ、例えば、画像メモリ、および／または画像を取得または受信するための任意の種類のインタフェース（内部または外部）であってもよい。カメラは、例えば、送信元デバイスに統合されたローカルまたは統合カメラであり得、メモリは、ローカルまたは統合メモリであり得、例えば、送信元デバイスに統合される。インタフェースは、例えば、外部ビデオソースから画像を受信するための外部インタフェースであり、例えば、カメラのような外部画像取込デバイス、外部メモリであり、または外部画像生成デバイスであり、例えば、外部コンピュータグラフィックプロセッサ、コンピュータまたはサーバであり得る。インタフェースは、任意の種類のインタフェース、例えば、任意の独自のまたは標準化されたインタフェースプロトコルによる有線または無線インタフェース、光インタフェースであり得る。画像データ３１３を取得するためのインタフェースは、通信インタフェース３１８と同じインタフェースであってもよいし、通信インタフェース３１８の一部であってもよい。
【００７２】
各デバイス内のユニット間のインタフェースには、ケーブル接続、ＵＳＢインタフェースが含まれ、送信元デバイス３１０と宛先デバイス３２０間の通信インタフェース３１８および３２２には、ケーブル接続、ＵＳＢインタフェース、無線インタフェースが含まれる。
【００７３】
前処理ユニット３１４および前処理ユニット３１４によって実行される処理とは異なり、画像または画像データ３１３は、未処理画像または未処理画像データ３１３とも称され得る。
【００７４】
前処理ユニット３１４は、（未処理）画像データ３１３を受信し、画像データ３１３に対して前処理を実行して、前処理された画像３１５または前処理された画像データ３１５を取得するように構成される。前処理ユニット３１４によって実行される前処理は、例えば、トリミング、色フォーマット変換（例えば、ＲＧＢからＹＣｂＣｒへ）、色補正、またはノイズ除去を含み得る。
【００７５】
エンコーダ１００は、前処理された画像データ３１５を受信し、エンコード画像データ１７１を提供するように構成される（さらなる詳細は、例えば、図２に基づいて説明される）。
【００７６】
送信元デバイス３１０の通信インタフェース３１８は、エンコード画像データ１７１を受信し、それを他のデバイス、例えば、宛先デバイス３２０または任意の他のデバイスに、ストレージまたは直接再構築のために直接送信するか、または、それぞれ、エンコードデータ３３０を記憶する前および／またはエンコードデータ３３０を他のデバイス、例えば、宛先デバイス３２０またはデコーディングまたは記憶するための任意の他のデバイスに送信する前に、エンコード画像データ１７１を処理するように構成され得る。
【００７７】
宛先デバイス３２０は、デコーダ２００またはデコーディングユニット２００を有し、さらに追加的に、すなわち、任意選択的に、通信インタフェースまたは通信ユニット３２２、後処理ユニット３２６およびディスプレイデバイス３２８を有し得る。
【００７８】
宛先デバイス３２０の通信インタフェース３２２は、例えば、送信元デバイス３１０から直接、または任意の他のソース、例えば、メモリ、例えば、エンコード画像データメモリから、エンコード画像データ１７１またはエンコードデータ３３０を受信するように構成される。
【００７９】
通信インタフェース３１８および通信インタフェース３２２は、送信元デバイス３１０と宛先デバイス３２０との間の直接通信リンクを介して、例えば、光接続を含む直接有線または無線接続、または任意の種類のネットワーク、例えば、有線または無線ネットワークまたはそれらの任意の組み合わせ、または任意の種類のプライベートおよびパブリックネットワーク、またはそれらの任意の種類の組み合わせを介して、エンコード画像データ１７１またはエンコードデータ３３０をそれぞれ送信、受信するように構成され得る。
【００８０】
通信インタフェース３１８は、例えば、通信リンクまたは通信ネットワークを介した送信のために、エンコード画像データ１７１を適切な形式、例えば、パケットにパッケージ化するように構成でき、データ損失保護をさらに含み得る。
【００８１】
通信インタフェース３１８の相手を形成する通信インタフェース３２２は、例えば、エンコード画像データ１７１を取得するためにエンコードデータ３３０をデパッケージするように構成され、データ損失保護およびデータ損失回復を実行するようにさらに構成され得、例えば、エラー隠蔽を含む。
【００８２】
通信インタフェース３１８および通信インタフェース３２２の両方は、送信元デバイス３１０から宛先デバイス３２０を指す図１のエンコード画像データ３３０の矢印によって示される単方向通信インタフェース、または双方向通信インタフェースとして構成され得、例えば、メッセージの送受信、例えば接続の設定、画像データを含む失われたデータや遅延したデータの確認および／または再送信、および通信リンクおよび／またはデータ送信、例えば、エンコード画像データ送信に関連する任意の他の情報の交換として構成され得る。
【００８３】
デコーダ２００は、エンコード画像データ１７１を受信し、デコード画像データ２３１またはデコード画像２３１を提供するように構成される（さらなる詳細は、例えば、図９に基づいて説明される）。
【００８４】
宛先デバイス３２０のポストプロセッサ３２６は、デコード画像データ２３１、例えば、デコード画像２３１を後処理して、後処理された画像データ３２７、例えば、後処理された画像３２７を取得するように構成される。後処理ユニット３２６によって実行される後処理は、例えば、（例えば、ＹＣｂＣｒからＲＧＢへの）色フォーマット変換、色補正、トリミング、または再サンプリング、または、例えば、ディスプレイデバイス３２８による表示のために、例えば、デコード画像データ２３１を準備するための任意の他の処理を含み得る。
【００８５】
宛先デバイス３２０のディスプレイデバイス３２８は、例えば、ユーザまたは視聴者に画像を表示するための後処理された画像データ３２７を受信するように構成される。ディスプレイデバイス３２８は、例えば、統合型または外部ディスプレイまたはモニタなど、再構築された画像を表すための任意の種類のディスプレイであるか、またはそれを含むことができる。ディスプレイは、例えば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、またはプロジェクタ、ホログラフィックディスプレイ、ホログラムを生成する装置などの任意の種類の他のディスプレイを含み得る。
【００８６】
図１は、送信元デバイス３１０および宛先デバイス３２０を別個のデバイスとして示しているが、デバイスの実施形態は、両方または両方の機能、送信元デバイス３１０または対応する機能および宛先デバイス３２０または対応する機能も含み得る。そのような実施形態では、送信元デバイス３１０または対応する機能および宛先デバイス３２０または対応する機能は、同じハードウェアおよび／またはソフトウェアを使用して、または別個のハードウェアおよび／またはソフトウェアまたはそれらの任意の組み合わせによって実装され得る。
【００８７】
説明に基づいて当業者には明らかとなるように、図１に示される送信元デバイス３１０および／または宛先デバイス３２０内の異なるユニットまたは機能の機能の存在および（厳密に）分割は、実際のデバイスとアプリケーションに応じて変動する。
【００８８】
以下では、コーディングシステム３００、送信元デバイス３１０および／または宛先デバイス３２０のいくつかの非制限的な例が提供される。スマートフォン、タブレット、または統合ディスプレイを有したハンドヘルドカメラなどのさまざまな電子製品は、コーディングシステム３００の例として見ることができる。それらは、ディスプレイデバイス３２８を含み、それらのほとんどは、統合カメラ、すなわち、画像ソース３１２も同様に含む。統合カメラでとられた画像データを処理して表示する。処理は、画像データの内部でのエンコーディングおよびデコーディングを含み得る。加えて、エンコード画像データは、統合メモリに記憶されてもよい。
【００８９】
代替的に、これらの電子製品は、インターネットや外部カメラなどの外部ソースから画像データを受信したり、エンコード画像データを外部ディスプレイやストレージユニットに送信したりするための有線または無線インタフェースを有し得る。
【００９０】
他方、セットトップボックスは、統合カメラやディスプレイを含まず、受信した画像データを画像処理を実行して外部ディスプレイデバイスに表示する。そのようなセットトップボックスは、例えば、チップセットによって具現化されてもよい。
【００９１】
代替的に、セットトップボックスと同様のデバイスが、統合ディスプレイを有したＴＶセットなどのディスプレイデバイスに含まれ得る。
【００９２】
統合ディスプレイのない監視カメラは、さらなる例を構成する。これらは、取り込まれたおよびエンコード画像データを外部ディスプレイデバイスまたは外部ストレージデバイスに送信するためのインタフェースを有した送信元デバイスを表す。
【００９３】
反対に、例えばＡＲまたはＶＲに使用されるスマートグラスまたは３Ｄグラスなどのデバイスは、宛先デバイス３２０を表す。これらは、エンコード画像データを受信して表示する。
【００９４】
従って、図１に示される送信元デバイス３１０および宛先デバイス３２０は、本発明の例示的な実施形態にすぎず、本発明の実施形態は、図１に示されるものに制限されない。
【００９５】
送信元デバイス３１０および宛先デバイス３２０は、任意の種類のハンドヘルドまたは固定デバイス、例えば、ノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、ビデオストリーミングデバイス、放送受信デバイスなどを含む、広範囲のデバイスのいずれかを含み得る。大規模で専門的なエンコーディングおよびデコーディングの場合、送信元デバイス３１０および／または宛先デバイス３２０は、大規模ネットワークに含まれ得るサーバおよびワークステーションを追加的に含み得る。これらのデバイスは、オペレーティングシステムをまったく使用しないか、または任意の種類のオペレーティングシステムを使用し得る。
【００９６】
［エンコーダおよびエンコーディング方法］
図２は、実施形態の画像エンコーダ１００の概略／概念ブロック図を示し、例えば、入力１０２、残差計算ユニット１０４、変換ユニット１０６、量子化ユニット１０８、逆量子化ユニット１１０、および逆変換ユニット１１２、を含むエンコーダ１００、再構築ユニット１１４、バッファ１１６、ループフィルタ１２０、デコード画像バッファ（ＤＰＢ）１３０、インター推定ユニット１４２、インター予測ユニット１４４、イントラ推定ユニット１５２、イントラ予測ユニット１５４およびモード選択ユニット１６２を含む予測ユニット１６０、エントロピーエンコーディングユニット１７０、および出力１７２を示す。図２に示されるビデオエンコーダ１００は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックによるビデオエンコーダとも称され得る。各ユニットは、プロセッサと非一時的メモリで構成され、プロセッサによって非一時的メモリに記憶されたコードを実行することにより、その処理段階を実行する。
【００９７】
例えば、残差計算ユニット１０４、変換ユニット１０６、量子化ユニット１０８、およびエントロピーエンコーディングユニット１７０は、エンコーダ１００の順方向信号経路を形成し、それに対して、例えば、逆量子化ユニット１１０、逆変換ユニット１１２、再構築ユニット１１４、バッファ１１６、ループフィルタ１２０、デコード画像バッファ（ＤＰＢ）１３０、インター予測ユニット１４４、およびイントラ予測ユニット１５４は、エンコーダの逆方向信号経路を形成し、ここで、エンコーダの逆方向信号経路は、同一の再構築および予測のための逆の処理を提供するためのデコーダの信号経路に対応する（図３のデコーダ２００を参照）。
【００９８】
エンコーダは、例えば、入力１０２によって、画像１０１または画像１０１の画像ブロック１０３、例えば、ビデオまたはビデオシーケンスを形成する一連の画像の画像を受信するように構成される。画像ブロック１０３はまた、現在の画像ブロックまたはコードされるべき画像ブロックと称され得、画像１０１は、コードされるべき現在の画像または画像と称され得る（特に、現在の画像を他の画像から区別するためのビデオコーディング、例えば、同じビデオシーケンスの以前のエンコードおよび／またはデコード画像、すなわち、現在の画像も含むビデオシーケンス）。
【００９９】
［分割］
エンコーダ１００の実施形態は、分割ユニット（図２には示さず）を有することができ、例えば、これは、画像１０３を複数のブロック、例えばブロック１０３のようなブロック、典型的には複数の非重複ブロックに分割するように構成された、画像分割ユニットとも称され得る。分割ユニットは、ブロックサイズを定義するビデオシーケンスおよび対応するグリッドのすべての画像に同じブロックサイズを使用するか、画像間またはサブセット間または画像グループ間でブロックサイズを変更し、各画像を対応するブロックに分割するように構成できる。
【０１００】
複数のブロックの各ブロックは、正方形の寸法またはより一般的な長方形の寸法を有することができる。長方形以外の形状の画像領域であるブロックは表示されない場合がある。
【０１０１】
画像１０１と同様に、ブロック１０３もまた、画像１０１よりも小さい寸法であるが、強度値（サンプル値）を有するサンプルの２次元アレイまたはマトリクスであるか、またはそれとみなすことができる。換言すれば、ブロック１０３は、例えば、１つのサンプルアレイ（例えば、モノクロ画像１０１の場合はルマアレイ）または３つのサンプルアレイ（例えば、カラー画像１０１の場合はルマおよび２つのクロマアレイ）または、適用される色形式に応じて、任意の他の数および／または種類のアレイを含み得る。ブロック１０３の水平および垂直方向（または軸）のサンプルの数は、ブロック１０３のサイズを定義する。
【０１０２】
図２に示されるエンコーダ１００は、画像１０１をブロックごとにエンコードするように構成され、例えば、エンコーディングおよび予測は、ブロック１０３ごとに実行される。
【０１０３】
［残差計算］
残差計算ユニット１０４は、画像ブロック１０３および予測ブロック１６５に基づいて残差ブロック１０５を計算するように構成され（予測ブロック１６５についてのさらなる詳細は後で提供される）、例えば、画像ブロック１０３のサンプル値から予測ブロック１６５のサンプル値を減算することにより、サンプルごとに（画素ごとに）サンプル領域内の残差ブロック１０５を取得する。
【０１０４】
［変換］
変換ユニット１０６は、例えば、空間周波数変換または線形空間変換のような変換を適用し、例えば、離散コサイン変換（ＤＣＴ）または離散サイン変換（ＤＳＴ）を残差ブロック１０５のサンプル値に適用し、変換領域で変換係数１０７を取得するように構成される。変換係数１０７は、変換残差係数とも称され得、変換領域における残差ブロック１０５を表す。
【０１０５】
変換ユニット１０６は、ＨＥＶＣ／Ｈ．２６５に対して指定されたコア変換などのＤＣＴ／ＤＳＴの整数近似を適用するように構成され得る。正規直交ＤＣＴ変換と比較すると、そのような整数近似は典型的には、特定の係数によってスケーリングされる。順変換と逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、典型的には、シフト演算の２のべき乗であるスケーリング係数、変換係数のビット深度、精度と実装コストのトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリング係数は、例えば、デコーダ２００において（および、例えば、エンコーダ１００における逆変換ユニット１１２による、対応する逆変換）、例えば、逆変換ユニット２１２によって逆変換について指定され、エンコーダ１００での、例えば、変換ユニット１０６による順方向変換のための対応するスケーリング係数は、それに応じて指定され得る。
【０１０６】
［量子化］
量子化ユニット１０８は、例えばスカラ量子化またはベクトル量子化を適用することにより、変換係数１０７を量子化して量子化係数１０９を取得するように構成される。量子化係数１０９は、量子化残差係数１０９とも称され得る。例えば、スカラ量子化の場合、より細かいまたはより粗い量子化を達成するために、異なるスケーリングが適用されてもよい。量子化段階サイズが小さいほど細かい量子化に対応し、量子化段階サイズが大きいほど粗い量子化に対応する。適用可能な量子化段階サイズは、量子化パラメータ（ＱＰ）によって示され得る。量子化パラメータは、例えば、適用可能な量子化段階サイズの予め定義されたセットへのインデックスであり得る。例えば、小さな量子化パラメータは細かい量子化（小さな量子化段階サイズ）に対応し得、大きな量子化パラメータは粗い量子化（大きな量子化段階サイズ）に対応し得るか、または逆もまた同様である。量子化は、量子化段階サイズによる除算を含み、例えば、逆量子化１１０による対応するまたは逆の逆量子化は、量子化段階サイズによる乗算を含み得る。ＨＥＶＣ（Ｈｉｇｈ−Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）による実施形態は、量子化パラメータを使用して量子化段階サイズを決定するように構成され得る。概して、量子化段階サイズは、除算を含む方程式の固定小数点近似を使用する量子化パラメータに基づいて算出できる。残差ブロックのノルムを復元するために、量子化と逆量子化に追加のスケーリング係数を導入でき、これは、量子化段階サイズと量子化パラメータの方程式の固定小数点近似で使用されるスケーリングに起因して変更され得る。１つの実装例では、逆変換のスケーリングと逆量子化を組み合わせることができる。代替的に、カスタマイズされた量子化テーブルが使用され得、例えば、ビットストリームで、エンコーダからデコーダへシグナリングされ得る。量子化は不可逆演算であり、損失は量子化段階サイズの増加に伴って増加する。
【０１０７】
エンコーダ１００（またはそれぞれの量子化ユニット１０８）の実施形態は、量子化スキームおよび量子化段階サイズを含む量子化設定を出力するように構成されてもよく、例えば、対応する量子化パラメータにより、デコーダ２００は対応する逆量子化を受信して適用することができる。エンコーダ１００（または量子化ユニット１０８）の実施形態は、量子化スキームおよび量子化段階サイズを、例えば、直接的に、またはエントロピーエンコーディングユニット１７０または任意の他のエントロピーエンコーディングユニットを介してエントロピーエンコードして出力するように構成され得る。
【０１０８】
逆量子化ユニット１１０は、量子化ユニット１０８の逆量子化を量子化係数に適用して、例えば、量子化ユニット１０８と同じ量子化段階サイズに基づいて、またはそれを使用して、量子化ユニット１０８によって適用された量子化スキームの逆を適用することによって、逆量子化係数１１１を取得するように構成される。逆量子化係数１１１は、逆量子化残差係数１１１とも称され得、典型的には、量子化による損失に起因して変換係数と同一ではないが、変換係数１０８に対応する。
【０１０９】
逆変換ユニット１１２は、変換ユニット１０６によって適用される変換の逆変換を適用するように構成され、例えば、逆離散コサイン変換（ＤＣＴ）または逆離散サイン変換（ＤＳＴ）により、サンプル領域において逆変換ブロック１１３が取得される。逆変換ブロック１１３は、逆変換逆量子化ブロック１１３または逆変換残差ブロック１１３とも称され得る。
【０１１０】
再構築ユニット１１４は、逆変換ブロック１１３および予測ブロック１６５を組み合わせて、例えば、デコードされた残差ブロック１１３のサンプル値と予測ブロック１６５のサンプル値をサンプルごとに加えることにより、サンプル領域において再構築ブロック１１５を取得するように構成される。
【０１１１】
バッファユニット１１６（または短い「バッファ」１１６）、例えば、ラインバッファ１１６は、例えば、イントラ推定および／またはイントラ予測のために、再構築ブロックおよびそれぞれのサンプル値をバッファまたは記憶するように構成される。さらなる実施形態では、エンコーダは、任意の種類の推定および／または予測のために、フィルタリングされていない再構築ブロックおよび／またはバッファユニット１１６に記憶されたそれぞれのサンプル値を使用するように構成され得る。
【０１１２】
エンコーダ１００の実施形態は、例えば、バッファユニット１１６が、イントラ推定１５２および／またはイントラ予測１５４のために再構築ブロック１１５を記憶するためだけでなく、ループフィルタユニット１２０のためにも、および／または、例えば、バッファユニット１１６とデコード画像バッファユニット１３０が１つのバッファを形成するようにするために使用されるように構成され得る。さらなる実施形態は、イントラ推定１５２および／またはイントラ予測１５４のための入力または基礎として、フィルタリングされたブロック１２１および／またはデコード画像バッファ１３０からのブロックまたはサンプル（どちらも図２には示されない）を使用するように構成され得る。
【０１１３】
ループフィルタユニット１２０（または短い「ループフィルタ」１２０）は、例えば、デブロッキングサンプル適応オフセット（ＳＡＯ）フィルタまたは他のフィルタ、例えば、シャープ化または平滑化フィルタまたは協調フィルタを適用して、再構築ブロック１１５をフィルタリングして、フィルタリングされたブロック１２１を取得するように構成される。フィルタリングされたブロック１２１は、フィルタリングされた再構築ブロック１２１とも称され得る。
【０１１４】
ループフィルタユニット１２０の実施形態は、フィルタ分析ユニットおよび実際のフィルタユニットを有することができ、フィルタ分析ユニットは、実際のフィルタのループフィルタパラメータを決定するように構成される。フィルタ分析ユニットは、固定の予め定められたフィルタパラメータを実際のループフィルタに適用し、予め定められたフィルタパラメータのセットからフィルタパラメータを適応的に選択するか、または実際のループフィルタのフィルタパラメータを適応的に算出するように構成され得る。
【０１１５】
ループフィルタユニット１２０の実施形態は、（図２には図示されない）１または複数のフィルタ（ループフィルタコンポーネントおよび／またはサブフィルタなど）を含み得、例えば、１または複数の異なる種類またはタイプのフィルタであって、例えば、直列または並列またはそれらの任意の組み合わせで接続され、それぞれのフィルタは、複数のフィルタの他のフィルタと個々にまたはまとめて、例えば、前の段落で説明したように、それぞれのループフィルタパラメータを決定するためのフィルタ分析ユニットを含み得る。
【０１１６】
エンコーダ１００の実施形態（それぞれループフィルタユニット１２０）は、例えば、直接またはエントロピーエンコーディングユニット１７０または任意の他のエントロピーエンコーディングユニットを介してエントロピーエンコードされたループフィルタパラメータを出力するように構成され得、その結果、例えば、デコーダ２００は、デコーディングのために同じループフィルタパラメータを受信して適用し得る。
【０１１７】
デコード画像バッファ（ＤＰＢ）１３０は、フィルタリングされたブロック１２１を受信して記憶するように構成される。デコード画像バッファ１３０は、同じ現在の画像または異なる画像の、例えば、以前に再構築された画像の、他の以前にフィルタリングされたブロック、例えば、以前に再構築およびフィルタリングされたブロック１２１を記憶するようにさらに構成され得、例えば、インター推定および／またはインター予測のために、完全に以前に再構築された、すなわち、デコード画像（および対応する参照ブロックおよびサンプル）および／または部分的に再構築された現在の画像（および対応する参照ブロックおよびサンプル）を提供し得る。
【０１１８】
本発明のさらなる実施形態は、任意の種類の推定または予測、例えば、イントラ推定および予測ならびにインター推定および予測のために、以前にフィルタリングされたブロックおよびデコード画像バッファ１３０の対応するフィルタリングされたサンプル値を使用するように構成され得る。
【０１１９】
予測ユニット１６０は、ブロック予測ユニット１６０とも称され、画像ブロック１０３（現在の画像１０１の現在の画像ブロック１０３）およびデコードまたは少なくとも再構築された画像データ、例えば、バッファ１１６からの同じ（現在の）画像の基準サンプルおよび／またはデコード画像バッファ１３０からの１または複数の以前にデコード画像からのデコード画像データ２３１、を受信または取得するように構成され得、そのようなデータを予測のために処理する、すなわち、インター予測ブロック１４５またはイントラ予測ブロック１５５であり得る予測ブロック１６５を提供するように構成される。
【０１２０】
モード選択ユニット１６２は、予測モード（例えば、イントラまたはインター予測モード）および／または残差ブロック１０５の計算および再構築ブロック１１５の再構築のための予測ブロック１６５として使用される対応する予測ブロック１４５または１５５を選択するように構成され得る。
【０１２１】
モード選択ユニット１６２の実施形態は、（例えば、予測ユニット１６０によってサポートされるものから）予測モードを選択するように構成され得、最適な一致、換言すれば最小残差（最小残差とは、送信またはストレージの圧縮率が高いことを意味する）、または、最小のシグナリングオーバヘッド（最小のシグナリングオーバヘッドは、送信またはストレージのための圧縮率が高いことを意味する）を提供し、または両方を考慮またはバランスする。モード選択ユニット１６２は、レート歪み最適化（ＲＤＯ）に基づいて予測モードを決定する、すなわち、最小レート歪み最適化を提供する、または関連するレート歪みが少なくとも予測モード選択基準を満たす予測モードを選択するように構成され得る。
【０１２２】
以下では、例示的なエンコーダ１００によって実行される予測処理（例えば、予測ユニット１６０）およびモード選択（例えば、モード選択ユニット１６２による）をより詳細に説明する。
【０１２３】
上記のように、エンコーダ１００は、（予め定められた）予測モードのセットから最良または最適な予測モードを決定または選択するように構成される。予測モードのセットは、例えば、イントラ予測モードおよび／またはインター予測モードを含み得る。
【０１２４】
イントラ予測モードのセットは、３２個の異なるイントラ予測モード、例えば、ＤＣ（または平均）モードおよび平面モードのような無指向性モード、または、例えばＨ．２６４で定義されているような指向性モードを含み得、または、６５個の異なるイントラ予測モード、例えば、ＤＣ（または平均）モードや平面モードのような無指向性モード、または、例えば、Ｈ．２６５で定義されているような指向性モードを含み得る。
【０１２５】
インター予測モードのセット（または可能性のある）、例えば、参照画像全体か一部のみであるか、例えば、参照画像の現在のブロックの領域の周囲の検索ウィンドウ領域は、最も一致する参照ブロックを検索するために使用されるかどうか、および／または、例えば画素補間が適用されるかどうか、例えば、１／２／半ペルおよび／または１／４ペル補間かは、利用可能な参照画像（すなわち、以前に少なくとも部分的にデコードされた、例えば、ＤＰＢ２３０に記憶された画像）および他のインター予測パラメータに依存する。
【０１２６】
上記の予測モードに加えて、スキップモードおよび／または直接モードが適用されてもよい。
【０１２７】
予測ユニット１６０は、例えば、４分木分割（ＱＴ）、２進分割（ＢＴ）、３分木分割（ＴＴ）、またはそれらの任意の組み合わせを繰り返し使用して、ブロック１０３をより小さいブロック分割またはサブブロックに分割するようにさらに構成され得、そして、例えば、ブロック分割またはサブブロックのそれぞれについて予測を実行する。ここで、モード選択は、分割されたブロック１０３のツリー構造の選択と、ブロック分割またはサブブロックのそれぞれに適用される予測モードとを含む。インター画像推定ユニット１４２とも称される。
【０１２８】
インター推定ユニット１４２は、インター推定（または「インター画像推定」）のために、画像ブロック１０３（現在の画像１０１の現在の画像ブロック１０３）およびデコード画像２３１、または、少なくとも１または複数の以前の再構築ブロック、例えば、１または複数の他の／異なる以前にデコード画像２３１の再構築ブロックを受信または取得するように構成される。例えば、ビデオシーケンスは、現在の画像および以前にデコード画像２３１を含むことができ、換言すれば、現在の画像および以前にデコード画像２３１は、ビデオシーケンスを形成する画像シーケンスの一部であるかまたはそれを形成することができる。
【０１２９】
エンコーダ１００は、例えば、複数の他の画像の同じまたは異なる画像の複数の参照ブロックから参照ブロックを選択（取得／決定）し、参照画像（または参照画像インデックス）および／または参照ブロックの位置（ｘ、ｙ座標）と現在のブロックの位置の間のオフセット（空間オフセット）を、インター推定パラメータ１４３としてインター予測ユニット１４４に提供するように構成され得る。このオフセットは、モーションベクトル（ＭＶ）とも称される。インター推定は動き推定（ＭＥ）とも称され、インター予測は動き予測（ＭＰ）とも称される。
【０１３０】
インター予測ユニット１４４は、インター予測パラメータ１４３を取得し、例えば、受信し、インター予測パラメータ１４３に基づいてまたはそれを使用してインター予測を実行し、インター予測ブロック１４５を取得するように構成される。
【０１３１】
図２は、インターコーディングのための２つの別個のユニット（または段階）、つまり、インター推定１４２およびインター予測１５２を示しているが、両方の機能は、例えば、現在の最良のインター予測モードとそれぞれのインター予測ブロックを記憶しながら、可能なインター予測モードのすべての可能なまたは予め定められたサブセットを繰り返しテストし、典型的には、インター推定は、インター予測ブロック、すなわち、インター予測ブロックまたは「一種の」インター予測１５４を算出することを要求する／含む）、インター予測１４４を再度実行することなく、現在最良のインター予測モードおよびそれぞれのインター予測ブロックを（最終的な）インター予測パラメータ１４３およびインター予測ブロック１４５として使用することによって、１つの機能として実行できる。
【０１３２】
イントラ推定ユニット１５２は、イントラ推定のために同じ画像の画像ブロック１０３（現在の画像ブロック）および１または複数の以前の再構築ブロック、例えば、再構築隣接ブロックを取得する、例えば、受信するように構成される。エンコーダ１００は、例えば、複数のイントラ予測モードからイントラ予測モードを選択（取得／決定）し、それをイントラ推定パラメータ１５３としてイントラ予測ユニット１５４に提供するように構成され得る。
【０１３３】
エンコーダ１００の実施形態は、最適化基準、例えば最小残差（例えば、現在の画像ブロック１０３にもっとも類似する予測ブロック１５５を提供するイントラ予測モード）または最小レート歪みに基づいてイントラ予測モードを選択するように構成され得る。
【０１３４】
イントラ予測ユニット１５４は、イントラ予測パラメータ１５３、例えば、選択されたイントラ予測モード１５３、イントラ予測ブロック１５５に基づいて決定するように構成される。
【０１３５】
図２は、イントラコーディングのための２つの別個のユニット（または段階）、つまり、イントラ推定１５２およびイントラ予測１５４を示しているが、両方の機能は、例えば、現在の最良のイントラ予測モードとそれぞれのイントラ予測ブロックを記憶しながら、可能なイントラ予測モードのすべての可能なまたは予め定められたサブセットを繰り返しテストし、典型的には、イントラ推定は、イントラ予測ブロック、すなわち、イントラ予測ブロックまたは「一種の」イントラ予測１５４を算出することを要求する／含む）、イントラ予測１５４を再度実行することなく、現在最良のイントラ予測モードおよびそれぞれのイントラ予測ブロックを（最終的な）イントラ予測パラメータ１５３およびイントラ予測ブロック１５５として使用することによって、１つの機能として実行できる。
【０１３６】
エントロピーエンコーディングユニット１７０は、エントロピーエンコーディングアルゴリズムまたはスキーム（例えば、可変長コーディング（ＶＬＣ）スキーム、コンテキスト適応ＶＬＣスキーム（ＣＡＬＶＣ）、算術コーディングスキーム、コンテキスト適応２進算術コーディング（ＣＡＢＡＣ））を、量子化された残差係数１０９、インター予測パラメータ１４３、イントラ予測パラメータ１５３、および／またはループフィルタパラメータに個々にまたはまとめて適用するように（もしくはいずれも適用せずに）構成され、例えば、エンコードビットストリーム１７１の形で出力１７２によって出力され得るエンコード画像データ１７１を取得する。
【０１３７】
［デコーダ］
図３は、デコード画像２３１を取得するために、例えば、エンコーダ１００によってエンコードされた、エンコード画像データ（例えば、エンコードビットストリーム）１７１を受信するように構成される例示的なビデオデコーダ２００を示す。
【０１３８】
デコーダ２００は、入力２０２、エントロピーデコーディングユニット２０４、逆量子化ユニット２１０、逆変換ユニット２１２、再構築ユニット２１４、バッファ２１６、ループフィルタ２２０、デコード画像バッファ２３０、予測ユニット２６０を含み、予測ユニット２６０は、インター予測ユニット２４４、イントラ予測ユニット２５４、およびモード選択ユニット２６０、および出力２３２を含む。
【０１３９】
エントロピーデコーディングユニット２０４は、エンコード画像データ１７１に対してエントロピーデコーディングを実行して、例えば、量子化係数２０９および／またはデコードされたコードパラメータ（図３には示されない）、例えば、（デコードされた）インター予測パラメータ１４３、イントラ予測パラメータ１５３、および／またはループフィルタパラメータのいずれかまたはすべてを取得するように構成される。
【０１４０】
デコーダ２００の実施形態では、逆量子化ユニット２１０、逆変換ユニット２１２、再構築ユニット２１４、バッファ２１６、ループフィルタ２２０、デコード画像バッファ２３０、予測ユニット２６０およびモード選択ユニット２６０は、エンコーダ１００（およびそれぞれの機能ユニット）の逆の処理を実行して、エンコード画像データ１７１をデコードするように構成される。
【０１４１】
具体的には、逆量子化ユニット２１０は、機能において逆量子化ユニット１１０と同一であり得、逆変換ユニット２１２は、機能において逆変換ユニット１１２と同一であり得、再構築ユニット２１４は、機能において再構築ユニット１１４と同一であり得、バッファ２１６は、機能においてバッファ１１６と同一であり得、ループフィルタ２２０は、機能においてループフィルタ２２０と同一であり得（実際のループフィルタに関しては、ループフィルタ２２０は、典型的には、元の画像１０１またはブロック１０３に基づいてフィルタパラメータを決定するフィルタ分析ユニットを有していないが、例えば、エントロピーデコーディングユニット２０４から、エンコーディングに使用されるフィルタパラメータを受信する（明示的にまたは暗黙的に）か取得する）、デコード画像バッファ２３０は、機能的においてデコード画像バッファ１３０と同一であり得る。
【０１４２】
予測ユニット２６０は、インター予測ユニット２４４およびイントラ予測ユニット２５４を有することができ、インター予測ユニット２４４は、機能においてインター予測ユニット１４４と同一であり得、イントラ予測ユニット２５４は、イントラ予測ユニット１５４と機能において同一であり得る。予測ユニット２６０およびモード選択ユニット２６２は、典型的には、ブロック予測を実行し、および／または（元の画像１０１に関するさらなる情報なしで）エンコードデータ１７１のみから予測ブロック２６５を取得し、（明示的にまたは暗黙的に）予測パラメータ１４３または１５３および／または選択された予測モードに関する情報を、例えばエントロピーデコーディングユニット２０４から受信または取得するように構成される。
【０１４３】
デコーダ２００は、ユーザへの提示または閲覧のために、例えば、出力２３２を介して、デコード画像２３１を出力するように構成される。
【０１４４】
戻って図１を参照すると、デコーダ２００から出力されたデコード画像２３１は、ポストプロセッサ３２６において後処理され得る。結果として生じる後処理された画像３２７は、内部または外部ディスプレイデバイス３２８に送信され、表示され得る。
【０１４５】
［詳細な実施形態］
本発明は、乗算演算が単純化されるように、適応乗算フィルタのフィルタ係数によって仮定され得る値を制限する。画像の信号サンプルのセットのフィルタリングは、適応乗算係数を持つフィルタを使用し、乗算係数は整数で表される。係数Ｃの絶対値の最高値がＮであるとすると、Ｎの２進表現にはＬ=ｃｅｉｌ（ｌｏｇ２（N））の２進数が必要である。換言すれば、Ｌの２進数を使用すると、ゼロ（Ｌ「ゼロ」）から２Ｌ−１（Ｌ「１」）までの絶対係数値を表現できる（係数の符号は、ここでは説明しないが、別個の符号ビットで表される）。本発明の特定のアプローチによれば、この値のセットは、係数Ｃによって仮定され得る任意の値が、２進表現において最大でＰ＜Ｌの「１」（「１」）の数を含むように制限される。例えば、すべて「１」（Ｌ「１」）の場合は除く。
【０１４６】
以下に示すように、許可される「１」の数Ｐが小さいほど、効率利得が向上し、フィルタリング演算のパフォーマンスが向上する。例えば、係数Ｃで仮定できる任意の値に含まれる「１」が最大で１つだけ、すなわち、最大で１つの「１」である場合、最良の効率利得の向上が達成できる。
【０１４７】
以下では、本発明の実装の特定の実施形態を詳細に説明する。
【０１４８】
以下に示すパラメータの例示的な値は、例示のみを目的とするものであり、当業者は、それらが添付の特許請求の範囲内にある任意の他の可能な値の範囲内で置換され得ることを認識していることに留意されたい。
【０１４９】
概して、フィルタ係数は有限精度を使用して実装される。フィルタ係数は、Ｌビットと任意の符号ビットを共に使用して表される。ビットＬの量は、係数の最大絶対値に依存する。具体的には、係数Ｃの絶対値の最高値がNであるとすると、Ｎの２進表現にはＬ＝ｃｅｉｌ（ｌｏｇ２（Ｎ））の２進数が必要である。
【０１５０】
ｃｅｉｌ（ｘ）関数は、「ｘ」またはｃｅｉｌｉｎｇ（ｘ）で示され、ｘをｘより大きいか等しい最小の整数にマッピングする。
【０１５１】
本発明の第１の例示的な実施形態によれば、フィルタ係数のＬビットのうち最大で１つ（すなわち、符号ビットを除く）は、同時に「１」（「１」）であり得る。他の可能性は許可されない。
【０１５２】
例えば、Ｌ＝６とし、１ビット（左端のビット）を使用して係数の符号を示す。
【０１５３】
例えば、次のフィルタ係数が使用できる：０（０００００００）、１（００００００１）、−１（１０００００１）、２（０００００１０）、−２（１００００１０）、４（００００１００）、−４（１０００１００）、８ （０００１０００）、−８（１００１０００）、１６（００１００００）…、−３２（１１０００００）。
【０１５４】
例えば、次のフィルタ係数は使用できない：３（０００００１１）、−１５（１００１１１１）、３１（００１１１１１）…。
【０１５５】
この場合、制限により乗算をひとつのビットシフト演算として実装できるので、利点が達成される。
【０１５６】
ビットシフト演算は数学的に次のように表すことができ：ｆ（Ｘ、Ｍ）＝Ｘ＊２Ｍ、ここで、Mは０より大きいか等しい整数である。上記の実施形態の一般化に従って、フィルタ係数のＬビットのうちＭは最大で、同時に「１」であり得る。他の可能性は許可されない。
【０１５７】
例えば、Ｌ＝６、Ｍ＝２とし、１ビットを使用して係数の符号を示す。
【０１５８】
例えば、次のフィルタ係数を使用できる：０（０００００００）、３（０００００１１）、９（０００１００１）、−４（１０００１００）、−９（１００１００１）、１８（００１００１０）、３３（０１００００１）…。
【０１５９】
例えば、次のフィルタ係数は使用できない：７（００００１１１）、−１９（１０１００１１）、３１（００１１１１１）…。
【０１６０】
この場合、制限により、２つのビットシフトと１つの加算演算で乗算を実装できる。
【０１６１】
上記で概要を述べたより一般的なケースでは、一般的なＭ＜Ｌの場合、制限によりＭビットシフトとＭ−１加算演算によって乗算を達成できるので、利点が達成される。
【０１６２】
上記の例では、絶対値の制限されたセットが、適応フィルタの乗算のすべてのフィルタ係数に適用されると仮定されている。
【０１６３】
以下では、図７を参照して、より複雑な例示的な実施形態を説明するが、本発明による制限が適用されるが、検討中のフィルタのすべてのフィルタ係数には適用されない。
【０１６４】
この例では、第１段階で、係数が２つのグループにグループ化される。図において、第１グループは、フィルタの中央部分の白丸で示される係数位置に対応し、第２グループは、フィルタの周辺部分の図中の黒丸で示される係数位置に対応する。
【０１６５】
第１グループのフィルタ係数は、予め定められた範囲内の任意の値をとると仮定し得る。図示された例では、範囲はセット「Ｓ１」に対応すると仮定され、ここで、Ｓ１＝［−５１１、…、５１１］である。これは、Ｌ＝９の総ビット数（符号ビットを除く）に対応する。
【０１６６】
第２グループのフィルタ係数は、セット「Ｓ２」の任意の値をとると仮定でき、Ｓ２はＳ１のサブセットである。より具体的には、一例では、セットＳ２は、Ｓ２＝［−３２、−１６、−８、−４、−２、−１、０、１、２、４，８、１６、３２］として定義される。従って、セットＳ２の許可値は、２進表現でひとつの「１」で表すことができるものに制限される。また、最大絶対許可値は３２に制限されており、すなわち、数ＬはＬ＝６に制限されているとさらに仮定される。概して、数Ｌは、グループごとに別個に、異なる様に設定できることに留意されたい。さらに、許可値のセットの特定のグループ化と定義は、画像ごとに（フレームごとに）変わる可能性がある。代替的に、セットのグループ化と定義は、異なるフィルタ形状によって異なり得る（例えば、図５で説明するように、５×５ダイヤモンド、７×７ダイヤモンド、９×９ダイヤモンド）。代替的に、グループ化と定義を予め定義し得る。
【０１６７】
この例の利点は、９ビットの乗算の代わりに、セットＳ２に１ビットシフトが使用されることである。
【０１６８】
フィルタ係数も同様にデコーダで正しく決定できるように、それぞれのデータをエンコーダのビットストリームに含め、デコーダにシグナリングする必要がある。もちろん、許可係数値の制限されたセットを適用すると、シグナリングオーバヘッドが削減され、ビットストリームでシグナリングされる係数を表すために必要なビットが少なくなるので、コーディングがより効率的になる。
【０１６９】
より具体的には、エンコーダによって適用されるフィルタ係数の値は、コード化されてデコーダに送信される必要がある。エンコーダ側では、フィルタ係数の値は、マッピングテーブルまたはマッピング関数を介して２進コードワード（フィルタ値からコードワードへの）に変換される。フィルタ係数を正しく解釈するためには、同じマッピング演算をデコーダ（コードワードからフィルタ係数値まで）で適用する必要がある。
【０１７０】
マッピング関数またはテーブルは、Ｓ１とＳ２で異なり得る。フィルタ係数セットＳ１およびＳ２のマッピング演算の例を以下に示す。
【０１７１】
以下の例では、Ｓ１は（０，１，…，５１１）で与えられ、Ｓ２は（０，２，４，８，１６，３２）で与えられる（絶対値のみが考慮される）。
【０１７２】
【表２】
2021515494.tif 000008
【０１７３】
デコーダがフィルタ係数値を正しく解釈できるように、エンコーダとデコーダとで順方向（エンコーダで）と逆方向（デコーダで）のマッピング演算を使用する必要がある。上記の例では、Ｓ２の別個の値の数がはるかに少なく、Ｓ１のマッピングを使用してＳ２フィルタ係数を表すのは無駄であるので、Ｓ２とＳ１でフィルタ係数のマッピング演算が異なる。従って、ビットストリームにおいてシグナリングされる係数を表すために必要なビットがより少ないので、本発明は、シグナリングオーバヘッドが削減され、従って、より効率的なコーディングをもたらす。
【０１７４】
以下では、図８を参照して、フィルタ係数のシグナリングの一般的な概要を示す。図８Ａは、エンコーダ側の処理を示し、図８Ｂは、デコーダ側の処理を示している。
【０１７５】
エンコーダにおいて、再構築されたサンプルに適用されるフィルタ係数は、本発明の特定のアプローチによって決定されるような許可係数値に従って決定される（段階Ｓ８０）。
【０１７６】
決定されたフィルタ係数は、再構築された画像サンプルをフィルタリングするために使用される（段階Ｓ８２）。本発明によれば、再構築された画像サンプルに適用されるフィルタ係数は、本発明によって設定されるルールに従う必要がある。
【０１７７】
フィルタ係数の予測の次の段階（段階Ｓ８４）は任意である。フィルタ係数予測は、デコーダにシグナリングされる情報を減らすために、任意選択的に適用できる。可能な予測方法は、予め定義されたフィルタ予測子を使用した予測と、以前にシグナリングされたフィルタ係数からの予測である。しかしながら、予測方法は、ここで例として与えられたものに制限されず、当業者が認識している任意の適切な予測方法を適用することができる。
【０１７８】
次の段階（Ｓ８６）では、残差係数の２進コードワードへのマッピングが実行される。前述の予測段階Ｓ８４は任意であるので、代替的に、マッピングは段階Ｓ８０で決定されたフィルタ係数に直接適用されることに留意されたい。
【０１７９】
より具体的には、各整数値のフィルタ係数（フィルタ係数残差）は、ビットストリームに含まれる前に２進コードワードへ変換される。可能なフィルタ係数値（フィルタ係数残差値）と同じ数のコードワードがある。コードワードから値へのマッピング（１対１のマッピング）は、固定マッピングにすることもでき、シグナリングされたサイド情報に応じて変更することもできる。
【０１８０】
最後の段階Ｓ８８では、２値化された（任意選択的に残差）フィルタ係数、すなわち、それらがマッピングされたコードワードがビットストリームに含まれる。段階Ｓ８４で予測が実行される場合、再構築を実行できるようにするために、予測処理に関する必要な情報をデコーダに通知するために、予測制御情報を生成し、ビットストリームに上記予測制御情報を含めることがさらに必要である。
【０１８１】
概して、エンコーダで適用される演算は、デコーダで逆の順序で適用される。これは、図８Ｂを参照して以下により詳細に説明される。
【０１８２】
最初の段階Ｓ９０では、受信されたビットストリームが解析される。結果として得られる２値化されたフィルタ係数（すなわち、送信されたコードワード）は、任意選択的に残差フィルタ係数を表す（エンコーダ側で予測が適用された場合）。これは、解析されたビットストリームから予測制御情報を追加的に取得することで示される。
【０１８３】
いずれの場合も、２進コードワードは、段階Ｓ９２において、逆のマッピング手順（エンコーダと比較して）によってフィルタ係数（または残差フィルタ係数）にマッピングされる。
【０１８４】
その結果、デコーダ側でフィルタ係数が決定（再構築）される（段階Ｓ９４）。予測が適用され、段階Ｓ９２の結果から得られたフィルタ係数が残差フィルタ係数である場合、再構築は追加的に、再構築されたフィルタ係数を取得するために、予測制御情報によって示されるように予測を実行し、予測結果を残差フィルタ係数に加算することを含む。
【０１８５】
フィルタ係数が再構築された後（該当する場合、予測子情報とフィルタ残差を組み合わせることにより）、それらは再構築された画像サンプルに適用される（段階Ｓ９６）。
【０１８６】
本発明によれば、再構築された画像サンプルに適用されるフィルタ係数は、本発明により定義されたルールに従う必要がある。
【０１８７】
従って、再構築の結果から得られたフィルタ係数に（特に、予測結果と残差結果の組み合わせから）、本発明のルールによる許可フィルタ係数値（許可値のセットに含まれないフィルタ係数値）がない場合、フィルタ係数の再構築プロセスは、丸め演算をさらに実行する。具体的には、丸め演算は、入力フィルタ係数値を最も近い許可係数値に変換し得る。
【０１８８】
フィルタ係数予測が適用される場合、フィルタリングの目的で再構築された画像サンプルに適用されるフィルタ係数は、予測結果（「予測子」）と残差フィルタ係数（エンコーダおよびデコーダの観点から前の段落で説明したとおり）を加算することによって取得される。特に予測が完全に近い場合（予測されるフィルタ係数が予測子に非常に類似している場合）は明らかに、残差フィルタ係数が存在しない（０に等しい）可能性がある。この場合、本発明によれば、以下の２つのオプションのうちの１つが適用される。
【０１８９】
１  予測によって取得された係数値は、本発明に従って定義されたルールに従う必要がある。例えば、予め定義されたフィルタからの予測の場合、予め定義されたフィルタのフィルタ係数は、本発明に従って定義されたルールに従う必要がある。
【０１９０】
２  予測後に取得されるフィルタ係数は、最も近い許可係数値に丸める必要がある。
【０１９１】
ここでは単純化のために２つのグループの数への分割について説明したが、しかし、２よりも多いグループも可能であり、少なくとも１つのグループについて、許可値のセットは、本発明に従って決定され、すなわち、予め定められたすべての数の２進数内に限られた数の「１」のみを含むことにさらに留意されたい。
【０１９２】
例えば、図９は、フィルタの係数が３つのグループにグループ化される場合を示している。
【０１９３】
フィルタカーネルの中心近くに配置された係数の第１グループは、セットＳ１＝［−５１１、…、５１１］の許可フィルタ係数値を有する。
【０１９４】
カーネルの周囲に位置し、破線の丸で示されるフィルタ係数の第２グループにより、フィルタ係数値を変更された制限付きセットＳ２内に収めることができ、Ｓ２はＳ２＝［−１２８、−６４、−３２、−１６、−８、−４、−２、−１、０、１、２、４、８、１６、３２、６４、１２８］である。これは、Ｌ＝８の２進数で、ひとつだけの「１」で表現できるすべての係数値のセットである。
【０１９５】
第１グループと第２グループの間に位置し、塗りつぶされた円で示されるフィルタ係数の第３グループにより、フィルタ係数値を他の制限されたセットＳ３内に収めることができる。Ｓ３＝［−６４、−４８、−４０、・・・、０、１、２、３、４、５、６、８、９、１０、１２、１６、１７、１８、２０、２４、３２、３３、３４、３６、４０、４８、６４］。
【０１９６】
換言すれば、セットＳ３は、Ｌ＝７の２進数で表すことができるすべての係数のセットであり、係数の絶対値で最大でビットのうちの２つが「１」であり、最大絶対値が６４に設定されるという追加の制限が適用される。（それ以外の場合は、例えば、７つの２進数の２つの主要な「１」で表すことができるので、絶対値９６も許可する必要がある。）
【０１９７】
以下では、本発明の特定の利点が、図１０に示される他の例示的な実施形態により説明される。
【０１９８】
図１０の例では、図７と同様にグループ化が実行されている。
【０１９９】
第１グループのフィルタ係数は、９ビットの全ての範囲と符号ビット、すなわち、上述のセットＳ１＝［−５１１、５１１］の任意の値を仮定することができる。
【０２００】
第２グループのフィルタ係数は、値の制限されたＳ２の値のセットを仮定することができ、Ｓ２はＳ２＝［−１２８、−６４、−３２、−１６、−８、−４、−２、−１、０、１、２、４、８、１６、３２、６４、１２８］である。これは、２進表現でひとつの「１」で表すことができる値に対応する。また、最大絶対許可値は１２８に制限されており、すなわち、Ｌの数はＬ＝８に制限されているとさらに仮定する。
【０２０１】
換言すれば、フィルタサイズは、図４に示したサイズ、すなわち、９×９のダイヤモンド型フィルタに対応する。背景技術の欄で示したように、従来の要求では９ビットのフィルタ係数で４１回の乗算が必要であった。背景技術の欄で言及したように、１つの乗算は８つの２進加算と同等であるので、画素あたりの追加演算の数は４８＊８＝３２８の加算演算である。
【０２０２】
本発明によれば、周辺２８係数（すなわち、第２グループのもの）は、ひとつのビットシフト演算として実装することができる。ビットシフト演算の実装は、ハードウェアの複雑さが非常に小さいため、従って計算で省略できる。
【０２０３】
９ビット係数を使用した１３の乗算演算は、画素あたり１３＊８＝１０４の加算と等しい。画素あたりの演算数は６８％低下する。
【０２０４】
上記の数は概算であり、複雑さが削減される厳密な値は実際の実装に依存して異なる。
【０２０５】
以下では、少なくとも２つの係数グループを使用した実装の追加の利点について説明する。
【０２０６】
本発明によれば、すべてのフィルタ係数が粗く量子化されるわけではなく、第１グループのフィルタ係数はより細かい量子化を有する。通常、フィルタ係数の粗い量子化はコーディング損失を引き起こす。しかしながら、大きな値のセットを仮定することを許可された第１グループのフィルタ係数を有することは、エンコーダによるコーディング損失を補償するために使用され得る。
【０２０７】
可能なエンコーダの実装は以下の通りである。以下の説明では、使用されるフィルタ係数ラベルは図１１に示されているものであり、他の図面に関連して以前に使用されたラベルとは異なる場合がある。
【０２０８】
段階１：係数値に制限がないと仮定して、最小２乗法を使用してすべてのフィルタ係数（Ｃ０、…、Ｃ２０）を導出する。
【０２０９】
段階２：係数（Ｃ７、…、Ｃ２０）を最も近い許可値に丸めることによって制限を課す。
【０２１０】
この段階により、フィルタ係数に量子化ノイズが導入され、従ってコーディング利得が低減する。段階３：量子化誤差を補償するために、自由に選択可能なフィルタ係数（Ｃ０、…、Ｃ６）を再推定する。この第３段階では、段階２で導入されたコーディング損失のほとんどを回復できる。
【０２１１】
より詳細：第１段階では、４１のタップフィルタ（２１の一意の係数を使用）に対して以下の方程式が解かれる。
【０２１２】
【数５】
2021515494.tif 000009
【０２１３】
上記の方程式は最小２乗方程式と称され、エンコーダでフィルタ係数Ｃｘを見出すために使用される。
【０２１４】
Xｘ、ｙという用語は、Ｒ（ｉ＋ｋ、ｊ＋ｌ）＊Ｒ（ｉ＋ｍ、ｊ＋ｎ）の期待値であり、フィルタリング前の２つの再構築されたサンプル間の相関である。インデックスｋ、ｌ、ｍおよびｎは、適用されるフィルタの形状に応じて選択される。
【０２１５】
Ｐｘという用語は、Ｒ（ｉ＋ｋ、ｊ＋ｌ）＊Ｏ（ｉ、ｊ）の期待値を示す。
【０２１６】
第２段階では、フィルタ係数Ｃ７からＣ２０に対して、制限を満たす最も近い近似係数が見つかる。
【０２１７】
【数６】
2021515494.tif 000010
【０２１８】
係数Ｃ７'からＣ２０'は、本発明で指定されたルールに従う。上記の関数ｆ（）は、最小２乗方程式を解くことによって以前に取得されたフィルタ係数Ｃ７からＣ２０に量子化ノイズを導入することに留意されたい。
【０２１９】
第２段階で導入される量子化ノイズは、フィルタリング演算のパフォーマンスを低下させることが予想される。フィルタリングのパフォーマンスは通常、ＰＳＮＲ（Ｐｅａｋ  ｓｉｇｎａｌ−ｔｏ−ｎｏｉｓｅ  ｒａｔｉｏ）などのメトリックによって測定されるため、段階２の後で、フィルタリングされた画像のＰＳＮＲは低下する。
【０２２０】
第３段階では、１３のタップフィルタ（７つの一意の係数を使用）に対して以下の方程式を解く。
【０２２１】
【数７】
2021515494.tif 000011
【０２２２】
第３段階では、第２段階で導入された量子化ノイズを考慮して、フィルタリング係数Ｃ０からＣ７が再び算出される。第３段階は、段階２の適用によって生じるフィルタリングのパフォーマンスの低下を有利に低減する。
【０２２３】
一般に、適応乗算フィルタ係数を用いたフィルタリング演算の適用は、再構築された画像サンプルに制限されないことに留意されたい。図２および図３で説明したように、再構築ブロックは通常、逆変換ブロックと予測ブロックの組み合わせ後に取得される画像ブロックに対応する。当該技術分野の当業者には明らかであるように、適応フィルタ係数を用いたフィルタリング演算は、例えば、予測ブロック（２６５、１６５）、逆変換ブロック（２１３、１１３）、量子化係数（２０９、１０９）、逆量子化係数（１１１、２１１）、またはデコード画像（２３１）などのエンコーディングおよびデコーディング演算の他の段階でも適用できる。この場合、本発明は、フィルタリング演算のフィルタ係数に適用される。
【０２２４】
要約すると、本発明は、再構築された画像、特にビデオ画像を適応乗算フィルタでフィルタリングするための改善された装置および方法に関する。フィルタリング演算の効率は、フィルタ係数の許可値を、２進表現で限られた数の「１」を有する値のみに制限することによって増加する。
【０２２５】
この明細書は画像（フレーム）の説明を提供するが、インターレース画像信号の場合、分野は画像として置き換えられることに注意されたい。
【０２２６】
本発明の実施形態は主にビデオコーディングに基づいて説明されたが、エンコーダ１００およびデコーダ２００（および対応するシステム３００）の実施形態はまた、静止画像処理またはコーディング、すなわち、ビデオコーディングのように、任意の先行する画像または連続する画像から独立した個々の画像の処理またはコーディングのために構成され得ることに留意されたい。一般に、画像処理コーディングがひとつの画像１０１に制限される場合、インター推定１４２、インター予測１４４、２４２のみが利用可能ではない。ビデオエンコーダ１００およびビデオデコーダ２００のその他の機能（ツールまたは技術とも称される）、例えば、分割、変換（スケーリング）１０６、量子化１０８、逆量子化１１０、逆変換１１２、イントラ推定１４２、イントラ予測１５４、２５４および／またはループフィルタリング１２０、２２０、およびエントロピーコーディング１７０およびエントロピーデコーディング２０４、の全部でないにしてもほとんどが静止画像に等しく使用されてもよい。
【０２２７】
実施形態および明細書が「メモリ」という用語に言及する場合はいつでも、「メモリ」という用語は、特に明記されていない限り、磁気ディスク、光ディスク、ソリッドステートドライブ（ＳＳＤ）、読み取り専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ、ＲＯＭ）、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）、ＵＳＢフラッシュドライブ、または任意の他の適切な種類のメモリ、と理解されるものとし、および／またはこれらを含むものとする。
【０２２８】
実施形態および明細書が「ネットワーク」という用語に言及する場合はいつでも、「ネットワーク」という用語は、特に明記されていない限り、例えば、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イーサネット（登録商標）、インターネット、モバイルネットワーク等、任意の種類の無線ネットワークまたは有線ネットワークと理解されるものとし、および／またはこれらを含むものとする。
【０２２９】
当該技術分野の当業者は、さまざまな図（方法および装置）の「ブロック」（「ユニット」または「モジュール」）が本発明の実施形態の機能性を表す、または説明することを理解し（必ずしもハードウェアまたはソフトウェアの個々の「ユニット」というよりむしろ）、従って、装置の実施形態ならびに方法の実施形態（ユニット＝段階）の機能または特徴を等しく説明する。
【０２３０】
「ユニット」の用語は、エンコーダ／デコーダの実施形態の機能の例示目的のために単に使用されており、開示を制限することを意図していない。
【０２３１】
本願にて提供されるいくつかの実施形態においては、開示されるシステム、装置、および方法が、他の複数の方式で実装されてよいことが理解されるべきである。例えば、説明された装置の実施形態は、例示的なものに過ぎない。例えば、ユニット区分は単なる論理的な機能区分に過ぎず、実際の実装では他の区分であってもよい。例えば、複数のユニットまたはコンポーネントを組み合わせるかまたは統合して他のシステムにしてもよいし、いくつかの特徴を無視するかまたは実行しなくてもよい。加えて、表示または議論される相互連結もしくは直接連結または通信接続は、いくつかのインタフェースを使用することにより実装され得る。装置間またはユニット間の間接連結または通信接続は、電子的形態、機械的形態、または他の形態で実装されてよい。
【０２３２】
別個の部分として説明されるユニットは、物理的に別個のものであってもよく、なくてもよい。また、ユニットとして表示される部分は、物理的なユニットであってもよく、なくてもよく、１つのポジションに位置するものであってもよく、または、複数のネットワークユニットに分散されてもよい。実施形態の解決手段の目的を達成するべく、実際の必要性に応じてユニットのいくつかまたはすべてが選択されてよい。
【０２３３】
加えて、本発明の実施形態における機能ユニットは、１つの処理ユニットに統合されてもよいし、それぞれのユニットが物理的に単独で存在してもよいし、２またはそれより多いユニットが１つのユニットに統合されてもよい。
【０２３４】
本発明の実施形態は、本明細書に記載の方法および／またはプロセスのいずれか１つを実行するように構成された処理回路を有する装置、例えば、エンコーダおよび／またはデコーダをさらに有することができる。エンコーダ１００および／またはデコーダ２００の実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組み合わせとして実装され得る。
【０２３５】
例えば、エンコーダ／エンコーディングまたはデコーダ／デコーディングの機能は、例えば、プロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）などのファームウェアまたはソフトウェアを伴うまたは伴わない処理回路によって実行され得る。
【０２３６】
エンコーダ１００（および対応するエンコーディング方法１００）および／またはデコーダ２００（および対応するデコーディング方法２００）の機能は、コンピュータ可読媒体に記憶されたプログラム命令によって実装され得る。プログラム命令は、実行されるとき、処理回路、コンピュータ、プロセッサなどに、エンコーディングおよび／またはデコーディング方法の段階を実行させる。コンピュータ可読媒体は、ブルーレイディスク、ＤＶＤ、ＣＤ、ＵＳＢ（フラッシュ）ドライブ、ハードディスク、ネットワーク経由で利用可能なサーバストレージなど、プログラムが記憶される非一時的なストレージメディア等を含む任意の媒体であり得る。本発明の実施形態は、コンピュータ上で実行されたときに、本明細書に記載された方法のいずれか１つを実行するためのプログラムコードを含むコンピュータプログラムを含む、またはコンピュータプログラムである。本発明の実施形態は、プロセッサによって実行されるとき、コンピュータシステムに本明細書に記載の方法のいずれか１つを実行させるプログラムコードを含むコンピュータ可読媒体を含むか、またはコンピュータ可読媒体である。本発明の実施形態は、本明細書に記載される方法のいずれか１つを実行するチップセットを含むか、またはチップセットである。
【符号の説明】
【０２３７】
１００  エンコーダ
１０２  入力（例えば、入力ポート、入力インタフェース）
１０３  画像ブロック
１０４  残差計算［ユニットまたは段階］
１０５  残差ブロック
１０６  変換（例えば、追加的にスケーリングを含む）［ユニットまたは段階］
１０７  変換係数
１０８  量子化［ユニットまたは段階］
１０９  量子化係数
１１０  逆量子化［ユニットまたは段階］
１１１  逆量子化係数
１１２  逆変換（例えば、追加的にスケーリングを含む）［ユニットまたは段階］
１１３  逆変換ブロック
１１４  再構築［ユニットまたは段階］
１１５  再構築ブロック
１１６（ライン）バッファ［ユニットまたは段階］
１１７  基準サンプル
１２０  ループフィルタ［ユニットまたは段階］
１２１  フィルタリングされたブロック
１３０  デコード画像バッファ（ＤＰＢ）［ユニットまたは段階］
１４２  インター推定（またはインター画像推定）［ユニットまたは段階］
１４３  インター推定パラメータ（例えば、参照画像／参照画像インデックス、動きベクトル／オフセット）
１４４  インター予測（またはインター画像予測）［ユニットまたは段階］
１４５  インター予測ブロック
１５２  イントラ推定（またはイントラ画像推定）［ユニットまたは段階］
１５３  イントラ予測パラメータ（例えば、イントラ予測モード）
１５４  イントラ予測（イントラフレーム／画像予測）［ユニットまたは段階］
１５５  イントラ予測ブロック
１６２  モード選択［ユニットまたは段階］
１６５  予測ブロック（インター予測ブロック１４５またはイントラ予測ブロック１５５のいずれか）
１７０  エントロピーエンコーディング［ユニットまたは段階］
１７１  エンコード画像データ（例えば、ビットストリーム）
１７２  出力（出力ポート、出力インターフェース）
２００  デコーダ
２０２  入力（ポート／インターフェース）
２０４  エントロピーデコーディング
２０９  量子化係数
２１０  逆量子化
２１１  逆量子化係数
２１２  逆変換（スケーリング）
２１３  逆変換ブロック
２１４  再構築（ユニット）
２１５  再構築ブロック
２１６  （回線）バッファ
２１７  基準サンプル
２２０  ループフィルタ（ループフィルタ内）
２２１  フィルタリングされたブロック
２３０  デコード画像バッファ（ＤＰＢ）
２３１  デコード画像
２３２  出力（ポート／インタフェース）
２４４  インター予測（インターフレーム／画像予測）
２４５  インター予測ブロック
２５４  イントラ予測（イントラフレーム／画像予測）
２５５  イントラ予測ブロック
２６０  モード選択
２６５  予測ブロック（インター予測ブロック２４５またはイントラ予測ブロック２５５）３００  コーディングシステム
３１０  送信元デバイス
３１２  画像ソース
３１３  （未処理）画像データ
３１４  プリプロセッサ／前処理ユニット
３１５  前処理された画像データ
３１８  通信ユニット／インタフェース
３２０  宛先デバイス
３２２  通信ユニット／インタフェース
３２６  ポストプロセッサ／後処理ユニット
３２７  後処理された画像データ
３２８  ディスプレイデバイス／ユニット
３３０  送信／受信／通信（エンコード）された画像データ
【図１】
2021515494.tif 000012
【図２】
2021515494.tif 000013
【図３】
2021515494.tif 000014
【図４】
2021515494.tif 000015
【図５】
2021515494.tif 000016
【図６】
2021515494.tif 000017
【図７】
2021515494.tif 000018
【図８Ａ】
2021515494.tif 000019
【図８Ｂ】
2021515494.tif 000020
【図９】
2021515494.tif 000021
【図１０】
2021515494.tif 000022
【図１１】
2021515494.tif 000023
【手続補正書】
【提出日】令和2年10月8日(2020.10.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
整数で表される適応乗算係数を有するフィルタを使用して画像のサンプルのセットをフィルタリングするための装置であって、前記装置は、
前記フィルタの少なくとも１つの乗算係数の値を、許可値のセット内にあるように決定し、その結果、予め定められた桁数Ｌを有する前記少なくとも１つの乗算係数の絶対値の２進表現が、少なくとも１つの「ゼロ」を含むようにして、
前記フィルタを使用して画像のサンプルの前記セットをフィルタリングするように構成される処理回路を有する、装置。
【請求項２】
前記セットの最大絶対値が予め定められた最大値Ｎｍａｘに制限される、請求項１に記載の装置。
【請求項３】
前記少なくとも１つの乗算係数の絶対値の２進表現が、最大で２つの「１」を含む、請求項１または２に記載の装置。
【請求項４】
前記少なくとも１つの乗算係数の絶対値の２進表現が、最大で１つの「１」を含む、請求項３に記載の装置。
【請求項５】
フィルタのすべての乗算係数が、許可値の前記セット内にあるようにと決定される、請求項１から４のいずれか１項に記載の装置。
【請求項６】
前記処理回路は、前記フィルタの乗算係数を少なくとも２つのグループにグループ化するようにさらに構成され、
前記グループの１つの乗算係数は、許可値の前記セットに制限される、
請求項１から４のいずれか１項に記載の装置。
【請求項７】
前記グループの他の１つの乗算係数が、絶対値の予め定められた最大値によって定義される範囲内のすべての値を仮定することを許可される、請求項６に記載の装置。
【請求項８】
画像のサンプルの前記セットがビデオ画像のサンプルのセットである、請求項１から７のいずれか１項に記載の装置。
【請求項９】
前記装置は、各画像および各画素の乗算係数を個々に適応させるように構成される、請求項８に記載の装置。
【請求項１０】
整数で表される適応乗算係数を有するフィルタを使用して画像のサンプルのセットをフィルタリングするための方法であって、前記方法は、
前記フィルタの少なくとも１つの乗算係数の値を、許可値のセット内にあるように決定し、その結果、予め定められた桁数Ｌを有する前記少なくとも１つの乗算係数の絶対値の２進表現が、少なくとも１つの「ゼロ」を含むようにする段階と、
前記フィルタを使用した画像のサンプルのセットのフィルタリングをする段階と、
を有する方法。
【請求項１１】
複数の画素を含む画像のサンプルの現在のセットをエンコーディングするための装置であって、前記装置は、
現在のセットを再構築するためのデコーダを有したエンコーダと、
前記再構築されたセットをフィルタリングするための、請求項１から９のいずれか１項に記載の装置と、
を有する装置。
【請求項１２】
乗算係数の値を２進コードワードにマッピングして、
デコーディング装置に送信するために、前記コードワードをビットストリームに含める、
ように構成された処理回路をさらに有する、請求項１１に記載の装置。
【請求項１３】
前記コードワードの長さが、別個の乗算係数値の数に依存する、請求項１２に記載の装置。
【請求項１４】
前記処理回路が、
前記フィルタの乗算係数の予測を実行し、
実際の決定値を予測の結果から得られた予測値と比較することによって残差乗算係数を決定するようにさらに構成され、
２進コードワードへの前記マッピングは前記残差乗算係数に適用される、請求項１２または１３に記載の装置。
【請求項１５】
前記処理回路は、予測制御情報を生成し、前記予測制御情報を前記ビットストリームに含めるようにさらに構成される、請求項１４に記載の装置。
【請求項１６】
複数の画素を含む画像のサンプルのコードされた現在のセットをデコーディングするための装置であって、前記装置は、
現在のセットを再構築するためのデコーダと、
前記再構築されたセットをフィルタリングするための、請求項１から９のいずれか１項に記載の装置と、
を有する装置。
【請求項１７】
前記処理回路は、マッピング演算を適用することによって、受信されたビットストリームに含まれる２進コードワードから乗算係数を取得するようにさらに構成される、請求項１６に記載の装置。
【請求項１８】
前記取得された乗算係数は、実際の係数値と予測スキームに従って予測された乗算係数との差を表す残差乗算係数であり、
前記処理回路は、取得された残差乗算係数からそれらを再構築することにより、前記フィルタの前記乗算係数の値を決定するように構成される、
請求項１７に記載の装置。
【請求項１９】
前記予測スキームは、前記受信されたビットストリームにさらに含まれる予測制御情報によって示され、
前記処理回路は、再構築において前記予測制御情報をさらに使用するように構成される、
請求項１８に記載の装置。
【請求項２０】
前記処理回路による前記決定は、
マッピング演算によって、または取得された残差乗算係数からの再構築によって、受信されたビットストリームから直接取得された少なくとも１つの乗算係数の決定値が、許可値の前記セット内にあるかに関する決定を実行することと、
許可値の前記セット内にない場合、前記決定値を、許可値の前記セット内にある最も近い値に変換することと、
をさらに含む、請求項１７から１９のいずれか１項に記載の装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３１
【補正方法】変更
【補正の内容】
【０１３１】
図２は、インターコーディングのための２つの別個のユニット（または段階）、つまり、インター推定１４２およびインター予測１４４を示しているが、両方の機能は、例えば、現在の最良のインター予測モードとそれぞれのインター予測ブロックを記憶しながら、可能なインター予測モードのすべての可能なまたは予め定められたサブセットを繰り返しテストし、典型的には、インター推定は、インター予測ブロック、すなわち、インター予測ブロックまたは「一種の」インター予測１４４を算出することを要求する／含む）、インター予測１４４を再度実行することなく、現在最良のインター予測モードおよびそれぞれのインター予測ブロックを（最終的な）インター予測パラメータ１４３およびインター予測ブロック１４５として使用することによって、１つの機能として実行できる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１６９
【補正方法】変更
【補正の内容】
【０１６９】
より具体的には、エンコーダによって適用されるフィルタ係数の値は、コード化されてデコーダに送信される必要がある。エンコーダ側では、フィルタ係数の値は、マッピングテーブルまたはマッピング関数を介して２進コードワード（フィルタ係数値からコードワードへの）に変換される。フィルタ係数を正しく解釈するためには、同じマッピング演算をデコーダ（コードワードからフィルタ係数値まで）で適用する必要がある。
【国際調査報告】
2021515494.tif 000024
2021515494.tif 000025
2021515494.tif 000026