Follow us on Facebook
Follow us on Twitter
Signalogic on LinkedIn

Home > Products > Software > Host Software > Mediashark™ Software
Mediashark™ data flow diagram
Mediashark™ data flow diagram

Mediashark™ High Performance Media and Streaming Platform


Overview

The Mediashark™ media and streaming platform is optimized for performance - high capacity servers, telecom edge nodes, robotics, drones, automated vehicles, and other applications requiring highly efficient data plane processing with high QoS. Architected for high performance, reliability, and media quality, Mediashark enables a wide range of use cases: telecom, transcoding, lawful interception / intelligence, speech recognition and speaker ID, RTP malware detection, and more. Mediashark includes optimized modules for packet processing, signal processing, and media quality enhancement.

Applications and Use Cases

Mediashark™ is designed to enable or enhance media applications and use cases that require high performance packet and media streaming and processing. Examples include: Mediashark is designed from the ground up for high performance, real-time operation, with careful control of resources, lock-free shared and distributed memory structures, thread control and pre-emption monitoring, and profiling necessary for high capacity applications.

Optimized, Cost-Efficient, and Secure vs Public Cloud

Mediashark™ enables media applications with massive data plane requirements that need high per box / per server density and precise control over power consumption. Unlike cloud-native applications that scale horizontally by adding servers, each running excessive resource footprints, media applications must be per box efficient, with granular control over footprint configuration and resource usage. Also unlike cloud-native applications, achieving secure computing in on-premise or hybrid cloud implementations is less complex, with less risk. Mediashark provides:

Comparison with Nvidia DeepStream

Below are workflow pipeline diagrams for Mediashark™ and Nvidia DeepStream.

Mediashark™ workflow diagram      DeepStream workflow diagram
Mediashark™ workflow diagram      DeepStream workflow diagram (Nvidia webpage link). Nvidia is a registered trademark and DeepStream is a trademark of Nvidia Corporation.
Key similarities between the workflows include:
  1. Packet buffering (or caching) before decoding and frame buffering (or frame pooling) after decoding
  2. Multithreaded decoders to handle concurrent channels
  3. User-managed I/O
Key differences between the workflows include:
  1. DeepStream is GPU based and Mediashark is CPU based. Depending on application needs, one or the other may be essential or ruled out due to power consumption, performance, or platform dependency requirements
  2. Given the fundamental qualifications in 1), Mediashark offers flexibility including: (i) bidirectional I/O, (ii) per-channel frame buffers without batch processing limitations, and (iii) user-defined C/C++ processing
  3. Mediashark transitions from per stream external I/O to per channel internal processing. This is because media RTP streams may contain RFC8108 or other instances of dynamic channels within each stream
  4. Due to its telecom roots, Mediashark handles packet processing, including filtering, packet loss repair (both media and DTX), out-of-order repair (up to 500+ packet depth), RFC8108 dynamic channels, timestamp repair, and packet logging / tracing
A functional mapping between workflows is shown below, with DeepStream data flow and modules overlaid in green and blue.

Mediashark™ DeepStream functional mapping
Mediashark™ DeepStream functional mapping

The mapping diagram highlights similarity in packet and frame data flow and differences in signal processing and user-defined processing implementation.

Comparison with GStreamer

Below are workflow pipeline diagrams for Mediashark™ and GStreamer.

Mediashark™ workflow diagram      GStreamer workflow diagram
Mediashark™ workflow diagram      GStreamer workflow diagram (GStreamer webpage link)

Key similarities between the workflows include:
  1. Packet buffering (or queuing) before decoding and frame buffering (or frame queuing) after decoding
  2. Multithreaded decoders to handle concurrent channels
  3. User-managed I/O
  4. Emphasis on user-defined C/C++ signal processing and other processing
  5. Emphasis on bi-directional I/O, including media encoders
Key differences between the workflows include:
  1. The most significant difference is thread organization. GStreamer uses a "thread slicing" data flow architecture, assigning slices of different pipelines within a thread, and Mediashark uses a "unified thread" architecture, assigning one thread per pipeline. GStreamer's architecture is more suitable to handling unbalanced / uneven workloads, for example multiple data sources and a few decoders. Mediashark's data flow architecture is more suitable to per pipeline real-time performance. In general, thread slicing approaches aim for efficient use of processing resources, but increase the need for thread synchronization (spinlocks etc) thus decreasing real-time performance. This also tends to make thread slicing less effective on embedded systems or energy constrained systems with fewer (or specialized) cores
  2. Mediashark transitions from per stream external I/O to per channel internal processing. This is because media RTP streams may contain RFC8108 or other instances of dynamic channels within each stream
  3. Due to its telecom roots, Mediashark handles packet processing, including filtering, packet loss repair (both media and DTX), out-of-order repair (up to 500+ packet depth), RFC8108 dynamic channels, timestamp repair, and packet logging / tracing

Software Architecture

The Mediashark™ software architecture is designed for high-performance real-time processing, reliability, and security. The architecture emphasizes:

DirectCore® Hardware Accelerator Option

Because of its underlying compatibility with DirectCore®, which includes a virtualization compatible PCIe card driver, Mediashark™ can be modified to support a wide range of hardware accelerators. Currently DirectCore supports supports Texas Inst multicore accelerator PCIe cards. The DirectCore library + driver combination supports:

SDK and Demo

The Mediashark™ SDK (software development kit) and demo download is located on the SigSRF Github page.

Ready-to-run Docker containers, with the Mediashark SDK and Demo pre-installed on Ubuntu and CentOS distros, are located in the Signalogic Docker Hub repository