IP Library Granted Patent US 9,648,332
Granted Patent B2
US 9,648,332 · App. 14/524,601 · Granted May 9, 2017

Adaptive inter-color component residual prediction

Inventors: Woo-Shik Kim (San Diego, CA); Rajan Laxman Joshi (San Diego, CA); Wei Pu (San Diego, CA); Joel Sole Rojals (La Jolla, CA); Jianle Chen (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/186H04N19/105H04N19/136H04N19/146H04N19/176
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,332
App. No.
14/524,601
Granted
May 9, 2017
Kind
B2
Abstract

A device for decoding video data includes a memory configured to store video data, and at least one processor. The at least one processor is configured to: determine a first bit-depth of luma residual samples for a block of video data, determine a second bit-depth of predicted chroma residual samples for the block of video data, adjust the luma residual samples based on the first bit-depth and the second bit-depth to produce bit-depth adjusted luma residual samples, determine chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the predicted chroma residual samples, and decode the block of video data based on the luma residual samples and the chroma residual samples.

Claims (114)

1. A method of decoding video data, the method comprising:

determining a first bit-depth of luma residual samples for a block of video data;

determining a second bit-depth of predicted chroma residual samples for the block of video data;

determining a bit-depth difference between the first bit-depth of the luma residual samples and the second bit-depth of the predicted chroma residual samples;

adjusting the luma residual samples based on the bit-depth difference to produce bit-depth adjusted luma residual samples having a bit-depth that matches the second bit-depth of the predicted chroma residual samples;

determining chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the predicted chroma residual samples; and

decoding the block of video data based on the luma residual samples and the chroma residual samples.

2. The method of claim 1 , wherein adjusting the luma residual samples comprises performing at least one shift operation on the luma residual samples based on the bit-depth difference.

3. The method of claim 2 , wherein performing the at least one shift operation on the luma residual samples comprises arithmetically shifting the luma residual samples based on the bit-depth difference.

4. The method of claim 1 , wherein determining the bit-depth difference comprises decoding the bit-depth difference.

5. The method of claim 1 , wherein, based on the first bit-depth being greater than the second bit-depth and the bit-depth difference being greater than zero, adjusting the luma residual samples comprises right-shifting the luma residual samples by the bit-depth difference.

6. The method of claim 1 , wherein, based on the first bit-depth being less than the second bit-depth and the bit-depth difference being less than zero, adjusting the luma residual samples comprises left-shifting the luma residual samples by the bit-depth difference.

7. The method of claim 1 , wherein adjusting the luma residual samples to produce the bit-depth adjusted luma residual samples comprises:

clipping the bit-depth adjusted luma residual samples to be within a range, wherein a maximum value of the range is based on a positive value of a variable, and wherein a minimum value of the range is based on a negative value of the variable.

8. The method of claim 1 , wherein determining the chroma residual samples comprises:

adding the predicted chroma residual samples to the bit-depth adjusted luma residual samples to determine the chroma residual samples.

9. The method of claim 1 , wherein determining the chroma residual samples comprises:

multiplying the bit-depth adjusted luma residual samples by a scale factor to determine scaled luma residual samples; and

adding the predicted chroma residual samples to the scaled luma residual samples to determine the chroma residual samples.

10. The method of claim 9 , further comprising decoding the scale factor.

11. A method of encoding video data, the method comprising:

determining a first bit-depth of luma residual samples for a block of video data;

determining a second bit-depth of chroma residual samples for the block of video data;

determining a bit-depth difference between the first bit-depth of the luma residual samples and the second bit-depth of the chroma residual samples;

adjusting the luma residual samples based on the bit-depth difference to produce bit-depth adjusted luma residual samples having a bit-depth that matches the second bit-depth of the chroma residual samples;

determining predicted chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the chroma residual samples; and

encoding the block of video data based on the luma residual samples and the predicted chroma residual samples.

12. The method of claim 11 , wherein adjusting the luma residual samples comprises performing at least one shift operation on the luma residual samples based on the bit-depth difference.

13. The method of claim 12 , wherein performing the at least one shift operation on the luma residual samples comprises arithmetically shifting the luma residual samples based on the bit-depth difference.

14. The method of claim 11 , further comprising encoding the bit-depth difference.

15. The method of claim 11 , wherein, based on the first bit-depth being greater than the second bit-depth and the bit-depth difference being greater than zero, adjusting the luma residual samples comprises right-shifting the luma residual samples by the bit-depth difference.

16. The method of claim 11 , wherein, based on the first bit-depth being less than the second bit-depth and the bit-depth difference being less than zero, adjusting the luma residual samples comprises left-shifting the luma residual samples by the bit-depth difference.

17. The method of claim 11 , wherein adjusting the luma residual samples to produce the bit-depth adjusted luma residual samples comprises:

clipping the scaled luma residual samples to be within a range, wherein a maximum value of the range is based on a positive value of a variable, and wherein a minimum value of the range is based on a negative value of the variable.

18. The method of claim 11 , wherein determining the predicted chroma residual samples comprises:

subtracting the chroma residual samples from the bit-depth adjusted luma residual samples to determine the predicted chroma residual samples.

19. The method of claim 11 , wherein determining the predicted chroma residual samples further comprises:

multiplying the bit-depth adjusted luma residual samples by a scale factor to produce scaled luma residual samples; and

subtracting the chroma residual samples from the bit-depth adjusted luma residual samples to determine the predicted chroma residual samples.

20. The method of claim 19 , further comprising encoding the scale factor.

21. A device for decoding video data, the device comprising:

a memory configured to store video data; and

at least one processor in communication with the memory, the at least one processor being configured to:

determine a first bit-depth of luma residual samples for a block of video data stored in the memory;

determine a second bit-depth of predicted chroma residual samples for the block of video data stored in the memory;

determine a bit-depth difference between the first bit-depth of the luma residual samples and the second bit-depth of the predicted chroma residual samples;

adjust the luma residual samples based on the bit-depth difference to produce bit-depth adjusted luma residual samples having a bit-depth that matches the second bit-depth of the predicted chroma residual samples;

determine chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the predicted chroma residual samples; and

decode the block of video data based on the luma residual samples and the chroma residual samples.

22. The device of claim 21 , wherein to adjust the luma residual samples, the at least one processor is configured to perform at least one shift operation on the luma residual samples based on the bit-depth difference.

23. The device of claim 22 , wherein to perform the at least one shift operation on the luma residual samples, the at least one processor is further configured to arithmetically shift the luma residual samples based on the bit-depth difference.

24. The device of claim 21 , wherein to determine the bit-depth difference, the at least one processor is configured to decode the bit-depth difference.

25. The device of claim 21 , wherein, based on the first bit-depth being greater than the second bit-depth and the bit-depth difference being greater than zero, to adjust the luma residual samples, the at least one processor is configured to right-shift the luma residual samples by the bit-depth difference.

26. The device of claim 21 , wherein, based on the first bit-depth being less than the second bit-depth and the bit-depth difference being less than zero, to adjust the luma residual samples, the at least one processor is configured to left-shift the luma residual samples by the bit-depth difference.

27. The device of claim 21 , wherein to adjust the luma residual samples to produce the bit-depth adjusted luma residual samples, the at least one processor is configured to:

clip the bit-depth adjusted luma residual samples to be within a range, wherein a maximum value of the range is based on a positive value of a variable, and wherein a minimum value of the range is based on a negative value of the variable.

28. The device of claim 21 , wherein to determine the chroma residual samples, the at least one processor is configured to:

add the predicted chroma residual samples to the bit-depth adjusted luma residual samples to determine the chroma residual samples.

29. The device of claim 21 , wherein to determine the chroma residual samples, the at least one processor is further configured to:

multiply the bit-depth adjusted luma residual samples by a scale factor to determine scaled luma residual samples; and

add the predicted chroma residual samples to the scaled luma residual samples to determine the chroma residual samples.

30. The device of claim 29 , wherein the at least one processor is further configured to decode the scale factor.

31. A device for encoding video, the device comprising:

a memory configured to store video data; and

at least one processor in communication with the memory, the at least one processor being configured to:

determine a first bit-depth of luma residual samples for a block of video data stored in the memory;

determine a second bit-depth of chroma residual samples for the block of video data stored in the memory;

determine a bit-depth difference between the first bit-depth of the luma residual samples and the second bit-depth of the chroma residual samples;

adjust the luma residual samples based on the bit-depth difference to produce bit-depth adjusted luma residual samples having a bit-depth that matches the second bit-depth of the chroma residual samples;

determine predicted chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the chroma residual samples; and

encode the block of video data based on the luma residual samples and the predicted chroma residual samples.

32. The device of claim 31 , wherein to adjust the luma residual samples, the at least one processor is configured to performing at least one shift operation on the luma residual samples based on bit-depth difference.

33. The device of claim 32 , wherein to perform the at least one shift operation on the luma residual samples, the at least one processor is further configured to arithmetically shift the luma residual samples based on the bit-depth difference.

34. The device of claim 31 , wherein the at least one processor is further configured to encode the bit-depth difference.

35. The device of claim 31 , wherein, based on the first bit-depth being greater than the second bit-depth and the bit-depth difference being greater than zero, to adjust the luma residual samples, the at least one processor is configured to right-shift the luma residual samples by the bit-depth difference.

36. The device of claim 31 , wherein, based on the first bit-depth being less than the second bit-depth and the bit-depth difference being less than zero, to adjust the luma residual samples, the at least one processor is configured to left-shift the luma residual samples by the bit-depth difference.

37. The device of claim 31 , wherein to adjust the luma residual samples to produce the bit-depth adjusted luma residual samples, the at least one processor is configured to:

clip the scaled luma residual samples to be within a range, wherein a maximum value of the range is based on a positive value of a variable, and wherein a minimum value of the range is based on a negative value of the variable.

38. The device of claim 31 , wherein to determine the predicted chroma residual samples, the at least one processor is configured to:

subtract the chroma residual samples from the bit-depth adjusted luma residual samples to determine the predicted chroma residual samples.

39. The device of claim 31 , wherein to determine the predicted chroma residual samples, the at least one processor is further configured to:

multiply the bit-depth adjusted luma residual samples by a scale factor to produce scaled luma residual samples; and

subtract the chroma residual samples from the bit-depth adjusted luma residual samples to determine the predicted chroma residual samples.

40. The method of claim 39 , wherein the at least one processor is further configured to encode the scale factor.

41. A device for decoding video data, the device comprising:

means for determining a first bit-depth of luma residual samples for a block of video data;

means for determining a second bit-depth of predicted chroma residual samples for the block of video data;

means for determining a bit-depth difference between the first bit-depth of the luma residual samples and the second bit-depth of the predicted chroma residual samples;

means for adjusting the luma residual samples based on the bit-depth difference to produce bit-depth adjusted luma residual samples having a bit-depth that matches the second bit-depth of the predicted chroma residual samples;

means for determining chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the predicted chroma residual samples; and

means for decoding the block of video data based on the luma residual samples and the chroma residual samples.

42. The method of claim 41 , wherein the means for adjusting the luma residual samples comprises means for performing at least one shift operation on the luma residual samples based on the bit depth difference.

43. The device of claim 41 , wherein, based on the first bit-depth being greater than the second bit-depth and the bit-depth difference being greater than zero, the means for adjusting the luma residual samples comprises means for right-shifting the luma residual samples by the bit-depth difference.

44. The device of claim 41 , wherein, based on the first bit-depth being less than the second bit-depth and the bit-depth difference being less than zero, the means for adjusting the luma residual samples comprises means for left-shifting the luma residual samples by the bit-depth difference.

45. The device of claim 41 , wherein the means for determining the chroma residual samples comprises:

means for adding the predicted chroma residual samples to the luma residual samples to the bit-depth adjusted luma residual samples to determine the chroma residual samples.

46. The device of claim 41 , wherein the means for determining the chroma residual samples further comprises:

means for multiplying the bit-depth adjusted luma residual samples by a scale factor to determine scaled luma residual samples; and

means for adding the predicted chroma residual samples to the scaled luma residual samples to determine the chroma residual samples.

47. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause at least one processor to:

determine a first bit-depth of luma residual samples for a block of video data;

determine a second bit-depth of predicted chroma residual samples for the block of video data;

determine a bit-depth difference between the first bit-depth of the luma residual samples and the second bit-depth of the predicted chroma residual samples;

adjust the luma residual samples based on the bit-depth difference to produce bit-depth adjusted luma residual samples having a bit-depth that matches the second bit-depth of the predicted chroma residual samples;

determine chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the predicted chroma residual samples; and

decode the block of video data based on the luma residual samples and the chroma residual samples.

48. The non-transitory computer-readable storage medium of claim 47 , wherein the instructions that, when executed, cause the at least one processor to adjust the luma residual samples cause the at least one processor to perform at least one shift operation on the luma residual samples based on the bit-depth difference.

49. The non-transitory computer-readable storage medium of claim 47 , wherein, based on the first bit-depth being greater than the second bit-depth and the bit-depth difference being greater than zero, the instructions that, when executed, cause the at least one processor to adjust the luma residual samples further cause the at least one processor to right-shift the luma residual samples by the bit-depth difference.

50. The non-transitory computer-readable storage medium of claim 47 , wherein, based on the first bit-depth being less than the second bit-depth and the bit-depth difference being less than zero, the instructions that, when executed, cause the at least one processor to adjust the luma residual samples further cause the at least one processor to left-shift the luma residual samples by the bit-depth difference.

51. The non-transitory computer-readable storage medium of claim 47 , wherein the instructions that, when executed, cause the at least one processor to determine the chroma residual samples further cause the at least one processor to:

add the predicted chroma residual samples to the luma residual samples to the bit-depth adjusted luma residual samples to determine the chroma residual samples.

52. The non-transitory computer-readable storage medium of claim 47 , wherein the instructions that, when executed, cause the at least one processor to determine the chroma residual samples further cause the at least one processor to:

multiply the bit-depth adjusted luma residual samples by a scale factor to determine scaled luma residual samples; and

add the predicted chroma residual samples to the scaled luma residual samples to determine the chroma residual samples.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2014
From: KIM, WOO-SHIK; JOSHI, RAJAN LAXMAN; PU, WEI; SOLE ROJALS, JOEL; CHEN, JIANLE; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 034510/0879 →
Continuity (2)
Provisional Application 61896580 · Oct 28, 2013
Related Publication 20150117519A1 · Apr 30, 2015