)の清竹氏にQ02TEXT(Take氏作)のドキュメントの記述を教えて頂いた。引用してみると、「限られた出力階調を有効に利用するため、画像の濃度ヒストグラムの補正を行ないます。1パス目で、濃度ヒストグラムをカウントし、そこからヒストグラムが平坦になるような濃度変換関数を生成します。(ヒストグラムを平坦にするのは、情報のエントロピーをなるべく保存するためです。Q02TEXTはimage2asciiと同様のテキストアート作成プログラムである。いうのを導入したが、これがそのエントロピー最大化アルゴリズムに近いものを導入してみたものである。この考えを使っていくのは乏しい階調性の出力機器には非常に有効なのだ。今回は、この「エントロピー最大化アルゴリズム」について考えてみたい。.:|/(%YVO8D@0#$」の16階調を使用するテキストアート作成プログラムである。それに対して、「ASCIIアートの秘密」で作成したimage2asciiが使用可能な階調数は一定ではない。指定されたフォントを一旦出力してみて、その結果を計測することにより、出力可能な階調数を決定している。したがって、指定したフォントでしか階調の確かさは保証されない。その代わりに、指定されたフォントを使えば割に豊かな階調性を使用できることになる。得られる階調は一般的に滑らかではないので、Q02TEXTが使っているアルゴリズムとは少し違うものを導入している。通常ASCIIアートは色々な環境で見ることができるのがメリットの一つである。image2asciiはフォントを限定してしまっている。これは、目的が通常のASCIIアートとは異なるからである。私がimage2asciiを作った目的は、それを仮想的な出力デバイスとしてみたいからである。その出力で生じる様々な問題を調べたり、解決してみたいのである。前回の最後に示した3種類の画像変換は単純な階調重視モデルオリジナルの0を出力画像の最小値にオリジナルの255を出力画像の最大値にする拡大した単純な階調重視モデルオリジナルの最小値を出力画像の最小値にオリジナルの最大値を出力画像の最大値にする情報量を最大にするモデルエントロピーを最大にするための階調変換を行うというものである。これら3つの変換方法の違いにより出力画像にどのような違いが生じていたかを、まずはもう一度見てみる。オリジナル画像である。これは、「私の尊敬する」S大先生である。私は尊敬とともに「ロボコップSさん」あるいは、「ロボSさん」と呼ぶのだ。以下にオリジナル画像及びimage2asciiを用いて変換したものを示す。オリジナルと変換後画像オリジナル(1)(2)(3)これらの変換画像の感想(私の)は、(1).単純な階調重視モデルが比較的白い個所では一番オリジナルに忠実な濃度であることはわかるだろう。黒い部分に関しての表現力は極めて低い。(2).階調性を少しだけ改善したものではそれより視認性が改善している。(3).視認度の高い画像ではあるが、オリジナルとは濃度などは異なる?という感じだろうか。それでは、これらの画像のヒストグラムを調べてみる。先の「(ヒストグラムを平坦にするのは、情報のエントロピーをなるべく保存するためです。)」というのとの関係を調べたいわけである。ARTには濃度の表現領域には限度がある。そのため、(1),(2),(3)はいずれも濃度が最大を示す個所でもオリジナルよりかなり濃度が低い。(1),(2)はオリジナルとヒストグラムの形状も少しは「似ている」が、(3)においては、かなり異なっているのがわかると思う。(3)はヒストグラムの形状はかなり異なるにも関わらず、視認度は高くなっている。これが、エントロピーを最大化(すなわち情報量を最大化)しているおかげである。ヒストグラムがかなり平坦になっているのがわかるだろう。いうならば、エントロピーの計算もしなければならないだろう。(1999.03.28)でも登場している。「エントロピーは増大するのみ...」というフレーズで有名なアレである。情報量を示す値だといっても良いだろう。「ハードディスク...」の回で計算をしたのだから、今回もその計算を流用してエントロピーを計算してみたい。この前作成したMathematicaのNotebookを流用するために、オリジナルと3つの変換画像を合体させる。そのヒストグラムを見てみよう。このヒストグラムが非常にわかりにくいと思うので、一応説明しておく。あるY軸の値で水平に1ライン抽出して、その部分のヒストグラムを右のグラフに示しているのである。オリジナルの画像では髪の毛がある辺り(Y軸で10から30位)では、ヒストグラムを見ればレベルが50位の黒い所が多いところがわかる。それに対して、変換後の画像では、一番濃度の高い所でも150前後であることがわかるだろう。それでは、それぞれ、Y軸でスライスしてその断面におけるエントロピーを計算したものを次に示してみる。それぞれのY軸スライス断面におけるエントロピーオリジナルと3つの変換画像を合体させたものエントロピー(縦軸=走査軸)本来は、画像全面におけるエントロピーを計算するのが、望ましい。ここで使っているような、Y軸でスライスしてその断面におけるエントロピーでも、オリジナルの画像が一番エントロピーが高く、(3)の変換画像(つまり一番上)のものが次にエントロピーが高いのがわかると思う。情報量が高いのである。エントロピー量とあなたの感じる「視認度」とが相関があるかどうかは非常に興味があるところだ(私にとって)。エントロピーが多くても(すなわち情報量が多くても)オレはちっともいいと思わないよ、とか、おれは断然エントロピー派だね、とか色々な意見があったらぜひ私まで教えてほしい。「お遊び」に見えるASCIIアートも、調べていくと実は奥が深いのだなぁ、とつくづく思う。いっても、もちろん本WEBはお遊びである。奥までは辿りつかない(し、辿りつけない)と思うが、この「ASCIIアートの秘密」シリーズはまだまだ続くのである。Hirabayashi)ムダサイエンティスト(他称)。(サイエンス・アイ新書)」など。