IP Library › Granted Patent US 9,936,200
Granted Patent B2
US 9,936,200 · App. 14/250,282 · Granted Apr 3, 2018

Rice parameter update for coefficient level coding in video coding process

Inventors: Joel Sole Rojals (La Jolla, CA); Marta Karczewicz (San Diego, CA); Rajan Laxman Joshi (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/13H04N19/156H04N19/176H04N19/44H04N19/60H04N19/91
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,936,200
App. No.
14/250,282
Granted
Apr 3, 2018
Kind
B2
Abstract

Techniques are described for updating a value of a Rice parameter used to define Golomb codes for coefficient level coding. The Golomb codes defined by the Rice parameter may be used to code a remaining absolute value of a coefficient level for at least one coefficient in a coefficient group (CG). According to the techniques, the value of the Rice parameter is updated based on a selection of a minimum of either a maximum value of the Rice parameter or a variable increment of the value of the Rice parameter. The variable increment is determined based on the value of the Rice parameter and an absolute value of the coefficient level for the current coefficient being coded. Techniques are also described for adjusting the value of the Rice parameter used to define Golomb codes for coefficient level coding based on whether a transform is applied to a transform block.

Claims (78)

1. A method of decoding coefficients in a video decoding process, the method comprising:

determining a block of coefficients of residual video data;

determining that a transform is not applied to a transform block that includes the block of coefficients, wherein the block of coefficients is a block of residual coefficients in a pixel domain;

decoding an indication that a coefficient level for at least one of the coefficients in the block of coefficients has an absolute value greater than a given value using adaptive context models;

decoding a remaining absolute value of the coefficient level for the at least one of the coefficients using Golomb codes defined by a Rice parameter, wherein the remaining absolute value of the coefficient level comprises an amount of the absolute value of the coefficient level that is greater than the given value;

after decoding the remaining absolute value of the coefficient level for the at least one of the coefficients, adjusting a value of the Rice parameter according to a first process based on the transform not being applied to the transform block that includes the block of coefficients, wherein the first process for adjusting the value of the Rice parameter based on the transform not being applied to the transform block is different than a second process for adjusting a value of a Rice parameter based on a transform being applied to a transform block; and

decoding a remaining absolute value of a coefficient level for a subsequent coefficient using Golomb codes defined by the adjusted value of the Rice parameter.

2. The method of claim 1 , wherein the block of coefficients comprises a coefficient group (CG) included in the transform block, and wherein adjusting the value of the Rice parameter according to the first process comprises updating the value of the Rice parameter for the subsequent coefficient in the CG, and wherein decoding the remaining absolute value of the coefficient level for the subsequent coefficient comprises decoding the remaining absolute value of the coefficient level for the subsequent coefficient in the CG using Golomb codes defined by the updated value of the Rice parameter.

3. The method of claim 1 , wherein the block of coefficients comprises a coefficient group (CG) included in the transform block, and wherein adjusting the value of the Rice parameter according to the first process comprises initializing the value of the Rice parameter for a subsequent CG in the transform block, and wherein decoding the remaining absolute value of the coefficient level for the subsequent coefficient comprises decoding the remaining absolute value of the coefficient level for the subsequent coefficient in the subsequent CG using Golomb codes defined by the initialized value of the Rice parameter.

4. The method of claim 1 , wherein adjusting the value of the Rice parameter according to the first process comprises, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, updating the value of the Rice parameter for the subsequent coefficient in the block of coefficients based on a selection of a minimum of either a maximum value of the Rice parameter or a variable increment of the value of the Rice parameter, wherein the variable increment is determined based on the value of the Rice parameter and the absolute value of the coefficient level for the at least one of the coefficients.

5. The method of claim 4 , wherein the variable increment increases the value of the Rice parameter by any integer value up to the maximum value of the Rice parameter.

6. The method of claim 4 , wherein the variable increment is determined based on a right shifted version of the absolute value of the coefficient level for the at least one of the coefficients, and wherein an amount of the right shift is based on the value of the Rice parameter.

7. The method of claim 4 , wherein an amount of the variable increment at each update of the value of the Rice parameter is one of scaled by a damping factor or capped to be less than or equal to a maximum increment value.

8. The method of claim 1 , wherein adjusting the value of the Rice parameter according to the first process comprises, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, decreasing the value of the Rice parameter for the subsequent coefficient in the block of coefficients based on the value of the Rice parameter and the absolute value of the coefficient level for the at least one of the coefficients.

9. The method of claim 1 , wherein adjusting the value of the Rice parameter according to the first process comprises, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, initializing the value of the Rice parameter for a subsequent block of coefficients in the transform block based on the value of the Rice parameter after decoding the remaining absolute value of the coefficient level for the at least one of the coefficients in the block of coefficients.

10. The method of claim 1 , wherein determining that the transform is not applied to the transform block comprises determining at least one of a lossless coding status, a transform bypass status, a transform skip status, or a profile set in a parameter set for the transform block.

11. A method of encoding coefficients in a video encoding process, the method comprising:

determining a block of coefficients of residual video data;

determining that a transform is not applied to a transform block that includes the block of coefficients, wherein the block of coefficients is a block of residual coefficients in a pixel domain;

encoding an indication that a coefficient level for at least one of the coefficients in the block of coefficients has an absolute value greater than a given value using adaptive context models;

encoding a remaining absolute value of the coefficient level for the at least one of the coefficients using Golomb codes defined by a Rice parameter, wherein the remaining absolute value of the coefficient level comprises an amount of the absolute value of the coefficient level that is greater than the given value;

after encoding the remaining absolute value of the coefficient level for the at least one of the coefficients, adjusting a value of the Rice parameter according to a first process based on the transform not being applied to the transform block that includes the block of coefficients, wherein the first process for adjusting the value of the Rice parameter based on the transform not being applied to the transform block is different than a second process for adjusting a value of a Rice parameter based on a transform being applied to a transform block; and

encoding a remaining absolute value of a coefficient level for a subsequent coefficient using Golomb codes defined by the adjusted value of the Rice parameter.

12. The method of claim 11 , wherein the block of coefficients comprises a coefficient group (CG) included in the transform block, and wherein adjusting the value of the Rice parameter according to the first process comprises updating the value of the Rice parameter for the subsequent coefficient in the CG, and wherein encoding the remaining absolute value of the coefficient level for the subsequent coefficient comprises encoding the remaining absolute value of the coefficient level for the subsequent coefficient in the CG using Golomb codes defined by the updated value of the Rice parameter.

13. The method of claim 11 , wherein the block of coefficients comprises a coefficient group (CG) included in the transform block, and wherein adjusting the value of the Rice parameter according to the first process comprises initializing the value of the Rice parameter for a subsequent CG in the transform block, and wherein encoding the remaining absolute value of the coefficient level for the subsequent coefficient comprises encoding the remaining absolute value of the coefficient level for the subsequent coefficient in the subsequent CG using Golomb codes defined by the initialized value of the Rice parameter.

14. The method of claim 11 , wherein adjusting the value of the Rice parameter according to the first process comprises, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, updating the value of the Rice parameter for the subsequent coefficient in the block of coefficients based on a selection of a minimum of either a maximum value of the Rice parameter or a variable increment of the value of the Rice parameter, wherein the variable increment is determined based on the value of the Rice parameter and the absolute value of the coefficient level for the at least one of the coefficients.

15. The method of claim 14 , wherein the variable increment increases the value of the Rice parameter by any integer value up to the maximum value of the Rice parameter.

16. The method of claim 14 , wherein the variable increment is determined based on a right shifted version of the absolute value of the coefficient level for the at least one of the coefficients, and wherein an amount of the right shift is based on the value of the Rice parameter.

17. The method of claim 14 , wherein an amount of the variable increment at each update of the value of the Rice parameter is one of scaled by a damping factor or capped to be less than or equal to a maximum increment value.

18. The method of claim 11 , wherein adjusting the value of the Rice parameter according to the first process comprises, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, decreasing the value of the Rice parameter for the subsequent coefficient in the block of coefficients based on the value of the Rice parameter and the absolute value of the coefficient level for the coefficient being encoded.

19. The method of claim 11 , wherein adjusting the value of the Rice parameter according to the first process comprises, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, initializing the value of the Rice parameter for a subsequent block of coefficients in the transform block based on the value of the Rice parameter after encoding the remaining absolute value of the coefficient level for the at least one of the coefficients in the block of coefficients.

20. The method of claim 11 , wherein determining that the transform is not applied to the transform block comprises determining at least one of a lossless coding status, a transform bypass status, a transform skip status, or a profile set in a parameter set for the transform block.

21. A video coding device comprising:

a memory configured to store video data; and

one or more processors configured to:

determine a block of coefficients of residual video data;

determine that a transform is not applied to a transform block that includes the block of coefficients, wherein the block of coefficients is a block of residual coefficients in a pixel domain;

code an indication that a coefficient level for at least one of the coefficients in the block of coefficients has an absolute value greater than a given value using adaptive context models;

code a remaining absolute value of the coefficient level for the at least one of the coefficients using Golomb codes defined by a Rice parameter, wherein the remaining absolute value of the coefficient level comprises an amount of the absolute value of the coefficient level that is greater than the given value;

after coding the remaining absolute value of the coefficient level for the at least one of the coefficients, adjust a value of the Rice parameter according to a first process based on the transform not being applied to the transform block that includes the block of coefficients, wherein the first process for adjusting the value of the Rice parameter based on the transform not being applied to the transform block is different than a second process for adjusting a value of a Rice parameter based on a transform being applied to a transform block; and

code a remaining absolute value of a coefficient level for a subsequent coefficient using Golomb codes defined by the adjusted value of the Rice parameter.

22. The device of claim 21 , wherein the video coding device comprises a video decoding device and the block of coefficients comprises a coefficient group (CG) included in the transform block, wherein the processors are configured to:

decode the remaining absolute value of the coefficient level for the at least one of the coefficients in the CG using the Golomb codes defined by the Rice parameter;

update the value of the Rice parameter based on the transform not being applied to the transform block that includes the CG; and

decode the remaining absolute value of the coefficient level for the subsequent coefficient in the CG using Golomb codes defined by the updated value of the Rice parameter.

23. The device of claim 21 , wherein the video coding device comprises a video encoding device and the block of coefficients comprises a coefficient group (CG) included in the transform block, wherein the processors are configured to:

encode the remaining absolute value of the coefficient level for the at least one of the coefficients in the CG using the Golomb codes defined by the Rice parameter;

update the value of the Rice parameter based on the transform not being applied to the transform block that includes the CG; and

encode the remaining absolute value of the coefficient level for the subsequent coefficient in the CG using Golomb codes defined by the updated value of the Rice parameter.

24. The device of claim 21 , wherein the video coding device comprises a video decoding device and the block of coefficients comprises a coefficient group (CG) included in the transform block, wherein the processors are configured to:

decode the remaining absolute value of the coefficient level for the at least one of the coefficients in the CG using the Golomb codes defined by the Rice parameter;

initialize the value of the Rice parameter for a subsequent CG in the transform block based on the transform not being applied to the transform block that includes the CG; and

decode the remaining absolute value of the coefficient level for the subsequent coefficient in the subsequent CG using Golomb codes defined by the initialized value of the Rice parameter.

25. The device of claim 21 , wherein the video coding device comprises a video encoding device and the block of coefficients comprises a coefficient group (CG) included in the transform block, wherein the processors are configured to:

encode the remaining absolute value of the coefficient level for the at least one of the coefficients in the CG using the Golomb codes defined by the Rice parameter;

initialize the value of the Rice parameter for a subsequent CG in the transform block based on the transform not being applied to the transform block that includes the CG; and

encode the remaining absolute value of the coefficient level for the subsequent coefficient in the subsequent CG using Golomb codes defined by the initialized value of the Rice parameter.

26. The device of claim 21 , wherein the processors are configured to, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, update the value of the Rice parameter for the subsequent coefficient in the block of coefficients based on a selection of a minimum of either a maximum value of the Rice parameter or a variable increment of the value of the Rice parameter, wherein the variable increment is determined based on the value of the Rice parameter and the absolute value of the coefficient level for the at least one of the coefficients.

27. The device of claim 26 , wherein the variable increment increases the value of the Rice parameter by any integer value up to the maximum value of the Rice parameter.

28. The device of claim 26 , wherein the variable increment is determined based on a right shifted version of the absolute value of the coefficient level for the at least one of the coefficients, and wherein an amount of the right shift is based on the value of the Rice parameter.

29. The device of claim 26 , wherein an amount of the variable increment at each update of the value of the Rice parameter is one of scaled by a damping factor or capped to be less than or equal to a maximum increment value.

30. The device of claim 21 , wherein the processors are configured to, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, decrease the value of the Rice parameter based on the value of the Rice parameter and the absolute value of the coefficient level for the at least one of the coefficients.

31. The device of claim 21 , wherein the processors are configured to, in response to the determination that the transform is not applied to the transform block that includes the block of coefficients, initialize the value of the Rice parameter for a subsequent block of coefficients in the transform block based on the value of the Rice parameter after coding the remaining absolute value of the coefficient level for the at least one of the coefficients in the block of coefficients.

32. The device of claim 21 , wherein, to determine that the transform is not applied to the transform block, the processors are configured to determine at least one of a lossless coding status, a transform bypass status, a transform skip status, or a profile set in a parameter set for the transform block.

33. A video coding device comprising:

means for determining a block of coefficients of residual video data;

means for determining that a transform is not applied to a transform block that includes the block of coefficients, wherein the block of coefficients is a block of residual coefficients in a pixel domain;

means for coding an indication that a coefficient level for at least one of the coefficients in the block of coefficients has an absolute value greater than a given value using adaptive context models;

means for coding a remaining absolute value of the coefficient level for the at least one of the coefficients using Golomb codes defined by a Rice parameter, wherein the remaining absolute value of the coefficient level comprises an amount of the absolute value of the coefficient level that is greater than the given value;

means for, after coding the remaining absolute value of the coefficient level for the at least one of the coefficients, adjusting a value of the Rice parameter according to a first process based on the transform not being applied to the transform block that includes the block of coefficients, wherein the first process for adjusting the value of the Rice parameter based on the transform not being applied to the transform block is different than a second process for adjusting a value of a Rice parameter based on a transform being applied to a transform block; and

means for coding a remaining absolute value of a coefficient level for a subsequent coefficient using Golomb codes defined by the adjusted value of the Rice parameter.

34. A non-transitory computer-readable storage medium comprising instructions that when executed by one or more processors of a video coding device cause the processors to:

determine a block of coefficients of residual video data;

determine that a transform is not applied to a transform block that includes the block of coefficients, wherein the block of coefficients is a block of residual coefficients in a pixel domain;

code an indication that a coefficient level for at least one of the coefficients in the block of coefficients has an absolute value greater than a given value using adaptive context models;

code a remaining absolute value of the coefficient level for the at least one of the coefficients using Golomb codes defined by a Rice parameter, wherein the remaining absolute value of the coefficient level comprises an amount of the absolute value of the coefficient level that is greater than the given value;

after coding the remaining absolute value of the coefficient level for the at least one of the coefficients, adjust a value of the Rice parameter according to a first process based on the transform not being applied to the transform block that includes the block of coefficients, wherein the first process for adjusting the value of the Rice parameter based on the transform not being applied to the transform block is different than a second process for adjusting a value of a Rice parameter based on a transform being applied to a transform block; and

code a remaining absolute value of a coefficient level for a subsequent coefficient using Golomb codes defined by the adjusted value of the Rice parameter.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2014
From: SOLE ROJALS, JOEL; KARCZEWICZ, MARTA; JOSHI, RAJAN LAXMAN
To: QUALCOMM INCORPORATED
Reel/Frame 033122/0098 →
Continuity (5)
Provisional Application 61811632 · Apr 12, 2013
Provisional Application 61832652 · Jun 7, 2013
Provisional Application 61845850 · Jul 12, 2013
Provisional Application 61953647 · Mar 14, 2014
Related Publication 20140307800A1 · Oct 16, 2014