A method comprising: receiving more than one pixel of an image; performing, at overlapping times, error diffusion for the more than one pixel, by distributing, at overlapping times, fractional error values to the more than one pixel, wherein distributing at overlapping times comprises: accumulating fractional error values for a selected pixel of the image from surrounding pixels at an accelerator unit of an image signal processor; adding the accumulated fractional error values to a value of the selected pixel to produce an accumulated value using the accelerator unit; comparing the accumulated value to a threshold value in a comparison block of the accelerator unit; assigning an output value to the selected pixel based on the comparison, wherein the comparison block assigns a zero value when the accumulated value is not greater than the threshold value and assigns a one-value to the selected pixel when the accumulated value exceeds the threshold value; subtracting the output value of the selected pixel from the accumulated value to generate an error value using a subtractor block of the accelerator unit; and providing the output value to an output processor element of the image signal processor. receiving more than one pixel of an image; performing, at overlapping times, error diffusion for the more than one pixel, by distributing, at overlapping times, fractional error values to the more than one pixel, wherein distributing at overlapping times comprises: accumulating fractional error values for a selected pixel of the image from surrounding pixels at an accelerator unit of an image signal processor; adding the accumulated fractional error values to a value of the selected pixel to produce an accumulated value using the accelerator unit; comparing the accumulated value to a threshold value in a comparison block of the accelerator unit; assigning an output value to the selected pixel based on the comparison, wherein the comparison block assigns a zero value when the accumulated value is not greater than the threshold value and assigns a one-value to the selected pixel when the accumulated value exceeds the threshold value; subtracting the output value of the selected pixel from the accumulated value to generate an error value using a subtractor block of the accelerator unit; and providing the output value to an output processor element of the image signal processor. accumulating fractional error values for a selected pixel of the image from surrounding pixels at an accelerator unit of an image signal processor; adding the accumulated fractional error values to a value of the selected pixel to produce an accumulated value using the accelerator unit; comparing the accumulated value to a threshold value in a comparison block of the accelerator unit; assigning an output value to the selected pixel based on the comparison, wherein the comparison block assigns a zero value when the accumulated value is not greater than the threshold value and assigns a one-value to the selected pixel when the accumulated value exceeds the threshold value; subtracting the output value of the selected pixel from the accumulated value to generate an error value using a subtractor block of the accelerator unit; and providing the output value to an output processor element of the image signal processor.