本文へジャンプ

ビット(bit), バイト(Byte), パケット。ついでにbps。 〜後編「で、ビットとバイトって何が違うの?」〜

Posted by Masato Okajima

二部構成でお届けしています今回のブログ、ビットバイトパケットの違いについて、ついに! ようやく!! 本題に入ります。まだ前編を読んでいないというヒトは、まずは前編の2進数のおさらいからどうぞ。

ビット(bit), バイト(Byte), パケット。ついでにbps。

バイト(Byte)とは、なんなのか?

1ビットは1桁の2進数、
2ビットは2桁の2進数でしたね。

では、バイト(Byte)とは、なんなのか?というと、
『1バイトは8ビット』です。

なんでかは知りません。

ファミコン世代の僕的には「CPUの歴史が8ビットから始まった?」とかも思いましたが、4ビットの時代もあったような...、で、気になったので、この記事を書きながら調べてみました。同じ疑問を持ったヒトが『qiita』にいました!

やはり!!!
この記事を要約すると、

アルファベットの大文字、小文字、数字、プラスマイナスの記号を足すとだいたい7ビット(64パターン)ぐらい。 そこにオマケを足すと8ビットが都合が良かった。

みたいな感じですね。

さらに、もうちょっと読み進めてみると、「この1バイトが8ビットと正式に決まったのは、2008年」とのこと。意外なことに、めっちゃ最近ですね。それまでは、なんとなく暗黙の了解だったのか。。。

1バイトは8ビット。そこんとこ詳しく!

脱線しまくってますが、

  • 1バイトは、8ビット。
  • 1Byteは、8bit。
  • 1Bは、8b。

8bitは、8桁の2進数でしたね。

2進数の「11111111」は、
128+64+32+16+8+4+2+1=255

と言いました。

はい、ここでインターネッツな皆さん、"255"って数字、よく目にしません?

そう、IPアドレスです!

192.168.0.1 とか 255.255.255.0 と設定される、アレです。

実はIPアドレスは、8bitを4つに並べてるんです!
ここの「IPアドレスって何?」というインターネット講座は、また今度にしましょう。

1KBは何バイト?

話は戻って、ビットとバイトです。

で、KBとかMB、GB、TBとかありますが、「KB」はキロバイトですね。

これはみんな知ってます。
1km(キロメートル)は、1,000m(メートル)ですから。
これは小学校で習います。

ただ、1KBは1,000Bじゃないんです。
これも大概のヒトは知ってます。

でも、何故、1KBは1,000Bじゃなくて、1,024Bなのかは、知らないヒトが多いようです。

理由は簡単で、ここも、コンピュータは2進数の世界だからです。

2進数の世界のK(キロ)は、1000倍ではなく、2の10乗となります。
つまり、
1024(2*2*2*2*2*2*2*2*2*2) です。
なので、
1KBは1,024Bになります。

単純でしたね。

メガバイトは何キロバイト?

では、「M」(メガ)はどうでしょうか?

Mは、2の20乗になります。電卓で2を20回かけてみましょう。

1,048,576 になります。

1MB = 1024KB = 1,048,576B

です。
この流れで行くと、「G」(ギガ)はもちろん、2の30乗になりまして、
1,073,741,824 です。

「T」(テラ)は、2の40乗で、
1,099,511,627,776。

つまり...、

1TB = 1,024GB = 1,048,576MB = 1,099,511,627,776B

となります。

ちなみに、テラより大きな桁数になると、「ペタ」「エクサ」「ゼタ」「ヨタ」と続くそうです。ヨタとか、もう、「ヲタ」って書いて欲しいぐらいですが、2の80乗です。もう桁が多すぎるので、10進数の単位換算式は書きません。w

ストリーミング配信でよく聞く「bps」とは?

以上で、2進数とビットとバイトの関係が分かっていただけたかと思います。さらに、当社の映像・スタジオ事業部がよく行なっているライブ中継・ストリーミング配信の現場などでは"bps"という単位がよく出てきます。

これは「bit per second」の略で、1秒間に流れるビット数を表します。

800bpsだと、1秒間に800bitが流れるというわけです。

bpsとB/sと混同するヒトがよくいるのですが、B/sは「Byte per second」なので、1秒間に流れるバイト数になります。つまり、8bpsは1B/sになります(ここでは"B"psとは書かないのは何故なのかは聞かないでください)。

