optimize greyscale algo