IP Library Granted Patent US 7,956,930
Granted Patent B2
US 7,956,930 · App. 11/650,531 · Granted Jun 7, 2011

Resampling and picture resizing operations for multi-resolution video coding and decoding

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,956,930
App. No.
11/650,531
Granted
Jun 7, 2011
Kind
B2
Abstract

Techniques and tools for high accuracy position calculation for picture resizing in applications such as spatially-scalable video coding and decoding are described. In one aspect, resampling of a video picture is performed according to a resampling scale factor. The resampling comprises computation of a sample value at a position i,j in a resampled array. The computation includes computing a derived horizontal or vertical sub-sample position x or y in a manner that involves approximating a value in part by multiplying a 2 n value by an inverse (approximate or exact) of the upsampling scale factor. The approximating can be a rounding or some other kind of approximating, such as a ceiling or floor function that approximates to a nearby integer. The sample value is interpolated using a filter.

Claims (42)

1. A method of resampling for multi-resolution video coding or decoding using a computing device that implements a video encoder or decoder, the computing device including a processing unit and memory, the method comprising:

with the computing device that implements the video encoder or decoder, performing resampling of image data according to a horizontal resampling scale factor, wherein the resampling comprises computation of a sample value at horizontal position i in a resampled array, and wherein the computation comprises:

computing a derived horizontal sub-sample position x in a manner that is mathematically equivalent in result to the formula x=(i*C+D)>>S, wherein C is derived by approximating a value equivalent to 2 S+F multiplied by an inverse of the horizontal resampling scale factor, and wherein F, C, D, and S are integer values.

2. A method of resampling for multi-resolution video coding or decoding using a computing device that implements a video encoder or decoder, the computing device including a processing unit and memory, the method comprising;

with the computing device that implements the video encoder or decoder, performing resampling of image data according to a vertical resampling scale factor, wherein the resampling comprises computation of a sample value at vertical position j in a resampled array, and wherein the computation comprises:

computing a derived vertical sub-sample position y in a manner that is mathematically equivalent in result to the formula y=(j*C+D)>>S, wherein C is derived by approximating a value equivalent to 2 S+F multiplied by an inverse of the vertical resampling scale factor, and wherein F, C, D, and S are integer values.

3. A method of upsampling for multi-resolution video coding or decoding using a computing device that implements a video encoder or decoder, the computing device including a processing unit and memory, the method comprising:

with the computing device that implements the video encoder or decoder, performing upsampling of a video picture according to a horizontal upsampling scale factor and a vertical upsampling scale factor, wherein the upsampling comprises computation of an interpolated sample value at horizontal position i and vertical position j in an upsampled array, and wherein the computation comprises:

computing a derived horizontal sub-sample position x in a manner that is mathematically equivalent in result to the formula x=(i*C+D)>>S, wherein C is derived by approximating a value equivalent to 2 S+F multiplied by an inverse of the horizontal upsampling scale factor, and wherein F, C, D, and S are integer values;

computing a derived vertical sub-sample position y in a manner that is mathematically equivalent in result to the formula y=(j*C+D)>>S, wherein C is derived by approximating a value equivalent to 2 S+F multiplied by an inverse of the vertical upsampling scale factor; and

interpolating a sample value at the derived sub-sample position x, y.

4. The method of claim 3 wherein the computation further comprises:

selecting a horizontal resampling filter based on F least significant bits of the derived horizontal sub-sample position x; and

selecting lower resolution samples to be filtered based on the remaining more significant bits of the derived horizontal sub-sample position x; and

wherein interpolating a sample value at the derived sub-sample position x, y comprises:

interpolating the sample value based on the selected lower resolution samples and using the selected horizontal resampling filter.

5. The method of claim 4 wherein a horizontal resampling filter applied for at least one value of the F least significant bits of the derived horizontal sub-sample position x is a finite impulse response filter with more than two non-zero filter tap values.

6. The method of claim 4 , wherein a horizontal resampling filter applied for all values other than 0 for the F least significant digits of the derived horizontal sub-sample position x is a finite impulse response filter with four non-zero filter tap values.

7. The method of claim 3 wherein the computation further comprises:

selecting a vertical resampling filter based on F least significant bits of the derived vertical sub-sample position y; and

selecting lower resolution samples to be filtered based on the remaining more significant bits of the derived vertical sub-sample position y; and

wherein interpolating a sample value at the derived sub-sample position x, y comprises:

interpolating the sample value based on the selected lower resolution samples and using the selected vertical resampling filter.

8. The method of claim 7 wherein a vertical resampling filter applied for at least one value of the F least significant bits of the derived vertical sub-sample position y is a finite impulse response filter with more than two non-zero filter tap values.

9. The method of claim 7 , wherein a vertical resampling filter applied for all values other than 0 for the F least significant digits of the derived vertical sub-sample position y is a finite impulse response filter with four non-zero filter tap values.

10. The method of claim 3 wherein the upsampling is performed using one or more Mitchell-Netravalli resampling filters.

11. The method of claim 3 wherein the upsampling is performed using one or more Catmull-Rom resampling filters.

12. The method of claim 3 wherein at least one of the vertical or horizontal values of F, C, D, or S differs based at least in part on whether the sample value is a chroma sample value or a luma sample value.

13. The method of claim 3 wherein a manner that is mathematically equivalent in result to the formula x=(i*C+D)>>S comprises an implementation of the formula x=((i*C+D)>>S)+E,where E is an offset.

14. The method of claim 3 wherein the upsampling is performed using one or more resampling filters having filter tap values controlled by a bandwidth control parameter.

15. The method of claim 3 wherein the upsampling is performed in a layered spatially-scalable video decoding process.

16. The method of claim 3 wherein the upsampling is performed in a layered spatially-scalable video encoding process.

17. The method of claim 3 wherein the upsampling is performed for reference picture resampling.

18. The method of claim 3 wherein the value of F is equal to 4 and the value of S is equal to 12.

19. The method of claim 3 wherein the approximating comprises rounding.

20. The method of claim 3 wherein the inverse is an approximate inverse.

21. The method of claim 3 wherein at least one of the F, C, D, and S integer values are different for the horizontal computing than for the vertical computing.

22. A method of upsampling for multi-resolution video coding or decoding using a computing device that implements a video encoder or decoder, the computing device including a processing unit and memory, the method comprising:

with the computing device that implements the video encoder or decoder, performing upsampling of a video picture according to an upsampling scale factor, wherein the upsampling comprises computation of an interpolated sample value at horizontal position i and vertical position j in an upsampled array, and wherein the computation comprises:

computing a derived horizontal sub-sample position x in a manner mathematically equivalent in result to the formula x=((2 J *i+Q)*C+D)>>S, wherein C is derived by approximating a value equivalent to 2 S+F multiplied by an inverse of the upsampling scale factor, and wherein F, C, D, S, J and Q are integers;

computing a derived vertical sub-sample position y in a manner that is mathematically equivalent in result to the formula y=((2 J *j+Q)*C+D)>>S; and

interpolating a sample value at the derived sub-sample position x, y.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2007
From: SULLIVAN, GARY J.
To: MICROSOFT CORPORATION
Reel/Frame 018931/0202 →