Nanashi-softソフトメニューカルナノード


◇カルナノード −画像圧縮フォーマット−

当ツールでは、オリジナルフォーマットを採用しています。
どのような画像が美しく、より高圧縮になるのかを説明したいと思います。

◎フォーマット概要

まず、どのように圧縮されるのかを説明します。

工程1:フルカラー24bitのBMP画像を、15bitに変換する。
方法は単純に、赤・青・緑各成分の下位3bitをカットして、8bitを5bitに減らします。
つまり、グラデーションを多用した画像の場合、この段階で無惨な画像になってしまう可能性があります。

工程2:RGB形式をYCbCr形式に変換する。
色の表し方を知っている方はすぐに分かるのですが、そうでない方の為に簡単に説明します。
RGB形式とは、赤・緑・青をそれぞれ数値化して表したものです。一般的にパソコンではこれを使います。
YCbCr形式とは、輝度・色差青・色差赤をそれぞれ数値化して表したものです。テレビで使われている方式と言うと分かり易いでしょう。

工程3:Y成分の下位1bitと、Cb・Cr各成分の下位2bitをカットする。
元々、RGB形式よりも、YCbCr形式の方が表す事の出来る範囲が広いです。
このぐらいカットしたところで、ディスプレイ表示には殆ど影響を受けません(本当かな?(^^;)

工程4:Y成分はそのままで、Cb・Cr各成分を交互にカットする。
つまり格納するデータは、Y・Cb、Y・Cr、Y・Cb、Y・Cr……のようになると言うことです。
人間の目には、Cb・Cr各成分の変化はあまり認識できません(目の構造上そうなっているそうです)。
そこで、Cb・Cr各成分は、丁度ディザリング状態になるように交互に抜きます。
そうする事で、確実に元データの3分の2のサイズに縮まります。

工程5:Y・Cb・Cr成分をランレングス圧縮
同じ色が続いたら圧縮を行うと言うことです。
RGBで判断するわけでは無いので、大体同じ色だったら圧縮される事になります。
但し、横方向にしか見ませんので、縦線は対象外になります。

工程6:Y・Cb・Cr成分のタイリングをランレングス圧縮
交互に色が続いたら圧縮を行うと言うことです。
これもRGBで判断するわけでは無いので、大体同じ色だったら圧縮される事になります。
但し、横方向にしか見ませんので、縦の破線等は対象外になります。

工程7:秘密(笑)
通常は使われない工程がもう1つ存在します。
使われないので説明しません(じゃあ書くなよ(^^;)

◎画像を美しく保つ方法

一番問題となるのは、工程1でしょう。
これを防ぐには「なるべくグラデーションを使わない」しか無いです。
グラデーションを表現する際には、ディザリングを用いると影響を受け辛くなるでしょう。
思い切って、256色に減色して使うのも1つの手です(ツールによっては美しいディザリングで表現してくれる為)

かなりの色の変化を起こすフォーマットですので、色が重要になるゲームは辛いと思います。
このツールに限らず、ゲームのプレイヤー中には色弱の方もいますので、文中等で補足した方が良いでしょう。

◎圧縮率を高める方法

横方向に同じ色を連続させるか、きっちりとタイリングするかすると小さくなります。

配布時の容量を減らしたい場合は、高圧縮なツールを用いて圧縮すると良いでしょう。
実は一般的な圧縮方式は展開スピードの関係上使っておりません。その為、ツールによってはかなりサイズを縮める事が可能です。


TOPソフトメニューカルナノード