|
EdgeStream™ data flow diagram
|
|
EdgeStream™ Edge Computing Platform and Edge Streaming Platform
Overview
The EdgeStream™ edge computing and streaming platform processes and delivers data plane packets with highest QoS to/from edge nodes. Architected for high performance, reliability, and media quality, EdgeStream enables a wide range of edge computing applications: telecom, transcoding, lawful interception / intelligence, speech recognition and speaker ID, and RTP malware detection. EdgeStream includes optimized modules for packet processing, signal processing, and media quality enhancement.
Applications and Use Cases
EdgeStream™ is designed to enable or enhance edge computing applications and use cases that require high performance packet and media streaming and processing. Examples include:
- Telecom - small-form factor, high capacity implmentations, for example media gateways and SBCs (session border controllers)
- Cloud Comunications - multiparty call reconstruction, call recording, call transcription, bulk pcap processing
- Robotics - add voice commands (ASR, automatic speech recognition) and vision to small-form factor robots and appliances
- Factory, construction, warehouse equipment - implement accident avoidance for remotely controlled and automated equipment
- Vehicle automation - implement small server add-on / after-market products such as small form-factor Lidar
- Lawful interception & intelligence - high capacity processing and analysis of RTP media streams including RTP stream merging, synchronization, and media enhancement of related endpoints
- Media codec decoding, encoding, and transcoding
- RTP malware detection - detection of artificial RTP codec payloads
EdgeStream is designed from the ground up for 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
EdgeStream™ enables edge computing 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, edge computing 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. EdgeStream provides:
- RTP packet processing - packet management and caching prior to decoding, including handling of extreme packet loss and out-of-order
- Media codecs - a wide range of optimized and fully multithreaded codecs
- Signal processing - processing and analysis of media frames after decoding
- Inference - highly optimized, power-efficient, real-time inference
- High performance, and optimized for power consumption - cores allocated to EdgeStream are carefully managed, logged, and instrumented with telemetry
- Reliability - stress tested per Tier 1 carrier requirements, event logging, packet logging, and telemetry
- Security - designed for security and data privacy, as a primary objective
Comparison with Nvidia DeepStream
Below are workflow pipeline diagrams for EdgeStream™ and Nvidia DeepStream.
|
|
|
EdgeStream™ 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:
- Packet buffering (or caching) before decoding and frame buffering (or frame pooling) after decoding
- Multithreaded decoders to handle concurrent channels
- User-managed I/O
Key differences between the workflows include:
- DeepStream is GPU based and EdgeStream 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
- Given the fundamental qualifications in 1), EdgeStream offers flexibility including: (i) bidirectional I/O, (ii) per-channel frame buffers without batch processing limitations, and (iii) user-defined C/C++ processing
- EdgeStream 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
- Due to its telecom roots, EdgeStream 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.
|
EdgeStream™ 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 EdgeStream™ and GStreamer.
Key similarities between the workflows include:
- Packet buffering (or queuing) before decoding and frame buffering (or frame queuing) after decoding
- Multithreaded decoders to handle concurrent channels
- User-managed I/O
- Emphasis on user-defined C/C++ signal processing and other processing
- Emphasis on bi-directional I/O, including media encoders
Key differences between the workflows include:
- The most significant difference is thread organization. GStreamer uses a "thread slicing" data flow architecture, assigning slices of different pipelines within a thread, and EdgeStream 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. EdgeStream'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
- EdgeStream 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
- Due to its telecom roots, EdgeStream 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 EdgeStream™ software architecture is designed for high-performance real-time processing, reliability, and security. The architecture emphasizes:
- Extreme reliability - EdgeStream components are deployed worldwide, including Tier 1 telecom carriers that require five 9s reliability (or more). In Signalogic labs, combined functionality and stress tests are continuously run for 4000+ hour duration
- Control over power consumption and resource usage
- Fundamental security and data privacy design considerations - no third-party library dependencies, no outsourced coding, source code maintained in Escrow for inspection as needed
- Separate packet processing and signal processing modules, with well defined APIs and modifiable / extensible user-defined functionality
- Media codecs are included (VoLTE audio, video, legacy audio). User-defined codecs are supported to allow custom functionality, deprecated codecs (IPP, Media SDK), and chip accelerated codecs
DirectCore® Hardware Accelerator Option
Because of its underlying compatibility with
DirectCore®, which includes a virtualization compatible PCIe card driver, EdgeStream™ 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:
- Per server / box management interface for Linux applications, including multiple VMs and multiple users. DirectCore allows true multiuser operation, without time-slicing or batch jobs. Multiple host and VM instances can allocate and utilize c66x resources concurrently
- Direct interface to multicore CPU PCIe cards for user-defined C/C++ programs. Functions include card control, memory transfers, multiple card support ("unified pool of cores"), core assignment in VMs, c66x core executable file download, multiuser support, and more
- Symbol lookup -- DirectCore reads ELF format files to look up physical and logical addresses for C/C++ source code symbols (variables, structures, arrays, etc). A symbol lookup cache reduces overhead for commonly used symbols
SDK and Demo
The EdgeStream™ SDK (software development kit) and demo download is located on the
SigSRF Github page.
Ready-to-run Docker containers, with the EdgeStream SDK and Demo pre-installed on Ubuntu and CentOS distros, are located in the
Signalogic Docker Hub repository