Patent ID: 7272184

Claim:
A system for generating motion vectors in the framework of a motion estimator, the system being configured for co-operating with an engine for calculating estimation error for generating motion vectors according to estimation errors and/or motion vectors previously generated, the system comprising: a program memory that contains program data for a motion-estimation algorithm to be executed; a motion-vector memory that contains data identifying said motion vectors previously generated; and an arithmetic and logic unit co-operating with said program memory and said motion-vector memory, said arithmetic and logic unit being configured for performing at least one function comprised in the group consisting of: arithmetical addition and subtraction of motion vectors in order to calculate new motion vectors using as reference said motion vectors previously generated; definition of a current search window and logic comparisons on components of said motion vectors for verifying whether certain motion vectors exceed the limits of said search window; logic comparisons on values of said estimation errors referred to different sets of motion vectors to be subjected to checking; calculation of addresses of said memory of the motion vectors; and addition of addresses of said program memory, wherein said progarm memory stores a set of instructions including: an end of program instruction indicating that a next instruction of a program is the last instmction of the program; an accumulate instruction operating on an accumulator register; a memory instruction that transfers a motion vector from the motion-vector memory to a pipeline; an update instruction generating issuing of a motion vector calculated based on a winning motion vector contained in the motion-vector memory; an absolute instruction generating issuing of a motion vector; a synchronize and store vector instruction synchronizing a motion-vector-generator stage with the engine for calculating estimation error; a compare instruction; a jump instruction executing a jump to a given address; a scale instruction establishing scaling factors for co-ordinates of any subsequent motion vector that is issued; and a set instruction having a behavior that depends upon a value of a “type” field.