今回は少し趣向を変えて、コンピュータの仕組みについてお話ししてみます。 ちょっと難しい話もありますが、パソコンは今や生活の一部とも言えるほど身近なものですし、仕組みが分かるとすごく面白いですよ。
今日のテーマは、ファイルのデータサイズを表す「バイト」についてです。
バイトって何?
バイト(byte)とは、「情報量」を表す単位です。 よく似た言葉に「ビット(bit)」がありますが、これも情報量の単位で、
- 1 byte = 8 bit
という関係にあります。やや紛らわしいですが、このあたりは深く考えずに、m(メートル)と cm(センチメートル)の関係と同じようなものだと思ってください。
ビットって何?
byte・bit は情報の量を表す単位で、1 byte は 8 bit に相当する、ということは分かりました。では、1 bit というのはどれぐらいの情報量を表すのでしょうか。
1 bit とは、二者択一で表現できる情報の量を表します。
つまり、
- 黒と白のどちらであるか
- 男と女のどちらであるか
- 0 と 1 のどちらであるか
このような情報が 1 bit の情報です。
逆に言えば、「0 と 1 のどちらであるか」という情報を表現するには 1 bit の情報量が必要、ということです。もっと複雑なものを表現したければ、より多くの情報量が必要になります。
「色」という情報の情報量
ちょっと難しくなってきましたので、もう少し具体的に、「色」という情報を例に考えてみましょう。
先ほど、「黒と白のどちらであるか」という情報は 1 bit の情報だと言いました。これは例えば、黒と白しかない(二者択一な)世界において、
0 = 黒 1 = 白
のようにルールを決めておけば、「0」か「1」という 1 桁の数値(1 bit の情報)があれば「黒か白か」を表現できる、ということです。
では、黒・青・赤・白の 4 色がある世界ならどうでしょうか。
00 = 黒 01 = 青 10 = 赤 11 = 白
というようなルールで、2 桁の「0/1」で表現できますね。 この場合の情報量は 2 桁なので 2 bit になります。
同様に、
- 3 桁の「0/1」(3 bit)を使えば 2 × 2 × 2 = 8 通り
- 10 桁の「0/1」(10 bit)を使えば 210 = 1024 通り
- 24 桁の「0/1」(24 bit)を使えば 224 = 1677 万 7216 通り
の色を表現できます。
コンピュータの世界では、「1677 万色も使えれば十分だろう」ということで、この 24 bit で色を表現するルールが一般的に使われています。
例えば、画像データの情報量
コンピュータの世界で「色」を表現するには 24 bit の情報量が必要、ということは何となくお分かりいただけたでしょうか。 ではさらに具体的な例として、「画像データ」の情報量について考えてみましょう。
ここに、3 pixel × 3 pixel の大きさのカラー画像データがあるとします。3 × 3 なので、全部で 9 つの画素を持つ画像ということになります。 それぞれの画素が色の情報を持っているので、「24 bit の情報量を持った画素が 9 つ集まったデータ」ということになります。 つまり、この画像データの情報量は
- 24bit × 9 = 3 byte × 9 = 27 byte
です。
同様に、100 pixel × 100 pixel の画像データなら、
- 24 bit × 100 × 100 = 3 byte × 10000 = 30000 byte ≒ 30 KB
になります。
※ いきなり出てきましたが、KB(キロバイト)というのは byte の頭に「約1000倍」を意味する K(キロ)が付いた単位です。m(メートル)に対する km(キロメートル)とほぼ同じ意味ですね。
実際に見てみよう
では、実際にパソコン上で画像データを作ってデータサイズを見てみましょう。
Windows の「ペイント」を開いて、100 pixel × 100 pixel の画像を作って保存してみてください。保存する際は、「ファイルの種類」を「24 ビット ビットマップ」にしてください。(面倒な方は、作ったものをこちらに置いてありますので、右クリックからダウンロードしてみてください。)
保存されたファイルのサイズを見ると、約 30 KB になっていますね。これが、コンピュータ上におけるデータサイズの正体です。ファイルの重い・軽いというのは、実はそのファイルが持っている「情報量」が大きい・小さいということだったんですね。
ちなみに、Apple 社 のロゴマークは林檎が一口かじられた形をしていますが、あれは英語で「かじる」を意味する “bite” とコンピュータの情報量の単位である “byte” を掛けたものだそうですよ。