См. Этот ответ для формулы смешивания:
ChannelBlend_SoftLight(A,B) ((uint8)((B < 128)?(2*((A>>1)+64))*((float)B/255):(255-(2*(255-((A>>1)+64))*(float)(255-B)/255))))
Ваш код выше рассчитывает смешивание для одного пикселя.
a, b
- это 2 разных пикселя, функция aampleNearest
получает 2 пикселя от входных изображений.
dst,src
2 входных изображения.