A data processing system for performing motion estimation in a sequence of frames comprising first and second frames (803, 804) each divided into respective sets of blocks of pixels, the data processing system comprising: a candidate assessor for determining an output vector for each block of an output frame interpolated between first and second frames of the sequence; a vector generator (806, 807), configured to form a set of forward vectors for the blocks of the first frame and a set of backward vectors for the blocks of the second frame, each forward vector identifying a possible mapping of pixels of respective blocks of the first frame into the second frame, and each backward vector identifying a possible mapping of pixels of respective blocks of the second frame into the first frame; and a processor configured to, for a search block of the output frame: identify blocks of the first and second frames that are collocated with the search block; determine whether a first forward vector from the set of forward vectors formed in respect of one or more collocated blocks of the first frame and a first backward vector from the set of backward vectors formed in respect of one or more collocated blocks of the second frame are inverse to one another by determining if the directions of the first forward and backward vectors are opposed to one another within a predefined angle or proportion of one another and the magnitudes of the first forward and backward vectors are within a predefined length or proportion of one another; if the first forward and backward vectors are inverse to one another: the processor is configured to calculate a bidirectional output vector for the search block of the output frame from the first forward and backwards vectors; and the candidate assessor is configured to pass the bidirectional output vector as the output vector for the search block. a candidate assessor for determining an output vector for each block of an output frame interpolated between first and second frames of the sequence; a vector generator (806, 807), configured to form a set of forward vectors for the blocks of the first frame and a set of backward vectors for the blocks of the second frame, each forward vector identifying a possible mapping of pixels of respective blocks of the first frame into the second frame, and each backward vector identifying a possible mapping of pixels of respective blocks of the second frame into the first frame; and a processor configured to, for a search block of the output frame: identify blocks of the first and second frames that are collocated with the search block; determine whether a first forward vector from the set of forward vectors formed in respect of one or more collocated blocks of the first frame and a first backward vector from the set of backward vectors formed in respect of one or more collocated blocks of the second frame are inverse to one another by determining if the directions of the first forward and backward vectors are opposed to one another within a predefined angle or proportion of one another and the magnitudes of the first forward and backward vectors are within a predefined length or proportion of one another; identify blocks of the first and second frames that are collocated with the search block; determine whether a first forward vector from the set of forward vectors formed in respect of one or more collocated blocks of the first frame and a first backward vector from the set of backward vectors formed in respect of one or more collocated blocks of the second frame are inverse to one another by determining if the directions of the first forward and backward vectors are opposed to one another within a predefined angle or proportion of one another and the magnitudes of the first forward and backward vectors are within a predefined length or proportion of one another; if the first forward and backward vectors are inverse to one another: the processor is configured to calculate a bidirectional output vector for the search block of the output frame from the first forward and backwards vectors; and the candidate assessor is configured to pass the bidirectional output vector as the output vector for the search block.