(57)【要約】  本発明は、ビデオコーディング用のフィルタに関し、フィルタは、フィルタリングされた再構築されたフレームを生成するために再構築されたフレームを処理するように構成され、再構築されたフレームは複数のピクセルを含む。フィルタは、あらかじめ定義されたスキャンテンプレートに従って、再構築されたブロックの現在のピクセル、および現在のピクセルのその隣接ピクセルをスキャンすることと、現在のピクセルとその隣接ピクセルに対して変換を実行することによってスペクトル成分を取得することと、フィルタリングパラメータとスペクトル成分に基づいてフィルタリングされたスペクトル成分を取得することと、フィルタリングされたスペクトル成分に対して逆変換を実行することによってフィルタリングされたピクセルを取得することと、フィルタリングされたピクセルに基づいて、フィルタリングされた再構築されたブロックを生成することと、を行うように構成された1つまたは複数のプロセッサを含む。フィルタが提供されているため、ビデオコーディングの効率が向上する。
2021530166.tif 000002
【特許請求の範囲】
【請求項１】
再構築されたブロックを処理するための方法であって、前記再構築されたブロックが複数のピクセルを備え、
あらかじめ定義されたスキャンテンプレートに従って、前記再構築されたブロックの現在のピクセル、および前記現在のピクセルのその隣接ピクセルをスキャンするステップと、
前記現在のピクセルとその隣接ピクセルに対して変換を実行することによってスペクトル成分を取得するステップと、
フィルタリングパラメータと前記スペクトル成分に基づいてフィルタリングされたスペクトル成分を取得するステップと、
前記フィルタリングされたスペクトル成分に対して逆変換を実行することによってフィルタリングされたピクセルを取得するステップと、
前記フィルタリングされたピクセルに基づいて、フィルタリングされた再構築されたブロックを生成するステップと、
を備える、方法。
【請求項２】
ルックアップテーブル(LUT)を使用することによって、前記フィルタリングされたスペクトル成分を取得するステップ、請求項1に記載の方法。
【請求項３】
フィルタリングされたスペクトル成分F(i、σ)が
【数１】
2021530166.tif 000018
によって導出され、上式で、(i)がスペクトル成分のインデックスであり、R(i)が(i)インデックスに対応する前記スペクトル成分であり、σが前記フィルタリングパラメータであり、LUT(R(i)、σ)が前記ルックアップテーブル内の配列であり、THRがしきい値である、請求項2に記載の方法。
【請求項４】
【数２】
2021530166.tif 000019
であり、mがスペクトル成分の数に等しい正規化定数である、請求項3に記載の方法。
【請求項５】
前記フィルタリングパラメータが、コーデック量子化パラメータ(QP)に基づいて導出される、請求項2から4のいずれか一項に記載の方法。
【請求項６】
前記フィルタリングパラメータσが、
σ=k*2(n*(QP-s))
によって導出され、QPが前記コーデック量子化パラメータであり、k、n、およびsが定数である、請求項5に記載の方法。
【請求項７】
k=2.64、n=0.1296、およびs=11である、請求項6に記載の方法。
【請求項８】
kが、ピクセルのビット深度kmod=k*(1<<(bit_depth-8))に基づいて修正される、請求項6または7に記載の方法。
【請求項９】
QP<=17の場合、前記フィルタリングパラメータσがゼロに等しく、前記再構築されたブロックがフィルタリングなしでバイパスされる、請求項5に記載の方法。
【請求項１０】
THRがQP値に依存する、請求項2から9のいずれか一項に記載の方法。
【請求項１１】
THRが、
【数３】
2021530166.tif 000020
よって導出され、上式で、Cが1に近い値である、請求項10に記載の方法。
【請求項１２】
前記あらかじめ定義されたスキャンテンプレートが、前記再構築されたブロック内の前記現在のピクセルの位置に対する空間オフセットまたはラスタオフセットのセットとして定義される、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記あらかじめ定義されたスキャンテンプレートが、scanTmpl[4](y、x)={(0、0)、(0、1)、(1、0)、(1、1)}、のように定義される、請求項12に記載の方法。
【請求項１４】
前記あらかじめ定義されたスキャンテンプレートが、前記再構築されたブロック内の前記現在のピクセルの前記位置に対するラスタオフセットのセットとして定義されている場合、隣接するピクセルを指すオフセットが前記再構築されたブロック内にある、請求項12に記載の方法。
【請求項１５】
前記あらかじめ定義されたスキャンテンプレートに従って、少なくとも1つのフィルタリングされたピクセルが元の位置に配置される、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
すべてのフィルタリングされたピクセルが、前記あらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加され、フィルタリングされたスペクトル成分を取得する前記ステップの前に、前記蓄積バッファがゼロで初期化される、請求項1から15のいずれか一項に記載の方法。
【請求項１７】
最終的にフィルタリングされたピクセルが、前記蓄積バッファ内の蓄積値をピクセル数で割った値として取得され、前記蓄積バッファの現在の位置に追加されると、
前記フィルタリングされたピクセルに基づいて、前記フィルタリングされた再構築されたブロックを生成する前記ステップが、前記最終的にフィルタリングされたピクセルに基づいて、前記フィルタリングされた再構築されたブロックを生成するステップを備える、請求項16に記載の方法。
【請求項１８】
すべてのフィルタリングされたピクセルと対応するフィルタリングされていないピクセルの差が、前記あらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加され、前記蓄積バッファが、フィルタリングされていないピクセルに前記ブロックに追加されるべきピクセル値の最大数を乗算することによって初期化される、請求項1から17のいずれか一項に記載の方法。
【請求項１９】
最終的にフィルタリングされたピクセルが、前記蓄積バッファ内の蓄積値を、前記ブロックに追加されるべきピクセル値の最大数で割ったものとして取得される、請求項18に記載の方法。
【請求項２０】
前記方法が条件に応じて適用され、前記条件が、
前記ブロックが非ゼロの残余信号を有すること、
前記ブロックのサイズ、
前記ブロックのアスペクト比、
前記ブロックの予測モード、
イントラ内の前記ブロックの予測モード、または
インター内の前記ブロックの予測モード
のうちの少なくとも1つを備える、請求項1から19のいずれか一項に記載の方法。
【請求項２１】
前記フィルタのパラメータおよび/または前記あらかじめ定義されたスキャンテンプレートが前記条件に依存する、請求項20に記載の方法。
【請求項２２】
前記方法が、ブロックの幅にブロックの高さを掛けたものとして取得される前記ブロックのサイズが4×4より大きい場合に適用される、請求項20に記載の方法。
【請求項２３】
前記ブロックの前記予測モードがインターであり、前記ブロックの幅と前記ブロックの高さが32以上の場合、前記方法が適用されない、請求項20に記載の方法。
【請求項２４】
前記ブロックの前記予測モードがインターであり、前記ブロックが非ゼロの残余信号を有する場合に前記方法が適用される、請求項20に記載の方法。
【請求項２５】
前記ブロックの前記予測モードがイントラの場合に前記方法が適用される、請求項20に記載の方法。
【請求項２６】
前記あらかじめ定義されたスキャンテンプレートに従って、前記再構築されたブロックの前記現在のピクセルと前記現在のピクセルのその隣接ピクセルを累積バッファにスキャンするステップと、
前記蓄積バッファ内のピクセルの変換を実行することによってスペクトル成分を取得するステップと、を備える、請求項1から25のいずれか一項に記載の方法。
【請求項２７】
前記変換がアダマール変換である、請求項1から26のいずれか一項に記載の方法。
【請求項２８】
前記変換が1D変換である、請求項1から27のいずれか一項に記載の方法。
【請求項２９】
予測されたブロックを処理するための方法であって、前記予測されたブロックが複数のピクセルを備え、
あらかじめ定義されたスキャンテンプレートに従って、前記予測されたブロックの現在のピクセル、および前記現在のピクセルのその隣接ピクセルをスキャンするステップと、
前記現在のピクセルとその隣接ピクセルに対して変換を実行することによってスペクトル成分を取得するステップと、
フィルタリングパラメータと前記スペクトル成分に基づいてフィルタリングされたスペクトル成分を取得するステップと、
前記フィルタリングされたスペクトル成分に対して逆変換を実行することによってフィルタリングされたピクセルを取得するステップと、
前記フィルタリングされたピクセルに基づいて、フィルタリングされた予測されたブロックを生成するステップと、
を備える、方法。
【請求項３０】
ルックアップテーブル(LUT)を使用することによって、前記フィルタリングされたスペクトル成分を取得するステップ、請求項29に記載の方法。
【請求項３１】
フィルタリングされたスペクトル成分F(i、σ)が
【数４】
2021530166.tif 000021
によって導出され、上式で、(i)がスペクトル成分のインデックスであり、R(i)が(i)インデックスに対応する前記スペクトル成分であり、σが前記フィルタリングパラメータであり、LUT(R(i)、σ)が前記ルックアップテーブル内の配列であり、THRがしきい値である、請求項30に記載の方法。
【請求項３２】
【数５】
2021530166.tif 000022
であり、mがスペクトル成分の数に等しい正規化定数である、請求項31に記載の方法。
【請求項３３】
前記フィルタリングパラメータが、コーデック量子化パラメータ(QP)に基づいて導出される、請求項30から32のいずれか一項に記載の方法。
【請求項３４】
前記フィルタリングパラメータσが、
σ=k*2(n*(QP-s))
によって導出され、QPが前記コーデック量子化パラメータであり、k、n、およびsが定数である、請求項33に記載の方法。
【請求項３５】
QP<=17の場合、前記フィルタリングパラメータσがゼロに等しく、前記予測されたブロックがフィルタリングなしでバイパスされる、請求項33に記載の方法。
【請求項３６】
THRがQP値に依存する、請求項31から35のいずれか一項に記載の方法。
【請求項３７】
THRが、
【数６】
2021530166.tif 000023
よって導出され、上式で、Cが1に近い値である、請求項36に記載の方法。
【請求項３８】
前記あらかじめ定義されたスキャンテンプレートが、前記予測されたブロック内の前記現在のピクセルの位置に対する空間オフセットまたはラスタオフセットのセットとして定義される、請求項29から37のいずれか一項に記載の方法。
【請求項３９】
前記あらかじめ定義されたスキャンテンプレートが、scanTmpl[4](y、x)={(0、0)、(0、1)、(1、0)、(1、1)}、のように定義される、請求項38に記載の方法。
【請求項４０】
前記あらかじめ定義されたスキャンテンプレートに従って、少なくとも1つのフィルタリングされたピクセルが元の位置に配置される、請求項29から39のいずれか一項に記載の方法。
【請求項４１】
すべてのフィルタリングされたピクセルが、前記あらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加され、フィルタリングされたスペクトル成分を取得する前記ステップの前に、前記蓄積バッファがゼロで初期化される、請求項29から40のいずれか一項に記載の方法。
【請求項４２】
最終的にフィルタリングされたピクセルが、前記蓄積バッファ内の蓄積値をピクセル数で割った値として取得され、前記蓄積バッファの現在の位置に追加されると、
前記フィルタリングされたピクセルに基づいて、前記フィルタリングされた予測されたブロックを生成する前記ステップが、前記最終的にフィルタリングされたピクセルに基づいて、前記フィルタリングされた予測されたブロックを生成するステップを備える、請求項41に記載の方法。
【請求項４３】
前記方法が条件に応じて適用され、前記条件が、
前記ブロックが非ゼロの残余信号を有すること、
前記ブロックのサイズ、
前記ブロックのアスペクト比、
前記ブロックの予測モード、
イントラ内の前記ブロックの予測モード、または
インター内の前記ブロックの予測モード
のうちの少なくとも1つを備える、請求項29から42のいずれか一項に記載の方法。
【請求項４４】
前記フィルタパラメータおよび/または前記あらかじめ定義されたスキャンテンプレートが前記条件に依存する、請求項43に記載の方法。
【請求項４５】
前記方法が、ブロック幅にブロック高さを掛けたものとして取得される前記ブロックのサイズが4×4より大きい場合、または前記ブロックの前記予測モードがイントラである場合、あるいは前記ブロックの前記予測モードがインターであり、前記ブロックが非ゼロの残余信号を有する場合に適用される、請求項43に記載の方法。
【請求項４６】
前記変換がアダマール変換である、請求項29から45のいずれか一項に記載の方法。
【請求項４７】
請求項1から46のいずれか一項に記載の方法を実施するための処理回路を備える、デコーダ。
【請求項４８】
請求項1から46のいずれか一項に記載の方法を実施するための処理回路を備える、エンコーダ。
【請求項４９】
請求項1から46のいずれか一項に記載の方法を実行するためのフィルタを備える、デコーダ。
【請求項５０】
請求項1から46のいずれか一項に記載の方法を実行するためのフィルタを備える、エンコーダ。
【請求項５１】
命令を備えるメモリストレージと、
前記メモリと通信している1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、請求項1から46のいずれか一項に記載の方法を実行するための前記命令を実行する、デコーダ。
【請求項５２】
命令を備えるメモリストレージと、
前記メモリと通信している1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、請求項1から46のいずれか一項に記載の方法を実行するための前記命令を実行する、エンコーダ。
【請求項５３】
コンピュータまたはプロセッサ上で実行されたときに請求項1から46の方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2018年7月2日に出願された「Apparatus and Method for Filtering in Video Coding」と題された米国仮出願第62/693,441号、2018年8月31日に出願された「Apparatus and Method for Filtering in Video Coding」と題された米国仮出願第62/725,845号、2018年9月16日に出願された「Apparatus and Method for Filtering in Video Coding」と題された米国仮出願第62/731,967号、2018年9月17日に出願された「Apparatus and Method for Filtering in Video Coding」と題された米国仮出願第62/731,972号、2018年9月24日に出願された「Filtering In Video Coding」と題された米国仮出願第62/735,722号、2018年11月8日に出願された「Apparatus and Method for Filtering in Video Coding」と題された米国仮出願第62/757,732号、2019年1月17日に出願された「Apparatus and Method for Filtering in Video Coding」と題された米国仮出願第62/793,866号の利益を主張し、これらの出願はすべて参照により本明細書に組み込まれる。
【０００２】
一般に、本発明は、ビデオコーディングの分野に関する。より具体的には、本発明は、ビデオコーディング用のフィルタ、再構築されたビデオフレームをフィルタリングするための方法、およびビデオブロックをフィルタリングする方法、ならびにビデオコーディング用のそのようなフィルタを備える符号化装置および復号化装置に関する。
【背景技術】
【０００３】
DVDディスクの登場以来、デジタルビデオは広く使用されてきた。送信前に、ビデオは符号化され、伝送媒体を使用して送信される。視聴者はビデオを受信し、ビデオを復号化および表示するために視聴デバイスを使用する。たとえば、解像度、色深度、およびフレームレートがより高いため、ビデオの品質は長年にわたって向上している。これは、現在ではインターネットおよびモバイル通信ネットワークを介して一般的に転送される、より大きいデータストリームにつながっている。
【０００４】
しかしながら、高解像度のビデオはより多くの情報を有しているため、通常、より多くの帯域幅を必要とする。帯域幅要件を削減するために、ビデオの圧縮を含むビデオコーディング標準が導入された。ビデオが符号化されると、帯域幅要件(または、ストレージの場合は対応するメモリ要件)が削減される。多くの場合、この削減には品質が犠牲になる。したがって、ビデオコーディング標準は、帯域幅要件と品質の間のバランスを見つけようとしている。
【０００５】
品質の向上と帯域幅要件の削減が継続的に必要とされているため、帯域幅要件を削減して品質を維持するソリューション、または帯域幅要件を維持しながら品質を向上させるソリューションが継続的に検索されている。さらに、妥協が許容される場合もある。たとえば、品質の向上が著しい場合は、帯域幅要件を増やすことが許容される場合がある。
【０００６】
高効率ビデオコーディング(HEVC)は、当業者に一般に知られているビデオコーディング標準の一例である。HEVCにおいて、コーディングユニット(CU)を予測ユニット(PU)または変換ユニット(TU)に分割する。Versatile Video Coding(VVC)次世代標準は、ITU-T Video Coding Experts Group(VCEG)とISO/IEC Moving Picture Experts Group(MPEG)標準化団体の最新の共同ビデオプロジェクトであり、Joint Video Exploration Team(JVET)として知られているパートナーシップにおいて協力している。VVCは、ITU-T H.266/Next Generation Video Coding(NGVC)標準とも呼ばれる。VVCでは、複数のパーティションタイプの概念が削除され、すなわち、最大変換長に対してサイズが大きすぎるCUの場合を除いて、CU、PU、およびTUの概念の分離が削除され、CUパーティション形状の柔軟性をサポートする。
【０００７】
イメージフィルタリングは、イメージの特定の特徴を強調するために、あるいは、フィルタリングされたイメージの客観的または知覚的な品質を向上させるために頻繁に使用される。イメージフィルタリングは、様々なノイズ源に対処する必要がある。したがって、品質向上のための様々な手法が提案され、現在使用されている。たとえば、適応ループフィルタ(ALF)方法では、再構築された各フレームが小さいブロック(スーパーピクセル)のセットに分割され、各ブロックは、フィルタリングされた再構築されたフレームの各ピクセルが、生成されたフィルタリングされたピクセルの位置の周囲の再構築されたフレームからのピクセルの接続領域内のいくつかのピクセルの加重和であるという点で、適応ループフィルタによってフィルタリングされる。重み係数(フィルタ係数とも呼ばれる)は中心対称の特性を有し、エンコーダ側からデコーダ側に送信される。多くの場合、エッジのサイズが大きいため、送信される重み係数の数が多すぎて効率的な処理ができない場合がある。重み係数の数が多いと、送信用の重み係数の数を減らすために、エンコーダ側において複雑なレート歪み最適化(RDO)が必要になる。デコーダ側では、ALFはユニバーサルマルチプライヤの実装を必要とし、これらのマルチプライヤは2×2のピクセルブロックごとにリロードされる必要がある。
【０００８】
したがって、複雑さを抑えて予測品質を改善し、したがってビデオコーディング効率を高めることを可能にする改善されたフィルタおよび方法が必要である。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の目的は、限られた複雑さでフィルタリング効率を改善し、したがってビデオコーディング効率を高めることを可能にする改善されたフィルタおよび方法を提供することである。
【００１０】
前述の目的および他の目的は、独立請求項の主題によって達成される。さらなる実装形態の形式は、従属請求項、説明、および図面から明らかである。
【００１１】
第1の態様によれば、本発明は、ビデオコーディング用のフィルタに関し、フィルタは、フィルタリングされたブロックを生成するためにブロックを処理するように構成され、ブロックは複数のピクセルを備える。フィルタは、命令を備えるメモリストレージと、メモリと通信している1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、あらかじめ定義されたスキャンテンプレートに従って現在のピクセルとその隣接ピクセルを線形バッファにロードすることと、線形バッファ内のピクセルに対して1D変換を実行することによってスペクトル成分を取得することと、各スペクトル成分にゲイン係数を乗算することによってフィルタリングされたスペクトル成分を取得することであって、ゲイン係数は、対応するスペクトル成分およびフィルタリングパラメータに依存する、ことと、フィルタリングされたスペクトル成分に対して逆1D変換を実行することによってフィルタリングされたピクセルを取得することと、フィルタリングされたピクセルに基づいてフィルタリングされたブロックを生成することとを行うための命令を実行する。
【００１２】
一例として、ブロック(または、フレーム)は予測されたブロックであり得、フィルタリングされたブロックはフィルタリングされた予測されたブロックである。別の例として、ブロック(または、フレーム)は再構築されたブロックであり得、フィルタリングされたブロックはフィルタリングされた再構築されたブロックである。
一例として、ゲイン係数は、対応するスペクトル成分とフィルタリングパラメータの関数である。フィルタリングパラメータは、コーデック量子化パラメータ(QP)から導出され得る。
別の例では、第1のスペクトル成分のゲイン係数G(i、σ)が1に等しい場合、第1のスペクトル成分はフィルタリングなしでバイパスされる。第1のスペクトル成分は、線形バッファ内のサンプルの合計または平均値に対応し、第1のスペクトル成分はDCに対応し得る。
他の例として、1つまたは複数のプロセッサが、LUTのテーブル値からN個のビットをドロップすることであって、Nは整数である、命令を実行する。Nは、QP値に依存してもよく、固定値であってもよい。
一例として、あらかじめ定義されたスキャンテンプレートは、再構築されたブロック内の現在のピクセルの位置を基準にした空間オフセットまたはラスタオフセットのセットとして定義される。隣接するピクセルを指すオフセットは、再構築されたブロック内にある。あらかじめ定義されたスキャンテンプレートに従って、少なくとも1つのフィルタリングされたピクセルが元の位置に配置され得る。あらかじめ定義されたスキャンテンプレートに従ってすべてのフィルタリングされたピクセルが蓄積バッファに追加され、フィルタリングされたスペクトル成分を取得する前に、蓄積バッファをゼロによって初期化することができる。最終的にフィルタリングされたピクセルが、蓄積バッファ内の蓄積値をピクセル数で割った値として取得され、蓄積バッファの現在の位置に追加されると、1つまたは複数のプロセッサは、最終的にフィルタリングされたピクセルに基づいて、フィルタリングされた再構築されたブロックを生成するように構成される。
任意で、すべてのフィルタリングされたピクセルと対応するフィルタリングされていないピクセルの差が、あらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加され、蓄積バッファは、フィルタリングされていないピクセルにブロックに追加されるべきピクセル値の最大数を乗算することによって初期化することができる。最終的にフィルタリングされたピクセルは、蓄積バッファ内の蓄積値を、ブロックに追加されるべきピクセル値の最大数で割ったものとして取得される。
【００１３】
第2の態様によれば、本発明は、フィルタリングされたブロックを生成するためにブロックを処理するための対応するフィルタリング方法に関し、ブロックは複数のピクセルを備える。各ピクセルはピクセル値に関連付けられている。フィルタリング方法は、あらかじめ定義されたスキャンテンプレートに従って現在のピクセルとその隣接ピクセルを線形バッファにロードするステップと、線形バッファ内のピクセルに対して1D変換を実行することによってスペクトル成分を取得するステップと、各スペクトル成分にゲイン係数を乗算することによってフィルタリングされたスペクトル成分を取得するステップであって、ゲイン係数は、対応するスペクトル成分およびフィルタリングパラメータに依存する、ステップと、フィルタリングされたスペクトル成分に対して逆1D変換を実行することによってフィルタリングされたピクセルを取得するステップと、フィルタリングされたピクセルに基づいてフィルタリングされたブロックを生成するステップとを備える。
【００１４】
一例として、ブロック(または、フレーム)は予測されたブロックであり得、フィルタリングされたブロックはフィルタリングされた予測されたブロックである。別の例として、ブロック(または、フレーム)は再構築されたブロックであり得、フィルタリングされたブロックはフィルタリングされた再構築されたブロックである。
一例として、ゲイン係数は、対応するスペクトル成分とフィルタリングパラメータの関数である。フィルタリングパラメータは、コーデック量子化パラメータ(QP)から導出され得る。
別の例では、第1のスペクトル成分のゲイン係数G(i、σ)が1に等しい場合、第1のスペクトル成分はフィルタリングなしでバイパスされる。第1のスペクトル成分はDC値に対応し得る。
他の例としては、ルックアップテーブル(LUT)に基づくスペクトル成分のフィルタリングがある。LUT生成は、少なくともいくつかの量子化パラメータ(QP)のための補助関数に基づくことができる。補助関数は、点(i、THR)と(a、0)を超える直線方程式であり得、a>0であり、aは、フィルタリングパラメータσまたはQP値に依存する。たとえば、QPのセットにおける最後のQPの場合、aは11に等しく、または、QPのセットにおける最後から2番目のQPの場合、aは9に等しい。
他の例として、本方法は、LUTのテーブル値からN個のビットをドロップするステップであって、Nは整数である、ステップをさらに含む。Nは、QP値に依存してもよく、固定値であってもよい。QPのセットからのより高いQPと比較して、より低いQPに対してNがより少なく選択される場合、たとえば、QPのセットにおける第1のQPの場合、Nは2に等しく、または、QPのセットからの残りのQPの場合、Nは3に等しい。あるいは、QPのQPのセットからのより低いQPと比較して、より高いQPに対してNがより高く選択される場合、たとえば、最後のQP、またはQPのセットにおける最後の2つのQPの場合、Nが4に等しく、または、QPのセットからの残りのQPの場合、Nは3に等しい。あるいは、QPのセットからの残りのQPと比較して、Nがより低いQPに対してより少なく、より高いQPに対してより高く選択される場合、たとえば、QPのセットにおける第1のQPの場合、Nは2に等しく、最後のQP、またはQPのセットにおける最後の2つのQPの場合、Nが4に等しく、または、QPのセットからの残りのQPの場合、Nは3に等しい。
一例として、あらかじめ定義されたスキャンテンプレートは、再構築されたブロック内の現在のピクセルの位置を基準にした空間オフセットまたはラスタオフセットのセットとして定義される。隣接するピクセルを指すオフセットは、再構築されたブロック内にある。あらかじめ定義されたスキャンテンプレートに従って、少なくとも1つのフィルタリングされたピクセルが元の位置に配置され得る。あらかじめ定義されたスキャンテンプレートに従ってすべてのフィルタリングされたピクセルが蓄積バッファに追加され、フィルタリングされたスペクトル成分を取得する前に、蓄積バッファをゼロによって初期化することができる。最終的にフィルタリングされたピクセルが、蓄積バッファ内の蓄積値をピクセル数で割った値として取得され、蓄積バッファの現在の位置に追加されると、1つまたは複数のプロセッサは、最終的にフィルタリングされたピクセルに基づいて、フィルタリングされた再構築されたブロックを生成するように構成される。
任意で、すべてのフィルタリングされたピクセルと対応するフィルタリングされていないピクセルの差が、あらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加され、蓄積バッファは、フィルタリングされていないピクセルにブロックに追加されるべきピクセル値の最大数を乗算することによって初期化することができる。最終的にフィルタリングされたピクセルは、蓄積バッファ内の蓄積値を、ブロックに追加されるべきピクセル値の最大数で割ったものとして取得される。
【００１５】
第3の態様によれば、本発明は、入力ビデオストリームから電流フレームを符号化するための符号化装置に関し、符号化装置は、本発明の第1の態様によるフィルタを備える。
【００１６】
第4の態様によれば、本発明は、受信ビットストリームから電流フレームを復号化するための復号化装置に関し、復号化装置は、本発明の第1の態様によるフィルタを備える。
【００１７】
第5の態様によれば、本発明は、コンピュータ上で実行されるときに第2の態様による方法を実行するためのプログラムコードを備えるコンピュータプログラムに関する。
【００１８】
したがって、フィルタが提供され、ビデオコーディングの効率を改善することができる。より具体的には、本発明の実施形態による改善されたフィルタは、フィルタパラメータシグナリングなしでフレーム自体からフィルタパラメータを推定し、したがって、イメージドメインにおいてフィルタリングするための重み係数をシグナリングする従来のフィルタよりも、必要とするシグナリングが著しく少ない。
【００１９】
本発明のさらなる実施形態は、以下の図面に関して説明される。
【図面の簡単な説明】
【００２０】
【図１Ａ】一実施形態によるフィルタを備える一実施形態による符号化装置を示す概略図である。
【図１Ｂ】一実施形態によるフィルタを備える一実施形態による符号化装置を示す概略図である。
【図２Ａ】一実施形態によるフィルタを備える一実施形態による復号化装置を示す概略図である。
【図２Ｂ】一実施形態によるフィルタを備える一実施形態による復号化装置を示す概略図である。
【図３Ａ】一実施形態によるフィルタに実装されたフィルタリングプロセスの態様を示す概略図である。
【図３Ｂ】一実施形態によるフィルタに実装されたフィルタリングプロセスの態様を示す概略図である。
【図３Ｃ】別の実施形態によるフィルタに実装されたフィルタリングプロセスの態様を示す概略図である。
【図４Ａ】正方形の再構築されたブロック内の異なるピクセル位置のテンプレートを示す図である。
【図４Ｂ】1つのピクセルの同等のフィルタ形状を示す図である。
【図４Ｃ】パディングの一例を示す図である。
【図４Ｄ】パディングの別の例を示す図である。
【図５Ａ】一実施形態によるフィルタリング方法のステップを示す流れ図である。
【図５Ｂ】一実施形態によるフィルタリング方法のステップを示す流れ図である。
【図６】SRAMに基づくハードウェアフィルタ設計の一例を示す図である。
【図７】フリップフロップに基づく2×2グループフィルタリングの例示的なハードウェア設計を示す図である。
【図８】4つの2×2グループフィルタリングの結果を同じ空間グループ最終フィルタの結果の再利用と組み合わせる例を示す図である。
【図９】一例として、LUTを最適化した結果を示す図である。
【図１０】一例として、フィルタ伝達関数における望ましくないギャップを示す図である。
【図１１】一例として、テーブルエントリが1つずつプロットされている同じテーブルを表す図である。
【図１２】一例として、補助関数を使用してギャップを排除することができる方法を示す図である。
【図１３】LUTを生成する間に2つの値から最大値をとることによってギャップを排除する例を示す図である。
【図１４】一例として、上述の方法を適用した後のフィルタ伝達関数を示す図である。
【図１５】セット内の5つのQPに依存するフィルタ伝達関数の例を示す図である。
【図１６】対応するテーブルに基づくセット内の5つのQPのフィルタ伝達関数の例を示す図である。
【図１７】対応するテーブルに基づくセット内の5つのQPのフィルタ伝達関数の例を示す図である。
【図１８】一実施形態による装置の例示的な構造を示す概略図である。
【発明を実施するための形態】
【００２１】
様々な図面において、同一または機能的に同等の機能に対して同一の参照記号が使用される。
【００２２】
以下の説明では、本開示の一部を形成し、例示として、本発明が配置され得る特定の態様が示されている添付の図面を参照する。本発明の範囲から逸脱することなしに、他の態様が利用され得、構造的または論理的変更が行われ得ることが理解される。したがって、本発明の範囲は添付の特許請求の範囲によって定義されるので、以下の詳細な説明は限定的な意味で解釈されるべきではない。
【００２３】
たとえば、説明された方法に関連する開示は、その方法を実行するように構成された対応するデバイスまたはシステムにも当てはまる可能性があり、逆もまた同様であることが理解される。たとえば、特定の方法ステップが説明される場合、対応するデバイスは、たとえそのようなユニットが図面において明示的に説明または図示されていなくても、説明された方法ステップを実行するためのユニットを含み得る。さらに、本明細書に記載の様々な例示的態様の特徴は、特に断りのない限り、互いに組み合わせることができることが理解される。
【００２４】
図1Aは、一実施形態によるフィルタ120を備える一実施形態による符号化装置100を示している。符号化装置100は、複数のフレーム(本明細書では画像またはイメージとも呼ばれる)を備えるビデオ信号のフレームのブロックを符号化するように構成され、各フレームは複数のブロックに分割可能であり、各ブロックは複数のピクセルを備える。一実施形態では、ブロックは、マクロブロック、コーディングツリーユニット、コーディングユニット、予測ユニット、および/または予測ブロックであり得る。
【００２５】
本開示における「ブロック」という用語は、任意のタイプのブロックまたは任意の深度のブロックに使用され、たとえば、「ブロック」という用語は、ルートブロック、ブロック、サブブロック、リーフノードなどに含まれるが、これらに限定されない。コード化されるブロックは、必ずしも同じサイズである必要はない。1つの画像は異なるサイズのブロックを含み得、ビデオシーケンスの異なる画像のブロックラスタも異なる場合がある。
【００２６】
図1Aに示される例示的な実施形態では、符号化装置100は、ハイブリッドビデオコーディングエンコーダの形態で実装される。通常、ビデオ信号の第1のフレームはイントラフレームであり、これはイントラ予測のみを使用して符号化される。この目的のために、図1Aに示される符号化装置100の実施形態は、イントラ予測のためのイントラ予測ユニット154を備える。イントラフレームは、他のフレームからの情報なしで復号化することができる。イントラ予測ユニット154は、イントラ推定ユニット152によって提供される情報に基づいて、ブロックのイントラ予測を実行することができる。
【００２７】
第1のイントラフレームに続く後続のフレームのブロックは、モード選択ユニット160によって選択されるように、インター予測またはイントラ予測を使用してコード化することができる。この目的のために、図1Aに示される符号化装置100は、インター予測ユニット144をさらに備える。一般に、インター予測ユニット144は、インター推定ユニット142によって提供される動き推定に基づいてブロックの動き補償を実行するように構成することができる。
【００２８】
さらに、図1Bに示されるハイブリッドエンコーダの実施形態における、イントラ予測またはインター予測から取得される予測信号は、フィルタ145によってさらにフィルタリングされる。
【００２９】
さらに、図1Aおよび図1Bに示されるハイブリッドエンコーダの実施形態では、残余計算ユニット104は、元のブロックとその予測との間の差、すなわち、イントラ/インター画像予測の予測エラーを定義する残余ブロックを決定する。この残余ブロックは、変換ユニット106によって(たとえば、DCTを使用して)変換され、変換係数は量子化ユニット108によって量子化される。量子化ユニット108の出力、ならびに、たとえばイントラ予測ユニット154、インター予測ユニット144、およびフィルタ120によって提供されるコーディングまたはサイド情報は、エントロピ符号化ユニット170によってさらに符号化される。
【００３０】
ハイブリッドビデオエンコーダは通常、デコーダ処理を複製して、両方が同じ予測を生成するようにする。したがって、図1に示される実施形態では、逆量子化ユニット110および逆変換ユニットは、変換ユニット106および量子化ユニット108の逆演算を実行し、残余ブロックの復号化された近似を複製する。次いで、復号化された残余ブロックデータは、再構築ユニット114によって、予測の結果、すなわち予測ブロックに追加される。次いで、再構築ユニット114の出力を、イントラ予測に使用される線形バッファ116に提供することができ、フィルタ120によってさらに処理され、これは、以下でより詳細に説明される。最終的な画像は、復号化された画像バッファ130に記憶され、後続のフレームのインター予測に使用することができる。
【００３１】
図2Aは、一実施形態によるフィルタ220を備える一実施形態による復号化装置200を示している。復号化装置200は、符号化されたビデオ信号のフレームのブロックを復号化するように構成される。図2Aに示される実施形態では、復号化装置200は、ハイブリッドデコーダとして実装されている。エントロピ復号化ユニット204は、符号化された画像データのエントロピ復号化を実行し、これは、一般に、特にイントラ予測ユニット254およびインター予測ユニット244、ならびにフィルタ220などの復号化装置200の他の構成要素に必要な予測エラー(すなわち、残余ブロック)、動きデータ、および他のサイド情報を備えることができる。一般に、図2Aに示される復号化装置200のイントラ予測ユニット254およびインター予測ユニット244は、モード選択ユニット260によって選択され、図1に示される符号化装置100のイントラ予測ユニット154およびインター予測ユニット144と同様に機能し、したがって、符号化装置100と復号化装置200によって同一の予測を生成することができる。復号化装置200の再構築ユニット214は、フィルタリングされた予測されたブロックと、逆量子化ユニット210および逆変換ユニット212によって提供される残余ブロックとに基づいてブロックを再構築するように構成される。符号化装置100の場合のように、再構築されたブロックは、イントラ予測に使用される線形バッファ216に提供することができ、フィルタリングされたブロック/フレームは、インター予測のためにフィルタ220によって復号化された画像バッファ230に提供することができる。
【００３２】
図2Bに示されるように、図2Bに示されるハイブリッドエンコーダの実施形態における予測信号は、イントラ予測またはインター予測から取得され、フィルタ264によってさらにフィルタリングされる。
【００３３】
すでに上述したように、フィルタ120、220はフレームレベルにおいて使用され得、たとえば、フィルタ120、220は、フィルタリングされた再構築されたフレームを生成するために、復号化された再構築されたビデオストリームから再構築されたフレームを処理するように構成され得、再構築されたフレームは複数のブロックを含む。フィルタ120、220はまた、フレーム全体を待たずに、ブロック再構築の直後にブロックレベルにおいて使用され得、たとえば、フィルタ120、220は、フィルタリングされた再構築されたブロックを生成するために再構築されたブロックを処理するように構成され得、再構築されたブロックは複数のピクセルを含む。
【００３４】
フィルタ120、220、145、または264は、1つまたは複数のプロセッサ(あるいは、1つまたは複数の処理ユニット)を備える。以下でより詳細に説明されるように、1つまたは複数のプロセッサ(あるいは、1つまたは複数の処理ユニット)は、あらかじめ定義されたスキャンテンプレート(言い換えれば、スキャン順序またはスキャンパターン)に従って現在のピクセルとその隣接ピクセルを線形バッファにロードすることと、線形バッファ内のピクセルごとに1D変換を実行することによってスペクトル成分を取得することと、各スペクトル成分にゲイン係数を乗算することによってフィルタリングされたスペクトルを取得することであって、ゲイン係数は、対応するスペクトル成分およびフィルタリングパラメータに依存する、ことと、フィルタリングされたスペクトルに対して逆1D変換を実行することによってフィルタリングされたピクセルを取得することと、前の処理ステップにおいて推定されたフィルタリングされたピクセルに基づいて、フィルタリングされた再構築されたブロックを生成することとを行うように構成される。一例では、ゲイン係数は、対応するスペクトル成分とフィルタリングパラメータに依存する。別の例では、ゲイン係数は、1つまたは複数のフィルタリングパラメータおよび1つまたは複数の対応するスペクトル成分に依存する。他の例では、それぞれのゲイン係数は、1つまたは複数のフィルタリングパラメータおよび対応するスペクトル成分、ならびにスペクトル成分の左側および右側に隣接するスペクトル成分に依存し得る。
【００３５】
本開示は、再構築されたフレームから再構築されたブロックのローカルおよび/または非ローカルフィルタリングを実行する損失のあるビデオコーデックのためのインループフィルタを説明する。一例によれば、再構築されたフレームは、重なり合わない小さい長方形のブロック(CUブロック)のセットに分割される。次のステップでは、再構築された各ブロック(再構築されたCUブロック)は、他の再構築されたブロックとは独立して周波数ドメインにおいてフィルタリングされる。フィルタは、変換と再構築の後に適用することもでき、フィルタリングされた結果は、出力ならびに空間的および時間的予測の両方に使用される。
【００３６】
別の例として、本開示は、再構築されたフレームの予測ブロックのローカルおよび/または非ローカルフィルタリングを実行する損失のあるビデオコーデックのための予測フィルタを説明する。
【００３７】
第1のステップにおいて、再構築されたブロック内のすべてのピクセルを、互いに独立して処理することができる。ピクセルr(0)の処理には、隣接ピクセルが使用される。たとえば、図3Aに示されるように、ピクセルr(1)からr(7)が使用され、ピクセルr(0)からr(7)が1つの処理グループを形成する。
【００３８】
図3Aまたは図3Bは、一実施形態によるフィルタに実装されたフィルタリングプロセスの態様を示す概略図300、300'を示している。ステップ302、302'において、ブロックからの現在のピクセルおよびその隣接ピクセルは、あらかじめ定義されたスキャンテンプレートに従って線形バッファにロードされる。一例として、ブロックは予測されたブロックであり得る。別の例として、ブロックは再構築されたブロックであり得る。
【００３９】
ステップ304、304'において、スペクトル成分Rを取得するために、線形バッファ内のピクセルr(0)およびその隣接ピクセルr(1)からr(7)に対して1D変換が実行される。
R=1D_Transform(r)
【００４０】
一例として、1D変換はアダマール変換である可能性がある。
【００４１】
行の4つのピクセル(たとえば、図3Bの例のようにピクセルA、B、C、D)に対して1D変換を実行するか、または空間的に配置されたピクセルA、B、C、Dに対して2D変換を実行するかは、特定の実装形態に関連することを理解されたい。2×2ブロックに配置される4つのピクセルA、B、C、Dに2D変換を適用すると、行として受け取られる4つのピクセルA、B、C、Dに1D変換を適用した場合と同じ結果が得ることができる。ステップ306、306'において、フィルタリングされたスペクトル成分F(i)を取得するために、各スペクトル成分R(i)と対応するゲイン係数G(i、σ)の乗算に基づいてフィルタリングが周波数ドメインにおいて実行される。
【００４２】
すべてのスペクトル成分のゲイン係数のセットは、フィルタの周波数インパルス応答である。
F(i)=R(i)*G(i、σ)  (1)
【００４３】
一例では、ゲイン係数は、対応するスペクトル成分とフィルタリングパラメータに依存する。別の例では、ゲイン係数は、1つまたは複数のフィルタリングパラメータおよび1つまたは複数の対応するスペクトル成分に依存する。他の例では、それぞれのゲイン係数は、1つまたは複数のフィルタリングパラメータおよび対応するスペクトル成分、ならびにスペクトル成分の左側および右側に隣接するスペクトル成分に依存し得る。各ゲイン係数が再構築されたブロックのスペクトル成分とフィルタリングパラメータの関数である場合、または予測されたブロックとフィルタリングパラメータの関数スペクトル成分である場合、ゲイン係数G(i、σ)は、例として次の式によって表すことができる。
【００４４】
【数１】
2021530166.tif 000003
【００４５】
上式で、(i)はスペクトル成分のインデックスであり、R(i)は(i)インデックスに対応するスペクトル成分であり、G(i、σ)はR(i)に対応するゲイン係数であり、σはフィルタリングパラメータであり、mはスペクトル成分の数に等しい正規化定数である。たとえば、mは1、2、3、4…である。異なるスペクトル成分は、同じゲイン係数を有してもよく、異なるゲイン係数を有してもよい。
【００４６】
変換ブロックの入力サンプルの平均(FFT、DCT、DSTなど)または合計(アダマール)に対応するスペクトル成分(通常はDC値に対応する第1の成分)を有する変換の場合、フィルタリングされたブロックの平均輝度の変化を回避するために、1に等しいフィルタリング係数を有することが有利な場合がある。これは、DC値に対応する第1のスペクトル成分をバイパスすること(フィルタリングなし)を意味する。
【００４７】
フィルタリングパラメータとしてのσは、たとえば次の式を使用して、エンコーダ側とデコーダ側のコーデック量子化パラメータ(QP)から導出され得る。
σ=k*2(n*(QP-s))
上式で、k、n、およびsは、例として、k=2.64、n=0.1296、s=11の値を有する定数である。異なるスペクトル成分は、同じフィルタリングパラメータを有してもよく、異なるフィルタリングパラメータを有してもよい。
【００４８】
パラメータk、n、およびsは、最新のビデオコーディング標準では、QP値が6ずつ増加するたびに2倍になる量子化ステップサイズにシグマを依存させるように選択することができる。パラメータがk=0.5、
【００４９】
【数２】
2021530166.tif 000004
【００５０】
およびs=0である例では、σパラメータは次のように導出される。
【００５１】
【数３】
2021530166.tif 000005
【００５２】
量子化スケーリング行列は、ビデオ圧縮品質を向上させるために広く使用されている。この方法では、QPに基づいて導出された量子化ステップサイズに、ビットストリームにおいて送信されるスケーリング係数が乗算される。そのような方法の場合、σパラメータの導出は、特定のQPに使用される実際のスケーリングされた量子化ステップサイズに基づく場合がある。
σ=k*Quantization_step_size(QP-s)
【００５３】
定数k、n、およびsは、σ計算の固定値を有してもよく、QP、ブロックのサイズと形状、現在のブロックの予測のタイプ(インター/イントラ)に応じて異なる値を有してもよい。たとえば、サイズが32×32以上のイントラ予測された正方形ブロックの場合、パラメータsはs=11+8=19として計算され得る。同等のフィルタパラメータσの値がより小さいため、フィルタが柔らかくなり、通常は平坦な領域に対応する大きい正方形のイントラ予測されたブロックにより適している。別の例として、kはピクセルのビット深度kmod=k*(1<<(bit_depth-8))に基づいて修正され得る。
【００５４】
方法300、300'によれば、周波数ごとのゲイン係数は、再構築されたピクセルまたは予測されたピクセルのスペクトル成分から導出される。したがって、方法300、300'は、フィルタリングパラメータの送信を必要とせず、追加のシグナリングなしで、任意の再構築されたブロックまたは予測されたブロックに適用することができる。
【００５５】
LUTの詳細について説明する。
【００５６】
フィルタリングは、常に1未満であるスケーリング係数でのスペクトル成分R(i)の乗算を含意する点に留意されたい。R(i)の高い値では、スケーリング係数が1に近いことも観察できる。これらの観察に基づいて、スペクトルフィルタリングは、フィルタリング動作から乗算と除算を除外することができるルックアップテーブルを使用して実装される。
【００５７】
スペクトルゲイン係数は1未満であるため、次の式に従って、ショートルックアップテーブル(LUT)の読取りに基づいてフィルタリングを実装することができる。
【００５８】
【数４】
2021530166.tif 000006
【００５９】
上式で、
【００６０】
【数５】
2021530166.tif 000007
【００６１】
である。(i)はスペクトル成分のインデックスであり、R(i)は(i)インデックスに対応するスペクトル成分であり、σはフィルタリングパラメータであり、THRはしきい値であり、mはスペクトル成分の数に等しい正規化定数である。たとえば、mは1、2、3、4…である。
【００６２】
例として、THRは次の式から計算され得る。
【００６３】
【数６】
2021530166.tif 000008
【００６４】
上式で、Cは1に近い値、たとえば0.8または0.9である。LUTサイズのしきい値を減らすために、THRはQP値に依存する場合がある。LUTサイズをさらに小さくするために、フィルタリングされた小さい値をゼロに置き換えるために第2のしきい値が導入され得る。その場合、フィルタリングされたスペクトル成分はF(i、σ)であり、さらに次のように導出される。
【００６５】
【数７】
2021530166.tif 000009
【００６６】
上式で、THR2は、フィルタリングされたスペクトル成分がゼロと見なされることを下回るしきい値を定義する。第2のTHR2は、QP値に依存して定義することもできる。
【００６７】
周波数ドメインにおいてフィルタリングした後、ステップ308において、フィルタリングされたピクセルfを取得するために、フィルタリングされたスペクトル成分に対して逆1D変換が実行される。
f=1D_Inverse_Transform(F)
【００６８】
ステップ310、310'において、逆1D変換の結果は、フィルタリングされた再構築されたピクセルまたはフィルタリングされたピクセルの線形バッファに配置される。
【００６９】
ステップ312、312'(図3Aまたは図3Bには示されていない)において、フィルタリングされたブロックは、前の処理ステップで推定されたフィルタリングされたピクセルに基づいて生成される。一例として、フィルタリングされたブロックは、フィルタリングされた予測されたブロックであり得る。別の例として、フィルタリングされたブロックは、フィルタリングされた再構築されたブロックであり得る。
【００７０】
一実施形態として図3Aに示されるように、フィルタリングステップ306の後、フィルタリングされたピクセルf(0)は、あらかじめ定義されたスキャンテンプレートに従ってその元の位置に配置される。他のフィルタリングされたサンプルf(1)〜f(7)は使用されない。別の実施形態では、複数のフィルタリングされたピクセル、たとえば、フィルタリングされたサンプルの線形バッファからのすべてのフィルタリングされたピクセルは、図3Aのステップ302において使用されるあらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加される。蓄積バッファは、フィルタリングステップの前にゼロで初期化される必要がある。最後の正規化ステップにおいて、最終的にフィルタリングされたピクセルは、蓄積バッファ内の蓄積値を、蓄積バッファの現在の位置に追加されたピクセル数、言い換えれば、前の処理ステップで蓄積バッファの現在の位置に追加されたピクセル値の数で割った値として取得される。次いで、フィルタリングされた再構築されたブロックまたは予測されたブロックが、最終的にフィルタリングされたピクセルに基づいて生成される。
【００７１】
別の実施形態として、フィルタは、イントラコーディングユニット(CU)フィルタリングおよびインターコーディングユニット(CU)フィルタリングの両方に対して同じ実装形態を有する。
【００７２】
アダマール変換ドメインフィルタは、4×4ブロックを除き、スライス量子化パラメータが17より大きい場合、変換係数が非ゼロの輝度再構築されたブロックに常に適用される。フィルタパラメータはコード化された情報から明示的に導出される。提案されたフィルタは、適用される場合、ブロックの再構築の直後に復号化されたサンプルに対して実行される。フィルタリングされた結果は、出力ならびに空間的および時間的予測の両方に使用される。
【００７３】
図3Cに概略的に提示されているように、フィルタリングプロセスについて説明する。
【００７４】
再構築されたブロックからのピクセルごとに、ピクセル処理は以下のステップを備える。
【００７５】
スキャンパターンに従って、現在のピクセルを含む処理ピクセルの周囲の4つの隣接ピクセルをスキャンする。
【００７６】
読取りピクセルの4ポイントアダマール変換。
【００７７】
式(1)および(2)に基づくスペクトルフィルタリング。
【００７８】
DC値に対応する第1のスペクトル成分は、フィルタリングなしでバイパスされる。
【００７９】
フィルタリングされたスペクトルの逆4ポイントアダマール変換。
【００８０】
フィルタリングステップの後、フィルタリングされたピクセルは蓄積バッファへの元の位置に配置される。
【００８１】
ピクセルのフィルタリングが完了した後、蓄積値は、ピクセルフィルタリングごとに使用される処理グループの数によって正規化される。ブロックの周囲に1つのサンプルのパディングを使用しているため、処理グループの数はブロック内のピクセルごとに4に等しく、正規化は2ビットで右シフトすることによって実行される。
【００８２】
最大の並列処理が必要な場合は、ブロック内のすべてのピクセルを個別に処理することができることがわかる。
【００８３】
この実施形態では、しきい値THRは、あらかじめ定義された値、たとえば128に設定され、単純な実装形態の場合、QPごとに7ビット値の128(1<<7)エントリを記憶する必要がある。
【００８４】
LUTのサイズは、オンチップメモリ要件の量と、フィルタのハードウェア実装形態のコストに影響する。オンチップストレージの量を減らすために、LUTは一定の間隔8でQP20から始まる限られたQPのセットに対してのみ計算される。合計5つのあらかじめ定義されたLUT(5つのQPグループ用)が記憶される。現在のブロックをフィルタリングするために、CUのQPがテーブルから最も近いものに丸められる。
【００８５】
LUTサイズをさらに削減するために、LUT生成中にN個の最下位ビットがドロップ(または、無視)される。これにより、スパースなテーブル表現が可能になる。
【００８６】
例示的な実装形態Aの場合、Nは2に等しく、7-2=5ビットのテーブル深度(7ビット値の32エントリ)になる。
【００８７】
例示的な実装形態Bの場合、Nは3に等しく、7-3=4ビットのテーブル深度(7ビット値の16エントリ)になる。
【００８８】
したがって、LUTストレージ全体に必要な合計メモリサイズは次のとおりである。
【００８９】
例示的な実装形態Aの場合:5×32×7ビット=1120ビット=140バイト。
【００９０】
例示的な実装形態Bの場合:5×16×7ビット=560ビット=70バイト。
【００９１】
例示的な実装形態Bは、LUT全体を1つの16バイトのSSEレジスタに記憶する能力のために、ソフトウェア実装形態における並列アクセスを可能にするために16バイトのLUTサイズを対象としており、したがってこの構成が提案される。
【００９２】
アダマール変換が使用され、フィルタリングされたピクセルがあらかじめ定義されたスキャンテンプレートに従って元の位置に配置される場合、次の疑似コードは方法300のフィルタリングプロセスを説明する。
//再構築/予測されたピクセルスキャン
const int x0=pIn[p0];
const int x1=pIn[p1];
const int x2=pIn[p2];
const int x3=pIn[p3]; // p0-p3はスキャンパターンを定義する
//1Dフォワードアダマール変換
const int y0=x0+x2;
const int y1=x1+x3;
const int y2=x0-x2;
const int y3=x1-x3;
const int t0=y0+y1;
const int t1=y0-y1;
const int t2=y2+y3;
const int t3=y2-y3;
//周波数ドメインフィルタリング
const int z0=pTbl[t0];
const int z1=pTbl[t1];
const int z2=pTbl[t2];
const int z3=pTbl[t3];
//逆方向アダマール変換
const int iy0=z0 + z2;
const int iy1=z1 + z3;
const int iy2=z0 - z2;
const int iy3=z1 - z3;
//出力されたフィルタリングされたピクセル
pOut[p0_out]=iy0+iy1;
【００９３】
アダマール変換が使用され、フィルタリングされたサンプルの線形バッファからの複数のフィルタリングされたピクセルが蓄積バッファに追加される場合、次の疑似コードはこのシナリオのフィルタリングプロセスを説明する。
//再構築/予測されたピクセルスキャン
const int x0=pIn[p0];
const int x1=pIn[p1];
const int x2=pIn[p2];
const int x3=pIn[p3]; // p0-p3はスキャンパターンを定義する
//1Dフォワードアダマール変換
const int y0=x0+x2;
const int y1=x1+x3;
const int y2=x0-x2;
const int y3=x1-x3;
const int t0=y0+y1;
const int t1=y0-y1;
const int t2=y2+y3;
const int t3=y2-y3;
//周波数ドメインフィルタリング
const int z0=pTbl[t0];
const int z1=pTbl[t1];
const int z2=pTbl[t2];
const int z3=pTbl[t3];
//逆方向アダマール変換
const int iy0=z0+z2;
const int iy1=z1+z3;
const int iy2=z0-z2;
const int iy3=z1-z3;
【００９４】
代替の実施形態として、蓄積バッファは、フィルタリングされていないピクセル値にブロックに追加されるべきピクセル値の最大数を乗算することによって初期化されるべきである。ブロックに追加されるべきピクセル値の最大数は、スキャンテンプレートに基づいて定義される。実際、スキャンテンプレートは、位置ごとに追加されるピクセル値の数を定義する。それに基づいて、ブロック内のすべての位置から最大数を選択して、蓄積バッファの初期化中に使用することができる。次いで、各蓄積ステップ中に、フィルタリングされていないピクセル値が対応するフィルタリングされた値から減算され、蓄積バッファに追加される。
//フィルタリングされたピクセルの蓄積
pOut[p0]+=iy0+iy1 // p0-p3はスキャンパターンを定義する
pOut[p1]+=iy0-iy1
pOut[p2]+=iy2+iy3
pOut[p3]+=iy2-iy3
蓄積バッファに配置する前に蓄積されたピクセル値のビット深度を減らすために、逆方向変換の結果が変換のサイズ(m)で正規化され得る。
pOut[p0]+=((iy0+iy1)>>HTDF_BIT_RND4);
pOut[p1]+=((iy0-iy1)>>HTDF_BIT_RND4);
pOut[p2]+=((iy2+iy3)>>HTDF_BIT_RND4);
pOut[p3]+=((iy2-iy3)>>HTDF_BIT_RND4);
上式で、HTDF_BIT_RND4は、変換サイズが4の場合、2に等しくなる。
【００９５】
この実施形態は、システムが現在の位置に追加されたピクセル数を記憶することを回避することを可能にし、追加されたピクセル値の最大数がたとえば2、4、8などの累乗である場合、対応して最後の正規化ステップおよび蓄積バッファ初期化ステップにおけるシフト演算による置換除算および乗算を可能にする。正規化段階の精度を維持するために、次の方法で実行することができる。
//正規化
pFiltered[p0]=CLIP3(0,(1<<BIT_DEPTH)-1,(pOut[p0]+HTDF_CNT_SCALE_RND)>>HTDF_CNT_SCALE);
上式で、HTDF_CNT_SCALEは、蓄積バッファに配置されたピクセル量のLog2であり、たとえば4の量の場合、HTDF_CNT_SCALEは2に等しく、HTDF_CNT_SCALE_RNDは(1<<(HTDF_CNT_SCALE-1))に等しくなる。CLIP3は、フィルタリングされたサンプルが最小サンプル値と最大サンプル値の間の許容範囲内にあることを保証するクリッピング機能である。
【００９６】
フィルタリングされたブロックの平均輝度の変化を回避するために上で述べたように、第1のスペクトル成分(DC値に対応する)のフィルタリングをスキップすることが有利である可能性がある。これにより、フィルタの実装形態をさらに簡素化することができる。この場合のフィルタリングステップは次のとおりである。
//周波数ドメインフィルタリング
const int z0=t0;
const int z1=pTbl[t1];
const int z2=pTbl[t2];
const int z3=pTbl[t3];
【００９７】
再構築されたブロックまたは予測されたブロック内のピクセルごとに、ステップ302および310の再構築されたブロックまたは予測されたブロック内のフィルタリングピクセルの位置に基づいてスキャンテンプレートが選択される。スキャンテンプレートは、すべてのピクセルが再構築されたCUまたは予測されたCU内にあり、処理ピクセルの近くに配置されることを保証するように選択される。テンプレート内では、任意のスキャン順序を使用することができる。たとえば、あらかじめ定義されたスキャンテンプレートは、再構築されたブロックまたは予測されたブロック内の現在のピクセルの位置に対する空間オフセットまたはラスタオフセットのセットとして定義され、隣接するピクセルを指すオフセットは、再構築されたブロックまたは予測されたブロックの内側にある。以下はスキャンテンプレートの例である。
(0、0)、(0、1)、(1、0)、(1、1)
【００９８】
図4Aは、正方形ブロック(たとえば、正方形CUの予測されたブロック、または正方形CUの再構築されたブロック)内の異なるピクセル位置のテンプレートの例を示している。この図によると、境界ピクセルは4ポイント変換に基づいてフィルタリングすることができ、中央ピクセルは8ポイント変換に基づいてフィルタリングすることができる。
【００９９】
一方の辺のサイズがもう一方の辺のサイズよりも大きい長方形の再構築されたブロックまたは予測されたブロックの場合、スキャンは長辺に沿って実行する必要がある。たとえば、水平の長方形のブロックの場合、次のスキャン順序
(0、-3)、(0、-2)、(0、-1)、(0、0)、(0、1)、(0、2)、(0、3)、(0、4)、
を使用することができ、各ペア(y、x)において、フィルタリング再構築されたブロックまたは予測されたブロック内のフィルタリングピクセルの位置に対して、xは水平オフセットであり、yは垂直オフセットである。
【０１００】
提案されたフィルタは、条件に応じて選択的に適用することができる。
・残余信号が非ゼロの再構築されたブロックまたは予測されたブロックの場合、
・ブロックサイズに依存し、たとえば、小さい再構築されたブロックまたは予測されたブロックの場合(最小サイズがしきい値未満)、
・再構築されたブロックまたは予測されたブロックのアスペクト比に依存する、
・たとえば、インター予測されたブロックのみにフィルタを適用することによって、再構築されたブロックまたは予測されたブロックの予測モード(イントラまたはインター)に依存する、または
・上記の条件の任意の組合せ。
たとえば、小さいブロックの処理を回避するために、ブロックサイズが4×4ピクセル以下の場合、フィルタをバイパスする(適用しない)ことができる。これにより、通常は最小のブロック処理に対応する最悪の場合の複雑さが軽減される。
別の例として、フィルタは非ゼロの残余信号を有するブロックにのみ適用される。フィルタは量子化エラーを改善することを目的としているため、量子化または残余が使用された場合、これは有益である。ブロックに残余がない場合は、予測が適切であり、それ以上のフィルタリングは必要ないことを示している可能性がある。
別の例として、イントラ予測は通常インター予測よりも悪いため、フィルタは非ゼロの残余の存在とは無関係にイントラ予測されたブロックに適用することができ、ブロックに非ゼロの残余信号がある場合にのみインター予測されたブロックに適用することができる。
【０１０１】
フィルタパラメータのシグマとスキャンパターンは、上記の条件によって異なる場合がある。
【０１０２】
図4Bは、例示的なスキャンテンプレート(0、0)、(0、1)、(1、0)、(1、1)について、現在のブロック内の1つのピクセルを考慮した同等のフィルタ形状を示している。現在のピクセルのフィルタリングには、3×3ピクセルの正方形の領域が使用される(現在のピクセルは、3×3の正方形の中央に濃い灰色でマークされている)。フィルタリングされたピクセルは、4つの2×2グループからの変換ドメインフィルタリングされたサンプルを組み合わせることによって取得される。現在のピクセルがブロック境界(たとえば、上部境界)に配置される場合、左上と右上の2×2グループは使用できず、2つの2×2グループ(左下と右下)のみをフィルタリングに使用できることが理解される。さらに、現在のピクセルがブロックコーナー(たとえば、左上のコーナー)に配置される場合、フィルタリングに使用できる2×2グループは1つだけ(右下)である。
【０１０３】
境界ピクセルとコーナーピクセルにさらに4つの2×2グループを使用することによってフィルタリングの品質を向上させるために、現在のブロックを追加のサンプルによってパディングすることができる。図4Cは、左側と上側のパディングの例を示している。パディングサンプルは、すでに再構築されたブロックから取得することができる。
【０１０４】
ブロック内のすべてのピクセルのフィルタリングプロセスをさらに統合するために(現在のブロック内のすべてのピクセルのフィルタリングに4つの2×2グループが使用される)、図4Dに示されるように、左上のパディングに加えて、現在のブロックを右下のパディングによって拡張することもできる。フィルタリングの統合は、コーナーピクセルおよび/または境界ピクセルの特別な処理ケースを除外することによって実装形態を簡素化するため、有益である。
【０１０５】
パディングサンプルは、好ましくは、すでに再構築されたブロックからの調整された隣接サンプルから取得される。最先端のビデオコーデックでは、それらのすでに再構築されたブロックは、ブロックの再構築の順序に応じて、現在のブロックの左側または上側、あるいは右側または下側に配置することができる。調整サンプルからのより多くの情報を使用して、フィルタリング品質を向上させ、ブロック間の移行をよりスムーズにする。
【０１０６】
調整されたブロックまたは以前に再構築されたブロックから再構築されたサンプルを取得するには、ハードウェアまたはソフトウェアの実装形態に追加のメモリ負荷が必要になる場合がある。追加のメモリを最小化または除外するには、現在のブロックの境界に調整された隣接ブロックの1つ、2つ、または複数の行と列から通常取得される、現在のブロックのイントラ予測を目的としたサンプルを使用することが有益である。これらのサンプルは通常、イントラ予測に簡単にアクセスできるように高速メモリ(「線形」バッファとしても知られる)に記憶され、イントラ予測の参照サンプルと呼ばれる。
【０１０７】
いくつかの実装形態では、イントラ予測を実行する前に、参照サンプル(イントラ参照サンプル)が、たとえば、スムージング、シャープニング、デリンギング、またはバイラテラルフィルタリングによって、予測の前に前処理される点にさらに留意されたい。この場合、現在のブロックのパディングに前処理されたサンプルを使用することが有益な場合がある。
【０１０８】
調整されたブロック再構築の順序のために、パディングされた領域の一部のサンプルが利用できない場合、図4Dに示されるように、必要なサンプルを現在のブロック拡張境界ピクセルからパディングされた領域にパディングすることができる。
【０１０９】
図5Aは、一実施形態による、対応するインループフィルタリング方法500のステップを示す流れ図を示している。再構築されたブロックは複数のピクセルを備える。方法500は、あらかじめ定義されたスキャンテンプレートに従って現在のピクセルとその隣接ピクセルを線形バッファにロードするステップ(502)と、線形バッファ内のピクセルに対して1D変換を実行することによってスペクトル成分を取得するステップ(504)と、各スペクトル成分にゲイン係数を乗算することによってフィルタリングされたスペクトル成分を取得するステップ(506)であって、ゲイン係数は、対応するスペクトル成分およびフィルタリングパラメータに依存する、ステップと、フィルタリングされたスペクトル成分に対して逆1D変換を実行することによってフィルタリングされたピクセルを取得するステップ(508)と、前の処理ステップにおいて推定されたフィルタリングされたピクセルに基づいて、フィルタリングされた再構築されたブロックを生成するステップ(510)とを備える。方法500は、図1に示される符号化装置および図2に示される復号化装置により実行することができる。図3Aの詳細情報300または図3Bの情報300'は、図5Aに示されるように、方法500にも適用される。
【０１１０】
図5Aと同様に、図5Bは、別の実施形態による、対応するインループフィルタリング方法500'のステップを示す流れ図を示している。この例では、ブロック(または、フレーム)は予測されたブロックであり、フィルタリングされたブロックはフィルタリングされた予測されたブロックである。図5Bの詳細な説明は、図5Aと同様である。
【０１１１】
ハードウェアの実装形態について説明する。
【０１１２】
アダマール変換ドメインフィルタは、ブロックの再構築の直後に配置され、特にイントラ予測の参照サンプルとして、後続のブロックの再構築に関与できるサンプルを処理する。したがって、再構築パイプライン全体があまり影響を受けないようにするために、フィルタによって導入されるレイテンシを最小限に抑える必要がある。
【０１１３】
アダマール変換は、ハードウェアの実装形態では比較的単純であると考えられている。その実装形態には乗算ではなく加算のみが必要である。以下の疑似コード1からわかるように、順方向および逆方向の変換には4つの加算が含まれ、並列に、または2つの順次加算演算で中間結果を再利用することによって実行することができる。
【０１１４】
疑似コード1
【０１１５】
【数８】
2021530166.tif 000010
【０１１６】
順方向および逆方向のアダマール変換は、組合せロジックを使用することによってハードウェアに実装することができる。LUTへの高速で並列のアクセスにはさらに注意が必要である。
【０１１７】
SRAMベースのLUTについて説明する。
【０１１８】
この例示的な実装形態では、LUTは、オンチップシングルポートスタティックRAMに記憶される(図6)。
【０１１９】
前の処理ステップからのデータがクロックの立ち上がりエッジによってバッファにおいて使用可能になると、順方向アダマール変換(2つの後続の追加を含む)を実装する組合せロジックによってアクセスされる。組合せロジックが完了すると、LUTごとにアドレスが使用できるようになる。インバータとクロックの立ち下がりエッジを使用して、データがSRAMからアクセスされる。逆方向アダマール変換と正規化を実装する第2の組合せロジックは、LUTからのデータが使用可能になった直後に開始される。出力フィルタリングされたサンプルは、現在のクロックサイクルの終わりに使用可能になり、クロックの次の立ち上がりエッジにおいて次のアルゴリズムによる処理の準備が整う。
【０１２０】
フリップフロップベースのLUTについて説明する。
【０１２１】
フィルタリングプロセス用の1つのテーブルが16エントリによって制限されていることを考えると、フリップフロップに基づいてLUTを実装する方が効率的である。そのような設計では、並列処理用に複数のLUTを必要とせず、データアクセス用にクロックエッジを必要としない。並列アクセスは、1つの2×2グループを処理するための例示的な設計を示す図7に示されるように、マルチプレクサによって提供される。推奨される設計では、フィルタリングプロセス中に並列アクセスを提供するために、7ビットの16個のフリップフロップが必要である。現在のCUのQPが使用可能になると、QP固有のLUTをフリッププロップにロードすることができる。
【０１２２】
図8に示されるように、4つの2×2グループフィルタリングの結果を同じ空間グループの最終フィルタ出力の結果の再利用と組み合わせたものが生成される。
【０１２３】
上記の分析により、提案されたフィルタは、SRAMまたはフリップフロップベースのLUT実装形態のいずれかを使用して1クロック内のハードウェアに実装することができるという結論に達した。
【０１２４】
複雑さの分析について説明する。
【０１２５】
アンカーに対するビットレート/PSNRへの影響を測定する。
【０１２６】
複雑さの分析(たとえば、符号化と復号化の時間測定、以下の表に記入することによる複雑さの分析)。
【０１２７】
【表１】
2021530166.tif 000011
【０１２８】
実験結果について説明する。
【０１２９】
客観的な結果について説明する。
【０１３０】
目標パフォーマンスが次の表に示される。
【０１３１】
【表２】
2021530166.tif 000012
【０１３２】
【表３】
2021530166.tif 000013
【０１３３】
推奨されるLUT70バイト、QPあたり16バイト、1クロックのHW実装形態が可能など。次のバージョンのVTMにアダマール変換ドメインフィルタを採用することを提案した。
【０１３４】
以下の参考文献は、その全体が複製されているかのように、参照により本明細書に組み込まれる。
【０１３５】
共同ビデオ専門家チーム(JVET)はJVET-K0068を文書化する。
【０１３６】
以下に、LUTを最適化するための例を示す。
【０１３７】
一例1として、量子化パラメータ(QP)のセットは、ルックアップテーブル(LUT)を生成するために選択され、QPのセットは、(i)インデックスに対応する第1のQPと、(i+1)インデックスに対応する第2のQPとを含み、第1のQPと第2のQPの間隔は一定である。たとえば、間隔は8、10、または16に等しくてよい。
【０１３８】
たとえば、一定の間隔を例として8とすると、qp={20、28、36、44、52}のLUTを有するスパーステーブルである。第1のgp20と第2のgp28との間の間隔は8である。同様に、第2のgp28と第3のgp36との間の間隔は8である。フィルタリング中に、最も近いQPを有するテーブルが選択される。
【０１３９】
別の例として、一定の間隔を例として8とすると、qp={18、26、34、42、50}のLUTを有するスパーステーブルである。第1のgp18と第2のgp26との間の間隔は8である。同様に、第2のgp26と第3のgp34との間の間隔は8である。フィルタリング中に、最も近いQPを有するテーブルが選択される。
【０１４０】
LUTサイズ:5×128=640バイト
以下は、ルックアップテーブル(LUT)を生成するために選択されたQPを反映する疑似コード2である。
【０１４１】
疑似コード2
【０１４２】
【数９】
2021530166.tif 000014
【０１４３】
疑似コードでは、HTDF_QP_ROUNDは一定の間隔を表す。間隔を2の累乗にすることは、シフトとしてインデックス計算の除算演算を実装できるという利点がある。たとえば2、4、10、15、または16などの一定間隔の異なる値が選択され得る点に留意されたい。さらに、代替の実施形態として、間隔、およびどのLUTがQPの任意のセットに対して計算されるかは、任意であり得る。
【０１４４】
フィルタリングプロセス中に、所与のQPのLUTに対応するインデックスは、次のように計算される。
int idx=((qp-HTDF_MIN_QP)+(HTDF_QP_ROUND>>1))/HTDF_QP_ROUND
または、代替で、精度がより低くなる。
int idx=(qp-HTDF_MIN_QP)/HTDF_QP_ROUND;
一定の間隔が2の累乗である場合、たとえば、LUTのインデックスは、除算の代わりにシフト演算を使用して有利に計算することができる。
int idx=(qp-HTDF_MIN_QP)>>HTDF_QP_ROUND_LOG2=(qp-HTDF_MIN_QP)>>3;
【０１４５】
別の例2として、デコーダまたはエンコーダはテーブル値からN個のビットをドロップし、Nは整数である。これにより、所与範囲から選択された値のみを記憶するスパースLUT表現を使用することができる。たとえば、Nは3である。最大テーブル値は127(7ビット)で、3ビットをドロップすると、結果は4ビットになり、すなわち、7ビット値の16個のエントリ、およそ16バイトになる。
【０１４６】
以下は、与えられたqp値に従ってLUTがどのように生成されるかを説明する疑似コード3である。
【０１４７】
疑似コード3
【０１４８】
【数１０】
2021530166.tif 000015
【０１４９】
所与の例では、HTDF_TBL_SHはドロップするビット数を定義し、これは、1、2、3、4などであり得る。
以下は、フィルタリング中のスパースLUTへのアクセスを示す疑似コードである。
tbl[(z+HTDF_TBL_RND)>>HTDF_TBL_SH]
【０１５０】
上記の例1および2を組み合わせる場合、例として、図9はLUTを最適化した結果を示している。図9に示されるように、例1と2を組み合わせると、5テーブル×16エントリ×7ビット=560ビット=70バイトである。
【０１５１】
LUTエントリの量は、HTDF_SHORT_TBL_THR(段落［００５７］〜［００６１］からのしきい値)およびドロップされたビット数HTDF_TBL_SHによって定義される点に留意されたい。しきい値が128(すなわち、1<<7)に等しく、ビットが3つドロップされると、テーブルエントリの数は1<<(7-3)=1<<4=16に等しくなる。上で説明したように、LUTしきい値は、好ましくは、段落［００６２］〜［００６６］からの式の結果を1に近づけるように選択され、またそこに記載されているように、しきい値は、QPに応じて異なる可能性がある。したがって、より高いQP値のLUT生成では、しきい値を128(1<<7)からたとえば256(1<<8)に増やすことが有益な場合がある。その場合、LUTエントリの精度を同じに維持するために(たとえば、3つのビットをドロップする)32個のエントリが必要になる(32=1<<(8-3)=1<<5)。あるいは、より高いQPの場合とより低いQPの場合のLUTサイズを同じに維持するために、テーブル16=1<<(8-4)=1<<4の16個のエントリを維持するために、精度をさらに4に下げることができる。
【０１５２】
いくつかの実装形態では、段落［００６２］〜［００６６］からの式を維持するために、LUTサイズを制限し、THRを有することは矛盾する可能性がある。実際、高いQP値(高いσ値につながる)において、LUTサイズをたとえば16個のエントリに制限することは、図10に示されるように、値120の周囲のフィルタ伝達関数(LUTによって表される)に望ましくないギャップをもたらす可能性がある(これには、最下位3ビットをドロップすることによるLUTサブサンプリングの方法も含まれる)。
【０１５３】
図11は、インデックス15における最後のLUTエントリとインデックス16におけるフィルタ伝達関数の次のポイントとの間のギャップを示すLUTサブサンプリング効果を考慮せずに1つずつプロットされているテーブルエントリを有する同じテーブルを表している。
【０１５４】
図12は、たとえば、直線方程式(緑色で示されている)を使用することによって、1だけ増加された最後のLUTエントリ(15)の引数に対応する引数16、言い換えれば、LUTサイズ(16)においてポイントTHR=128を通過することによって、およびある点において(たとえば、所与の例における値11において)x軸と交差することによって、最後のLUTエントリ+1に対応する引数においてTHR値を介して来る補助関数を使用してギャップを排除することができる方法を示している。同じ原理に基づいて、たとえば、指数関数、対数、放物線などの他のタイプの補助関数、またはそれらの組合せを使用できる点に留意されたい。
【０１５５】
図13は、LUTを生成する際に、2つの値から最大値を取得することによってギャップを排除する例を示しており、第1の値は、上述のLUTエントリ
【０１５６】
【数１１】
2021530166.tif 000016
【０１５７】
であり、第2は同じ引数iでの補助関数の値(この例では直線)であり、
【０１５８】
【数１２】
2021530166.tif 000017
【０１５９】
上式で、AuxiliaryFuncσ(i)は補助関数を表し、補助関数は、最後のLUT+1の引数に対応するiにおいてTHRに等しい値を有する。
【０１６０】
図14は、補助直線方程式を使用する上述の方法を適用した後のフィルタ伝達関数と、3つの最下位ビットをドロップすることによるLUTサブサンプリングを示している。
【０１６１】
段落［０１３７］に記載されているように、1つのLUTをQPのグループに使用することができる。可能なQP範囲をカバーするために、あらかじめ定義されたQPセットが使用され、セットからのQPごとに1つのLUTが生成される。図15は、セット内の5つのQPおよび対応するテーブル(0から4まで)に依存するフィルタ伝達関数の例を示している。この例では、テーブル4は、値11においてx軸と交差する直線補助関数が使用される、段落［０１５４］〜［０１５５］において説明されている方法を使用して生成され、テーブル3は、値9においてx軸と交差する直線補助関数が使用される、同じ方法を使用して生成される。この例において使用されている表の値は、次のとおりである。
テーブル0={0、2、10、19、28、36、45、53、61、70、78、86、94、102、110、118、}、
テーブル1={0、0、5、12、20、29、38、47、56、65、73、82、90、98、107、115、}、
テーブル2={0、0、1、4、9、16、24、32、41、50、59、68、77、86、94、103、}、
テーブル3={0、0、0、1、3、5、9、14、19、25、32、40、55、73、91、110、}、
テーブル4={0、0、0、0、0、1、2、4、6、8、11、14、26、51、77、102、}、
【０１６２】
段落［０１４５］〜［００１５１］において上述したように、テーブルサブサンプリングの方法は、テーブルサイズを減らすために、テーブル値からN個のビットをドロップすることができる。これらの段落においてやはり述べたように、Nは、特定のテーブル生成に使用されるQPと、このテーブルに選択されたTHR値によって異なる場合がある。たとえば、より低いQP値の場合、フィルタリングパラメータσはより高いQPの場合よりも比較的低くなる。したがって、THRの絶対値を、パフォーマンスを犠牲にすることなく減らすことができる。さらに、セット内のすべてのQPに対してテーブルサイズを同じに維持し(実装形態を簡素化するために有益である)、より低いQPのサブサンプリングレートを減らす(これは、より少ない圧縮レベルとより良い再構築された画質に対応する)ために、たとえば、より低いQPのNを2に設定し、THRを64に設定することによって、他のQPテーブルと比較して、ドロップされるビットNの量を減らすことが有益な場合がある。図16は、第1のテーブル(より低いQP範囲に対応する)についてNが2に設定され、他のテーブルについてNが3に設定される、対応するテーブル(0から4)に基づくセット内の5つのQPのフィルタ伝達関数の例を示している。この例はまた、段落［０１６１］〜［０１６２］において説明されているように、テーブル3およびテーブル4の生成に補助関数を使用する方法を含む。テーブル4の場合、直線補助関数は値11においてx軸と交差する。テーブル4の場合、直線補助関数は値9においてx軸と交差する。この例において使用されている表の値は、次のとおりである。
テーブル0={0、0、2、6、10、14、19、23、28、32、36、41、45、49、53、57、}、
テーブル1={0、0、5、12、20、29、38、47、56、65、73、82、90、98、107、115、}、
テーブル2={0、0、1、4、9、16、24、32、41、50、59、68、77、86、94、103、}、
テーブル3={0、0、0、1、3、5、9、14、19、25、32、40、55、73、91、110、}、
テーブル4={0、0、0、0、0、1、2、4、6、8、11、14、26、51、77、102、}、
【０１６３】
段落［０１４５］〜［００１５１］において上述したように、テーブルサブサンプリングの方法は、テーブルサイズを減らすために、テーブル値からN個のビットをドロップすることができる。これらの段落においてやはり述べたように、Nは、特定のテーブル生成に使用されるQPと、このテーブルに選択されたTHR値によって異なる場合がある。たとえば、より高いQP値の場合、フィルタリングパラメータσは、段落［００６２］〜［００６６］からの式を1に近づけておくために、THR値の増加を必要とし得るより低いQPの場合よりも比較的高い。同時に、セット内のすべてのQPに対してLUTサイズを同じに維持する(実装形態が簡素化されるため有益である)ために、また、より高いQP値の場合、再構築された画像の歪みが大きくなること、および、強力な圧縮アーティファクトが存在する場合のLUTサブサンプリングの主観的に目立たない影響により、LUTのサブサンプリングの増加は許容できることを考慮すると、ドロップされた最下位ビットの値Nは、たとえば、セット内の最後と最後から2番目のテーブルについて、4に増加されてよい。図17は、第1のテーブル(より低いQP範囲に対応する表0)についてNが2に設定され、最後と最後から2番目のテーブル(テーブル3とテーブル4)についてNが4に設定され、他のテーブルについてNが3に設定される、対応するテーブル(0から4)に基づくセット内の5つのQPのフィルタ伝達関数の例を示している。この例では、TRHは第1のテーブル生成について64に設定され、最後のおよび最後から2番目のテーブルについて256に設定され、残りのテーブルについて128に設定される。この例はまた、段落［０１６１］〜［０１６２］において説明されているように、テーブル3およびテーブル4の生成に補助関数を使用する方法を含む。テーブル4の場合、直線補助関数は値6においてx軸と交差する。テーブル4の場合、直線補助関数は値8においてx軸と交差する。この例において使用されている表の値は、次のとおりである。
テーブル0={0、0、2、6、10、14、19、23、28、32、36、41、45、49、53、57、}、
テーブル1={0、0、5、12、20、29、38、47、56、65、73、82、90、98、107、115、}、
テーブル2={0、0、1、4、9、16、24、32、41、50、59、68、77、86、94、103、}、
テーブル3={0、0、3、9、19、32、47、64、81、99、117、135、154、179、205、230、}、
テーブル4={0、0、0、2、6、11、18、27、38、51、64、96、128、160、192、224、}、
【０１６４】
図18は、様々な実施形態を実装するために使用することができる装置600のブロック図である。装置600は、図1に示されるような符号化装置および図2に示されるような復号化装置であり得る。さらに、装置600は、記載された要素のうちの1つまたは複数をホストすることができる。いくつかの実施形態では、装置600は、スピーカ、マイクロフォン、マウス、タッチスクリーン、キーパッド、キーボード、プリンタ、ディスプレイなどの1つまたは複数の入力/出力デバイスを備えている。装置600は、1つまたは複数の中央処理装置(CPU)610、メモリ620、大容量ストレージ630、ビデオアダプタ640、およびバスに接続されたI/Oインターフェース660を含み得る。バスは、メモリバスまたはメモリコントローラ、周辺バス、ビデオバスなどを含む、任意のタイプのいくつかのバスアーキテクチャのうちの1つまたは複数である。
【０１６５】
CPU610は、任意のタイプの電子データプロセッサを有し得る。メモリ620は、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、同期DRAM(SDRAM)、読取り専用メモリ(ROM)、それらの組合せなどの任意のタイプのシステムメモリを有してもよく、それらであってもよい。一実施形態では、メモリ620は、起動時に使用するためのROM、ならびにプログラムの実行中に使用するためのプログラムおよびデータストレージのためのDRAMを含み得る。実施形態では、メモリ620は非一時的である。大容量ストレージ630は、データ、プログラム、および他の情報を記憶し、データ、プログラム、および他の情報にバスを介してアクセス可能にする任意のタイプのストレージデバイスを含む。大容量ストレージ630は、たとえば、ソリッドステートドライブ、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブなどのうちの1つまたは複数を含む。
【０１６６】
ビデオアダプタ640およびI/Oインターフェース660は、外部入力および出力デバイスを装置600に結合するためのインターフェースを提供する。たとえば、装置600は、クライアントにSQLコマンドインターフェースを提供し得る。図示されるように、入力および出力デバイスの例には、ビデオアダプタ640に結合されたディスプレイ690、およびI/Oインターフェース660に結合されたマウス/キーボード/プリンタ670の任意の組合せが含まれる。他のデバイスを装置600に結合することができ、追加のまたはより少ないインターフェースカードが利用され得る。たとえば、プリンタにシリアルインターフェースを提供するために、シリアルインターフェースカード(図示せず)が使用され得る。
【０１６７】
装置600はまた、イーサネットケーブルなどのようなワイヤードリンク、および/またはアクセスノードまたは1つまたは複数のネットワーク680へのワイヤレスリンクを含む、1つまたは複数のネットワークインターフェース650を含む。ネットワークインターフェース650は、装置600がネットワーク680を介して遠隔ユニットと通信することを可能にする。たとえば、ネットワークインターフェース650は、データベースへの通信を提供し得る。一実施形態では、装置600は、データ処理のためにローカルエリアネットワークまたはワイドエリアネットワークに結合され、他の処理ユニット、インターネット、リモートストレージ設備などのリモートデバイスと通信する。
【０１６８】
インループフィルタまたは予測フィルタの提案された設計には、ALFなどの従来の適応フィルタリング方法に関して次の利点がある。
・提案された周波数ドメインフィルタは、デコーダ側の再構築されたフレームまたは予測されたブロックからフィルタリングパラメータ(周波数ドメインゲイン係数)を導出するため、エンコーダ側からデコーダ側にフィルタリングパラメータが転送される必要はない。
・ALFは、送信用の重み係数の数を減らすために、エンコーダ側において複雑なレート歪み最適化(RDO)が必要になる。提案された方法は、エンコーダ側において複雑なRDOを必要とせず(パラメータの転送なし)、あらかじめ定義された条件を満たすすべてのブロックに適用される。
・ALFはピクセルドメインにおける線形フィルタである。1Dスペクトル成分ごとのゲイン係数はこのスペクトル成分値に依存するため、提案されたフィルタは非線形である。これにより、非線形処理から追加のコーディングゲインを実現することができる。
・ALFはデコーダ側においてユニバーサルマルチプライヤが必要である。提案された方法では、スペクトル係数ごとのゲインが1未満であるため、フィルタリングをルックアップテーブルとして実装することができる。したがって、提案された方法は、乗算なしで実装することができる。
【０１６９】
したがって、フィルタが提供され、複雑さの低いビデオコーディングの効率を向上させることができる。
【０１７０】
本開示の特定の特徴または態様は、いくつかの実装形態または実施形態のうちの1つのみに関して開示され得るが、そのような特徴または態様は、所望され得る他の実装形態または実施形態の1つまたは複数の他の特徴または態様と組み合わせることができ、任意の所与または特定の用途に有利である。さらに、「含む(include)」、「有する(have)」、「とともに(with)」という用語、またはそれらの他の変形が詳細な説明または特許請求の範囲のいずれかで使用される限り、そのような用語は、「備える(comprise)」という用語と同様の方法で包括的であることが意図されている。また、「例示的(exemplary)」、「たとえば(for example)」および「たとえば(e.g.)」という用語は、最良または最適ではなく、単なる例として意図されている。「結合された(coupled)」および「接続された(connected)」という用語は、派生語とともに使用され得る。これらの用語は、2つの要素が直接物理的または電気的に接触しているか、または互いに直接接触していないかに関係なく、2つの要素が互いに協力または相互作用することを示すために使用されている可能性があることを理解されたい。
【０１７１】
特定の態様が本明細書で例示および説明されてきたが、本開示の範囲から逸脱することなしに、様々な代替および/または同等の実装形態を、表示および説明された特定の態様の代わりに使用できることが当業者には理解されるであろう。本出願は、本明細書で説明する特定の態様の適応またはバリエーションをカバーすることを目的としている。
【０１７２】
以下の特許請求の範囲の要素は、対応するラベルを付けて特定の順序で記載されているが、特許請求の範囲の記載がそれらの要素の一部またはすべてを実装するための特定の順序を暗示していない限り、それらの要素は、必ずしもその特定の順序で実装されることに限定されることを意図したものではない。
【０１７３】
上記の教示に照らして、多くの代替、修正、および変形が当業者には明らかであろう。もちろん、当業者は、本明細書に記載されたものを超えて本発明の多くの用途があることを容易に認識する。本発明は、1つまたは複数の特定の実施形態を参照して説明されてきたが、当業者は、本発明の範囲から逸脱することなしに、多くの変更が加えられてよいことを認識している。したがって、添付の特許請求の範囲およびそれらの同等物の範囲内で、本発明は、本明細書に具体的に記載されている以外の方法で実施され得ることが理解されるべきである。
【符号の説明】
【０１７４】
100  符号化装置
104  残余計算ユニット
106  変換ユニット
108  量子化ユニット
110  逆量子化ユニット
114  再構築ユニット
116  線形バッファ
120  フィルタ
130  復号化された画像バッファ
142  インター推定ユニット
144  インター予測ユニット
145  フィルタ
152  イントラ推定ユニット
154  イントラ予測ユニット
160  モード選択ユニット
170  エントロピ符号化ユニット
200  復号化装置
204  エントロピ復号化ユニット
210  逆量子化ユニット
212  逆変換ユニット
214  再構築ユニット
216  線形バッファ
220  フィルタ
230  画像バッファ
244  インター予測ユニット
254  イントラ予測ユニット
260  モード選択ユニット
264  フィルタ
300  概略図
300'  概略図
300  方法
300'  方法
300  情報
300'  情報
500  方法
500'  インループフィルタリング方法
600  装置
610  中央処理装置(CPU)
620  メモリ
630  大容量ストレージ
640  ビデオアダプタ
650  ネットワークインターフェース
660  I/Oインターフェース
670  マウス/キーボード/プリンタ
680  ネットワーク
690  ディスプレイ
【図１Ａ】
2021530166.tif 000024
【図１Ｂ】
2021530166.tif 000025
【図２Ａ】
2021530166.tif 000026
【図２Ｂ】
2021530166.tif 000027
【図３Ａ】
2021530166.tif 000028
【図３Ｂ】
2021530166.tif 000029
【図３Ｃ】
2021530166.tif 000030
【図４Ａ】
2021530166.tif 000031
【図４Ｂ】
2021530166.tif 000032
【図４Ｃ】
2021530166.tif 000033
【図４Ｄ】
2021530166.tif 000034
【図５Ａ】
2021530166.tif 000035
【図５Ｂ】
2021530166.tif 000036
【図６】
2021530166.tif 000037
【図７】
2021530166.tif 000038
【図８】
2021530166.tif 000039
【図９】
2021530166.tif 000040
【図１０】
2021530166.tif 000041
【図１１】
2021530166.tif 000042
【図１２】
2021530166.tif 000043
【図１３】
2021530166.tif 000044
【図１４】
2021530166.tif 000045
【図１５】
2021530166.tif 000046
【図１６】
2021530166.tif 000047
【図１７】
2021530166.tif 000048
【図１８】
2021530166.tif 000049
【手続補正書】
【提出日】令和3年2月12日(2021.2.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロックを処理するための方法であって、前記ブロックが複数のピクセルを備え、
あらかじめ定義されたスキャンテンプレートに従って、前記ブロックの現在のピクセル、および前記現在のピクセルのその隣接ピクセルをスキャンするステップであって、前記ブロックが、再構築されたブロックまたは予測されたブロックである、ステップと、
前記現在のピクセルとその隣接ピクセルに対して変換を実行することによってスペクトル成分を取得するステップと、
フィルタリングパラメータと前記スペクトル成分に基づいてフィルタリングされたスペクトル成分を取得するステップと、
前記フィルタリングされたスペクトル成分に対して逆変換を実行することによってフィルタリングされたピクセルを取得するステップと、
前記フィルタリングされたピクセルに基づいて、フィルタリングされたブロックを生成するステップと、
を備える、方法。
【請求項２】
ルックアップテーブル(LUT)を使用することによって、前記フィルタリングされたスペクトル成分を取得するステップ、請求項1に記載の方法。
【請求項３】
フィルタリングされたスペクトル成分F(i、σ)が
【数１】
2021530166.tif 000050
によって導出され、上式で、(i)がスペクトル成分のインデックスであり、R(i)が(i)インデックスに対応する前記スペクトル成分であり、σが前記フィルタリングパラメータであり、LUT(R(i)、σ)が前記ルックアップテーブル内の配列であり、THRがしきい値である、請求項2に記載の方法。
【請求項４】
【数２】
2021530166.tif 000051
であり、mがスペクトル成分の数に等しい正規化定数である、請求項3に記載の方法。
【請求項５】
前記フィルタリングパラメータが、コーデック量子化パラメータ(QP)に基づいて導出される、請求項2から4のいずれか一項に記載の方法。
【請求項６】
前記フィルタリングパラメータσが、
σ=k*2(n*(QP-s))
によって導出され、QPが前記コーデック量子化パラメータであり、k、n、およびsが定数である、請求項5に記載の方法。
【請求項７】
k=2.64、n=0.1296、およびs=11である、請求項6に記載の方法。
【請求項８】
kが、ピクセルのビット深度kmod=k*(1<<(bit_depth-8))に基づいて修正される、請求項6または7に記載の方法。
【請求項９】
QP<=17の場合、前記フィルタリングパラメータσがゼロに等しく、前記ブロックがフィルタリングなしでバイパスされる、請求項5に記載の方法。
【請求項１０】
THRがQP値に依存する、請求項2から9のいずれか一項に記載の方法。
【請求項１１】
THRが、
【数３】
2021530166.tif 000052
よって導出され、上式で、Cが1に近い値である、請求項10に記載の方法。
【請求項１２】
前記あらかじめ定義されたスキャンテンプレートが、前記再構築されたブロック内の前記現在のピクセルの位置に対する空間オフセットまたはラスタオフセットのセットとして定義される、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記あらかじめ定義されたスキャンテンプレートが、scanTmpl[4](y、x)={(0、0)、(0、1)、(1、0)、(1、1)}、のように定義される、請求項12に記載の方法。
【請求項１４】
前記あらかじめ定義されたスキャンテンプレートが、前記再構築されたブロック内の前記現在のピクセルの前記位置に対するラスタオフセットのセットとして定義されている場合、隣接するピクセルを指すオフセットが前記再構築されたブロック内にある、請求項12に記載の方法。
【請求項１５】
前記あらかじめ定義されたスキャンテンプレートに従って、少なくとも1つのフィルタリングされたピクセルが元の位置に配置される、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
すべてのフィルタリングされたピクセルが、前記あらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加され、フィルタリングされたスペクトル成分を取得する前記ステップの前に、前記蓄積バッファがゼロで初期化される、請求項1から15のいずれか一項に記載の方法。
【請求項１７】
最終的にフィルタリングされたピクセルが、前記蓄積バッファ内の蓄積値をピクセル数で割った値として取得され、前記蓄積バッファの現在の位置に追加されると、
前記フィルタリングされたピクセルに基づいて、前記フィルタリングされたブロックを生成する前記ステップが、前記最終的にフィルタリングされたピクセルに基づいて、前記フィルタリングされたブロックを生成するステップを備える、請求項16に記載の方法。
【請求項１８】
すべてのフィルタリングされたピクセルと対応するフィルタリングされていないピクセルの差が、前記あらかじめ定義されたスキャンテンプレートに従って蓄積バッファに追加され、前記蓄積バッファが、フィルタリングされていないピクセルに前記ブロックに追加されるべきピクセル値の最大数を乗算することによって初期化される、請求項1から17のいずれか一項に記載の方法。
【請求項１９】
最終的にフィルタリングされたピクセルが、前記蓄積バッファ内の蓄積値を、前記ブロックに追加されるべきピクセル値の最大数で割ったものとして取得される、請求項18に記載の方法。
【請求項２０】
前記方法が条件に応じて適用され、前記条件が、
前記ブロックが非ゼロの残余信号を有すること、
前記ブロックのサイズ、
前記ブロックのアスペクト比、
前記ブロックの予測モード、
イントラ内の前記ブロックの予測モード、または
インター内の前記ブロックの予測モード
のうちの少なくとも1つを備える、請求項1から19のいずれか一項に記載の方法。
【請求項２１】
フィルタのパラメータおよび/または前記あらかじめ定義されたスキャンテンプレートが前記条件に依存する、請求項20に記載の方法。
【請求項２２】
前記方法が、ブロックの幅にブロックの高さを掛けたものとして取得される前記ブロックのサイズが4×4より大きい場合に適用される、請求項20に記載の方法。
【請求項２３】
前記ブロックの前記予測モードがインターであり、前記ブロックの幅と前記ブロックの高さが32以上の場合、前記方法が適用されない、請求項20に記載の方法。
【請求項２４】
前記ブロックの前記予測モードがインターであり、前記ブロックが非ゼロの残余信号を有する場合に前記方法が適用される、請求項20に記載の方法。
【請求項２５】
前記ブロックの前記予測モードがイントラの場合に前記方法が適用される、請求項20に記載の方法。
【請求項２６】
前記あらかじめ定義されたスキャンテンプレートに従って、前記再構築されたブロックの前記現在のピクセルと前記現在のピクセルのその隣接ピクセルを蓄積バッファにスキャンするステップと、
前記蓄積バッファ内のピクセルの変換を実行することによってスペクトル成分を取得するステップと、を備える、請求項1から25のいずれか一項に記載の方法。
【請求項２７】
前記変換がアダマール変換である、請求項1から26のいずれか一項に記載の方法。
【請求項２８】
前記変換が1D変換である、請求項1から27のいずれか一項に記載の方法。
【請求項２９】
請求項1から28のいずれか一項に記載の方法を実行するための処理回路を備える装置であって、前記装置がエンコーダまたはデコーダである、装置。
【請求項３０】
請求項1から28のいずれか一項に記載の方法を実行するためのフィルタを備える装置であって、前記装置がエンコーダまたはデコーダである、装置。
【請求項３１】
命令を備えるメモリストレージと、
前記メモリと通信している1つまたは複数のプロセッサと
を備える装置であって、前記1つまたは複数のプロセッサが、請求項1から28のいずれか一項に記載の方法を実行するための前記命令を実行し、前記装置がエンコーダまたはデコーダである、装置。
【請求項３２】
コンピュータまたはプロセッサ上で実行されたときに請求項1から28の方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
図2Bに示されるように、図2Bに示されるハイブリッドデコーダの実施形態における予測信号は、イントラ予測またはインター予測から取得され、フィルタ264によってさらにフィルタリングされる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
フィルタ120、220、145、または264は、1つまたは複数のプロセッサ(あるいは、1つまたは複数の処理ユニット)を備える。以下でより詳細に説明されるように、1つまたは複数のプロセッサ(あるいは、1つまたは複数の処理ユニット)は、あらかじめ定義されたスキャンテンプレート(言い換えれば、スキャン順序またはスキャンパターン)に従って現在のピクセルとその隣接ピクセルを線形バッファにロードすることと、線形バッファ内のピクセルごとに1D変換を実行することによってスペクトル成分を取得することと、各スペクトル成分にゲイン係数を乗算することによってフィルタリングされたスペクトル成分を取得することであって、ゲイン係数は、対応するスペクトル成分およびフィルタリングパラメータに依存する、ことと、フィルタリングされたスペクトルに対して逆1D変換を実行することによってフィルタリングされたピクセルを取得することと、前の処理ステップにおいて推定されたフィルタリングされたピクセルに基づいて、フィルタリングされた再構築されたブロックを生成することとを行うように構成される。一例では、ゲイン係数は、対応するスペクトル成分とフィルタリングパラメータに依存する。別の例では、ゲイン係数は、1つまたは複数のフィルタリングパラメータおよび1つまたは複数の対応するスペクトル成分に依存する。他の例では、それぞれのゲイン係数は、1つまたは複数のフィルタリングパラメータおよび対応するスペクトル成分、ならびにスペクトル成分の左側および右側に隣接するスペクトル成分に依存し得る。
【国際調査報告】
2021530166.tif 000053
2021530166.tif 000054