調光カーブとは?(理論編)

はじめに

前回までで、DMX512の受信からPWM出力まで実装できました。
しかし、実際にLEDを調光してみると、ある違和感がありました。

DMXフェーダーを少し動かしただけで明るくなりすぎたり、
逆に高い値ではほとんど変化を感じなかったりします。

しかし、オシロスコープの動きは、
とてもきれいにリニアに動いています。
つまりこれは
”プログラムが間違っているわけではない”
ということです。

実は、人間の目の特性によるものです。

今回は、照明制御で重要となる調光カーブについて理解していきます。

DMXは255段階

まずDMX512は、

0 ~ 255

の256段階で明るさを指定します。
例えば

0  消灯
64
128
192
255 最大

という値になります。
これをそのままPWMへ出力すると、

DMX 0   → PWM 0
DMX128 → PWM128
DMX255 → PWM255

というリニア(線形)な制御になります。

でも人間の目は線形ではない

ここが重要です。

人間は

明るさを数値通りには感じません。

例えば

PWM 10
PWM 20
PWM 30

この差は非常に大きく感じます。

しかし

PWM220
PWM230
PWM240

この違いはほとんど分かりません。
つまり
目は暗い部分に敏感で、明るい部分には鈍感
という特性があります。

実際のフェーダー

そのため
DMXフェーダーを真ん中まで上げても
実際には
「かなり明るい」
と感じます。
逆に
半分からMAXまでは
フェーダーを動かしても
あまり変化を感じません。
つまり

ではなく、人間の体感では、

のように感じます。

そこで調光カーブ

このズレを補正するために使うのが

調光カーブ(ガンマ補正)

です。
PWMへ出力する前に

DMX値(0~255)

        ↓

ガンマ補正

        ↓

PWMデューティ

という変換を行います。

すると
人間が感じる明るさは
より自然になります。

なぜ「ガンマ」と呼ぶのか

ガンマ補正では
数学の

y = x^γ

という式が使われます。
この

γ(ガンマ)

が名前の由来です。
一般的なLED照明では

γ = 2.2

前後がよく使われています。

ただし機器やメーカーによって
最適な値は異なります。

ガンマ補正は照明だけでなく、
テレビ・スマートフォン・カメラ・画像処理など、
映像の世界でも広く使われています。

次回予告

今回は

  • なぜ調光カーブが必要なのか
  • 人間の目の特性
  • ガンマ補正とは何か

について理解しました。

次回は実際に

Pythonで256個のガンマテーブルを作成し、
PICのFlashに書き込み高速で利用する方法

を紹介します。

コメント

タイトルとURLをコピーしました