Changes between Version 19 and Version 20 of Hardware/QuickSync


Ignore:
Timestamp:
Oct 25, 2021, 2:52:16 AM (5 years ago)
Author:
wenbin,chen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Hardware/QuickSync

    v19 v20  
    3333The hardware can be accessed through a number of different APIs:
    3434
     35libvpl on Linux / Windows
     36  This is a library from Intel which can be installed as part of Intel oneAPI Video Processing Library (OneVPL). OneVPL is the successors of MSDK and will support more encode and decode cases. spec: [https://spec.oneapi.io/versions/latest/elements/oneVPL/source/index.html]
     37VAAPI with iHD driver
     38  The newer VAAPI driver variant from Intel which is also used by libmfx and libvpl on Linux. There's a completely free distribution and one that includes closed-source kernels.
    3539DXVA2 / D3D11VA
    3640  These are standard Windows APIs, which are implemented by the Intel graphics driver to support video decode.
    37 libmfx on Linux
     41libmfx on Linux / Windows
    3842  This is a library from Intel which can be installed as part of the Intel Media SDK, and supports a subset of encode and decode cases.
    39 libmfx on Windows
    40   This is a library supplied with Intel's graphics drivers which supports all encode and decode cases.
     43VAAPI with i965 driver
     44  This is a mostly-free [#i965 (but see below)] driver for the libva / VAAPI instructure.  Most Linux distributions package it.
    4145Media Foundation
    4246  Another Windows API which supports some encode and decode cases via the Intel graphics drivers.  Not supported in ffmpeg.
    43 VAAPI with i965 driver
    44   This is a mostly-free [#i965 (but see below)] driver for the libva / VAAPI instructure.  Most Linux distributions package it.
    45 VAAPI with iHD driver
    46   The newer VAAPI driver variant from Intel which is also used by libmfx and libvpl on Linux. There's a completely free distribution and one that includes closed-source kernels.
    47 libvpl on Linux / Windows
    48   This is a library from Intel which can be installed as part of Intel oneAPI Video Processing Library (OneVPL). OneVPL is the successors of MSDK and will support more encode and decode cases. spec: [https://spec.oneapi.io/versions/latest/elements/oneVPL/source/index.html]
    49 
    5047
    5148== Linux ==
     
    5855
    5956||= Project Name =||= Supported Gen Graphics =||= Open Source Repo =||
     57||  oneVPL        ||  gen12+                    || [https://github.com/oneapi-src/oneVPL] ||
     58||  iHD driver    ||  gen8+                     || [https://github.com/intel/media-driver] ||
     59||  Libva         ||  gen5+                     || [https://github.com/intel/libva] ||
    6060||  MSDK          ||  gen8 ~ gen12(Rocket Lake) || [https://github.com/Intel-Media-SDK/MediaSDK] ||
    61 ||  Libva         ||  gen5+                     || [https://github.com/intel/libva] ||
    6261||  i965 driver   ||  gen5 ~ gen9.5             || [https://github.com/intel/intel-vaapi-driver] ||
    63 ||  iHD driver    ||  gen8+                     || [https://github.com/intel/media-driver] ||
    64 ||  oneVPL        ||  gen12+                    || [https://github.com/oneapi-src/oneVPL] ||
     62
    6563
    6664Note: For MSDK and oneVPL, the supported Gen Graphics listed here is for runtime. The dispatcher for each of them can load others runtime.   
    6765
    68 === i965  vs. iHD Driver vs. libmfx / libvpl ===
     66=== i965  vs. iHD Driver vs. libvpl / libmfx ===
     67
     68iHD Driver
     69* Supports VAAPI, libmfx (MSDK) and libvpl (oneVPL)
     70* Interoperable with OpenCL and Intel OpenCL extensions
     71
     72iHD + libvpl (oneVPL) / libmfx (MSDK)
     73* May give better encode quality in some cases (such as look_ahead).
     74* Provides higher encode throughput in many cases
     75* Wider codec support
     76* Common API for applications which may also run on Windows.
    6977
    7078i965 Driver
     
    7583* Interoperable with standard APIs (EGL/OpenGL, OpenCL).
    7684
    77 iHD Driver
    78 * Supports VAAPI, libmfx (MSDK) and libvpl (oneVPL)
    79 * Interoperable with OpenCL and Intel OpenCL extensions
    80 
    81 iHD + libmfx (MSDK) / libvpl (oneVPL)
    82 * May give better encode quality in some cases (such as look_ahead).
    83 * Provides higher encode throughput in many cases
    84 * Wider codec support
    85 * Common API for applications which may also run on Windows.
    86 
    8785
    8886== Windows ==
     
    104102
    105103
    106 === libmfx ===
    107 
    108 The library has a large number of options to set, the possible valid values of are dependent on the version and hardware.  libavcodec attempts to map common options sensibly to the libmfx options, but the mapping is crude and has holes, especially around rate control.
    109 
    110 
    111104=== libvpl ===
    112105The library is the successors of libmfx. It will support Intel's platform >= Alder Lake and will add new features. libvpl.so is compatible with MSDK's runtime (libmfxhw64.so) and libmfx.so also has forward compatibility with oneVPL's runtime (libmfx-gen.so).
    113106
    114107
    115 == Installing the Media SDK/oneVPL on Linux ==
     108=== libmfx ===
     109
     110The library has a large number of options to set, the possible valid values of are dependent on the version and hardware.  libavcodec attempts to map common options sensibly to the libmfx options, but the mapping is crude and has holes, especially around rate control.
     111
     112
     113== Installing the oneVPL / Media SDK on Linux ==
     114
     115
     116=== Install oneVPL ===
     117
     118Install dispatcher:
     119* Follow the guide of https://github.com/oneapi-src/oneVPL
     120Install runtime:
     121* Follow the guide of https://github.com/oneapi-src/oneVPL-intel-gpu
     122
    116123
    117124=== Install with open source MSDK stack ===
     
    124131}}}
    125132
    126 === Install oneVPL ===
    127 
    128 Install dispatcher:
    129 * Follow the guide of https://github.com/oneapi-src/oneVPL
    130 Install runtime:
    131 * Follow the guide of https://github.com/oneapi-src/oneVPL-intel-gpu
     133
     134
     135=== Build FFmpeg with oneVPL ===
     136
     137coming soon
    132138
    133139
     
    137143 ./configure --enable-libmfx && make -j8 && make install
    138144}}}
    139 
    140 === Build FFmpeg with oneVPL ===
    141 
    142 coming soon
    143145
    144146