hirax.net::Keywords::「rgb」のブログ



2003-01-27[n年前へ]

カラーマッチングについて 

 何日か前のことだ。わきさんの弟子のSさんが色合わせで苦労していた。わきさん直伝の色合わせ方法一筋だったSさんが、色合わせソフトを初めて使ってその使いやすさに驚いていたのである。刀が鉄砲に負けたように、どうやらわきさん直伝の色合わせ方法がカラーマッチングソフトに負ける時代になったらしい。伝統を守り抜くSさんが認めるようになったので有れば、それはもう時代の流れは止められないとしか言いようがないのである。

 そんな風に、仕事柄綺麗な色で鮮やかな景色を出力しようとして四苦八苦することは多い。CMYKで印刷する以上RGBの世界はどうしても思ったように色を出すことなんかできない。だから、抜けるような明るい海の青や、眩しいような明るい赤色の世界や、生き生きとした明るい緑なんて実際問題出力することはできなかったりする。どうしても濁った色の世界になってしまって、途方に暮れたりする。それが、大切な仕事のサンプルだったりすると本当に途方に暮れてしまう。

 だけど、と思う。濁っていたり、鮮やかでなかったり、上手く色を載せることができなかったりはいつだってするのだけれど、汚くてイヤな色なんか決して無いと思う。その色に満足できないということはあるかもしれないけれど、その色が綺麗に鮮やかに出すようにするのがぼくらの仕事なんだと思う。ぼくらはいつだって本当の色がどんな色だろうかとも考えているけれど、汚くてイヤな色なんかやっぱり決して無いと思う。そんな色を上手く出せない自分をもどかしくも思ったりもするけれど、きっといつか思うような色で出せるんだと思っている人は多いと思う。ぼくも含めてそう思ってる人は多いと思う。

2003-04-19[n年前へ]

SurfacePlot, Table, Copy, Clip, Normalize, Linerプラグイン 

 (プログラムがバリバリかけず、ツールをバリバリ使いこなすわけではないような)ナンチャッテ画像処理技術者必携の便利ツールPDLSのプラグインがバージョンアップ。SurfacePlotとTableがマクロ対応で、CSVやグラフ保存も自動実行が可能に、です。あと、Copy, Clip, Normalizeプラグインも追加してあります。いずれもマクロ対応です。
 また、Linerプラグインも追加しました。多チャンネル間の線形演算ができます。Filter Factoryは8bit RGBのみなので、そうでない用途には面白いかもしれません。

2004-08-11[n年前へ]

AirProjector 

 PCから無線LAN(11b/11g両対応)経由でアナログRGB機器に出力できる AirProjector.

2005-03-31[n年前へ]

「ふぅぅー」は冷たく「はぁぁ〜」が暖かいホントの理由 前編 

「ふぅぅー」と「はぁぁ〜」の温度(≠体感)差は2.5℃。だけど…

 先日、「笑っていいとも」を眺めていると、とても私の興味を惹く話題を放送していた。それは、視聴者から番組に対して届けられた次のような質問から始まる話だった。

   手が冷たいときに、よく「はぁぁ~」と息を吐いて手を暖めたりします。そんな風に息で手を温めることがある一方で、口を細めて「ふぅぅー」と息を吹いて、手を冷やしたりもします。例えば、掌に「はぁぁ~」と息を吐くと「息が暖かく感じる」のに、それとは逆に「ふぅぅー」と掌に息を吹くと今度は逆に「息が冷たく感じ」ます。どうして、息の吐き (吹き)方によって「同じ息の暖かさ」が違うのでしょうか?

その解説の概要をほぼそのまま書くと、

  
「はぁぁ~」と息を吐いた場合よりも、「ふぅぅー」と息を吹いた場合の方が口の中における空気の圧力が高くなっている。口の中で圧縮された息は、唇から外へ出たとたんに圧力が下がる(体積が大きくなる)。
 その際、「息の空気」と「外気」の間で熱の授受が行われない断熱過程で(体積が膨張し)圧力が低下することになるのだが、そのような場合には(フェーン現象のちょうど逆に)息として吐かれた空気の温度が下がってしまう。つまり、「ふぅぅー」と口を細めて吹かれた息は口の外に出た途端に温度が低くなる。
 ところが、「はぁぁ~」と吐かれた息は「圧力変化がほとんどないまま」口から出るので、温度の変化がほとんどなく、体温に近い暖かい温度のままになっている。そのような違いにより、「ふぅぅー」は冷たく、「はぁぁ~」が暖かいのである。

