「ピクセル」とは
ピクセル(pixel)とは、デジタル画像を構成する最小単位のことで、画素ともいいます。
デジタル画像を大きく拡大して見ると、小さな正方形の集まりのように見えます。この一つ一つがピクセルであり、それぞれのピクセルに「何色で表示するか」という情報が記録されています。
たとえば、横1200ピクセル、縦800ピクセルの画像なら、
1200×800=960,000
より、全部で960,000画素からできています。
ラスタ形式とピクセル
写真や一般的な画像では、画像を多数のピクセルに分け、それぞれのピクセルの色を記録します。このような画像の表現方法をラスタ形式(ビットマップ形式)といいます。
たとえば次のような画像を考えます。
■ ■ □ □
■ ■ □ □
□ □ ■ ■
□ □ ■ ■
このように、小さなマス一つ一つの色を記録して画像全体を表すのがラスタ形式です。
JPEG、PNG、BMPなどは、基本的にラスタ形式の画像を扱う代表的なファイル形式です。
ラスタ形式では、画像を拡大すると、一つ一つのピクセルも大きくなります。そのため、大きく拡大すると輪郭が階段状になったり、画像が粗く見えたりすることがあります。
これに対して、線や円などを座標や数式によって表す方式をベクタ形式といいます。ベクタ形式は図形を計算して描き直せるため、一般に拡大してもラスタ画像のような画素の粗さが現れにくくなります。
画像の画素数
画像の総画素数は、
横の画素数 × 縦の画素数
で求めます。
たとえば1920×1080画素の画像なら、
1920×1080=2,073,600
より、
2,073,600画素
です。
「1920×1080」という表記は、横に1920個、縦に1080個のピクセルが並んでいることを表しています。
解像度
「解像度」という言葉は、文脈によっていくつかの意味で使われます。
画面や画像の画素数としての解像度
ディスプレイでは、
- 1920×1080
- 1280×720
- 1024×768
などのように、横と縦の画素数を解像度と呼ぶことが多くあります。
同じ大きさの画面なら、画素数が多いほど一つ一つのピクセルを細かくできるため、より細かな表示が可能になります。
逆に、同じ大きさの画面で
1280×960 → 1024×768
のように解像度を下げると、画面を構成するピクセル数が少なくなります。
試験問題では一般に、同じ画面全体を使って表示するものとして、文字や画像などが大きく表示されるが、一度に表示できる情報量は少なくなると考えます。
なお、画像ファイルそのものを変更しているわけではないので、ディスプレイの解像度を変えただけで保存されている画像ファイルのデータ量が小さくなるわけではありません。
dpiとppi
画像の細かさを表す単位としてdpiが使われることがあります。スキャナの読み込みの細かさなどで使われます。
dpiは、
dots per inch
の略で、
1インチ当たりに何個の点があるか
を表します。
たとえば300dpiなら、1インチの長さの中に300個の点を並べます。
横2インチ、縦3インチの範囲を300dpiで読み取る場合、
横:
300×2=600
縦:
300×3=900
したがって総画素数は、
600×900=540,000
となります。
ピクセルと色情報
画像のデータ量を考えるときは、
ピクセルの数
だけでなく、
1ピクセルに何ビットの情報を持たせるか
も重要です。
同じ1000×1000画素の画像でも、1画素を1ビットで表す画像と24ビットで表す画像では、必要なデータ量は大きく異なります。
1ビットの白黒画像
1ビットでは、
2¹=2
通りを表せます。
そのため、
などと決めれば、1画素を1ビットで表せます。
たとえば横10画素、縦20画素なら、
10×20=200
画素です。
1画素1ビットなので、
200×1=200ビット
となります。
1バイト=8ビットだから、
200÷8=25
より、データ量は25バイトとなります。
階調とは
白黒だけでなく、「黒」「濃い灰色」「薄い灰色」「白」のような明るさの段階を表す場合、この段階数を階調数といいます。
nビットで表現できる階調数は、
2ⁿ
です。
たとえば、
1画素当たりのビット数と階調数
| 1画素当たりのビット数 | 表現できる階調数 |
| 1ビット | 2階調 |
| 2ビット | 4階調 |
| 4ビット | 16階調 |
| 8ビット | 256階調 |
となります。
したがって、「16階調」と書かれていた場合、
16=2⁴
なので、1画素当たり4ビット必要です。
8ビットの濃淡画像
8ビットでは、
2⁸=256
通りの値を表せます。
符号なし整数として扱えば、
0~255
の256種類です。
ここで、
256通りあるが、最大値は255
であることに注意します。
0も一つの値として数えるため、
0、1、2、…、255
で全部で256通りになります。
RGBによる色の表現
カラー画像では、光の三原色である
- R:Red(赤)
- G:Green(緑)
- B:Blue(青)
の強さを組み合わせて色を表す方法が広く使われています。
これをRGB表現といいます。
たとえば、
- (255, 0, 0) → 赤
- (0, 255, 0) → 緑
- (0, 0, 255) → 青
- (255, 255, 255) → 白
- (0, 0, 0) → 黒
のように表します。
RGB各8ビットの場合
R・G・Bをそれぞれ8ビットで表すとします。
8ビットでは、
2⁸=256
段階を表せるので、
となります。
これらは独立に組み合わせられるため、色数は足し算ではなく掛け算になります。
256×256×256
=2⁸×2⁸×2⁸
=2²⁴
=16,777,216
色を表現できます。
約1677万色です。
また、RGBそれぞれ8ビットなので、1画素当たり、
8+8+8=24ビット
です。
8ビット=1バイトだから、
24÷8=3
より、
1画素=3バイト
となります。
画像のデータ量
圧縮を行わず、ヘッダなどの付加情報を無視する場合、画像のデータ量は、
横画素数×縦画素数×1画素当たりのビット数
で求められます。
バイトで求める場合は、最後に8で割ります。
つまり、
(横画素数×縦画素数×1画素当たりビット数)÷8
となります。
24ビットフルカラー画像のデータ量
たとえば、1200×800画素、RGB各8ビットの画像なら、1画素は24ビット=3バイトです。
したがって、
1200×800×3
=2,880,000バイト
となります。
1MB=1,000,000Bとするなら、
2,880,000÷1,000,000=2.88
より、
2.88MB
です。
同様に1920×1080画素なら、
1920×1080×3
=6,220,800
より、
6,220,800バイト
となります。