画像データのまとめ
まず、画素(ピクセル)の意味を。
画像は、画素が集まって表現されているもので、その構成要素の最小単位が画素みたいな感じかな。この画素には、色の情報が格納されている。(以下はグレースケール)グレースケールだと、白から黒までを表現するのだけど、それを255~0までの値を使って表現している。
下の例では、255の値の画素があれば、その画素は白を表現していて、0があればそこは黒を示しているということになる。
この数値がたくさん並んで画像を表現している。例えば、下の例は2400万個の画素が敷き詰められて一つの画像を表しているということになるかな。
この表現幅、今回は255までだけど、その他表現として1023や65535など大きいものもある。これらの違いについて説明すると。
画素はPC上では、ビットの羅列で表現されている。
例えば、PCの中の情報では1001は
2^3*1+2^2*0+2^1*0+2^0*1 = 9
を表している。では、8bitではどうかというと、
0b1111_1111 = 255 ~ 0b0000_0000 = 0
の255値を取りうる。この表現幅になるが、10bitでは1023 ~ 0、16bitでは65535 ~ 0の表現幅になり、より細かいディティールまで表現することができるのだ。
例で挙げているように、255では黒、0では白、127では灰色みたいな感じ。
ちなみに、この画像のデータ量としては、
上の話と同じで、8bitが一画素だと、5000個×5000個あるので
2500万 x 8 = 200,000,000[bit]ある。
これをバイトに直すと
200,000,000 / 8 = 25,000,000
さらに1024*1024(Mbyte)単位に直すと
25,000,000/1024/1024 = 23.84MBになる。
これがグレースケールだが、RGBになると以下の図のように3層に増える。図に示しているように、赤い色を決めるレイヤー、緑の要素を決めるレイヤー、青い要素を決めるレイヤー、の三種類。そしてそれぞれに画素が2500万個入っている。それらを組み合わせて画像が出来上がる。
そのため、単純にグレースケールからRGBの色に変えるだけで3倍の画像データになるということ。