IP Library › Granted Patent US 11,956,470
Granted Patent B2
US 11,956,470 · App. 17/223,780 · Granted Apr 9, 2024

Predictor index signaling for predicting transform in geometry-based point cloud compression

Inventors: Bappaditya Ray (San Diego, CA); Adarsh Krishnan Ramasubramonian (Irvine, CA); Louis Joseph Kerofsky (San Diego, CA); Geert Van der Auwera (Del Mar, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/61H04N13/161H04N19/44
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 11,956,470
App. No.
17/223,780
Filed
Apr 6, 2021
Granted
Apr 9, 2024
Kind
B2
Art Unit
2486
USPC
375/240.12
Abstract

A method for decoding point cloud data comprises, based on a comparison of a maximum difference value and a threshold, applying an inverse function to a set of one or more jointly coded values to recover (i) residual values for attribute values of a current point of point cloud data and (ii) a predictor index that indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points; determining predicted attribute values based on the predictor index; and reconstructing the attribute values of the current point based on the residual values and the predicted attribute values.

Claims (169)

1. A method for decoding point cloud data, the method comprising:

based on a comparison of a maximum difference value and a threshold;

reconstructing, based on a first jointly coded value, a first residual value of a current point of a point cloud;

reconstructing, based on a second jointly coded value, a second residual value of the current point; and

determining a predictor index based on the first and second jointly coded values, wherein the predictor index indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

determining predicted attribute values based on the predictor index; and

reconstructing attribute values of the current point based on the first and second residual values and the predicted attribute values.

2. The method of claim 1 , wherein determining the predictor index comprises determining the predictor index based on modulo 2 of the first jointly coded value and the second jointly coded value.

3. The method of claim 1 , wherein, based on a quantity of predictors in the predictor list being equal to 4:

reconstructing the first residual value comprises calculating:

res 1=sign( res 1′)*(| res 1′|>>1)

where res1 is the first residual value and res1′ is the first jointly coded value;

reconstructing the second residual value comprises calculating:

res 2=sign( res 2′)*(| res 2′|>>1)

where res2 is the second residual value and res2′ is the second jointly coded value; and

determining the predictor index comprises calculating:

sigIndex=(| res 1′|&1)<<1+(| res 2′|&1)

where sigIndex is the predictor index, res1′ is the first jointly coded value, and res2′ is the second jointly coded value.

4. The method of claim 1 , wherein based on a quantity of predictors in the predictor list being equal to 3:

reconstructing the first residual value comprises calculating:

res 1=sign( res 1′)*(| res 1′|>>1)

where res1 is the first residual value and res1′ is the first jointly coded value;

reconstructing the second residual value comprises calculating:

res 2=(| res 1′|&1>0)?sign( res 2′)*(| res 2′|>>1): res 2′

where res2 is the second residual value and res2′ is the second jointly coded value; and

determining the predictor index comprises calculating:

sigIndex=(| res 1′|&1))+((| res 1′|&1>0)?(| res 2′|&1):0)

where sigIndex is the predictor index, res1′ is the first jointly coded value, and res2′ is the second jointly coded value.

5. The method of claim 1 , wherein based on a quantity of predictors in the predictor list being equal to 2:

reconstructing the first residual value comprises calculating:

res 1=sign( res 1′)*(| res 1′|>>1)

where res1 is the first residual value and res1′ is the first jointly coded value;

reconstructing the second residual value comprises calculating:

res 2= res 2′

where res2 is the second residual value and res2′ is the second jointly coded value; and

determining the predictor index comprises calculating:

sigIndex=(| res 1′|&1))

where sigIndex is the predictor index and res1′ is the first jointly coded value.

6. The method of claim 1 , wherein determining the predicted attribute values comprises:

determining, based on a syntax element, whether the predictor list includes a default predictor, each predictor in the predictor list indicating a respective set of attribute values; and

determining, based on the predictor index, the predictor in the predictor list, wherein the predictor indicates the predicted attribute values.

