Video Coding Engine

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).

На AMD Raven Ridge (випущений у січні 2018 року), VCE змінила Video Core Next (VCN).

У "повному фіксованому режимі" всі обчислення виконується блоком VCE з фіксованою функцією. Доступ до повного фіксованого режиму можна отримати через OpenMAX IL API.
Блок ентропійного кодування VCE ASIC також доступний окремо, що дозволяє "гібридний режим". У "гібридному режимі" більшість обчислень виконується 3D-рушієм графічного процесора. Використовуючи AMD's Accelerated Parallel Programming SDK і OpenCL, розробники можуть створювати гібридні кодери, які поєднують користувацьку компенсацію руху, зворотне дискретне косинусне перетворення і компенсацію руху з апаратним ентропійним кодуванням, щоб досягти швидшого, ніж у реальному часі кодування.

Обробка відеоданих включає обчислення алгоритмів стиснення даних і, можливо, алгоритмів обробки відео. Як показують шаблони методів стиснення, алгоритми стиснення відео з втратами включають кроки: компенсація руху (ME), дискретне косинусне перетворення (DCT) та ентропійне кодування (EC).

AMD Video Code Engine (VCE) — це повна апаратна реалізація відеокодека H.264/MPEG-4 AVC. Він здатний передавати 1080p зі швидкістю 60 кадрів/сек. Оскільки його блок ентропійного кодування також є окремо доступним модулем відеокодеків, він може працювати у двох режимах: повнофіксований та гібридний режим.[7][8]

Використовуючи AMD APP SDK, доступний для Linux і Microsoft Windows, розробники можуть створювати гібридні кодери, які поєднують користувацьку компенсацію руху, зворотне дискретне косинусне перетворення і компенсацію руху з апаратним ентропійним кодуванням, щоб досягти швидкості, ніж кодування в реальному часі. У гібридному режимі використовується тільки блок ентропійного кодування блоку VCE, тоді як решта обчислень вивантажується в 3D-рушій графічного процесора, тому обчислення масштабується з кількістю доступних обчислювальних одиниць (CU).

Станом на квітень 2014 року існують дві версії VCE.[1] Версія 1.0 підтримує H.264 YUV420 (кадри I & P), H.264 SVC Temporal Encode VCE і Display Encode Mode (DEM).

Його можна знайти на:

  • Процесорах Piledriver
    • Trinity APU (Ax-5xxx, до A10-5800K)
    • Richland APU (Ax-6xxx, до A10-6800K)
  • Графічні процесори покоління Southern Islands (GCN1: CAYMAN, ARUBA (Trinity/Richland), CAPE VERDE, PITCAIRN, TAHITI). Це такі
    • Radeon HD 7700 серія (за виключенням HD 7790 з VCE 2.0)
    • Radeon HD 7800 серія
    • Radeon HD 7900 серія
    • Radeon HD 8570 до 8990 (за виключенням HD 8770 з 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 до HD 7970M
    • Mobile Radeon HD 8000 серія
    • 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 додає H.264 YUV444 (I-Frames), B-кадри для H.264 YUV420 і покращує DEM (Display Encode Mode), що призводить до кращої якості кодування.

Його можна знайти на:

  • Процесорах Steamroller
    • Kaveri APU (Ax-7xxx, до A10-7850K)
    • Godavari APU (Ax-7xxx, до A10-7890K)
  • Процесорах Jaguar
    • Kabini APU (н.п. Athlon 5350, Sempron 2650)
    • Temash APU (н.п. A6-1450, A4-1200)
  • Процесорах Puma
    • Beema і Mullins
  • Графічні процесори покоління 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)

Технологія 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).

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

Кодер Video Code Engine 4.0 і декодер UVD 7.0 входять до графічних процесорів на базі Vega.[10][11]

Графічний процесор AMD Vega 20, присутній в картах Instinct Mi50, Instinct Mi60 і Radeon VII, включає VCE 4.1 і два екземпляри UVD 7.2.[12][13]

