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