1999-12-30[n年前へ]
■6502と並列計算とムーアの法則
人間のクロック&スケールアップ
「物理の散歩道」を読み直していると、とある文章に興味を覚えた。
- 第五物理の散歩道 ロゲルギスト著 岩波新書
「通信を考える」の中の興味を惹かれた部分は「信号の伝わる速度と距離と処理速度の関係」を論じている部分だ。例えば、計算機は処理速度を高めるためには回路の大きさを小さくしなければならないとか、人間の頭脳の働きの速さから集団生活の広がりの限界について論じているのだ。例えば、
- 計算機の演算速度の時間スケール -> ナノ秒 = 10^-9s (クロックで考えると、1GHz)
- 人間の演算速度の時間スケール -> サブ秒 = 10^-1s (クロックで考えると、10Hz)
つまり、通信の速度が光速度であるとして、演算の単位クロックの間に通信が行われなければならないとするならば、計算機の時間・空間スケールと人間の時間・空間スケールは等しいだろう、という推論だ。
そして、さらにロゲルギストの想像は広がり、並列計算についても論じている。
計算機が東京と大阪に離れて置かれていて、通信をしながら作業をするとしたら、人間の場合にはそれと同じ条件というのはどんなものだろうか、と彼らは考える。それは、光の速度で55時間、ちょうど冥王星の軌道直径の5倍程度の空間スケールになる、と論じている。それ以上、離れた場合には演算の過程を共に行うのは無理ではないかというのである。
こういう文章を読んでいると、この文章が作られたのが30年以上前であることを忘れてしまいそうである。この人達の思索の自由さに憧れを感じてしまう。この人達は、頭の中にタイムマシンにでも持っているのだろうか、と感じてしまうのだ。
ところで、私がコンピューターをいじるようになった頃は、Apple][の時代だった。といっても、私はお金があふれていたわけではないので、XXX電子でAplle][のコンパチ基盤を買って組み立てて使っていた。その基盤上の6502は1MHzで動いていた筈だ(あぁ、I/Oの6809派vs6502派の論争が懐かしい!)。
それから20年程たち、CPUのクロックスピードは1GHzを越えようとしている。20年で1000倍である。そして、その集積度は、ムーア(GordonMoore)の法則の「半導体の性能と集積は、18ヶ月ごとに2倍になる」に従っている。
それでは、人間はどうだろうか?人間の脳味噌のクロックがどの程度であるか測定されているかどうか、素人の私にはよくわからない。しかし、WEB上のデータとしては、例えば
- Mayo's Profile( http://www.ceres.dti.ne.jp/~mayo/profile.html )
ロゲルギストの時代、すなわち30年以上前、から現在のMayo's Profileの値がほとんど変わっていないように、人間の演算スピードは変わるようなものではない。それは、そうだろう。ヒトのクロックスピードや集積度といったものは、変えるわけにはいかない。当然である。CPUと違ってプロセスルールを変化させるというような訳にはいかないのだ。
それでは、演算性能を上げようとしたらどうするだろうか?そうなると、並列計算を行うのが自然だろう。単独のCPUの性能を上げるわけに行かなくても、共同作業を行えば、演算性能を上げることができる。
現代はほとんどの作業が共同作業で行われる。また、その共同作業も大人数が関わるようになってきている。それは、どんな業種でも同じだ。一人では、なかなかできないことが多くなっている。
それら共同作業、すなわち並列計算、を行う人達(例えれば並列計算機における各ノード)を増やし、それらの間の情報転送をすばやく行うことが多くの作業(計算)を行うための手順だろう。
そこで、
で用いた- 人口増加( http://www.t3.rim.or.jp/~kabutoya/KABHTML/Yoi/2-1.html )
なるほど、人間界の並列計算機におけるノード数は増加している。そして、各ノード間の通信速度を調べるために、まずは、
- 来て、見て、触って、情報伝達
- ( http://www.f-jhs.fukuoka-edu.ac.jp/3-3/jyoho.html )
西暦 内容これを全部転送速度に直してみる。といっても、よくわからない部分も多いので、私が適当に決めてみる。それでは、その変化を示してみよう。とりあえず、ここ200年位の間のものを考える。
-4000 のろし
-2400 伝書鳩
-2300 馬による伝令制度
1837 モールス電信機
1876 ベグラハム=ベル電話機
1909 グリエルモ=マルコーン無線電話機
1973 Ethernet XeroxPARCで生まれる。(ちなみにEther=エーテル)
1979 DIX規格=10Mbps
1992 FastEthernet=100Mbps
西暦 内容という感じだ。グラフにすると、
1837 モールス電信機 = 2bps
1909 グリエルモ=マルコーン無線電話機=10kbps
1979 DIX規格=10Mbps
1992 FastEthernet=100Mbps
こんな感じである。対数グラフにおいて直線的に情報伝送速度が速くなっている。この関係は結構きれいである。
別に意図してこういう数字にした訳ではないのだが、不思議なことである。
このようにして、人間(ノード)間の転送レートが高くなることにより、先のような人口増加に伴うトラフィック増加をしのぐことができていると考えることもできるかもしれない。そして、人間達の共同作業、すなわち並列計算、を行うだけのバススピードを確保しているのである。
最近、会社組織などで分社化とか事業分割とかの話題をよく耳にする。こういった時に、分割における時間と空間のスケールはよく考える必要があるだろう。分割が有効なのは、ほとんど独立なものを分割する場合のみである。並列計算における領域分割などと同じだ。
共同作業がほとんどなく、結果のみをやりとりすれば良いような場合には分割による効果はあるだろう。その一方で、同じ事業・作業を行っているところが、離れていては作業の効率は上がらない。もし、技術系の会社でそのようなことを行うのであれば、事業や部署を並列化した際の真面目なシミュレーション位は行うべきだろう。いや、別に深い意図はないけど。
こういったことは「新・闘わないプログラマ No.109 時代錯誤」に書かれていることとも少し似ているような気がする。
さて、1999/12/30-2000/1/1は野沢温泉で温泉&スキーである。2000年問題で会社に泊まり込む人も多いが、私はスキー場で泊まり込みである。同時期に野沢温泉に行く人がいるならば、ぜひ一緒に「スキー場の特殊相対性理論」について討論したいと思う(スキー場で)。
2000-01-03[n年前へ]
■音場の定位を見てみたい
立体音感を考える その2
前回(といっても間に他の話も挟まっているのだが)、
で「音の立体感」について考え始めた。今回はその続きである。「音の立体感」を考えるための道具を作る準備をしてみたい。色々なことを考えるには、その目的にあった測定器が必要である。何か新しいことをしようと思ったら、そのための新しい測定器を作成しなければならない(と思うだけだが)。そして、何より私は計測器なんてほとんど持っていない。だからといって、計測器を買うお金があるわけではない。というわけで、困ってしまうのだ。
そこで、立体音感を考えるための測定器を作っていくことにした。といっても、すぐにできるとも思えないので、色々実験をしながらボチボチとやってみることにした。勉強がてら、ボチボチやってみるのである。オーディオ関連のことにはかなり疎いので勉強にはちょうど良いだろう。
資料をいくつか眺めてみたが、特に
- 「立体視の不思議を探る」 井上 弘著 オプトロニクス社
- 音像定位の因子
- 両耳差因子 (音響信号)
- 音の強さ(振幅)の差
- 位相の差
- 周波数スペクトル因子
そこで、いきなりだが今回作成した解析ソフト「音場くん一号」のアルゴリズムは以下のようになる。
- PCのサウンド入力から、サンプリング周波数 22.05kHz、Stereo 各チャンネル8bitで取り込みを行う。
- 取り込んだデータを4096点毎にウィンドウ(Hamming or無し)処理をかける。
- 高速フーリエ変換(FFT)を行う
- FFTの結果の実部について、左右のチャンネルの差分を計算する
次に示すのが、「音場くん(仮名)一号」の動作画面である。「音場くん(仮名)一号」の画面構成は、
- 右側->制御部
- 左側->計測データ表示部
- 音声波形データ(赤=左、緑=右)
- 周波数(横軸)vs左右での音圧の差(縦軸)
- 時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)
(黒字に赤、緑の色構成は変更の予定) |
計測データ表示部の拡大図を下に示す。
- 音声波形データ(赤=左、緑=右)
- 周波数(横軸)vs左右での音圧の差(縦軸)
- 時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)
この表示計の意味を例を挙げて説明したい。例えば、下の画面では左の方に定位している音が鳴ったときの状態を示している。一番上の音声波形データでは緑(右)の波形は小さいのに対して、赤(左)の大きな波形が見えている。
また、真ん中の「周波数(横軸)vs左右での音圧の差(縦軸)」では横軸100(任意単位)程度の高さの辺りで左チャンネルに位置する音が発生しているのがわかる。
また、一番下の「時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)」では時間的に一番最後(横軸で右側)の方の横軸560、縦軸100位の位置に白い(すなわち左チャンネルに定位する)音が発生しているのがわかると思う。
この曲のイントロでは、「ポンッ」という音が高さを変えつつ、左右にパンニング(定位位置を変化させること)する。
一番下の「時間(横軸)vs周波数(縦軸)vs左右での音圧の差(色)」を示したグラフ中で白・黄色(左に定位)と青・黒(右に定位)する音が時間的にずれながら現れているのが判ると思う。
このようにして、この「音場くん(仮名)一号」では音の定位状態についての「極めて大雑把な」計測が可能である(保証はしないけど)。「音場くん(仮名)一号」を使った他の例を示してみる。
下は種ともこの「O・HA・YO」の中から「The Morning Dew」のイントロ部を示したものだ。
- 左(白・黄)チャンネル方向に定位するピアノ
- 右(黒・青)チャンネル方向に定位するガットギター
これはまるでオルゴールのピンを見ているようだ。あるいは、シーケンサーや昔の自動演奏ピアノのロール譜のようである。対位法などの効果をこれで確認したくなってしまう。
さて、ここまでの例は楽器も少なく、比較的自然な定位状態であった。しかし、以下に示すような場合には不自然なくらいの「音の壁」状態の場合である。かなり状態が異なる場合だ。
これは、種ともこの「O・HA・YO」の中から「KI・REI」のラストのラストコーラス部を示したものである。人のコーラスが重なり合っていく部分である。色々な高さの声が重なり合っていく様子がわかるだろう。
ところが、このグラフをよくみると、同じ音が時間的に持続しているにも関わらず、時間毎に定位位置が左右で入れ替わっているのがわかる。
これはきっとエフェクターで言うところのコーラスなどをかけたせいだろう(素人判断だけど)。人工的にフィルタ処理をしているためにこのようになるのだろう。こういう結果を見ると、「音場くん(仮名)一号」をプログレ系の音の壁を解析してみたくなる。
さて今回は、音声の定位状態を解析する「音場くん(仮名)一号」を作成し、いくつかの音楽に対して使ってみた。まだまだ「音場くん(仮名)一号」は作成途中である。これから続く立体音感シリーズとともに「音場くん(仮名)」も成長していく予定である。
さて、一番先の画面中に"Re"という選択肢があるのがわかると思う。もちろん、これと対になるのは"Im"である。FFTをかけた結果の"実部"と"虚部"である。"実部"の方が左右の耳の間での音の大きさの違いを示すのに対して、"虚部"の方は左右の耳の間での位相差を示すものだ。つまり、ある周波数の音が左右の耳の間でどのような位相差を示すものか、測定しようとするものである。
左右の耳に対する音の位相差というものは、立体音感を考える上では避けては通れないのだろう。しかし、位相差を処理しようとすると、どうしたらいいものかかなり迷う部分がある。また、今回のようなFFT処理をかけたときに得られる位相を用いて良いものかどうかもよくわからない。というわけで、今回は位相解析処理は後回し、ということにした。
2000-01-21[n年前へ]
■数字文字の画像学
縦書きと横書きのバーコード
始まりはまたしても「物理の散歩道」である。
- 「新物理の散歩道」 第一集 ロゲルギスト 中央公論社
さて、その中の-横組・縦組と二つの目-という一節中の外山滋比古氏の発言が実に面白い。
「日本の漢字は横の線が発達してますから、横から読みますと目に抵抗が少なくて読みにくいですね。ヨーロッパの文字は縦の線が非常に発達していて、横に読むと非常に能率がいいわけです。数字でも縦の棒を引いて、Ⅰ、Ⅱ、Ⅲ、Ⅳ....としますが、和数字は横に線を引いて一、二、三...となります。...」という発言である。
- 文字は読む方向に対して垂直な線が多い
- また、読む方向に対して水平な線は少ない
- いずれも目のスキャン方向に対して垂直な線が多い
そこで、今回その確認と考察を行ってみることにした。サンプルとしては、外山滋比古氏の発言の通り、ローマ数字と漢字数字を用いることにする。
まずは、本来の書き方の方向に数字を並べた画像である。画像サイズは128x128である。後の処理のために、縦横比を同じにした。すなわち、本来の画像のアスペクト比とは異なる。
この二つの画像を読む方向に目を走らせると、まるでバーコードのようである。以前、
の時に作った郵便カスタマバーコードを参考に示してみる。考えてみると、バーコードは検出手段をバーコードの進行方向に走らせて、情報を読み取るわけである。人間が数字の羅列を読み取るのも、数字文字列上に目を走らせるのであるからまったくもって同じである。
一次元バーコードを考えた時、バーコードのバーは進行方向に対して垂直なものがほとんどである(若干のアジマス角を持つものもあるが)。バーコードを読み取る方向に対してのみ情報が書き込まれているのだから、それ以外の方向には等方的であるのが当然である。もし、そうでなかったらスキャン位置がちょっとずれただけでデータの読み取りができなくなってしまう。
そう考えると、先の数字文字に関する
- 読む方向に対して垂直な線が多い
- 読む方向に対して水平な線は少ない
また、本来の数字文字を並べる方向が読み書きの方向と異なる場合を以下に示す。
さて、画像を並べるだけではつまらないので、
- 本来の書き(並べ)方
- 本来の書き方と異なる書き(並べ)方
人間の目が数字文字列上をスキャンしていくときに、選られる情報量を考えるために、読む方向に対して画像を微分したものを示す。もう少し正確に言えば、微分値の絶対値を画像にしたものである。
まずは、本来の書き(並べ)方のものを示す。
818892 | 923836 |
微分画像の下に示した数字は微分(して絶対値)画像のピクセルの値の総和である。これをスキャン方向に対して選られる情報量の指標として扱うことにする。「スキャン方向に対して変化量が大きいということは、情報量が多い」ということだからである。
次に、本来の書き方と異なる書き方の場合を示す。
536383 | 632338 |
それでは、「微分(して絶対値)画像のピクセルの値の総和」を比較してみることにしよう。
本来の書き方の場合 | 818892 | 923836 |
本来の書き方と異なる場合 | 536383 | 632338 |
ローマ数字、漢字数字の両方で、本来の書き方の方が(読む方向に対する)画像の変化量が大きいことがわかる。すなわち、「目のスキャン方向に対して選られる情報量」が多く、そうでない方向には冗長なのである。エラー発生率が小さくなるのである。本当にバーコードそのものである。文字はバーコードの祖先だったのである。
さて、「文字の画像学」も色々と面白そうなので、これからちょこちょこ遊んでいこうと思う。
2000-01-30[n年前へ]
■ソフマップでお買い物
磁界の可視化とバーコード
前回、
で「マグネビュアー」を使って磁界の可視化をして遊んでみた。今回はその続きである。ソフマップの磁気カードの中に書き込まれている磁気データを可視化して調べてみるのである。磁気カードには、
- 銀行のキャッシュカード
- クレジットカード
- テレホンカード
- オレンジカード
まずは、ソフマップカードの写真を示してみよう。これがソフマップで買い物をするたびにお世話になるソフマップカードである。
この写真からではどこにデータが書き込まれているのかわからない。そこで、「マグネビュアー」の登場と言いたいところであるが、残念ながら今回は「マグネビュアー」は登場しないのである。「マグネビュアー」はとても便利なのであるが、さすがに磁気カードの磁気データを読もうとすると分解能が不足する恐れがある。
そこで、代打選手に登場願うことにした。代打選手はキヤノン製のLBPのトナーである。以前、
の時に「トナーはクーロン力で制御されて画像を作るのだ」という話があった。キヤノン製の白黒のLBPではクーロン力に加えて磁気力を使ってトナーを制御している。なので、キヤノン製の白黒トナーは磁性体粉末ということになる。テレホンカードが出た頃はキヤノン製のトナーを使ってデータを読み出していた人も多いはずである。みな、テレホンカードの表面を削りトナーを振り掛けていたのである。というのは、聞いた話であり、実体験に基づくものでは絶対にない。神に誓っても良い。その頃にキヤノン製のトナーを使い倒していたということは絶対にないのである。しかも、その数年後に(以下略)。
それでは、磁性体の微少粉末であるトナーをソフマップカードに振り掛けてみよう。
ソフマップカードの磁気データが可視化されたのがわかると思う。磁気によるバーコードが見えるだろう。これがソフマップカードに書き込まれている磁気データである。
とはいえ、トナーの付着具合にムラがある。それは私が雑に実験を行ったからである。こんなにムラがあっても磁気コードが判別できるかどうか疑問を持たれる方も多いと思う。しかし、
- 読む方向に対して垂直な線が多い
- 読む方向に対して水平な線は少ない
そのようにして、ノイズを減らし、S/N比を上げた画像を示してみる。
どうだろうか、驚くほど綺麗になっているのがわかると思う。まさか、と思われるかもしれないが本当である。
さて、これはソフマップカードの磁気データの全体像であるが、もう少し拡大したものを以下に示す。
極めて明瞭に磁気データが可視化されているのがわかると思う。これはトナーを振りかけて、1万円ちょっとのスキャナ(CanonのUSB接続の安物スキャナ)で読み込んだものに対して先の処理をしただけである。これほど明瞭になるのも、全て1次元バーコードの特徴のおかげである。磁気ヘッドの制作などをしなくても良いのである。
磁気カードの記録密度は銀行統一仕様(NTT)でもISO3554でも8.3bit/mm=211bit/inchであるから、最近の600dpi(dot/inch)程度のスキャナーであれば十分磁気データの画像読みとりが可能である。
それでは、もっと拡大してみる。拡大する部分は上の画像の右の辺りである。すると、このようになる。
データ間隔がわかりやすいように、ここでは矢印や文字を書き入れている。この画像を見ると、磁気データは規則的な細かい周期性を持ち、その周期でいうと8つ単位でさらなる周期性があるように思われる。つまり、8bitをひとまとまりとしたデータが書き込まれているように見える。例えば、上の画像では
- ( 白、白、白、白、白、白、黒、黒 ) x 2
- ( 00000011 ) x 2
- ( ああああああたた ) x 2
複数枚のカードのこの部分を比較してみれば、比較的容易にデータ構造は解析することができるだろう。また、一枚のカードからでもカード番号などの数字と磁気データを比較することにより、解析することはやはり困難無しに解析できると思うのである。と、思うわけではあるが、あまりやりすぎるのはマズイと思われるので、今回はこれまでにしておく。
2000-02-21[n年前へ]
■「私の心」の円グラフ
私と好みが似てる人 その4
これまで、「できるかな?」では
- 「私と好みが似てる人」 その3- ドメイン一覧とreferer log - (1999.08.29)
- 「私と好みが似てる人」 その2- ログ解析の6ヶ月点検 - (1999.05.03)
- 「私と好みが同じ人」 - analogWindows版用のサブドメイン解析ソフトを作る - (1999.01.24)
前回から半年以上の時間が経ったので、今回も、「私と好みが似てる人」の解析を行ってみたい。今回の着目点は次のようなことである。
HIRAX.NETで記録されるreffer_logはHIRAX.NETへリンクが貼られているサイトのアドレスが記録されている。例えば、
http://umz.pos.to/Link/info.html -> /index.htmlというものであれば、「果テシナク続ク複数ノ零 」(きっと、Think Difficultを読んでいたのだろう。)を読んだ後にHIRAX.NETに訪れた、ということがわかるし、
http://www.hirax.net/index.html -> /dekirukana/moire2/index.htmlであれば、HIRAX.NET内の移動であることがわかる。また、
bookmarks -> /index.htmlであれば、ブックマークを使うことで、HIRAX.NETへ訪れたことが判るわけである。
また、実はリンクもブックマークでもなくて、「単に前にただ読んでいただけ(他のWindowで開かれているサイトでリンクが貼られていた場合など)」というものもたまには記録される。
このようにして、「私と好みが似てる人」達がどんなサイトを読んでいるかがわかるのである。最後に書いたように、reffer_logに記録されるのは、HIRAX.NETへリンクを貼っているサイトだけではないので、訪れる前に読んでいたサイトが(ある程度だであるが)わかるのである。
前回の、
では「HIRAX.NETへリンクを貼っているWEB作者を探る視点」から眺めた。今回は「私と好みが似てる人達がどんなサイトを読んでいるか」という視点から眺めてみたい。そして、「私と好みが似てる人」=「私」と考えて、私の好みを第三者的に考えてみたいのである。 話が変わるように思えるかもしれないが、私は「結果が全て」であると考えている(少なくとも、今の瞬間は)。「心の中で思っていて」も、口に出さなければ「思っていない」のと同じである。「掌の中の答え」は掌を開いてみなければわからない。
だから、他の人が自分に対して抱くイメージとは違う「ホントのオレ」があると主張してもしょうがない、と思うのである。「他の人が自分に対して抱くイメージ」=「ホントのオレ」であると思うのである。もちろん、「他の人が自分に対して抱くイメージ」をどう変えるかは自分次第だ。「掌の中の答え」は自分が決めるのだが、「掌の中の答え」を他の人に見せて、やっと「答え」になるのである。
話が長くなったが、「自分の好みはこうだ」と自分で言うのもなんなので、第三者的に「自分の好み」を探ってみることにしたのである。その材料はHIRAX.NETを読んでいる方(つまり、あなた)の読んでいるサイトである。これを読んでいるあなた自身がリトマス紙なのである。「私の好み」は「あなた自身の好み」でもあるのだ。
というわけで、今月前半のreffer_logよりHIRAX.NET外からリンクされた(あるいは移動してきた)、3276アクセスに対して解析を行った。reffer元を私が読んで、大雑把な分類をしてみた。用いた分類は、
- 読み物
- 検索
- コンピュータ
- 日記
- 雑情報
- エロ
- ニュース
- 画像
- 色
- 音楽
- ランキング
- 科学
- 深津絵里
- 製品情報
- イントラ内サイト
- 自然
- 文学
- ゲーム
例えば、
- 読み物 今日の必ずトクする一言 etc.
- コンピュータ お笑いパソコン日誌 etc.
- 雑情報 Fast & First etc.
reffer_logのreffer元がHIRAX.NETでない3276アクセスを分類したもの |
なるほど、「読み物(あぁ、なんて大雑把なくくりだ)」が三分の一を占め、以下「情報検索サイト(infoseekなど)」が1/5程を閉めている。そして、コンピュータ情報等だ。なるほど、それが「私の心の中の興味」と言われれば納得するものである。「科学」や「自然」がずいぶんと下位であるのが不思議なところであるが、まぁしょうがない。まぁ、こんなところだろう。
が、問題は次である。何故か、「エロ」サイトが6位にいるのである。これは、「IO= アイオー」ではない。「エロ = えろ=すけべぇ」である。
reffer_logのreffer元がHIRAX.NETでない3276アクセスを分類したもの |
これは、困った事態である。私としては、「オレはエロサイトよりニュースサイトの方をよく見るぞ!」と主張したいところである。いや、ホントに。しかし、先ほど
他の人が自分に対して抱くイメージとは違う「ホントのオレ」があると主張してもしょうがないと書いた所でもあるし、黙って受け入れなければならないだろう。何か、最近「できるかな?ってあれでしょ。ミニスカートの研究をしているスケベサイトでしょ。」と言われてたりするような気がしてしょうがないのだ… それも、また受け入れなければならないのだろうが…少し、悩んでしまう。
それとも、エロサイトを読んだ後に、心の清涼剤として「できるかな?」を読んでいるのだろうか?なるほど、それならわかる。納得だ。 うん、そういうことで納得しておきたい。
というわけで、先のグラフがが「私=これを読んでいるあなたの心の円グラフ」である。私の悩み=あなたの悩みでもあるはずだ。あなたの心の中には「エロ」が堂々6位に登場しているハズである。あなたの心はニュースより「すけべぇ」が好きなのだ。がんばれ、「私と好みが似てる人」。せめて、「ニュース」の方が上位に来るようにしてくれ…