hirax.net::Keywords::「ロゲルギスト」のブログ



1998-11-20[n年前へ]

モアレはデバイスに依存するか? 

 まず、以下のような2つの同心円画像をつくる。(なお、このような画像を簡単に作るために、Photoshop用のフィルターを作った。詳しくは「Photoshopの同心円フィルターを作る。」を参照して頂きたい。)
 以下の2つの画像は少し中心位置がずれている。また白く見えるところは255の値を持ち、黒く見えるところは0の値を持っている。(画像自体は512x512であり、表示の際に128x128に変換している。だから、この画像をそのまま保存して頂ければ、512x512のサイズで保存することができる。)
2つの同心円画像、画像1と画像2。上と下は少し中心位置がずれている。
 次に画像1と画像2をPhotoshopで重ね合わせる。ただし、 Photoshopでは黒=0であり、白=255である。すると、
  1. 黒(0)+黒(0)=0(すなわち黒)
  2. 白(255)+白(255)=255(すなわち白)
  3. 黒(0)+白(255)=255(すなわち白)
となってしまう。最初の2つはLBPで出力したOHPの場合と同じだが、最後の(黒+白=白)が違う。黒の方が白より値として小さいのが原因である。そこで、次のようにしてやればよい。
  1. 画像1を白黒反転し、画像1'を作る。
  2. 画像2を白黒反転、画像2'を作る。
  3. 画像1'と画像2'を加算し、画像3を作成する。
  4. 画像3を白黒反転し、画像3'を作成する。
 この画像3'が求める画像である。物理学的には波の干渉などの説明に使うと便利なOHPである。
OHPの重ね合わせをPhotoshopで真似た画像3'

 それでは、以上の画像変換を小さい画像でまとめて表示してみる。