7. The method of claim 1 , wherein the threshold is a lifting adaptive prediction threshold, and the method further comprises determining, based on a first syntax element indicating that a maximum number of direct predictors is greater than 0, that a bitstream includes a lifting adaptive prediction threshold syntax element that indicates the lifting adaptive prediction threshold.

8. A method of encoding a point cloud, the method comprising:

based on a maximum difference value being less than a threshold, determining a predictor index for a current point of the point cloud that indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

generating a first jointly coded value based on (i) a first residual value for attribute values of the current point and (ii) the predictor index;

generating a second jointly coded value based on (i) a second residual value for the attribute values of the current point and (ii) the predictor index; and

signaling the first and second jointly coded values.

9. The method of claim 8 , wherein, based on a quantity of predictors in the predictor list being equal to 4;

generating the first jointly coded value comprises determining:

res 1′=sign( res 1)*(| res 1|<<1+sigIndex>>1)

generating the second jointly coded value comprises determining:

res 2′=sign( res 2)*(| res 2|*<<1+sigIndex&1)

where res1′ is the first jointly coded value, res2′ is the second jointly coded value, res1 is the first residual value, res2 is the second residual value, and sigIndex is the predictor index.

10. The method of claim 8 , wherein, based on a quantity of predictors in the predictor list being equal to 3;

generating the first jointly coded value comprises determining:

res 1′=sign( res 1)*(| res 1|<<1+(sigIndex>0))

generating the second jointly coded value comprises determining:

res 2′=(sigIndex>0)?sign( res 2)*(| res 2|<<1+(sigIndex−1)): res 2

where res1′ is the first jointly coded value, res2′ is the second jointly coded value, res1 is the first residual value, res2 is the second residual value, and sigIndex is the predictor index.

11. The method of claim 8 , wherein, based on a quantity of predictors in the predictor list being equal to 2;

generating the first jointly coded value comprises determining:

res 1′=sign( res 1)*(| res 1|<<1+(sigIndex&1))

generating the second jointly coded value comprises determining:

res 2′= res 2

where res1′ is the first jointly coded value, res2′ is the second jointly coded value, res1 is the first residual value, res2 is the second residual value, and sigIndex is the predictor index.

12. The method of claim 8 , further comprising:

determining a predictor in the predictor list, wherein each predictor in the predictor list of predictors indicates a respective set of attribute values, wherein the predictor indicates predicted attribute values for the current point; and

signaling a syntax element that indicates whether the predictor list includes a default predictor.

13. The method of claim 8 , wherein the threshold is a lifting adaptive prediction threshold, and the method further comprises:

based on a maximum number of direct predictors being greater than 0, signaling, in a bitstream, a lifting adaptive prediction threshold syntax element that indicates the lifting adaptive prediction threshold.

14. A device for decoding a point cloud, the device comprising:

a memory to store point cloud data representing the point cloud; and

one or more processors coupled to the memory and implemented in circuitry, the one or more processors configured to:

based on a comparison of a maximum difference value and a threshold;

reconstruct, based on a first jointly coded value, a first residual value of a current point of the point cloud;

reconstruct, based on a second jointly coded value, a second residual value of the current point; and

determine a predictor index based on the first and second jointly coded values, wherein the predictor index indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

determine predicted attribute values based on the predictor index; and

reconstruct attribute values of the current point based on the first and second residual values and the predicted attribute values.

15. The device of claim 14 , wherein the one or more processors are configured to, as part of determining the predictor index, determine the predictor index based on modulo 2 of the first jointly coded value and the second jointly coded value.

16. The device of claim 14 , wherein, based on a quantity of predictors in the predictor list being equal to 4:

the one or more processors are configured to, as part of reconstructing the first residual value, calculate:

res 1=sign( res 1′)*(| res 1′|>>1)

where res1 is the first residual value and res1′ is the first jointly coded value;

the one or more processors are configured to, as part of reconstructing the second residual value, calculate:

