Architecture#

Intel® VPL functions fall into the following categories:

DECODE#

Functions that decode compressed video streams into raw video frames

ENCODE#

Functions that encode raw video frames into compressed bitstreams

VPP#

Functions that perform video processing on raw video frames

DECODE_VPP#

Functions that perform combined operations of decoding and video processing

CORE#

Auxiliary functions for synchronization

Misc#

Global auxiliary functions

With the exception of the global auxiliary functions, Intel® VPL functions are named after their functioning domain and category. Intel® VPL exposes video domain functions.

../_images/sdk_function_naming_convention.png

Intel® VPL function name notation#

Applications use Intel® VPL functions by linking with the Intel® VPL dispatcher library.

digraph {
  rankdir=TB;
  Application [shape=record label="Application" ];
  Sdk [shape=record  label="Intel® VPL dispatcher library"];
  Lib1 [shape=record  label="Intel® VPL library 1 (CPU)"];
  Lib2 [shape=record  label="Intel® VPL library 2 (platform 1)"];
  Lib3 [shape=record  label="Intel® VPL library 3 (platform 2)"];
  Application->Sdk;
  Sdk->Lib1;
  Sdk->Lib2;
  Sdk->Lib3;
}

Intel® VPL dispatching mechanism#

The dispatcher library identifies the hardware acceleration device on the running platform, determines the most suitable platform library for the identified hardware acceleration, and then redirects function calls accordingly.