Both sides previous revisionPrevious revision | Last revisionBoth sides next revision |
isp:hsl-_rgb [2021/07/24 14:37] – [Step-by-step algorithm (10x3 bit channel, 30-bit RGB)] Igor Yefmov | isp:hsl-_rgb [2021/07/24 14:47] – [Step-by-step algorithm (10x3 bit channel, 30-bit RGB)] Igor Yefmov |
---|
| 7 | \[H^\prime\] | \[\frac{H}{60^\circ}\] | ''23'' | \[0..2^23-1\] mapped into \(0..6\) | <code>Hp = H * 273;</code> | \[\frac{180}{2^{27}}\] | | | 7 | \[H^\prime\] | \[\frac{H}{60^\circ}\] | ''23'' | \[0..2^23-1\] mapped into \(0..6\) | <code>Hp = H * 273;</code> | \[\frac{180}{2^{27}}\] | |
| 8 | \[H^\prime_2\] | \[H^\prime \bmod 2\] | ''21'' | | <code>Hp2 = Hp - (91 * 2^14) * (Hp * 90) >> 27)</code>((optimized from <code>Hp2 = Hp % (2^14 * 273 / 3);</code>)) | \[\frac{180}{2^{27}}\] | | | 8 | \[H^\prime_2\] | \[H^\prime \bmod 2\] | ''21'' | | <code>Hp2 = Hp - (91 * 2^14) * (Hp * 90) >> 27)</code>((optimized from <code>Hp2 = Hp % (2^14 * 273 / 3);</code>)) | \[\frac{180}{2^{27}}\] | |
| 9 | \[H^\prime_{2-1}\] | \[H^\prime \bmod 2 - 1\] | ''10''\\ signed | | <code>Hp2m1 = Hp2 - 2^2 * 91;</code> | \[\frac{180}{2^{27}}\] | | | 9 | \[H^\prime_{2-1}\] | \[H^\prime \bmod 2 - 1\] | ''21''\\ signed | | <code>Hp2m1 = Hp2 - 2^13 * 91;</code> | \[\frac{180}{2^{27}}\] | |
| 11 | \[H^\prime_{final}\] | \[1-|H^\prime \bmod 2 - 1|\] | ''9'' | \[0..364\] mapped into \(0..1\) | <code>Hpf = 91 * 2^2 - abs(Hp2m1);</code> | \[\frac{45}{2^{14}}\] | | | 11 | \[H^\prime_{final}\] | \[1-|H^\prime \bmod 2 - 1|\] | ''21'' | | <code>Hpf = 91 * 2^13 - abs(Hp2m1);</code> | \[\frac{180}{2^{27}}\] | |
| 12 | \[X\] | \[C \times H^\prime_{final}\] | ''9'' | \[0..510\] | <code>X = ((C * Hpf * 180) >> 16);</code> | \[\frac{1}{2^9}\] | | | 12 | \[X\] | \[C \times H^\prime_{final}\] | ''21'' | | <code>X = ((C * Hpf * 180) >> 27);</code> | \[\frac{1}{2^21}\] | |
| 13 | \[(R_1,G_1,B_1)\] | multi-branch | ''9'' | \[0..510\] | <code>if(Hp < 364*1){ | | 13 | \[(R_1,G_1,B_1)\] | multi-branch | ''21'' | | <code>if(Hp < 745472*1){ |
/*(C,X,0)*/ | /*(C,X,0)*/ |
}else if(Hp < 364*2){ | }else if(Hp < 745472*2){ |
/*(X,C,0)*/ | /*(X,C,0)*/ |
}//...</code> | \[\] | | }//...</code> | \[\] | |
| 14 | \[m\] | \[L - C/2\] | ''9'' | \[0..510\] | <code>m = l - C / 2;</code> | \[\frac{1}{2^9}\] | | | 14 | \[m\] | \[L - C/2\] | ''12'' | | <code>m = L - (C / 2^9) / 2;</code> | \[\frac{1}{2^{12}}\] | |
| 15 | \[(R,G,B)\] | \[(R_1+m,G_1+m,B_1+m)\] | ''8'' | \[0..255\] | <code>R=R1+m; G=G1+m; B=B1+m;</code> | \[1\] | | | 15 | \[(R,G,B)\] | \[(R_1+m,G_1+m,B_1+m)\] | ''10'' | \[0..1023\] | <code>R=(R1/2^9+m)/2^2; G=(G1/2^9+m)/2^2; B=(B1/2^9+m)/2^2;</code> | \[1\] | |
| |