ここでは、色数による画像データのファイルサイズを説明します。
画像データは色の数にも左右されます。
RGBカラー、CMYKカラー、Labカラー、グレースケール、インデックスカラー、モノクロ2階調などがあります。 ここではRGB、CMYK、グレースケール、モノクロ2階調を説明します。
8bit/16bit
まずはパソコンの単位、bitやbyteの意味を説明します。
デジタルの基本は2進数で、全て「0」と「1」で表されます。 「0」と「1」だけで、なんで映像や文字やゲームができるんだ?と思いますが、「0」と「1」がもの凄い数並び規則性を持って並んだり、並ばなかったりして、様々なデータを形成しています。
この「0」か「1」の1桁の値を1bit(ビット)と呼びます。
1桁だと、「0」と「1」の2つしか表示できませんが、
2桁(bit)になると、「00」「01」「10」「11」の4つになり、
3桁(bit)で「000」「001」「010」「011」「100」「101」「110」「111」、つまり2の3乗で8
8桁(bit)で2の8乗の256
の表示が可能となります。
そして16桁(bit)では65536となります・・・・。
(ちなみに8bit=1byte(バイト)です。)
Bit | 1bit | 2bit | 3bit | 4bit | 5bit | 6bit | 7bit | 8bit | 16bit |
2進数 | 1 | 11 | 111 | 1111 | 11111 | 111111 | 1111111 | 11111111 | 1111111111111111 |
10進数 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 65536 |
8bit/チャンネル
一般的な画像はコレです。
RGBカラーではR(赤)、G(緑)、B(青)三つの色情報をチャンネルと呼び、1ピクセルにつきそれぞれに8bit(256色)の情報が納められます。 R、G、Bそれぞれ8bitの色情報を持っているので、8×3=24bitということになり、24bitカラーなどと呼ばれたりもします。(色の表現数は256の3乗となり16777216色となります)
CMYKカラーでは、C、M、Yの三つにKが加わり8×4=32bitとなり、RGB画像よりも大きなデータサイズになります。 しかし、色の表現数はRGBのように256階調で表さず%表記(0~100)を使います(アナログに近づけるため小数点以下にも対応)。 理論上はRGBの色数を遙かに越えますが、実際は同等の数字となります。 (あくまで印刷目的のためのカラーモデルです)
グレースケールの場合、色チャンネルが一つしかなく、8bitで済み、黒色から白色までの色調は256段階となります。 (256という数字は少ないとも感じられますが、実際に人間の目には判断できない色の違いです)
この1ピクセル当たりのサイズ(bit)に、ピクセル数をかけた数が、画像データのサイズとなります。 bit計算なので、最終的にbyte計算になおすと大体の容量が計算できます。 ※
※ 画像ファイルには、ピクセルデータ以外の情報、ファイル名やデジカメの撮影記録情報(Exif情報)などが含まれ、同じピクセルサイズの画像であっても、若干の違いが出てきます。
余談:昔のパソコンやゲーム機などは、表示できる色数が少なく、256色、16色、8色、などと限られた色で、ゲームやグラフィックが表現されていました。
16bit/チャンネル
ほとんどのケースにおいては、8bit/チャンネルの画像で十分に活用できるのですが、画像の補正を必要とするプロや研究機関では、16bitの色情報を持った画像が使われています。 単純にデータサイズは8bit→16bitと倍になり、1ピクセルあたり16×3の48bit(RGBの場合)となりますが、使える色情報量は、65536の3乗と、とてつもない大きな数字になります。 しかし、これはあくまで理論値であり、実際にパソコンのモニターでその色全てを表示することも、肉眼では判断することも不可能な領域となります。 微妙な補正を行ったり、補正による劣化を最小限に抑えたり、画像の科学的な解析を行ったりするために使われています。
モノクロ2値
文字や図面などのをスキャニングする場合によく使われます。2値とは白と黒の2色のみしか使われず、1ピクセルにつき1bitのわずかな情報量しか持ちませんので、データサイズがものすごく小さくなります。
簡単な計算方法
目安となる計算方法です(8bit/チャンネル、無圧縮の場合)
RGB= 24(bit)×ピクセル数(縦×横)÷8(byte)
CMYK= 32(bit)×ピクセル数(縦×横)÷8(byte)
グレースケール= 8(bit)×ピクセル数(縦×横)÷8(byte)
となります。
モノクロ2値の場合単純にピクセル数を8(byte)で割ります
RGB:3
CMYK:4
グレースケール:1
2値:1/8
注意
ここでのデータサイズは、TIFF画像など無圧縮画像のデータサイズとなります。 jpegなどの圧縮画像はそのデータを圧縮するため、データサイズは小さくなりますが、画像を表示した時のデータサイズ(メモリ使用量)はピクセル分のデータとなります。
→ 「圧縮画像」参考