1. A computer implemented method for estimating sub-pixel optical flow of a pixel of an input image, the method comprising: receiving the input image and a reference image of the input image, wherein the reference image is a subsequent image of the input image; for each pixel of the input image: estimating a plurality of candidate pixel-level optical flows of the pixel using the subsequent image of the input image, wherein the pixel-level optical flow of the pixel represents relative movement of the pixel between the input image and the subsequent image; selecting a pixel-level optical flow from a plurality of candidate pixel-level optical flows of the pixel associated with the pixel; obtaining a plurality of neighboring pixel-level optical flow vectors of the selected pixel-level optical flow; and estimating the sub-pixel optical flow of the pixel based on the selected pixel-level optical flow and its neighboring pixel-level optical flow vectors.