1. A method for demosaicking a digital image captured by an image sensor overlaid with a color filter array, wherein each of pixels of the digital image has one of a first color, a second color and a third color, and the pixels of the digital image are processed in an order from the upper-left to lower-right of the digital image, the method comprising: if a current-processed pixel is the second color or the third color, implementing a first process to the current-processed pixel to obtain a value of the first color, wherein the first process comprises: generating a first sub-window centered at the current-processed pixel; using a first mask to select a first plurality of prior-processed pixels; calculating a set of direction weightings of the current-processed pixel according to stored direction weightings of the first plurality of prior-processed pixels; determining an interpolating direction of the current-processed pixel according to the set of direction weightings of the current-processed pixel; calculating a value of the first color for the current-processed pixel based on the set of direction weightings of the current-processed pixel and values of the first color of pixels of the first color in the first sub-window; storing the largest one of the set of direction weightings, the interpolating direction and the value of the first color of the current-processed pixel; and if the current-processed pixel is the first color, implementing a second process to the current-processed pixel to obtain a value of the second color and a value of the third color, wherein the second process comprises: generating a second sub-window centered at the current-processed pixel; using a second mask to select a second plurality of prior-processed pixels; calculating a set of direction weightings of the current-processed pixel according to stored direction weightings of the second plurality of prior-processed pixels; determining an interpolating direction of the current-processed pixel according to the set of direction weightings of the current-processed pixel; storing the largest one of the set of direction weightings of the current-processed pixel; implementing the first process to each of a first plurality of non-processed pixels to estimate a value of the first color for each of the first plurality of non-processed pixels, wherein each of the first plurality of non-processed pixels is the second color or the third color and in the second sub-window; estimating a value of the second color for each of a second plurality of non-processed pixels, wherein each of the second plurality of non-processed pixels is the third color and in the second sub-window; calculating a value of the second color for the current-processed pixel based on values of the second color of pixels neighboring the current-processed pixel and the set of direction weightings of the current-processed pixel; estimating a value of the third color for each of a third plurality of non-processed pixels, wherein each of the third plurality of non-processed pixels is the second color and in the second sub-window; and calculating a value of the third color for the current-processed pixel based on values of the third color of the pixels neighboring the current-processed pixel and the set of direction weightings of the current-processed pixel.