こんにちは、OPTPiX ImageStudio プロダクトマネージャーの小野知之です。
皆さんは、画像データ容量の削減方法で悩むことはありませんか?
ゲームなどにおける画像素材のデータ容量削減手法の一つとして、「減色(インデックスカラー化)」は長年、広く使われています。
減色は、テクスチャー圧縮(ETC2,ASTC,BC等)やJPEGと比較し、「にじみ」の無いクッキリした画質を維持したまま8bpp以下に圧縮できるのが最大の特徴です。また、PNGにすればウェブ(WebView)でも使用できます。
その反面、「最大256色まで」という制限のため、画像の解像度(面積、画素数)が高くなるほど画質の劣化が気になるという弱点もあります。
本記事では、この減色の弱点を解決する、OPTPiX ImageStudio の「重要領域指定減色」機能と、本日リリースした Ver.8.8 の新機能「重要領域ファインダー」をご紹介します。
高解像度画像の減色における問題点とは
例えばこのような画像を用意します。フルHD(1080×1920)で、画素数は約200万です。フルカラー(24bpp)、使用色数は約69万色です。
元画像
(※大きいので縮小しています)
この画像を ImageStudio の標準設定で256色(8bpp)に減色すると、こうなります。
OPTPiX ImageStudio の通常の減色結果
※ クリックで原寸大で表示(画面をはみ出して表示します)
ご覧のとおり、一見しただけでは256色であることがわからないほどの高画質で減色し、データ容量を約1/3~1/4に圧縮できます。
しかし、このくらいの解像度では、良く見ると「色数不足」による劣化が気になる場合があります。特にこの画像の場合は、瞳を拡大して見比べてみると…
【左】元画像 【右】通常の減色結果
(クリックで400%に拡大した画像を原寸表示)
このように、通常の減色(右)では、ザラザラしたノイズが現れています。
このイラストは、全体的に暖色系で描かれており、瞳部分の小さな面積にのみ緑色が使われています。このため減色で256個の色を決める(カラーパレットを生成する)とき、緑色系は相対的に割り当て数が少なくなり、その結果として瞳に「色数不足」によるノイズが発生するというわけです。
キャラの顔、特に目は、「目につく」最重要とも言えるポイントですから、これは非常に気になりますよね。イラスト全体のクオリティを落としていると言っても良いでしょう。他の箇所なら気にならないかもしれませんが、顔だけは特にキレイに減色する必要があります。
「重要領域指定減色」による画質改善
そこで ImageStudio には、「重要領域指定減色」という機能があります。「ここはキレイに減色したい(色数を多く割り当てたい)」と思う箇所に「重要領域マーカー」を置いて指定し、減色します。
例えばこの画像の場合、一番重要な「キャラの瞳」をクリックしてマーカーを置きます。
重要領域マーカーを配置中の編集画面
この状態で減色を実行した結果がこちらです。
【左】通常の減色結果 【右】重要領域を指定した減色結果
(クリックで400%に拡大した画像を原寸表示)
瞳のノイズがほとんど消えました!
代わりに他のどこかで色数が減らされたわけですが、ほぼ暖色系ですから「どこが減ったか見つけるのは無理」なレベルの違いでしょう。なのに瞳はキレイになりました(とても重要)!
全体はこうなりました。これでも256色しか使用していません。
OPTPiX ImageStudio で重要領域を指定した減色結果
※ クリックで原寸大で表示(画面をはみ出して表示します)
これが、ImageStudio シリーズで20年以上もの歴史を持つ「重要領域指定減色」機能の効果です。
そして新機能「重要領域ファインダー」
さて、この便利な「重要領域指定減色」機能ですが、問題点もありました。
『マーカーを配置しなくてはならない』のです。
…あたりまえと言えばあたりまえなのですが、「ここ重要」と思う箇所を制作者が一枚一枚クリックして指定しなくてはなりません。枚数が多くなると本当に大変です。
ところで、重要領域として指定されるのは「ほぼ顔(目・口)」なのです。命ですから。
そこで、
『目や口にマーカーを自動で置いてくれれば、手間が減るのでは?』
というわけで開発したのがこの「重要領域ファインダー」です。
「重要領域ファインダー」の設定ダイアログ
使い方は簡単。OKボタンを押すだけで、画像中の人物の「顔」を認識して目や口にマーカーを置いてくれます。実は前述のマーカー配置例の画像は、この機能の実行結果なのです。
実行後に更に手動でマーカーの追加や削除も可能です。例えば髪やアクセサリーに追加でマーカーを置くこともできます。
キャラ画像を開いて、とりあえず「重要領域ファインダー」を実行。問題なければそのまま減色するだけ。これで、単に減色するよりもキャラの顔がグっと美しくなります!
これらの減色機能は、特にブラウザゲーム(WebView)などの「キレイで軽いPNGファイルを作りたい!」といったケースで威力を発揮すると思います。
最後に補足
なお、「重要領域ファインダー」の自動検出は完璧なものではありません。キャラの表情やポーズなどによっては、検出できなかったり、おかしな場所にマーカーを置いてしまうこともあります。そのような場合は感度を調整したり、実行後に手動でマーカーの追加・削除をする必要がありますので、ご注意ください。
また、本日リリースした Ver.8.8 では、「重要領域ファインダー」を「アクション」としてマクロ(一括)処理に使用することはできません。今後のアップデートで、「マーカーを自動配置して減色」といった流れをマクロ化できるようにしていきたいと考えています。
画像データ容量削減でお悩みの方は、OPTPiX ImageStudio を是非お試しください。