IP Library Granted Patent US 8,971,412
Granted Patent B2
US 8,971,412 · App. 12/420,256 · Granted Mar 3, 2015

Advanced interpolation techniques for motion compensation in video coding

Inventors: Yan Ye (San Diego, CA); Peisong Chen (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/00139H04N19/00066H04N19/00739H04N19/00357H04N19/00175H04N19/00303H04N19/00896
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 8,971,412
App. No.
12/420,256
Granted
Mar 3, 2015
Kind
B2
Abstract

This disclosure describes various interpolation techniques performed by an encoder and a decoder during the motion compensation process of video coding. In one example, an encoder interpolates pixel values of reference video data based on a plurality of different pre-defined interpolation filters. In this example, the decoder receives a syntax element that identifies an interpolation filter, and interpolates pixel values of reference video data based on the interpolation filter identified by the syntax element. In another example, a method of interpolating predictive video data includes generating half-pixel values based on integer pixel values, rounding the half-pixel values to generate half-pixel interpolated values, storing the half-pixel values as non-rounded versions of the half-pixel values, and generating quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values.

Claims (77)

1. A method of interpolating video data to generate predictive video data for video coding, the method comprising:

generating half-pixel values based on integer pixel values;

rounding the half-pixel values to generate half-pixel interpolated values, wherein a first set of predictive video data comprises the half-pixel interpolated values generated by rounding the half-pixel values;

storing the half-pixel values as non-rounded versions of the half-pixel values; and

generating quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values, wherein a second set of predictive video data that is different than the first set of predictive video data comprises the quarter-pixel values generated based on the non-rounded versions of the half-pixel values and the integer pixel values;

generating a first rounded version of another half-pixel value based on a plurality of the non-rounded versions of the half-pixel values;

rounding the first rounded version of the another half-pixel value to generate a second rounded version of the another half-pixel value, wherein the first set of predictive video data further comprises the second rounded version of the another half-pixel value generated by rounding the first rounded version of the another half-pixel value; and

generating additional quarter-pixel values based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values, wherein the second set of predictive video data further comprises the additional quarter-pixel values generated based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values.

2. The method of claim 1 , wherein every one of the values can be stored within a sixteen-bit data structure, and wherein generating the first rounded version of the another half-pixel value comprises generating the first rounded version of the another half-pixel value so that the first rounded version of the another half-pixel value can be stored within the sixteen-bit data structure.

3. The method of claim 1 , further comprising:

encoding one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

4. The method of claim 1 , further comprising:

decoding one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

5. The method of claim 1 , further comprising using one or more of the first set of predictive video data and the second set of predictive video data for motion compensation.

6. The method of claim 1 , wherein generating the first rounded version of the another half-pixel comprises generating the first rounded version of the another half-pixel value based on clipped versions of a first plurality of the non-rounded versions of the half-pixel values and non-clipped versions of a second plurality of the non-rounded versions of the half-pixel values.

7. An apparatus that interpolates video data to generate predictive video data for video coding, wherein the apparatus includes a motion compensation unit configured to:

generate half-pixel values based on integer pixel values;

round the half-pixel values to generate half-pixel interpolated values, wherein a first set of predictive video data comprises the half-pixel interpolated values generated by rounding the half-pixel values;

store the half-pixel values as non-rounded versions of the half-pixel values;

generate quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values, wherein a second set of predictive video data that is different than the first set of predictive video data comprises the quarter-pixel values generated based on the non-rounded versions of the half-pixel values and the integer pixel values;

generate a first rounded version of another half-pixel value based on a plurality of the non-rounded versions of the half-pixel values;

round the first rounded version of the another half-pixel value to generate a second rounded version of the another half-pixel value, wherein the first set of predictive video data further comprises the second rounded version of the another half-pixel value generated by rounding the first rounded version of the another half-pixel value; and

generate additional quarter-pixel values based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values, wherein the second set of predictive video data further comprises the additional quarter-pixel values generated based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values.

8. The apparatus of claim 7 , wherein every one of the values can be stored within a sixteen-bit data structure, and wherein the motion compensation unit is configured to generate the first rounded version of the another half-pixel value so that the first rounded version of the another half-pixel value can be stored within the sixteen-bit data structure.

9. The apparatus of claim 7 , wherein the apparatus comprises a video encoder that includes the motion compensation unit, wherein the video encoder is configured to:

predictively encode one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

10. The apparatus of claim 7 , wherein the apparatus comprises a video decoder that includes the motion compensation unit, wherein the video decoder is configured to:

predictively decode one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

11. The apparatus of claim 7 , wherein the apparatus comprises an integrated circuit.

12. The apparatus of claim 7 , wherein the apparatus comprises a microprocessor.

13. The apparatus of claim 7 , wherein the motion compensation unit is further configured to use one or more of the first set of predictive video data and the second set of predictive video data for motion compensation.

14. The apparatus of claim 7 , wherein the motion compensation unit is configured to generate the first rounded version of the another half-pixel based on clipped versions of a first plurality of the non-rounded versions of the half-pixel values and non-clipped versions of a second plurality of the non-rounded versions of the half-pixel values.

15. A non-transitory computer-readable storage medium comprising instructions that upon execution cause a device to interpolate video data to generate predictive video data for video coding, wherein the instructions cause the device to:

generate half-pixel values based on integer pixel values;

round the half-pixel values to generate half-pixel interpolated values, wherein a first set of predictive video data comprises the half-pixel interpolated values generated by rounding the half-pixel values;

store the half-pixel values as non-rounded versions of the half-pixel values; and

generate quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values, wherein a second set of predictive video data that is different than the first set of predictive video data comprises the quarter-pixel values generated based on the non-rounded versions of the half-pixel values and the integer pixel values;

generate a first rounded version of another half-pixel value based on a plurality of the non-rounded versions of the half-pixel values;

round the first rounded version of the another half-pixel value to generate a second rounded version of the another half-pixel value, wherein the first set of predictive video data further comprises the second rounded version of the another half-pixel value generated by rounding the first rounded version of the another half-pixel value; and

generate additional quarter-pixel values based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values, wherein the second set of predictive video data further comprises the additional quarter-pixel values generated based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values.

16. The non-transitory computer-readable storage medium of claim 15 , wherein every one of the values can be stored within a sixteen-bit data structure, and wherein the instructions that cause the device to generate the first rounded version of the another half-pixel value comprise instructions that cause the device to generate the first rounded version of the another half-pixel value so that the first rounded version of the another half-pixel value can be stored within the sixteen-bit data structure.

17. The non-transitory computer-readable storage medium of claim 15 , further comprising instructions that upon execution cause the device to:

encode one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

18. The non-transitory computer-readable storage medium of claim 15 , further comprising instructions that upon execution cause the device to:

decode one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

19. The non-transitory computer-readable storage medium of claim 15 , further comprising instructions that upon execution cause the device to use one or more of the first predictive video data and the second predictive video data for motion compensation.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions that cause the device to generate the first rounded version of the another half-pixel value comprise instructions that cause the device to generate the first rounded version of the another half-pixel value based on clipped versions of a first plurality of the non-rounded versions of the half-pixel values and non-clipped versions of a second plurality of the non-rounded versions of the half-pixel values.

21. A device that interpolates video data to generate predictive video data for video coding, the device comprising:

means for generating half-pixel values based on integer pixel values;

means for rounding the half-pixel values to generate half-pixel interpolated values, wherein a first set of predictive video data comprises the half-pixel interpolated values generated by rounding the half-pixel values;

means for storing the half-pixel values as non-rounded versions of the half-pixel values; and

means for generating quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values, wherein a second set of predictive video data that is different than the first set of predictive video data comprises the quarter-pixel values generated based on the non-rounded versions of the half-pixel values and the integer pixel values;

means for generating a first rounded version of another half-pixel value based on a plurality of the non-rounded versions of the half-pixel values;

means for rounding the first rounded version of the another half-pixel value to generate a second rounded version of the another half-pixel value, wherein the first set of predictive video data further comprises the second rounded version of the another half-pixel value generated by rounding the first rounded version of the another half-pixel value; and

means for generating additional quarter-pixel values based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values, wherein the second set of predictive video data further comprises the additional quarter-pixel values generated based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values.

22. The device of claim 21 , wherein every one of the values can be stored within a sixteen-bit data structure, and wherein the means for generating the first rounded version of the another half-pixel value comprise means for generating the first rounded version of the another half-pixel value so that the first rounded version of the another half-pixel value can be stored within the sixteen-bit data structure.

23. The device of claim 21 , further comprising:

means for encoding one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

24. The device of claim 21 , further comprising:

means for decoding one or more video blocks based on the integer pixel values, the half-pixel values and/or the quarter-pixel values.

25. The device of claim 21 , further comprising means for using one or more of the first predictive video data and the second predictive video data for motion compensation.

26. The device of claim 21 , wherein the means for generating the first rounded version of the another half-pixel value comprise means for generating the first rounded version of the another half-pixel value based on clipped versions of a first plurality of the non-rounded versions of the half-pixel values and non-clipped versions of a second plurality of the non-rounded versions of the half-pixel values.

27. A device that encodes video data, the device comprising:

a video encoder including a motion compensation unit configured to encode the video data, wherein to encode the video data, the motion compensation unit is configured to generate half-pixel values based on integer pixel values, round the half-pixel values to generate half-pixel interpolated values, wherein a first set of predictive video data comprises the half-pixel interpolated values generated by rounding the half-pixel values, store the half-pixel values as non-rounded versions of the half-pixel values, and generate quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values, wherein a second set of predictive video data that is different than the first set of predictive video data comprises the quarter-pixel values generated based on the non-rounded versions of the half-pixel values and the integer pixel values, generate a first rounded version of another half-pixel value based on a plurality of the non-rounded versions of the half-pixel values, round the first rounded version of the another half-pixel value to generate a second rounded version of the another half-pixel value, wherein the first set of predictive video data further comprises the second rounded version of the another half-pixel value generated by rounding the first rounded version of the another half-pixel value, and generate additional quarter-pixel values based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values, wherein the second set of predictive video data further comprises the additional quarter-pixel values generated based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values; and

a wireless transmitter configured to transmit the video data encoded by the motion compensation unit to another device.

28. The device of claim 27 , wherein the device comprises a wireless communication handset.

29. A device that decodes video data, the device comprising:

a wireless receiver configured to receive the video data; and

a video decoder including a motion compensation unit configured to decode the video data, wherein to decode the video data, the motion compensation unit is configured to:

generate half-pixel values based on integer pixel values;

round the half-pixel values to generate half-pixel interpolated values, wherein a first set of predictive video data comprises the half-pixel interpolated values generated by rounding the half-pixel values;

store the half-pixel values as non-rounded versions of the half-pixel values; and

generate quarter-pixel values based on the non-rounded versions of the half-pixel values and the integer pixel values, wherein a second set of predictive video data that is different than the first set of predictive video data comprises the quarter-pixel values generated based on the non-rounded versions of the half-pixel values and the integer pixel values;

generate a first rounded version of another half-pixel value based on a plurality of the non-rounded versions of the half-pixel values;

round the first rounded version of the another half-pixel value to generate a second rounded version of the another half-pixel value, wherein the first set of predictive video data further comprises the second rounded version of the another half-pixel value generated by rounding the first rounded version of the another half-pixel value; and

generate additional quarter-pixel values based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values, wherein the second set of predictive video data further comprises the additional quarter-pixel values generated based on the first rounded version of the another half-pixel value and the non-rounded versions of the half-pixel values.

30. The device of claim 29 , wherein the device comprises a wireless communication handset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2009
From: YE, YAN; CHEN, PEISONG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 022521/0963 →
Continuity (4)
Provisional Application 61044023 · Apr 10, 2008
Provisional Application 61044240 · Apr 11, 2008
Provisional Application 61057373 · May 30, 2008
Related Publication 20090257503A1 · Oct 15, 2009