Video Coding Engine

Video Code Engine (VCE, anteriormente denominado Video Coding Engine,[1]Video Compression Engine o Video Codec Engine en la documentación oficial de AMD) es el circuito integrado específico de la aplicación de codificación de video de AMD que implementa el códec de video H .264/MPEG-4 AVC. Desde 2012 se integró en todas sus GPU y APU excepto Oland.

VCE se presentó con la serie Radeon HD 7000 el 22 de diciembre de 2011.[2][3][4]​ VCE ocupa una cantidad considerable de la superficie de la pastilla en el momento de su introducción[5]​ y no debe confundirse con el decodificador de video unificado (UVD) de AMD.

A partir de AMD Raven Ridge (lanzado en enero de 2018), UVD y VCE fueron reemplazados por Video Core Next (VCN).

Descripción general

editar
 
En el "modo completamente fijo", todo el cálculo lo realiza la unidad VCE de función fija. Se puede acceder al modo totalmente fijo a través de la API de OpenMAX IL.
 
El bloque de codificación de entropía del VCE ASIC también es accesible por separado, lo que permite el "modo híbrido" . En el "modo híbrido", la mayor parte del cálculo lo realiza el motor 3D de la GPU. Usando el SDK de programación paralela acelerada de AMD y los desarrolladores de OpenCL pueden crear codificadores híbridos que combinan la estimación de movimiento personalizada, la transformación de coseno discreta inversa y la compensación de movimiento con la codificación de entropía de hardware para lograr una codificación más rápida que en tiempo real.

El manejo de datos de video implica el cálculo de algoritmos de compresión de datos y posiblemente de algoritmos de procesamiento de video. Como muestran los métodos de compresión de plantilla, los algoritmos de compresión de video con pérdida involucran los pasos: estimación de movimiento (ME), transformada de coseno discreta (DCT) y codificación de entropía (EC).

AMD Video Code Engine (VCE) es una implementación de hardware completa del códec de video H.264/MPEG-4 AVC. Es capaz de entregar 1080p a 60 cuadros por segundo. Debido a que su bloque de codificación de entropía también es un motor de códec de video accesible por separado, se puede operar en dos modos: modo fijo completo y modo híbrido.[6][7]

Al emplear AMD APP SDK, disponible para Linux y Microsoft Windows, los desarrolladores pueden crear codificadores híbridos que combinan la estimación de movimiento personalizada, la transformación de coseno discreta inversa y la compensación de movimiento con la codificación de entropía de hardware para lograr una codificación más rápida que en tiempo real. En el modo híbrido, solo se usa el bloque de codificación de entropía de la unidad VCE, mientras que el cómputo restante se descarga al motor 3D de la GPU, por lo que el cómputo se escala con la cantidad de unidades de cómputo (CU) disponibles.

VCE 1.0

editar

A partir de abril de 2014, hay dos versiones de VCE.[1]​ La versión 1.0 admite H.264 YUV420 (marcos I & P), H.264 SVC Temporal Encode VCE y Display Encode Mode (DEM).

Se puede encontrar en:

  • Basado en Piledriver
    • Trinity APU (Ax-5xxx, por ejemplo A10-5800K)
    • APU Richland (Ax-6xxx, por ejemplo A10-6800K)
  • GPUs de la generación Islas del Sur (GCN1: CAYMAN, ARUBA (Trinity/Richland), CAPE VERDE, PITCAIRN, TAHITI). Estos son
    • Serie Radeon HD 7700 (excepto HD 7790 con VCE 2.0)
    • Serie Radeon HD 7800
    • Serie Radeon HD 7900
    • Radeon HD 8570 a 8990 (excepto HD 8770 con VCE 2.0)
    • Radeon R7 250E, 250X, 265 / R9 270, 270X, 280, 280X
    • Radeon R7 360, 370, 455 / R9 370, 370X
    • Mobile Radeon HD 77x0M a HD 7970M
    • Serie Mobile Radeon HD 8000
    • Serie Mobile Radeon Rx M2xx (excepto R9 M280X con VCE 2.0 y R9 M295X con VCE 3.0)
    • Mobile Radeon R5 M330 a R9 M390
    • Tarjetas FirePro con GCN de primera generación (GCN1) (excepto W2100, que es Oland XT)

