Skip to content

Release 1.4.0: new encoder

Choose a tag to compare

@github-actions github-actions released this 28 Sep 20:40
· 6 commits to main since this release
97a550c
chefA

⚠️ New default wire format: V6

Encoders now write V6 and refine resolutions to the data by default. Decoders from 1.3.1 and earlier cannot read V6 (they report Unsupported encoding version. Current is:5, got: 6). Update every reader, including the Foxglove extension, or keep writing V5:

  • cloudini_rosbag_converter --encoding-version 5
  • topic converter: -p encoding_version:=5
  • point_cloud_transport plugin: cloudini_encoding_version: 5
  • C++: EncodingInfo::version = 5

Highlights

  • V6 predicts x, y, z per chunk (previous point, point K back, LOCO-I median, second order), skips no-return points with a validity mask, and gives each other float field its own stream. With ZSTD, the median output is 13% smaller than V5 across 13 LiDAR/depth datasets.
  • Resolution refinement: integer-valued floats such as intensity are stored at resolution 1, with the same error bound. On a 2.8 GB warehouse bag, 1.4.0 output is 24% smaller than 1.3.1 and decodes 1.75x faster.
  • Faster decoding of V4, V5 and V6.
  • PointcloudEncoderCache: one encoder per stream (rosbag converter, topic converter, point_cloud_transport plugin).
  • Fixes: hardened decoding of corrupted input; packed rgb/rgba fields are kept lossless; header resolutions are parsed independently of the locale.
  • Decoders that receive a newer format now ask the user to update Cloudini.

Assets

  • cloudini_rosbag_converter-1.4.0-x86_64.AppImage: standalone MCAP converter
  • cloudini.foxglove-cloudini-converter-1.4.0.foxe: Foxglove extension (decodes V4–V6)
  • cloudini-wasm-1.4.0.zip: WebAssembly build

Full changelog: cloudini_lib/CHANGELOG.rst