Tools + Simulatorsnanase.cc / tools

画像の拡大縮小

結果

表示
計算中…
拡大鏡 8 倍
元の画像と表示の範囲

フィルタ

ドット絵向け

アンチエイリアス

計算の色空間

1出力の格子

拡大は細かい格子、縮小は粗い格子

2近くの画素

最近傍 1 個、バイリニア 4 個、キュービック 16 個、Lanczos3 36 個

3距離と重み

距離から重みを決める関数がカーネル

4重みの合計

値 × 重みの合計が出力の値、負の重みがリンギングの原因

5横と縦の計算

横の計算のあとに縦の計算、16 画素の計算が 4 + 4 回に短縮

6アンチエイリアス

カーネルを広げて平均、広げない間引きはモアレの原因

7手法ごとの弱点

ジャギー・ぼけ・リンギング・モアレの兼ね合い

動作原理と式

出力の画素の値

ci=i+1/2s−12yi=∑jxjk((j−ci)/w)∑jk((j−ci)/w)
s
倍率
xj
元の画素の値
ci
出力の画素 i の中心の、元の画素の座標
k
カーネル
w
カーネルの幅の倍率(アンチエイリアスの節)
  • 横に計算してから縦に計算(分離可能なカーネル)[6]
  • 重みの和で割り、明るさを保つ
  • 端の外は端の画素を使う
  • 重み付きの和の原理: 画像の畳み込み

カーネル

手法カーネル半径出典
最近傍1(|x|<1/2)1/2[5]
平均画素法出力の画素と元の画素の重なりの長さ1/2 + 1/(2s)[5]
バイリニア1−|x|1[5]
B スプライン下の式で B=1、C=02[1][2]
Mitchell下の式で B=C=1/32[1]
Catmull-Rom下の式で B=0、C=1/22[1][3][4]
Lanczos2・Lanczos3sinc(x)sinc(x/a)(a=2・3)a[5][7]
k(x)=16{(12−9B−6C)|x|3+(−18+12B+6C)|x|2+(6−2B)|x|<1(−B−6C)|x|3+(6B+30C)|x|2+(−12B−48C)|x|+(8B+24C)1≤|x|<2
  • B=0: 整数の位置で 0 か 1 になり、1 倍で元の値に一致[1]
  • B>0: 元の値を通らず、1 倍でもぼける
  • 負の裾: 段差の両側に行き過ぎ(リンギング)。Mitchell と Netravali はぼけ・リンギング・異方性の兼ね合いを (B,C) の平面で分類[1]

縮小とアンチエイリアス

w={1/ss<11s≥1
  • 縮小ではカーネルを 1/s 倍に広げ、出力のナイキスト周波数を超える成分を落とす[6]
  • 広げないと、その成分が低い周波数へ折り返してモアレになる
  • オフでは w=1
  • 最近傍はオンでも間引きのまま
  • 平均画素法はもともと重なりで計算するので、設定によらず同じ結果

計算の色空間

VL={V/12.92V≤0.04045((V+0.055)/1.055)2.4V>0.04045
  • sRGB の値は光の量に比例しない[9]
  • 白と黒の 1 画素の縞を 1/2 に縮めると、sRGB のままの平均は 128、光の量の平均は 188

ドット絵向けの手法

手法左上の角の規則出典
Scale2x(EPX)上 = 左、上 ≠ 下、左 ≠ 右 のとき左の色[8]
Scale3xScale2x の規則を 3 × 3 の 9 画素へ広げたもの[8]
Eagle左 = 左上 = 上 のとき、その色[10]
  • 色が完全に同じかだけを比較、写真では規則がほとんど働かず最近傍に近い結果
  • 倍率以上になるまで 2 倍か 3 倍をくり返し、最後は最も近い画素を写す
  • 1 倍以下は最近傍と同じ

このツールで決めたこと

  • 正解との PSNR は画像の中央 240 × 180 画素で計算
  • 拡大の正解: 平均画素法で 1/s に縮めた画像を s 倍に戻し、元の画像と比較
  • 縮小の正解: アンチエイリアスありの Lanczos8 の結果。基準に近い Lanczos は高い値になりやすい
  • 1 倍の PSNR は表示なし
  • PSNR の値は見た目の良さと一致しない。リンギングの目立つ手法が高い値になることもある
  • ファイルは長辺 1024 画素に縮めて使用
  • 見本: 月面は NASA の画像[11]、ほかは自作

出典

  1. 3 次のカーネルの式・(B,C) の分類・Mitchell の値D. P. Mitchell and A. N. Netravali, “Reconstruction filters in computer-graphics,” ACM SIGGRAPH Computer Graphics, vol. 22, no. 4, pp. 221–228, 1988, doi:10.1145/378456.378514
  2. 3 次の B スプラインの補間H. S. Hou and H. C. Andrews, “Cubic splines for image interpolation and digital filtering,” IEEE Trans. Acoustics, Speech, and Signal Processing, vol. 26, no. 6, pp. 508–517, 1978, doi:10.1109/TASSP.1978.1163154
  3. Catmull-Rom のスプラインE. Catmull and R. Rom, “A class of local interpolating splines,” Computer Aided Geometric Design, pp. 317–326, 1974, doi:10.1016/B978-0-12-079050-0.50020-5
  4. 3 次の補間(畳み込みの形)R. G. Keys, “Cubic convolution interpolation for digital image processing,” IEEE Trans. Acoustics, Speech, and Signal Processing, vol. 29, no. 6, pp. 1153–1160, 1981, doi:10.1109/TASSP.1981.1163711
  5. 拡大縮小のフィルタの比較(箱・三角・Lanczos など)K. Turkowski, “Filters for common resampling tasks,” Graphics Gems, Academic Press, pp. 147–165, 1990, doi:10.1016/B978-0-08-050753-8.50042-5
  6. 縮小でカーネルを広げる・横と縦の 2 回の計算D. Schumacher, “General filtered image rescaling,” Graphics Gems III, Academic Press, pp. 8–16, 1992, doi:10.1016/B978-0-08-050755-2.50012-9
  7. Lanczos の窓C. E. Duchon, “Lanczos filtering in one and two dimensions,” Journal of Applied Meteorology, vol. 18, no. 8, pp. 1016–1022, 1979, doi:10.1175/1520-0450(1979)018<1016:LFIOAT>2.0.CO;2
  8. Scale2x・Scale3x の規則A. Mazzoleni, Scale2x Algorithm
  9. sRGB の変換の式IEC 61966-2-1:1999, Multimedia systems and equipment – Colour measurement and management – Part 2-1: Default RGB colour space – sRGB
  10. Eagle の規則・EPX の由来Wikipedia, Pixel-art scaling algorithms
  11. 月面の画像E. Wright, CGI Moon Kit, NASA's Scientific Visualization Studio, 2019

関連ツール