New releases: dv-processing 2.0.0, dv-runtime 1.7.0, dv-gui 1.7.0, flashy 2.0.0

37 views
Skip to first unread message

Luca Longinotti

unread,
Jul 17, 2025, 12:54:40 PMJul 17
to dv-u...@googlegroups.com, davis...@googlegroups.com
Hello all! After quite some time, new releases of our software are available.
All ChangeLogs are at the end of this announcement, please read through them and the following highlights carefully!

# dv-processing 2.0

The main star of this round of updates is dv-processing 2.0, a major update that cleans up the API, removing deprecated functions and adding new camera access classes.
The old classes CameraCapture and StereoCapture were removed in favor of a new device access API under dv::io::camera, that finally exposes all camera settings and functionality.
Migrating to the new release is fairly simple, usually only involving updating your CMakeLists.txt to search for version 2.0, renaming some types, functions and constants,
and, if in use, switching from CameraCapture/StereoCapture to the new dv::io::camera device access classes.
Our own re-implementations of string "dv::cstring" and vector "dv::cvector" have been removed in favour of the standard variants, in case you were using them, all that should
be required is to replace "dv::c" with "std::", as the standard variants are pretty much equivalent.

All our downstream modules/users, such as dv-ros, have been updated, providing some examples of migrating to the new API:

# Python API

The dv-processing Python API reflects all changes and offers full device access with the new dv.io.camera classes. Please see the updated samples.
PyPi wheels build is in progress and they should all appear within the next 24 hours, we'll send another update once they have all been published.
Python 3.6 and 3.7 are not supported anymore.
For Mac users, only MacOS 15.0 and newer can be supported by the PyPi wheels due to library dependencies requirements.

# DVXplorer Mini / Micro firmware update

For DVXplorer Mini/Micro, a firmware upgrade (v10) is required for compatibility with the new classes in dv-processing and the new DV modules.
After this upgrade, the device will only work with the new dv-processing 2.0 API and DV 1.7.0 modules. libcaer will not be able to open it!
Downgrades are not possible, so think carefully if you have custom code that depends on libcaer still.
Please follow the upgrade instructions using the Flashy tool: https://docs.inivation.com/hardware/hardware-advanced-usage/firmware-update.html

# Unsupported devices

Support for eDVS, Samsung EVK, DVS132S and some old experimental DAVIS models has been dropped.
You won't find new code that supports them, and the respective DV modules have been removed.
All of these continue to be supported by libcaer if needed, and other than the eDVS none of them have been commercially sold by iniVation.

# Improved time synchronization

dv-processing can now synchronize an arbitrary number of cameras (provided they support the hardware synchronization feature using extra cables). Previously this was limited to two.
DV can now also synchronize any number of cameras and keep the real-time offsets correct, before the real-time offsets were different for each camera and recorded in a 'tsOffset' field
in files to allow aligning the offsets in post-processing. This is now not the case anymore, DV can do proper offset synchronization and the field has thus been removed from new recordings.
For the new synchronization procedure, please see our documentation: https://docs.inivation.com/hardware/hardware-advanced-usage/external-camera-sync.html#software

# Ubuntu

Support for Ubuntu 24.04 Noble has landed!
For apt update/upgrade to work properly and find the required versions of the GCC compiler, you'll need to add the official toolchain test repository:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Support for Ubuntu 18.04 Bionic has been removed. The old, special PPA repository "inivation-bionic" will remain available to install old software versions.

# libcaer End-of-Life

dv-processing 2.0 fully replaces libcaer for supported devices, and should be the preferred way to access iniVation devices from now on.
As stated in the last libcaer release announcement, libcaer will not be developed further. It works fine on all supported platforms in case you still depend on it and will continue to be available.

==================================================

dv-processing Release 2.0.0 - 15.07.2025

INCOMPATIBLE CHANGES

- CMake: renamed options with DVP\_ prefix to prevent collisions, ie. DVP_ENABLE_TESTS.
- Build: raised minimum compiler versions to GCC 13, clang 18, XCode 16 or MSVC 19.39 (Visual Studio 2022 17.9).
- Build: raised minimum dependency versions to boost 1.80, fmt 9.1.0, libusb 1.0.23.
- C++/Python: removed all deprecated functions and types.
- C++/Python: fixed naming of constants and enums, now SCREAMING_SNAKE_CASE as per guidelines.
- cstring/cvector: removed own re-implementations of std::string (dv::cstring) and std::vector (dv::cvector), the
  standard containers are used instead. You will need to recompile.
- CameraCapture: removed CameraCapture class, see NEW FEATURES for replacement.
- StereoCapture: removed StereoCapture class, see NEW FEATURES for replacement.
- Renamed OutputBase::writeIMU() function to writeImu() to be consistent with other function names.
- dv::runtime_assert(): changed to use functors, allowing guaranteed removal on non-debug builds.
- StereoGeometry: instances of trasformToLeft have changed type to dv::kinematics::Transformationf instead of
  std::vector<float>.
- Accumulator: getShape() renamed to getResolution().
- fmt: removed custom std::vector formatter, use the official one from the fmt library instead.
- Ubuntu: dropped support for Bionic 18.04.
- Python: dropped support for Python 3.6.
- Point cloud sample: removed due to build issues with PCL dependency.
- PoseVisualizer: significantly refactored to improve rendering and add new features.

NEW FEATURES

