Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/airmanh/simple_pcc
- Owner: AirManH
- Created: 2021-08-03T09:57:25.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-08-30T08:40:44.000Z (over 3 years ago)
- Last Synced: 2024-11-02T06:43:49.550Z (2 months ago)
- Language: Python
- Size: 1.48 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
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_exampleFor example:
#+begin_src bash
python cxt_arith_compress.py -i bunny.ply -o bunny.bin -a bunny.aux
#+end_srcAfter 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_exampleFor 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]].