IP Library Granted Patent US 9,648,318
Granted Patent B2
US 9,648,318 · App. 14/040,290 · Granted May 9, 2017

Performing residual prediction in video coding

Inventors: Ying Chen (San Diego, CA); Krishnakanth Rapaka (San Diego, CA); Marta Karczewicz (San Diego, CA); Xiang Li (San Diego, CA); Jianle Chen (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/00424H04N19/105H04N19/30H04N19/513H04N19/52H04N19/597
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 9,648,318
App. No.
14/040,290
Granted
May 9, 2017
Kind
B2
Abstract

In general, techniques are described for performing residual prediction in video coding. As one example, a device configured to code scalable or multi-view video data may comprise one or more processors configured to perform the techniques. The processors may determine a difference picture, for a current picture, based on a first reference picture in a same layer or view as the current picture and a decoded picture in a different layer or view as the current picture. The decoded picture may be in a same access unit as the first reference picture. The processors may perform bi-prediction based on the difference picture to code at least a portion of the current picture.

Claims (117)

1. A method of decoding scalable or multi-view video data, the method comprising:

determining a difference picture, for a current picture, by setting each pixel value of the difference picture to be a corresponding pixel value in the same pixel position of a first reference picture in a same layer or view as the current picture subtracted by a corresponding pixel value in the same pixel position of a decoded picture in a different layer or view as the current picture, wherein the decoded picture is in a same access unit as the first reference picture;

storing the difference picture; and

performing bi-prediction to predict a current block of the current picture from the difference picture and a second reference picture at a same layer or view as the current picture,

wherein performing the bi-prediction comprises:

applying explicit weight prediction for the current picture;

applying a first prediction weight to the difference picture; and

applying a second prediction weight to the second reference picture.

2. The method of claim 1 ,

wherein at least one of original values of pixels of the difference picture are less than zero,

wherein determining the difference picture comprises shifting the original values for each of the pixels of the difference picture to generate shifted values for each of the pixels that are greater than or equal to zero and to set pixel values of the difference picture so that the pixel values of the difference pixel belong to a same range and a same bit depth as the pixel values of the current picture, and

wherein the method further comprises, prior to performing the bi-prediction, shifting the shifted values for each of the pixels back to recover the original values for each of the pixels of the difference picture.

3. The method of claim 1 , wherein storing the difference picture comprises storing the difference picture to a first reference picture list, and

wherein the second reference picture is stored to a second reference picture list.

4. The method of claim 1 , further comprising, prior to performing the bi-prediction, applying the second prediction weight to the second reference picture, the second prediction weight being equal to one.

5. The method of claim 1 , wherein the first prediction weight for the difference picture is the same as the second prediction weight for the second reference picture.

6. The method of claim 1 , wherein the first prediction weight for the difference picture is equal to half of the second prediction weight for the second reference picture.

7. The method of claim 1 , wherein determining the difference picture further comprises:

multiplying the first reference picture by a weight equal to two to generate a weighted first reference picture; and

determining the difference picture, for the current picture, based on the weighted first reference picture and the decoded picture, wherein each pixel value of the difference picture is set to be the corresponding pixel value in the same pixel position of the weighted first reference picture subtracted by the corresponding pixel value in the same pixel position of the decoded picture.

8. The method of claim 1 ,

wherein storing the difference picture comprises storing two or more copies of the difference picture or a derivation thereof to a first reference picture list,

wherein the second reference picture is stored to a second reference picture list, and

wherein performing bi-prediction comprises performing bi-prediction for the current block of the current picture based on one of the two or more multiple copies of the difference picture stored to the first reference picture list and the second reference picture at the same layer or view as the current picture stored to the second reference picture list.

9. The method of claim 1 , further comprising determining motion information for the difference picture to be equivalent to motion information of the first reference picture of the current picture when temporal motion vector prediction is from the difference picture.

10. A method of encoding scalable or multi-view video data, the method comprising:

determining a difference picture, for a current picture, by setting each pixel value of the difference picture to be a corresponding pixel value in the same pixel position of a first reference picture in a same layer or view as the current picture subtracted by a corresponding pixel value in the same pixel position of a decoded picture in a different layer or view as the current picture, wherein the decoded picture is in a same access unit as the first reference picture; and

storing the difference picture; and

performing bi-prediction to predict a current block of the current picture from the difference picture and a second reference picture at a same layer or view as the current picture,

wherein performing the bi-prediction comprises:

applying explicit weight prediction for the current picture;

applying a first prediction weight to the difference picture; and

applying a second prediction weight to the second reference picture.

11. The method of claim 10 ,

wherein at least one of original values of pixels of the difference picture are less than zero,

wherein determining the difference picture comprises shifting the original values for each of the pixels of the difference picture to generate shifted values for each of the pixels that are greater than or equal to zero and to set pixel values of the difference picture so that the pixel values of the difference pixel belong to a same range and a same bit depth as the pixel values of the current picture, and

wherein the method further comprises, prior to performing the bi-prediction, shifting the shifted values for each of the pixels back to recover the original values for each of the pixels of the difference picture.

12. The method of claim 10 ,

wherein storing the difference picture comprises storing the difference picture to a first reference picture list,

wherein the second reference picture is stored to a second reference picture list.

13. The method of claim 10 , further comprising, prior to performing the bi-prediction, applying the second prediction weight to the second reference picture, the second prediction weight being equal to one.

14. The method of claim 10 , wherein the first prediction weight for the difference picture is the same as the second prediction weight for the second reference picture.

15. The method of claim 10 , wherein the first prediction weight for the difference picture is equal to half of the second prediction weight for the second reference picture.

16. The method of claim 10 , wherein determining the difference picture further comprises:

multiplying the first reference picture by a weight equal to two to generate a weighted first reference picture; and

determining the difference picture, for the current picture, based on the weighted first reference picture and the decoded picture, wherein each pixel value of the difference picture is set to be the corresponding pixel value in the same pixel position of the weighted first reference picture subtracted by the corresponding pixel value in the same pixel position of the decoded picture.

17. The method of claim 10 ,

wherein storing the difference picture comprises storing two or more copies of the difference picture or a derivation thereof to a first reference picture list,

wherein the second reference picture is stored to a second reference picture list, and

wherein performing bi-prediction comprises performing bi-prediction for the current block of the current picture based on one of the two or more multiple copies of the difference picture stored to the first reference picture list and the second reference picture at the same layer or view as the current picture stored to the second reference picture list.

18. The method of claim 10 , further comprising determining motion information for the difference picture to be equivalent to motion information of the first reference picture of the current picture when temporal motion vector prediction is from the difference picture.

19. A device configured to code scalable or multi-view video data, the device comprising:

one or more processors configured to

determine a difference picture, for a current picture, by setting each pixel value of the difference picture to be a corresponding pixel value in the same pixel position of a first reference picture in a same layer or view as the current picture subtracted by a corresponding pixel value in the same pixel position of a decoded picture in a different layer or view as the current picture, wherein the decoded picture is in a same access unit as the first reference picture;

store the difference picture; and

perform bi-prediction to predict a current block of the current picture from the difference picture and a second reference picture at a same layer or view as the current picture,

wherein the one or more processors are configured to perform the bi-prediction by at least in part:

applying explicit weight prediction for the current picture;

applying a first prediction weight to the difference picture; and

applying a second prediction weight to the second reference picture; and

a memory configured to store the difference picture.

20. The device of claim 19 ,

wherein at least one of original values of pixels of the difference picture are less than zero,

wherein the one or more processors are further configured to, when determining the difference picture, shift the original values for each of the pixels of the difference picture to generate shifted values for each of the pixels that are greater than or equal to zero and to set pixel values of the difference picture so that the pixel values of the difference pixel belong to a same range and a same bit depth as the pixel values of the current picture, and

wherein the one or more processors are further configured to, prior to performing the bi-prediction, shift the shifted values for each of the pixels back to recover the original values for each of the pixels of the difference picture.

21. The device of claim 19 ,

wherein the one or more processors are configured to store the difference picture to a first reference picture list, and

wherein the one or more processors are further configured to store the second reference picture to a second reference picture list.

22. The device of claim 19 , wherein the one or more processors are further configured to, prior to performing the bi-prediction, apply the second prediction weight to the second reference picture, the second prediction weight being equal to one.

23. The device of claim 19 , wherein the first prediction weight for the difference picture is the same as the second prediction weight for the second reference picture.

24. The device of claim 19 , wherein the first prediction weight for the difference picture is equal to half of the second prediction weight for the second reference picture.

25. The device of claim 19 , wherein the one or more processors are further configured to, when determining the difference picture, multiply the first reference picture by a weight equal to two to generate a weighted first reference picture, and determine the difference picture, for the current picture, based on the weighted first reference picture and the decoded picture, wherein each pixel value of the difference picture is set to be the corresponding pixel value in the same pixel position of the weighted first reference picture subtracted by the corresponding pixel value in the same pixel position of the decoded picture.

26. The device of claim 19 ,

wherein the one or more processors are configured to store two or more copies of the difference picture or a derivation thereof to a first reference picture list, and

wherein the one or more processors are further configured to store the second reference picture list to a second reference picture list, and

wherein the one or more processors are configured to perform bi-prediction for the current block of the current picture based on one of the two or more multiple copies of the difference picture stored to the first reference picture list and the second reference picture at the same layer or view as the current picture stored to the second reference picture list.

27. The device of claim 19 , wherein the one or more processors are further configured to determine motion information for the difference picture to be equivalent to motion information of the first reference picture of the current picture when temporal motion vector prediction is from the difference picture.

28. A device configured to code scalable or multi-view video data, the device comprising:

means for determining a difference picture, for a current picture, by setting each pixel value of the difference picture to be a corresponding pixel value in the same pixel position of a first reference picture in a same layer or view as the current picture subtracted by a corresponding pixel value in the same pixel position of a decoded picture in a different layer or view as the current picture, wherein the decoded picture is in a same access unit as the first reference picture;

means for storing the difference picture; and

means for performing bi-prediction to predict a current block of the current picture from the difference picture and a second reference picture at a same layer or view as the current picture,

wherein the means for performing the bi-prediction comprises:

means for applying explicit weight prediction for the current picture;

means for applying a first prediction weight to the difference picture; and

means for applying a second prediction weight to the second reference picture.

29. The device of claim 28 ,

wherein at least one of original values of pixels of the difference picture are less than zero,

wherein the means for determining the difference picture comprises means for shifting the original values for each of the pixels of the difference picture to generate shifted values for each of the pixels that are greater than or equal to zero and to set pixel values of the difference picture so that the pixel values of the difference pixel belong to a same range and a same bit depth as the pixel values of the current picture, and

wherein the device further comprises, prior to performing the bi-prediction, means for shifting the shifted values for each of the pixels back to recover the original values for each of the pixels of the difference picture.

30. The device of claim 28 ,

wherein the means for storing comprises means for storing the difference picture to a first reference picture list, and

wherein the second reference picture is stored to a second reference picture list.

31. The device of claim 28 , further comprising, prior to performing the bi-prediction, means for applying the second prediction weight to the second reference picture, the second prediction weight being equal to one.

32. The device of claim 28 , wherein the first prediction weight for the difference picture is the same as the second prediction weight for the second reference picture or the first prediction weight for the difference picture is equal to half of the second prediction weight for the second reference picture.

33. The device of claim 28 , wherein the means for determining the difference picture further comprises:

means for multiplying the first reference picture by a weight equal to two to generate a weighted first reference picture; and

means for determining the difference picture, for the current picture, based on the weighted first reference picture and the decoded picture, wherein each pixel value of the difference picture is set to be the corresponding pixel value in the same pixel position of the weighted first reference picture subtracted by the corresponding pixel value in the same pixel position of the decoded picture.

34. A non-transitory computer-readable storage medium having storing thereon instructions that, when executed, cause one or more processors of a device configured to code scalable or multi-view video data to:

determine a difference picture, for a current picture, by setting each pixel value of the difference picture to be a corresponding pixel value in the same pixel position of a first reference picture in a same layer or view as the current picture subtracted by a corresponding pixel value in the same pixel position of a decoded picture in a different layer or view as the current picture, wherein the decoded picture is in a same access unit as the first reference picture;

store the difference picture; and

perform bi-prediction to predict a current block of the current picture from the difference picture and a second reference picture at a same layer or view as the current picture,

wherein the one or more processors are configured to perform the bi-prediction by at least in part:

applying explicit weight prediction for the current picture;

applying a first prediction weight to the difference picture; and

applying a second prediction weight to the second reference picture.

35. The non-transitory computer-readable storage medium of claim 34 ,

wherein at least one of original values of pixels of the difference picture are less than zero,

wherein the instruction that when executed cause the one or more processors to determine the difference picture comprise instructions that when executed cause the one or more processors to shift the original values for each of the pixels of the difference picture to generate shifted values for each of the pixels that are greater than or equal to zero and to set pixel values of the difference picture so that the pixel values of the difference pixel belong to a same range and a same bit depth as the pixel values of the current picture, and

wherein the non-transitory computer-readable storage medium further comprises instructions that when executed cause the one or more processors to, prior to performing the bi-prediction, shift the shifted values for each of the pixels back to recover the original values for each of the pixels of the difference picture.

36. The non-transitory computer-readable storage medium of claim 34 , further comprising instructions that when executed cause the one or more processors to:

store the difference picture to a first reference picture list,

wherein the second reference picture is stored to a second reference picture list.

37. The non-transitory computer-readable storage medium of claim 34 , further comprising instructions that when executed cause the one or more processors to, prior to performing the bi-prediction, apply the second prediction weight to the second reference picture, the second prediction weight being equal to one.

38. The non-transitory computer-readable storage medium of claim 34 , wherein the first prediction weight for the difference picture is the same as the second prediction weight for the second reference picture or the first prediction weight for the difference picture is equal to half of the second prediction weight for the second reference picture.

39. The non-transitory computer-readable storage medium of claim 34 , wherein the instruction that when executed cause the one or more processors to determine the difference picture comprise instructions that when executed cause the one or more processors to:

multiply the first reference picture by a weight equal to two to generate a weighted first reference picture; and

determine the difference picture, for the current picture, based on the weighted first reference picture and the decoded picture, wherein each pixel value of the difference picture is set to be the corresponding pixel value in the same pixel position of the weighted first reference picture subtracted by the corresponding pixel value in the same pixel position of the decoded picture.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2013
From: CHEN, YING; RAPAKA, KRISHNAKANTH; KARCZEWICZ, MARTA; LI, XIANG; CHEN, JIANLE
To: QUALCOMM INCORPORATED
Reel/Frame 031492/0903 →
Continuity (3)
Provisional Application 61708011 · Sep 30, 2012
Provisional Application 61749874 · Jan 7, 2013
Related Publication 20140105299A1 · Apr 17, 2014