というようなものだった。この解説に耳を傾けながら、私は『へぇぇ~、「ふぅぅー」と「はぁぁ~」で本当に息の温度が違うものなんだぁ。へぇぇ~、そうなんだぁ~』と納得つしつも、少しばかり不思議な気持ちになった。

 確かに、「ふぅぅー」と「はぁぁ~」という「二つの異なるやり方」で自分の掌に息を吐いてみると、ずいぶんと息の温度が異なって感じる。「はぁぁ~」と息を吐くと息がとても暖かく感じるし、「ふぅぅー」と息を吹くと(さっきと同じ息なのに)息がとても冷く感じる。そして、この「二つの異なる息」の温かさは大きく異なっているように感じる。息が口から出る瞬間の圧力変化が原因で、「それほどの温度差」が生じるものなのだろうか? もちろん、番組の中では特に数字を挙げた説明もされていなかったので(あくまでバラエティ番組の「笑っていいとも」なんだから)、息を「ふぅぅー」と吹く場合と「はぁぁ~」と吐く息の間で感じる温度差についてちょっと調べてみることにした。

 まずは、息が口から出る瞬間の圧力変化量を推定するために、口の中における圧力がどの程度の大きさなのかを考えてみよう。息を吸うときには「胸腔内部の気圧が下がる」ことで空気を体内に取り入れる。そして、息を吐くときには「胸腔内部の気圧が上がる」ことで、肺から息が口から外へ排出されることになる。このような呼吸の過程において、口・唇から肺内部にわたる人間の体内においての(呼吸における空気の速度が非常に遅いことを考えれば)空気圧はほぼ一定と考えて良いだろう。つまり、口を境にして体外・体内で圧力が異なり、体内=「口・肺内部」が高くなったり、低くなったりすることにより、呼吸が行われているわけである。そこで、唇を境として、「体内の気圧」と「体外の気圧(=大気圧)」が異なっている、というモデルでとりあえず考えてみることにしよう。

 そのような呼吸を行っている際に、「口・肺内部における空気圧」がどのような時間変化を示した一例が図.1である。実線で「通常の呼吸時の肺(口)内部の空気圧」時間変化を示し、破線で(ちょうど、「ふぅぅー」と息を吹く時のように)口を細めて軽く息を吹き出した場合の「口・肺内部における空気圧」時間変化を示している。通常の呼吸であれば、大気圧(101.3 kPa)を中心として、プラスマイナス 0.2 kPaの程度の範囲で上下しているし、口を細めて息を吹いたり吸ったりするような場合だと、プラスマイナス 2 kPaの範囲内で上下していることになる。

