GPG雑学:ゲームで使う画像サイズはなぜ2の乗数なのか?(下)
こんにちは。
前回の記事で、コンピューターは画像を処理するとき
必要なメモリを確報するため、2倍ずつ拡張する
という話をしました。
今日は、その理由について詳しく話したいと思います。
※この記事は前回の記事と繋がる話です。
前回の記事をまだ読んでいない方は
是非、前の記事を先に読んでください。
↓(クリック)↓
ゲームで使う画像サイズはなぜ2の乗数なのか?(上)
理解を助けるため、マンションを例に説明します
Bさんは最近、新しいマンションに引っ越しました。
部屋番号は1103号です。
Q:Bさんの部屋は何階にありますか?
A:11階
私たちは寛容的に、部屋番号の前方2数字が
階数を示すことを知っています。
正に部屋番号だけで部屋の場所が推測できる
素晴らしいルールです。
でも実はこのマンション、20階のビルで
各フロアーには7つの部屋があります。
つまり、総部屋数は 7 x 20 = 140 個あります。
性格がケチな人なら、140個の部屋を職別するために
4桁の番号(9999まで)を使うのは無駄が多いな、と
思うかもしれません。
(実際は1 ~ 140までの数字で番号付けられます。)
仮にマンションの部屋番号を
1から順番につけてみましょう
これて140までの番号で部屋が区別できます。
ある日、106号のNさんから管理室に電話が来ました。
管理人:はい、管理室です。
Nさん:すみません、106号ですが
水道検針に問題があるようです。
ちょっと見て頂けませんか?
管理人:すぐ伺います。
管理人:え〜と、106を7に割って
10から7を引くと残り36で…
106号の階数を計算中
部屋を1から順番に番号付けると
数字は節約できるかも知れませんが
その代わり、場所を特定するため
面倒な計算を行う必要があります。
めんどくさい計算が嫌なのは
コンピューターも同じです。
コンピューターもマンション番号みたいに
画像を特定座標のメモリ位置を
簡単に取得したがっています。
ただし、人は10進数を使う一方
コンピューターは2進数を使っています。
1 → 10 → 11 → 100 → …
コンピューターの数え方
画像情報は単純にメモリー上に並んでいるので
横縦の座標とメモリー住所を都合よく一致させるには
横の幅を少し調整する必要があります。
この幅なら順番に並べても座標が分かりやすいです。
幅が計算しにくい数字だと、空データを挿入して
計算しやすい幅に変えます。
2進数を使うコンピューターの場合は
こんな形が計算しやすくなります。
これがサイズを2の乗数に合わせる理由です。
今度は、ある広いホテルを想像してみましょう
このホテルは建物が広すぎて
各フロアーに部屋が120個もあります。
このホテルでは先ほどのマンションのように
4桁数字で部屋を職別する事はできません
なぜなら2桁で区別できるのは0~99番までで
101番目の部屋からは番号をつけられないからです。
Q:このホテルには、どう番号付けすれば
良いでしょう?
A:桁数を1つ増やす
はい、これで120個の部屋に
問題なく番号をつけられます。
(3桁を使えるので、1000部屋まで問題ないです。)
桁数を増やすことは10を掛けることです。
2進数を使っているコンピューターは
2を掛けることで桁数が1つ増えます。
これでコンピューターが2倍ずつ
メモリを増やす理由が分かるでしょうか?
まとめると
● コンピューターは効率良く計算するため、
● その理由で、ゲームで使う画像は
ご精読いただき、ありがとうございました。
前回の記事で、コンピューターは画像を処理するとき
必要なメモリを確報するため、2倍ずつ拡張する
という話をしました。
今日は、その理由について詳しく話したいと思います。
※この記事は前回の記事と繋がる話です。
前回の記事をまだ読んでいない方は
是非、前の記事を先に読んでください。
↓(クリック)↓
ゲームで使う画像サイズはなぜ2の乗数なのか?(上)
● なぜメモリは2倍ずつ拡張されるのか? ●
理解を助けるため、マンションを例に説明します
Bさんは最近、新しいマンションに引っ越しました。
部屋番号は1103号です。
Q:Bさんの部屋は何階にありますか?
A:11階
私たちは寛容的に、部屋番号の前方2数字が
階数を示すことを知っています。
正に部屋番号だけで部屋の場所が推測できる
素晴らしいルールです。
でも実はこのマンション、20階のビルで
各フロアーには7つの部屋があります。
つまり、総部屋数は 7 x 20 = 140 個あります。
性格がケチな人なら、140個の部屋を職別するために
4桁の番号(9999まで)を使うのは無駄が多いな、と
思うかもしれません。
(実際は1 ~ 140までの数字で番号付けられます。)
仮にマンションの部屋番号を
1から順番につけてみましょう
これて140までの番号で部屋が区別できます。
ある日、106号のNさんから管理室に電話が来ました。
管理人:はい、管理室です。
Nさん:すみません、106号ですが
水道検針に問題があるようです。
ちょっと見て頂けませんか?
管理人:すぐ伺います。
管理人:え〜と、106を7に割って
10から7を引くと残り36で…
106号の階数を計算中
部屋を1から順番に番号付けると
数字は節約できるかも知れませんが
その代わり、場所を特定するため
面倒な計算を行う必要があります。
めんどくさい計算が嫌なのは
コンピューターも同じです。
コンピューターもマンション番号みたいに
画像を特定座標のメモリ位置を
簡単に取得したがっています。
ただし、人は10進数を使う一方
コンピューターは2進数を使っています。
1 → 10 → 11 → 100 → …
コンピューターの数え方
画像情報は単純にメモリー上に並んでいるので
横縦の座標とメモリー住所を都合よく一致させるには
横の幅を少し調整する必要があります。
この幅なら順番に並べても座標が分かりやすいです。
幅が計算しにくい数字だと、空データを挿入して
計算しやすい幅に変えます。
2進数を使うコンピューターの場合は
こんな形が計算しやすくなります。
これがサイズを2の乗数に合わせる理由です。
今度は、ある広いホテルを想像してみましょう
このホテルは建物が広すぎて
各フロアーに部屋が120個もあります。
このホテルでは先ほどのマンションのように
4桁数字で部屋を職別する事はできません
なぜなら2桁で区別できるのは0~99番までで
101番目の部屋からは番号をつけられないからです。
Q:このホテルには、どう番号付けすれば
良いでしょう?
A:桁数を1つ増やす
はい、これで120個の部屋に
問題なく番号をつけられます。
(3桁を使えるので、1000部屋まで問題ないです。)
桁数を増やすことは10を掛けることです。
2進数を使っているコンピューターは
2を掛けることで桁数が1つ増えます。
これでコンピューターが2倍ずつ
メモリを増やす理由が分かるでしょうか?
まとめると
● コンピューターは効率良く計算するため、
2の乗数サイズで画像を管理しています。
● その理由で、ゲームで使う画像は
2の乗数サイズで制作した方が良いです。
ご精読いただき、ありがとうございました。
※ 元ブログから移転された記事です。
コメント
コメントを投稿