1. An image processing circuit that generates a plurality of color values each representing color components of a pixel of a digital image, the circuit comprising: a register array that is organized in a plurality of lines of registers and that represents a portion of an array of pixels of the digital image; a plurality of shift registers, in which each of the shift registers is coupled to receive an input from one of the lines of registers and to shift said input to another one an input from one of the lines of registers and to shift said input to another one of the lines of registers; a plurality of directed linear product modules, each coupled to the register array, each of which generates an interpolated color value based on the register array; and an interpolator module configured to receive image data values stored in the register array into the directed linear product modules, select at least one of the directed linear product modules for use in generating one of the color values, and generate the color values based on at least a result of the selected directed linear product module.