This project will no longer be maintained by Intel.
Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
Intel no longer accepts patches to this project.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
Intel® Media Processing Library(IMPL) optimized media processing functions based on Intel platforms, the media processing functions include Color Space Conversion(CSC), resize, composition, Alpha blending and so on. IMPL is a oneAPI DPC++ based software library designed for providing optimized video processing filters using Intel CPU/GPU/FPGA-accelerator, DPC++ APIs are based on familiar standards-C++ STL, Parallel STL (PSTL), Boost.Compute, and SYCL*, more details about DPC++ please refer to DPC++.
With IMPL video processing functions, a complex pipeline can be set up flexibly. Besides, many industrial video formats are supported, which provides diversity for video production use cases. Moreover, based on cross-industry DPC++ language, IMPL library could easily offload video processing tasks to GPU, CPU or FPGA, which brings great convenience in customers use cases.
Here is the IMPL software architecture. IMPL library is the core to provide the multiple video processing functions. On the top of architecture is IMPL toolkits. In toolkits, there are samples developed from IMPL library. Configs and Scripts help to deploy the IMPL library conveniently. With benchmark tool, sample performance can be easily got. At the bottom, there are intel hardwares. Besides, there are more functions can be combined with IMPL. For example, codec and micro service may be part of IMPL pipeline to support multiple media workflow. IMPL library can also process the online video received from Intel Media Transport Library(IMTL). IMPL pipeline can be put in the container with docker technology. It can be seen that IMPL has many usage scenarios.
IMPL supports some multiple video processing filters to improve the video processing performance, such as optimized CSC, resize, rotation, composition and Alpha blending. CSC supports video format conversion. Alpha blending filter enables the transparency of one video, and then composite it with another video. IMPL will also support other features mentioned in the IMPL software architecture afterwards. These features could be combined together to set up complex pipeline flexibly according to customer's requirements. Please refer to feature guide for supported features in detail.
Please refer to build guide for how to build IMPL library.
Please refer to run guide for how to run IMPL sample application.
Please refer to API guide for how to use IMPL library to build pipelines.