ビットレートは、なぜヘンテコな数字なのか?

本日のお題:

1,0.84,0.7,0.6,0.5,0.4,0.35,0.3,0.25,0.21,0.18,0.15,0.125,0.1,0.088,0.07,0.0625,0.05,0.04419,0.03716,0.03125,0.025,0.0221,0.01858,0.015625


最近、なんとなく小難しい技術っぽい話が続いてまして、「全然、新聞電子化について書いてないじゃないか」という、ごもっとなご意見をいただいております。


ですが、新聞電子化の現状をお伝えする上で、もう少しだけ、小難しい話を整理していく必要がありますので、おつきあいのほど、よろしくお願い申す。


さて、前にJPEG2000のレイヤーについてお話をした時(http://d.hatena.ne.jp/denshikA/20091014)、NDNP(全米電子新聞プロジェクト*1)におけるJPEG 2000の仕様の中に、

11.The JPEG 2000 will have 25 quality layers. The bits per pixel for each quality layer will be: 1,0.84,0.7,0.6,0.5,0.4,0.35,0.3,0.25,0.21,0.18,0.15,0.125,0.1,0.088,0.07,0.0625,0.05,0.04419,0.03716,0.03125,0.025,0.0221,0.01858,0.015625.

というのがあることをご紹介しました。意味は、

レイヤーの数は25個で、それぞれ、ビットレート(画質)を[数字の羅列のよう]にしてください

というものです。


この数字の羅列ですが、かなりヘンテコですよね?


まぁ、こういうヘンテコな数字が並んでいる場合、いくつかの大人の事情があるわけなんですが、本日は、そのうち、この数字の並びを理解するのに最低限必要と思われる部分を見てみましょう。


(大人の事情 その1)

ビットレートというのは、いわゆる「隠語」ですので、世間一般に通じるようにするためには、割り算にする必要があります。


例えば、0.015625なんて言われたって、何のことだか分かりませんが、これって、要は1/64ということですよ。


(大人の事情 その2)

コンピュータが関係してる話は、たいてい、倍にしていくのが好きです。


例えば、0.5は1/2で、0.25は1/4で、0.125は1/8で、0.0625は1/16で、0.031250は1/32となりますので、分母が2、4、8、16、32、64、128、256って感じで進んでいってますよ。


つまり、ここまでの大人の事情を勘案すると、NDNPは、ビットレート

1 (≒1/1)
0.5 (≒1/2)
0.25 (≒1/4)
0.125 (≒1/8)
0.0625 (≒1/16)
0.03125 (≒1/32)
0.015625 (≒1/64)

という風にしてもらいたいんですね。もう、素直じゃないんだから。


続けて行きましょう。


(大人の事情 その3)

みんな見栄っ張りだから、なんとなく、間があきすぎているんじゃ格好悪いので、何か詰めて、盛りだくさんっぽくしたい。


例えば、1と0.5の間には3つ挟まってるでしょ。0.5と0.25の間にも3つ挟まってるでしょ。ぜーんぶ、間に3つづつ挟まってます。ロンドンブーツと一緒で、いわゆる「上げ底」です。


さらに、(大人の事情 その2)がまだ有効ですので、意地でも倍にしていきたくて、4回掛け算すると倍になる数字というものを使います。2回掛け算すると2になる数字を、sqrt2というらしいので、2回掛け算するとsqrt2になる数字は、sqrt{\sqrt2}ですね。そんで、

sqrt{\sqrt2} ≒ 1.189

ということらしく、そんなこんなで、ビットレートを見てみると、

1 (≒1/1)
0.840896 (≒1/1.189)
0.707107 (≒1/1.414 ≒1/1.189x1.189)
0.594604 (≒1/1.681 ≒1/1.189x1.189x1.189)
0.5 (≒1/2 ≒1/1.189x1.189x1.189x1.189)

という感じですね。


(大人の事情 その4)

アメリカ人はおおざっぱなので、すぐ数字を丸めちゃいます。


例えば、本当は0.840896なはずなのに、0.84としちゃってますし、本当は0.594604なはずなのに、0.6としちゃってます。


というわけで、冒頭の数字ですが、

1,0.84,0.7,0.6,0.5,0.4,0.35,0.3,0.25,0.21,0.18,0.15,0.125,0.1,0.088,0.07,0.0625,0.05,0.04419,0.03716,0.03125,0.025,0.0221,0.01858,0.015625

は、大人の事情を理解してあげると、なかなかシンプルな数字でしょ?


次回は、ビットレートについて、もう少し異なる点を見てみましょう。