2009-05-18 25 views
11

ダウンスケーリングを理解しようとしています。私は、バイキュービック(bicubic)や最近傍(nearest neighbor)などの補間アルゴリズムをアップスケーリング時に、古い既知の点(画像の場合はピクセル)間の「空白を埋める」ためにどのように使用できるかを見ることができます。ダウンスケーリング時の補間アルゴリズム

ダウンスケーリング?どのような補間技術がどのように使用されるかはわかりません。記入する空白はありません!アイブ氏はこれまで長い間のためにこれで立ち往生されて

は、私の右方向にナッジを与えます。実際に既知のデータを削除したとき、どのように補間しますか?

を編集します。ポイントあたり1つのカラーチャンネルを使用して、1次元の画像があるとします。 1,2,3,4,5,6 =(1 + 2)/ 2、(3 + 4)/ 2、(5 + 6)のように、平均ピクセル値で6~3ポイントをスケーリングするダウンスケールアルゴリズムは、/2 私はここに正しい道を進んでいますか?この補間は、単にデータを破棄するのではなく、縮小されていますか?

+0

あなたの編集は正しいアイデアを持っています。 1,2,3,4,5,6→1.5,3.5,5.5。別の例は、6,0,6,0,6,0→3,3,3;これは0,0,0または6,6,6よりも優れています。 – tom10

答えて

5

ここでは、元の画像が上にあり、次に中間色の除去アルゴリズムがあり、下に補間アルゴリズムがあります。

大きなスポットライトを考えてみましょう。中央の光は最も明るく、端の光は暗くなります。あなたがそれをもっと遠くに照らすと、光線が突然エッジの近くの暗闇を失い、光の堅固な輪郭になることを期待しますか?

いいえ、同じことがここでstackoverflowロゴに起こっています。あなたが最初のダウンスケーリングで見ることができるように、絵はその端に柔らかさを失い、ひどく見えます。第2のダウンスケーリングは、ピクセル周辺を平均化することによってエッジで平滑さを保っています。

単純な畳み込みフィルタは、ピクセルとそれを取り囲む他のすべてのピクセルのRGB値を加算し、単純な平均を行うことです。その後、ピクセルをその値に置き換えます。隣接するピクセルは、その情報を既に中央ピクセルに含めているため、破棄することができます。

alt text

+0

したがって、平均を数える1次元ダウンスケーリングアルゴリズムは、1,2,3,4,5,6 =(1 + 2)/ 2、(3 + 4)/ 2 、(5 + 6)/ 2となる。正しい?ここでは、サンプルグリッドには2つの点が含まれていますが、それ以上の方向に多くの点をサンプリングする必要がありますか? – Mizipzor

+0

はい、あなたはそうすることができます。より多くのサンプルは一般的にはより良い画像を意味しますが、注意する必要があります。新しいカーネルから遠いピクセルは、近いピクセルよりも新しいピクセルに寄与することが少なくありません。 – Unknown

+2

私は画像が欠落していると思う。または、本当にこのDVDカバーの画像を表示したいですか?イメージを再投稿できますか?それは多くの助けになるでしょう。 – Joerg

8

アップスケーリングまたはダウンスケーリングのいずれにしても、「補間」は実際にはリサンプリングです。

スケールダウンされたバージョンのサンプル数がサンプルの全数(ピクセルなど)の偶数除数でない場合、単にデータを破棄すると、画像に「ジャギー」として現れるサンプリングエラーが生成されます。代わりに、あなたが言及したアルゴリズムの1つを使用して既存のサンプル間のスペースに新しいサンプルがある場所を補間すると、結果はより滑らかになります。

君は最初だけで、実際に中間結果を生成せずに、サンプルを廃棄することによりダウン縮小、その後、古いものと新しいサイズの最小公倍数にスケールアップするこれを概念化することができます。

+0

しかし、単純にデータを破棄することによって偶数除数(2,4,8)で縮小すると、サンプリングエラーも発生しますが、正しいですか? – Mizipzor

+1

はい、間違いなくソースデータを「実際に」再サンプリングするのと同じではありません。しかし、補間は物事がどこにあるかもしれないと推測しますが、実際にそこにいることを保証するものではありません。元のデータを正確にするには、元のデータを再サンプリングする必要があります。 – sybreon

+2

「平均化」は破棄より優れており、よりスムーズな縮小結果が得られます。場合によっては、より精巧なフィルタを使用して、ダウンスケーリング時にポイントのグループを重み付けすることができます。 2D画像を縮小するときは、隣接するいくつかのポイントだけでなく、多くのポイントをクラスタリングする必要があります。 –

9

一つは、ピクセルの中心は、N/2のいずれかのエッジからある幅を有するnとして元の画素を概念化した場合。

一つは、この点は、画素の中心に色を定義すると仮定することができます。

ダウンサンプリングしている場合、概念的にはこのように考えることができます。物理的なサイズを縮小しているにもかかわらず、同じ寸法を維持しているとは思えますが、概念的に)。そして、1は数学を行うことができます...

