ADDER-codec-rs

Build Status Documentation Crates.io Downloads

Encoder/transcoder/decoder for ADΔER (Address, Decimation, Δt Event Representation) video streams. Currently, only implemented for raw (uncompressed) streams. Includes a transcoder for casting framed video into an ADΔER representation in a manner which preserves the temporal synchronicity of the source, but enables many-frame intensity averaging on a per-pixel basis and extremely high dynamic range.

Source 8-bit image frame with shadows boosted (source video) | Frame reconstructed from ADΔER events, generated from 48 input frames, with shadows boosted. Note the greater dynamic range and temporal denoising in the shadows. :-------------------------:|:-------------------------: |

Included crates

Other crates

More information

Read the wiki for background on ADΔER, how to use it, and what tools are included.

Cite this work

If you write a paper which references this software, we ask that you reference the following papers on which it is based. Citations are given in the BibTeX format.

Motion segmentation and tracking for integrating event cameras @inproceedings{10.1145/3458305.3463373, author = {Freeman, Andrew C. and Burgess, Chris and Mayer-Patel, Ketan}, title = {Motion Segmentation and Tracking for Integrating Event Cameras}, year = {2021}, isbn = {9781450384346}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3458305.3463373}, doi = {10.1145/3458305.3463373}, abstract = {Integrating event cameras are asynchronous sensors wherein incident light values may be measured directly through continuous integration, with individual pixels' light sensitivity being adjustable in real time, allowing for extremely high frame rate and high dynamic range video capture. This paper builds on lessons learned with previous attempts to compress event data and presents a new scheme for event compression that has many analogues to traditional framed video compression techniques. We show how traditional video can be transcoded to an event-based representation, and describe the direct encoding of motion data in our event-based representation. Finally, we present experimental results proving how our simple scheme already approaches the state-of-the-art compression performance for slow-motion object tracking. This system introduces an application "in the loop" framework, where the application dynamically informs the camera how sensitive each pixel should be, based on the efficacy of the most recent data received.}, booktitle = {Proceedings of the 12th ACM Multimedia Systems Conference}, pages = {1–11}, numpages = {11}, keywords = {HDR, spike compression, image reconstruction, simulation, event cameras, object tracking, entropy encoding, motion segmentation, asynchronous systems}, location = {Istanbul, Turkey}, series = {MMSys '21} }

Integrating Event Camera Sensor Emulator @inproceedings{10.1145/3394171.3414394, author = {Freeman, Andrew C. and Mayer-Patel, Ketan}, title = {Integrating Event Camera Sensor Emulator}, year = {2020}, isbn = {9781450379885}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3394171.3414394}, doi = {10.1145/3394171.3414394}, abstract = {Event cameras are biologically-inspired sensors that upend the framed, synchronous nature of traditional cameras. Singh et al. proposed a novel sensor design wherein incident light values may be measured directly through continuous integration, with individual pixels' light sensitivity being adjustable in real time, allowing for extremely high frame rate and high dynamic range video capture. Arguing the potential usefulness of this sensor, this paper introduces a system for simulating the sensor's event outputs and pixel firing rate control from 3D-rendered input images.}, booktitle = {Proceedings of the 28th ACM International Conference on Multimedia}, pages = {4503–4505}, numpages = {3}, keywords = {asynchronous systems, image reconstruction, spike compression, event cameras, HDR, simulation}, location = {Seattle, WA, USA}, series = {MM '20} }