図.1 口・肺内部における空気圧の時間変化実線:通常の呼吸の場合破線:口をすぼめて呼吸した場合 肺内部における空気圧

 つまり、普通の呼吸では体内と体外の圧力の差は0.2%程度に過ぎないが、「ふぅぅー」と息を吹くような場合には、2%ほど体外と体内で圧力が異なることになる。

 もちろん、もっとキアイとガッツで強く息を吹いたり吸ったりするのであれば、体外と体内の空気圧の差はこれより大きくなるに違いない。そうは言っても、「気道内での圧力が(大気圧との差として) 3.92kPa を超えると肺の損傷が起きる恐れがある」という話もあるくらいだから、体内での空気圧は根性を最大限込めて、血管がブチぎれるくらい力んでみても、せいぜい101 ± 3 kPa の範囲に収まるくらいだと考えておくのが、健康的には良いだろう。もし、本当にそれ以上根性を込めたとしたら、血管はともかく肺がブチ切れてしまうに違いない。

 ということは、「ふぅぅー」と息を吹く時には、息は「体内で101 + 3 (kPa) = 104 (kPa)程度」の圧力から断熱過程で「大気圧相当の101.3 kPa」まで圧力が変化することになる。その圧力変化が一瞬で生じ、息と他のモノの間で熱の受け渡しが無かったとしたら、つまりは断熱過程のもとで圧力変化が生じた場合には、ポアッソン(Poisson)の式により、変化前後の気体の温度と圧力の間に、

  • T p-(γ-1)/γ = 一定
  • T:  空気の温度
  • p:  空気の圧力
  • γ:  空気の比熱比 (標準空気の比熱比 = 1.4)
  •  そこで、息の(温度と圧力)が仮に体内で(32 ℃, 104kPa)だったものとして、息が口から外(圧力 = 大気圧 101.3 kPa)へ出たときに何度程度になっているかをポアッソンの式にもとづいて計算してみた。そして、その結果を簡単なグラフにしてみたものが図.2 である。なお、図.2では、○で示す「体内で(3 2℃, 10 4kPa)だった息」が、口から外に出た瞬間の温度を示している。ここでは、横軸が外気圧であり、縦軸が(その外気圧のもとでの)息の温度になっている。

    図.2 体内で(32℃, 104kPa)の息は口から外(101.3kPa)へ出たときには、息は29.5℃になっている Poisson

     このグラフを眺めると、例えば外気圧が 101.3 kPa であれば、その外気圧のもとでの息の温度(×で示す) は、29. 5℃ほどであることがわかる。つまり、「ふぅぅー」と息を吹いた場合、体内で30 ℃ほどであった息が1.5 ℃ほど温度が低下して29.5 ℃程度になっている、ということになる。もちrん、実際には体内での息の湿度は80%程度にはなっているだろうから、おそらく息の比熱比は1.4よりほんの少し小さいだろう。だから、実際には吹かれた息の温度はもう少し(といってもほんの少しだが)暖かいだろう。

     いずれにせよ、このように、「ふぅぅー」と吹かれた息は口から外へ出たとたん、確かに2 ℃強ほど温度が低下するわけだが、「はぁぁ~」と息を吐く場合には「息の温度」は口の外で何度くらいになっているものだろうか?つまり、「ふぅぅー」と「はぁぁ~」というやり方で吹かれた「二つの異なる息」は何度くらい温度が異なるものだろうか?

     「はぁぁ~」というような「非常にゆっくりと」「口を大きく開けた状態で」息を吐いた場合、体内と体外での圧力変化は「通常の呼吸時」よりさらに小さい。つまり、体内と体外でほとんど圧力差が内と考えるのが自然である。そのような場合、「体外に吐かれた息の温度」は「体内での息の温度」とほぼ同じであることになる。つまり、今回の計算で使った数字を使うと、「はぁぁ~」と息を吐いた場合、息の温度は32°ほどであることになる。

     ということは、「笑っていいとも」で解説されていたように、 「ふぅぅー」と吹かれたかれた息は「はぁぁ~」と吐かれた息より2.5 ℃くらい温度が低いということがわかる。なるほど、「ふぅぅー」と「はぁぁ~」という二つの息は温度が確かに異なるようだ。とはいえ、私たちが感じる「ふぅぅー」と「はぁぁ~」の温度差は果たして、この2 ℃程度の数字で説明できるものなのだろうか? もちろん、2 ℃強と言えば十分な温度差であるかもしれないが(37℃の体温と39℃の体温は大違いだ…)、何だか30℃でも32℃でも(私の感覚からすると)どちらにせよ「暖かい」ような気がしないでもない。ヘンな例え話だとは思うが、気温が30℃でも32℃でもどちらにしても暖か い(というより熱い?)ように思える。決して気温30℃が涼しかったり冷たかったりするようには思えない。

     というわけで、断熱過程下での圧力変化により生じる温度変化だけで「ふぅぅー」は冷たく「はぁぁ~」が暖かい理由とすると、何だか少し不思議な気分になってしまう*。 そこで、 「ふぅぅー」と息を吹くときと、息を「はぁぁ~」と吐くときの違いについて、他にも影響を与えそうな原因なども考えながらもう少し追いかけてみることにしたい。そして、『「ふぅぅー」は冷たく「はぁぁ~」が暖かいホントの理由』について考えてみたいと思う。というあたりで、(ちょっと長くなってしまったので)「断熱過程下での圧力変化」以外の他要因については次回に続くのココロ、だ。

     それに加えて、「何かの現象を説明するのに、一つの理由だけを考える」というのは、えてして落とし穴にハマリがちだったりもする(そんな気がするだけだが)ので、他の理由も考えたり知ってみたい、と思う。

2006-02-12[n年前へ]

斜め配置CCD・CMOの秘密 前編 

 「画素を45度回転させ斜めに配置した」クリアビッドCMOSセンサをSONYが発表した時に、Fast & First 情報掲示板(No.9601, No.9603)で「斜め配置センサと通常配置センサの解像度」について少し書かれています。それを面白く読みながら、書かれていたことを自分なりに整理して、つらつらと考えごとをしてみました。その内容を前編・中編・後編としてまとめてみることにします。あくまで撮像素子の部分だけを考え、後の画像処理の部分については全く考えていません。また、素人のテキトーな自主学習なので、内容について信頼性が全然ないことをお断りしておきます。

撮像素子を45度傾けると高解像度に

