Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/airmanh/simple_pcc

A simple point-cloud compression algorithm.
https://github.com/airmanh/simple_pcc

Last synced: 26 days ago
JSON representation

A simple point-cloud compression algorithm.

Awesome Lists containing this project

README

        

* simple_pcc

A simple point-cloud compression algorithm.

** Introduction

This project try to *reproduce* the algorithm that was proposed in
[[https://ieeexplore.ieee.org/document/8451802/][Intra-Frame Context-Based Octree Coding for Point-Cloud Geometry]]

=simple_pcc= implements a
/context-based octree coding algorithm for point cloud geometry/.
This algorithm is based on arithmetic coding, and it uses the
*position in parent node in octree* as context.

The picture below describes the system framework of the algorithm.

[[./readme_img/frame.png]]

** Requirements

- python >= 3.7
- =pip install open3d numpy=

** Usage

*** Compress

To *compress* a point cloud file
(for supported file type, see
[[http://www.open3d.org/docs/release/tutorial/geometry/file_io.html#Point-cloud][this page]]
):

#+begin_example
usage: cxt_arith_compress.py [-h] -i INPUT -o OUTPUT -a AUX [-d DEPTH]

A simple point-cloud compression algorithm.

optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
input point cloud file
-o OUTPUT, --output OUTPUT
output binary file
-a AUX, --aux AUX output auxiliary file
-d DEPTH, --depth DEPTH
the depth of octree coding (default: 9)
#+end_example

For example:

#+begin_src bash
python cxt_arith_compress.py -i bunny.ply -o bunny.bin -a bunny.aux
#+end_src

After this, you will get 9 files:

#+begin_example
bunny.aux, bunny.bin.0, bunny.bin.1, ..., bunny.bin.7
#+end_example

*** Decompress

To *decompress*:

#+begin_example
usage: cxt_arith_decompress.py [-h] -i INPUT -a AUX -o OUTPUT [-d DEPTH]

A simple point-cloud decompression algorithm.

optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
input binary file
-a AUX, --aux AUX input auxiliary file
-o OUTPUT, --output OUTPUT
output point cloud file
-d DEPTH, --depth DEPTH
the depth of octree coding (default: 9)
#+end_example

For example:

#+begin_src bash
python cxt_arith_decompress.py -i bunny.bin -a bunny.aux -o bunny.ply
#+end_src

** Test

Run =pytest path/to/simple_pcc/tests/=.

** Benchmark

To benchmark the algorithm, see [[./benchmark/README.org]].