Home

Awesome

Intel® Video Processing Library (Intel® VPL)

Intel® Video Processing Library (Intel® VPL) provides access to hardware accelerated video decode, encode, and processing capabilities on Intel® GPUs to support AI visual inference, media delivery, cloud gaming, and virtual desktop infrastructure use cases.

See the specification for additional information.

This repository contains the following components:

[!IMPORTANT]

Intel® VPL Tools are no longer in this repository. They have all been moved to https://github.com/intel/libvpl-tools

To use Intel® VPL for video processing you need to install at least one implementation. Here is a list:

Architecture

graph TD;
    dispatcher["Intel® VPL Dispatcher"]-->oneVPL-intel-gpu;
    dispatcher-->msdk["Intel® MediaSDK"];

As shown in this diagram, the Intel® VPL Dispatcher forwards function calls from the application to use the selected runtime.

Dispatcher behavior when targeting Intel® GPUs

Runtime loaded by Intel® VPL Dispatcher and their Microsoft* DirectX* support:

GPUMedia SDKIntel® VPLMicrosoft* DirectX* Support
Earlier platforms, back to BDW (Broadwell):heavy_check_mark:DX9/DX11
ICL (Ice Lake):heavy_check_mark:DX9/DX11
JSL (Jasper Lake):heavy_check_mark:DX9/DX11
EHL (Elkhart Lake):heavy_check_mark:DX9/DX11
SG1:heavy_check_mark:DX9/DX11
TGL (Tiger Lake):heavy_check_mark::heavy_check_mark:DX9/DX11*
DG1 (Intel® Iris® Xe MAX graphics):heavy_check_mark::heavy_check_mark:DX11*
RKL (Rocket Lake):heavy_check_mark:DX11
ADL-S (Alder Lake S):heavy_check_mark:DX11
ADL-P (Alder Lake P):heavy_check_mark:DX11
ADL-N (Alder Lake N):heavy_check_mark:DX11
DG2 (Intel® Arc™ A-Series Graphics):heavy_check_mark:DX11
ATSM (Intel® Data Center GPU Flex Series):heavy_check_mark:DX11
RPL-S (Raptor Lake S):heavy_check_mark:DX11
RPL-P (Raptor Lake P):heavy_check_mark:DX11
MTL (Meteor Lake):heavy_check_mark:DX11
ARL-S (Arrow Lake S):heavy_check_mark:DX11
ARL-H (Arrow Lake H):heavy_check_mark:DX11
LNL (Lunar Lake):heavy_check_mark:DX11
Future platforms...:heavy_check_mark:DX11

For TGL and DG1, if both Intel® VPL and Intel® Media SDK runtime are installed then the Intel® VPL Dispatcher will prefer Intel® VPL runtime unless the application requests D3D9 by setting the filter property "mfxImplDescription.AccelerationMode" to MFX_ACCEL_MODE_VIA_D3D9.

Installing Intel® VPL

Installation options

Intel® VPL may be installed:

Using Intel® VPL

Configure your shell environment

If you did not install to standard system locations, you need to set up the environment, so tools like CMake and pkg-config can find the library and headers.

For Linux:

source <vpl-install-location>/etc/vpl/vars.sh

For Windows:

<vpl-install-location>\etc\vpl\vars.bat

Link to Intel® VPL with CMake

Add the following code to your CMakeLists, assuming TARGET is defined as the component that wants to use Intel® VPL:

if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)
 set(CMAKE_LIBRARY_ARCHITECTURE x86)
endif()
find_package(VPL REQUIRED)
target_link_libraries(${TARGET} VPL::dispatcher)

Link to Intel® VPL from Bash with pkg-config

The following command line illustrates how to link a simple program to Intel® VPL using pkg-config.

gcc program.cpp `pkg-config --cflags --libs vpl`

How to Contribute

See CONTRIBUTING.md for more information.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Security

See the Intel® Security Center for information on how to report a potential security issue or vulnerability.