New Tensor Stream Types


MyungJoo Ham
 

Dear All,

We are going to introduce new tensor GStreamer data types (MIME).

Conventional tensor types are other/tensor and other/tensors, which are statically typed tensors that required GST-CAP renegotiations if dimensions to update tensor dimensions.

The new tensor type, other/tensors-flexible is being introduced at https://github.com/nnstreamer/nnstreamer/pull/3203

With this other/tensors-flexible, the dimensions of tensors in a stream may be changed for each buffer frame. For example, we may now crop detected regions of tensors and send the stream of cropped tensors efficiently.

Another new tensor type, other/tensors-sparse is not yet started, but will be introduced for efficient transmission of sparse tensors.

In the early phase of development, the new types won't be supported by most of tensor-* elements; converters (tensors-* <--> tensors) should be used for such elements. Starting with tensor-filters and tensor-transform, we will increase the coverage of these "new types" eventually.

Because the introduction of new tensor types may affect nnstreamer developers/users and using such new types may enhance their applications significantly, I'd like to share the news to all nnstreamer developers and users.

Cheers, MyungJoo


MyungJoo Ham
 

Dear NNStreamer Users and Developers,

Making varying mime-types looks very ugly, I (and @jaeyun-jung, @sangjung-woo, and @anyj0527) have decided to consolidate tensor stream type definitions of GST Capabilities.

  1. other/tensor will become deprecated. We will keep backward compatibility for a while; but users are recommended to use other/tensors,num_tensors=1 instead of other/tensor.
  2. other/tensors-flexible and other/tensors-sparse won't be created. Instead, we will add format property to the conventional other/tensors.
  3. other/tensors's new property "format" has three values for now: { static = default, flexible, sparse }. If not specified, it is static.

When the stream type consolidation is completed with the implementation of "flexible tensors" and "sparse tensors" along with new elements (type converters, tensor-crop/composite, ...) related to new tensor types, we will mark the new stable version, 2.0.0.

Cheers, MyungJoo


MyungJoo Ham
 

On Wed, Jun 23, 2021 at 12:24 PM, MyungJoo Ham wrote:

Dear NNStreamer Users and Developers,

Making varying mime-types looks very ugly, I (and @jaeyun-jung, @sangjung-woo, and @anyj0527) have decided to consolidate tensor stream type definitions of GST Capabilities.

  1. other/tensor will become deprecated. We will keep backward compatibility for a while; but users are recommended to use other/tensors,num_tensors=1 instead of other/tensor.
  2. other/tensors-flexible and other/tensors-sparse won't be created. Instead, we will add format property to the conventional other/tensors.
  3. other/tensors's new property "format" has three values for now: { static = default, flexible, sparse }. If not specified, it is static.

We have proceeded with option 3 and most related patches are tested and merged. With a few initial versions of edge-AI related commits merges, we will be marking a new stable version, soon.

This will be tracked at https://github.com/nnstreamer/nnstreamer/pull/3438

When the stream type consolidation is completed with the implementation of "flexible tensors" and "sparse tensors" along with new elements (type converters, tensor-crop/composite, ...) related to new tensor types, we will mark the new stable version, 2.0.0.

Cheers, MyungJoo