新規記事投稿
フォロー記事投稿
記事のキャンセル
From: Akitaka HOSOMI
<hosomi@ga2.so-net.ne.jp>
Subject: 計算のさせ方
Date: 1999/05/12 05:52:51
妙なことで、わしなんかに相談されてもなぁ ...... ほにゃほにゃほにゃ〜〜
用途にもよるが、CCD カメラのカラー映像を RGB で PC のシステムメモリへ
撮り込めるキャプチャカードがある。
キャプチャした際、あとに続く処理のために、色の刺激値の変換をしておきた
い場合もあるだろさ( RGB → XYZ )。
X = 0.412391 * R + 0.357584 * G + 0.180481 * B
Y = 0.212639 * R + 0.715169 * G + 0.072192 * B
Z = 0.019331 * R + 0.119195 * G + 0.950532 * B
XYZ 系は、修正 RGB 系などとも呼ばれており、L*a*b* 表色系への通過点だ。
で、こんなヤヤこしい行列演算をやらせたいのかも知れないが、わたしゃ、当
人ではないので、動機についてのホントのところは、よくわからんよ。
でもねぇ、こんな浮動小数の計算を、ピクセル毎に、毎回、律儀に行ってたん
じゃ、処理なんか遅くて当たり前だって。
ほとんどの場合、キャプチャした時点で、RGB は各 8-bit に量子化されてる
から、係数と掛け算する項なんぞは、予め計算しておいて、その場で、テーブ
ル変換してやるのじゃ。その方が、ナンボか早いぞよ。
さらには、64 KB のテーブルなんてのを予め作成しておけば、
0.412391 * R + 0.357584 * G
っつう計算も、1 回のテーブル変換で済んじまうんだぞ。
なんだか、このまま放っとくと、
L = 116 * Power(Y/Yn,1/3) - 16
なんてのも、生真面目に毎回計算させそうな勢いなので、わたしゃ、ちょっと
心配してますよ。
本で扱ってるような実数の世界とは違うさ、 0 〜 255 までの整数が扱えりゃ、
それでええのよ、このばやいは。
ほれほれ、もそっと、肩の力を抜いてぇ .... コーヒーでも、どう?