Claims
- 1. A method comprising:
computing difference computations in parallel for multiple pixels of a video block to be encoded relative to pixels of one or more candidate video blocks within a search space; and generating difference values that define a level of similarity between the video block to be encoded and the candidate video blocks based at least in part on the computed difference computations.
- 2. The method of claim 1, further comprising retrieving the multiple pixels in each of the candidate video blocks from multiple output banks in a candidate memory.
- 3. The method of claim 2, further comprising:
receiving a pixel index identifying one of the candidate video blocks; translating the pixel index to a physical address in the candidate memory; and retrieving the multiple pixels in the candidate video blocks from the multiple output banks based on the physical address.
- 4. The method of claim 3, further comprising translating the pixel index to a logical address in the candidate memory, and translating the logical address to the physical address in the candidate memory.
- 5. The method of claim 3, wherein the video block to be encoded and each of the candidate video blocks defines a 16 by 16 macroblock array of pixels compliant with an MPEG-4 standard.
- 6. The method of claim 1, further comprising computing difference values in parallel between less than all of the pixels in a row of the video block to be encoded and pixels of the candidate video block within the search space.
- 7. The method of claim 1, wherein the search space defines an array of multiple candidate video blocks arranged in columns.
- 8. The method of claim 7, further comprising:
loading a candidate memory with the candidate video blocks in the search space; computing difference computations in parallel between multiple pixels in a first video block to be encoded and the candidate video blocks in the candidate memory; reloading a subset of the candidate memory with candidate video blocks that correspond to a new column in the search space; and computing difference values in parallel between multiple pixels in a second video block to be encoded and the candidate video blocks in the candidate memory.
- 9. The method of claim 1, further comprising encoding the video block to be encoded according to one of the MPEG standards.
- 10. The method of claim 1, further comprising generating difference values that define a level of similarity between a subset of the video block to be encoded and subsets of the candidate video blocks based at least in part on the computed difference computations.
- 11. A device comprising:
a difference processor to compute difference computations in parallel for multiple pixels of a video block to be encoded relative to pixels of one or more candidate video blocks within a search space; and a video encoding controller that generates difference values that define a level of similarity between the video block to be encoded and the candidate video blocks based at least in part on the computed difference computations, identifies a specific candidate yielding an acceptable difference value, and encodes the video block to be encoded using a motion vector to the specific candidate.
- 12. The device of claim 11, further comprising a candidate memory that stores the candidate video blocks, the difference processor retrieving the multiple pixels in each of the candidate video blocks from multiple output banks in the candidate memory
- 13. The device of claim 12, wherein the video encoding controller generates a pixel index identifying one of the candidate video blocks, the device further comprising:
a memory control unit that translates the pixel index to a physical address in the candidate memory, the difference processor retrieving the multiple pixels in the candidate video blocks from the multiple output banks based on the physical address.
- 14. The device of claim 13, wherein the memory control unit translates the pixel index to a logical address in the candidate memory, and translates the logical address to the physical address in the candidate memory.
- 15. The device of claim 13, wherein the video block to be encoded and each of the candidate video blocks defines a 16 by 16 array of pixels compliant with an MPEG-4 standard.
- 16. The device of claim 11, wherein the difference processor computes difference values in parallel between less than all of the pixels in a row of the video block to be encoded and pixels of the candidate video blocks within the search space.
- 17. The device of claim 11, wherein the search space defines an array of multiple candidate video blocks arranged in columns.
- 18. The device of claim 17, further comprising a memory control unit that loads a candidate memory with the candidate video blocks in the search space for computation of the difference computations in parallel.
- 19. The device of claim 11, wherein the video encoding controller encodes the video block to be encoded according to one of the MPEG standards.
- 20. The device of claim 11, wherein computing difference computations comprises computing absolute difference computations.
- 21. A device comprising:
means for computing difference computations in parallel for multiple pixels of a video block to be encoded relative to pixels of one or more candidate video blocks within a search space; means for generating difference values that define a level of similarity between the video block to be encoded and the candidate video blocks based at least in part on the computed difference computations; means for identifying a specific candidate yielding an acceptable difference value; and means for encoding the video block to be encoded using a motion vector to the specific candidate.
- 22. The device of claim 21, further comprising means for retrieving the multiple pixels in each of the candidate video blocks from multiple output banks in a candidate memory.
- 23. The device of claim 22, further comprising:
means for receiving a pixel index identifying one of the candidate video blocks; means for translating the pixel index to a physical address in the candidate memory; and means for retrieving the multiple pixels in the candidate video blocks from the multiple output banks based on the physical address.
- 24. The device of claim 23, further comprising:
means for translating the pixel index to a logical address in the candidate memory; and means for translating the logical address to the physical address in the candidate memory.
- 25. The device of claim 23, wherein the video block to be encoded and each of the candidate video blocks defines a 16 by 16 macroblock array of pixels compliant with an MPEG-4 standard.
- 26. The device of claim 21, further comprising means for computing difference values in parallel between less than all of the pixels in a row of the video block to be encoded and the candidate video block within the search space.
- 27. The device of claim 21, wherein the search space defines an array of multiple candidate video blocks arranged in columns.
- 28. The device of claim 27, further comprising:
means for loading a candidate memory with the candidate video blocks in the search space; means for computing difference computations in parallel between multiple pixels in a first video block to be encoded and the candidate video blocks in the candidate memory; means for reloading a subset of the candidate memory with candidate video blocks that correspond to a new column in the search space; and means for computing difference values in parallel between multiple pixels in a second video block to be encoded and the candidate video blocks in the candidate memory.
- 29. The device of claim 21, further comprising means for encoding the video block to be encoded according to one of the MPEG standards.
- 30. The device of claim 21, further comprising means for generating difference values that define a level of similarity between a subset of the video block to be encoded and subsets of the candidate video blocks based at least in part on the computed difference computations.
- 31. A wireless communication device comprising:
a video capture device that captures a video frame including video blocks; a video encoder that computes difference computations in parallel for multiple pixels of a video block to be encoded relative to pixels of one or more candidate video blocks within a search space, generates difference values that define a level of similarity between the video block to be encoded and the candidate video blocks based at least in part on the computed difference computations, identifies a specific candidate yielding an acceptable difference value, and encodes the video block to be encoded using a motion vector to the specific candidate; and a wireless transmitter that transmits the encoded video block to another device.
RELATED APPLICATIONS
[0001] This application claims the benefit of provisional U.S. application Ser. No. 60/390,101, entitled “Method to Reduce Power Consumption in a Video Motion Estimation System” filed on Jun 18, 2002, assigned to the assignee of the present application, and incorporated herein by reference in its entirety for all purposes.
[0002] This application is related to co-pending patent application filed on the same date herewith, entitled “VIDEO ENCODING AND DECODING TECHNIQUES,” Ser. No. ______, (Docket No. 020496). This application is further related to co-pending patent application entitled “VIDEO ENCODING TECHNIQUES,” Ser. No. 10/139,772, filed on May 3, 2002, (Docket No. 020086). Both applications are assigned to the same Assignee as the present application.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60390101 |
Jun 2002 |
US |