Steerable kernel for image interpolation
AssigneeCanon Kabushiki Kaisha
InventorAndrew Peter Bradley
Life of this patent
Estimating the term…
Abstract
A method of providing a representation of image data is disclosed. The method accesses a plurality of discrete sample values of the image data and determines an angle of orientation of the sample values. Kernel values for each of the discrete sample values are then calculated using one of a plurality of first kernels, depending upon the angle of orientation of the discrete sample value. The first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation. Finally, the kernel values are convolved with the discrete sample values to provide a representation of said image data.
Claims95
A method of providing a representation of image data, the method comprising the following steps:
- (i) accessing a plurality of discrete sample values of said image data;
- (ii) determining an angle of orientation of said sample values;
- (iii) calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- (iv) convolving said kernel values with said discrete sample values to provide a representation of said image data.
An apparatus for providing a representation of image data, the apparatus comprising:
- accessing means for accessing a plurality of discrete sample values of said image data;
- angle orientation determining means for determining an angle of orientation of said sample values;
- calculating means for calculating kernel values for each of said discrete sample values, using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- convolving means for convolving said kernel values with said discrete sample values to provide a representation of said image data.
A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of providing a representation of image data, said program comprising:
- code for accessing a plurality of discrete sample values of said image data;
- code for determining an angle of orientation of said sample values;
- code for calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- code for convolving said kernel values with said discrete sample values to provide a representation of said image data.
A method of providing a representation of image data, the method comprising the following steps:
- (i) accessing a plurality of discrete sample values of said image data;
- (ii) determining an angle of orientation of each said sample values;
- (iii) calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- (iv) convolving said kernel values with said discrete sample values to provide a representation of said image data, wherein said first kernels are of the form:
- h ( s x , s y ) θ = 0 = 1 2 { h ( ( s x ) c = 0.5 · h ( s y ) c = 0 } ( 3 ) h ( s x , s y ) θ = π / 2 = 1 2 { h ( s x ) c = 0 · h ( s y ) c = 0.5 ( 4 ) h ( s x , s y ) θ = π / 4 = 1 2 { h ( s x + s y 2 ) c = 0.5 · h ( s x - s y 2 ) c = 0 } ( 5 ) h ( s x , s y ) θ = 3 π / 4 = 1 2 { h ( s x + s y 2 ) c = 0 · h ( s x - s y 2 ) c = 0.5 } ( 6 )
- and wherein s=t/Δt and θ is the angle of orientation of the sample.
An apparatus for providing a representation of image data, said apparatus comprising:
- accessing means for accessing a plurality of discrete sample values of said image data;
- angle of orientation determining means for determining an angle of orientation of each said sample values;
- calculating means for calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- convolving means for convolving said kernel values with said discrete sample values to provide a representation of said image data, wherein said first kernels are of the form:
- h ( s x , s y ) θ = 0 = 1 2 { h ( ( s x ) c = 0.5 · h ( s y ) c = 0 } ( 3 ) h ( s x , s y ) θ = π / 2 = 1 2 { h ( s x ) c = 0 · h ( s y ) c = 0.5 ( 4 ) h ( s x , s y ) θ = π / 4 = 1 2 { h ( s x + s y 2 ) c = 0.5 · h ( s x - s y 2 ) c = 0 } ( 5 ) h ( s x , s y ) θ = 3 π / 4 = 1 2 { h ( s x + s y 2 ) c = 0 · h ( s x - s y 2 ) c = 0.5 } ( 6 )
- and wherein s=t/Δt and θ is the angle of orientation of the sample.
A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of providing a representation of image data, said program comprising:
- code for accessing a plurality of discrete sample values of said image data;
- code for determining an angle of orientation of each said sample values;
- code for calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- code for convolving said kernel values with said discrete sample values to provide a representation of said image data, wherein said first kernels are of the form:
- h ( s x , s y ) θ = 0 = 1 2 { h ( ( s x ) c = 0.5 · h ( s y ) c = 0 } ( 3 ) h ( s x , s y ) θ = π / 2 = 1 2 { h ( s x ) c = 0 · h ( s y ) c = 0.5 ( 4 ) h ( s x , s y ) θ = π / 4 = 1 2 { h ( s x + s y 2 ) c = 0.5 · h ( s x - s y 2 ) c = 0 } ( 5 ) h ( s x , s y ) θ = 3 π / 4 = 1 2 { h ( s x + s y 2 ) c = 0 · h ( s x - s y 2 ) c = 0.5 } ( 6 )
- and wherein s=t/Δt and θ is the angle of orientation of the sample.
A method of providing a representation of image data, the method comprising the following steps:
- (i) accessing a plurality of discrete sample values of said image data;
- (ii) determining an angle of orientation of each said sample values;
- (iii) calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- (iv) convolving said kernel values with said discrete sample values to provide a representation of said image data, wherein said first kernels are of the form:
- h ( s x , s y ) 0 ≤ θ ≤ π / 2 = 1 2 { h ( ( 1 - 2 θ / π ) s x + ( 2 θ / π ) s y ) c = 0.5 · h ( ( ( 2 θ / π ) s x + ( 2 θ / π - 1 ) s y ) w ( θ ) ) c = 0 } h ( s x , s y ) π / 2 < θ < π = 1 2 { h ( ( 2 θ / π - 1 ) s x + ( 2 θ / π - 2 ) s y ) c = 0.5 · h ( ( ( 2 θ / π - 2 ) s x + ( 1 - 2 θ / π ) s y ) w ( θ ) ) c = 0 } ,
- and wherein s=t/Δt and θ is the angle of orientation of the sample.
An apparatus for providing a representation of image data, said apparatus comprising:
- accessing means for accessing a plurality of discrete sample values of said image data;
- angle of orientation determining means for determining an angle of orientation of each said sample values;
- calculating means for calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- convolving means for convolving said kernel values with said discrete sample values to provide a representation of said image data, wherein said first kernels are of the form:
- h ( s x , s y ) 0 ≤ θ ≤ π / 2 = 1 2 { h ( ( 1 - 2 θ / π ) s x + ( 2 θ / π ) s y ) c = 0.5 · h ( ( ( 2 θ / π ) s x + ( 2 θ / π - 1 ) s y ) w ( θ ) ) c = 0 } h ( s x , s y ) π / 2 < θ < π = 1 2 { h ( ( 2 θ / π - 1 ) s x + ( 2 θ / π - 2 ) s y ) c = 0.5 · h ( ( ( 2 θ / π - 2 ) s x + ( 1 - 2 θ / π ) s y ) w ( θ ) ) c = 0 } ,
- and wherein s=t /Δt and θ is the angle of orientation of the sample.
A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of providing a representation of image data, said program comprising:
- code for accessing a plurality of discrete sample values of said image data;
- code for determining an angle of orientation of each said sample values;
- code for calculating kernel values for each of said discrete sample values using one of a plurality of first kernels depending upon the angle of orientation of said discrete sample value, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- code for convolving said kernel values with said discrete sample values to provide a representation of said image data, wherein said first kernels are of the form:
- h ( s x , s y ) 0 ≤ θ ≤ π / 2 = 1 2 { h ( ( 1 - 2 θ / π ) s x + ( 2 θ / π ) s y ) c = 0.5 · h ( ( ( 2 θ / π ) s x + ( 2 θ / π - 1 ) s y ) w ( θ ) ) c = 0 } h ( s x , s y ) π / 2 < θ < π = 1 2 { h ( ( 2 θ / π - 1 ) s x + ( 2 θ / π - 2 ) s y ) c = 0.5 · h ( ( ( 2 θ / π - 2 ) s x + ( 1 - 2 θ / π ) s y ) w ( θ ) ) c = 0 } ,
- and wherein s=t/Δt and θ is the angle of orientation of the sample.
A method of converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, the method comprising the following steps:
- (i) accessing said first set of data sample values;
- and
- (ii) performing the following operations for each data value of said second set;
- (a) determining an angle of orientation for each of said discrete sample values of said first set;
- (b) calculating kernel values for each of said discrete sample values of said first set, according to one of a plurality of first kernels depending upon the angle of orientation of each of said discrete sample values, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- (c) convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set.
An apparatus for converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, the method comprising the following steps:
- accessing means for accessing said first set of data sample values;
- and
- processing means for performing the following operations for each data value of said second set;
- (a) determining an angle of orientation for each of said discrete sample values of said first set;
- (b) calculating kernel values for each of said discrete sample values of said first set, according to one of a plurality of first kernels depending upon the angle of orientation of each of said discrete sample values, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- (c) convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set.
A computer readable medium for storing a program for an apparatus which processes data, said processing comprising a method of converting a first set of discrete data sample values of an image having a first sample rate to a second set of discrete data sample values of said image having a second sample rate, said program comprising:
- code for accessing said first set of data sample values;
- and
- code for performing the following operations for each data value of said second set;
- (a) determining an angle of orientation for each of said discrete sample values of said first set;
- (b) calculating kernel values for each of said discrete sample values of said first set, according to one of a plurality of first kernels depending upon the angle of orientation of each of said discrete sample values, wherein said first kernels are constructed by rotating a second kernel from a first angle of orientation to a second angle of orientation;
- and
- (c) convolving said kernel values with said discrete sample values of said first data set to provide a current data value of said second set.
Dependencies are inferred from the claim text.