Hybrid Vision Toolkit
HV Toolkit (ShiMetaPi Hybrid Vision Toolkit) v2.0 is a high-performance C++17 SDK for event cameras (DVS/EVS). It captures the event data stream (EVS) and the image data stream (APS) through one unified API, and ships zero-third-party-dependency EVT2/EVT3 codecs. v2.0 is a core rewrite: the USB / MIPI / Ethernet backends are unified behind the same Camera API, and the public API surface no longer depends on any third-party event SDK.
git clone https://gitee.com/ShiMetaPi_0/shimetapi_hybrid_vision_toolkit.git # recommended in China
# or (overseas) git clone https://github.com/ShiMetaPi/shimetapi_hybrid_vision_toolkit.git
cd shimetapi_hybrid_vision_toolkitRelease form
This SDK is released as precompiled binaries (the core is delivered as closed-source .so files; only public headers and sample sources are open). No need to build the SDK itself — building only compiles the samples and links the library for the target architecture.
✨ v2.0 features
- Three unified backends: USB (libusb) / MIPI (RDK, ARM only) / Ethernet (POSIX TCP) — one
Camerainterface; the backend is selected viaDeviceConfig.backend. - Dual callbacks + synchronous pull:
SetFrameCallback/SetEventCallback/SetImageCallbackasync callbacks, plus synchronousGetFrame. - Self-contained codecs:
Encoder/Decoderfor EVT2 / EVT3 / MIPI RAW8, zero external SDKs. - IO read/write:
EventReader/EventWriter/HybridWriter/HybridReader(RAW read/write + EVS/APS hybrid recording and replay). - MIPI frame-rate gears: selected at runtime via
DeviceConfig.evs_fps, applied at Init — no library rebuild needed. - Python bindings: a single
hv_toolkitmodule (x86_64 prebuilt; see Python bindings).
📋 Platform support
| Platform | Backend | Prebuilt libs | Status |
|---|---|---|---|
| x86_64 | USB + Ethernet | lib/x86_64 | ✅ Adapted |
| S100 (RDK) | MIPI + Ethernet | lib/s100 | ✅ Adapted |
| X5 (RDK) | MIPI + Ethernet | lib/x5 | ✅ Adapted |
| RK3588 | MIPI (planned) | — | ⏳ Pending |
- Prebuilt libraries ship with the repo (the aarch64 side includes cross-compiled OpenCV under
third_party/aarch64_opencv). - Build artifacts go to
out/<arch>/build; the three architectures don't overwrite each other;./run.sh --listshows readiness. - For S100 vs X5 differences (SDK environment variables, sensor_index, APS format) see Your First C++ Program.
📋 Specifications
- EVS resolution: 768×608 (subsampled: 384×304)
- APS resolution: 768×608
- Data transfer: USB 3.0 / MIPI-CSI / TCP (per backend)
- Event formats: EVT2 / EVT3 (compatible with Prophesee EventCD semantics)
- MIPI frame-rate gears: 120 / 240 / 300 / 500 / 750 / 1000 fps (default 240;
evs_fpsis fixed at Init)
🔧 Dependencies
| Dependency | Purpose | Platform |
|---|---|---|
| libusb-1.0 | Runtime library for the USB backend | x86_64 |
| aarch64 toolchain¹ | Cross-compile the samples | S100 / X5 |
| OpenCV | Visualization samples² | Optional |
¹ g++-aarch64-linux-gnu (Ubuntu system package) or the Arm GNU 11.3 toolchain. ² Only player / live_record_display use it; when cross-compiling, the repo's own third_party/aarch64_opencv is used and is skipped automatically if missing.
v2.0 no longer depends on third-party event SDKs — the codecs are an independent clean-room implementation. OpenCV is not a core dependency.
🚀 Next steps
- Run it: Quick Start (build + run
get_startedwithin 5 minutes) - Browse samples: Samples Overview → Toolkit samples (C++) (purpose and dependencies of the 7 samples)
- Read the API: C++ API / Python API
- Understand the principles: Your First C++ Program (minimal capture code for the four platforms USB / S100 / X5 / RK3588)
📁 Project structure
shimetapi_Hybrid_vision_toolkit_release/
├── run.sh # one-stop entry (build/install/samples/pydeploy/--list)
├── API.md / API_EN.md # public API reference (CN/EN)
├── include/shimetapi/ # public headers
│ ├── core/ # EventCD / Status / BufferPool / Frame / PixelFormat / Timestamp
│ ├── hv/ # Camera / DeviceConfig / EventFormat / EventPacket / ImageData
│ ├── codec/ # EVT2 / EVT3 / MIPI RAW8 codecs
│ └── io/ # EventReader / EventWriter / HybridWriter / HybridReader
├── lib/ # prebuilt libraries (closed-source binaries)
│ ├── x86_64/ # x86_64: USB + Ethernet (includes the python/ binding module)
│ ├── s100/ # S100 aarch64: MIPI + Ethernet
│ └── x5/ # X5 aarch64: MIPI + Ethernet
├── toolchains/ # cross toolchain files (aarch64-linux-gnu)
├── third_party/ # aarch64 OpenCV (for cross-compiling OpenCV-based samples)
├── samples/ # samples
│ ├── cpp/ # C++ samples (7)
│ └── python/ # Python samples
└── docs/ # board-side validation steps and smoke-test records📄 License
Copyright © ShiMetaPi. This repository distributes the HV Toolkit runtime libraries as precompiled binaries; the headers and sample code are provided for integration development. The EVT2/EVT3 codecs are an independent implementation based on public specifications (clean-room) and contain no third-party closed source.
🙋 Contact us
Open-source hardware website: https://www.shimetapi.cn (China) / https://www.shimetapi.com (overseas) Online documentation: https://forum.shimetapi.cn/wiki/zh/ Online community: https://forum.shimetapi.cn
HV Toolkit — making event-camera development easier 🚀