VCE 2.0

editar

En comparación con la primera versión, VCE 2.0 agrega H.264 YUV444 (I-Frames), B-frames para H.264 YUV420 y mejoras en el DEM (Display Encode Mode), lo que da como resultado una mejor calidad de codificación.

Se puede encontrar en:

  • Basado en Steamroller
    • APU Kaveri (Ax-7xxx, por ejemplo A10-7850K)
    • APU Godavari (Ax-7xxx, por ejemplo A10-7890K)
  • Basado en Jaguar
    • APU Kabini (p. ej. Athlon 5350, Sempron 2650)
    • APU Temash (p. ej. A6-1450, A4-1200)
  • Basado en Puma
    • Beema y Mullins
  • GPU de la generación Sea Islands, así como GPU Bonaire o Hawaii (2nd Generation Graphics Core Next), como
    • Radeon HD 7790, 8770
    • Radeon R7 260, 260X / R9 290, 290X, 295X2
    • Radeon R7 360/R9 390, 390X
    • Móvil Radeon R9 M280X
    • Móvil Radeon R9 M385, M385X
    • Móvil Radeon R9 M470, M470X
    • Tarjetas FirePro con GCN de segunda generación (GCN2)

VCE 3.0

editar

Motor de código de video 3.0 (VCE 3.0) presenta una nueva escala de video de alta calidad y codificación de video de alta eficiencia (HEVC/H.265).[8]

Junto con UVD 6.0, se puede encontrar en la tercera generación de Graphics Core Next (GCN3) con hardware de controlador de gráficos basado en "Tonga", "Fiji", "Iceland" y "Carrizo" (VCE 3.1), que ahora se utiliza AMD Radeon Rx 300 Series (familia de GPU Pirate Islands) y VCE 3.4 de la serie AMD Radeon RX 400 y AMD Radeon RX 500 (ambas de la familia de GPU Polaris).

  • Tonga: Radeon R9 285, 380, 380X; Móvil Radeon R9 M390X, M395, M395X, M485X
  • Tonga XT: FirePro W7100, S7100X, S7150, S7150 X2
  • Fiyi: Radeon R9 Fury, Fury X, Nano; Radeon Pro Dúo (2016); FirePro S9300, W7170M
  • Polaris: RX 460, 470, 480; RX 550, 560, 570, 580; Radeon Pro Duo (2017)

VCE 4.0

editar

El codificador Video Code Engine 4.0 y el decodificador UVD 7.0 están incluidos en las GPU basadas en Vega.[9][10]

VCE 4.1

editar

La GPU Vega20 de AMD, presente en las tarjetas Instinct Mi50, Instinct Mi60 y Radeon VII, incluye instancias VCE 4.1 y dos UVD 7.2.[11][12]

Soporte del sistema operativo

editar

El núcleo SIP de VCE debe ser compatible con el controlador del dispositivo. El controlador de dispositivo proporciona una o varias interfaces, por ejemplo OpenMAX IL. El software del usuario final, como GStreamer o HandBrake, utiliza una de estas interfaces (HandBrake rechazó la compatibilidad con VCE en diciembre de 2016,[13]​ pero la agregó en diciembre de 2018[14]​), para acceder al hardware de VCE y utilizarlo. .

El controlador de dispositivo propietario de AMD, AMD Catalyst, está disponible para múltiples sistemas operativos y se le agregó soporte para VCE. Además, hay disponible un controlador de dispositivo gratuito. Este controlador también es compatible con el hardware VCE.

 
El soporte para VCE ASIC está incluido en el controlador de dispositivo del kernel de Linux amdgpu .

Windows

editar

El software "MediaShow Espresso Video Transcoding" parece utilizar VCE y UVD en la mayor medida posible.[19]

XSplit Broadcaster es compatible con VCE desde la versión 1.3.[20]

Open Broadcaster Software (OBS Studio) admite VCE para grabación y transmisión. El Open Broadcaster Software (OBS) original requiere una compilación de bifurcación para habilitar VCE.[21]

El software AMD Radeon admite VCE con captura de juegos integrada ("Radeon ReLive") y usa AMD AMF/VCE en APU o tarjeta gráfica Radeon para reducir la caída de FPS al capturar contenido de juegos o videos.[22]