Title 通常の撮像素子の画素は垂直・水平方向に綺麗に並んでいます。例えば、撮像素子の画素を適当に描いてみると右のような感じになります。つまり、単位長さ1×1の大きさの正方形状画素が(各画素が垂直・水平方向に並びながら)平面をびっしり埋めている、というイメージです。こんなイメージ画像を描いてみた後に、水平(あるいは垂直)方向の解像度、すなわち「単位長さあたりの画素数」がどうなるかを考えてみることにします。

 この場合、画素の大きさが1なのですから、距離(単位長)1あたり画素が1個あることはすぐにわかります。つまり、水平(垂直)方向の解像度は「単位長さ辺り1画素」となっているわけです。試しに、水平(垂直)線を任意の場所で描いてみると、「長さ1あたり画素を必ず1個横切る(長さ1あたり画素が1個ある)」ということを確認することができます。

Title それでは、この撮像素子中の画素配置を45度傾けた(回転させた)場合、水平(垂直)方向の解像度はどのようになるでしょうか? この場合も、適当なイメージ画像を描いて考えてみることにしましょう。…そこで、右のように、各画素の配置を「45度」回転させた撮像素子を描いてみます。そして、水平(垂直)線を任意の場所で描いてみると、「ほぼ(つまりごく限られた特殊な条件を除き)」全ての箇所で「長さ√2あたり画素を必ず2個横切る(長さ√2あたり画素が2個ある)」ことがわかります。

つまり、水平(垂直)方向に対しては、単位長あたり「2 / √ 2 = √ 2 ≒ 1.4」個の画素があることになるのです。つまり、撮像素子の画素を45度斜めに傾いた配置にすることで、1.4倍の解像度化を実現することができた、ということになります。もちろん、(この状態で)45度斜めの方向に対する解像度は「単位長1あたり1個の画素」ということになっているわけですから、逆に言えば、水平・垂直方向に各画素が綺麗に並んでいる配置の場合には、45度斜めの方向に対する解像度が「水平・垂直方向よりも1.4倍高かった」ということになるわけです。

視覚特性は斜め方向には鈍い

 ところで、人間の視覚特性は斜め方向に対しては感覚が鈍くなっています。ということは、人間が画像を眺める際には、その画像の斜め方向の解像度は低くても構わない、ということになります。斜め方向の解像度は低くても構わないから、その分水平・垂直方向の解像度が高い方が良い(アラが目立たない)というわけです。つまり、「ごくごく単純に考える限りは」画素配置を45度斜めに傾けたタイプの撮像素子の方が、人間の視覚特性と特性が合っていて都合が良い、という風に思えます。

 それでは、現在多く発売されている製品で使われている撮像素子を45度傾ければ高解像度化するか、というとそうはなりません。それは、現状の撮像素子では(本来モノクロの)撮像素子をカラー化する時の手順中において、(多くの場合)すでに45度回転のテクニックが使われているからです。

RGGBフィルタを使ったカラー化の場合

Title 本来「カラー」でない撮像素子をカラー化するためには、色のついたフィルタを撮像素子の前にとりつけることになります。例えば、原色フィルタと呼ばれる「赤・緑・青色のカラーフィルタなどを各画素の前にとりつけるシステム」では、赤色・緑色・青色それぞれの光の割合がわかるように、各画素の前にRGB(Red, Green, Blue)いずれかの色のフィルタをつけます。例えば、右のイメージ図はRGGB配列のベイヤー配列のカラーフィルタのイメージ図です。近隣4画素のうち、1画素ずつに青色と赤色のフィルタを張り、残り2画素に緑色のフィルタが張られています。緑色の画素が青色と赤色の画素の2倍の量にされているのは、人間が感じる視覚特性は緑色の成分によるところが大きいからです。

Title それでは、話を簡単にするために、人間が感じる視覚特性への寄与が大きい緑色に割り当てられた画素だけを抽出して、フィルタ方式のカラー撮像素子における解像度を考えてみることにします。右の画像は、緑色の画素だけを描き、そして各画素間の境界線中心を点線で描いてみたものです。このように、補助線を描いてみると、緑色を担う各画素がどのように配置しているかがわかりやすくイメージできるようになります。この点線で描かれた緑色の画素配置をひとことで大雑把に言ってしまえば、√2×√2の大きさの画素が45度傾いた状態で配置されている、ということになります。つまり、つまり、RGGB型のベイヤー配列のカラーフィルタを使ったカラー撮像素子においては、すでに45度回転配置により高解像度化のテクニックが(視覚特性への寄与が大きい緑色に対して)使われているというわけです。

 実際、右の画像で、水平(垂直)線を任意の場所で描いてみれば、「ほぼ(つまりごく限られた特殊な条件を除き)」全ての箇所で「長さ2あたり画素を必ず2個横切る(長さ2あたり画素が2個ある)」ことがわかります。つまり、単位長さ1に対して水平(垂直)方向には画素が1個の解像度がある、というわけです。本来は「√2×√2の大きさの画素」ですから、もしも45度回転したような配置にしなければ、水平(垂直)方向には長さ√2あたり1画素の解像度しかなかった、ということになります。しかし、緑色が斜めに配置されたRGGB配置にすることで、緑色画素を45度回転させることができて、結果として1.4倍の高解像度化がされていることになります。

