All Products
Search
Document Center

Object Storage Service:Point cloud compression

Last Updated:Mar 20, 2026

Point cloud files are large and expensive to transfer uncompressed. OSS integrates with Intelligent Media Management (IMM) to compress PCD files directly in your bucket using the x-oss-process query parameter — no preprocessing pipeline required.

Use cases

  • Autonomous driving: Compress point cloud data generated by radar scans.

  • Digital cultural heritage: Compress point cloud data of cultural relics for digital preservation.

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

  • Mixed reality: Compress point cloud data with real-time encoding and decoding support.

Prerequisites

Before you begin, make sure you have:

  • An OSS bucket with an IMM project attached. See Quick Start (console) or AttachOSSBucket (API)

  • The required permissions to use point cloud compression. See Permissions

  • A PCD file stored in the bucket

Note

Anonymous access is denied. Authenticated requests are required.

Choose a compression method

OSS supports two compression methods. Choose based on your precision and file size requirements:

OctreeK-d tree
Compression libraryPCL (Point Cloud Library)Draco (Google's open-source 3D data compression library)
Required parametersNone (all optional)cl, qb
Key trade-offBalance compression speed and spatial precision via voxel and resolution settingsBalance compression ratio and point detail via compression level and quantization bits
Best forFlexible spatial compression with downsampling supportHigh compression ratio with fine-grained quality control

Parameters

Action: pointcloud/compress

Common parameters

These parameters apply to both compression methods.

ParameterTypeRequiredDescription
fstringNoPCD file format. Only pcd is supported.
mstringYesCompression method. Valid values: octree, kdtree.
fsstringNoPCD property fields to compress, and their compression order. Only xyz is supported. Must be URL-safe Base64 encoded. For example, encode xyz as eHl6.

Octree parameters

Append these parameters after /octree in the request.

ParameterTypeRequiredDescription
libstringNoCompression library. Only pcl is supported.
prfloatNoPoint cloud resolution. Controls the precision of point coordinates during encoding. Default: 0.01. Range: 01.
orfloatNoMinimum octree block size (voxel edge length). Default: 0.01. Range: 01.
dintNoDownsampling. Set to 1 to enable downsampling. Downsampling is enabled by default.

K-d tree parameters

Append these parameters after /kdtree in the request.

ParameterTypeRequiredDescription
libstringNoCompression library. Only draco is supported.
clintYesCompression level. A higher value retains more point detail. Range: 010.
qbintYesNumber of quantization bits. A higher value retains more point detail. Range: 131.

Compress a point cloud file

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

Octree method

This example compresses example.pcd using the Octree method with PCL, a point cloud resolution of 0.001, a voxel size of 0.001, downsampling enabled, and the xyz fields compressed.

Request parameter string:

x-oss-process=pointcloud/compress,m_octree,fs_eHl6/octree,or_0.001,pr_0.001,d_1,lib_pcl

Full request:

GET /example.pcd?x-oss-process=pointcloud/compress,m_octree,fs_eHl6/octree,or_0.001,pr_0.001,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

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

{{Binary data of the compressed file}}

K-d tree method

This example compresses example.pcd using the K-d tree method with Draco, a compression level of 0, 0 quantization bits, and the xyz fields compressed.

Request parameter string:

x-oss-process=pointcloud/compress,m_kdtree,fs_eHl6/kdtree,cl_0,qb_0,lib_draco

Full request:

GET /example.pcd?x-oss-process=pointcloud/compress,m_kdtree,fs_eHl6/kdtree,cl_0,qb_0,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

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

{{Binary data of the compressed file}}

Use an SDK

Point cloud compression supports only synchronous processing. For SDK usage, see Use an SDK.

Billing

Point cloud compression generates billable items for both OSS and IMM.

OSS billable items

For OSS pricing, see OSS pricing.

APIBillable itemDescription
GetObjectGET requestsFees are calculated based on the number of successful requests.
GetObjectOutbound traffic over the internetApplies when you call GetObject using a public endpoint (for example, oss-cn-hangzhou.aliyuncs.com) or a transfer acceleration endpoint (for example, oss-accelerate.aliyuncs.com). Fees are charged based on the data size.
GetObjectData retrieval from Infrequent Access (IA) storageApplies when the retrieved data is stored in the IA storage class. Fees are charged based on the volume of retrieved data.
GetObjectTransfer accelerationApplies when transfer acceleration is enabled and you access the bucket using an acceleration endpoint. Fees are charged based on the data size.

IMM billable items

For IMM pricing, see IMM billable items.

Important

Starting from 11:00 on July 28, 2025 (UTC+8), IMM point cloud compression is a paid service. For details, see IMM Billing Adjustment Announcement.

APIBillable itemDescription
CreateCompressPointCloudTaskPointCloudCompressFees are calculated based on the number of successful requests.