# US 12,002,244 B2 · Global scaling for geometry-based point cloud coding

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,002,244 B2
- Document ID: US12002244B2
- Status: Granted
- Kind: B2
- Application number: 17/224,984
- Filed: 2021-04-07
- Published: 2021-10-21
- Granted: 2024-06-04
- Earliest claimed: 2020-04-08
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Adarsh Krishnan Ramasubramonian; Bappaditya Ray; Geert Van der Auwera; Louis Joseph Kerofsky; Marta Karczewicz
- Web page: https://patentgrep.com/patent/US12002244B2

## CPC

- G06T 9/001: {Model-based coding, e.g. wire frame}
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- G06T 3/40: Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T 9/40: Tree coding, e.g. quadtree, octree
- H04N 19/172: the region being a picture, frame or field
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N 19/90: using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

An example device for decoding point cloud data includes: a memory configured to store point cloud data; and one or more processors implemented in circuitry and configured to: decode a frame of the point cloud data including a plurality of points, each of the points being associated with position values defining a respective position of the point; determine a global scaling factor for the frame; and scale the position values of each of the points by the global scaling factor. The scaling may be clipped to prevent the points exceeding the boundaries of a corresponding bounding box including respective points.

## Claims

### Claim 1

A method of decoding point cloud data, the method comprising:
decoding a frame of point cloud data including a plurality of points, each of the points being associated with position values defining a respective position of the point;
decoding a sequence parameter set (SPS) for the frame of point cloud data, including:
decoding an initial global scale value from the SPS;
decoding data from the SPS representing a number of bits for a scale factor refinement value; and
decoding the scale factor refinement value from the SPS, the scale factor refinement value having the number of bits;
determining a global scaling factor for the frame using the initial scale value, the value representing the number of bits for the scale factor refinement value, and the scale factor refinement value, the global scaling factor including an integer component and a non-integer component; and
scaling the position values of each of the points by the global scaling factor.

### Claim 2 (depends on 1)

The method of claim 1, wherein prior to scaling, the position values are expressed using a first bit depth, and wherein after scaling, the scaled position values are expressed using a second bit depth different than the first bit depth.

### Claim 3 (depends on 2)

The method of claim 2, further comprising decoding data representative of the second bit depth.

### Claim 4 (depends on 2)

The method of claim 2, wherein the second bit depth is higher than the first bit depth.

### Claim 5 (depends on 2)

The method of claim 2, wherein the second bit depth represents integer precision and the first bit depth represents fractional precision.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining the global scaling factor comprises:
determining a global scale base value according to 1<<the number of bits used to specify the scale factor refinement value, wherein ‘<<’ represents a bitwise left shift operator;
determining a global scale shift value according to the number of bits used to specify the scale factor refinement value;
determining a global scale offset value according to:
when the global scale shift value is greater than zero, 1<<the global scale shift value minus 1; or
when the global scale shift value is equal to zero, the global scale offset value being equal to zero; and
calculating the global scaling factor according to (the global scale base value plus the scale factor refinement value)<<the initial global scale value.

### Claim 7 (depends on 1)

The method of claim 1, further comprising partitioning the frame into one or more bounding boxes, at least one of the bounding boxes including a subset of the points, wherein scaling the position values of the subset of the points comprises:
determining that scaling of one of the position values for one of the subset of the points would cause the one of the position values to exceed the at least one of the bounding boxes; and
clipping the one of the position values for the one of the subset of the points to prevent the one of the position values from exceeding the at least one of the bounding boxes.

### Claim 8 (depends on 1)

The method of claim 1, further comprising partitioning the frame into two or more bounding boxes, at least one of the bounding boxes including a subset of the points, wherein scaling the position values of the subset of the points comprises:
determining that scaling of one of the position values for one of the subset of the points would cause the one of the position values to exceed the at least one of the bounding boxes; and
constraining the one of the position values to be within the at least one of the bounding boxes.

### Claim 9 (depends on 1)

The method of claim 1, further comprising encoding the frame prior to decoding the frame.

### Claim 10

A device for decoding point cloud data, the device comprising:
a memory configured to store point cloud data; and
a processing system comprising one or more processors implemented in circuitry, the processing system being configured to:
decode a frame of the point cloud data including a plurality of points, each of the points being associated with position values defining a respective position of the point;
decode a sequence parameter set (SPS) for the frame of point cloud data, wherein to decode the SPS, the processing system is configured to:
decode an initial global scale value from the SPS;
decode data from the SPS representing a number of bits for a scale factor refinement value; and
decode the scale factor refinement value from the SPS, the scale factor refinement value having the number of bits;
determine a global scaling factor for the frame using the initial scale value, the value representing the number of bits for the scale factor refinement value, and the scale factor refinement value, the global scaling factor including an integer component and a non-integer component; and
scale the position values of each of the points by the global scaling factor.