データファイルをコピー・転送するときには"MB/s"という表記になりますが、このようにライブ中継など映像伝送においては"bit"のお話なので、気をつけましょう。

ちなみに、コンピュータの世界は2進数だと言ってきましたが、"bps"は、ただの速度を表す単位なので、コンピュータの内部の処理には関係ないため、10進数になります。

つまり、
1Mbps = 1,000Kbps = 1,000,000bps
となりますので、要注意です。

だから「配信は1Mbpsでいいよ!」という要望があったとしても、1,024Kbpsの設定を狙っちゃダメです。ビットとバイトの違いを理解して、きちんと1,000Kbpsを狙って設定するのが正解です。

ここで、Tipsですが、
よくライブ中継のお仕事で「1時間番組の配信した映像の収録データをください。ファイルの容量、どれくらいです?」と要望を受けるのですが、例えば4Mbpsで配信していた映像ファイルの場合、

4Mbps = 0.5MB/s
となり、1時間は3600秒なので、
0.5MB/s*3600sec = 1,800MB

となります。

便宜上は「約1.8GBですよ!」とお答えしても問題はありませんが、前述の通り、厳密には1,800MBは1.8GBではないのです。

もちろんその映像データをさらにエンコードしたりすると、コーデックやエンコードソフトの設定次第でファイルの容量が変わってきますが。。。

FullHDの1時間の映像をビットレートを16Mbpsでエンコードした場合は、
16Mbps = 2MB/s
2MB/s*3600sec = 7,200MB
つまり約7.2GBになります。

とにかく、

"bpsからB/sにするときは、8で割るのを忘れないようにしましょう。"

はい、最終的に、これが言いたかっただけ。w

最後に、パケットって何だろう?

おっと、パケットのことを忘れてました。

ガラケーの時代から、よく耳にする「パケット」という言葉、これはインターネットの通信データを細かくした単位です。

特に移動通信端末(ガラケーやスマホなど)は複数のヒトが1つの回線を共有した状態でデータ接続しているので、やりとりするデータを細かく分割したほうが、効率良いためです。

1パケットは、128バイトです。
1バイトが8ビットであるように、1パケットが128バイトなのは、便宜上、そうなってるだけなので、丸暗記でOKです。(解説が適当になってきましたね...)

ガラケー時代の通信プランは"何パケットまでは定額いくら?"みたいな謳い文句が多かったと思います。パケットよりもバイトという言葉がメジャーになってきて、IT業界以外でも一般的に使うようになってきたので、スマホ時代の今、通信プラン名に「パケ・ホーダイ」などの名残りはありつつも"10GBプラン"のようにバイト単位のネーミングが多くなって、分かりやすくなりましたね。

ちなみに最近では月末になって通信容量が足りなくなると、「ギガが足りねぇ」というらしいです。もう単位が不明ですよ。

余談

さーて、いかがでしたでしょうか?
インターネッツな方々に、少しでもお役に立てていれば、なによりです。


以下、余談。

ちなみに、Webセーフカラーと言われる色の指定は、16進数の6桁になります。「0」から「9」の数字と、「A」から「F」の文字を組み合わせた、16パターンです。

パソコンのディスプレイは、光の三原色の「R, G, B」の強さを2桁づつで表現していると思ってください。

  • 電気が付いてなければ、真っ暗。
  • 電気を付いていれば、白。

というイメージで、

  • 000000 は
  • FFFFFF は

になります。

  • FF0000 は、R(red)が100%でGとBが0なので、
  • 00FF00 は、G(green)が100%でRとBが0なので、

といった具合です。

逆に、印刷などで使われるCMYKは「C, M, Y, K」すべてが0%で白、すべてが100%で黒。
これは、白い紙に対してインクを足していくからですね。
小学生のときに経験のあるヒトも多いと思いますが、絵の具を全色混ぜると、絶対、クロになったと思います。
同じようにCMYKは印刷ベースなので、シロからスタートして色を足していくとクロになる、と。

RGBはその逆で、クロでスタートして色を足していくとシロになる、と。
ディスプレイなどデジタルの表示においては、電気が消えてたら暗闇で、電気を付けたら明るくなるから。


と、だらだら、書いてきましたが、ところどころ、間違っててもご愛嬌ということで、許してください...(弱気)。

Recent Entries
MD EVENT REPORT
What's Hot?