Claims
- 1. A structure for encoding by motion vectors a current frame of video data using a reference frame of video data, said current frame and said reference frame each being divided into multiple rows and multiple columns of macroblocks, said macroblocks of said current frame being designated "current macroblocks" and said macroblocks of said reference frame being designated "reference macroblocks", each macroblock representing a number of pixels in the corresponding frame, said structure comprising:
- a memory circuit for storing (a) a plurality n of adjacent current macroblocks from a row j of current macroblocks in said current frame, beginning at column p of current macroblocks said current frame, said plurality of said adjacent current macroblocks being designated C.sub.j,p, C.sub.j,p+1, . . . , C.sub.j,p+n-1 in the order along one direction of said row of macroblocks; and (b) a plurality of adjacent reference macroblocks from a first column i of reference macroblocks in said reference frame, beginning at row q of reference macroblocks in said reference frame, said plurality of reference macroblocks being designated R.sub.q,i, R.sub.q+1,i, . . . , R.sub.q+m-1,i, said plurality of adjacent reference macroblocks being reference macroblocks within the range of said motion vectors, each of said current macroblocks being substantially equidistance from said R.sub.q,i and R.sub.q+m-1,i reference macroblocks;
- means for providing each current macroblock a set of scores, each score corresponding to one of said motion vectors and measuring a difference in pixel values between said current macroblock and a reference macroblock linked by said motion vector;
- means for selecting, using said set of scores, a motion vector corresponding to the least of said differences measured; and
- means for replacing in said memory circuit (a) the current macroblock C.sub.j,p with a current macroblock C.sub.j,p+n, said current macroblock C.sub.j,p+n being the current macroblock adjacent said macroblock C.sub.j,p+n-1 in said direction; and (b) said first column of adjacent reference macroblocks R.sub.q,i, R.sub.q+1,i, . . . , R.sub.q+m-1,i with a second column of adjacent reference macroblocks R.sub.q,i+1, R.sub.q+1,i+1, . . . , R.sub.q+m-1,i+1, said second column being adjacent said first column in said direction.
- 2. A structure as in claim 1, wherein said memory circuit, instead of storing a row of current macroblocks and a column of reference macroblocks, stores a column of current macroblocks and a row of reference macroblocks.
- 3. A structure as in claim 1, further comprising a counter for controlling said structure, said means for providing each current macroblock a set of score providing said scores one score at a time, said counter including a first field and a second field representing respectively the current macroblock and the reference macroblock involved in the score currently being provided; wherein, at any given time, said first field takes, as its value, one of a first number of values, said first number of values equalling the number of current macroblocks in said memory circuit, and said second field takes, as its value, one of a second number of values, said second number of values equalling the number of reference macroblocks in said memory circuit.
- 4. A structure as in claim 3, wherein said first and second number of values being programmable.
- 5. A structure as in claim 3, further comprising a third and a fourth field representing, respectively, the row number j of current macroblocks in said current frame and the column number i of said reference macroblocks in said reference frame, wherein, at any given time, said third field takes, as its value, one of a third number of values, said third number of values equalling the number of rows in said current frame, and said fourth field takes, as its value, one of a fourth number of values, said fourth number of values equalling the number of columns in said reference frame.
- 6. A method for encoding by motion vectors a current frame of video data using a reference frame of video data, said current frame and said reference frame each being divided into multiple rows and multiple columns of macroblocks, said macroblocks of said current frame being designated "current macroblocks" and said macroblocks of said reference frame being designated "reference macroblocks", each macroblock representing a number of pixels in the corresponding frame, said method comprising the steps of:
- storing in a memory circuit (a) a plurality n of adjacent current macroblocks from a row j of current macroblocks in said current frame, beginning at column p of current macroblocks in said current frame, said plurality of said adjacent current macroblocks being designated C.sub.j,p, C.sub.j,p+1, . . . , C.sub.j,p+n-1 in the order along one direction of said row of macroblocks; and (b) a plurality of adjacent reference macroblocks from a first column i of reference macroblocks in said reference frame, beginning at row q of reference macroblocks in said reference frame, said plurality of reference macroblocks being designated R.sub.q,i, R.sub.q+1,i, . . . , R.sub.q+m-1,i, said plurality of adjacent reference macroblocks being reference macroblocks within the range of said motion vectors, each of said current macroblocks being substantially equidistance from said R.sub.q,i and R.sub.q+m-1,i reference macroblocks;
- providing each current macroblock a set of scores, each score corresponding to one of said motion vectors and measuring a difference in pixel values between said current macroblock and a reference macroblock linked by said motion vector;
- selecting, using said set of scores, a motion vector corresponding to the least of said differences measured; and
- replacing in said memory circuit (a) the current macroblock C.sub.j,p with a current macroblock C.sub.j,p+n, said current macroblock C.sub.j,p+n being the current macroblock adjacent said macroblock C.sub.j,p+n-1 in said direction; and (b) said first column of adjacent reference macroblocks R.sub.q,i, R.sub.q+1,i, . . . , R.sub.q+m-1,i with a second column of adjacent reference macroblocks R.sub.q,i+1, R.sub.q+1,i+1, . . . , R.sub.q+m-1,i+1, said second column being adjacent said first column in said direction.
- 7. A method as in claim 6, wherein said step of storing in a memory circuit, instead of storing a row of current macroblocks and a column of reference macroblocks, stores a column of current macroblocks and a row of reference macroblocks.
- 8. A method as in claim 6, further comprising the step of using a counter for controlling, said step of providing each macroblock a set of scores providing said scores one score at a time, said counter including a first field and a second field representing respectively the current macroblock and the reference macroblock involved in the score currently being provided; wherein, at any given time, said first field takes, as its value, one of a first number of values, said first number of values equalling the number of current macroblocks in said memory circuit, and said second field takes, as its value, one of a second number of values, said second number of values equalling the number of reference macroblocks in said memory circuit.
- 9. A method as in claim 8, wherein said first and second number of values being programmable.
- 10. A method as in claim 8, further comprising the step of allocating in said counter a third and a fourth field representing, respectively, the row number j of said current macroblocks in said current frame and the column number i of said reference macroblocks in said reference frame, wherein, at any given time, said third field takes, as its value, one of a third number of values, said third number of values equalling the number of rows in said current frame, and said fourth field takes, as its value, one of a fourth number of values, said fourth number of values equalling the number of columns in said reference frame.
Parent Case Info
This application is a division of application Ser. No. 08/105,253, filed Aug. 9, 1993.
US Referenced Citations (9)
Divisions (1)
|
Number |
Date |
Country |
Parent |
105253 |
Aug 1993 |
|