本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

ASTCの圧縮ノイズを調べてみた

今回は期待のASTC圧縮のノイズを調べてみました。

ASTCについて

詳しいことは各所のサイトで触れられていますのでここでは簡単に。 Adaptive Scalable Texture Compression の略で、ARM が開発しました。DXTCがS3の特許関係で色々とあったためか、 ASTC はロイヤリティフリーなことも取り上げられています。
基本的には他の現世代のテクスチャ圧縮と同じくブロックごとのモードを多数持っていることが特徴です。ASTC 固有の特徴は、なんといってもブロックサイズの変更ができるということではないかと思います。

実験

ASTCではブロックサイズを変更することができ、許容できる範囲で BPP を落として削減することができます。試行錯誤の余地があるといえます。
ここでは BC7 や PVRTC への対抗と考えて、それと同じレベルの BPP でチェックをしてみたいと思います。

圧縮のためのツールとしては Mali Texture Compression Tool を用いています。圧縮品質としては最大の品質レベルを選択してデータを作成しました。

ASTC 8BPP(4×4)での結果

8BPPとなるように 4×4 ブロックで圧縮を行いました。この場合は以下のような結果となりました。次の規格レベルだけあって予想通り綺麗に圧縮できていると思われます。左右に並べたくらいではちょっとわかりません。

compare_std_astc_sample01

compare_std_astc_sample02

ツールのほうでは圧縮前後でノイズ具合も表示できるのでこちらの画像も掲載しておきます。
ノイズは割と控えめな感じかと思われます。

astc-4x4-noise-sample01
astc-4x4-noise-sample02

苦手と思われる髪の毛先端付近を拡大してみてもこの通りです。
compare_astc-4x4_zoom

ASTC 2BPP(8×8)での結果

PVRTCへの対抗としてピタリ 4BPP となるような設定がなかったため、もう1レベル下げて 2BPP としブロックサイズを 8×8 にして圧縮してみました。先ほどの結果と比べるとノイズの多さがわかります。ただノイズの多さの割には、結果画像を見ると許容範囲なのでは?と感じます。

astc-8x8-noise-sample01
astc-8x8-noise-sample02

そこで一部分を拡大してみました。今回は目の部分がよくわかる感じだったので、こちらを切り出しています。
astc-8x8-zoomup01

この場合の圧縮後の全体画像はこんな感じになってます。ツール上ではわかりにくかった部分も意外と劣化を感じますね。ぱっと見ではよくわからないのは優秀といったところでしょうか。しかし拡大すると前述の通り目の周りとか細めの髪の毛の部分とかにブロックノイズを確認することができます。

sample01-astc-8x8

個人的には PVRTC2 の 4BPP といい勝負ができそうな気がします(この画像については)。

OpenGLデータ解析
すらりんをフォローする
すらりん日記
タイトルとURLをコピーしました