fn diffuse_err<P: Pixel<Subpixel = u8>>( pixel: &mut P, error: [i16; 3], factor: i16, )
Floyd-Steinberg error diffusion