計算実験A:同心円のOHP風重ね合わせ(画像1+画像2=画像3')
画像1
画像2
画像3'
 点光源から発される単波長光の干渉の説明にはちょうどいいOHPである。

 ところで、上の3つの画像をそれぞれ平滑化してみる。すると、以下のようになる。

画像1,2,3'をそれぞれ平滑化したもの
画像1を平滑化したもの
画像2を平滑化したもの
画像3'を平滑化したもの
 かなり平滑な、画像1と画像2を重ね合わせた画像3が平滑でなく、明確な模様を持つのは不可解である。レーザーの干渉であれば当然このような干渉縞ができるが、これはレーザー光の重ね合わせなどではない。それでは、一体なぜこのような現象が生じるのだろうか。なぜ、平均値が保存されていないのだろうか。
 以下でもう少し詳しく考えてみる。

重ね合わせにおける加算演算

 下のような画像A、画像Bを考える。拡大してあるが、画像自体は1x2ピクセルのサイズである。また、白=255、黒=0とすれば、いずれも平均値は128程度である。
画像A、画像B
 ここで、
  1. 黒+黒=黒
  2. 白+白=白
  3. 黒+白=黒
という加算演算がなりたつとして、いくつか演算をしてみる。

加算演算の例(左+中央=右)
画像A
画像A
画像A
画像A
画像B
画像C
画像B
画像B
画像B

 これに平均値も示すと以下のようになる。ここでは、LBPなどの紙に出力する際によく使われる、白=0、黒=255という表記をする。

加算演算の例(左+中央=右)
下段は平均値の加算における変化を示す。
画像A
画像A
画像A
128
+ 128
= 128
画像A
画像B
画像C
128
+ 128
= 256
画像B
画像B
画像B
128
+ 128
= 128

 同じ128+128でも、結果は128になるか256になるかの2種類ある。同じもの同士であれば、結果は128であるし、そうでなければ256になる。そのために、平均値が保存されないのである。このように、平均値が保存されない、言い換えれば、加算演算の結果が線形でない場合にはモアレが発生することになる。もしも、マクロに見て「128+128=256」が多い領域があれば、それはモアレの黒い部分であり、そうでない所は比較的明るい部分であるということになる。

ロゲルギストの-モアレが生じる理由は黒さの非線形性による-という言葉はこの「128+128=128、と128+128=256という結果の違いがあり、それがモアレの原因である」ということを示している。

 それでは、そのような現象「128+128=128という非線形性」が起きない状態を作ってみる。それには加算の結果である黒がサチらないようにすれば良い。

サチらない加算演算の例(左+中央=右)
下段は平均値の加算における変化を示す。
画像A
画像A
画像A
64
+ 64
= 128
画像A
画像B
画像C
64
+ 64
= 128
画像B
画像B
画像B
64
+ 64
= 128


 これでは、いずれの状態でもグレー+グレー=黒、すなわち、64+64=128という風になっている。これは黒がサチっていないからである。すなわち、-モアレが生じる理由である黒さの非線形性さ-がない状態になっている。
 それでは、この状態で計算実験Aと同じことをしてみる。それを計算実験Bとする。念のため、計算実験Aをもう一度示す。

計算実験A:同心円のOHP風重ね合わせ(画像1+画像2=画像3')
画像1
画像2
画像3'
 
計算実験A:画像1,2,3'をそれぞれ平滑化したもの
画像1を平滑化したもの
画像2を平滑化したもの
画像3'を平滑化したもの



計算実験B:グレー+グレー=黒 の場合
画像1の黒=0を128にした画像4を平滑化したもの画像2の黒=0を128にした画像5を平滑化したもの 画像4,5を加算したもの

 モアレができていないのがわかるだろうか。これはグレー(128)+グレー(128)=256(もっと黒)で線形な関係が成り立っているからである。平均化された画像で濃度がどこも倍近くになっているのがわかると思う。

モアレのデバイス依存性

 LBPではトナーが有る所、すなわち、画像が有る所はほぼ完全に影になる。例え、2枚重ねてもやはり影のままである。しかし、インクジェットならどうだろうか。OHPで使うと、黒といってもLBPに比べて薄い。1枚のOHPの黒よりも、2枚のOHPの黒を重ねた方がかなり黒い。ということは、「黒+黒=もっと黒」と同じである。したがって、OHPを重ね合わせても濃度が保存されている。すなわち、モアレが比較的に出来にくいことになる。ということは、OHPを何で作るかによってモアレの具合が変わることになる。付け加えれば、実際のOHPの場合には透過率を考えなければならない。透過率というものは単なる重ね合わせでない、具体的に言えば、加算演算でなく乗算演算である。それでも、話としては大体は同じことである。

 今回はOHPの話に絞ったが、透過原稿でなく反射原稿についても同じである。むしろ、反射原稿の方が乗算演算でなく、加算演算である分、今回の話そのままである。したがって、一般的なモアレについてインク(もしくはそれに相当するもの)の加算演算の具合によって、モアレの発生具合が違うと考えられる。

 また、話の単純のために白黒の話に限ったが、カラーのモアレなどについてもほぼ同じであろう。トナーとインク、また、混ざりやすいものと混ざりにくい物の違いなどでも面白い結果が出そうである。TVや液晶のようにほぼ線形の重ね合わせが成り立つであろうものと比較するのも面白そうである。

 今回の話を考えている途中で、OHPの重ね合わせと干渉の共通点については、結構奥が深いような気がしてきた。そのため、別の回でもう少し詳しく考えたい。


1999-01-10[n年前へ]

宇宙人はどこにいる? 

画像復元を勉強してみたい その1

 知人から「自称UFO写真」というのものが冗談半分(いや100%位か)で送られてきた。その写真はボケボケの画像なので何がなんだかなんだかわからない。そこで、ぼけぼけ画像を復元する方法を勉強してみたい。UFOは冗談として、画像復元において進んでいるのは天文分野である。そこで、このようなタイトルなのである。もちろん、画像復元の問題は奥が深すぎるので、じっくりと時間をかけてみる。今回はMathematicaを使って試行錯誤を行った。

 ボケ画像を復元するには、ボケ画像がどのように出来ているかを考えなければならない。そこで、ごく単純なぼけ画像を考えてみる。まずは以下の画像のような場合である。

左の点画像が右のようにボケる
画像:1
画像:2
 右の点画像が何らかの理由で右の画像のようにボケる場合だ。焦点のボケた写真などはこんな感じだろう。例えば、これはレンズの焦点合わせがおかしいカメラの画像だと思ってみる。そのカメラで風景を撮るとこのようになる。
本来、左のような風景がボケて右の写真のようになる。
画像:3
画像:4
 偶然、写真にカメラが写っているが、偶然である。別にそのカメラが焦点がボケボケといっているわけではない。今回、やりたいことは右上の写真(画像:4)を元に、左上の写真(画像:3)を復元したいということである。

 画像:1のような点画像が、画像:2のような分布のボケ画像になるとすると、次のような関係が成り立つ。

(式:1) 画像:4 = 画像:3 * 画像:2

画像:1のような点画像が画像:2になるなら、それを参照すれば、画像:3のような点画像の集合がどう
ボケるかは計算できる。つまり、それが画像:4になる。ここで、*はコンボリューションを表している。
 よくある信号処理の話で言えば、画像:2はインパルス応答である。といっても、これはごくごく単純な場合(線形シフトインバリアントとかいろいろ条件がある)の話である。まずはそういう簡単な場合から始めてみる。

 このようなごく単純な場合には

(式:2) 画像:3 = 画像:4 * (1/画像:2)

とすれば、画像:3を復元できることになる。

そこで、まずは単純な1次元データで考える。下の画像:5のようにボケる場合を考える。ここでは、ガウス分布にボケるようにしてある。

赤い線で表したパルスデータが水色で表した分布にボケる
画像:5
(式:1より) ボケ画像 = オリジナル画像 * ボケ具合
であったが、* すなわち、コンボリューションは
逆フーリエ変換(フーリエ変換(オリジナル画像) x フーリエ変換(ボケ具合))
と表すことができる。つまり、周波数領域で掛け算をすれば良いわけである。
左がボケ画像、右がその周波数領域(フーリエ変換)
画像:6
画像:7
 右のボケ画像の周波数表示を見れば低周波数の量が多いのがわかる。結局、このモデルではボケると低周波数を増やすことになる。逆に(式:2)では高周波数の量を増やすことに相当する。だから、Photoshopなどの「シャープ」というプラグインはラプラシアンを用いて、高周波を増やしてやることでボケ低減を行っている。それほど、不自然ではない。しかし、そう近い画像復元ができるわけでもない。

 それでは、試しに適当な1次元データをつくって、画像:6とコンボリューションをとってやり、ボケさせてみる。

左が原画像、右が画像:6と画像:8のコンボリューションをとったボケ画像
画像:8
画像:9
 画像:8のパルスデータは、画像:9ではボケてしまい、判別不能である。そこで、

逆フーリエ変換(フーリエ変換(画像:9) / フーリエ変換(画像:7))

= InverseFourier[Fourier[Image8] / Fourier[Image6]]; (*Mathematica*)

とやると、次のデータが得られる。

復元されたデータ
画像:10
 これがインバースフィルターによる画像復元の方法である。FIR(Finite InpulseResponse)フィルタなどだろう。ところで、

(式:2) 画像:3 = 画像:4 * (1/画像:2)

を見るとわかるが、画像:2が周波数領域で0になる点があったりすると、計算することができない。また、0に近いとむやみな高周波数の増幅が行われて使えない。

 そこで、この方法の修正として、ウィーナフィルターなどの最小平均自乗誤差フィルターがある。これにも多くの不自然な条件のもとに計算される(らしい)。しかし、infoseek辺りで探した限りでは、ウィーナフィルターを用いた画像復元の標準であるらしい。

この方法は先の逆変換に対して、次のように変形されたものである。Mathematicaの表記をそのまま貼り付けたのでわかりにくいかもしれない。

Noise ノイズのパワースペクトル
Signal 信号のパワースペクトル
Boke ボケる様子のインパルス応答
Conjugate 複素共役
BokeData ボケ画像
ResData1 計算した復元画像

Boke1 = (Boke^2 + Noise/Signal)/Conjugate[Boke]; (*Mathematica*)
ResData1 = InverseFourier[Fourier[BokeData] / Fourier[Boke1]]; (*Mathematica*)

である。Noise/SignalはS/N比の逆数であるから、SN比の大きいところではインバースフィルターに近づく。また、インバースフィルターの計算不能な点が消えている。

 これを使って復元してみたのが、次のデータである。

ウィーナフィルターを用いた復元
画像:11
 他にも、いろいろ変形っぽいものがあるが、とりあえず、1次元での練習はここまでにして、2次元で画像復元を行ってみる。

 まずは、ボケのフィルター(PSF=PointSpreadFunction(どのようにボケるかを示すもの)、2次元のインパルス応答)である。

ボケのフィルター(インパルス応答)
画像:12
 それでは、画像をボケさせる。右のボケ画像が全体的に暗いのは左とレンジが表示の違うからである。同じレンジにすると真っ白(真ん中辺りはちょっと灰色)になる。
左がオリジナル画像、右はボケた画像
画像:13
画像:14
 それでは、インバースフィルターを用いて画像を復元させてみる。
復元した画像
 うまく再現できている。今回はノイズも混入していないしPSF(PointSpreadFunction)もわかっているのだから、復元できて当然である。他の射影フィルタ、最大エントロピー・フィルタ、一般逆行列法、SVD法等については今回はまだ挑戦してみていない。
 その他線形の画像復元法をいくつか調べたが、ウィーナフィルターやインバースフィルターとほとんど同じような物が(素人目には)多かった。そこで、ウィーナフィルタなどとはやり方がかなり異なるものについて、いずれ挑戦してみたい。

 関係はないが、ウィナーと言えばサイバネティクスが思い浮かんでしまう。当然、ロゲルギストが連想されるわけだが、文庫本か何かで岩波版と中公版の「物理の散歩道」が安く売り出されないのだろうか?売れると思うんだけど。新書版は高すぎる。

 宇宙人はどこにいるか? そういった話は専門家に聞いて欲しい。わからないとは思うが。

................................................................................

 さて、ここからは、1999.01.24に書いている。シンクロニシティとでも言うのか、今回の一週間後の1999.01.17に
日本テレビ系『特命リサーチ200X』で

地球外生命体は存在するのか?( http://www.ntv.co.jp/FERC/research/19990117/f0220.html )

という回があった。何とこの回のコメンテーターは先の専門家と同じなのだ。偶然とは面白いものだ。

1999-06-28[n年前へ]

風呂場の水滴を考える。 

オールヌードの研究員

 風呂場の天井から浴槽めがけて、水滴がしたたって音がしているのはよくある風景である。ピーンという(もちろん人によっても印象は違うのだろうが)気持ちのいい音がしている。似たようなものとしては、水琴窟などもある。この音がなぜ鳴るかは、ロゲルギストの「物理の散歩道」に詳しい考察がある。それによれば、水滴が一粒落ちたように見えても、実は何粒かに別れており、ちょうどカルガモの親子のようになっているという。つまり、大きな親の水滴の一粒の後を、何粒かの小さな子どもの水滴が追いかけているという具合である。まず、水滴の親が水面に空洞をつくり、その中に子どもの水滴が飛び込むことにより音が出るという。結局、水滴の音を作っているのは、その子どもの水滴の方だという。「物理の散歩道」の中では、針をつたって水滴を落とせば、子どもの水滴ができないという。

 風呂に入って、濡らした手から水滴を落としてみる。指の爪の先から水滴を落とすと音はほとんどしないが、指の「はら」から落とすと派手に音がする。ぜひ、自分でも確かめていただきたい。
 爪先は比較的尖っているので、落ちる水滴は一粒だが、比較的平らな指の「はら」からの場合には、カルガモ親子のような水滴が落ちているせいだろう。

 なぜ、このような違いが生じるかを推測してみたい。まずは、下の絵を見て欲しい。

左は指の「はら」から落ちる水滴、右は爪の先から落ちる水滴、いずれも想像図

 上の上手な絵が言いたいのは、次のような推測である。

  • 平らな表面から水滴が落ちる際には、長く伸びた水のブリッジが出来ていて、1つぶ目の水滴が落ちた後も、このブリッジ部分が「カルガモの子ども」のように小さな水滴となって後を追いかけていくのではないか。
  • それに対して、尖った表面から水滴が落ちる際には、先のブリッジ部分のほとんどは水でないため、後続の水滴は発生しない。
 この推測が合っているかどうか確認するために、計算実験と確認実験を行いたい。そのために、まずは下調べだ。

 計算モデルとしてどのようなものを使うかであるが、私の知っている範囲では大きく分けて2種類のやり方がある。

  • 流体をモデル計算する。すなわち、Navier-Stokesの方程式を解く。
  • 流体を粒子のようなものの連続体として解く(ex.格子ボルツマン法)
 一番メジャーなのは、Navier-Stokesの方程式を解くものだろう。そのような方法で解かれた解析結果の例が、電通大、田中大介氏の「自由表面を持つ軸対象の流れの数値計算(水滴の分離) 」にある。

電気通信大学情報工学科情報数理工学講座渡辺研究室( http://assam.im.uec.ac.jp/fluid.html )

水滴が分離する直前 ( http://assam.im.uec.ac.jp/fluid.html)

 また、水滴が水面に衝突する状態の計算は、電気通信大学情報工学科情報数理工学講座渡辺研究室にもあるし、他にもNaSt2DというFreeの2次元Navier-Stokes方程式のソルバーを用いて行われた計算結果が
http://www5.informatik.tu-muenchen.de/forschung/visualisierung/praktikum.html
にある。

水滴の水面に衝突する瞬間 (http://www5.informatik.tu-muenchen.de/forschung/)

 Michael Griebel氏らによるNast2Dのコードは公開されているので、その中身をいじりながら、計算を行う予定である。

 とりあえず、今回はバックグラウンドを紹介する所までで、次回(といってもすぐではないだろう)に計算の本番に入りたい。

 手のひらの実験から考えると、風呂場で水滴の音が聞こえるのは天井が平らなせいだということになる。ならば、鍾乳石のようなつらら形状の天井の風呂場では音がしないのだろうか?しかし、水滴は空気中で落下していく最中には空気の抵抗をうける。そのため、大きな水滴は落ちる最中に分裂し、複数の水滴になってしまう。
となると、

  • 落ちる水滴の最初の大きさは、どう決まっているのか。
  • 水滴は落下するスピード、水滴の大きさがどの程度になると分裂するのか?
という問題がわからないと困る。そのため、落ちていく水滴を長時間にわたり追いかけても見たい。こういった題目を相手にしてぼちぼちと遊んで行く予定である。

 ところで、インクジェット方式のカラープリンターも液滴で画像を描くのだから、液滴の様子は重要な筈である。液滴が飛び散ってしまっては困るし、位置がずれても困る。各社ともカルガモの子ども水滴をなくすために色々工夫をこらしている筈だ。
 実は風呂場の水滴問題は重要で、奥が深いのだ。オールヌードで私は考えるのであった。

1999-12-30[n年前へ]

6502と並列計算とムーアの法則 

人間のクロック&スケールアップ


 「物理の散歩道」を読み直していると、とある文章に興味を覚えた。

  • 第五物理の散歩道 ロゲルギスト著 岩波新書
の中の「通信を考える」である。この本は、何度読み返しても新鮮である。

 「通信を考える」の中の興味を惹かれた部分は「信号の伝わる速度と距離と処理速度の関係」を論じている部分だ。例えば、計算機は処理速度を高めるためには回路の大きさを小さくしなければならないとか、人間の頭脳の働きの速さから集団生活の広がりの限界について論じているのだ。例えば、

  • 計算機の演算速度の時間スケール -> ナノ秒 = 10^-9s (クロックで考えると、1GHz)
  • 人間の演算速度の時間スケール -> サブ秒 = 10^-1s (クロックで考えると、10Hz)
ということから、計算機の大きさが0.12=1.2x10^-1m角として、地球の直径が12000km=1.2x10^7とすると、その空間スケールが先の時間スケールと同じ比すなわち10^8であると言及しているのだ。

 つまり、通信の速度が光速度であるとして、演算の単位クロックの間に通信が行われなければならないとするならば、計算機の時間・空間スケールと人間の時間・空間スケールは等しいだろう、という推論だ。
 
そして、さらにロゲルギストの想像は広がり、並列計算についても論じている。

 計算機が東京と大阪に離れて置かれていて、通信をしながら作業をするとしたら、人間の場合にはそれと同じ条件というのはどんなものだろうか、と彼らは考える。それは、光の速度で55時間、ちょうど冥王星の軌道直径の5倍程度の空間スケールになる、と論じている。それ以上、離れた場合には演算の過程を共に行うのは無理ではないかというのである。

 こういう文章を読んでいると、この文章が作られたのが30年以上前であることを忘れてしまいそうである。この人達の思索の自由さに憧れを感じてしまう。この人達は、頭の中にタイムマシンにでも持っているのだろうか、と感じてしまうのだ。

 ところで、私がコンピューターをいじるようになった頃は、Apple][の時代だった。といっても、私はお金があふれていたわけではないので、XXX電子でAplle][のコンパチ基盤を買って組み立てて使っていた。その基盤上の6502は1MHzで動いていた筈だ(あぁ、I/Oの6809派vs6502派の論争が懐かしい!)。

 それから20年程たち、CPUのクロックスピードは1GHzを越えようとしている。20年で1000倍である。そして、その集積度は、ムーア(GordonMoore)の法則の「半導体の性能と集積は、18ヶ月ごとに2倍になる」に従っている。

 それでは、人間はどうだろうか?人間の脳味噌のクロックがどの程度であるか測定されているかどうか、素人の私にはよくわからない。しかし、WEB上のデータとしては、例えば

というようなデータがある。ここでは、1演算/秒である。ロゲルギストの用いたものが10演算/秒である。これらは、かなり近い値と言える。もちろん、Mayoさんの演算速度はロゲルギストよりも一桁下であるわけだが、ロゲルギスト達と比べては可哀想というものだ。それに、おそらくMayoさんは謙遜しているのだと思われる。実はもう少し速いのだろう。それに比べて、私などは、二桁の演算(しかも足し算でも)になると1演算/秒もこなせるかどうか判らないくらいである。

 ロゲルギストの時代、すなわち30年以上前、から現在のMayo's Profileの値がほとんど変わっていないように、人間の演算スピードは変わるようなものではない。それは、そうだろう。ヒトのクロックスピードや集積度といったものは、変えるわけにはいかない。当然である。CPUと違ってプロセスルールを変化させるというような訳にはいかないのだ。

 それでは、演算性能を上げようとしたらどうするだろうか?そうなると、並列計算を行うのが自然だろう。単独のCPUの性能を上げるわけに行かなくても、共同作業を行えば、演算性能を上げることができる。

 現代はほとんどの作業が共同作業で行われる。また、その共同作業も大人数が関わるようになってきている。それは、どんな業種でも同じだ。一人では、なかなかできないことが多くなっている。
 それら共同作業、すなわち並列計算、を行う人達(例えれば並列計算機における各ノード)を増やし、それらの間の情報転送をすばやく行うことが多くの作業(計算)を行うための手順だろう。

 そこで、

で用いた
  • 人口増加( http://www.t3.rim.or.jp/~kabutoya/KABHTML/Yoi/2-1.html )
のデータをもう一度眺めてみることにしよう。

最近500年間の人口の変化

 なるほど、人間界の並列計算機におけるノード数は増加している。そして、各ノード間の通信速度を調べるために、まずは、

などの情報から、適当な通信の歴史を調べてみる。
西暦 内容
-4000 のろし
-2400 伝書鳩
-2300 馬による伝令制度
1837 モールス電信機
1876 ベグラハム=ベル電話機
1909 グリエルモ=マルコーン無線電話機
1973 Ethernet XeroxPARCで生まれる。(ちなみにEther=エーテル)
1979 DIX規格=10Mbps
1992 FastEthernet=100Mbps
 これを全部転送速度に直してみる。といっても、よくわからない部分も多いので、私が適当に決めてみる。それでは、その変化を示してみよう。とりあえず、ここ200年位の間のものを考える。
西暦 内容
1837 モールス電信機 = 2bps
1909 グリエルモ=マルコーン無線電話機=10kbps
1979 DIX規格=10Mbps
1992 FastEthernet=100Mbps
 という感じだ。グラフにすると、
最近200年間の情報伝送速度の変化

こんな感じである。対数グラフにおいて直線的に情報伝送速度が速くなっている。この関係は結構きれいである。
 別に意図してこういう数字にした訳ではないのだが、不思議なことである。
 このようにして、人間(ノード)間の転送レートが高くなることにより、先のような人口増加に伴うトラフィック増加をしのぐことができていると考えることもできるかもしれない。そして、人間達の共同作業、すなわち並列計算、を行うだけのバススピードを確保しているのである。

 最近、会社組織などで分社化とか事業分割とかの話題をよく耳にする。こういった時に、分割における時間と空間のスケールはよく考える必要があるだろう。分割が有効なのは、ほとんど独立なものを分割する場合のみである。並列計算における領域分割などと同じだ。

 共同作業がほとんどなく、結果のみをやりとりすれば良いような場合には分割による効果はあるだろう。その一方で、同じ事業・作業を行っているところが、離れていては作業の効率は上がらない。もし、技術系の会社でそのようなことを行うのであれば、事業や部署を並列化した際の真面目なシミュレーション位は行うべきだろう。いや、別に深い意図はないけど。

 こういったことは「新・闘わないプログラマ No.109 時代錯誤」に書かれていることとも少し似ているような気がする。

 さて、1999/12/30-2000/1/1は野沢温泉で温泉&スキーである。2000年問題で会社に泊まり込む人も多いが、私はスキー場で泊まり込みである。同時期に野沢温泉に行く人がいるならば、ぜひ一緒に「スキー場の特殊相対性理論」について討論したいと思う(スキー場で)。

2000-01-08[n年前へ]

着メロの音響工学 

この着信音は誰のだ!? 立体音感その3


 街中で携帯電話の着信音が鳴ると、周辺の人が一斉に自分のポケットを探る光景というのはよく見掛ける。それは、まるで「クイズ・ドレミファドン」のようである。そう「超・イントロクイズ」そのものなのだ。「このイントロはオレのか!?それとも!?」と皆が考えている瞬間である。
 着メロのイントロが始まるや否や、腰の携帯電話に手をやる様子は「おまえは荒野のガンマンか!」とツッコみたくなる程である。

 特に、私の勤務先などでは全員が同じPHSを持ち歩いているせいか、着信音が聞こえ始めると、みな自分のポケットを探り始める。もちろん、そのPHSの着信音は数種類ある。しかし、1500人程度の従業員がいるわけだから、1500人/ 数種類だけ同じ着信音があるわけだ。仮に15種類あるとしても、

1500(人) / 15(種類数) = 100(人/種類)
つまり、自分と全く同じ着信音のPHSを持つ人が100人もいるのだ。世の中には「自分と同じ顔の人が七人いる」というが、職場に同じ着信音の人が100人もいるのである。これでは、着信音が鳴ると同時に多くの人がポケットを探るのも自然だろう。

 もちろん、この解決策として、「着信音でなくてバイブレーターを使う」というものがあるわけだが、何故かその解決策は許されないらしい。不思議である。

 さて、そもそも、何故自分の着信音を区別できないのだろうか? まず、その辺りから考えてみることにする。
 着信音が鳴ったときに、「自分の着信音かどうか判断するための基準」は二つあるだろう。それは、

  1. 着信音の種類
  2. 着信音が鳴っている位置
の二つである。着信音が人それぞれ固有のものであるとしたら、着信音の種類を聞けば、誰の着信音か判断できる。また、仮に着信音がみな同じであっても、着信音が鳴っている位置を識別できれば、それでも誰の着信音であるか判断できる。自分の携帯電話の位置は、それぞれ把握しているのが自然である。だから、
着信音の鳴っている位置 = 自分の携帯電話の位置
が成立するかどうか即座に判断できれば、着信音が同じでも「自分の着信音であるか」の判断が可能ということだ。

  つまりは、「携帯電話の着信音という音源の定位」という問題を考えれば良いことになる。もし、「着信音の定位」が判れば、自分の携帯電話の着信音か他の人の着信音かどうかなんてことは考えなくて済むのだ。そう、今回は「立体音感」シリーズその3だったのである。

 それでは、一体「着信音がどこで鳴っているのか、すなわち、着信音の定位」が判るためには何が必要なのだろうか?
 

前回、

で「音の立体感に関する因子」について
  • 音像定位の因子
    • 両耳差因子 (音響信号)
      • 音の強さ(振幅)の差
      • 位相の差
    • 周波数スペクトル因子
の中の両耳差因子の内の「音の強さ(振幅)の差」について考えた。今回は、「着信音の定位」を考えるにあたり、「周波数スペクトル因子」に注目してみることにする。

 周波数スペクトル因子というのは、例えば、

の中の記述
 指を前方で鳴らしてみて下さい。 そしてすこしずつ手を頭の側方に、手と頭の距離を変えないようにして、移動してみて下さい。 音量がわずかに大きくなったこととある特定の中域および広域の音がより強調されることに気が付かれるでしょう。 この実験では、指を鳴らす動作は一定の音量と周波数を発生する音源として用いられたわけです。 耳は同一の音源が前方から来る場合と、側方から来る場合で全く違う音と聞き分け、頭脳にそれを登録します。 側方の音は若干大きく、また耳たぶのせいで高い周波数で聞こえます。
にあるようなものである。
 音波が人間の頭部を通過してくる間に音波の周波数分布が変化し、その変化具合で音波がやってきた方向を知ることができるというものだ(多分)。もちろん、位相分布も変化するだろうが、ここでは周波数分布しか考えない。

 こういう音像定位の因子における「周波数スペクトル因子」を考える時に、もし音源の周波数スペクトルがごく狭いものだったらどうだろうか?つまり、単一の周波数しか含まない音源だったらどうだろうか?周波数スペクトルが変化するといっても、単一のスペクトルしか含んでいないのだから、振幅が変化する効果しかない。周波数スペクトルの分布は何ら変化しない。
 ということは、「音像定位の因子における周波数スペクトル因子」が上手く作用しないことになってしまう。(もちろん、実際には非線形な効果が存在するだろうから、多少は周波数スペクトルも変化するとは思うが。)

 これと全く同じことはまたしても「物理の散歩道」で触れられている。ロゲルギスト著の岩波新書「第四物理の散歩道」の「不規則なものの効用 三節」である。純音より不規則な音の方が「立体感」を得られるだろう、と書いている。

 今回、「携帯電話の着信音の定位」を「着信音のスペクトル分布」という観点から調べてみることにする。携帯電話の着信音がどのような波形であるか、どのような周波数分布を持っているかを調べるのである。果たして、携帯電話の着信音の周波数分布はどうなっているのだろうか?(部品点数を考えれば、ほぼSin波か矩形波なのが当然だろうが...)

 まずは手持ちの機種で着信音の波形とスペクトルを見てみることにした。使った機種を以下に示す。
 

使用した Hitachi C201H

 それでは、着信音No4と着メロ「この木何の木」の波形とスペクトログラムを次に示す。それぞれのグラフ中で上は「時間vs周波数分布」を示すスペクトログラムであり、下は「時間vs強度」の波形グラフである。

 まずこれが、着信音No.4の波形とスペクトログラムであり、
 

No.4の波形とスペクトログラム

こちらが、「この木何の木」の波形とスペクトログラムだ。
 

「この木何の木」の波形とスペクトログラム

 どちらも周波数分布はそれほどブロードではない。すると、「音像定位の因子における周波数スペクトル因子」を用いた「立体音感」がうまく働かないかもしれない。ただし、着信音No.4に関しては時間的に変化しないが、着メロ「この木何の木」に関しては、当然だが時間的に変化していく。

 この違いが果たして、「着信音の音像の定位」の判断を左右するものか、自分の耳で実験することにした。着信音No.4と着メロ「この木何の木」を鳴らした時に、どこから鳴っているように聞こえるか判断してみるのだ。

 目をつぶり頭の周囲で着信音を鳴らし、その定位を判断してみた。すると、色々な着信音を聞いてみたがいずれも定位の判断がしづらかった。特に頭の前後の判断がしづらい。それは、着信音No.4と着メロ「この木何の木」でも同様であった。やはり、純音に近いと「音像定位の因子における周波数スペクトル因子」が働きづらいのかもしれない。

 そして、着信音No.4と着メロ「この木何の木」だが、むしろ着信音No.4の方が判断をしやすかった。メロディだと音が変わるときに定位が変わるかのような感覚を受けた。そのため、判断をしにくかった。もちろん、これは私だけの感覚かもしれない。その辺りは被験者を増やして実験をしてみたい(再実験をする日が来るかどうかは大いに疑問であるが)。
 また、もしかしたら着信音No.4の方が矩形波に近く、純音でないのが良かったのかもしれない。もしかしたら、の話だけれど。

 もし、今回使った音を聞いてみたい人がいるならば、

これを聞いてみてもらいたい。ただし、サイズがでかいので要注意だ。あとバックグラウンドがうるさいのはハードディスクとファンの回転音である。困ったものだ。

 最近多い「同時発声数が多い着メロ機能」というのも、使って実験すると面白そうだ。しかも、音が分厚いヤツがあると、案外良いモノかもしれないな、とうらやましく思ったりするのである。そして、着信音スピーカーがプアァで歪んでいる機種なんかが、色々な周波数成分を含んでいて、実は「着信音の定位」に関しては良かったりするのかもしれない、と考えたりする。しかし、こちらはチットモうらやましくないのであった。
 



■Powered by yagm.net