Огляд функцій

[ред. | ред. код]

У наступній таблиці наведено особливості AMD APU (див. також: Список AMD APU).

Особливості AMD APU
Марка Llano Trinity Richland Kaveri Carrizo Bristol Ridge Raven Ridge Picasso Renoir Cezane    Desna,
Ontario,
Zacate
Kabini,
Temash
Beema,
Mullins
Carrizo-L Stoney Ridge Dalí
Платформа Стаціонарна, Мобільна Ультра мобільна
Дата релізу Серп 2011 Жовт 2012 Черв 2013 Черв 2014 Черв 2015 Черв 2016 Жовт 2017 Січ 2019 Берез 2020 Січ 2021 Січ 2011 Трав 2013 Квіт 2014 Трав 2015 Лют 2016 Квіт 2019
Fab (нм) GlobalFoundries, 32 нм SOI 28 14 12 TSMC 7 нм TSMC 40 нм 28 14
Розмір (мм2) 228 246 245 250 210[14] 156 180 75 (+ 28 FCH) 107 Н/Д 125 149
Сокети FM1, FS1 FM2, FS1+, FP2 FM2+, FP3 FP4, FM2+, AM4 FP4, AM4 FP5, AM4 FP6, AM4 FT1 AM1, FT3 FT3b FP4 FP5
Архітектура процесорів AMD K10 Piledriver Steamroller Excavator Excavator+[15] Zen Zen+ Zen 2 Zen 3 Bobcat Jaguar Puma Puma+ [16] Excavator+ Zen
Максимальна підтримка DRAM DDR3-1866 DDR3-2133 DDR3-2133
DDR4-2400
DDR4-2400 DDR4-2993 LPDDR4-4266
DDR4-3200
DDR3L-1333 DDR3L-1600 DDR3L-1866 DDR3-1866
DDR4-2400
DDR4-2400
3D рушій1 TeraScale 2
(VLIW5)
TeraScale 3
(VLIW4)
Graphics Core Next 2 (GCN 2)
(Mantle, HSA)
GCN 3 GCN 5[17] TeraScale 2
(VLIW5)
GCN 2 GCN 3 GCN 5
400:20:8 384:24:6 512:32:8 704:44:16 [18] 512:32:8 80:8:4 128:8:4 До 192:?:?
IOMMUv1 IOMMUv2 IOMMUv1 IOMMUv1 Н/Д IOMMUv2
Уніфікований Відео Декодер UVD 3 UVD 4.2 UVD 6 VCN 1.0 VCN 2.1 VCN 2.2 UVD 3 UVD 4 UVD 4.2 UVD 6.0 UVD 6.3 VCN 1.0
Рушій Відео Кодування Н/Д VCE 1.0 VCE 2.0 VCE 3.1 VCN 1.0 Н/Д VCE 2.0 VCE 3.1
Режим енергозбереження
графічного процесора
PowerPlay PowerTune PowerPlay PowerTune[19]
Максимальна кількість дисплеїв,
які можна підключити2
2–3 2–4 2–4 3 4 2 3 4
AMD FreeSync Н/Д Так Н/Д Так
AMD TrueAudio Н/Д Так[20] Н/Д Так
/drm/radeon[a][21][22] Так Н/Д Так Н/Д
/drm/amdgpu[a][23] Н/Д Так[24] Так Н/Д Так[24] Так


  1. а б DRM (Direct Rendering Manager) — компонент ядра Linux. Підтримка, вказана у таблиці, стосується найостаннішої версії.

Відеокарт AMD

[ред. | ред. код]

У наступній таблиці показано особливості графічних процесорів AMD/ATI (див. також: Список графічних процесорів AMD).

