PointCloudLibrary / PointCloudLibrary/pcl
[IO] Idea to possibly make writing binary PCD files faster
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
When writing binary PCD files, either whole cloud or just some indices, the values are copied with memcpy. Each field (e.g. x, y, z, rgb, normal, ...) for each point is copied individually, so the number of calls to memcpy is very large. However, this could be reduced by copying adjacent fields together; sometimes one memcpy for a point might be enough. This could increase the performance. To do this, fields that can be copied together have to be identified and fields and fields_sizes modified accordingly.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with io/include/pcl/io/impl/pcd_io.hpp at the whole-cloud and indexed binary-writing paths linked in the issue, and trace how fields and fields_sizes are built. Identify adjacent fields that can be copied together, then compare the write performance while confirming that both binary output paths remain correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- performance
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100