Changes between Version 19 and Version 20 of Hardware/QuickSync
- Timestamp:
- Oct 25, 2021, 2:52:16 AM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Hardware/QuickSync
v19 v20 33 33 The hardware can be accessed through a number of different APIs: 34 34 35 libvpl 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] 37 VAAPI 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. 35 39 DXVA2 / D3D11VA 36 40 These are standard Windows APIs, which are implemented by the Intel graphics driver to support video decode. 37 libmfx on Linux 41 libmfx on Linux / Windows 38 42 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.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. 41 45 Media Foundation 42 46 Another Windows API which supports some encode and decode cases via the Intel graphics drivers. Not supported in ffmpeg. 43 VAAPI with i965 driver44 This is a mostly-free [#i965 (but see below)] driver for the libva / VAAPI instructure. Most Linux distributions package it.45 VAAPI with iHD driver46 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 / Windows48 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 50 47 51 48 == Linux == … … 58 55 59 56 ||= 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] || 60 60 || MSDK || gen8 ~ gen12(Rocket Lake) || [https://github.com/Intel-Media-SDK/MediaSDK] || 61 || Libva || gen5+ || [https://github.com/intel/libva] ||62 61 || 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 65 63 66 64 Note: For MSDK and oneVPL, the supported Gen Graphics listed here is for runtime. The dispatcher for each of them can load others runtime. 67 65 68 === i965 vs. iHD Driver vs. libmfx / libvpl === 66 === i965 vs. iHD Driver vs. libvpl / libmfx === 67 68 iHD Driver 69 * Supports VAAPI, libmfx (MSDK) and libvpl (oneVPL) 70 * Interoperable with OpenCL and Intel OpenCL extensions 71 72 iHD + 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. 69 77 70 78 i965 Driver … … 75 83 * Interoperable with standard APIs (EGL/OpenGL, OpenCL). 76 84 77 iHD Driver78 * Supports VAAPI, libmfx (MSDK) and libvpl (oneVPL)79 * Interoperable with OpenCL and Intel OpenCL extensions80 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 cases84 * Wider codec support85 * Common API for applications which may also run on Windows.86 87 85 88 86 == Windows == … … 104 102 105 103 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 111 104 === libvpl === 112 105 The 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). 113 106 114 107 115 == Installing the Media SDK/oneVPL on Linux == 108 === libmfx === 109 110 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. 111 112 113 == Installing the oneVPL / Media SDK on Linux == 114 115 116 === Install oneVPL === 117 118 Install dispatcher: 119 * Follow the guide of https://github.com/oneapi-src/oneVPL 120 Install runtime: 121 * Follow the guide of https://github.com/oneapi-src/oneVPL-intel-gpu 122 116 123 117 124 === Install with open source MSDK stack === … … 124 131 }}} 125 132 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 137 coming soon 132 138 133 139 … … 137 143 ./configure --enable-libmfx && make -j8 && make install 138 144 }}} 139 140 === Build FFmpeg with oneVPL ===141 142 coming soon143 145 144 146
