O VCE foi introduzido com a série Radeon HD 7000 em 22 de dezembro de 2011.[4][5][6] O VCE ocupa uma quantidade considerável da superfície do die no momento de sua introdução[7] e não deve ser confundido com o Unified Video Decoder (UVD) da AMD.
A partir do AMD Raven Ridge (lançado em janeiro de 2018), o UVD e o VCE foram substituídos pelo Video Core Next (VCN).
Visão geral
No "modo totalmente fixo" ("full-fixed mode"), todo o cálculo é feito pela unidade VCE de função fixa. O modo totalmente fixo pode ser acessado por meio da API OpenMAX IL. O bloco de codificação de entropia do VCE ASIC também é acessível separadamente, habilitando o "modo híbrido" ("hybrid mode"). No "modo híbrido", a maior parte da computação é feita pelo mecanismo 3D da GPU. Usando o SDK de Programação Paralela Acelerada da AMD e o OpenCL, os desenvolvedores podem criar codificadores híbridos que combinam estimativa de movimento personalizada, transformação discreta inversa de cosseno e compensação de movimento com codificação de entropia de hardware para obter uma codificação mais rápida do que em tempo real.
O tratamento de dados de vídeo envolve o cálculo de algoritmos de compressão de dados e possivelmente de algoritmos de processamento de vídeo. Como mostram os métodos de compressão de modelo, os algoritmos de compressão de vídeo com perdas envolvem as etapas: estimativa de movimento (Motion compensation, ME), discrete Cosine Transform (DCT) e codificação de entropia (Entropy coding, EC).
O AMD Video Code Engine (VCE) é uma implementação de hardware completa do codec de vídeo H.264/MPEG-4 AVC. Ele é capaz de fornecer 1080p a 60 quadros/seg. Como seu bloco de codificação de entropia também é um mecanismo de codec de vídeo acessível separadamente, ele pode ser operado em dois modos: modo totalmente fixo e modo híbrido.[8][9]
Ao empregar o AMD APP SDK, disponível para Linux e Microsoft Windows, os desenvolvedores podem criar codificadores híbridos que combinam estimativa de movimento personalizada, transformação discreta inversa de cosseno e compensação de movimento com codificação de entropia de hardware para obter uma codificação mais rápida do que em tempo real. No modo híbrido, apenas o bloco de codificação de entropia da unidade VCE é usado, enquanto a computação restante é transferida para o mecanismo 3D da GPU, de modo que a computação é dimensionada com o número de unidades de computação (CUs) disponíveis.
VCE 1.0
VCE[1] versão 1.0 oferece suporte a H.264 YUV420 (quadros I e P), codificação temporal H.264 SVC VCE e modo de codificação de exibição (DEM).
Pode ser encontrado em:
Baseado em Piledriver
APUs Trinity (Ax-5xxx, por exemplo, A10-5800K)
APUs Richland (Ax-6xxx, por exemplo A10-6800K)
GPUs da geração das Ilhas do Sul (GCN1: CAYMAN, ARUBA (Trinity/Richland), CABO VERDE, PITCAIRN, TAHITI). Estes são
Série Radeon HD 7700 (exceto HD 7790 com VCE 2.0)
Série Radeon HD 7800
Série Radeon HD 7900
Radeon HD 8570 a 8990 (exceto HD 8770 com VCE 2.0)
Série Mobile Radeon Rx M2xx (exceto R9 M280X com VCE 2.0 e R9 M295X com VCE 3.0)
Radeon Mobile R5 M330 para R9 M390
Placas FirePro com GCN de 1ª geração (GCN1) (exceto W2100, que é Oland XT)
VCE 2.0
Comparado à primeira versão, o VCE 2.0 adiciona H.264 YUV444 (I-Frames), B-frames para H.264 YUV420 e melhorias no DEM (Display Encode Mode), o que resulta em uma melhor qualidade de codificação.
Pode ser encontrado em:
Baseado em Steamroller
APUs Kaveri (Ax-7xxx, por exemplo A10-7850K)
APUs Godavari (Ax-7xxx, por exemplo A10-7890K)
Baseado em Jaguar
APUs Kabini (por exemplo, Athlon 5350, Sempron 2650)
APUs Temash (por exemplo, A6-1450, A4-1200)
Baseado em Puma
Beema e Mullins
GPUs da geração Sea Islands, bem como GPUs Bonaire ou Hawaii (2ª Geração Graphics Core Next), como
Motor de código de vídeo 3.0 (VCE 3.0) a tecnologia apresenta um novo dimensionamento de vídeo de alta qualidade e - desde a versão 3.4 - High Efficiency Video Coding (HEVC/H.265).[10][11]
Ele, junto com o UVD 6.0, pode ser encontrado na 3ª geração do Graphics Core Next (GCN3) com hardware de controlador gráfico baseado em "Tonga" e "Fiji" (VCE 3.0), que agora é usado pela série AMD Radeon Rx 300 (família de GPU Pirate Islands) e VCE 3.4 pelas atuais séries AMD Radeon Rx 400 e AMD Radeon 500 (ambas da família de GPU Polaris).
↑O desempenho de precisão simples é calculado a partir da velocidade de clock do núcleo base (ou boost) com base em uma operação FMA.
↑Shaders unificados : unidades de mapeamento de textura : unidades de saída de renderização
↑Para reproduzir conteúdo de vídeo protegido, também é necessário suporte a placa, sistema operacional, driver e aplicativo. Um monitor HDCP compatível também é necessário para isso. O HDCP é obrigatório para a saída de certos formatos de áudio, colocando restrições adicionais na configuração multimídia.
↑Para reproduzir conteúdo de vídeo protegido, também é necessário suporte a placa, sistema operacional, driver e aplicativo. Um monitor HDCP compatível também é necessário para isso. O HDCP é obrigatório para a saída de certos formatos de áudio, colocando restrições adicionais na configuração multimídia.
↑Para alimentar mais de dois monitores, os painéis adicionais devem ter suporte nativo para DisplayPort.[27] Alternativamente, adaptadores DisplayPort-to-DVI/HDMI/VGA ativos podem ser empregados.
↑DRM (Direct Rendering Manager) é um componente do kernel Linux. O suporte nesta tabela refere-se à versão mais atual.
↑DRM (Direct Rendering Manager) é um componente do kernel Linux. O suporte nesta tabela refere-se à versão mais atual.
↑ A série Radeon 100 possui sombreadores de pixel programáveis, mas não é totalmente compatível com DirectX 8 ou Pixel Shader 1.0. Veja o artigo sobre Pixel shaders do R100.
↑Os cartões baseados em R300, R400 e R500 não são totalmente compatíveis com OpenGL 2+, pois o hardware não oferece suporte a todos os tipos de texturas não-potência de dois (NPOT).
↑A conformidade com OpenGL 4+ requer suporte a shaders FP64 e estes são emulados em alguns chips TeraScale usando hardware de 32 bits.
↑ abcO UVD e o VCE foram substituídos pelo Video Core Next (VCN) ASIC na APU Raven Ridge do Vega.
↑Processamento de vídeo ASIC para técnica de interpolação de taxa de quadros de vídeo. No Windows funciona como um filtro DirectShow no seu player. No Linux, não há suporte por parte dos drivers e/ou da comunidade.
↑ abPara reproduzir conteúdo de vídeo protegido, também é necessário suporte a cartão, sistema operacional, driver e aplicativo. Um monitor HDCP compatível também é necessário para isso. O HDCP é obrigatório para a saída de certos formatos de áudio, colocando restrições adicionais na configuração de multimídia.
↑Mais monitores podem ser suportados com conexões DisplayPort nativas ou dividindo a resolução máxima entre vários monitores com conversores ativos.
↑ abDRM (Direct Rendering Manager) é um componente do kernel do Linux. AMDgpu é o módulo do kernel do Linux. O suporte nesta tabela refere-se à versão mais atual.
Suporte ao sistema operacional
O núcleo VCE SIP precisa ser suportado pelo driver de dispositivo. O driver do dispositivo fornece uma ou várias interfaces, por exemplo, OpenMAX IL. Uma dessas interfaces é então usada pelo software do usuário final, como GStreamer ou HandBrake (HandBrake rejeitou o suporte VCE em dezembro de 2016,[44] mas o adicionou em dezembro de 2018[45]), para acessar o hardware VCE e fazer uso dele.
O driver de dispositivo proprietário da AMD, AMD Catalyst, está disponível para vários sistemas operacionais e o suporte para VCE foi adicionado a ele.[carece de fontes?] Além disso, um driver de dispositivo gratuito está disponível. Este driver também suporta o hardware VCE.
Linux
O suporte para o VCE ASIC está contido no driver de dispositivo do kernel Linuxamdgpu.
O suporte VCE inicial foi adicionado em 4 de fevereiro de 2014 por Christian König da AMD ao driver radeon gratuito.[46]
O driver Radeon gratuito e de código aberto foi adaptado para usar o OpenMAX com o suporte GStreamer OpenMAX (gst-omx) para expor o mecanismo de codificação de vídeo VCE.[48]
O funcionário da AMD, Leo Liu, implementou suporte de nível h264 no rastreador de estado Mesa 3D.[49]
Windows
O software "MediaShow Espresso Video Transcoding" parece utilizar VCE e UVD na maior extensão possível.[50]
O Open Broadcaster Software (OBS Studio) suporta VCE para gravação e streaming. O Open Broadcaster Software (OBS) original requer uma construção de fork para habilitar o VCE.[52]
O software AMD Radeon oferece suporte a VCE com captura de jogo integrada ("Radeon ReLive") e usa AMD AMF/VCE na APU ou placa de vídeo Radeon para reduzir a queda de FPS ao capturar conteúdo de jogo ou vídeo.[53]
O HandBrake adicionou suporte ao mecanismo de codificação de vídeo na versão 1.2.0 em dezembro de 2018.[45]
O VCE foi sucedido pelo AMD Video Core Next na série de APUs Raven Ridge lançada em outubro de 2017. O VCN combina codificação (VCE) e decodificação (UVD).[54]