Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
Introduction

A pipeline framework for developing video and image processing applications. Supports multiple GPUs and Machine Learning toolkits.

Design

  • Reusable Modules
  • Easy to Test
  • Memory Management
  • Thread Management
  • Parallel Processing

Stack

  • C++
  • CUDA
  • CMake

Libraries

  • Boost C++
  • Nvidia
    • CudaToolkit
    • NPPI
    • NvJPEG
    • NvENC
    • Jetson MultiMedia API
  • Intel Media SDK
  • OpenCV
  • Live555

Core Concepts

Module

Module

Base class

Pins

Two modules are connected using pins

Queue

Blocking, NonBlocking

FrameMetadata

Properties of a pin. Width, Height, MemType, FrameType

FrameFactory

Responsible for reusing memory

Frame

Data is transported using frame

FrameContainer

Has multiple frames

ModuleProps

fps, Queue Strategy

Module Functions

  • addOutputPin
  • validateOuputPins
  • setNext
  • validateInputPins
  • init
  • term
  • processSOS
  • processEOS
  • produce
  • process
  • send

PipeLine

Responsible for lifecycle events

  • appendModule
  • init
  • run_all_threaded
  • stop
  • term
  • wait_for_all

Unit Tests

BOOST Tests

Basic Modules

Sample Cuda Modules