O driver de mídia Intel (R) para VAAPI é um novo driver de modo de usuário VA-API (API de aceleração de vídeo) que suporta decodificação, codificação e processamento de pós-vídeo de hardware para hardware gráfico baseado em GEN.
O driver de mídia Intel (R) para VAAPI é distribuído sob a licença do MIT, com partes cobertas pela licença BSD 3-cláusulas "novas" ou "revisadas". Você pode obter uma cópia da licença no MIT & BSD-3-cláusula
Para o Ubuntu 16.04+
apt install autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx
Os equivalentes para outras distribuições devem funcionar.
<workspace>
|- media-driver
$ mkdir <workspace>/build_media
<workspace>
|- media-driver
|- build_media
$ cd <workspace>/build_media
$ cmake ../media-driver
$ make -j"$(nproc)"
$ sudo make install
Isso instalará os seguintes arquivos (por exemplo, no Ubuntu):
-- Installing: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
-- Installing: /etc/profile.d/intel-media.sh
-- Installing: /usr/lib/x86_64-linux-gnu/igfxcmrt64.so
Para ihd_drv_video.so, exporte variáveis de ambiente LIBVA relacionadas.
export LIBVA_DRIVERS_PATH=<path-contains-iHD_drv_video.so>
export LIBVA_DRIVER_NAME=iHD
Driver de mídia contém três componentes como abaixo
Driver de mídia suporta abaixo de duas construções
Sobre o Ubuntu/Debian OSV, eles fornecem pacotes Intel-Media-Va-Driver-Non-Free (Full Feature Build) e Intel-Media-V-Driver (Free Kernel Build). O grátis aqui significa kernel de código aberto, mas não relacionado à taxa, precisa pagar. Você pode se referir às opções de construção para obter mais detalhes.
Se você está ansioso para ter uma tabela grande para compartilhar os recursos de componentes de mídia nessas duas compilações, abaixo as tabelas são boas referenciações para suas informações.
Codec | Tipos de construção | BMG | Lnl | Mtlx | DG2/ATSM | DG1/SG1 | Tglx | Ehl/jsl | ICL | Kblx | Bxtx | Skl | BDW |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AVC | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e/es D/e | D/e/es D/e | D/e D/e | D/e/es D/e | D/e/es D/e | D/e/es D/e | D/e/es D/e | D/es D |
MPEG-2 | Rometade completa Free-Kernel | D D | D D | D D | D D | D/es D | D/es D | D D | D/es D | D/es D | D D | D/es D | D/es D |
VC-1 | Rometade completa Free-Kernel | D | D | D | D | D | D | D | D | ||||
JPEG | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D D |
VP8 | Rometade completa Free-Kernel | D D | D D | D D | D* D* | D D | D/es D | D/es D | D D | D D | D D | ||
HEVC 8bit | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e/es D/e | D/e/es D/e | D/e D/e | D/e/es D/e | D/es D | D/es D | D/es D | |
HEVC 8bit 422 | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D D | D/e D/e | D/es D | D/es D | D D | D/es D | ||||
HEVC 8bit 444 | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | ||||
Hevc 10bit | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e/es D/e | D/e/es D/e | D/e D/e | D/e/es D/e | D/es D | D D | ||
HEVC 10bit 422 | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D D | D/e D/e | D/es D | D/es D | D D | D/es D | ||||
HEVC 10bit 444 | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | ||||
HEVC 12bits | Rometade completa Free-Kernel | D D | D D | D D | D D | D/es D | D/es D | ||||||
HEVC 12bit 422 | Rometade completa Free-Kernel | D D | D D | D D | D D | D D | D D | ||||||
HEVC 12bit 444 | Rometade completa Free-Kernel | D D | D D | D D | D D | D D | D D | ||||||
VP9 8bit | Rometade completa Free-Kernel | D D | D D | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D D | D D | ||
VP9 8bit 444 | Rometade completa Free-Kernel | D D | D D | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | ||||
VP9 10bit | Rometade completa Free-Kernel | D D | D D | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D D | |||
VP9 10bit 444 | Rometade completa Free-Kernel | D D | D D | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | D/e D/e | ||||
VP9 12bits | Rometade completa Free-Kernel | D D | D D | D D | D D | D D | D D | ||||||
VP9 12bit 444 | Rometade completa Free-Kernel | D D | D D | D D | D D | D D | D D | ||||||
AV1 8bit | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e E | D | D | ||||||
AV1 10bit | Rometade completa Free-Kernel | D/e D/e | D/e D/e | D/e D/e | D/e E | D | D | ||||||
VVC 8bit | Rometade completa Free-Kernel | D D | |||||||||||
VVC 10bit | Rometade completa Free-Kernel | D D |
Nota: A codificação de baixa potência (VaEntryPointEncslicelp) e a codificação do shader (VaEntryPointEncslice) são consolidadas para a interface unificada (VaEntryPointEncslice) da plataforma MTL . Ele passa pelo VDENC/HUC para a aceleração da HW para liberar recursos da GPU para os clientes.
Para obter mais informações de decodificação e codificação, consulte
Codec | Tipos de construção | BMG | Lnl | Mtlx | DG2/ATSM | DG1/SG1 | Tglx | Ehl/jsl | ICL | Kblx | Bxtx | Skl | BDW |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Misturando | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Csc | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
De-interlace | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim* Sim* | Sim Sim | Sim | Sim | Sim | Sim |
De-ruido | Rometade completa Free-Kernel | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | |
Chave luma | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Espelhamento | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Procamp | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Rotação | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Escala | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Afiação | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Std/e | Rometade completa Free-Kernel | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | |
TCC | Rometade completa Free-Kernel | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | |
Preenchimento de cores | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | Sim |
Localização de croma | Rometade completa Free-Kernel | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim Sim | Sim | Sim | Sim | |
HDR10 TM | Rometade completa Free-Kernel | Sim | Sim | Sim | Sim | Sim | Sim | Sim | |||||
3dlut | Rometade completa Free-Kernel | Sim | Sim | Sim | Sim | Sim | Sim |
Para obter mais informações sobre recursos, consulte o Formato de Processamento de Vídeo CSC/Scaling suportado
O Media-Diver suporta diferentes tipos de construção, conforme descrito abaixo. Você pode se referir às seguintes configurações para habilitá -las.
O Media-Diver requer a versão Special i915 Kernel Mode Driver (KMD) para suportar as seguintes plataformas, uma vez que a versão upstream do i915 KMD não as suporta totalmente (patches pendentes a montante). Para ativar essas plataformas, é necessário especificar ENABLE_PRODUCTION_KMD=ON
(padrão: OFF
).
Recomenda -se que o Driver de Mídia Intel (R) do VAAPI seja construído contra o GCC Compiler V6.1 ou posterior, que apoiou oficialmente o C ++ 11.
O firmware HUC é necessário para o controle de taxa de bits AVC/HEVC/VP9/AV1 de baixa potência, incluindo CBR, VBR, etc. A configuração padrão do kernel não permitiu o carregamento de HUC para plataformas TGL/RKL e legado, mas o habilitou a partir de plataformas ADL+. Você pode alterar a configuração HUC com "options i915 enable_guc=2" > /etc/modprobe.d/i915.conf
sob root. Para plataformas ADL+, o kernel carrega HUC como padrão se o binário de HUC da plataforma relacionado existir em /lib/firware/i915
. As empresas HUC disponíveis em diferentes plataformas são:
i915.enable_guc=2
i915.enable_guc=2
i915.enable_guc=2
i915.enable_guc=2
i915.enable_guc=2
i915.enable_guc=2
Outros problemas mais conhecidos, consulte as páginas de mídia-driver/wiki "questões conhecidas".