@@ -122,11 +122,13 @@ namespace Peano
122122 auto kappa = m_saliencies[bidx] < .6f ? beta * .15f / m_saliencies[bidx] : beta * .4f / m_saliencies[bidx];
123123 c2 = BlueNoise::diffuse (pixel, m_pPalette[qPixelIndex], kappa, strength, x, y);
124124 }
125+ else if (m_nMaxColor > 16 )
126+ c2 = BlueNoise::diffuse (pixel, m_pPalette[qPixelIndex], beta * normalDistribution (m_saliencies[bidx], .5f ) + beta, strength, x, y);
125127 else
126128 c2 = BlueNoise::diffuse (pixel, m_pPalette[qPixelIndex], beta * .5f / m_saliencies[bidx], strength, x, y);
127129 }
128130 if (CIELABConvertor::U_Diff (pixel, c2) > (margin * acceptedDiff))
129- c2 = BlueNoise::diffuse (pixel, m_pPalette[qPixelIndex], beta / m_saliencies[bidx], strength, x, y);
131+ c2 = BlueNoise::diffuse (pixel, m_pPalette[qPixelIndex], beta * normalDistribution ( m_saliencies[bidx], . 25f ) + beta , strength, x, y);
130132 }
131133
132134 if (margin > 6 || (m_nMaxColor <= 32 && m_weight < .01 && m_weight > .007 )) {
@@ -141,7 +143,8 @@ namespace Peano
141143 if (m_saliencies[bidx] < .6 )
142144 kappa = beta * normalDistribution (m_saliencies[bidx], m_weight < .0008 ? 2 .5f : 1 .75f );
143145 else if (m_nMaxColor >= 32 || CIELABConvertor::Y_Diff (c1, c2) > (beta * M_PI * acceptedDiff)) {
144- if (m_saliencies[bidx] > .15 && m_saliencies[bidx] < .9 )
146+ auto ub = 1 - m_nMaxColor / 320.0 ;
147+ if (m_saliencies[bidx] > .15 && m_saliencies[bidx] < ub)
145148 kappa = beta * (!sortedByYDiff && m_weight < .0025 ? .55f : .5f ) / m_saliencies[bidx];
146149 else
147150 kappa = beta * normalDistribution (m_saliencies[bidx], m_weight < .0025 ? 1 .82f : 2 .0f );
0 commit comments