### Claim 11 (depends on 10)

The device of claim 10, wherein prior to scaling, the position values are expressed using a first bit depth, and wherein after scaling, the scaled position values are expressed using a second bit depth different than the first bit depth.

### Claim 12 (depends on 11)

The device of claim 11, wherein the processing system is further configured to decode data representative of the second bit depth.

### Claim 13 (depends on 10)

The device of claim 10, wherein to determine the global scaling factor, the processing system is configured to:
determine a global scale base value according to 1<<the number of bits used to specify the scale factor refinement value, wherein ‘<<’ represents a bitwise left shift operator;
determine a global scale shift value according to the number of bits used to specify the scale factor refinement value;
determine a global scale offset value according to:
when the global scale shift value is greater than zero, 1<<the global scale shift value minus 1; or
when the global scale shift value is equal to zero, the global scale offset value being equal to zero; and
calculate the global scaling factor according to (the global scale base value plus the scale factor refinement value)<<the initial global scale value.

### Claim 14 (depends on 10)

The device of claim 10, wherein the processing system is further configured to partition the frame into one or more bounding boxes, at least one of the bounding boxes including a subset of the points, and wherein to scale the position values of the subset of the points, the processing system is configured to:
determine that scaling of one of the position values for one of the subset of the points would cause the one of the position values to exceed the at least one of the bounding boxes; and
clip the one of the position values for the one of the subset of the points to prevent the one of the position values from exceeding the at least one of the bounding boxes.

### Claim 15 (depends on 10)

The device of claim 10, wherein the processing system is further configured to encode the frame prior to decoding the frame.

### Claim 16 (depends on 10)

The device of claim 10, further comprising a display configured to display the decoded point cloud data.

### Claim 17 (depends on 10)

The device of claim 10, wherein the device comprises one or more of a vehicle, a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

### Claim 18

A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause a processor to:
decode a frame of point cloud data including a plurality of points, each of the points being associated with position values defining a respective position of the point;
decode a sequence parameter set (SPS) for the frame of point cloud data, wherein the instructions that cause the processor to decode the SPS comprise instructions that cause the processor to:
decode an initial global scale value from the SPS;
decode data from the SPS representing a number of bits for a scale factor refinement value; and
decode the scale factor refinement value from the SPS, the scale factor refinement value having the number of bits;
determine a global scaling factor for the frame using the initial scale value, the value representing the number of bits for the scale factor refinement value, and the scale factor refinement value, the global scaling factor including an integer component and a non-integer component; and
scale the position values of each of the points by the global scaling factor.

### Claim 19

A device for decoding point cloud data, the device comprising:
means for decoding a frame of point cloud data including a plurality of points, each of the points being associated with position values defining a respective position of the point;
means for decoding a sequence parameter set (SPS) for the frame of point cloud data, including:
means for decoding an initial global scale value from the SPS;
means for decoding data from the SPS representing a number of bits for a scale factor refinement value; and
means for decoding the scale factor refinement value from the SPS, the scale factor refinement value having the number of bits;
means for determining a global scaling factor for the frame using the initial scale value, the value representing the number of bits for the scale factor refinement value, and the scale factor refinement value, the global scaling factor including an integer component and a non-integer component; and
means for scaling the position values of each of the points by the global scaling factor.

### Claim 20

A method of encoding point cloud data, the method comprising:
downscaling a frame of point cloud data including a plurality of points using a global scaling factor, the global scaling factor including an integer component and a non-integer component, to form a downscaled frame of point cloud data, each of the points being associated with position values defining a respective position of the point;
determining an initial global scaling factor for the frame for the global scaling factor;
determining a number of bits for a scale factor refinement value;
determining the scale factor refinement value for the global scaling factor, the scale factor refinement value having the number of bits;
encoding a sequence parameter set (SPS) for the frame of point cloud data, the SPS including the initial global scaling factor, the data representing the number of bits, and the scale factor refinement value;
encoding the downscaled frame; and
generating a bitstream including data representing the encoded downscaled frame and the SPS including the initial global scaling factor, the number of bits for the scale refinement value, and the scale factor refinement value.
