107.情報送信の効率化

 第 29 回で、情報量のエントロピーについて備忘した。情報量として、Yes  or  No、または 1 と 0 を考えると、スイッチの on と off で表せる。「情報量」はどれだけ「情報量のエントロピー」を減らせるかで数えればよい。情報量のエントロピーは底が 2 の対数で表した。

 

    log 2 X

 

Yes or No だと状態の数は 2 なので、X=2 として、情報量は 1。この情報量を単位を作って 1 bit (ビット)と数えよう。0、1、2、3 と状態の数が 4 つあれば、X=4 = 22 なので、log 2 4 = 2 だから、2 bit だ。

 

 数字は0から 9 まで 10 個あるので、これらを 0 と 1 だけで表そうとすると

 

    log 2 10 = 3.32・・・

 

だから、3 bit ではたりず、4 bit 必要だ。3 bit だと  8つの状態しか表せない。log 2 8 = 3 だから。

 ローマ字は 24 個、大文字小文字で 48 個。あと、「?」とか「!」とかの記号もいるので 100 個くらいを区別できれば良いとすると

 

    log 2 100 = 6.63・・・

 

なので、7 bit で足りそうな気もするが、余裕をもって8 bit 使う。要するに、8 このスイッチ、あるいは 8 桁の 0、1 の並びで英文の一文字は表せるというわけだ。

 8 bit を1 byte (バイト)と呼ぼう。

 

    8 bit = 1 byte

 

 漢字は 10000 個くらいあるのだろうか。そうであれば

 

    log 2 10000 = 13.28・・・

 

14 bit で足りそうだが、余裕をもって 16 bit、つまり 2 byte あれば十分だろう。

 

 文字を符号化したものが、コードと呼ばれる。Shift-JIS とか ASCII コードといったやつだ。American Standard Code for Information Interchange の頭文字をとって、ASCII。

 

 全人口は 77 億人くらいだそうだ。自分以外の一人を選ぶためには

 

    log 2 7000000000 = 32.70・・・

 

33 bit の情報があれば選べる。4 byte ちょっとだ。意外と少ない。今では、パソコンのハードディスクの容量はテラバイト、1 テラバイトは 1,099,511,627,776 バイト。なんと容量が大きいことか。

 

 さて、情報を送信することを考えてみる。たとえば、文字が 16 種類のみしかないとしよう。log 2 16 = log 2 24 = 4 だから、4 bit で符号化できる。4 桁の 2 進数だ。ここで、1 秒間に 1000 bit 送信できる能力をもった情報回線を使うと、1 秒間に何文字送信できるかというと

 

    1000 (bit / 秒) / 4 (bit / 1文字) = 250  ( 文字/ 秒)

 

となるので、1 秒間に 250 文字送ることができる。1 秒間に 1000 bit 送ることができるとき、送信能力を 1000 bps (ボーレート)と言う。bps は、bit per second の略。

 

 上の例を一般化すると、1 文字を N bit で符号化できているとして、回線が C bps、つまり C [ bit / 秒] 送ることができるとき、

 

   『通信文の情報量が N [ bit / 1文字] のとき、通信回線の能力が C [ bit / 秒] とす

    ると、1 秒当たり、最大、C / N 文字しか送ることはできない』

 

と言える。いや、C / N 文字まで送ることができるはずなのだ。

 

 たとえば。

 

 数字だけでできている文章を、1000 bps ( = 1000 bit / 秒)の能力を持つ通信回線で送ることを考えよう。数字は 10 個あったので、先ほど見たように log 2 10 = 3.3219・・・bit 必要だ。1 文字 4 bit でコード化できる。そこで、1 秒間に何文字送れるかというと

 

    1000 ( bit / 秒) / 4 ( bit / 1文字) = 250 ( 文字/ 秒)

 

だ。さっきと同じ 250 文字。

 

 しかし。

 

 先ほどの『 』の言明では、N = log 2 10 [bit / 文字]、C=1000 [bps] だから、

 

    C / N = 1000 / log 2 10 = 301.0・・・

 

なので、301 文字くらいは「最大」送れるはずだ。どこかで無駄をしている。

 

 では、どうやればよいか。

 

 たとえば、文字として考えた数字を 3 文字、つまり 3 つの数字ずつ区切ってみる。そして 1 文字ずつコード化するのではなく、3 文字( 3 桁の数字)ずつコード化していく。3 桁の数は( 001 や 013 なども 3 桁の数として)1000 個あるので、3 桁の数字は、情報量として

 

    log 2 1000 = 9.965・・・

 

だから、10 bit あればコード化できる。先ほどは 1 文字を 4 bit でコード化したが、今度は 3 桁、3 文字を 10 bit でコード化したので、結果的に 1 文字あたり、10 / 3 = 3.33・・ bit でコード化できたことになった。4 bit から無駄が削減できたというわけだ。だって、4 bit あれば本来 16 の状態量を区別できるのに、0 から 9 までの 10 個の状態量の区別にしか使っていなかったから 6 個無駄にしていたというわけだ。また、1文字 3.33 bit でコード化できているということは、10個の状態量、log 2 10 = 3.3219・・・bit に極めて近いので、無駄がなくなって いる。

 こうして、3 文字ずつコード化したから、3N = log 2 1000 = 9.965・・・より、一文字当たり

 

    N = ( log 2 1000 ) / 3 = 3.3219・・・

 

通信回線の能力は同じく 1000 bps なので、

 

   C = 1000 [ bit / 秒]

 

より、今度は 1 秒当たり送ることのできる文字数は

 

    C / N = 301.0・・・

 

と、1 秒当たり 300 文字送ることができ、理論上の上限値に近くなった。

 

 符号化の方法で通信できる情報量が増えた。『 』の言明は当たり前に過ぎるが、工夫の余地の有無を教えてくれる。ちょっと簡単化した「シャノンの定理」だ。

 

 もう、25 年近く前に、High Intelligence City の大学に集中講義で来てくださった坂東昌子先生に、集中講義の合間に個人的に教わった話だ。集中講義では学生さん向けに素粒子論の講義をして頂いた。また、大統一理論のお話もしていただいた。

財務省の政策で予算を切られ、今では地方大学に集中講義の先生を呼んで、学生に普段聞いている教員以外の研究分野の話を聞かせて、目を開かせることもできなくなった。

 地方切り捨て政策の一環である。