1999-09-17[n年前へ]
■モアレ、デバイス、2項分布の三題話
淡色インクの副作用
今回は、9ヶ月間も寝かせた伏線にまつわる話である。いや、別に寝かせるつもりは無かったのだが、いつのまにかそんなに時間が経ってしまった。
以前、
という話があったが、その2つを結びつけるミッシングリンクについて考えてみたいと思う。「2項分布のムラについて考える(1999.01.08)」の最後に「今回の話はあることの前準備なので、これだけでは話しが全く見えないかもしれない。というわけで、続く...」と書いた。「その続き」というわけである。始めに「2項分布のムラについて考える(1999.01.08)」の要点をまとめると以下のようになる。それは、
- ランダムと呼ばれるものの内で代表的な2項分布においては、当然のごとく「ある領域での平均値はばらつく」。
- そして、そのばらつきは直感的に考える程度よりももっとばらつく。
- 例えば、2値画像で考えるならば、2048dpi程度の解像度でランダムなデータを並べた場合には、人間の目はざらつきを感じてしまう。
そして、「モアレはデバイスに依存するか?(1998.11.20)」での要点は
- モアレにはデバイス依存性がある
- 線形な重ね合わせが成り立たない場合にはモアレが発生する。
最近のインクジェットプリンターはCMYKの4色インクだけでなく、淡色インクも使うものもある。淡色のインクを使うことで階調豊かな画像を印字できるわけだ。4色インクだけではディザなどを使って、解像度を下げて階調を出さなければならないわけであるが、それが不要になるわけだ。
解像度を下げないですむわけであるから、ディザのざらつきを感じないですむわけだ。しかし、淡色のインクを使った場合の効果というのはそれだけではないように思われる。HP(ヒューレッドパッカード)などのWEBのプリンター紹介を読んでいると、「淡色のインクを重ねて濃度を出す」というような記述を目にする。これは「少なくとも淡色インクでは線形性(あるいはそれに近い関係)が成り立つ」ということだ。
インクジェットプリンターの解像度を上げたときに、インク滴が意図しないところへずれてしまうことはきっとあるだろう。その際に他のインク滴と重なったらどうなるだろうか?意図しなくても他のインク滴との重ね合わせは発生してしまうだろう。
重ね合わせが成り立たない、非線型なインクではモアレが発生する。言いかえれば、意図しない濃度のばらつき・ざらつきが発生してしまう。「2項分布のムラについて考える(1999.01.08)」で考えたようにランダムに重ね合わさるから広い領域では一定だろうというのは予想外に成り立たないのである。でたらめというのは私の予想外に大きく効いてくるのである。
しかし、重ね合わせに線形性が成り立つ淡色のインクではモアレが発生しない。すなわち、いくらランダムにインク滴の重ね合わせが生じてしまったとしても、意図した通りの濃度をだすことができ、ばらつき・ざらつきは発生しないことになる。参考までにインクジェットの印字画像の拡大写真を示してみる。
「重ね合わせに線形性が成り立つ淡色のインクではモアレが発生しない。すなわち、いくらランダムにインク滴の重ね合わせが生じてしまったとしても、意図した通りの濃度をだすことができ、ばらつき・ざらつきは発生しない」と、書いただけでは意図するところが伝わらないと思うので、「モアレはデバイスに依存するか?(1998.11.20)」で使った画像を用いて考えてみる。この画像は重ね合わせがある幾何学模様で生じているが、この現象がランダムに起こっているものとして読み替えて欲しい。
下は、淡色のインクで重ね合わせ(インク滴の意図しない重なり)が生じた場合である。
なんの模様も生じていなく、意図した通りの画像出力ができているのがわかると思う。
ということで、今回の話(というか前の2回の話)の繋がりは、
淡色のインクを用いたインクジェットプリンターでは、意図しないインク滴の重ね合わせが生じてしまっても、濃度変化が生じにくく、意図しないインク滴の重ね合わせがでたらめに発生してしまったとしても、画像にはあらわれない可能性があるということである。
うーん、マニアックな内容だ。「身近な疑問を調べる」という看板に偽り有り、である。しかも単なる推論だ。
しかし、もしもインクジェットプリンターを買う人がいるならば、淡色のインクを使っているものを購入するといいかもしれない、ということがわかっただけでも良しとしておこう。
1999-10-15[n年前へ]
■続々ACIIアートの秘密
階調変換 その2
前々回の
の時にASCIIアートに関する情報を探した- 清竹's テキスト絵 HPリンク集 (http://www2.nkansai.ne.jp/users/kiyo/ )
「限られた出力階調を有効に利用するため、画像の濃度ヒストグラムの補正を行ないます。1パス目で、濃度ヒストグラムをカウントし、そこからヒストグラムが平坦になるような濃度変換関数を生成します。(ヒストグラムを平坦にするのは、情報のエントロピーをなるべく保存するためです。)」とある。Q02TEXTはimage2asciiと同様のテキストアート作成プログラムである。前回のの最後で(3).情報量を最大にするモデル というのを導入したが、これがそのエントロピー最大化アルゴリズムに近いものを導入してみたものである。何しろ、この考えを使っていくのは乏しい階調性の出力機器には非常に有効なのだ。今回は、この「エントロピー最大化アルゴリズム」について考えてみたい。
Q02TEXTは「 .:|/(%YVO8D@0#$」の16階調を使用するテキストアート作成プログラムである。それに対して、「ASCIIアートの秘密」で作成したimage2asciiが使用可能な階調数は一定ではない。指定されたフォントを一旦出力してみて、その結果を計測することにより、出力可能な階調数を決定している。したがって、指定したフォントでしか階調の確かさは保証されない。その代わりに、指定されたフォントを使えば割に豊かな階調性を使用できることになる。
また、得られる階調は一般的に滑らかではないので、Q02TEXTが使っているアルゴリズムとは少し違うものを導入している。
通常ASCIIアートは色々な環境で見ることができるのがメリットの一つである。しかし、image2asciiはフォントを限定してしまっている。これは、目的が通常のASCIIアートとは異なるからである。私がimage2asciiを作った目的は、それを仮想的な出力デバイスとしてみたいからである。その出力で生じる様々な問題を調べたり、解決してみたいのである。
さて、前回の最後に示した3種類の画像変換は
- 単純な階調重視モデル
- オリジナルの0を出力画像の最小値に
- オリジナルの255を出力画像の最大値にする
- 拡大した単純な階調重視モデル
- オリジナルの最小値を出力画像の最小値に
- オリジナルの最大値を出力画像の最大値にする
- 情報量を最大にするモデル
- エントロピーを最大にするための階調変換を行う
これら3つの変換方法の違いにより出力画像にどのような違いが生じていたかを、まずはもう一度見てみる。まずは、オリジナル画像である。これは、「私の尊敬する」S大先生である。私は尊敬とともに「ロボコップSさん」あるいは、「ロボSさん」と呼ぶのだ。いや、本当に。
以下にオリジナル画像及びimage2asciiを用いて変換したものを示す。
- (1).単純な階調重視モデルが比較的白い個所では一番オリジナルに忠実な濃度であることはわかるだろう。ただし、黒い部分に関しての表現力は極めて低い。
- (2).階調性を少しだけ改善したものではそれより視認性が改善している。
- (3).視認度の高い画像ではあるが、オリジナルとは濃度などは異なる?
それでは、これらの画像のヒストグラムを調べてみる。先の「(ヒストグラムを平坦にするのは、情報のエントロピーをなるべく保存するためです。)」というのとの関係を調べたいわけである。
ASCII ARTには濃度の表現領域には限度がある。そのため、(1),(2),(3)はいずれも濃度が最大を示す個所でもオリジナルよりかなり濃度が低い。また、(1),(2)はオリジナルとヒストグラムの形状も少しは「似ている」が、(3)においては、かなり異なっているのがわかると思う。(3)はヒストグラムの形状はかなり異なるにも関わらず、視認度は高くなっている。これが、エントロピーを最大化(すなわち情報量を最大化)しているおかげである。ヒストグラムがかなり平坦になっているのがわかるだろう。
というならば、エントロピーの計算もしなければならないだろう。もちろんエントロピーと言えば、
でも登場している。「エントロピーは増大するのみ...」というフレーズで有名なアレである。情報量を示す値だといっても良いだろう。せっかく、「ハードディスク...」の回で計算をしたのだから、今回もその計算を流用してエントロピーを計算してみたい。といっても、無記憶情報源(Zero-memorySource)モデルに基づけば、ヒストグラムが平坦すなわち各濃度の出現確率が等確率に近いほどエントロピーは高いのが当たり前であるが... この前作成したMathematicaのNotebookを流用するために、オリジナルと3つの変換画像を合体させる。そして、そのヒストグラムを見てみよう。このヒストグラムが非常にわかりにくいと思うので、一応説明しておく。あるY軸の値で水平に1ライン抽出して、その部分のヒストグラムを右のグラフに示しているのである。
例えば、オリジナルの画像では髪の毛がある辺り(Y軸で10から30位)では、ヒストグラムを見ればレベルが50位の黒い所が多いところがわかる。それに対して、変換後の画像では、一番濃度の高い所でも150前後であることがわかるだろう。
それでは、それぞれ、Y軸でスライスしてその断面におけるエントロピーを計算したものを次に示してみる。
本来は、画像全面におけるエントロピーを計算するのが、望ましい。しかし、ここで使っているような、Y軸でスライスしてその断面におけるエントロピーでも、オリジナルの画像が一番エントロピーが高く、(3)の変換画像(つまり一番上)のものが次にエントロピーが高いのがわかると思う。つまり、情報量が高いのである。
エントロピー量とあなたの感じる「視認度」とが相関があるかどうかは非常に興味があるところだ(私にとって)。エントロピーが多くても(すなわち情報量が多くても)オレはちっともいいと思わないよ、とか、おれは断然エントロピー派だね、とか色々な意見があったらぜひ私まで教えてほしい。
「お遊び」に見えるASCIIアートも、調べていくと実は奥が深いのだなぁ、とつくづく思う。といっても、もちろん本WEBはお遊びである。なかなか、奥までは辿りつかない(し、辿りつけない)と思うが、この「ASCIIアートの秘密」シリーズはまだまだ続くのである。
2003-03-27[n年前へ]
■錯覚アスキーアート
「錯覚するアスキーアート」と「Checker-shadow illusion」 あまりに制限のある手段のアスキーアートで色んなものを作るというその方向性はとても好きだ。
誰でも驚くに違いない「AとBの部分の濃度が同じ」というChecker-shadow illusionをグレースケールにしたものと、PDLSの鳥瞰図プラグインで疑似カラーにしたものを並べてみる。疑似カラーにしてしまうと、錯覚もいきなり消え失せてしまう。
2003-05-03[n年前へ]
■電車でGO! on WEB
みたいなもの。鉄っちゃんでないワタシでも面白い。もう、こんなのとか、こんなのなんてFe濃度が高い人には止められないのではないか、と。ネタ元は(以下省略)。
2003-05-04[n年前へ]
■スカしッ屁の風速ベクトル
おならの流体力学 放出口外側のパンツ内側編
少し前まで、米軍のステルス戦闘機などの話をニュースで見かけることが多かった。ステルス戦闘機といえば、それはもちろんレーダーには映らないわけで、「音はすれども姿は見えない、まるでアナタは屁のような」戦闘機なのである。これが通常の戦闘機の場合であれば出撃したりするとレーダーに写ってしまって大きな襲来警報のサイレンとともに迎えられたりするわけであるが、ステルス戦闘機の場合にはそんな襲来警報の音もなくいきなり出現するわけで、いわば音を伴わない「スカしッ屁」のようなオソロしい戦闘機なのである。しかし、ステルス戦闘機もオソロしいのだが、スカしッ屁だって十分オソロしい。何しろ、「音のしないおならは臭い」「スカしッ屁は臭い」とよく言われるほどそのに臭いは強烈だとされているのである。スカしッ屁は、ステルス戦闘機のごとくいきなり我々の鼻腔奥深くに達し、そして姿を現した瞬間にはもう我々の体の鼻の奥にその恐怖の毒ガスを充満させていくのである。
ところで、ステルス戦闘機の恐ろしさはともかく「音のしないおならは臭い」というのは本当なのだろうか?当たり前のように口にされる「スカしッ屁は臭い」というセリフであるが、それは何か事実に基づいたものなのだろうか?そんなことはきっと誰しも一回は不思議に思ったことがあるに違いない。そこで、資料などを調べてみると実際にスカしッ屁は臭いという科学的根拠があるらしい。何でも、音がするしないは大抵の場合「おならの量」で決まるらしく、おならの量が多い場合には音がして、おならの量が少ない場合には音がしないというのである。そして、量が多いおならの原因は穀物を食べた時にでんぷんや繊維質が発酵して発生するメタンガスで、それはほとんど臭くないというのである。ところが、量が少ないおならの場合には、そのおならの原因は肉類の蛋白質・脂肪類が発酵して発生するアンモニア・インドールなどで、これが実に臭いというのである。だから、量が多いおならすなわち音が出るおならは臭いけれど、「量が少ないおなら」つまり音のしないスカしッ屁は臭いというのだ。統計的には「臭くないスカしッ屁は気づかれない」から「気づかれるスカしッ屁は必ず臭い」「だからとりたててスカしッ屁が臭いわけではない」という理屈も成り立ちそうなものだが、そんな理屈はさておき「スカしッ屁」の臭いは事実オソロシいものらしい。
「スカしッ屁」の臭いが事実オソロシいとすると、音もなく訪れるそんなオソロシイ兵器から私たちはどのようにして身を守れば良いのだろうか?音もなくいきなり鼻腔に忍び寄ってくる「スカしッ屁」という恐るべき化学兵器からどのようにすれば身を守ることができるのだろうか?そこはもちろん、身を守るためにはまずはその対象をよく知らなければならないのである。敵を知らずして敵に勝つことはできないのである。「スカしッ屁」から身を守るためには、「スカしッ屁」をよく知らなければならないのである。別にそんなことを知りたくもない、という気持ちはもちろんココロの奥底に強く強くあるのだけれど、身を守るためにはそんなことは言っていられないのである。自分のみを守るためには、私たちはおならについて少しばかり考えてみなければイケナイのだ。…というわけで、今回はおなら(毒ガス)が体内から放出(放屁)されたのちに、オナラ放出口近辺で起きている現象を考えてみることにしたい。
今回は、まずはオナラが体内から外に放出された瞬間を考えるために、とりあえず「音のするオナラ」と「スカしッ屁」が「黄門様」から放出されたあとの噴出風速ベクトル(放屁ベクトル)をナヴィエ・ストークス方程式の計算エンジンにNaSt2Dを使って計算してみた。計算領域は放出口の外側、パンツの内側というごく狭い領域である。計算領域の左中央辺りに黄門様が位置しており、計算領域の右側にはパンツがある。また、ここではパンツと言ってもビキニやブリーフのようなピッタリお肌に密着タイプではなく、トランクスのように肌との間に空間が存在するタイプを仮定している。そして、「音のするオナラ」の場合には強く早く小刻みに「ブーッ」っとオナラが放出口から放出され、「スカしッ屁」の場合には「スーッ」と弱~くオナラが黄門様から放出されることにしてみた。下の二つのグラフが、そのようにして計算してみたオナラが出たときの黄門様の外側パンツの内側における「音のするオナラ」と「スカしッ屁」のオナラ噴出風速ベクトルである。音でいうなら、左が「ブーッ」で、右が「スーッ」なのである。
もちろん、言うまでもなく上の計算は実に大雑把で簡易的なものだが、「音のするオナラ」の場合には、おならの風速ベクトルの方向が刻々変わり、またその大きさも大きいことから、放出口外側ですぐに急速に拡散してしまうことが予想される。すなわち、毒ガス濃度がパンツ内ですぐに薄まり、おならガスの危険度が低下していることが判る。黄門様の外側パンツの内側でおならガスが急速に拡がっているようすが目に浮かぶようである。絶対に、目に浮かべたいとは思わないのだがこのグラフを見るとそんな様子がまぶたの裏にまざまざと浮かんでしまうのである。
それに対し、「スカしッ屁」は「スー」っと滑らかに出るがために毒ガスが拡散せず、放出口を出た後も毒ガスの危険濃度を保ったまま「まとまったガス雲」として戦隊飛行を続けていくことが予感される結果なのである。「スカしッ屁」はその毒ガス成分だけでなく、そのガス拡散度合いも考えてみる価値もあるかも知れない(考えたくないが)、とも思わせるのである。
というわけで、今回は何とも中途半端な計算をしただけで、オナラの風速ベクトルを予想しそのオナラの運命に考えを巡らせてみたのであるが、その中途半端さには実は理由がある。何しろ、これまでスクール水着、疑似オッパイ、山本式エアコンなどさまざまな物体に対する流体計算をしてきたが、今回の黄門様近くのスカしッ屁の風速ベクトル計算ほど何ともやる気がおきず、気が乗らず、頭の中で計算対象を想像したくないものも初めてなのである。対象物を強く心の中でイメージできなければ、まともな予想などもできないわけであるが、どうにもパンツの中のオナラをイメージしたくなかったのである。そのせいで、どうにも中途半端な結果になってしまったのである。
あぁ、こんなことではオナラから身を守ることができないぞ、おならを心の中で強くイメージしなければイケナイぞ、と強く自分を戒め、続編へ向けてがんばらなければと思う今日この頃なのである。が、しかしまた、おならを心の中で強くイメージするのと、オナラから身を守るのであればどっちが重要か少し悩んでしまい、続編もちょっと…と思ったりもする今日この頃なのである。