Skip to main content

Crate lepcc

Crate lepcc 

Source
Expand description

§LEPCC - Limited Error Point Cloud Compression

A Rust implementation of the LEPCC compression algorithm originally developed by Esri. This library provides lossless compression for 3D point cloud data including coordinates, colors, intensity, and flag bytes.

§Features

  • XYZ Compression: Lossy compression of 3D coordinates with configurable error tolerance
  • RGB Compression: Color clustering and quantization with up to 3x compression
  • Intensity Compression: Lossless compression of intensity values
  • Flag Bytes Compression: Lossless compression of flag/class data
  • I3S Format Support: Compatible with I3S point cloud format (.pccxyz and .pccrgb)

§Example

use lepcc::prelude::*;

// Compress XYZ coordinates with 1cm accuracy
let points = vec![
    [0.0, 0.0, 0.0],
    [1.0, 1.0, 1.0],
    // ... more points
];
let compressed = compress_xyz(&points, 0.01, 0.01, 0.01)?;

// Decompress
let decompressed = decompress_xyz(&compressed)?;

Re-exports§

pub use error::LepccError;
pub use error::Result;
pub use types::*;
pub use api::*;

Modules§

api
High-level API for LEPCC compression and decompression
bit_mask
BitMask - Convenient and fast access to binary mask bits
bit_stuffer2
BitStuffer2 - Bit level compression for unsigned integer arrays
cluster_rgb
ClusterRGB - Color compression using quantization/clustering
common
Common utilities - Fletcher’s checksum
error
Error types for LEPCC operations
flag_bytes
FlagBytes compression implementation
huffman
Huffman coding implementation
intensity
Intensity compression implementation
lepcc_xyz
LEPCC XYZ compression implementation - Simplified version for testing
prelude
Prelude module for common imports
types
Type definitions for LEPCC library

Constants§

VERSION_LEPCC
VERSION_LEPCC_FLAGBYTES
VERSION_LEPCC_INTENSITY
VERSION_LEPCC_RGB
VERSION_LEPCC_XYZ