Назва серії відеокарт 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 Navi 2X
Дата виходу 1986 1991 1996 1997 1998 квітень 2000 серпень 2001 вересень 2002 травень 2004 жовтень 2005 травень 2007 листопад 2007 липень 2008 вересень 2009 жовтень 2010 січень 2012 вересень 2013 червень 2015 червень 2016 червень 2017 липень 2019 листопад 2020
Маркетингова назва Wonder Mach 3D Rage Rage Pro Rage Radeon 7000 Radeon 8000 Radeon 9000 Radeon X700/X800 Radeon X1000 Radeon HD 1000/2000 Radeon HD 3000 Radeon HD 4000 Radeon HD 5000 Radeon HD 6000 Radeon HD 7000 Radeon Rx 200 Radeon Rx 300 Radeon RX 400/500 Radeon RX Vega/Radeon VII (7 нм) Radeon RX 5000 Radeon RX 6000
Підтримується AMD Ended Current
Вид графіки 2D 3D
Архітектура Не розголошується TeraScale система команд GCN система команд RDNA система команд
Мікроархітектура TeraScale 1 TeraScale 2 (VLIW5) TeraScale 3 (VLIW4) GCN 1st gen GCN 2nd gen GCN 3rd gen GCN 4th gen GCN 5th gen RDNA RDNA 2
Тип Fixed pipeline[a] Програмовані конвеєри пікселів і вершин Уніфікована шейдерна архітектура
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)
Shader model Н/Д 1.4 2.0+ 2.0b 3.0 4.0 4.1 5.0 5.1 5.1
6.3
6.4 6.5
OpenGL Н/Д 1.1 1.2 1.3 2.1[b][26] 3.3 4.5 (на Linux: 4.5 (Mesa 3D 21.0))[27][28][29][c] 4.6 (на Linux: 4.6 (Mesa 20.0))
Vulkan Н/Д 1.0
(Win 7+ або Mesa 17+)
1.2 (Adrenalin 20.1, Linux Mesa 20.0)
OpenCL Н/Д Close to Metal 1.1 1.2 2.0 (Adrenalin драйвер на Win7+)
(1.2 на Linux, 2.1 з AMD ROCm)
2.0 2.1 [30]
HSA / ROCm Н/Д Так ?
Декодування відео ASIC Н/Д Avivo/UVD UVD+ UVD 2 UVD 2.2 UVD 3 UVD 4 UVD 4.2 UVD 5.0 або 6.0 UVD 6.3 UVD 7[10][d] VCN 2.0[10][d] VCN 3.0[31]
Кодування відео ASIC Н/Д VCE 1.0 VCE 2.0 VCE 3.0 або 3.1 VCE 3.4 VCE 4.0[10][d]
Fluid Motion ASIC[e] Ні Так Ні
Power saving ? PowerPlay PowerTune PowerTune & ZeroCore Power ?
TrueAudio Н/Д Через виділений ЦОС Через шейдери ?
FreeSync Н/Д 1
2
HDCP[f] ? 1.4 1.4
2.2
1.4
2.2
2.3
?
PlayReady[f] Н/Д 3.0 Ні 3.0 ?
Підтримка екранів[g] 1–2 2 2–6 ?
Макс. роздільна здатність дисплея ? 2–6 ×
2560×1600
2–6 ×
4096×2160 @ 60 Гц
2–6 ×
5120×2880 @ 60 Гц
3 ×
7680×4320 @ 60 Гц[32]
7680×4320 @ 60 Гц PowerColor
/drm/radeon[h] Так Н/Д
/drm/amdgpu h Н/Д Так
  1. 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.
  2. 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.
  3. OpenGL 4+ compliance requires supporting FP64 shaders and these are emulated on some TeraScale chips using 32-bit hardware.
  4. а б в The UVD and VCE were replaced by the Video Core Next (VCN) ASIC in the Raven Ridge APU implementation of Vega.
  5. 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.
  6. а б 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.
  7. More displays may be supported with native DisplayPort connections, or splitting the maximum resolution between multiple monitors with active converters.
  8. 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.

