Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate integrating the Draco codec into cwipc #65

Open
jackjansen opened this issue Sep 18, 2023 · 1 comment
Open

Investigate integrating the Draco codec into cwipc #65

jackjansen opened this issue Sep 18, 2023 · 1 comment
Assignees

Comments

@jackjansen
Copy link
Contributor

Draco https://github.com/google/draco is a point cloud compression library that is often used. It's supposed to be less performant than our compressor (latency-quality-bandwidth wise) but it would still be nice to integrate it into the cwipc infrastructure, because it'll give us an easy comparison point.

The other point cloud compressors that are often used, G-PCC and V-PCC, https://mpeg-pcc.org/index.php/publications/an-overview-of-ongoing-point-cloud-compression-standardization-activities-video-based-v-pcc-and-geometry-based-g-pcc/ are supposed to have libraries that are fiendishly difficult to use, and moreover their encoders are far too slow for realtime. So Draco seems a more reasonable first choice.

On the cwipc side integration should be fairly simple: just creating a new submodule (cwipc_dracodec springs to mind) which implements subclasses of cwipc_encoder and cwipc_decoder, just like cwipc_codec does.

I have no idea of the structure of the Draco code. If one of the things it contains is a library that can be used by native C/C++ code life is easy. But on the other hand it may be very difficult/impossible if the only thing that is available is a command line tool to convert PLY files to Draco and vice versa.

@troeggla I'm assigning this to you more-or-less randomly, if you're not interested please assign back to me, or unassign.

@MatthiasDeFre
Copy link

This repo (https://github.com/MatthiasDeFre/draco_example) has an example on how to use the Draco library in C++ for encoding/decoding a point cloud. The application has two modes to load a .ply file, either by using native Draco code or together with PCL. The PCL example is mainly to give an idea how you can construct a Draco point cloud from a different data source (e.g. PCL point cloud or depth/color frames).

If there are any questions, I'll be happy to answer them as the documentation for the Draco library is fairly lackluster.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants