Claims
- 1. A method for predicting a search range for use in selecting a search center in motion video motion searching, comprising:
determining a maximum per-component difference of motion vectors of surrounding, already searched macroblocks; and multiplying said maximum per-component difference by a number n to ensure said predicted range is large enough.
- 2. The method according to claim 1, wherein said number n equals 2.
- 3. A method for selecting a search center in motion video motion searching, comprising:
searching an integer number j of locations located approximately r pixels from an initial search center in a radial pattern and approximately equidistant from one another along a circumference of a circle of radius r, if a predicted search range is greater than or equal to an integer p; and selecting a best location from among said integer number j locations.
- 4. The method according to claim 3, wherein said integer number j comprises a number selected from the group consisting of 5, 6, 7, 8, 9 and 10.
- 5. The method according to claim 3, wherein said integer number j equals 8.
- 6. The method according to claim 3, wherein said radius r comprises approximately 8 pixels.
- 7. The method according to claim 3, wherein said integer number p equals 8.
- 8. A method of motion searching a macroblock, comprising:
determining a predicted motion vector; calculating a predicted search range; selecting a starting location based on said predicted motion vector and said predicted search range; selecting a search pattern based on said predicted motion vector; and diamond motion searching said macroblock from said selected starting location based on said selected search pattern to determine a best motion vector.
- 9. The method according to claim 8, wherein said determining a predicted motion vector comprises finding a median for each component of motion vectors for three surrounding, already motion-searched macroblocks.
- 10. The method according to claim 8, wherein said calculating a predicted search range comprises determining a maximum difference for each component of motion vectors for three surrounding, already motion-searched macroblocks.
- 11. The method according to claim 10, further comprising doubling said maximum difference.
- 12. The method according to claim 8, wherein said selecting a starting location comprises:
if said predicted search range is less than an integer threshold m, then:
testing locations pointed to by three surrounding, already motion-searched macroblocks; and selecting one of said locations having a lowest distortion as said starting location; if said predicted search range is greater than or equal to said integer threshold m, then:
searching an integer number j of locations located approximately r pixels from an initial search center in a radial pattern and approximately equidistant from one another along a circumference of a circle of radius r, if a predicted search range is greater than or equal to an integer p; and selecting a best location from among said integer number j locations.
- 13. The method according to claim 12, wherein said integer threshold m equals 8.
- 14. The method according to claim 12, wherein said integer number j comprises a number selected from the group consisting of 5, 6, 7, 8, 9 and 10.
- 15. The method according to claim 12, wherein said integer number j equals 8.
- 16. The method according to claim 12, wherein said radius r comprises approximately 8 pixels.
- 17. The method according to claim 12, wherein said integer number p equals 8.
- 18. The method according to claim 8, wherein said selecting a search pattern comprises:
selecting a small diamond search pattern if said predicted motion vector is less than or equal to a distance of 1 pixels; and selecting a large diamond search pattern if said predicted motion vector is greater than said distance of 1 pixels.
- 19. The method according to claim 18, wherein said distance of 1 pixels comprises a distance of 2 pixels.
- 20. A method for compressing motion video images comprising:
inputting a video frame; performing a motion search on each macroblock of said video frame comprising:
determining a predicted motion vector; calculating a predicted search range; selecting a starting location based on said predicted motion vector and said predicted search range; selecting a search pattern based on said predicted motion vector and said predicted search range; and motion searching said macroblock from said starting location based on said search pattern to determine a best motion vector; storing a motion vector for each block in said video frame; and residual coding of motion compensated errors.
- 21. The method of claim 20, further comprising repeating all steps for a subsequent video frame.
- 22. A system for transmitting and receiving video images, comprising:
computer instructions; a processor configured for processing said computer instructions; and a memory for storing said computer instructions; wherein said computer instructions implement a method for compressing motion video images, said method comprising:
inputting a video frame; performing a motion search on each macroblock of said video frame comprising:
determining a predicted motion vector; calculating a predicted search range; selecting a starting location based on said predicted motion vector and said predicted search range; selecting a search pattern based on said predicted motion vector and said predicted search range; and motion searching said macroblock from said starting location based on said search pattern to determine a best motion vector; and storing a motion vector for each block in said video frame.
- 23. The system of claim 22, further comprising an input device in communication with said processor for capturing video images.
- 24. The system of claim 22, wherein said system is further configured to communicate over a network.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is related to pending application Ser. No. 10/029,142, filed Dec. 20, 2001, titled METHOD AND SYSTEM FOR IMAGE COMPRESSION USING BLOCK SIZE HEURISTICS, the contents of which are expressly incorporated herein by reference for all purposes.