メイプルの便利な何か置き場

拡大アルゴリズムの比較

画像の拡大は超基本的な加工の一つですが、実は奥が深いのです……! ここでは主に 2 倍や 3 倍等の「整数倍の拡大」について述べます。実数倍(3.2 倍とか)については後ろの方で触れたいと思います。今回サンプルとして使うのは、いつぞやに Twitter に上げたこちらの画像です。

元画像

以降はリュウシさんの顔をアップに説明しますが、画像をクリックで全体をご覧になれます(一枚 1 MB ぐらいある大きな画像なのでモバイル回線ではご注意下さい)。

適切な補間アルゴリズムを選ぶ

ドット感をそのままに拡大したいなら「最近傍法」、いい感じに拡大したいなら「xBR」がオススメです。

4倍 最近傍法4倍 xBR

まずは最近傍法から。アルゴリズムとしてはすごく単純で、そのまま拡大しているだけです。アフターランドで黄金を食べて大きくなった時と言えばピンと来るかも? GIMP 2.8 では補間方法に「補間しない」を選べばこの通りに拡大できます。ギザギザが目立ってしまうので嫌な方は嫌かも知れませんね (´∀`;)

一方で元がドット絵とは思えないぐらいイラスト調に拡大できているのが xBR です。ドット絵に特化したアルゴリズムで、一般的な画像編集ソフトではまず選べません。ドット絵をアップスケールするやつというサイトで 2, 3, 4 倍に拡大することが出来ます。手間ですが綺麗ですね~。もちろん完璧ではないのでカクッっとした部分が生じたりします。

どちらのアルゴリズムも背景の空の点々やもやもやが気になりますね。。次はこれを解消する方法を紹介します。

GIMP 2.8 には「補間しない(最近傍法)」の他に「線形」「キュービック」「Sinc (Lanczos3)」がありますが、いずれもボケボケになってしまうので使わないのが無難です。写真だったりイラストだとドット絵程ひどくはならないはず。。

4倍 線形4倍 キュービック4倍 Lanczos3

拡大前にノイズを除去する

JPEG で保存するとノイズが発生してしまうので PNG で保存する……というのは少し詳しい方ならご存じでしょう。しかし上の例では PNG で保存しているにも関わらずノイズっぽいのが出ています。これはメイプルのバグでも何でも無く、少ない色数でグラデーションを表現するディザリングと呼ばれる技術によるものです(→Wikipedia)。通常のゲーム画面では気にならないものも、拡大するとこうして粗が見えてしまうのです。。

ということでこのディザをいい感じに無くすために GIMP 2.8 の「フィルター」→「ぼかし」→「選択的ガウスぼかし」を画像の拡大前に行うとほら! いい感じ!!

4倍 最近傍法選ガぼかし → 4倍 最近傍法選ガぼかし → 4倍 xBR

JPEG で保存した時のノイズも結構取り除けます。私の場合は動画から 1 フレーム切り抜く時がそうですね。

注意点としては“ぼかし”の名前の通り、細部は少し潰れてしまいます。初期値の「ぼかし半径 5.00」だとちょっと強いので、1.002.00 ぐらいの範囲でお好みの数字を見つけてみて下さい。

画像を実数倍する

実数倍では「最近傍法」は非推奨で、「xBR」に関してはそもそもアルゴリズムが対応していません。そこで実数倍のアルゴリズムで一旦大きめに拡大して、その後「線形」等のアルゴリズムで縮小します。

3.2 倍に拡大するのを例に取ると、「4 倍に拡大」→「0.8 倍に縮小」の手順を踏みます。全然違いますね。。

3.2倍 キュービック最近傍法 → キュービックぼかし → xBR → キュ

ある程度大きくするなら直接「最近傍法」で拡大でもそれっぽく見えます。2 倍未満の場合は粒の不均一さが目立つので、上のように段階を踏む方が良いでしょう。

waifu2x ってどう?

二次元画像向きだとされる waifu2x も、ドット絵だとかなり……バリバリになってしまいます。メイプルのスクショには不向きですね。

4倍 waifu2xぼかし → 4倍 waifu2x

ただしメイプルの画像でも、元がイラスト調だと xBR よりもめちゃくちゃ上手くいきます。ルシードの例では輪郭がはっきりしてて流石ですね!

元画像ぼかし → 4倍 xBRぼかし → 4倍 waifu2x

まとめ

最初に「選択的ガウスぼかし」でノイズを取り除いてから「最近傍法」や「xBR」で拡大しましょう! もし他に良い方法があればぜひ教えて下さい (*´∀`*)

外部リンク

ドット絵をアップスケールするやつ …… xBR で拡大できます。
waifu2x-multi …… waifu2x で拡大できますが、処理に時間が掛かります。

このページの更新日 2019-11-07

inserted by FC2 system