Methods and apparatus of motion vector rounding, clipping and storage for inter prediction
US-2024333960-A1 · Oct 3, 2024 · US
US9648338B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9648338-B2 |
| Application number | US-201213406185-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 27, 2012 |
| Priority date | Mar 8, 2011 |
| Publication date | May 9, 2017 |
| Grant date | May 9, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The invention provides a video codec. In one embodiment, the video codec is coupled to an outer memory storing a reference frame, and comprises an interface circuit, an in-chip memory, a motion estimation circuit, and a controller. The interface circuit obtains in-chip data from the reference frame stored in the outer memory. The in-chip memory stores the in-chip data. The motion estimation circuit retrieves search window data from the in-chip data with a search window, and performs a motion estimation process on a current macroblock according to the search-window data. The controller shifts the location of the search window when the current macroblock is shifted, marks a macroblock shifted out from the search window as an empty macroblock, and controls the interface circuit to obtain an updated macroblock for replacing the empty macroblock in the in-chip memory from the reference frame stored in the outer memory.
Opening claim text (preview).
What is claimed is: 1. A video codec, coupled to an outer memory storing a reference frame, comprising: an interface circuit, obtaining in-chip data from the reference frame stored in the outer memory; an in-chip memory, storing the in-chip data, wherein the in-chip data comprises N complete rows of macroblocks of the reference frame, wherein N is a positive integer, and the size of the N rows of macroblocks is smaller than that of a storage space of the in-chip memory; a motion estimation circuit, obtaining one or more macroblocks of search window data from the in-chip data with a search window, and performing a motion estimation process on a current macroblock according to the search-window data; and a controller, shifting the current macroblock and correspondingly shifting the location of a search window right by a column of macroblocks in the in-chip data, a left column of macroblocks of the data in the search window being shifted out from the shifted search window when the current macroblock is shifted, the controller setting an upper macroblock on an upper row of the left column of macroblocks being shifted out from the shifted search window to be an empty macroblock, and the controller controlling the interface circuit and obtaining an updated macroblock from the reference frame stored in the outer memory to replace the empty macroblock in the in-chip memory, the updated macroblock being located in the reference frame on the same column of macroblocks as that of the empty macroblock and on an Nth row of macroblocks from that of the empty macroblock. 2. The video codec as claimed in claim 1 , wherein when the interface circuit loads the in-chip data to the in-chip memory, the interface circuit repeats loading of a column of N macroblocks from the reference frame to the in-chip memory until all of the N rows of macroblocks have been loaded to the in-chip memory. 3. The video codec as claimed in claim 1 , wherein when the interface circuit loads the in-chip data to the in-chip memory, the interface circuit repeats loading of a column of N macroblocks from the reference frame to the in-chip memory until all of the N rows of macroblocks have been loaded to the in-chip memory. 4. The video codec as claimed in claim 1 , wherein when N is an odd number, the search window data comprises a data region bounded by [(N−1)/2]-th columns of macroblocks counted from a left side and a right side of the current macroblock and [(N−1)/2]-th rows of macroblocks counted from an upper side and a lower side of the current macroblock, and when N is an even number, the search window data comprises a data region bounded by [N/2−1]-th columns of macroblocks counted from a left side and a right side of the current macroblock and [N/2−1]-th rows of macroblocks counted from an upper side and a lower side of the current macroblock. 5. The video codec as claimed in claim 1 , wherein a plurality of collocated macroblocks has the same locations in the reference frame as that of the current macroblock, and the search window data comprises N2 macroblocks centered at the collocated macroblocks, wherein the N2 macroblocks comprises N columns and N rows of macroblocks. 6. The video codec as claimed in claim 5 , wherein when the controller shifts the search window right, and if the current macroblock is a last macroblock of a current column, the controller marks all of the macroblocks of the current column to be the empty macroblocks. 7. The video codec as claimed in claim 6 , wherein the controller shifts the shifts the search window right, if the current macroblock is a last macroblock of the current row, when N is an odd number, the interface circuit obtains an upper macroblock and (N−1)/2 macroblocks on the left side of the upper macroblock from the reference frame as the updated macroblocks to replace the N empty macroblocks on an upper row in the in-chip memory, and when N is an even number the interface circuit obtains the upper macroblock and N/2 macroblocks on the left side of the upper macroblock from the reference frame as the updated macroblocks to replace the N empty macroblocks on an upper row in the in-chip memory. 8. A motion estimation method, wherein a video codec is coupled to an outer memory storing a reference frame, and the video codec comprises an interface circuit, an in-chip memory, a motion estimation circuit, and a controller, the method comprising: obtaining in-chip data by the interface circuit from the reference frame stored in the outer memory; storing the in-chip data in the in-chip memory, wherein the in-chip data comprises N complete rows of macroblocks of the reference frame, wherein N is a positive integer, and the size of the N rows of macroblocks is smaller than that of a storage space of the in-chip memory; obtaining one or more macroblocks of search window data from the in-chip data with a search window by the motion estimation circuit; performing a motion estimation process on a current macroblock by the motion estimation circuit according to the search-window data; when the current macroblock is shifted, correspondingly shifting the location of the search window right by a column of macroblocks in the in-chip data by the controller, a left column of macroblocks of the data in the search window being shifted out from the shifted search window, and setting an upper macroblock on an upper row of the left column of macroblocks being shifted out from the shifted search window to be an empty macroblock by the controller; and controlling the interface circuit and obtaining an updated macroblock from the reference frame stored in the outer memory to replace the empty macroblock in the in-chip memory, the updated macroblock being located in the reference frame on the same column of macroblocks as that of the empty macroblock and on an Nth row of macroblocks from that of the empty macroblock. 9. The motion estimation method as claimed in claim 8 , wherein in addition to the N rows of macroblocks of the reference frame, the in-chip data further comprises a first column of N macroblocks counted from the left side of the reference frame and a second column of N macroblocks counted from the right side of the reference frame, wherein the width of the first column and the second column is equal to (N−1)/2 when N is an odd number and the width of the first column and the second column is equal to (N/2−1) when N is an even number. 10. The motion estimation method as claimed in claim 8 , wherein obtaining of the in-chip data comprises: when the interface circuit loads the in-chip data to the in-chip memory, the interface circuit repeats loading of a column of N macroblocks from the reference frame to the in-chip memory until all of the N rows of macroblocks have been loaded to the in-chip memory. 11. The motion estimation method as claimed in claim 8 , wherein when N is an odd number, the search window data comprises a data region bounded by [(N−1)/2]-th columns of macroblocks counted from a left side and a right side of the current macroblock and [(N−1)/2]-h rows of macroblocks counted from an upper side and a lower side of the current macroblock, and when N is an even number, the search window data comprises a data region bounded by [N/2−1]-th columns of macroblocks counted from a left side and a right side of the current macroblock and [N/2−1]-th rows of macroblocks counted from an upper side and a low side of the current macroblock. 12. The motion estimation method as claimed in claim 8 , wherein a plurality of collocated macroblocks has the same locations in the reference frame as that of the current macroblock, and the search window data comprises N2 macroblocks centered at the collocated
Motion estimation or motion compensation · CPC title
characterised by techniques for memory access · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.