Patent ID: 7558428

Claim:
A method for processing a video signal, Comprising, at least two or more processors implementing: determining a reference frame associated with a current frame; partitioning the current and reference frames into blocks; identifying seed positions; storing with a second processing unit the current frame of the video signal; identifying corresponding blocks in the current and the reference frames with a first processing unit; computing motion estimation vectors associated with the current frame using the first processing unit, the first processing unit including a first memory, and dedicated instructions stored in the first memory to perform vertex shader, pixel shader and texel processing, the first processing unit including multiple channels for texel processing, the vertex shader processing, graphics operations on a per-vertex basis and the pixel shader processing graphics operations on a per-pixel basis; determining difference values for blocks in the current frame based, at least in part, on the seed positions wherein the difference values include at least one of a sum of absolute difference (SAD) value, a mean square error (MSE) value, or a R-D based metric value, wherein determining the difference values of a reference texel block at one position enables extraction of the difference values for a reference pixel block for corresponding texel channels of the first processing unit; generating motion vectors for the blocks based, at least in part, on the difference values; and encoding the video signal into digital video data using the second processing unit running asynchronously to the first processing unit, said second processing unit including a second memory, separate from the first memory and having instructions stored in the second memory, wherein the current frame is encoded into the digital video data based, at least in part, on the computed motion estimation vectors computed using the first processing unit.