RGB / LAB转换的快速近似算法?

前端之家收集整理的这篇文章主要介绍了RGB / LAB转换的快速近似算法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用OpenGL开发数据可视化工具,LAB颜色空间是我可以处理的数据可视化最容易理解的颜色空间(3轴数据被映射到颜色空间的3个轴).是否存在快速(例如,没有非整数取幂,适合在着色器中执行)算法,用于将LAB值近似地转换为RGB值和从RGB值转换?

解决方法

如果在着色器中进行实际转换计算过于复杂/昂贵,则可以始终使用查找表.由于两个颜色空间都有3个组件,因此您可以使用3D RGB纹理来表示查找表.

使用3D纹理可能听起来像很多开销.由于8位/分量通常用于表示OpenGL中的颜色,因此需要256x256x256 3D纹理.在4字节/纹素,这是一个64 MB的纹理,这不是令人发指的,但非常重要.

但是,根据转换表中值的平滑程度,您可能会以较低的分辨率逃脱.请记住,纹理采样使用线性插值.如果分段线性插值对于查找表的某个基本分辨率足够好,则可以大大减小大小.

如果你朝着这个方向前进,并且不能使用64 MB的LUT,那么你将不得不使用LUT的大小,并且可以进行尺寸/性能与质量的权衡.

猜你在找的CSS相关文章