IP Library Granted Patent US 10,271,052
Granted Patent B2
US 10,271,052 · App. 14/656,532 · Granted Apr 23, 2019

Universal color-space inverse transform coding

Inventors: Li Zhang (San Diego, CA); Jianle Chen (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/126H04N19/102H04N19/103H04N19/11H04N19/12H04N19/134H04N19/136H04N19/14H04N19/154H04N19/157H04N19/176H04N19/18H04N19/184H04N19/186H04N19/196H04N19/33H04N19/44H04N19/60H04N19/61H04N19/70
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 10,271,052
App. No.
14/656,532
Granted
Apr 23, 2019
Kind
B2
Abstract

In general, this disclosure describes techniques for coding video blocks using a color-space conversion process. A video coder, such as a video encoder or a video decoder, may determine a coding mode used to encode the video data. The coding mode may be one of a lossy coding mode or a lossless coding mode. The video coder may determine a color-space transform process dependent on the coding mode used to encode the video data. The video coder may apply the color-space transform process in encoding the video data. In decoding the video data, independent of whether the coding mode is the lossy coding mode or the lossless coding mode, the video coder may apply the same color-space inverse transform process in a decoding loop of the encoding process.

Claims (108)

1. A method of encoding video data in an encoding process, the method comprising:

determining a coding mode used to encode the video data, wherein the coding mode is one of a lossy coding mode or a lossless coding mode;

determining a color-space transform process dependent on the coding mode used to encode the video data, wherein determining the color-space transform process comprises determining that the color transform process comprises a first color-space transform process when the coding mode is the lossy coding mode, and determining that the color-space transform process comprises a second color-space transform process when the coding mode is the lossless coding mode, and wherein the first color-space transform process is different than the second color-space transform process;

applying the color-space transform process to the video data; and

applying a color-space inverse transform process in a decoding loop of the encoding process, wherein a coding mode of the color-space inverse transform process applied in the decoding loop of the encoding process is independent of whether the color-space transform process used to encode the video data is the first color-space transform process or the second color-space transform process.

2. The method of claim 1 , wherein the coding mode used to encode the video data is the lossy coding mode, and wherein applying the first color-space transform process comprises applying a YCoCg matrix.

3. The method of claim 2 , further comprising modifying a Co component and a Cg component of the YCoCg matrix with an N-bit left shift before applying the color-space inverse transform process in the decoding loop of the encoding process.

4. The method of claim 3 , wherein N is equal to 1.

5. The method of claim 1 , wherein the coding mode used to encode the video data is the lossless coding mode, and wherein applying the second color-space transform process comprises applying a YCoCg-R matrix.

6. The method of claim 5 , further comprising increasing a bit depth of a Co component and a Cg component by 1.

7. The method of claim 1 , wherein the coding mode of the color-space inverse transform process is a lossless coding mode.

8. The method of claim 7 , wherein applying the lossless color-space inverse transform process comprises applying a YCoCg-R matrix.

9. The method of claim 1 , further comprising determining to use color-space conversion for encoding the video data, wherein determining to use color-space conversion for encoding the video data comprises:

setting a value of a syntax element that indicates that the video data was encoded using color-space conversion.

10. The method of claim 9 , wherein the syntax element comprises a one-bit flag.

11. The method of claim 9 , wherein the coding unit is coded in a mode other than intra-pulse code modulation (IPCM) mode, and wherein the syntax element indicates that the coding unit was encoded using color-space conversion when the coding unit is coded using a mode other than intra-pulse code modulation (IPCM) mode.

12. The method of claim 9 , wherein the syntax element indicates that the coding unit was encoded using color-space conversion when there are non-zero coefficients in a transform unit of the coding unit.

13. The method of claim 9 , wherein the syntax element is not signaled when the coding unit is intra coded and when a luma prediction mode and a chroma prediction mode of a prediction unit within the coding unit are different.

14. The method of claim 9 , wherein the syntax element is not signaled when the coding unit is coded with a palette mode.

15. The method of claim 9 , wherein a value of 1 for the syntax element indicates that color-space conversion is used for encoding the coding unit.

16. A video encoding device comprising:

a memory configured to store video data; and

one or more processors configured to:

determine a coding mode used to encode the video data, wherein the coding mode is one of a lossy coding mode or a lossless coding mode;

determine a color-space transform process dependent on the coding mode used to encode the video data, wherein the color-space transform process is determined to comprise a first color-space transform process when the coding mode is the lossy coding mode, wherein the color-space transform process is determined to be a second color-space transform process when the coding mode is the lossless coding mode, and wherein the first color-space transform process is different than the second color-space transform process;

apply the color-space transform process to the video data; and

apply a color-space inverse transform process in a decoding loop of the encoding process, wherein a coding mode of the color-space inverse transform process applied in the decoding loop of the encoding process is independent of whether the color-space transform process used to encode the video data is the first color-space transform process or the second color-space transform process.

17. The video encoding device of claim 16 , wherein the coding mode used to encode the video data is the lossy coding mode, and wherein the one or more processors being configured to apply the first color-space transform process comprises the one or more processors being configured to apply a YCoCg matrix.

18. The video encoding device of claim 17 , wherein the one or more processors are further configured to modify a Co component and a Cg component of the YCoCg matrix with an N-bit left shift before applying the color-space inverse transform process in the decoding loop of the encoding process.

19. The video encoding device of claim 18 , wherein N is equal to 1.

20. The video encoding device of claim 16 , wherein the coding mode used to encode the video data is the lossless coding mode, and wherein the one or more processors being configured to apply the second color-space transform process comprises the one or more processors being configured to apply a YCoCg-R matrix.

21. The video encoding device of claim 20 , wherein the one or more processors are further configured to increase a bit depth of a Co component and a Cg component by 1.

22. The video encoding device of claim 16 , wherein the coding mode of the color-space inverse transform process is a lossless coding mode.

23. The video encoding device of claim 22 , wherein the one or more processors being configured to apply the lossless color-space inverse transform process comprises the one or more processors being configured to apply a YCoCg-R matrix.

24. The video encoding device of claim 16 , wherein the one or more processors are further configured to determine to use color-space conversion for encoding the video data, wherein the one or more processors being configured to determine to use color-space conversion for encoding the video data comprises the one or more processors being configured to:

set a value of a syntax element that indicates that the video data was encoded using color-space conversion.

25. The video encoding device of claim 24 , wherein the syntax element comprises a one-bit flag.

26. The video encoding device of claim 24 , wherein the syntax element is signaled when the coding unit is coded using a mode other than intra-pulse code modulation (IPCM) mode.

27. The video encoding device of claim 24 , wherein the syntax element is signaled only when there are non-zero coefficients in a transform unit of the coding unit.

28. The video encoding device of claim 24 , wherein the syntax element is not signaled when the coding unit is intra coded and when a luma prediction mode and a chroma prediction mode of a prediction unit within the coding unit are different.

29. The video encoding device of claim 24 , wherein the syntax element is not signaled when the coding unit is coded with a palette mode.

30. The video coding device of claim 24 , wherein a value of 1 for the syntax element indicates that the coding unit was encoded using color-space conversion.

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

receiving a first encoded block of video data, wherein the first encoded block of video data was encoded using a lossy coding mode and a first color-space transform process;

receiving a second encoded block of video data, wherein the second encoded block of video data was encoded using a lossless coding mode and a second color-space transform process, wherein the first color-space transform process used to encode the first encoded block of video data is different than the second color-space transform process used to encode the second encoded block of video data;

applying a color-space inverse transform process to the first encoded block of video data; and

applying the color-space inverse transform process to the second encoded block of video data, wherein a coding mode of the color-space inverse transform process applied to both the first encoded block of video data and the second block of video data is independent of the lossy coding mode used to encode the first encoded block of video data and the lossless coding mode used to encode the second encoded block of video data.

32. The method of claim 31 , further comprising:

modifying one or more components of the first encoded block of video data with an N-bit right shift or an N-bit left shift.

33. The method of claim 32 , wherein N is equal to 1.

34. The method of claim 32 , wherein the one or more components of the first encoded block of video data comprise two chroma components.

35. The method of claim 31 , wherein the coding mode of the color-space inverse transform process is a lossless coding mode.

36. The method of claim 35 , wherein the lossless color-space inverse transform process comprises a YCoCg-R matrix.

37. The method of claim 31 , further comprising:

decoding a syntax element of a coding unit of video data, wherein the syntax element indicates whether the coding unit was encoded using color-space conversion;

determining whether a value of the syntax element indicates that the coding unit was encoded using color-space conversion; and

in response to determining that the syntax element indicates that the coding unit was coded using color-space conversion, applying the color-space inverse transform process.

38. The method of claim 37 , wherein the syntax element comprises a one-bit flag.

39. The method of claim 37 , wherein the coding unit is coded in a mode other than intra-pulse code modulation (IPCM) mode, and wherein the syntax element is signaled only for coding units using a mode other than the IPCM mode.

40. The method of claim 37 , wherein the syntax element indicates that the coding unit was encoded using color-space conversion when there are non-zero coefficients in a transform unit of the coding unit.

41. The method of claim 37 , wherein the syntax element indicates that the coding unit was not encoded using color-space conversion when the coding unit is intra coded and when a luma prediction mode and a chroma prediction mode of a prediction unit within the coding unit are different, wherein the syntax element is not present in a received bitstream that comprises the video data, and wherein decoding the syntax element comprises inferring the value of the syntax element.

42. The method of claim 37 , wherein the syntax element indicates that the coding unit was not encoded using color-space conversion when the coding unit is coded with a palette mode, wherein the syntax element is not present in a received bitstream that comprises the video data, and wherein decoding the syntax element comprises inferring the value of the syntax element.

43. The method of claim 37 , wherein a value of 1 for the syntax element indicates that the coding unit was encoded using color-space conversion.

44. A video decoding device comprising:

a memory configured to store video data; and

one or more processors configured to:

receive a first encoded block of video data, wherein the first encoded block of video data was encoded using a lossy coding mode and a first color-space transform process;

receive a second encoded block of video data, wherein the second encoded block of video data was encoded using a lossless coding mode and a second color-space transform process, wherein the first color-space transform process used to encode the first encoded block of video data is different than the second color-space transform process used to encode the second encoded block of video data;

apply a color-space inverse transform process to the first encoded block of video data; and

apply the color-space inverse transform process to the second encoded block of video data, wherein a coding mode of the color-space inverse transform process applied to both the first encoded block of video data and the second block of video data is independent of the lossy coding mode used to encode the first encoded block of video data and the lossless coding mode used to encode the second encoded block of video data.

45. The video decoding device of claim 44 , wherein the one or more processors are further configured to:

modify one or more components of the first encoded block of video data with an N-bit right shift or an N-bit left shift.

46. The video decoding device of claim 45 , wherein N is equal to 1.

47. The video decoding device of claim 45 , wherein the one or more components of the first encoded block of video data comprise two chroma components.

48. The video decoding device of claim 44 , wherein the coding mode of the color-space inverse transform process is a lossless coding mode.

49. The video decoding device of claim 48 , wherein the lossless color-space inverse transform process comprises a YCoCg-R matrix.

50. The video decoding device of claim 44 , wherein the one or more processors are further configured to:

decode a syntax element of a coding unit of video data, wherein the syntax element indicates whether the coding unit was encoded using color-space conversion;

determine whether a value of the syntax element indicates that the coding unit was encoded using color-space conversion; and

in response to determining that the syntax element indicates that the coding unit was coded using color-space conversion, apply the color-space inverse transform process.

51. The video decoding device of claim 50 , wherein the syntax element comprises a one-bit flag.

52. The video decoding device of claim 50 , wherein the coding unit is coded in a mode other than intra-pulse code modulation (IPCM) mode, and wherein the syntax element is signaled only for coding units using a mode other than the IPCM mode.

53. The video decoding device of claim 50 , wherein the syntax element indicates that the coding unit was encoded using color-space conversion when there are non-zero coefficients in a transform unit of the coding unit.

54. The video decoding device of claim 50 , wherein the syntax element indicates that the coding unit was not encoded using color-space conversion when the coding unit is intra coded and when a luma prediction mode and a chroma prediction mode of a prediction unit within the coding unit are different, wherein the syntax element is not present in a received bitstream that comprises the video data, and wherein decoding the syntax element comprises inferring the value of the syntax element.

55. The video decoding device of claim 50 , wherein the syntax element indicates that the coding unit was not encoded using color-space conversion when the coding unit is coded with a palette mode, wherein the syntax element is not present in a received bitstream that comprises the video data, and wherein decoding the syntax element comprises inferring the value of the syntax element.

56. The video decoding device of claim 50 , wherein a value of 1 for the syntax element indicates that the coding unit was encoded using color-space conversion.

57. A video decoding apparatus comprising:

means for receiving a first encoded block of video data, wherein the first encoded block of video data was encoded using a lossy coding mode and a first color-space transform process;

means for receiving a second encoded block of video data, wherein the second encoded block of video data was encoded using a lossless coding mode and a second color-space transform process, wherein the first color-space transform process used to encode the first encoded block of video data is different than the second color-space transform process used to encode the second encoded block of video data;

means for applying a color-space inverse transform process to the first encoded block of video data; and

means for applying the color-space inverse transform process to the second encoded block of video data, wherein a coding mode of the color-space inverse transform process applied to both the first encoded block of video data and the second block of video data is independent of the lossy coding mode used to encode the first encoded block of video data and the lossless coding mode used to encode the second encoded block of video data.

58. The video decoding apparatus of claim 57 , further comprising:

means for modifying one or more components of the first encoded block of video data with an N-bit right shift or an N-bit left shift.

59. The video decoding apparatus of claim 58 , wherein N is equal to 1.

60. The video decoding apparatus of claim 58 , wherein the one or more components of the first encoded block of video data comprise two chroma components.

61. The video decoding apparatus of claim 57 , wherein the coding mode of the color-space inverse transform process is a lossless coding mode.

62. The video decoding apparatus of claim 61 , wherein the lossless color-space inverse transform process comprises a YCoCg-R matrix.

63. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause one or more processors of a video decoding device to:

receive a first encoded block of video data, wherein the first encoded block of video data was encoded using a lossy coding mode and a first color-space transform process;

receive a second encoded block of video data, wherein the second encoded block of video data was encoded using a lossless coding mode and a second color-space transform process, wherein the first color-space transform process used to encode the first encoded block of video data is different than the second color-space transform process used to encode the second encoded block of video data;

apply a color-space inverse transform process to the first encoded block of video data; and

apply the color-space inverse transform process to the second encoded block of video data, wherein a coding mode of the color-space inverse transform process is independent of the lossy coding mode used to encode the first encoded block of video data and the lossless coding mode used to encode the second encoded block of video data.

64. The non-transitory computer-readable storage medium of claim 63 , wherein the instructions further cause the one or more processors to:

modify one or more components of the first encoded block of video data with an N-bit right shift or an N-bit left shift.

65. The non-transitory computer-readable storage medium of claim 64 , wherein N is equal to 0.

66. The non-transitory computer-readable storage medium of claim 64 , wherein the one or more components of the first encoded block of video data comprise two chroma components.

67. The non-transitory computer-readable storage medium of claim 63 , wherein the coding mode of the color-space inverse transform process is a lossless coding mode.

68. The non-transitory computer-readable storage medium of claim 67 , wherein the lossless color-space inverse transform process comprises a YCoCg-R matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2015
From: ZHANG, LI; CHEN, JIANLE; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 035290/0567 →
Continuity (4)
Provisional Application 61953573 · Mar 14, 2014
Provisional Application 61981645 · Apr 18, 2014
Provisional Application 62062637 · Oct 10, 2014
Related Publication 20150264364A1 · Sep 17, 2015
Cited By (7)
US 12,244,794 US 12,593,038 US 12,684,174 US 12,701,256 US 12,701,257 US 12,713,053 US 12,713,054