US8395635B2ActiveUtilityA1

Method for storing interpolation data

44
Assignee: KAO JUNG-YANGPriority: Sep 19, 2006Filed: Nov 22, 2006Granted: Mar 12, 2013
Est. expirySep 19, 2026(~0.2 yrs left)· nominal 20-yr term from priority
Inventors:Jung-Yang Kao
H04N 19/433G09G 5/36H04N 19/523
44
PatentIndex Score
0
Cited by
10
References
8
Claims

Abstract

A method for storing interpolation data is provided. The method uses a buffer in a cache memory and the concept of memory overlap record for storing previously calculated interpolation data, so as to avoid repeated interpolation, thereby decreasing the amount of system operation and the frequency of reading integer points for calculating interpolation from an external memory. Furthermore, a method of data storage for the buffer is provided. The storage method uses the concept of memory address rotation to store interpolation data beyond the boundary of the buffer. Moreover, another storage method is provided, which distributes interpolation data into a plurality of regions in the buffer according to different combinations of decimal coordinates of the interpolation points for economizing the use of memory space and simplifying the search of interpolation data in the buffer.

Claims

exact text as granted — not AI-modified
1. A method for storing interpolated data of a plurality of non-integer points, implemented by a calculation system calculating the interpolated data of the plurality of non-integer points, comprising:
 the calculation system determining whether the interpolated data of the plurality of non-integer points are stored in a buffer of the calculation system, wherein the calculation system is a video encoder or a video decoder, and the buffer is stored in a built-in cache memory of the calculation system; 
 if the interpolated data of the plurality of non-integer points are stored in the buffer, the calculation system providing the interpolated data; 
 if the interpolated data are not stored in the buffer, the calculation system reading the data of a plurality of integer points adjacent to the non-integer points from another memory of the calculation system, calculating the interpolated data of the plurality of non-integer points by interpolating the data of the integer points, and storing the interpolated data of the plurality of non-integer points into the buffer; 
 when the calculation system accesses the interpolated data of the non-integer points in the buffer, for each logical coordinate of the non-integer points, the calculation system calculating a result of the logical coordinate minus a corresponding logical coordinate of a starting point of the buffer plus a corresponding real coordinate of the starting point, wherein the result is taken as the real coordinate corresponding to the logical coordinate; 
 if the real coordinate is smaller than a corresponding lower limit of the buffer, the calculation system adding a corresponding side length of the buffer to the real coordinate; 
 if the real coordinate is larger than a corresponding upper limit of the buffer, the calculation system subtracting the corresponding side length of the buffer from the real coordinate; and 
 the calculation system accessing the buffer with the real coordinates of the non-integer points. 
 
     
     
       2. The method for storing interpolated data of the plurality of non-integer points as claimed in  claim 1 , further comprising:
 if the non-integer points exceed the boundary of the buffer, adjusting the logical coordinates of the starting point of the buffer, so as to make the non-integer points fall within the boundary of the buffer. 
 
     
     
       3. The method for storing interpolated data of the plurality of non-integer points as claimed in  claim 1 , wherein the memory storing the data of the integer points is an external memory of the calculation system. 
     
     
       4. The method for storing interpolated data of the plurality of non-integer points as claimed in  claim 1 , further comprising:
 counting the size distribution of motion vector differences (MVDs) of at least one video bitstream; and 
 determining the size of the buffer according to the size distribution. 
 
     
     
       5. The method for storing interpolated data of the plurality of non-integer points as claimed in  claim 4 , wherein the size of each of the MVDs is the maximum value among the coordinate components of the MVD. 
     
     
       6. The method for storing interpolated data of the plurality of non-integer points as claimed in  claim 5 , wherein the size of each of a predetermined proportion of the MVDs is smaller than the minimum side length of the buffer. 
     
     
       7. The method for storing interpolated data of the plurality of non-integer points as claimed in  claim 1 , wherein the data of the integer points are from a reference frame of a macroblock. 
     
     
       8. The method for storing interpolated data of the plurality of non-integer points as claimed in  claim 7 , wherein the logical coordinates of the non-integer points are calculated according to a motion vector of the macroblock.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.