Підтримка ASIC VCE міститься в драйвері пристрою amdgpu в ядрі Linux.

Програмне забезпечення "MediaShow Espresso Video Transcoding", використовує як і VCE так і UVD.[39]

XSplit Broadcaster підтримує VCE від версії 1.3.[40]

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]

Наступник

[ред. | ред. код]
Докладніше: Video Core Next

На зміну VCE прийшла AMD Video Core Next у серії APU Raven Ridge, випущена в жовтні 2017 року. VCN поєднує кодування (VCE) і декодування (UVD).[43]

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]
  1. а б Archived copy. developer.amd.com. Архів оригіналу за 4 червня 2016. Процитовано 15 січня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Архівована копія. Архів оригіналу за 2 червня 2019. Процитовано 4 березня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Архівована копія (PDF). Архів оригіналу (PDF) за 24 лютого 2021. Процитовано 4 березня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  4. White Paper AMD UnifiedVideoDecoder (UVD) (PDF). 15 червня 2012. Архів оригіналу (PDF) за 30 серпня 2017. Процитовано 20 травня 2017.
  5. AnandTech Portal | AMD Radeon HD 7970 Review: 28nm And Graphics Core Next, Together As One. Anandtech.com. Архів оригіналу за 4 березня 2022. Процитовано 27 березня 2014.
  6. AMD's Radeon HD 7970 graphics processor - The Tech Report - Page 5. The Tech Report. Архів оригіналу за 3 липня 2019. Процитовано 27 березня 2014.
  7. Video & Movies: The Video Codec Engine, UVD3, & Steady Video 2.0. AnandTech. 22 грудня 2011. Архів оригіналу за 4 березня 2022. Процитовано 20 травня 2017.
  8. Radeon HD 8900 Specs. AMD. Архів оригіналу за 28 січня 2018. Процитовано 18 липня 2016.
  9. https://lists.freedesktop.org/archives/dri-devel/2015-June/084083.html [Архівовано 4 березня 2022 у Wayback Machine.] [pull] amdgpu drm-next-4.2
  10. а б в г Killian, Zak (22 March 2017). AMD publishes patches for Vega support on Linux. Tech Report. Процитовано 23 March 2017.
  11. Larabel, Michael (20 березня 2017). AMD Sends Out 100 Patches, Enabling Vega Support In AMDGPU DRM. Phoronix. Архів оригіналу за 25 серпня 2017. Процитовано 25 серпня 2017.
  12. Deucher, Alex (15 травня 2018). [PATCH 50/57] drm/amdgpu/vg20:Enable the 2nd instance IRQ for uvd 7.2. Архів оригіналу за 4 березня 2022. Процитовано 13 січня 2019.
  13. Deucher, Alex (15 травня 2018). [PATCH 42/57] drm/amd/include/vg20: adjust VCE_BASE to reuse vce 4.0 header files. Архів оригіналу за 4 березня 2022. Процитовано 13 січня 2019.
  14. The Mobile CPU Comparison Guide Rev. 13.0 Page 5 : AMD Mobile CPU Full List. TechARP.com. Процитовано 13 December 2017.
  15. AMD Announces the 7th Generation APU: Excavator mk2 in Bristol Ridge and Stoney Ridge for Notebooks. 31 May 2016. Процитовано 3 January 2020.
  16. AMD Mobile "Carrizo" Family of APUs Designed to Deliver Significant Leap in Performance, Energy Efficiency in 2015 (Пресреліз). 20 November 2014. Процитовано 16 February 2015.
  17. AMD VEGA10 and VEGA11 GPUs spotted in OpenCL driver. VideoCardz.com. Процитовано 6 June 2017.
  18. Cutress, Ian (1 February 2018). Zen Cores and Vega: Ryzen APUs for AM4 – AMD Tech Day at CES: 2018 Roadmap Revealed, with Ryzen APUs, Zen+ on 12nm, Vega on 7nm. Anandtech. Процитовано 7 February 2018.
  19. Tony Chen; Jason Greaves, AMD's Graphics Core Next (GCN) Architecture (PDF), AMD, процитовано 13 August 2016
  20. A technical look at AMD's Kaveri architecture. Semi Accurate. Процитовано 6 July 2014.
  21. Airlie, David (26 November 2009). DisplayPort supported by KMS driver mainlined into Linux kernel 2.6.33. Процитовано 16 January 2016.
  22. Radeon feature matrix. freedesktop.org. Процитовано 10 January 2016.
  23. Deucher, Alexander (16 September 2015). XDC2015: AMDGPU (PDF). Процитовано 16 January 2016.
  24. а б Michel Dänzer (17 November 2016). [ANNOUNCE] xf86-video-amdgpu 1.2.0. lists.x.org.
  25. How do I connect three or More Monitors to an AMD Radeon™ HD 5000, HD 6000, and HD 7000 Series Graphics Card?. AMD. Процитовано 8 грудня 2014.
  26. NPOT Texture (OpenGL Wiki). Khronos Group (англ.). Процитовано 10 лютого 2021.
  27. AMD Radeon Software Crimson Edition Beta. AMD. Процитовано 20 квітня 2018.
  28. Mesamatrix. mesamatrix.net. Процитовано 22 квітня 2018.
  29. RadeonFeature. X.Org Foundation. Процитовано 20 квітня 2018.
  30. AMD Radeon RX 6800 XT Specs. TechPowerUp. Процитовано 1 January 2021.
  31. Larabel, Michael (15 September 2020). AMD Radeon Navi 2 / VCN 3.0 Supports AV1 Video Decoding. Phoronix. Процитовано 1 January 2021.
  32. Radeon's next-generation Vega architecture (PDF). Radeon Technologies Group (AMD). Архів оригіналу (PDF) за 6 вересня 2018. Процитовано 13 June 2017.
  33. HandBrake rejected VCE pull request. GitHub. 8 грудня 2016. Архів оригіналу за 4 березня 2022. Процитовано 15 серпня 2017.
  34. а б HandBrake added VCE support in v1.2.0. 22 грудня 2018. Архів оригіналу за 4 березня 2022. Процитовано 31 грудня 2018.
  35. König, Christian (4 лютого 2014). initial VCE support. mesa-dev (Список розсилки). Архів оригіналу за 15 червня 2021. Процитовано 28 листопада 2015. {{cite mailing list}}: Вказано більш, ніж один |accessdate= та |access-date= (довідка)
  36. König, Christian (24 жовтня 2013). OpenMAX state tracker. mesa-dev (Список розсилки). Архів оригіналу за 28 березня 2021. Процитовано 28 листопада 2015. {{cite mailing list}}: Вказано більш, ніж один |accessdate= та |access-date= (довідка)
  37. AMD Open-Sources VCE Video Encode Engine Code. Phoronix. 4 лютого 2014. Архів оригіналу за 4 березня 2022. Процитовано 20 травня 2017.
  38. st/omx/enc: implement h264 level support. 12 червня 2014. Архів оригіналу за 4 березня 2022. Процитовано 20 травня 2017.
  39. MediaShow Espresso Video Transcoding Benchmark. 14 січня 2014. Архів оригіналу за 4 березня 2022. Процитовано 20 травня 2017.
  40. 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. Архів оригіналу за 22 липня 2014.
  41. OBS branch with AMD VCE support. 2 травня 2014. Архів оригіналу за 4 березня 2022. Процитовано 20 травня 2017.
  42. Radeon Software Crimson ReLive Edition 16.12.1 Release Notes. Архів оригіналу за 29 грудня 2016. Процитовано 20 травня 2017.
  43. Larabel, Michael (17 листопада 2017). Radeon VCN Encode Support Lands In Mesa 17.4 Git. Phoronix. Архів оригіналу за 1 грудня 2017. Процитовано 20 листопада 2017.