例:あなたのイメージは1つのピクセル高く、3つのピクセルの幅、そしてあなただけ水平にダウンスケールしようとしていると言います。これを2ピクセル幅に変更しようとしています。今度は元の画像が3nで、それを2ピクセルに変えているので、新しいピクセルはそれぞれ元の画像ピクセルの3/2を占めます。

新しいピクセルの中心は(3/4)nと(9/4)n [(3/4)+(3/2)]にあります。元の画素の中心は(1/2)n、(3/2)n、(5/2)nであった。したがって、各中心は、元のピクセルの中心を見つける場所の間のどこかにあります。元のピクセルの中心と一致するものはありません。 (3/4)nの最初のピクセルを見てみましょう。元の最初のピクセルから(1/4)n離れており、元の2番目のピクセルから(3/4)n離れています。

スムーズな画像を維持したい場合は、逆の関係を使用します。最初のピクセルのカラー値の+(1/4)、2番目のピクセルのカラー値の1/4概念的には、第2の(3n/4離れた)位置にあるよりも、第1の元のピクセル中心(n/4離れた位置)に近い。

このように、真にデータを破棄する必要はありません。隣接するものから適切な比率を計算するだけです(全体イメージの物理サイズが変化しない概念的な空間)。厳密にスキップ/廃棄するのではなく、平均化します。

2次元画像では、比は計算するのがより複雑ですが、要点は同じです。内挿し、最も近い元の「隣人」からより多くの価値を引き出す。得られる画像は、ダウンサンプルがひどく厳しくない限り、元の画像と非常によく似ているはずです。

+1

非常に素敵な答え、私は一緒に行くペンと紙が必要でしたが、私は今それを得たと思う。しかし、いくつかの偶数(2,4,8)でサイズを分割し、サンプルグリッドが古いピクセルグリッドと完全に揃うようにすると仮定します。それでは、サンプルグリッドの各セル内の各ピクセルから常に等しい量のピクセルデータを取りますか? – Mizipzor

+0

もしあなたが平均であっても。画像を拡大/縮小するには、多くのさまざまな方法があります。 – Demi

+1

それを考えるもう一つの方法は、物理的なサイズは変わらないが、ピクセルの幅は同じですが、代わりに元のピクセルの数と新しいピクセルが消費する各ピクセルの量を考慮した同じ概念的な方法です。これは、偶数でうまくいくでしょう(例えば、水平方向に4ピクセルから2にスケーリングする場合、新しいピクセルはそれぞれ2つの古いピクセルを消費します - それらの平均を等しくします)。 – Demi

6

このスケッチは、補間(青色の曲線)を使用して3ピクセル(黒の曲線)から2ピクセル(赤の曲線)にダウンサンプリングされるいくつかのピクセルのセクションを示しています。補間は、元の3つのピクセルから決定され、2つの最終ピクセルは、各最終ピクセルの中心にある補間の値に設定される。 (ケースでは、ここでは不明だが、縦軸が示すように、単一のカラーチャンネルの各画素の強度である。)

alt text http://img391.imageshack.us/img391/3310/downsampling.png

+0

イメージを復元することはできますか? – nobar

+0

@nobar:申し訳ありませんが、画像がどこに行き、確かに5年前のコピーがないのか分かりません。うまくいけばSOかimageshackはそれを復元します...あなたはどれくらい時間が経過したか知っていますか?さもなければ、私はそれをやり直す機会を得るかもしれないが、私は今それを持っていない。 – tom10

2

我々はアップスケーリングまたはダウンスケーリングしているかどうか、我々は、ある程度まで(決定するために必要精度)を計算します。

画素の単一の行取ることができます:

P  P  P  P  P  P  P  P  P 

を、我々はアップサンプリング、我々は、インの間のポイントで使用するピクセル値を知りたい:

P P P P P P P P P P P P P 

、我々はダウンサンプリング、我々はまた、これらの間のポイントで使用するピクセル値を知りたい:

P  P  P  P  P  P  P 

(もちろん、私たちが望みますこれを2次元で行うのではなく、同じ原理です)。

したがって、適切なサンプル値を決定するために補間する必要があります。どのように正確な結果が得られるかによって、さまざまな補間技術があります。理想的には、関係するすべての数式を適切にリサンプリングすることができます...しかし、それはちょうど補間だけです。

1

あなたは、このようなランチョスとしてウィンドウのsincフィルタを使用する場合、それは実際に低い解像度で表現することができない高周波の詳細を除外します。平均化フィルタはこれを行わず、アーティファクトを引き起こします。また、シンクフィルタはシャープな画像を生成し、アップスケーリングとダウンスケーリングの両方に機能します。

イメージをsincで高画質化して元のサイズに戻した場合、ほぼ同じイメージが戻されますが、縮小時にピクセルを平均化しただけではわずかなものになりますオリジナルよりもぼかし効果があります。フーリエ変換を使用して、ウィンドウサイズのsincが近似しようとするサイズ変更の場合、丸め誤差を除いて正確な元の画像が戻されます。

一部の人は、sincフィルタの使用に起因する鋭いエッジの周りのわずかなリンギングが気に入らない人もいます。私はベクトルグラフィックを縮小するために平均化を提案し、写真を縮小するためにはsincを提案する。