2G(ギガ)の壁


皆さんは、2G(ギガ)の壁という業界用語を知っていますか?晴れ晴れ

2Gの壁とは、2Gバイトという境界線のことです。

先日、MONJUのライブをWebカメラでHD撮影して編集しようとしています。
フルHDとは 1080pと呼ばれて画素数が1920×1080画素数で1秒に30フレームを撮るという恐ろしくデータ量をくうモノ。
大体1曲5分としても2GB以上のデータ量がある。

Macの動画ビューアー、クイックタイムの挙動が可怪しい。
2Gぐらいのとことで、データが終わってしまいます。
これは2Gの壁と呼ばれるバグでしょうね。

先ずは、G(ギガ)の単位の説明です。デジタルデータの最小単位は、bitと呼ばれる0or1の単位です。


これを8小並べて1バイトという単位で扱います。
これがコンピュータ、スマートフォンが扱うデータの単位でBと略します。
1バイトが1024個集まると、1キロバイトになります。1KBもしくは1Kと呼びます。
通常つかうキロメートルと同じです。
この1KBが1024個集まると、1メガバイトになります。1MBもしくは1Mと呼びます。
メガ盛りとかに使う言葉、1MBが1024個集まると1ギガバイトになります。1GBと略します。
iPhoneのメモリサイズ32Gとは1024☓1024x1024☓32=約343億バイト
というかなり大きなサイズを表します。

一方コンピューターの中のソフトウェアは、有限の単位のデータを扱っているがゆえに、予期しないことが起きます。

特に、
int size;
と宣言される整数の場合。
コンピューターは最上位のbitを−(マイナス)として扱います。

この図は整数が16bitのとき

今のコンピュータはint (整数)は普通なにげなく32bitになっています。
ここを64bitにしているのを64bit版とか呼んだりします。

すると何起きるかというと、7fffffff(16進数)=2147483647
の次は最上位のbitがたって0になります。
本来なら、2147483648が突然コンピュータでは0になりまます。
これをオーバーフローと呼びます。

2147483648=1024x1024x1024x2 すなわち2GB
これが2GBの壁

この2G付近でソフトの挙動がおかしくなったら、おそらくこれが原因。

むかしは、2GBなんて大きなデータは無かったからバレなかった。波波



コメント

このブログの人気の投稿

太郎ちゃんの服装が凄すぎる

弥生時代の博多の地形 FloodMaps1

birdはみうらじゅんと結婚していた。