2 - 2.3.0 is a devel version for 2.4.0 release. Unstable and experimental features are welcomed in this version.
5 - This is NNStreamer 2.2.0 Tizen 7.0 M2 release.
8 - Edge-AI (Among-Device AI) implementation is moved to nnstreamer-edge so that non-nnstreamer/gstreamer systems can connect to nnstreamer pipelines.
9 - NNStreamer-Edge provides inter-pipeline stream connections with various protocols transparently.
10 - NNStreamer-Edge does not depend on gstreamer/nnstreamer; thus, non-gstreamer systems may connect to nnstreamer/gstreamer pipelines via nnstreamer-edge.
11 - The "MQTT-Hybrid" protocol for high bandwidth communication w/ mqtt features included.
13 - ML-Service API phase 2 is completed and released via api.git
16 - tensor_filter / DeepViewRT (NXP)
17 - tensor_filter / MXNet
18 - tensor_filter / tensorflow2-lite-custom (allow to designate user-supplied tf2-lite binaries)
21 - tensor-query-client, tensor-query-serversrc/sink use nnstreamer-edge. Protocols are handled at nnstreamer-edge and it now support aitt as one of its backends.
22 - Float16 (FP16) tensor stream support.
23 - Rank limit of tensor stream increased: 4 --> 8 (experimental. with known issues)
24 - Error messages, exception handling, and documentations are improved for application / pipeline writers.
27 - Added several workarounds for glitches of Qualcomm-SNPE's libraries.
28 - Support additional .ini file for subplugin configuration. Required by clients who want to separate permissions for controlling user-installable subplugins and system-installable core files.
29 - Ability to run multiple instances of unit tests in a single machine.
30 - Add gcc >= 11 support
31 - Fixed multithreading error in tensor_filter::python
32 - Python2 dropped. Only Python3 is supported.
33 - Refactored to increase SAM score (architecture quality assessment).
34 - Query, GRPC: added minor features requested by users.
35 - A lot of test cases and fixes introduced.
36 - Ubuntu 22.04 published.
37 - Python >= 3.10 support.
38 - Tensor-decoder::bounding-box. ssd-mobilenet v3 support
40 - Experimental features
41 - edgesrc, edgesink. stream pub/sub elements based on nnstreamer-edge
44 - Multithreading errors in tensor_decoder::python and tensor_converter::python
45 - FP16 in x64/x86 is not tested. (tested in armv7l/aarch64 only)
46 - Rank > 4 support is not activated by default. Dimension properties of GSTCAP is not fully backward compatible (to be fixed).
49 - Tizen 7.0 M1 RCx preparation and NNStreamer Mini Summit 2022-04 release.
51 - NNStreamer-Edge refactoring (module for Among-Device AI (a.k.a. Edge-AI))
52 - Ongoing effort of nnstreamer-edge separation from nnstreamer.
53 - In the future, nnstreamer-edge will provide among-device AI functions and nnstreamer will provide gstreamer plugins for such functions. Non-gstreamer systems may connect to nnstreamer-edge based pipelines without gstreamer as clients.
54 - NNStreamer-Edge will be using AITT as its default backend, leaving protocol issues to AITT.
55 - In the future, nnstreamer-edge will be compatible with non-Linux ultra-lightweight systems (e.g., Tizen-RT)
57 - ML-Service API preparation is going on at api.git.
60 - MQTT timestamping w/ NTP. (later will be migrated to nnstreamer-edge & aitt)
61 - Query (later will be migrated to nnstreamer-edge & aitt): robustness support, mqtt-hybrid protocol, performance fixes for multi-clients.
62 - More coverage for SNPE support: quantized model support, SNPE dimension bug workaround, fixes from/for production team.
63 - Flexible tensor support w/ decoder, converter, flatbuffer.
66 - MQTT unittest basis, generic stream support, android support, timeout handling, ... (and many!)
67 - Utility functions exported for plugin writers.
68 - Tensorflow-lite delegation refactored for generality: may use XNNPACK more easily.
69 - Tensorflow-lite multi-lib support.
70 - PyTorch: support complex output tensor formats.
71 - NNStreamer multi-lib support.
72 - Decoder: boundingbox-yolov5
73 - Filter: TRIx-Engine support. (NPUs of Samsung 2022 TV)
74 - Docker support refactored and cleaned up.
79 - Build errors with recent compiler updates. (gcc 11)
80 - Fixes upstreamed from productions
81 - Errors w/ library updates: Lua >= 5.3, GLib >= 2.68
82 - Regression fixes: openvino, edgetpu, tensorrt
83 - Memory leaks in C++ subplugin infra.
85 - Known issues: PPA/Launchpad build broken!
89 - 2.1.0 is a devel version for 2.2.0 release, which is planned to be the LTS release of 2022.
92 - NNStreamer for Edge-AI
93 - MQTT Pub/Sub streams can be synchronized with timestamp values
94 - MQTT-Hybrid Pub/Sub protocol (send high-bandwidth data streams with HLS) is not included in 2.0. This feature will be enabled with 2.1+ releases.
95 - Query (workload offloading) with TCP is included as an experimental feature. Query will be updated to use MQTT-Hybrid in future 2.1+ releases.
97 - Stream data type redefined (backward compatible)
98 - Flex-tensor and Sparse-tensor as a format of "other/tensors".
99 - "other/tensor" is obsoleted (but will be kept supported for a while). Use "other/tensors,num_tensors=1" for single tensor stream.
100 - The conventional tensor stream is "Static-tensor", which is the default format of "other/tensors".
101 - Many elements of nnstreamer (including tensor-transform) support "Flex-tensor" as well as "Static-tensor".
102 - The MIME type is "other/tensors,format={static, flexible, sparse}". If not specified, format is static.
105 - Flexbuf supported as subplugins of converter and decoder.
106 - LUA scripts supports as custom filters. (tensor-filter)
107 - Debian pdebuild support (tested with Sid).
110 - Decoder/Bounding-boxes: more options for more diverse neural net settings.
111 - SNAP+TF-Lite support.
114 - Tensor-filter: Python test fail, TVM bugs, code complexity, error messages, C++ exception handling
115 - Tensor-crop: region setting, timestamp handling
116 - Tizen/Family-Hub support.
117 - Yocto, MacOS build errors.
118 - ARMNN version updates.
121 - NNStreamer for Edge-AI project started.
122 - Main features of 1.8.0 release and its immediate successors will be "Edge-AI", which allows distributed on-device AI inferences.
124 - The new stream type, "Flex-Tensor", is introduced. Dimensions and types of tensor stream may vary per frame without cap-renegotiations.
125 - Many nnstreamer's tensor-* elements support Flex-Tensor.
126 - You may use tensor-converter to convert between flex-tensor and (static) tensor.
127 - MQTT-SINK and MQTT-SRC elements are added for edge-AI systems with MQTT pub/sub streams.
128 - MQTT streams support "ANY" capabilities.
129 - Assuming that clocks of nodes are synchronized by NTP or other mechanisms, pipeline users may send timestamp related info via MQTT streams for multi-source synchronization.
130 - Tensor-crop, a new nnstreamer-gstreamer element.
131 - Basic feature only (cropping a tensor stream with information of another tensor stream)
134 - GSTPipeline to PBTXT parser. You can use PBTXT-pipeline visualization tools with the parsed results.
135 - FlexBuffers support.
138 - Tensor-IF with custom (user code plugged at run-time) conditions
139 - Tensorflow-lite delegation designation is generalized.
140 - Tensorflow2-lite XNNPACK delegation
141 - NNTrainer-inference can be attached as a filter along with both API sets.
142 - CAPI: updated documentation, added new enums for recent nnstreamer features, ...
143 - API interface and implementation is separated to another git repository for better architecture.
144 - Tensor-converter and Tensor-decoder support custom ops.
146 - Filter subplugin priority with ini file configuration.
147 - Decoder/Bounding-Box improved: output tensor mapping, clamp bounding box locations, labeling issues, more options.
148 - Decoder/Pose-Estimation improved: proper labeling.
149 - Testcases added for gRPC, Android, Tensor-rate, ...
150 - Refactoring (reduce complexity, remove duplicity, build options, ...)
151 - Android build & release upgraded.
152 - Converter usability upgrade: property to list subplugins, subplugin naming/install rules.
153 - Pytorch: exception handling, Android build
154 - gRPC: per-IDL packaging, interface updates, common-code revise, async mode, ...
155 - Support Tensorflow 2.4 API (TF has broken backward compatibility again)
156 - Tensor-transform: may operate on chosen tensor or channel only.
157 - Tensor-transform: new option for normalization, "dc-average", is added.
159 - Android resource leak.
160 - CAPI timing, header issues, seg-faults, memory leaks, ...
161 - MacOS build errors.
162 - TensorRT dependency bugs
163 - Edge-TPU compatibility issues.
164 - Unit test fixes (memory leaks, resource leaks, skip disabled features, ...)
165 - Fixed reported issues (security, memory leaks, query-caps, ...)
167 - Support for Python 2.x is dropped.
168 - Automated doc-page generation with Hotdoc.
169 - Android build now includes GST-Shark for performance profiling.
173 - Tensor-IF, a new element. It allows to create conditional branches based on tensor values.
174 - Join, a new element. It merges output sinks from src pads of different elements with the same GST-Cap.
175 - Tensor-rate, a new element. It allows throttling by generating QoS messages.
177 - TF1-lite and TF2-lite coexistance
178 - TFx-lite NNAPI, GPU Delegation
181 - hw-accel options for tensor-filters are refactored
182 - python3-embed enabled if python3 >= 3.8
183 - Subplugin initialization optimization.
184 - Docker scripts for Ubuntu developers.
187 - flatbuf dependency related with tensorflow-lite.
188 - tensor-decoder configures framerate.
189 - Dynamic dimension related API issues fixed.
190 - MacOS, Yocto compatibility issues fixed. (A few Yocto known issues are still remaining.)
191 - License mismatches resolved.
192 - A few Test cases fixed.
193 - Packaging issues fixed and style cleaned-up.
196 - A lot of interesting sample applications are added.
199 - 1.7.0 is a devel version for 1.8.0 release, which is planned to be released synchronously with Tizen 6.5 releases.
202 - This is an official release for Tizen (6.0-M2) and Android developers. 1.6.y will be an LTS released with hotfixes in the future. We will move on to 1.7.0 after this release.
205 - Minor API and documentation updates
206 - APIs for custom filters
207 - C API latency optimization
210 - Java API latency optimization
211 - nnfw (ONE) runtime support, custom-easy support.
212 - Size optimization for products.
215 - Plug-and-play sub-plugins for converters
216 - Flatbuf --> NNStreamer converter
217 - Protobuf --> NNStreamer converter
218 - NNStreamer --> Flatbuf decoder
219 - NNStreamer-Check utility for nnstreamer developers.
220 - Decoders accept dynamic configurations.
221 - Converters may emit multi-tensor streams.
222 - NNShark subproject being integrated.
223 - Tensorflow-lite 2 support
226 - Decoder subplugins w/ NEON support (depth/deeplab)
227 - Unregister for custom-easy
228 - Version fetching mechanisms.
229 - More profiling capabilities.
230 - Edge-AI examples and tests.
231 - NNFW support for latest versions and more tensor types.
232 - Product-wise size and build-time optimization.
233 - Memory operation optimization.
234 - More exception handling routines.
235 - NEON and other CPU optimization techniques determined in run-time.
238 - Each instance of a custom filter or subplugin now have independent properties.
239 - Decoder (image-seg), performance profiling property of filter
240 - Transform negotiation errors, auto-fw filter, repo-sink, memory leaks
241 - Build-deps cleaned up, Code-style check setup for C++,
242 - Edge-TPU & Movidius subplugins tested and fixed.
243 - Packaging issues, permission issues of sensor-src (Tizen)
244 - Caffe2/Pytorch w/ Protobuf issues. Per-arch build and test issues.
245 - EOS handling with APIs.
246 - 0 SVACE and 0 Coverity issues.
249 - Mediapipe's graphs (NNStreamer pipeline equivalent) may be embedded as an element in NNStreamer pipeline
250 - Qualcomm SNPE is supported (tensor-filter subplugin)
251 - Verisilicon Vivante is supported (tensor-filter subplugin)
252 - NNStreamer --> Protobuf decoder added.
253 - New tensor-filter subplugin API "v1" released. (with v0 backward compatibility)
254 - Tensor-filter now accepts C++ classes as a subplugin. Edge-TPU subplugin is re-written as an example.
256 - Meson script re-worked.
257 - Semantics of hardware-acceleration options for tensor-filter re-worked.
258 - API/Android: nnfw-runtime (neurun) and SNPE support
259 - API/Android: usability update.
260 - API/Android: less invokation latency. (more optimization coming in next versions)
261 - API/C: bugfixes, architectural upgrade, latency reduction.
262 - tensor-filter has latency and throughput performance monitors.
263 - tensor-sink is by default "sync=false". If appsink or tensor_sink in NNStreamer Pipeline API's pipeline has sync=true, emit warning messages.
264 - Architectural updates: lower CC, less duplication, removed dependency cycles, less complicated #if statements and blocks.
265 - Test suite updates: timeout handling, arm-arch error fixes, more test cases (supplying more negative cases), floating-point handling. and a lot more fixes and performance (latency) optimizations.
266 - Build script updates: cleaned up dependencies and applied "feature" meson feature.
267 - No more essential class in assert() for optimized binaries.
268 - Much less assertions. Apply error-handling instead.
269 - Daily build & test activated and published.
270 - Rules & policy updated to comply with LF/AI.
271 - Memory leaks removed: from demux, split, and a few more components.
273 - Known bug: edge-TPU subplugin is not working in Tizen devices recently.
276 - Use gmodule instead of dlfcn for wider compatibility.
277 - Get/Set properties for tensor-filters & C-API.
278 - Support C++ class as tensor-filter subplugin. (experimental. C++ filter API is not yet fixed).
279 - Highly configurable Android build. (for smaller app binaries).
280 - Tensor-Filter auto framework detection mode (C-API support).
281 - Linux Foundation AI compliance & Github ORG migration.
282 - Upgraded Tensor-Filter API (C).
283 - Applied portable logging mechanism.
284 - Removed assertion failure for Tizen sensor errors.
286 - Fixed issues found by static analyzers>
287 - More error/exception handling for robustness.
288 - Shows negative test case statistics.
289 - OpenCV compatibility fixes.
292 - Filter subplugin APIs updated. Both V0 (minor changes to the conventional) and V1 (refactored API set) are supported.
293 - Fixed major issue: now, each instance of a filter subplugin may have different property values.
294 - Tizen 6.0 API ACR preparations.
295 - Allow to build Single-API-only Android build for minimal ML-API usage.
296 - Compatibility fix for GStreamer 1.16; Gst 1.16 has additional audit that blacklists behaviors of older NNStreamer.
297 - Met Linux Foundation / AI requirements. (policy files)
298 - Compatibility fix for LLVM/Clang and macOS.
300 - Verisilicon-Vivante: Vivante is supported with private proprietary plugin. There was a minor infrastructural updates to assist it. We will work on opening this code; we may need assistance from Verisilicon. (they need to open source a few headers for general public to build Vivante-subplugin.)
301 - TensorFlow-lite: recently added data types of Tensorflow-lite is supported.
302 - OpenVINO/Caffe2/Tensorflow/NNFW/NCSDK2/ARMNN/Python: refactored hardware acceleration options.
304 - Fixed issues found by static analyzers.
305 - Added unit tests to widen coverages and to test exception cases.
308 - 1.5.0 is a devel version for 1.6.0 release.
311 - Stable release with API changes.
312 - *Tensor-filter subplugin API has been updated.*
313 - Stability fixes & added unit test cases.
317 - 1.3.1 is a devel version for 1.4.0 release.
318 - Support C++ class custom filters. (C++ class as a NN model)
319 - A tensor-filter instance may have multiple model files easily.
320 - Updated env-var handling logic for non-Tizen devices.
321 - Unit test: higher visibility & behavior correctness fixes.
322 - Auto-generated test cases for tensor-filter sub-plugins (extensions).
323 - Android/Java support with more convinient methods.
325 - Support openVino as a tensor-filter, allowing to accelerate with Intel NCS/Myriad.
326 - Support NCSDK as a tensor-filter.
327 - Support ARMNN as a tensor-filter. (support TF-Lite and Caffe models)
328 - Reduce asserts and add error handling routines.
329 - Support Androdi/SNAP as a tensor-filter.
330 - Support hardware accelerators & 8-bit quantization for NNFW-Runtime & stabilize NNFW-Runtime support with test cases.
331 - Support Edge-TPU and its runtime as a tensor-filter.
332 - Filter subplugins refactored to have a single source file. (.cc)
333 - Support model reload.
334 - A lot of fixes for bugs found by Coverity, SVACE, and other static analysis tools.
337 - 1.3.0 is a devel version for 1.4.0 release.
338 - From 1.2.0, 1.even.x is a release and 1.odd.x is a devel version.
339 - When 1.3.x is "done", it will be release as 1.4.0 and move on to 1.5.0.
342 - Tizen Sensor Framework Integration. (tensor_src_tizensensor)
343 - Single C-API latency shortened by bypassing GST pipeline constructions.
344 - NNFW-Runtime Integration (tensor_filter::nnfw)
345 - NNFW: https://git.tizen.org/cgit/platform/core/ml/nnfw/
346 - Integrated & tested along with ARMCL.
347 - C++ classes are suggested. (WIP)
348 - Converter accepts external subplugins. (tensor_converter::*)
349 - Custom-Easy mode (tensor_filter::custom_easy) for future "lambda func" support.
350 - Support Tizen ncsdk2.
351 - Types for path configurations are no more hardcoded.
352 - Overall architecture improved/refactored. (Lowered CC, DC, and so on)
353 - Fixes from 1.0.1 (Tizen 5.5 M2's stable/commercialization branch)
354 - Documentation updates and bugfixes.
357 - Tizen Public C-API (Single & Pipeline) Reviewed and Confirmed!
358 - Tizen Public C#-API (Single) Reviewed and Confirmed!
359 - Tested with Tizen Studio.
360 - Official API test suites released via Tizen.
361 - Android Java-API released via JCenter for Android Studio users.
362 - Passed Quality Assurance. (code quality, stability, security, compliance, and so on)
363 - Fixed a lot of minor bugs in the course.
365 - Fixed regressions related with ROS and Yocto support.
368 - Tizen Public C-API Single/Pipeline RC1 Fixed for 5.5 M2
369 - Tizen Public C-API RC2 features included. (pipeline whitelist, aliasing)
370 - Tizen Public C#-API Single/Pipeline RC1.
371 - Android Java-API and build infrastructure. Ready for JCenter release.
372 - Tensorflow-lite / NNAPI tested & fixed.
373 - Tensorflow 1.13 compatibility fix. (1.09 kept supported)
374 - Caffe2/PyTorch support.
376 - This is effectively 1.0-RC1.
379 - A lot of security issues and bugs fixed. (for Tizen 5.5 M1 release)
380 - Tizen Public C-API Pipeline for 5.5 M1.
381 - Tizen Public C-API SingleShot Prototype.
382 - Yocto/Openembedded layer released.
385 - Android source draft.
386 - Python custom filter.
387 - Android sample application released.
388 - Tensorflow-lite / NNAPI support.
391 - Tizen Public C-API Draft Prototype.
392 - Yocto/Openembedded Layer Tested.
393 - ROS sink/src supported and partially tested.
395 - Custom filter codegen.
396 - Capability to cut the dependencies on audio/video plugins for minimal memory footprint.
397 - More clear error messages when the pipeline cannot be initiated.
398 - Increased unit test coverages with additional unit test cases.
399 - Minor feature adds on elements.
400 - A series of bug fixes.
403 - Full "Plug & Play" capability of subplugins. (tensor_filter, tensor_filter::custom, tensor_decoder)
404 - Fully configurable subplugin locations.
405 - Capability to build subplungins wihtout the dependencies on nnstreamer sources.
406 - Revert Tensorflow input-memcpy-less-ness for multi-tensor support. (Will support memcpy-less-ness later)
407 - Support "String" type of tensors.
408 - API sets updated. (still not "stable")
409 - Code location refactored.
410 - Yocto/Openembedded Layer Registered (not tested): "meta-neural-network".
411 - No more additional shared libraries.
412 - Better error handling and messages for a few plugins.
413 - Android support. (N / arm64)
416 - Build system migration cmake --> meson.
417 - Support Tensorflow without input/output tensor memcpy.
418 - other/tensor stream format updated
419 - From 0.1.0, a single property, "dimension", describes the whole dimension instead of "dim1", "dim2", ...
420 - Objective 1: in the future, we may support tensors with more than 4 dimensions without updating the protocol.
421 - Objective 2: it was just too ugly.
422 - Example applications migrated to other git repo to make this repo ready for upstreaming in the future and to ensure buildability for third party developers.
423 - Support run-time attaching subplugins. (filter and decoder)
424 - Support "ini" and envvar configurations for subplugin locations.
425 - Dynamic external recurrences.
426 - Added Subplugin API sets. (draft. do not expect backward compatibility)
427 - Several bug fixes including memory leaks, incorrect logs, type checks and others.
430 - Support external recurrencies with tensor_repo (more test cases are to be released later)
431 - Support multi-operators with a single instance of tensor_transform (with a few limitations on the supported orders of operators)
433 - Support bounding-box decoding (tensor_decoder)
434 - Support subplugins for tensor_decoder
435 - Internal APIs for dynamic configurations and subplugins. tensor_filter and tensor_decoder will be updated to use such configurations in the later releases.
436 - Tensorflow support is in-progress, although it's postponed to later releases. (Still, tensorflow-lite is the only framework officially supported)
437 - Pipeviz support. (tensor_converter/filter/decoder)
438 - Tested with MTCNN. (each "part" is separated as an instance of tensor_filter)
439 - Meson build introduced.
440 - Released via build.tizen.org. (Tizen Devel. x64/x86/arm32/arm64) and launchpad.net (Ubuntu/PPA. x64/x86/arm32/arm64)
441 - Static build for Android. (Not tested. No example. An example Android application is to be released later)
442 - Timestamp handling / Synchronization support.
443 - AWS App Testing Enabled. (testing nnstreamer application with virtual camera devices in AWS)
444 - arm64 support added.
447 - Support multi-tensors (other/tensors) along with mux, demux.
448 - Support audio, test, binary-octet streams. (tensor converter)
449 - Support image-classification decoding. (tensor_decoder)
451 - More subfeatures for transform.
452 - Support frame-merging by time. (tensor_aggregator)
453 - More test cases w/ TAOS_CI integration.
454 - Applied to and tested w/ real products.