PhotoShopで最適な画像保存をする為に。ニアレストネイバー法やバイキュービック法でのリサイズやJPEG圧縮などを検証したよ。

Advertisement

どうも。某サイトのクオリティにがっかりしてる松本です。
これからは自分らしく普段通り書いていこうと思いますので宜しくお願い致します。


さて、今回はPhotoShopの画質変換・圧縮についてです。
ニアレストネイバー法、バイリニア法、バイキュービック法でのリサイズと、保存時の圧縮率パーセンテージ別、更に写真の特徴なんかとを比較すると何か新しい発見があるかなぁとふと思いましたので検証してみます。そもそも、それ何?という方も、簡単な説目を書いておきますので合わせてご覧ください。
それと「プログレッシブ、プロファイル、カラーマネージメント」なんかが複合的に絡むとややこしいので割愛。

ニアレストネイバー法

一番シンプルなアルゴリズムなんじゃないでしょうか?
変更前の座標と、変更後の座標を、ピクセル単位で計算し移動させ、そのピクセルに対して変更前の色を割り当てる。
ドットをそのまま拡大、縮小する ような感覚でしょうか。色数も変わりませんので補正されませんが、ファイルサイズも軽く処理も早いです。
また、色の補完をしないのでドット画などのエッジを保ちたいまま変換させる事に有効です。

バイリニア法

ニアレストネイバー法が座標の色をそのまま取得してくる変換方式に対し、こちらは複数色の平均値を計算して変換後に割り当てます。
平均値を取得してくるので、「こういう風に縮小・拡大されるんだろうなー」と思ったような画になると思います。

バイキュービック法

バイリニア法の精度を上げたような方式です。
変換前エリアの平均値ではなく、その周辺色を計算値として取り入れ色を補完させます。
アルゴリズムとしては一番複雑で、処理も大きいです。また、色数をどんどん補完するので色数は多くなります。
上記2つの方法より、より滑らかなグラデーションを表現できます。

バイキュービック法(滑らか)

バイキュービック法の滑らかバージョン(まんまw)
補完色を計算する際、バイキュービック法は黒(線)等の周辺に白く浮きを作る傾向があるようです。
エッジが立つので少し画に変化が現れます。それをより滑らかにした方式です。
画像を拡大する場合は「エッジ効果」も拡大されてしまうので、滑らかにする必要があります。

バイキュービック法(シャープ)

これは逆に、よりエッジを立たせる方式です。
つまり縮小時により線がはっきりしますので見やすくなります。
ただし線を際立たせる画像の場合は効果的ですが、必要の無い画像の場合は不自然な物になる可能性があります。
と、ここまでは学校なんかでも習うと思いますし、知ってる方も多いと思います。
で、実際に画にしたらどうなるんだってのを、写真の特徴別、拡大・縮小、そして保存時のパーセントを加えて検証していきます。
ちなみに拡大・縮小時の変換方式はPhotoShopの場合
編集 > 環境設定 > 一般
で変えられます。
上記5つの方式名を毎回書くのもアレなのでA~Cとし、Cは基本、普通のバージョンだけで検証します。他を使用する場合はC(滑らか)、C(シャープ)とします。
※クリックで拡大画像に切り替わるので、是非大きいサイズでご確認ください。

画像を縮小する

元絵(800px×800px)




左からA、B、C。通常に使った感じはあまり変わりありませんね。
Aの場合エッジの立ち具合がこの写真の場合は綺麗ですね。
拡大するとこのようになります。



Cは滑らかすぎて髪部分のコントラストが弱くなってますね。
※800px→400px JPEG 画質:100%

画質を落とす

元絵(800px×800px)


左からJPEG80%,50%,そしてGIF


80%を超えると劣化が激しいです。50%まで圧縮するなら、GIFでもあんまり変わりませんね。
色数が少ない為、あまり影響がありませんでした。


複雑な配色の場合

元絵(800px×800px)



JPEG80%


意外と綺麗ですね。
写真のザラつきとコントラストの強さが画質の悪さを誤魔化しているのかもしれませんね。

GIF保存


粗さが目立ちます。色数がGIFの256色で補完できなくなりました。

更に縮小をしてみます。
左から、Cの方式で800px→400pxに。次にAの方式で。そして右はAを更にGifにした物です。


やはり複雑になると、Aの方式ではエッジが立ちすぎてしまいます。
写真の雰囲気が荒っぽさがある物なので、ここは好みの別れどころでしょうか。

イラスト

元絵(800px×800px)



GIF保存


GIF特有の感じが出ちゃってますね。こういった短調なグラデーションがある場合はGIFは難しいですね。

では、イラストをJPEGでリサイズしてみましょう。
左からA、B、Cです。


イラストだと顕著ですね。滑らかさはCがダントツです。
ではここでC(滑らか)、C(シャープ)も見てみましょう。


C(滑らか)は本当に滑らかですね。ただぼやっとしています。
C(シャープ)ですが、線周辺に白くエッジが出ているのがわかると思います。


ならべるとよくわかります。

こんな感じでしょうか。
これらは元の写真により、効果が大きく変わります。
透過PNGなんかを組み合わせるともっと面白いと思うんですが、反響があれば続編を書こうと思います。