Claims
- 1. A system comprising:
a first register configured to store a first operand, wherein the first operand has data elements; a second register configured to store a second operand, wherein the second operand has data elements; and a processor configured to perform multiple packed-sum-absolute-difference (PSAD) calculations in response to a single instruction, wherein each of the multiple PSAD calculations is performed between the data elements of the second operand and different subsets of data elements of the first operand.
- 2. The system of claim 1, wherein the first register is further configured to store a first operand having a number of data elements greater than the number of data elements of the second operand.
- 3. The system of claim 2, wherein the number of data elements in each of the different subsets is equal to the number of data elements in the second operand.
- 4. The system of claim 3, wherein each of the different subsets has overlapping elements with at least one other of the different subsets.
- 5. The system of claim 3, wherein the elements of each of the different subsets occupy a contiguous portion of the first register.
- 6. The system of claim 1, wherein the processor is configured to perform multiple PSAD calculations in parallel.
- 7. The system of claim 1, wherein the first register is further configured to store a 128-bit first operand, wherein the second register is further configured to store a 64-bit second operand.
- 8. The system of claim 1, further comprising a destination register configured to store a result of each of the multiple PSAD calculations.
- 9. A system comprising:
a first register configured to store a first operand, wherein the first operand has data elements; a second register configured to store a second operand, wherein the second operand has data elements; and a processor configured to perform multiple packed-sum-absolute-difference (PSAD) calculations in response to a single instruction, wherein at least one of the multiple PSAD calculations is performed on the data elements of the second operand and a first subset of data elements of the first operand.
- 10. The system of claim 9, wherein the processor is further configured to perform multiple PSAD calculations on pixels of a video frame represented by the first operand.
- 11. The system of claim 10, wherein the processor is further configured to perform multiple PSAD calculations on pixels of a video frame represented by the second operand.
- 12. The system of claim 9, wherein the processor is further configured to perform multiple PSAD calculations on pixels of a reference image represented by the first operand.
- 13. The system of claim 12, wherein the processor is further configured to perform multiple PSAD calculations on pixels of an object image represented by the second operand.
- 14. The system of claim 9, wherein the first register is further configured to store a first operand having a greater number of data elements than the number of data elements of the second operand.
- 15. The system of claim 14, wherein the number of data elements in the first subset of data elements is equal to the number of data elements in the second operand.
- 16. The system of claim 14, wherein the processor is configured to perform another of the multiple PSAD calculations on the data elements of the second operand and a second subset of data elements of the first operand.
- 17. The system of claim 16, wherein elements of the first subset overlap with elements of the second subset.
- 18. The system of claim 16, wherein the first register is further configured to store elements of the first subset in a first contiguous portion.
- 19. The system of claim 16, wherein the first register is further configured to store a first contiguous portion having a sequential group of bytes.
- 20. The system of claim 18, wherein the first register is further configured to store elements of the second subset in a second contiguous portion of the first register.
- 21. The system of claim 9, wherein the processor is configured to perform the multiple PSAD calculations substantially in parallel.
- 22. The system of claim 9, wherein the processor is configured to perform the multiple PSAD calculations substantially sequentially.
- 23. The system of claim 9, wherein the first register is a 2n-bit register, wherein n is an integer value.
- 24. The system of claim 23, wherein the second register is a 2m-bit register, wherein m is an integer value.
- 25. The system of claim 9, wherein the first register is a 128-bit register and the second register is a 64-bit register.
- 26. The system of claim 9, further comprising a destination register configured to store a result of each of the multiple PSAD calculations.
- 27. The system of claim 26, wherein the processor is configured to store each of the results of each of the multiple PSAD calculations in non-overlapping contiguous portions of the destination register.
- 28. The system of claim 27, wherein the processor is further configured to generate 16-bit results as a result of each of the multiple PSAD calculations.
- 29. The system of claim 28, wherein the processor is further configured to determine multiple mean absolute difference (MAD) values from the multiple PSAD calculations.
- 30. The system of claim 29, wherein the processor is further configured to determine a minimum MAD value from the multiple MAD values.
- 31. The system of claim 30, wherein the processor is further configured to perform a binary search on the results of the multiple MAD calculations.
- 32. The system of claim 9, wherein the processor is configured to recursively perform the multiple PSAD calculations in response to a single instruction.
- 33. The system of claim 32, wherein the processor is further configured to receive a single instruction comprising:
a starting address; and a number of iterations.
- 34. A system comprising:
a first register configured to store a first operand, wherein the first operand has data elements; a second register configured to store a second operand, wherein the second operand has data elements; a processor configured to receive a single instruction and issue a command; and dedicated hardware configured to receive the issued command from the processor, wherein the hardware is configured to perform multiple packed-sum-absolute-difference (PSAD) calculations in response to the issued command, wherein at least one of the multiple PSAD calculations is performed between the data elements of the second operand I1 and a first subset of data elements of the first operand.
- 35. A method comprising the steps of:
receiving a single instruction; and performing multiple packed-sum-absolute-difference (PSAD) calculations in response to the single instruction.
- 36. The method of claim 35, wherein the step of performing multiple PSAD calculations comprises the steps of:
retrieving a first operand having data elements in response to the receiving of the single instruction; and retrieving a second operand having data elements in response to the receiving of the single instruction.
- 37. The method of claim 36, wherein the step of performing multiple PSAD calculations further comprises the step of performing a PSAD calculation using the data elements of the second operand and a first subset of data elements of the first operand.
- 38. The method of claim 37, wherein the step of performing multiple PSAD calculations further comprises the step of performing a PSAD calculation using the data elements of the second operand and a different subset of data elements of the first operand.
- 39. The method of claim 36, wherein the step of performing multiple PSAD calculations further comprises the step of outputting a result in response to the performing of the multiple PSAD calculations.
- 40. The method of claim 35, further comprising the step of determining multiple mean absolute difference (MAD) values from the multiple PSAD calculations.
- 41. The method of claim 40, further comprising the step of determining a minimum calculated MAD value from the multiple MAD values.
- 42. The method of claim 41, where in the step of determining a minimum calculated MAD value comprises the steps of performing a binary search on the multiple MAD values.
- 43. The method of claim 42, wherein the step of performing a binary search comprises the steps of:
comparing one of the multiple MAD values with another of the multiple MAD values; evaluating which of the two MAD values is smaller; and outputting the smaller of the two MAD values.
- 44. The method of claim 35, further comprising the step of recursively performing multiple PSAD calculations in response to the single instruction.
- 45. The system of claim 44, wherein the step of performing multiple PSAD calculations further comprises the step of receiving a single instruction having:
a starting address; and a number of iterations.
- 46. A system comprising:
means for receiving a single instruction; and means for performing multiple packed-sum-absolute-difference (PSAD) calculations in response to the single instruction.
- 47. The system of claim 46, wherein the means for performing multiple PSAD calculations comprises:
means for retrieving a first operand having data elements in response to the receiving of the single instruction; and means for retrieving a second operand having data elements in response to the receiving of the single instruction.
- 48. The system of claim 47, wherein the means for performing multiple PSAD calculations further comprises means for performing a PSAD calculation using the data elements of the second operand and a first subset of data elements of the first operand.
- 49. The system of claim 48, wherein the means for performing multiple PSAD calculations further comprises means for performing a PSAD calculation using the data elements of the second operand and a different subset of data elements of the first operand.
- 50. The system of claim 47, wherein the means for performing multiple PSAD calculations further comprises means for outputting a result in response to the performing of the multiple PSAD calculations.
- 51. The system of claim 46, further comprising means for determining multiple mean absolute difference (MAD) values from the multiple PSAD calculations.
- 52. The system of claim 51, further comprising means for determining a minimum calculated MAD value from the multiple MAD values.
- 53. The system of claim 52, wherein the means for determining a minimum calculated MAD value comprises means for performing a binary search on the multiple MAD values.
- 54. The system of claim 53, wherein the means for performing a binary search comprises:
means for comparing one of the multiple MAD values with another of the multiple MAD values; means for evaluating which of the two MAD values is smaller; and means for outputting the smaller of the two MAD values.
- 55. The system of claim 46, further comprising means for recursively performing multiple PSAD calculations in response to the single instruction.
- 56. The system of claim 55, wherein the means for performing the multiple PSAD calculations comprises means for receiving a single instruction having:
a starting address; and a number of iterations.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. provisional patent application serial No. 60/299,881, filed Jun. 21, 2001, which is incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60299881 |
Jun 2001 |
US |