画素を補間して現画像を拡大/縮小する。
ダウンスケールする場合、折り返し歪(エリアシング:aliasing)が発生する。
折り返し歪が発生しないようにスケーリング処理の前にローパスフィルタ(LPF)を
かまして高周波成分を落とし、エリアシングを避ける処理を行う。
画素補間するために一般的には以下の補間処理が用いられているようだ。
とりあへず補間処理の概要だけ。
- リニアレスト-ネイバー法(nearlest-neighbor filtering)
縮小する場合は一定間隔で 画素を捨てる。(ダウンサンプリング)
3倍するなら単純に1画素を3つ並べる。1/3にするなら3画素のうち2画素
を捨てる。
処理は単純で軽いが画質が良くない。
- バイリニア法(bilinear interporation filtering)
補間する画素の周り4点の画素を使って画素を作る。
- バイキュービック法(bicubic interporation filtering)
補間する画素の周り4点の距離d から重みwを計算する。
その重みを近傍16個に掛けてそれぞれを足して画素を作り出す。(3次補間)
重みの演算式は以下のとおり
----------------------------------
(0<=d<1)
w = 1 - 2 * d^2 + d^3
(1<=d<2)
w = 4 - 8 * d + 5 * d^2 - d^3
(d<=2) w = 0
----------------------------------
- 平均操作法
1/3にするなら9画素(3x3)の平均値とって1画素を作る。
平均処理が LPF に相当し、折り返し歪を抑圧する効果がある。
縮小アルゴリズム。
- 平均画素法
アルゴリズム。
これもアルゴリズム自体が LPF に相当するので折り返し歪を抑圧する
効果がある。
例えば 1920->720 に水平に縮小する場合、
(1)最小公倍数とる。5760となる。
(2)1920 を 3倍にする(1画素を3つ並べる)。5760画素となる。
(3)拡大された画素を 720 にダウンスケールにするため 1/8 にする。
8画素の平均をとって1画素作る。
この中では平均画素法が一番綺麗と言われてる。
次にバイキュービック、その次がバイリニア。
だんだん画像が鮮明でなくなっていくようだ。
まるもさんのページを拝見させて頂くと Lanczos フィルタなるものが
一番綺麗なスケーリングアルゴリズムだそうだ。
0 件のコメント:
コメントを投稿