O Video Code Engine (VCE, anteriormente conhecido como Video Coding Engine, Video Compression Engine ou Video Codec Engine na documentação oficial da AMD) é um circuito integrado específico para aplicação de codificação de vídeo da AMD que implementa o codec de vídeo H.264/MPEG-4 AVC. Desde 2012, ele foi integrado a todas as suas GPUs e APUs, exceto Oland.
O VCE foi introduzido com a série Radeon HD 7000 em 22 de dezembro de 2011. O VCE ocupa uma quantidade considerável da superfície do die no momento de sua introdução 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).


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.
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 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:
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:
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).
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).
A plataforma Carrizo da AMD apresenta o VCE 3.1, mantendo os mesmos recursos do VCE encontrado em "Fiji" e "Tonga".
Stoney Ridge apresenta uma versão reduzida do VCE 3.4 sem codificação HEVC/H.265 e é acompanhado por um mecanismo UVD 6.2.
O VCE 3.0 remove o suporte para quadros B H.264.
O mecanismo de Video Code Engine 4.0 e o decodificador UVD 7.0 está incluído nas GPUs baseadas em Vega.
A GPU Vega20 da AMD, presente nas placas Instinct Mi50, Instinct Mi60 e Radeon VII, inclui VCE 4.1 e duas instâncias UVD 7.2.
A tabela a seguir mostra recursos das APUs da AMD
| Plataforma | Alta, padrão e baixa potência | Baixa e ultra baixa potência | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Nome de código | Servidor | Basic | Toronto | |||||||||||||||||
| Micro | Kyoto | |||||||||||||||||||
| Desktop | Performance | Renoir | Cezanne | |||||||||||||||||
| Mainstream | Llano | Trinity | Richland | Kaveri | Kaveri Refresh (Godavari) | Carrizo | Bristol Ridge | Raven Ridge | Picasso | |||||||||||
| Entrada | ||||||||||||||||||||
| Basic | Kabini | |||||||||||||||||||
| Mobile | Performance | Renoir | Cezanne | Rembrandt | ||||||||||||||||
| Mainstream | Llano | Trinity | Richland | Kaveri | Carrizo | Bristol Ridge | Raven Ridge | Picasso | ||||||||||||
| Entrada | Dalí | |||||||||||||||||||
| Basic | Desna, Ontario, Zacate | Kabini, Temash | Beema, Mullins | Carrizo-L | Stoney Ridge | |||||||||||||||
| Integrado | Trinity | Bald Eagle | Merlin Falcon, Brown Falcon |
Great Horned Owl | Grey Hawk | Ontario, Zacate | Kabini | Steppe Eagle, Crowned Eagle, LX-Family |
Prairie Falcon | Banded Kestrel | ||||||||||
| Lançado | Agosto de 2011 | Outubro de 2012 | Junho de 2013 | Janeiro de 2014 | 2015 | Junho de 2015 | Junho de 2016 | Outubro de 2017 | Janeiro de 2019 | Março de 2020 | Janeiro de 2021 | Janeiro de 2022 | Janeiro de 2011 | Maio 2013 | Apr 2014 | Maio de 2015 | Fevereiro de 2016 | Abril de 2019 | ||
| Microarquitetura de CPU | K10 | Piledriver | Steamroller | Excavator | "Excavator+" | Zen | Zen+ | Zen 2 | Zen 3 | Zen 3+ | Bobcat | Jaguar | Puma | Puma+ | "Excavator+" | Zen | ||||
| ISA | x86-64 | x86-64 | ||||||||||||||||||
| Socket | Desktop | High-end | — | — | ||||||||||||||||
| Mainstream | — | AM4 | — | |||||||||||||||||
| Entrada | FM1 | FM2 | FM2+ | — | ||||||||||||||||
| Basic | — | — | AM1 | — | ||||||||||||||||
| Outros | FS1 | FS1+, FP2 | FP3 | FP4 | FP5 | FP6 | FP7 | FT1 | FT3 | FT3b | FP4 | FP5 | ||||||||
| Versão PCI Express | 2.0 | 3.0 | 4.0 | 2.0 | 3.0 | |||||||||||||||
| Fab. (nm) | GF 32SHP (HKMG SOI) |
GF 28SHP (HKMG bulk) |
GF 14LPP (FinFET bulk) |
GF 12LP (FinFET bulk) |
TSMC N7 (FinFET bulk) |
TSMC N6 (FinFET bulk) |
TSMC N40 (bulk) |
TSMC N28 (HKMG bulk) |
GF 28SHP (HKMG bulk) |
GF 14LPP (FinFET bulk) | ||||||||||
| Area do Die (mm2) | 228 | 246 | 245 | 245 | 250 | 210 | 156 | 180 | 210 | 75 (+ 28 FCH) | 107 | ? | 125 | 149 | ||||||
| TDP min. (W) | 35 | 17 | 12 | 10 | 15 | 4.5 | 4 | 3.95 | 10 | 6 | ||||||||||
| TDP max. de APU (W) | 100 | 95 | 65 | 45 | 18 | 25 | ||||||||||||||
| Clock base max. de stock de APU (GHz) | 3 | 3.8 | 4.1 | 4.1 | 3.7 | 3.8 | 3.6 | 3.7 | 3.8 | 4.0 | 3.3 | 1.75 | 2.2 | 2 | 2.2 | 3.2 | 2.6 | |||
| Máximo de APUs por nó | 1 | 1 | ||||||||||||||||||
| Max CPU cores por APU | 4 | 8 | 2 | 4 | 2 | |||||||||||||||
| Max threads por core de CPU | 1 | 2 | 1 | 2 | ||||||||||||||||
| i386, i486, i586, CMOV, NOPL, i686, PAE, NX bit, CMPXCHG16B, AMD-V, RVI, ABM, e LAHF/SAHF de 64-bit | ||||||||||||||||||||
| IOMMU | — | |||||||||||||||||||
| BMI1, AES-NI, CLMUL, e F16C | — | |||||||||||||||||||
| MOVBE | — | |||||||||||||||||||
| AVIC, BMI2 e RDRAND | — | |||||||||||||||||||
| ADX, SHA, RDSEED, SMAP, SMEP, XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT, e CLZERO | — | — | ||||||||||||||||||
| WBNOINVD, CLWB, RDPID, RDPRU, e MCOMMIT | — | — | ||||||||||||||||||
| FPUs por core | 1 | 0.5 | 1 | 1 | 0.5 | 1 | ||||||||||||||
| Tubos por FPU | 2 | 2 | ||||||||||||||||||
| Largura do tubo FPU | 128-bit | 256-bit | 80-bit | 128-bit | ||||||||||||||||
| Nível SIMD do conjunto de instruções da CPU | SSE4a | AVX | AVX2 | SSSE3 | AVX | AVX2 | ||||||||||||||
| 3DNow! | — | — | ||||||||||||||||||
| FMA4, LWP, TBM, e XOP | — | — | — | — | ||||||||||||||||
| FMA3 | ||||||||||||||||||||
| Cache L1 de dados por núcleo (KiB) | 64 | 16 | 32 | 32 | ||||||||||||||||
| Associatividade do cache de dados L1 (maneiras) | 2 | 4 | 8 | 8 | ||||||||||||||||
| Caches de instruções L1 por core | 1 | 0.5 | 1 | 1 | 0.5 | 1 | ||||||||||||||
| Cache máximo de instrução L1 total da APU (KiB) | 256 | 128 | 192 | 256 | 64 | 128 | 96 | 128 | ||||||||||||
| Associatividade de cache de instrução L1 (maneiras) | 2 | 3 | 4 | 8 | 2 | 3 | 4 | |||||||||||||
| Caches L2 por core | 1 | 0.5 | 1 | 1 | 0.5 | 1 | ||||||||||||||
| Cache L2 total de APU máximo (MiB) | 4 | 2 | 4 | 1 | 2 | 1 | ||||||||||||||
| Associatividade de cache L2 (maneiras) | 16 | 8 | 16 | 8 | ||||||||||||||||
| Cache L3 total da APU (MiB) | — | 4 | 8 | 16 | — | 4 | ||||||||||||||
| Associatividade de cache APU L3 (maneiras) | 16 | 16 | ||||||||||||||||||
| Esquema de cache L3 | Victim | Victim | ||||||||||||||||||
| Suporte max. de DRAM stock | DDR3-1866 | DDR3-2133 | DDR3-2133, DDR4-2400 | DDR4-2400 | DDR4-2933 | DDR4-3200, LPDDR4-4266 | DDR5-4800, LPDDR5-6400 | DDR3L-1333 | DDR3L-1600 | DDR3L-1866 | DDR3-1866, DDR4-2400 | DDR4-2400 | ||||||||
| Max. de canais DRAM por APU | 2 | 1 | 2 | |||||||||||||||||
| Max. largura de banda DRAM de stock por APU (GB/s) | 29.866 | 34.132 | 38.400 | 46.932 | 68.256 | 102.400 | 10.666 | 12.800 | 14.933 | 19.200 | 38.400 | |||||||||
| Microarquitetura GPU | TeraScale 2 (VLIW5) | TeraScale 3 (VLIW4) | GCN 2nd gen | GCN 3rd gen | GCN 5th gen | RDNA 2nd gen | TeraScale 2 (VLIW5) | GCN 2nd gen | GCN 3rd gen | GCN 5th gen | ||||||||||
| Conjunto de instruções da GPU | Conjunto de instruções TeraScale | Conjunto de instruções GCN | Conjunto de instruções RDNA | Conjunto de instruções TeraScale | Conjunto de instruções GCN | |||||||||||||||
| Clock base da GPU de stock máximo (MHz) | 600 | 800 | 844 | 866 | 1108 | 1250 | 1400 | 2100 | 2400 | 538 | 600 | ? | 847 | 900 | 1200 | |||||
| Max stock GPU base GFLOPS | 480 | 614.4 | 648.1 | 886.7 | 1134.5 | 1760 | 1971.2 | 2150.4 | 3686.4 | 86 | ? | ? | ? | 345.6 | 460.8 | |||||
| Motor 3D | Até 400:20:8 | Até 384:24:6 | Até 512:32:8 | Até 704:44:16 | Até 512:32:8 | 768:48:8 | 80:8:4 | 128:8:4 | Até 192:?:? | Até 192:?:? | ||||||||||
| IOMMUv1 | IOMMUv2 | IOMMUv1 | ? | IOMMUv2 | ||||||||||||||||
| Decodificador de vídeo | UVD 3.0 | UVD 4.2 | UVD 6.0 | VCN 1.0 | VCN 2.1 | VCN 2.2 | VCN 3.1 | UVD 3.0 | UVD 4.0 | UVD 4.2 | UVD 6.0 | UVD 6.3]] | VCN 1.0 | |||||||
| Codificador de vídeo | — | VCE 1.0 | VCE 2.0 | VCE 3.1 | — | VCE 2.0 | VCE 3.1 | |||||||||||||
| Movimento Fluido AMD | ||||||||||||||||||||
| Economia de energia da GPU | PowerPlay | PowerTune | PowerPlay | PowerTune | ||||||||||||||||
| TrueAudio | — | ? | — | |||||||||||||||||
| FreeSync | 1 2 |
1 2 | ||||||||||||||||||
| HDCP | ? | 1.4 | 1.4 2.2 | ? | 1.4 | 1.4 2.2 | ||||||||||||||
| PlayReady | — | 3.0 not yet | — | 3.0 ainda não | ||||||||||||||||
| Telas compatíveis | 2–3 | 2–4 | 3 | 3 (desktop) 4 (mobile, integrado) | 4 | 2 | 3 | 4 | ||||||||||||
/drm/radeon | — | — | ||||||||||||||||||
/drm/amdgpu | — | — | ||||||||||||||||||
A tabela a seguir mostra os recursos das GPUs da AMD / ATI (consulte também: Lista de unidades de processamento gráfico da AMD).
| Nome da série de GPUs | Wonder | Mach | 3D Rage | Rage Pro | Rage 128 | R100 | R200 | R300 | R400 | R500 | R600 | RV670 | R700 | Evergreen | Northern Islands |
Southern Islands |
Sea Islands |
Volcanic Islands |
Arctic Islands/Polaris |
Vega | Navi 1x | Navi 2x | Navi 3x | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Lançamento | 1986 | 1991 | Abril 1996 |
Março 1997 |
Agosto 1998 |
Abril 2000 |
Agosto 2001 |
Setembro 2002 |
Maio 2004 |
Outubro 2005 |
Maio 2007 |
Novembro 2007 |
Junho 2008 |
Setembro 2009 |
Outubro 2010 |
Janeiro 2012 |
Setembro 2013 |
Junho 2015 |
Junho 2016, Abril 2017, Agosto 2019 | Junho 2017, Fevereiro 2019 | Julho 2019 |
Novembro 2020 |
Dezembro 2022 | |||
| Nome de marketing | Wonder | Mach | 3D Rage |
Rage Pro |
Rage 128 |
Radeon 7000 |
Radeon 8000 |
Radeon 9000 |
Radeon X700/X800 |
Radeon X1000 |
Radeon HD 2000 |
Radeon HD 3000 |
Radeon HD 4000 |
Radeon HD 5000 |
Radeon HD 6000 |
Radeon HD 7000 |
Radeon 200 |
Radeon 300 |
Radeon 400/500/600 |
Radeon RX Vega, Radeon VII |
Radeon RX 5000 |
Radeon RX 6000 |
Radeon RX 7000 | |||
| Suporte AMD | ||||||||||||||||||||||||||
| Tipo | 2D | 3D | ||||||||||||||||||||||||
| Conjunto de instruções | Não conhecido publicamente | Conjunto de instruções TeraScale | Conjunto de instruções GCN | Conjunto de instruções RDNA | ||||||||||||||||||||||
| Microarquitetura | TeraScale 1 (VLIW) |
TeraScale 2 (VLIW5) |
|
GCN 1st gen |
GCN 2nd gen |
GCN 3rd gen |
GCN 4th gen |
GCN 5th gen |
RDNA | RDNA 2 | RDNA 3 | |||||||||||||||
| Tipo | Pipieline fixo | Pipelies de pixel e vértice programáveis | Modelo de shader unificado | |||||||||||||||||||||||
| Direct3D | — | 5.0 | 6.0 | 7.0 | 8.1 | 9.0 11 (9_2) |
9.0b 11 (9_2) |
9.0c 11 (9_3) |
10.0 11 (10_0) |
10.1 11 (10_1) |
11 (11_0) | 11 (11_1) 12 (11_1) |
11 (12_0) 12 (12_0) |
11 (12_1) 12 (12_1) |
11 (12_1) 12 (12_2) | |||||||||||
| Modelo de shader | — | 1.4 | 2.0+ | 2.0b | 3.0 | 4.0 | 4.1 | 5.0 | 5.1 | 5.1 6.5 |
6.7 | 6.7 | ||||||||||||||
| OpenGL | — | 1.1 | 1.2 | 1.3 | 2.1 | 3.3 | 4.5 (no Linux: 4.5 (Mesa 3D 21.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | ||||||||||||||||||
| Vulkan | — | 1.0 (Win 7+ ou Mesa 17+) |
1.2 (Adrenalin 20.1.2, Linux Mesa 3D 20.0) 1.3 (GCN 4 e superior (com Adrenalin 22.1.2, Mesa 22.0)) |
1.3 | ||||||||||||||||||||||
| OpenCL | — | Close to Metal | 1.1 (sem suporte Mesa 3D) | 1.2 (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D) | 2.0 (Adrenalin driver no Win7+) (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D, 2.0 com drivers AMD ou AMD ROCm) |
2.0 | 2.1 | ? | ||||||||||||||||||
| HSA / ROCm | — | ? | ||||||||||||||||||||||||
| Decodificação de vídeo ASIC | — | Avivo/UVD | UVD+ | UVD 2 | UVD 2.2 | UVD 3 | UVD 4 | UVD 4.2 | UVD 5.0 ou 6.0 | UVD 6.3 | UVD 7 | VCN 2.0 | VCN 3.0 | ? | ||||||||||||
| Codificação de vídeo ASIC | — | VCE 1.0 | VCE 2.0 | VCE 3.0 or 3.1 | VCE 3.4 | VCE 4.0 | ||||||||||||||||||||
| Fluid Motion ASIC | ? | |||||||||||||||||||||||||
| Economia de energia | ? | PowerPlay | PowerTune | PowerTune & ZeroCore Power | ? | |||||||||||||||||||||
| TrueAudio | — | Através de DSP dedicado | Através de shaders | ? | ||||||||||||||||||||||
| FreeSync | — | 1 2 |
? | |||||||||||||||||||||||
| HDCP | ? | 1.4 | 2.2 | 2.3 | ||||||||||||||||||||||
| PlayReady | — | 3.0 | 3.0 | ? | ||||||||||||||||||||||
| Exibições suportadas | 1–2 | 2 | 2–6 | ? | ||||||||||||||||||||||
| Máx. resolução | ? | 2–6 × 2560×1600 |
2–6 × 4096×2160 @ 30 Hz |
2–6 × 5120×2880 @ 60 Hz |
3 × 7680×4320 @ 60 Hz |
7680×4320 @ 60 Hz PowerColor |
? | |||||||||||||||||||
/drm/radeon |
— | ? | ||||||||||||||||||||||||
/drm/amdgpu |
— | ? | ||||||||||||||||||||||||
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, mas o adicionou em dezembro de 2018), 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.

O software "MediaShow Espresso Video Transcoding" parece utilizar VCE e UVD na maior extensão possível.
O XSplit Broadcaster oferece suporte ao VCE a partir da versão 1.3.
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.
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.
O HandBrake adicionou suporte ao mecanismo de codificação de vídeo na versão 1.2.0 em dezembro de 2018.
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).
New VLIW4 architecture of stream processors allowed to save area of each SIMD by 10%, while performing the same compared to previous VLIW5 architecture