Pointcloud compression: crowd sourcing benchmark

Example using fastest compression in Draco. Pointcloud with no padding.

[Draco] ratio: 0.25 time (usec): 8462
[Lossy + ZSTD] ratio: 0.32 time (usec): 1048

Hard to say how 16 bits resolution in Draco compare to 1mm resolution in my compression.

1 Like

Does RViZ have any tooling for decoding/visualizing any compressed pointclouds? Are you planning to have a look at this too?

Yes, in ROS 2, there is a quite recent RViz plugin for point_cloud_transport. So the integration should be seamless (but maybe itā€™s only in Jazzy, I donā€™t know exactly).

That depends on the order of magnitude of the values in your pointcloud data. My rough understanding from reading Half-precision floating-point format - Wikipedia is that 16-bit floats usually use 5 bits for the exponent, and have 11 significant bits. 2^11 = 2048, so 16 bits can only achieve 1mm precision as long as the value is 20.48m or less. Itā€™s not certain that draco uses this floating point encoding. Pointcloud values donā€™t usually range in the nanometers nor in the km range, neither do they ever go negative. So draco may very well decide to drop the sign bit, and reduce the exponent bits to, say, 2.
I was looking at the Draco Bitstream Specification, but couldnā€™t find where it specifies 16 bit precision.