Welcome back to the oneAPI channel. Data is exploding, and video is accounted
for almost 80% of the overall internet traffic Video is rich, video is the way we humans
see the world.
But video is expensive, 1 Minute of raw HD video can consume more than 9 Giga Byte of
memory So it is obvious why Video has to be compressed
before storing and streaming And Video has to be uncompressed before watching
or processing And this is true for data-centers, for your
laptop or a mobile device
oneVPL is oneAPI solution for video processing across devices and architectures
When dealing with so much data, and so much
processing , efficiency is a key factor..
You can always use the CPU, and oneVPL can help you decode hundreds of high-definition
video channels on Intel Xeon CPUs But with all the XPUs around, accelerators
of all kinds and specifically for video processing, it is smarter to offload video processing
tasks to a dedicated device..
Intel GPUs for example, the integrated or
the new discrete ones, have dedicated fixed functions to accelerate video processing
So oneVPL can not only help you offload all your video processing, which is a very heavy
task, from the CPU to the GPU.. But it will allow you to squeeze-in more video
channels and do more processing work on the GPU than the CPU can sometimes perform.
In previous videos we have talked about the
oneAPI components.
We mentioned the multi-device multi-vendor
open spec libraries..
One of them is the oneVPL..
The oneAPI video processing library
You can get it with the oneAPI Base toolkit, by direct download or remotely on the Intel
dev cloud… It works on Linux and Windows,
oneVPL is an evolution of the good old Intel
Media-SDK. If you are already using Media-SDK in one
of your products, no worries,… it can still be used.
There is backward and forward compatibility, and the two runtimes, of oneVPL and Media-SDK
can even co-exist on the same system. But new API functionally and support for new
Intel Hardware like the new discrete GPUs and others will only be added to oneVPL
HW-specific and OS-specific options, such
as Libva and DirectX Video Acceleration (DXVA), offer the lowest level control but also require
the highest programming effort with lowest portability between systems
oneVPL is HW portable, it is of higher-level
abstraction than libva or DXVA
Probably the best option if your product differentiates on decode and encode features
Or you are looking for greater level of control over hardware capabilities
But you can always call these lower-level
APIs from a media framework like FFMPEG or Gstreamer
It will give you even higher level of abstraction, and therefore, less controllability
but the minimal programming effort and smooth Integration with other part of the applications,
network protocol, audio processing and other functionality..
oneVPL is open-spec, and open source
If you navigate to oneAPI.com
You can find the full spec, Here is the oneVPL spec
Description of the architecture For example, here we see how the dispatcher
is choosing the right implementation for the right hardware
The programming guide, we will talk about it in the next video.
Another good source of information is the oneVPL github page.
You can find here information, code examples and more..
So, the full spec if here, in case you would like to implement it for your accelerator
or use it for your software plug-in.
The oneVPL supports state of the art real-time,
high performance media format conversions, fast image processing and more
We’ll go over few examples in the next video.. You could even use these samples to benchmark
your system
The oneVPL specification supports implementations
on a CPU, GPU, Video Accelerator Hardware, or others
So almost the same code could be used for multiple devices.
That also means that you can start programming today on CPU,
with all the tools and debuggers available for CPU and then port the code to any supported
XPU.. Like intel discrete GPU or others.
Here is the QR code for the oneVPL web page,
You can find here all the information you need.
You can get access the Intel dev-cloud.
Just fill in you details, and you get access a selection of HW devices, some of them are
totally new And all the SW tools you need
You can get the library, along with the base
toolkit here And a lot of information on Intel CPU, GPU,
release notes, programming and installation guides, code samples and more.
The bottom QR code will get you to a table of supported codecs per supported hardware
You can see here for example that you have hardware Decode and Encode support for JPEG
codec on Intel Iris Xe and Xe Max
In the next video we’ll look at the new
features of oneVPL, talk about the programming model and explore
one of the samples See you there