res 2=sign( res 2′)*(| res 2′|>>1)

where res2 is the second residual value and res2′ is the second jointly coded value; and

the one or more processors are configured to, as part of determining the predictor index, calculate:

sigIndex=(| res 1′|&1)<<1+(| res 2′|&1)

where sigIndex is the predictor index, res1′ is the first jointly coded value, and res2′ is the second jointly coded value.

17. The device of claim 14 , wherein, based on a quantity of predictors in the predictor list being equal to 3:

the one or more processors are configured to, as part of reconstructing the first residual value, calculate:

res 1=sign( res 1′)*(| res 1′|>>1)

where res1 is the first residual value and res1′ is the first jointly coded value;

the one or more processors are configured to, as part of reconstructing the second residual value, calculate:

res 2=(| res 1′|&1>0)?sign( res 2′)*(| res 2′|>>1): res 2′

where res2 is the second residual value and res2′ is the second jointly coded value; and

the one or more processors are configured to, as part of determining the predictor index, calculate:

sigIndex=( res 1′|&1))+((| res 1′|&1>0)?(| res 2′|&1):0)

where sigIndex is the predictor index, res1′ is the first jointly coded value, and res2′ is the second jointly coded value.

18. The device of claim 14 , wherein, based on a quantity of predictors in the predictor list being equal to 2:

the one or more processors are configured to, as part of reconstructing the first residual value, calculate:

res 1=sign( res 1′)*(| res 1′|>>1)

where res1 is the first residual value and res1′ is the first jointly coded value,

the one or more processors are configured to, as part of reconstructing the second residual value, calculate:

res 2= res 2′

where res2 is the second residual value and res2′ is the second jointly coded value; and

the one or more processors are configured to, as part of determining the predictor index, calculate:

sigIndex=(| res 1′|&1))

where sigIndex is the predictor index and res1′ is the first jointly coded value.

19. The device of claim 14 , wherein the one or more processors are configured to, as part of determining the predicted attribute values:

determine, based on a syntax element, whether the predictor list includes a default predictor, each predictor in the predictor list indicating a respective set of attribute values; and

determine, based on the predictor index, the predictor in the predictor list, wherein the predictor indicates the predicted attribute values.

20. The device of claim 14 , wherein the threshold is a lifting adaptive prediction threshold, and the one or more processors are further configured to determine, based on a first syntax element indicating that a maximum number of direct predictors is greater than 0, that a bitstream includes a lifting adaptive prediction threshold syntax element that indicates the lifting adaptive prediction threshold.

21. The device of claim 14 , further comprising a display to present imagery based on the point cloud data.

22. A device for encoding a point cloud, the device comprising:

a memory to store point cloud data representing the point cloud; and

one or more processors coupled to the memory and implemented in circuitry, the one or more processors configured to:

based on a maximum difference value being less than a threshold, determine a predictor index for a current point of the point cloud that indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

generate a first jointly coded value based on (i) a first residual value for attribute values of the current point and (ii) the predictor index;

generate a second jointly coded value based on (i) a second residual value for the attribute values of the current point and (ii) the predictor index; and

signal the first and second jointly coded values.

23. The device of claim 22 , wherein, based on a quantity of predictors in the predictor list being equal to 4, the one or more processors are configured to;

as part of generating the first jointly coded value, determine:

res 1′=sign( res 1)*(| res 1|<<1+sigIndex>>1)

as part of generating the second jointly coded value, determine:

res 2′=sign( res 2)*(| res 2|*<<1+sigIndex&1)

where res1′ is the first jointly coded value, res2′ is the second jointly coded value, res1 is the first residual value, res2 is the second residual value, and sigIndex is the predictor index.

24. The device of claim 22 , wherein, based on a quantity of predictors in the predictor list being equal to 3, the one or more processors are configured to;

as part of generating the first jointly coded value, determine:

res 1′=sign( res 1)*(| res 1|<<1+(sigIndex>0))

as part of generating the second jointly coded value, determine:

