How 3dpcc/pace works
PACE is an inference toolkit for learned LiDAR point-cloud compression. Its main workflow reads dataset-specific point clouds, quantizes and organizes them as octrees, predicts occupancy probabilities with a learned context model, and entropy-codes them into a bitstream; decoding reconstructs octree symbols, dequantizes coordinates, and writes a point cloud. Encoding supports parallel, autoregressive, and configurable multi-stage prediction. The README also documents bitrate and distortion evaluation. The excerpts show the decode path and parts of encoding; links for unsampled evaluation and encoding internals are included only where documented.
Main entry points: encode.py Encode · decode.py Decode · rw.py Point Cloud I/O · helper.py Codec Helpers
Components 19
Point Cloud I/O
- Input Cloud
data - Dataset Handling
utils/dataset.py - Point Cloud I/O
utils/rw.py
Compression Pipeline
- Encode
encode.py - Octree Encoding
extension/octcode/src/octree.cpp - Decode
decode.py - Octree Decoding
extension/octcode/src/octree.cpp - Compressed Bitstream
Learned Model
- Network
model/network.py - Model Layers
model/nn.py - Mamba Block
model/mamba.py
Entropy Coding
- Codec Helpers
utils/helper.py - rANS Coder
extension/octrans/src/octrans.cpp
Evaluation
- Evaluation Preparation
scripts/prepare_test.py - Distortion Evaluation
scripts/eval.py - Bitrate Summary
scripts/summarize.py - Point-Cloud Metric
extension/pc_error_d - Evaluation Results
Other components
- User
Connections 28
- User → Encode: starts encoding
- User → Decode: starts decoding
- Input Cloud → Point Cloud I/O: provides points
- Encode → Point Cloud I/O: reads coordinates
- Point Cloud I/O → Dataset Handling: supplies coordinates
- Encode → Dataset Handling: quantizes points
- Encode → Octree Encoding: builds octree
- Encode → Network: predicts symbols
- Network → Model Layers: uses layers
- Model Layers → Mamba Block: uses block
- Encode → Codec Helpers: prepares entropy data
- Codec Helpers → rANS Coder: encodes symbols
- Encode → Compressed Bitstream: writes bitstream
- User → Compressed Bitstream: selects for decoding
- Decode → Compressed Bitstream: reads bitstream
- Decode → Codec Helpers: decodes symbols
- Codec Helpers → rANS Coder: decodes symbols
- Decode → Octree Decoding: reconstructs octree
- Decode → Network: predicts symbols
- Decode → Dataset Handling: dequantizes coordinates
- Decode → Point Cloud I/O: writes point cloud
- Point Cloud I/O → Evaluation Results: writes decoded cloud
- User → Evaluation Preparation: starts evaluation
- Evaluation Preparation → Distortion Evaluation: prepares distortion inputs
- Distortion Evaluation → Point-Cloud Metric: measures distortion
- Distortion Evaluation → Evaluation Results: reports distortion
- User → Bitrate Summary: summarizes bitrate
- Bitrate Summary → Evaluation Results: writes bitrate summary