- Device Access: new set of classes and functions to access cameras in the dv::io::camera namespace, replacing
  CameraCapture, StereoCapture and libcaer. Classes DVS128, DAVIS, DVXplorer and DVXplorerM (for Mini/Micro) allow
  access to all camera features. New base classes CameraInputBase and SyncCameraInputBase allow for generic handling of
  features supported by all cameras, as well as enhanced synchronization support. A selection of notable new features:
    - all camera features are properly exposed through a simple API now, no need to use cryptic libcaer codes
    - proper inheritance allows generic handling of cameras and common functionality
    - significantly improved data parser performance, especially for S5K231Y sensor on DVXplorer Mini/Micro
    - synchronization of an arbitrary number of cameras supported via dv::io::camera::synchronizeAny()
    - DAVIS: supply your own exposure control function
    - DVS128/DAVIS: simplified biasing with clearer names
    - DVXplorer: allow finer bias control for ON/OFF contrast thresholds
    - For DVXplorer Mini/Micro only: a firmware upgrade (v10) is required for compatibility with new classes.
- CMake: added support for sanitizer checks.
- Ubuntu: added support for Noble 24.04.
- Boost: added compatibility with latest boost::ASIO releases.
- fmt: added printers for all enums (also work with std::ostream \<<).
- Noise Filters: added frequency filters LowPassFilter, HighPassFilter, BandPassFilter, BandCutFilter.
- Noise Filters: added KNoiseFilter, implementation as proposed by Khodamoradi in his paper: "O(N)-Space
  Spatiotemporal Filter for Reducing Noise in Neuromorphic Vision Sensors".
- Inputs: added isStreamAvailable(streamName), isRunning(streamName) and isRunningAny().
- Inputs/Outputs: now properly inherit from InputBase/OutputBase respectively, allowing generic handling.
- Motion compensation benchmarks: separate motion compensation benchmarks from accumulation benchmarks.
- Contrast maximization benchmarks: add benchmarks for contrast maximization under translational motion.
- Noise filtering samples: added all noise filters present in dv-processing.
- StereoGeometry: added convertDisparityToDepth() function.
- fmt::format: added formatters for cv::Mat, cv::Size, cv::Point and cv::Rect.
- SimpleFile: added readInto() to read file contents into a given memory location.

BUG FIXES

- StereoGeometry: fixed bug with rectified image size when handling cameras of different resolutions.

==================================================

dv-runtime Release 1.7.0 - 15.07.2025

INCOMPATIBLE CHANGES

- Compatibility with version 2.0 of the dv-processing library requires recompilation of any custom modules. This is
  automatically enforced, old modules will not load.
- CMake: renamed options with DVR\_ prefix to prevent collisions, ie. DVR_ENABLE_TCMALLOC.
- Build: raised minimum compiler versions to GCC 13, clang 18, XCode 16 or MSVC 19.39 (Visual Studio 2022 17.9).
- Build: raised minimum dependency versions to boost 1.80, fmt 9.1.0, dv-processing 2.0.
- cstring/cvector: removed own re-implementations of std::string (dv::cstring) and std::vector (dv::cvector), the
  standard containers are used instead. You will need to recompile.
- dv::runtime_assert(): changed to use functors, allowing guaranteed removal on non-debug builds.
- fmt: removed custom std::vector formatter, use the official one from fmt instead.
- Ubuntu: dropped support for Bionic 18.04.
- libcaer: removed as a dependency, no longer used.
- dv::EventColor: GREEN component has been split into GREEN1 and GREEN2.
- New camera modules for DVS128, DAVIS, DVXplorer and DVXplorer Mini / Micro. Some configuration switches and names
  have changed. Field 'tsOffset' in output information has been removed as it is no longer required due to proper
  multi-camera time synchronization support, all cameras now have the same real-time offset. This extra information will
  also not be recoreded in files anymore, old files remain unchanged. Field 'colorFilter' in event output information
  has been replaced by new field 'eventsPixelArrangement', which is directly compatible with new dv::EventColor. Old
  recordings with the old name will still work. Support for eDVS, DVS132S, Samsung EVK and some old experimental DAVIS
  models has been dropped. All of these continue to be supported by libcaer if needed, and other than the eDVS none of
  them have been commercially sold by iniVation.

NEW FEATURES

- New camera modules for DVS128, DAVIS, DVXplorer and DVXplorer Mini / Micro. These use the new dv-processing 2.0 APIs
  for device access. Some configuration switches and names have changed, controls are often simpler to use. Support for
  eDVS, DVS132S, Samsung EVK and some old experimental DAVIS models has been dropped. A selection of notable new
  features:
    - synchronization of an arbitrary number of cameras supported via new 'syncWith' configuration, for details see our
    - DVS128/DAVIS: simplified biasing with clearer names
    - DVXplorer: allow finer bias control for ON/OFF contrast thresholds
    - For DVXplorer Mini/Micro only: a firmware upgrade (v10) is required for compatibility.
- Frame Color Calibration: added new module to perform color calibration for RGB frames.
- Ubuntu: added support for Noble 24.04.
- Boost: added compatibility with latest boost::ASIO releases.
- Aravis (MVCamera): added compatibility with latest Aravis 0.9 release series.
- fmt::format: added formatters for cv::Mat, cv::Size, cv::Point and cv::Rect.

==================================================

dv-gui Release 1.7.0 - 15.07.2025

- Compatible with new dv-runtime 1.7.0 and dv-processing 2.0.0.
- Shutdown Managed DV-runtime gracefully on closing of GUI application, only terminate after 5 seconds.
- Updated gradle, build dependencies.

==================================================

flashy Release 2.0.0 - 15.07.2025

- Update DVXplorer Mini / Micro firmware to v10 for compatibility with dv-processing 2.0.
- Improved GUI progress and error notifications.
- Add Command Line Interface (CLI) mode, pass "--help" for options, intended for
  advanced users and developers.
- Updated internal architecture, better separation of device operations from presentation.
- Updated gradle, build dependencies.

-- 
Luca Longinotti (llongi)

Senior Software Engineer
iniVation AG - https://inivation.com/
A SynSense Group company
Reply all
Reply to author
Forward
0 new messages