HandBrake agregó compatibilidad con Video Coding Engine en la versión 1.2.0 en diciembre de 2018.[14]

Sucesor

editar

El VCE fue reemplazado por AMD Video Core Next en la serie de APU Raven Ridge lanzada en octubre de 2017. La VCN combina la codificación (VCE) y la decodificación (UVD).[23]

Véase también

editar

Tecnologías de hardware de vídeo

editar

Nvidia

editar

Qualcomm

editar

Referencias

editar
  1. a b «Introducing the Video Coding Engine (VCE) - AMD». developer.amd.com. Archivado desde el original el 4 de junio de 2016. Consultado el 15 de enero de 2022. 
  2. «White Paper AMD UnifiedVideoDecoder (UVD)». 15 de junio de 2012. Consultado el 20 de mayo de 2017. 
  3. «AnandTech Portal | AMD Radeon HD 7970 Review: 28nm And Graphics Core Next, Together As One». Anandtech.com. Consultado el 27 de marzo de 2014. 
  4. «AMD's Radeon HD 7970 graphics processor - The Tech Report - Page 5». The Tech Report. 3 de enero de 2012. Consultado el 27 de marzo de 2014. 
  5. «AMD A-Series APU block diagram». 30 de junio de 2011. Consultado el 22 de enero de 2015. 
  6. «Video & Movies: The Video Codec Engine, UVD3, & Steady Video 2.0». AnandTech. 22 de diciembre de 2011. Consultado el 20 de mayo de 2017. 
  7. «Radeon HD 8900 Specs». AMD. Consultado el 18 de julio de 2016. 
  8. Deucher, Alex (Wed Jun 3 18:48:31 PDT 2015). «[pull] amdgpu drm-next-4.2». Consultado el 25 de febrero de 2023. 
  9. Larabel, Michael (20 de marzo de 2017). «AMD Sends Out 100 Patches, Enabling Vega Support In AMDGPU DRM». Phoronix. Consultado el 25 de agosto de 2017. 
  10. Zak Killian (22 de marzo de 2017). «AMD publishes patches for Vega support on Linux». Consultado el 24 de febrero de 2023. 
  11. Deucher, Alex (15 de mayo de 2018). «[PATCH 50/57] drm/amdgpu/vg20:Enable the 2nd instance IRQ for uvd 7.2». Consultado el 13 de enero de 2019. 
  12. Deucher, Alex (15 de mayo de 2018). «[PATCH 42/57] drm/amd/include/vg20: adjust VCE_BASE to reuse vce 4.0 header files». Consultado el 13 de enero de 2019. 
  13. «HandBrake rejected VCE pull request». GitHub. 8 de diciembre de 2016. Consultado el 15 de agosto de 2017. 
  14. a b «HandBrake added VCE support in v1.2.0». 22 de diciembre de 2018. Consultado el 31 de diciembre de 2018. 
  15. König, Christian (2014-2-4), «initial VCE support», https://lists.freedesktop.org/archives/mesa-dev/2014-February/053203.html, consultado el 2015-11-28. 
  16. König, Christian (2013-10-24), «OpenMAX state tracker», https://lists.freedesktop.org/archives/mesa-dev/2013-October/046943.html, consultado el 2015-11-28. 
  17. «AMD Open-Sources VCE Video Encode Engine Code». Phoronix. 4 de febrero de 2014. Consultado el 20 de mayo de 2017. 
  18. «st/omx/enc: implement h264 level support». 12 de junio de 2014. Consultado el 20 de mayo de 2017. 
  19. «MediaShow Espresso Video Transcoding Benchmark». 14 de enero de 2014. Archivado desde el original el 4 de marzo de 2022. Consultado el 20 de mayo de 2017. 
  20. «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». Archivado desde el original el 22 de julio de 2014. 
  21. «OBS branch with AMD VCE support». 2 de mayo de 2014. Consultado el 20 de mayo de 2017. 
  22. «Radeon Software Crimson ReLive Edition 16.12.1 Release Notes». Consultado el 20 de mayo de 2017. 
  23. Larabel, Michael (17 de noviembre de 2017). «Radeon VCN Encode Support Lands In Mesa 17.4 Git». Phoronix. Consultado el 20 de noviembre de 2017.