res 2′=(sigIndex>0)?sign( res 2)*(| res 2|<<1+(sigIndex−1)): res 2

where res1′ is the first jointly coded value in the set of jointly coded values, res2′ is the second jointly coded value in the set of jointly coded values, res1 is the first residual value in the set of residual values, res2 is the second residual value in the set of residual values, and sigIndex is the predictor index.

25. The device of claim 22 , wherein, based on a quantity of predictors in the predictor list being equal to 2;

as part of generating the first jointly coded value, determine:

res 1′=sign( res 1)*(| res 1|<<1+(sigIndex&1))

as part of generating the second jointly coded value, determine:

res 2′= res 2

where res1′ is the first jointly coded value, res2′ is the second jointly coded value, res1 is the first residual value, res2 is the second residual value, and sigIndex is the predictor index.

26. The device of claim 22 , wherein the one or more processors are further configured to:

determine the predictor in the predictor list, wherein each predictor in the predictor list indicates a respective set of attribute values, wherein the predictor indicates predicted attribute values for the current point; and

signal a syntax element that indicates whether the list of predictors includes a default predictor.

27. The device of claim 22 , wherein the threshold is a lifting adaptive prediction threshold, and the one or more processors are further configured to, based on a maximum number of direct predictors being greater than 0, signal, in a bitstream, a lifting adaptive prediction threshold syntax element that indicates the lifting adaptive prediction threshold.

28. The device of claim 22 , further comprising a device to generate the point cloud data.

29. A device for decoding a point cloud, the device comprising:

means for, based on a comparison of a maximum difference value and a threshold;

reconstructing, based on a first jointly coded value, a first residual value of a current point of the point cloud;

reconstructing, based on a second jointly coded value, a second residual value of the current point; and

determining a predictor index based on the first and second jointly coded values, wherein the predictor index indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

means for determining predicted attribute values based on the predictor index; and

means for reconstructing attribute values of the current point based on the first and second residual values and the predicted attribute values.

30. A device for encoding a point cloud, the device comprising:

means for determining, based on a maximum difference value being less than a threshold, a predictor index for a current point of the point cloud that indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

means for generating a first jointly coded value based on (i) a first residual value for attribute values of the current point and (ii) the predictor index;

means for generating a second jointly coded value based on (i) a second residual value for the attribute values of the current point and (ii) the predictor index; and

means for signaling the first and second jointly coded values.

31. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to:

based on a comparison of a maximum difference value and a threshold;

reconstruct, based on a first jointly coded value, a first residual value of a current point of a point cloud;

reconstruct, based on a second jointly coded value, a second residual value of the current point; and

determine a predictor index based on the first and second jointly coded values, wherein the predictor index indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

determine predicted attribute values based on the predictor index; and

reconstruct attribute values of the current point based on the first and second residual values and the predicted attribute values.

32. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to:

based on a maximum difference value being less than a threshold, determine a predictor index for a current point of a point cloud that indicates a predictor in a predictor list, wherein predictors in the predictor list are based on attribute values of one or more neighbor points;

generate a first jointly coded value based on (i) a first residual value for attribute values of the current point and (ii) the predictor index;

generate a second jointly coded value based on (i) a second residual value for the attribute values of the current point and (ii) the predictor index; and

signal the first and second jointly coded values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2021
From: RAY, BAPPADITYA; RAMASUBRAMONIAN, ADARSH KRISHNAN; VAN DER AUWERA, GEERT; KEROFSKY, LOUIS JOSEPH; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 056263/0597 →
Continuity (7)
Provisional Application 63090567 · Oct 12, 2020
Provisional Application 63087774 · Oct 5, 2020
Provisional Application 63043596 · Jun 24, 2020
Provisional Application 63012557 · Apr 20, 2020
Provisional Application 63010519 · Apr 15, 2020
Provisional Application 63006634 · Apr 7, 2020
Related Publication 20210314616A1 · Oct 7, 2021
Cited By (2)
US 12,518,430 US 12,657,779