Video Code Engine (VCE, раніше називався Video Coding Engine,[1]Video Compression Engine[2] або Video Codec Engine[3] в офіційній документації AMD) — це інтегральна схемаAMD для кодування відео, що реалізує відеокодекH.264/MPEG-4 AVC. З 2012 року він був інтегрований у всі їхні GPU та APU, крім Oland.
Video Code Engine був представлений у серії Radeon HD 7000 22 грудня 2011 року.[4][5][6] VCE займає значну частину поверхні кристала, і його не слід плутати з Unified Video Decoder (UVD).
У "повному фіксованому режимі" всі обчислення виконується блоком VCE з фіксованою функцією. Доступ до повного фіксованого режиму можна отримати через OpenMAX IL API.Блок ентропійного кодування VCE ASIC також доступний окремо, що дозволяє "гібридний режим". У "гібридному режимі" більшість обчислень виконується 3D-рушієм графічного процесора. Використовуючи AMD's Accelerated Parallel Programming SDK і OpenCL, розробники можуть створювати гібридні кодери, які поєднують користувацьку компенсацію руху, зворотне дискретне косинусне перетворення і компенсацію руху з апаратним ентропійним кодуванням, щоб досягти швидшого, ніж у реальному часі кодування.
AMD Video Code Engine (VCE) — це повна апаратна реалізація відеокодека H.264/MPEG-4 AVC. Він здатний передавати 1080p зі швидкістю 60 кадрів/сек. Оскільки його блок ентропійного кодування також є окремо доступним модулем відеокодеків, він може працювати у двох режимах: повнофіксований та гібридний режим.[7][8]
Використовуючи AMD APP SDK, доступний для Linux і Microsoft Windows, розробники можуть створювати гібридні кодери, які поєднують користувацьку компенсацію руху, зворотне дискретне косинусне перетворення і компенсацію руху з апаратним ентропійним кодуванням, щоб досягти швидкості, ніж кодування в реальному часі. У гібридному режимі використовується тільки блок ентропійного кодування блоку VCE, тоді як решта обчислень вивантажується в 3D-рушій графічного процесора, тому обчислення масштабується з кількістю доступних обчислювальних одиниць (CU).
VCE 1.0
Станом на квітень 2014 року існують дві версії VCE.[1] Версія 1.0 підтримує H.264 YUV420 (кадри I & P), H.264 SVC Temporal Encode VCE і Display Encode Mode (DEM).
Mobile Radeon Rx M2xx серія (за виключенням R9 M280X з VCE 2.0 і R9 M295X з VCE 3.0)
Mobile Radeon R5 M330 до R9 M390
Відеокарти FirePro з 1-м поколінням GCN (GCN1) (за виключенням W2100, який має чип Oland XT)
VCE 2.0
Порівняно з першою версією, VCE 2.0 додає H.264 YUV444 (I-Frames), B-кадри для H.264 YUV420 і покращує DEM (Display Encode Mode), що призводить до кращої якості кодування.
Графічні процесори покоління Sea Islands, а також графічні процесори Bonaire або Hawaii (2-ге покоління Graphics Core Next), такі як
Radeon HD 7790, 8770
Radeon R7 260, 260X / R9 290, 290X, 295X2
Radeon R7 360 / R9 390, 390X
Mobile Radeon R9 M280X
Mobile Radeon R9 M385, M385X
Mobile Radeon R9 M470, M470X
Відеокарти FirePro з 2-м поколінням GCN (GCN2)
VCE 3.0
Технологія Video Code Engine 3.0 (VCE 3.0) має нове високоякісне масштабування відео та високоефективне кодування відео (HEVC/H.265).[9]
Його разом з UVD 6.0 можна знайти на 3-му поколінні Graphics Core Next (GCN3) з обладнанням графічного контролера на основі «Tonga», «Fiji», «Iceland» та «Carrizo» (VCE 3.1), яке використовується в серії AMD Radeon R 300 (сімейство графічних процесорів Pirate Islands) і VCE 3.4 у серіях AMD Radeon RX 400 і AMD Radeon RX 500 (обидва сімейства графічних процесорів Polaris).
2 Для підтримки більше 2-х дисплеїв необхідно скористуватися додатковою панеллю із портом DisplayPort.[25] Також можна використовувати активні адаптери DisplayPort-to-DVI/HDMI/VGA
↑ абDRM (Direct Rendering Manager) — компонент ядра Linux. Підтримка, вказана у таблиці, стосується найостаннішої версії.
↑The Radeon 100 Series has programmable pixel shaders, but do not fully comply with DirectX 8 or Pixel Shader 1.0. See article on R100's pixel shaders.
↑R300, R400 and R500 based cards do not fully comply with OpenGL 2+ as the hardware does not support all types of non-power of two (NPOT) textures.
↑OpenGL 4+ compliance requires supporting FP64 shaders and these are emulated on some TeraScale chips using 32-bit hardware.
↑ абвThe UVD and VCE were replaced by the Video Core Next (VCN) ASIC in the Raven Ridge APU implementation of Vega.
↑Video processing ASIC for video frame rate interpolation technique. In Windows it works as a DirectShow filter in your player. In Linux, there is no support on the part of drivers and / or community.
↑ абTo play protected video content, it also requires card, operating system, driver, and application support. A compatible HDCP display is also needed for this. HDCP is mandatory for the output of certain audio formats, placing additional constraints on the multimedia setup.
↑More displays may be supported with native DisplayPort connections, or splitting the maximum resolution between multiple monitors with active converters.
↑DRM (Direct Rendering Manager) is a component of the Linux kernel. Support in this table refers to the most current version.
Підтримка операційних систем
Ядро ТІМС VCE має підтримуватися драйвером пристрою. Драйвер пристрою забезпечує один або кілька інтерфейсів, наприклад OpenMAX IL. Один з цих інтерфейсів потім використовується програмним забезпеченням кінцевого користувача, таким як GStreamer або HandBrake (HandBrake відмовився від підтримки VCE в грудні 2016 року[33], але додав її в грудні 2018 року[34]), щоб отримати доступ до обладнання VCE і використовувати його.
Пропрієтарний драйвер пристрою AMD Catalyst доступний для кількох операційних систем, і до нього була додана підтримка VCE. Крім того, доступний безкоштовний драйвер пристрою. Цей драйвер також підтримує апаратне забезпечення VCE.
Linux
Підтримка ASIC VCE міститься в драйвері пристрою amdgpu в ядрі Linux.
Початкову підтримку VCE було додано 4 лютого 2014 року Крістіаном Кенігом з AMD до безкоштовного драйвера radeon.[35]
Open Broadcaster Software (OBS Studio) підтримує VCE для запису та потокової передачі. Оригінальне програмне забезпечення Open Broadcaster (OBS) вимагає складання форка, щоб увімкнути VCE.[41]
AMD Radeon Software підтримує VCE з вбудованою системою захоплення гри («Radeon ReLive») і використовує AMD AMF/VCE на APU або графічній карті Radeon, щоб зменшити падіння кадрів в секунду під час запису ігрового або відеоконтенту.[42]
HandBrake додав підтримку Video Coding Engine у версії 1.2.0 у грудні 2018 року.[34]
↑ абArchived copy. developer.amd.com. Архів оригіналу за 4 червня 2016. Процитовано 15 січня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
↑Архівована копія. Архів оригіналу за 2 червня 2019. Процитовано 4 березня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
↑Архівована копія(PDF). Архів оригіналу(PDF) за 24 лютого 2021. Процитовано 4 березня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
↑König, Christian (4 лютого 2014). initial VCE support. mesa-dev (Список розсилки). Архів оригіналу за 15 червня 2021. Процитовано 28 листопада 2015. {{cite mailing list}}: Вказано більш, ніж один |accessdate= та |access-date= (довідка)
↑König, Christian (24 жовтня 2013). OpenMAX state tracker. mesa-dev (Список розсилки). Архів оригіналу за 28 березня 2021. Процитовано 28 листопада 2015. {{cite mailing list}}: Вказано більш, ніж один |accessdate= та |access-date= (довідка)