2つ質問しているようです。JBUについて技術的に話すことはあまりできませんが、必要な概念と一般的なバイラテラルフィルタリングの概要を説明できます。おそらくもっと詳細を自分で見つける必要がありますが、これは最初から一貫した構造を提供するはずです。
「画像」の修正
多くの画像処理の人々は、フィルタリングを後処理として行うべきもの、または画像をスケーリングする方法のいずれかと見なしています。数学者の視点はより正確で、記述的で、複雑です。
画像ファイルがある場合、実際の画像はありません。ピクセルの「値」があり、ピクセルの中心でのみ厳密に有効です。大まかに言えば、各ピクセルにはその色をとる領域があります。数学的には、最近傍再構成フィルターを使用して、ピクセル値から実際の画像を再構成しています。したがって、「画像」は実際にはサンプルと再構成フィルターのセットであり、通常は最近傍です。
リサンプリング
画像を拡大するとき、実際に行っているのはリサンプリングです。これはどうやるんですか?信号を受け取り、そこから新しいサンプルのセットを生成します。しかし、画像については、本当の画像はありませんでした。最初に再構築する必要があります。したがって、一般的なリサンプリング手順は次のようになります。
- ピクセル値を取得します。
- 再構成フィルタリングを使用して、ピクセルの中心にある値の間の画像を再構成します。
- 異なる間隔で配置された、再構成された画像から新しいサンプルのセットを測定します。
- 古いサンプルを捨てて、新しいサンプルを使用します。
重要な点は、使用される再構成フィルターがリサンプリングに使用される「フィルター」であることです。 たとえば、「バイキュービックアップサンプル」はバイキュービック再構成フィルターを使用します。
再構成フィルターにsinc関数を使用し、画像を縮小しない場合、(理論的には)同じ画像が返されることがわかります。実際、画像を拡大してから再び縮小しても、同じ答えが得られます。これは他のフィルターには一般的に当てはまりません。
ほとんどのフィルターは、sincフィルターを程度の差はあれ近似します。逸脱すると画像が失われます。
フィルタリング
サンプリングレートの前後で同じものを使用する場合は、「フィルタリング」と呼ばれる処理を行います。正式には、フィルタリングはサンプルレートを変更せずにリサンプリングします。フィルタリングは、リサンプリングの特殊なケースです。
それをフィルタリングして情報を破棄する(たとえばガウス)、またはおそらく偽の情報を歪めるまたは追加する(たとえばソーベル)ための唯一の可能な目的。
双方向フィルタリング
フィルタリングには、さまざまなフィルターを使用できます。バイラテラルフィルタリングはその1つです。今のところ、それがどんな目的でも最先端と見なされているとは思いません(何なのかはわかりませんが、おそらく機械学習の新しい問題がいくつかあります)。
バイラテラルフィルターは非線形フィルターです。つまり、適切なフーリエ表現がありません。概念的にはガウシアンのようですが、ソースカラー自体も、他のピクセルからのピクセルの「距離」を考慮に入れています。これは、エッジを維持しながら平坦な領域を滑らかにする傾向があります。
二国間アップスケーリング
これで、私がこれでどこへ行くのかがわかると思います。フィルタリングに使用できるすべてのフィルター、アップスケーリングまたはダウンスケーリングに使用できます。これらはすべて同じです(すべて再サンプリングされるため)。
バイラテラルフィルターを実装した場合は、バイラテラルフィルターリサンプラーを単純に実装できるはずです。ガウスフィルターを実装した場合と同様に、ガウスフィルターリサンプラーを実装できるはずです。
唯一の難しさは定義かもしれません。残念なことに、フィルタリングとリサンプリングの違いは、画像処理の文献に時々存在しないように体系的に混乱しています。バイラテラルタイプのフィルターを実装するには、ガウシアンリサンプリングとの類似性に大きく依存します。IIRC(私はこの論文を何年も読んでいません)双方向フィルタリングは、サンプルではなくピクセルに関して行われます。