快速3D Lut查找

时间:2015-06-18 23:33:21

标签: c graphics colors lookup

我正在尝试编写一个快速3D lut查找功能,并注意到大多数luts是33x33x33或17x17x17。

为什么33或17?相反,32或16的数学会不会更快?所以你可以做一些转变而不是分裂?或者也许我不明白为什么。

任何?

1 个答案:

答案 0 :(得分:0)

本文将提供一个摘要:https://www.hpl.hp.com/techreports/98/HPL-98-95.pdf

基本上,您需要将颜色空间划分为一定数量的块,并在这些块之间进行线性插值。这是一种执行查找表的方法,因此您可以查找颜色位置而不会出现太多错误,但是查找比以前更加稀疏。

这是原因:如果您将一条线剪断2次,则有3件。

之所以要17或33,而不是16或32,是因为您需要所处的位置,而不是最近的位置。如果除法,您将要对2 ^ 8的值进行位移位,那么您将拥有16个值。但是,由于需要线性插值该零件内的位置,因此需要17个值。

简而言之,您拥有17而不是16的原因是,使用17可以将值平均除以16,这样更快,然后检查在底整数除法后 出现的值,然后进行有根据的猜测,让您知道这些值之间的位置。这将在查找表中使用N + 1个值。