Math.hを使用できない環境でのべき乗計算
お疲れ様です。
C環境で、ガンマ補正関連の画質処理を作成しているのですが、
速度をなるべく早くするということでMath.hを禁止され、
どのようにべき乗計算をするか分からない状態であり、
もしこうして解決したなどの経験がございましたらご教授ください。
【実行したいこと】
ガンマ2.2などの画質変換用のLutテーブル作成
【Math.hがあれば実装していたであろう内容】
①ガンマ2.2の画像のガンマを外す
=(Y / Y最大値) ^ (2.2)
②ガンマ2.2に再度なおす
=(①の結果) ^ (1.0 / 2.2) * Y最大値
//// =(Y) ^ (1.0 / 2.2) * Y最大値 //間違い
※このべき乗をpowでやる予定でした。
<追記>
・YおよびYの最大値は整数になります。10bit 0-1023になります。
・ガンマ値は固定値で、ガンマ2.2、ガンマ1.8、ガンマ2.6で変換をかける予定です。
・「速度 > 精度」の優先順位になっています。
・②の式が間違っていたので修正いたしました。
①と②は基本ワンセットになっていると思ってください。(片方だけ実行することはない)
以上、よろしくお願いいたします。