# Video Coding Engine

Video Code Engine (VCE, anteriorment s'anomenava Video Coding Engine, Video Compression Engine o Video Codec Engine a la documentació oficial d'AMD) és el circuit integrat específic de l'aplicació de codificació de vídeo d'AMD que implementa el còdec de vídeo H..264/MPEG-4 AVC. Des del 2012 es va integrar a totes les seves GPU i APU excepte Oland.
VCE es va presentar amb la sèrie Radeon HD 7000 el 22 de desembre de 2011. VCE ocupa una quantitat considerable de la superfície de la matriu en el moment de la seva introducció i no s'ha de confondre amb el descodificador de vídeo unificat (UVD) d'AMD.
A partir d'AMD Raven Ridge (publicat el gener de 2018), UVD i VCE van ser succeïts per Video Core Next (VCN).

## Visió general

El maneig de dades de vídeo implica el càlcul d'algoritmes de compressió de dades i possiblement d'algoritmes de processament de vídeo. Com mostren els mètodes de compressió de plantilles, els algorismes de compressió de vídeo amb pèrdues inclouen els passos: estimació de moviment (ME), transformada de cosinus discret (DCT) i codificació d'entropia (EC).
AMD Video Code Engine (VCE) és una implementació de maquinari completa del còdec de vídeo H.264/MPEG-4 AVC. És capaç de lliurar 1080p a 60 fotogrames/s. Com que el seu bloc de codificació d'entropia també és un motor de còdec de vídeo accessible per separat, es pot operar en dos modes: mode fix complet i mode híbrid.
Mitjançant l'ús d'AMD APP SDK, disponible per a Linux i Microsoft Windows, els desenvolupadors poden crear codificadors híbrids que emparellen l'estimació de moviment personalitzada, la transformació de cosinus discret inversa i la compensació de moviment amb la codificació d'entropia del maquinari per aconseguir una codificació més ràpida que en temps real. En el mode híbrid, només s'utilitza el bloc de codificació d'entropia de la unitat VCE, mentre que el càlcul restant es descarrega al motor 3D de la GPU, de manera que la computació escala amb el nombre d'unitats de càlcul disponibles (CU).

## Suport del sistema operatiu

El nucli SIP de VCE ha de ser compatible amb el controlador del dispositiu. El controlador del dispositiu proporciona una o diverses interfícies, per exemple, OpenMAX IL. Una d'aquestes interfícies és utilitzada pel programari d'usuari final, com GStreamer o HandBrake (HandBrake va rebutjar el suport de VCE el desembre de 2016, però la va afegir el desembre de 2018), per accedir al maquinari VCE i fer-ne ús.
El controlador de dispositiu propietari d'AMD AMD Catalyst està disponible per a diversos sistemes operatius i s'hi ha afegit suport per a VCE. A més, hi ha disponible un controlador de dispositiu gratuït. Aquest controlador també és compatible amb el maquinari VCE.

### Linux

* Christian König d'AMD va afegir el suport inicial de VCE el 4 de febrer de 2014 al controlador de radeon gratuït.
* El rastrejador d'estat Gallium3D per a OpenMAX es va afegir el 24 d'octubre de 2013 a Mesa 3D.
* El controlador Radeon gratuït i de codi obert es va adaptar per utilitzar OpenMAX amb el suport GStreamer OpenMAX (gst-omx) per exposar el motor de codificació de vídeo VCE.
* L'empleat d'AMD, Leo Liu, va implementar el suport de nivell h264 al rastrejador d'estat de Mesa 3D.

### Windows

El programari "MediaShow Espresso Video Transcoding" sembla utilitzar VCE i UVD en la màxima mesura possible.
XSplit Broadcaster admet VCE des de la versió 1.3.
El programari Open Broadcaster (OBS Studio) admet VCE per a la gravació i la transmissió. El programari original d'Open Broadcaster (OBS) requereix una construcció de bifurcació per habilitar VCE.
El programari AMD Radeon admet VCE amb captura de jocs integrada ("Radeon ReLive") i utilitza AMD AMF/VCE a la targeta gràfica APU o Radeon per reduir la caiguda d'FPS quan es captura contingut de joc o vídeo.

## Referències

* ↑ «Introducing the Video Coding Engine (VCE) - AMD» (en anglès). developer.amd.com. Arxivat de l'original el 4 juny 2016. [Consulta: 15 gener 2022].
* ↑ «Product brief» (en anglès). amd.com.
* ↑ «Updates» (en anglès). amd.com.
* ↑ «White Paper AMD UnifiedVideoDecoder (UVD)» (en anglès), 15-06-2012. [Consulta: 20 maig 2017].
* ↑ «AnandTech Portal | AMD Radeon HD 7970 Review: 28nm And Graphics Core Next, Together As One» (en anglès). Anandtech.com. [Consulta: 27 març 2014].
* ↑ «AMD's Radeon HD 7970 graphics processor - The Tech Report - Page 5» (en anglès). The Tech Report, 03-01-2012. [Consulta: 27 març 2014].
* ↑ «AMD A-Series APU block diagram» (en anglès), 30-06-2011. [Consulta: 22 gener 2015].
* ↑ «Video & Movies: The Video Codec Engine, UVD3, & Steady Video 2.0» (en anglès). AnandTech, 22-12-2011. [Consulta: 20 maig 2017].
* ↑ «Radeon HD 8900 Specs» (en anglès). AMD. [Consulta: 18 juliol 2016].
* ↑ «HandBrake rejected VCE pull request» (en anglès). GitHub, 08-12-2016. [Consulta: 15 agost 2017].
* ↑ «HandBrake added VCE support in v1.2.0» (en anglès), 22-12-2018. [Consulta: 31 desembre 2018].
* ↑ «MediaShow Espresso Video Transcoding Benchmark» (en anglès), 14-01-2014. Arxivat de l'original el 2022-03-04. [Consulta: 20 maig 2017].
* ↑ «XSplit Broadcaster 1.3 maintenance update includes mainly performance enhancements and maintenance fixes including such noteworthy features such as support for AMD's VCE H.264 hardware encoder» (en anglès). Arxivat de l'original el 2014-07-22.
* ↑ «OBS branch with AMD VCE support» (en anglès), 02-05-2014. [Consulta: 20 maig 2017].
* ↑ «Radeon Software Crimson ReLive Edition 16.12.1 Release Notes» (en anglès). [Consulta: 20 maig 2017].