Point cloud compression

更新时间:
复制 MD 格式

Point clouds are large datasets that consume significant storage and bandwidth. You can use point cloud compression to reduce storage costs and improve data transfer efficiency.

Use cases

  • Autonomous driving: Compress point cloud data from radar scans.

  • Digital heritage and museums: Compress point cloud data from digitized cultural artifacts.

  • Smart cities: Compress point cloud data from 3D urban reconstruction for smooth rendering and display.

  • Mixed reality: Provide real-time encoding and decoding for point cloud data.

Usage notes

  • Point cloud compression supports only synchronous processing by using the x-oss-process parameter.

  • Before you use point cloud compression, you must attach an Intelligent Media Management (IMM) project. For instructions, see Quick start and AttachOSSBucket.

  • Anonymous access will be denied.

  • You must have the required permissions to use the feature. For more information, see permissions.

Parameters

Action: pointcloud/compress

The following table describes the parameters.

Parameter

Type

Required

Description

f

string

No

The format of the point cloud data (PCD) file. Only pcd is supported.

m

string

Yes

The compression method. Valid values:

  • kdtree: Uses a k-d tree structure.

  • octree: Uses an octree structure.

fs

string

No

Specifies the PCD properties to be compressed and their order. The data is then decompressed in the same order. Currently, only the xyz property is supported.

Note

This parameter requires URL-safe encoding. For example, to specify xyz, use the encoded value eHI6 in your request.

Parameters for the Octree compression method are appended after the /octree parameter.

The following table describes the parameters.

Parameter

Type

Required

Description

lib

string

No

The name of the compression library. Only pcl is supported.

pr

float

No

The point cloud resolution. This parameter determines the precision of point coordinates during encoding. The value must be in the range of [0, 1]. Default value: 0.01.

or

float

No

The side length of the smallest voxel used for octree partitioning. The value must be in the range of [0, 1]. Default value: 0.01.

d

int

No

Specifies whether to enable downsampling. A value of 1 enables this feature, which is on by default.

The Kdtree compression method parameters are appended to the /kdtree parameter.

The following table describes the parameters.

Parameter

Type

Required

Description

lib

string

No

The name of the compression library. Only draco is supported.

cl

int

Yes

The compression level. Higher values preserve more detail. The value must be in the range of [0, 10].

qb

int

Yes

The number of quantization bits. Higher values retain more detail. The value must be in the range of [1, 31].

Use the REST API

Compress with the octree method

Request specification

  • File to compress: example.pcd

  • Compression method: octree

    • Compression library: pcl

    • Point cloud resolution: 0.01

    • Smallest voxel side length for octree partitioning: 0.01

    • Downsampling enabled: 1

  • PCD properties to compress: xyz

Sample request

GET /example.pcd?x-oss-process=pointcloud/compress,m_octree,fs_eHl6/octree,or_0.01,pr_0.01,d_1,lib_pcl  HTTP/1.1
Host: file-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e

Sample response

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Wed, 25 May 2022 12:15:44 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
x-oss-request-id: 628E1DEF184E20BB21000004
x-oss-transfer-acc-type: acc-none
x-oss-data-location: oss-cn-hangzhou-a
ETag: "E168EDBFAB5130BCA80EDF84E4E10B59"
Last-Modified: Sat, 02 Apr 2022 11:53:20 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 5454933848876226229
x-oss-storage-class: Standard
x-oss-server-time: 865

{{Compressed binary data}}

Compress with the k-d tree method

Request specification

  • File to compress: example.pcd

  • Compression method: kdtree

    • Compression library: draco

    • Compression level: 1

    • Quantization bit: 1

  • PCD properties to compress: xyz

Sample request

GET /example.pcd?x-oss-process=pointcloud/compress,m_kdtree,fs_eHl6/kdtree,cl_1,qb_1,lib_draco  HTTP/1.1
Host: file-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e

Sample response

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Wed, 25 May 2022 12:15:44 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
x-oss-request-id: 628E1DEF184E20BB21000004
x-oss-transfer-acc-type: acc-none
x-oss-data-location: oss-cn-hangzhou-a
ETag: "E168EDBFAB5130BCA80EDF84E4E10B59"
Last-Modified: Sat, 02 Apr 2022 11:53:20 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 5454933848876226229
x-oss-storage-class: Standard
x-oss-server-time: 865

{{Compressed binary data}}

Use SDKs

point cloud compression supports only synchronous processing. For more information about how to use SDKs, see Use OSS SDKs.

Billing

Point cloud compression generates the following billable items for Object Storage Service (OSS) and Intelligent Media Management (IMM):

  • Object Storage Service: For pricing details, see OSS product pricing.

    API

    Billable item

    Description

    GetObject

    GET-type requests

    Charges are calculated based on the number of successful requests.

    Outbound traffic over the internet

    If you call the GetObject operation with a public endpoint (for example, oss-cn-hangzhou.aliyuncs.com) or a Transfer Acceleration endpoint (for example, oss-accelerate.aliyuncs.com), you are charged for outbound traffic over the internet. Charges are based on the amount of data transferred.

    Data retrieval from Infrequent Access storage

    You are charged for data retrieval if the object is in the Infrequent Access storage class. Charges are based on the amount of data retrieved.

    Transfer Acceleration

    If you enable Transfer Acceleration and access your bucket with a Transfer Acceleration endpoint, you are charged for accelerated data transfer. Charges are based on the amount of data transferred.

  • Intelligent Media Management: For pricing details, see IMM pricing.

    Important

    Effective 11:00 (UTC+8) on July 28, 2025, the point cloud compression feature in IMM will change from a free service to a paid service. The corresponding billable item is PointCloudCompress. For more information, see IMM pricing adjustment notice.

    API

    Billable item

    Description

    CreateCompressPointCloudTask

    PointCloudCompress

    You are charged based on the number of successful requests.