RGGBフィルタCCDを45度回転させたらどうなる…?

Title それでは、カラーフィルタがRGGBの配置をしている撮像素子を45度回転させた場合にはどのようなことが起きるのでしょうか? 例えば、右の画像のように回転・配置させてみた場合には、解像度はどのようになるのでしょうか。右の配置は、ちょうど冨士フィルムのハニカムCCD(資料1資料2)と同じような場合なのですが、この場合に人間の視覚特性上重要な水平・垂直方向の解像度はどのようになっているのでしょうか? …上の例と同じように、このRGGBフィルタCCDを45度回転させた場合でも考えてみることにしましょう。

 さきほどと同じく、この右の画像には緑色の画素だけを描いてあり、そして各画素間の境界線中心を示す直線を描いてあります。すると、この場合というのは、「√2×√2の大きさの画素」が水平垂直方向に綺麗に並んでいることがわかります。そして、この画像中で水平(垂直)線を任意の場所で描いてみれば、全ての箇所で「長さ√2あたり画素を必ず1個横切る(長さ√2あたり画素が1個ある)」ことがわかります。長さ√2あたり画素が1個ということは、単位長さ1あたりならば水平(垂直)方向に画素が0.7個の解像度ということになります。

 つまり、RGGBフィルタCCDを45度回転させてしまうと、視覚特性上重要な緑色の水平・垂直方向の解像度が「単位長あたり1画素」から「単位長あたり0.7画素」に低下してしまっている、ということになります。ということは、単純に「人間にとって重要な緑色の解像度」だけを考えるのであれば、(RGGBフィルタを使った場合)斜め配置センサは決して有利とはいえない、ということがわかります。

クリアビッドCMOSセンサの場合

Title 単純に「人間にとって重要な緑色の解像度」だけを考えるのであれば、(RGGBフィルタを使った場合)斜め配置センサは決して有利とはいえないというのであれば、先日発表されたクリアビッドCMOSセンサの場合には一体どうなっているのでしょうか…?謳い文句の「画素を45度回転させ斜めに配置することで、1画素の面積を大きくしながら(高感度にしながら)、解像度は維持」というものは一体どういうことなのでしょうか?

 そこで、SONYのサイトにある情報(右にページ・サムネイルで示したページ)を見てみると、RGGB配置のカラーフィルタを使っているわけではないことがわかります。4画素×4画素中に緑色を12画素を配置し・赤色と青色を2画素ずつ配置するという独自の配列です。つまり、大胆に言ってしまえば、ほとんどの画素を緑色担当にしているわけです。よくあるカラーフィルタの配置とは全く違うわけです。

 ほとんどの画素が緑色担当ということは、非常に大雑把に言ってしまえば、緑色単色のモノクロ撮像素子のようなものですから、一番最初に「撮像素子を45度傾けると高解像度に」で書いたように、45度回転配置による高解像度化の効果が生じます。クリアビッドCMOSセンサの場合、1画素の面積を大きくすることで高感度を実現しようとしています。つまり、通常であれば1×1の大きさの画素の面積を大きくして、√2×√2の大きさにしてあります。そして、その画素を斜め45度に回転させたモノクロ撮像素子のようなものであるわけです。…ということは、結局のところ、上で考えてみた「RGGBフィルタを使ったカラー撮像素子」と全く同じ解像度であることがわかります。なるほど、赤色と青色の画素数を減らし、その分の面積を緑色に回すことで、高感度と高解像度を両立させようという考え方であるようです。

色情報の解像度はどうなる?ハニカムCCDなら…?

 ところで、クリアビッドCMOSセンサの場合には、赤色と青色の画素数を減らしているわけですから、色情報の解像度をある程度低く設定しているわけです。また、「RGGB配置を45度回転させた」富士フィルムのハニカムCCDは(視覚特性上重要な)緑色に関する限り解像度の点で有利には見えないわけですが、やはり何らかのメリットはあるはずです。そこで、そういった点について、中編・後編で考えてみたいと思います。

前編 >> 中編 >> 後編



■Powered by yagm.net