UAP14475 のブログⅢ

Yahoo!ブログから引っ越してきました。パソコンとトイガンが大好物です。  暇になると艦これを始めてしまいます。とにかく秘書艦は阿武隈ちゃんで。

シャープなNearest、ソフトな半径8

私はずっと勘違いしてたんですがSincとかLanczosって半径が小さいほどシャープっぽいですね・・・
SSIM値が下がっているあたり、やはりシャープはDCTと相性が悪そうです。
 
で、今回研究したのはNearestNeighbor、Bilinear、Sinc、Lanczosの4つによるSSIM値の違いです。
NearestNeighborは「最も近いところ」という意味でその名の通り最も近い画素の値を使用します。
Bilinearは画像伸縮時の補間などにも使用される方法でBicubicより低精度とされています。
SincはBlackmanSincという名前でSinc関数を利用したものだと思われます。高精度です。
Lanczosは・・・よく分かりませんがとりあえず高精度です。
なおSincとLanczosは半径1、半径3、半径5、半径8の場合を試しました。
各設定の適応は輝度・色差の両方です。
 
■SSIM値を見る意味について
SSIM値はx264が(リサイズ後の)出力前のデータと出力後のデータを比較して
どの程度(視覚的に)似ているかを数値化したもので、大きいほど良好です。
MP4で使用されるDCT(離散コサイン変換)はその特性上、高周波成分より低周波成分の方が再現しやすく、
さらに今回はAQをVAQ0.75にしているのでディティールの崩壊やノイズを起こしやすくなっています。
そのためよりシャープであるほどSSIM値は低く、よりソフトであるほどSSIM値は高くなると仮定しました。
よって今回の実験ではSSIM値で判断します。
プラセボ効果も防げますし・・・
 
 
 
■実験結果
_・ NearestNeighbor : 0.924
_・ Bilinear : 0.954
_・ Sinc 半径1 : 0.939
_・ Sinc 半径3 : 0.944
_・ Sinc 半径5 : 0.941
_・ Sinc 半径8 : 0.939
_・ Lanczos 半径1 : 0.938
_・ Lanczos 半径3 : 0.941
_・ Lanczos 半径5 : 0.939
_・ Lanczos 半径8 : 0.938
_・ AviUtl標準設定 : 0.940
 
■SSIM値昇順 実験結果
_・ NearestNeighbor : 0.924
___・ Lanczos 半径1 : 0.938
___・ Lanczos 半径8 : 0.938
___・ Sinc 半径1 : 0.939
___・ Sinc 半径8 : 0.939
___・ Lanczos 半径5 : 0.939
____・ AviUtl標準設定 : 0.940
____・ Sinc 半径5 : 0.941
____・ Lanczos 半径3 : 0.941
____・ Sinc 半径3 : 0.944
______・ Bilinear : 0.954

ついでにAviUtl標準設定のものも実験しました。
 
実験の結果、NearestNeighborが最もシャープであると分かりました。
しかしNearestNeighborはシャープすぎてジャギー(ノイズ)が酷いので実用性は微妙です。
使えるのはLanczosやSincの半径1からでしょう。
ちなみに私はSinc 半径1が好みです。Sincだとなんだか安心します。

しかしSincの半径1と半径8は0.93クラスなのに半径3と半径5は0.94クラスとは・・・
極端に小さいか大きいとSSIMが小さくなるんでしょうかね。
なんだか上手く実験できなかったような気がします・・・
仮定自体がかなりいい加減なものだからでしょうね・・・
 
 
 
なお今回使用したサンプルファイルは以前に上げた
変換設定は最新のAU-eNVHHS.2Ab。設定内容は以下の通り。
イメージ 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 











































































 
※修正とお詫び (1/12)
「Sinc 半径8」、「Lanczos 半径8」、「AviUtl標準設定」の3つにおいてサンプルファイルを取り違えていました。
数値は差し替えておきました。誤った結果を出してしまい、すみませんでした。