Patent ID: 8478076

Claim:
A non-transitory program storage device comprising instructions stored thereon to cause one or more processors to: obtain a first image acquired at a first time and being representative of a scene; obtain a second image acquired at a second time and being representative of the scene; obtain at least a portion of a first image pyramid comprising a plurality of levels including a top level and a base level, wherein the base level comprises a full resolution version of the first image, and wherein each level above the base level comprises a version of the first image that is down-sampled with respect to a level immediately below it; obtain at least a portion of a second image pyramid comprising a plurality of levels including a top level and a base level, wherein the base level comprises a full resolution version of the second image, and wherein each level above the base level comprises a version of the second image that is down-sampled with respect to a level immediately below it; determine, for each level of the first and second image pyramids beginning from the top-most level, a respective alignment vector for a current level k, wherein the instructions to cause the one or more processors to determine comprise instructions to cause the one or more processors to— obtain a difference bitmap based, at least in part, on the versions of the first and second images corresponding to the current level k of the first and second image pyramids, wherein the difference bitmap includes an active area having a plurality of tiles, apply a plurality of shift cases to each of the tiles of the active area, determine a shift value for each of the tiles of the active area, wherein each of the plurality of shift values represents a relative motion between the first and second images, for each shift case, identify an alignment vector for the current level k based, at least in part, on the plurality of shift values, identify, if the current level k is above the base level of the first and second image pyramids, zero or more tiles from the active area in the current level k of each of the first and second image pyramids based on a first threshold amount of relative motion, and designate tiles in a subsequent level k-1 as an active area based, at least in part, on tiles of the current level k other than the identified zero or more tiles; determine a combined alignment vector based, at least in part, on the identified alignment vector for each level of the first and second image pyramids; and align the first and second images based, at least in part, on the combined alignment vector.