Added
- Intel® VPL API 2.17 support, including new APIs for reporting decoder capabilities, accessing bitstream buffers in video memory, configuring encoder pre-processing, and documentation updates
Intel 开源的视频处理库,提供统一 API 和调度层,方便在不同 Intel 硬件上做视频解码、编码和转码加速。
Intel® Video Processing Library (Intel® VPL) API, dispatcher, and examples
README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。
README 没有说明硬件要求。
这个项目的说明还在生成中,先参考下面「最近发版」和 README。
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.
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.
INSTALL_EXAMPLES build option to control installation of example
source code and contentBUILD_EXAMPLES build option requiring INSTALL_DEV to have any effectvpl-infer unable to load model if built in debug modeIntel® 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.
Intel® VPL API 2.14 support, including new quality and speed settings for AI based video frame interpolation, new algorithm and mode selection options for AI based super resolution, and HEVC level 8.5 decode support.
Improved support for Python 3.12 development environments.
ID_LIKE.vpl-infer example will fail to load model if built with CMake version higher than 3.25.3 on WindowsIntel® 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.
vpl-infer example will fail to load model if built with CMake version higher than 3.25.3 on Windows还没有人点评。第一个说出真实体验的人最有价值。
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:
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.
Runtime loaded by Intel® VPL Dispatcher and their Microsoft* DirectX* support:
| GPU | Media SDK | Intel® VPL | Microsoft* 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.
Intel® VPL may be installed:
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
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)
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`
See CONTRIBUTING.md for more information.
This project is licensed under the MIT License. See the LICENSE file for details.
See the Intel® Security Center for information on how to report a potential security issue or vulnerability.
No code changes may be introduced that would regress support for any currently supported hardware. All contributions must ensure continued compatibility and functionality across all supported hardware platforms. Failure to maintain hardware compatibility may result in the rejection or reversion of the contribution.
Any deliberate modifications or removal of hardware support will be transparently communicated in the release notes.
API options are solely considered as a stable interface. Any debug parameters, environmental variables, and internal data structures, are not considered as an interface and may be changed or removed at any time.