调光LED RGB色准校准方案
生活随笔
收集整理的這篇文章主要介紹了
调光LED RGB色准校准方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目前市面上普遍使用的是RGB調色方案是,云端或APP端直接下發sRGB(如255,255,255),然后簡單粗暴的換算為pwm占空比,或者灰度值。這導致部分混色不準確,肉眼可見的顏色差別明顯。
本文提供了一套新的方案。
先通過R、G、B燈珠規格書,得到燈珠的色坐標,以及最大流明值。
| 色坐標 | x | y | Y |
| R | 0.6900 | 0.3100 | 50 |
| G | 0.1900 | 0.6100 | 150 |
| B | 0.1530 | 0.0278 | 30 |
通過混色定理,黑色三角形內部的顏色,都可以通過這三顆燈珠混出來,色坐標與流明無關。
云端或APP端還是下發sRGB值+亮度值,然后在設備端換算為期望的xm,ym色坐值,然后通過算法計算出對應的占空比或灰度值。
占空比計
xr = 0.6900 //R燈珠參數 yr = 0.3100 Yr = 50xg = 0.1900 //G燈珠參數 yg = 0.6100 Yg = 150xb = 0.1530 //B燈珠參數 yb = 0.0278 Yb = 40 Ym = 30 //給定一個固定值 //x,y為期望的色坐標Dr = ((yg-yb)*(xb-x)+(y-yb)*(xg-xb)) / ((yg-yb)*(xb-xr)+(yr-yb)*(xg-xb)) * (yr * Ym) / (y * Yr) Dg = ((yb-yr)*(xr-x)+(y-yr)*(xb-xr)) / ((yb-yr)*(xr-xg)+(yg-yr)*(xb-xr)) * (yg * Ym) / (y * Yg) Db = ((yg-yr)*(xr-x)+(y-yr)*(xg-xr)) / ((yg-yr)*(xr-xb)+(yb-yr)*(xg-xr)) * (yb * Ym) / (y * Yb)下發亮度加入gamma校準,此處gamma值設置為2.6,亮度范圍為0~100。
Y = ((Y/100)^2.6)*100 //亮度調節校準灰度值計算,如果灰度為8位,最大就為255。
N = MAX(Dr,Dg,Db) N = 1/N Dr = 255 * Dr * N * Y Dg = 255 * Dg * N * Y Db = 255 * Db * N * Y把最后得到的值給驅動,就完成了。
本文只是從色坐標換算到占空比。前面還需要sRGB換算為色坐標,公式參考http://www.easyrgb.com/en/math.php
另外中間涉及到超色域轉換,請看我另外一篇文章
不同色域轉換_xiaoredred的博客-CSDN博客_色域轉換
總結
以上是生活随笔為你收集整理的调光LED RGB色准校准方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《区块链工程技术人员等职业信息》
- 下一篇: ios13一直在估算剩余时间怎么办