Motor de codare video - Video Coding Engine

Cod Video Engine ( VCE , a fost anterior denumit Video Coding Motor , Motor de compresie video sau Codec video Motor în documentația oficială AMD) este AMD codificare video ASIC implementarea codecul video H.264 / MPEG-4 AVC . Din 2012, este integrat în toate GPU - urile și APU- urile lor, cu excepția Oland.

Motorul de codare video a fost introdus cu seria Radeon HD 7000 la 22 decembrie 2011. VCE ocupă o cantitate considerabilă din suprafața matriței și nu trebuie confundat cu decodificatorul video unificat (UVD) AMD .

Începând cu Raven Ridge (lansat în ianuarie 2018), VCE a fost succedat de VCN .

Prezentare generală

Image
În „mod complet fix” întregul calcul se face de către unitatea VCE cu funcție fixă. Modul complet fix poate fi accesat prin intermediul OpenMAX IL API.
Image
Blocul de codificare a entropiei VCE ASIC este, de asemenea, accesibil separat, permițând „modul hibrid” . În „modul hibrid”, cea mai mare parte a calculelor se face de către motorul 3D al GPU-ului. Folosind SDK de programare paralelă AMD și dezvoltatorii OpenCL pot crea codificatoare hibride care împerechează estimarea mișcării personalizate, transformarea inversă a cosinusului discret și compensarea mișcării cu codificarea de entropie hardware pentru a realiza mai rapid decât codarea în timp real.

Manipularea datelor video implică calcularea algoritmilor de compresie a datelor și, eventual, a algoritmilor de procesare video . După cum arată șablonul Metode de compresie, algoritmii de compresie video cu pierderi implică pașii: Estimarea mișcării (ME), Transformarea cosinusului discret (DCT) și codificarea entropiei (EC).

AMD Video Code Engine (VCE) este o implementare hardware completă a codecului video H.264 / MPEG-4 AVC. ASIC este capabil să furnizeze 1080p la 60 de cadre / sec. Deoarece blocul său de codificare a entropiei este, de asemenea, un motor de codec video accesibil separat, acesta poate fi operat în două moduri: modul complet fix și modul hibrid.

Folosind AMD APP SDK , disponibil pentru Linux și Microsoft Windows, dezvoltatorii pot crea codificatoare hibride care împerechează estimarea mișcării personalizate, transformarea inversă a cosinusului discret și compensarea mișcării cu codificarea de entropie hardware pentru a realiza mai rapid decât codarea în timp real. În modul hibrid, se folosește doar blocul de codificare entropie al unității VCE, în timp ce calculul rămas este descărcat pe motorul 3D ( GCN ) al GPU, deci calculul se calculează cu numărul unităților de calcul disponibile (CU).

VCE 1.0

Din aprilie 2014, există două versiuni ale VCE. Versiunea 1.0 acceptă H.264 YUV420 (cadre I & P), H.264 SVC Temporal Encode VCE și Display Encode Mode (DEM).

Poate fi găsit pe:

  • Piledriver - pe bază
    • APU Trinity (Ax-5xxx, de ex. A10-5800K)
    • APU Richland (Ax-6xxx, de ex. A10-6800K)
  • GPU-uri din generația Insulelor de Sud (GCN1: CAYMAN, ARUBA (Trinity / Richland), CAPE VERDE, PITCAIRN, TAHITI). Acestea sunt
    • Seria Radeon HD 7700 (cu excepția HD 7790 cu VCE 2.0)
    • Seria Radeon HD 7800
    • Seria Radeon HD 7900
    • Radeon HD 8570 - 8990 (cu excepția HD 8770 cu 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 la HD 7970M
    • Mobile Radeon HD 8000-Series
    • Mobile Radeon Rx M2xx Series (cu excepția R9 M280X cu VCE 2.0 și R9 M295X cu VCE 3.0)
    • Telefoane mobile Radeon R5 M330 până la R9 M390
    • Carduri FirePro cu GCN de prima generație (GCN1) (cu excepția W2100, care este Oland XT)

VCE 2.0

Comparativ cu prima versiune, VCE 2.0 adaugă H.264 YUV444 (I-Frames), cadre B pentru H.264 YUV420 și îmbunătățiri ale DEM (Display Encode Mode), ceea ce are ca rezultat o calitate a codificării mai bună.

Poate fi găsit pe:

  • Steamroller pe bază
    • APU Kaveri (Ax-7xxx, de ex. A10-7850K)
    • APU Godavari (Ax-7xxx, de ex. A10-7890K)
  • Bazat pe Jaguar
    • APU Kabini (de exemplu, Athlon 5350, Sempron 2650)
    • APU Temash (de ex. A6-1450, A4-1200)
  • Puma pe bază de
    • Beema și Mullins
  • GPU-urile generației Insulele Mării, precum și GPU-urile Bonaire sau Hawaii (a doua generație Graphics Core Next), precum
    • Radeon HD 7790, 8770
    • Radeon R7 260, 260X / R9 290, 290X, 295X2
    • Radeon R7 360 / R9 390, 390X
    • Mobil Radeon R9 M280X
    • Mobile Radeon R9 M385, M385X
    • Mobile Radeon R9 M470, M470X
    • Carduri FirePro cu GCN de a doua generație (GCN2)

VCE 3.0

Tehnologia Video Code Engine 3.0 (VCE 3.0) oferă o nouă scalare video de înaltă calitate și o codificare video de înaltă eficiență (HEVC / H.265).

Acesta, împreună cu UVD 6.0, poate fi găsit pe a treia generație de Graphics Core Next (GCN3) cu hardware pentru controler grafic bazat pe „Tonga”, „Fiji”, „Islanda” și „Carrizo” (VCE 3.1), care este acum utilizat AMD Radeon Rx 300 Series (Pirate Islands GPU family) și VCE 3.4 de AMD Radeon Rx 400 Series și AMD Radeon 500 Series (ambele familii GPU 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)

VCE 4.0

Codificatorul Video Code Engine 4.0 și decodificatorul UVD 7.0 sunt incluse în GPU-urile bazate pe Vega.

VCE 4.1

GPU-ul Vega20 de la AMD, prezent în cardurile Instinct Mi50, Instinct Mi60 și Radeon VII, include VCE 4.1 și două instanțe UVD 7.2.

Prezentare generală a caracteristicilor

APU-uri

Următorul tabel prezintă caracteristicile APU- urilor AMD (vezi și: Lista unităților de procesare accelerată AMD ).

Nume de cod Server De bază Toronto
Micro Kyoto
Desktop Performanţă Renoir Cezanne
Mainstream Llano Treime Richland Kaveri Kaveri Refresh (Godavari) Carrizo Bristol Ridge Raven Ridge Picasso
Intrare
De bază Kabini
Mobil Performanţă Renoir Cezanne
Mainstream Llano Treime Richland Kaveri Carrizo Bristol Ridge Raven Ridge Picasso
Intrare Dalí
De bază Desna, Ontario, Zacate Kabini, Temash Beema, Mullins Carrizo-L Stoney Ridge
Încorporat Treime Vultur pleșuv Merlin Falcon ,
Falcon maro
Bufnita Mare Șoimul cenușiu Ontario, Zacate Kabini Vulturul de stepă , Vulturul încoronat ,
Familia LX
Șoimul Prairie Kestrel în bandă
Platformă Putere mare, standard și redusă Putere redusă și ultra-redusă
Eliberată August 2011 Octombrie 2012 Iunie 2013 Ianuarie 2014 2015 Iunie 2015 Iunie 2016 Octombrie 2017 Ianuarie 2019 Martie 2020 Ianuarie 2021 Ianuarie 2011 Mai 2013 Aprilie 2014 Mai 2015 Februarie 2016 Aprilie 2019
Microarhitectura CPU K10 Piledriver Steamroller Excavator Excavator + Zen Zen + Zen 2 Zen 3 Bobcat Jaguar Puma Puma + Excavator + Zen
ISA x86-64 x86-64
Priză Desktop High-end N / A N / A
Mainstream N / A AM4
Intrare FM1 FM2 FM2 + N / A
De bază N / A N / A AM1 N / A
Alte FS1 FS1 + , FP2 FP3 FP4 PC5 PC6 FT1 FT3 FT3b FP4 PC5
Versiunea PCI Express 2.0 3.0 2.0 3.0
Fab. ( nm ) GF 32SHP
( HKMG SOI )
GF 28SHP
(vrac HKMG)
GF 14LPP
( FinFET vrac)
GF 12LP
(FinFET vrac)
TSMC N7
(FinFET vrac)
TSMC N40
(vrac)
TSMC N28
(vrac HKMG)
GF 28SHP
(vrac HKMG)
GF 14LPP
( FinFET vrac)
Suprafata matriței (mm 2 ) 228 246 245 245 250 210 156 180 75 (+ 28 FCH ) 107 ? 125 149
Min TDP (W) 35 17 12 10 4.5 4 3,95 10 6
APU TDP maxim (W) 100 95 65 18 25
Ceas de bază APU stoc maxim (GHz) 3 3.8 4.1 4.1 3.7 3.8 3.6 3.7 3.8 4.0 1,75 2.2 2 2.2 3.2 3.3
APU maxime pe nod 1 1
Max nuclee CPU pe APU 4 8 2 4 2
Max fire per nucleu CPU 1 2 1 2
Structura întregului 3 + 3 2 + 2 4 + 2 4 + 2 + 1 4 + 2 + 1 1 + 1 + 1 + 1 2 + 2 4 + 2
i386, i486, i586, CMOV, NOPL, i686, PAE , bit NX , CMPXCHG16B, AMD-V , RVI , ABM și LAHF / SAHF pe 64 de biți da da
IOMMU N / A da
IMC1 , AES-NI , CLMUL și F16C N / A da
MOVBE N / A da
AVIC , BMI2 și RDRAND N / A da
ADX , SHA , RDSEED , SMAP , SMEP , XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT și CLZERO N / A da N / A da
WBNOINVD, CLWB, RDPID, RDPRU și MCOMMIT N / A da N / A
FPU-uri pe nucleu 1 0,5 1 1 0,5 1
Țevi per FPU 2 2
Lățimea conductei FPU 128 de biți 256 de biți 80 de biți 128 de biți
Instrucțiunile CPU stabilesc nivelul SIMD SSE4a AVX AVX2 SSSE3 AVX AVX2
3DNow! 3DNow! + N / A N / A
PREFETCH / PREFETCHW da da
FMA4 , LWP, TBM și XOP N / A da N / A N / A da N / A
FMA3 da da
Memorie cache L1 pe nucleu (KiB) 64 16 32 32
Asociativitate cache date L1 (moduri) 2 4 8 8
Memorii cache de instrucțiuni L1 pe nucleu 1 0,5 1 1 0,5 1
Cache de instrucțiuni L1 maxim APU total (KiB) 256 128 192 256 512 64 128 96 128
Asociativitate cache instrucțiuni L1 (modalități) 2 3 4 8 16 2 3 4
L2 cache pe nucleu 1 0,5 1 1 0,5 1
Cache AP2 total L2 maxim (MiB) 4 2 4 1 2 1
Asociativitate cache L2 (moduri) 16 8 16 8
APU cache L3 total (MiB) N / A 4 8 16 N / A 4
APU L3 cache asociativitate (moduri) 16 16
Schema cache L3 Victimă N / A Victimă Victimă
Suport DRAM maxim stoc DDR3-1866 DDR3-2133 DDR3-2133 , DDR4-2400 DDR4-2400 DDR4-2933 DDR4-3200 , LPDDR4-4266 DDR3L-1333 DDR3L-1600 DDR3L-1866 DDR3-1866 , DDR4-2400 DDR4-2400
Max canale DRAM per APU 2 1 2
Lățime de bandă maximă stoc DRAM (GB / s) per APU 29,866 34.132 38.400 46.932 68,256 ? 10.666 12,800 14.933 19.200 38.400
Microarhitectura GPU TeraScale 2 (VLIW5) TeraScale 3 (VLIW4) GCN a doua gen GCN a treia gen GCN a 5-a gen TeraScale 2 (VLIW5) GCN a doua gen GCN a treia gen GCN a 5-a gen
Set de instrucțiuni GPU Set de instrucțiuni TeraScale Set de instrucțiuni GCN Set de instrucțiuni TeraScale Set de instrucțiuni GCN
Ceas de bază GPU stoc maxim (MHz) 600 800 844 866 1108 1250 1400 2100 2100 538 600 ? 847 900 1200
GFLOPS de bază GPU stoc maxim 480 614.4 648.1 886,7 1134,5 1760 1971.2 2150,4 ? 86 ? ? ? 345,6 460,8
Motor 3D Până la 400: 20: 8 Până la 384: 24: 6 Până la 512: 32: 8 Până la 704: 44: 16 Până la 512: 32: 8 80: 8: 4 128: 8: 4 Până la 192:?:? Până la 192:?:?
IOMMUv1 IOMMUv2 IOMMUv1 ? IOMMUv2
Decodor video UVD 3.0 UVD 4.2 UVD 6.0 VCN 1.0 VCN 2.1 VCN 2.2 UVD 3.0 UVD 4.0 UVD 4.2 UVD 6.0 UVD 6.3 VCN 1.0
Codificator video N / A VCE 1.0 VCE 2.0 VCE 3.1 N / A VCE 2.0 VCE 3.1
Mișcare fluidă AMD Nu da Nu Nu da Nu
Economisire energie GPU Joc de putere PowerTune Joc de putere PowerTune
TrueAudio N / A da N / A da
FreeSync 1
2
1
2
HDCP ? 1.4 1.4
2.2
? 1.4 1.4
2.2
JoacăReady N / A 3.0 încă nu N / A 3.0 încă nu
Afișaje acceptate 2-3 2–4 3 3 (desktop)
4 (mobil, încorporat)
4 2 3 4
/drm/radeon da N / A da N / A
/drm/amdgpu N / A da da N / A da da

GPU-uri

Următorul tabel prezintă caracteristici de AMD nu a GPU ( a se vedea de asemenea: Lista de unități de procesare grafică AMD ).

Numele seriei GPU Mirare Mach 3D Rage Rage Pro Furia 128 R100 R200 R300 R400 R500 R600 RV670 R700 vesnic verde
Insulele de Nord

Insulele de Sud

Insulele Mării

Insulele Vulcanice

Insulele Arctice / Polaris
Vega Navi 1X Navi 2X
Eliberată 1986 1991 1996 1997 1998 Aprilie 2000 August 2001 Septembrie 2002 Mai 2004 Octombrie 2005 Mai 2007 Noiembrie 2007 Iunie 2008 Septembrie 2009 Octombrie 2010 Ianuarie 2012 Septembrie 2013 Iunie 2015 Iunie 2016 Iunie 2017 Iulie 2019 Noiembrie 2020
Numele de marketing Mirare Mach 3D Rage Rage Pro Furia 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 Rx 200 Radeon Rx 300 Radeon RX 400/500 Radeon RX Vega / Radeon VII (7 nm) Radeon RX 5000 Radeon RX 6000
Suport AMD Încheiat Actual
Drăguț 2D 3D
Set de instructiuni Nu este cunoscut public Set de instrucțiuni TeraScale Set de instrucțiuni GCN Set de instrucțiuni RDNA
Microarhitectura TeraScale 1 TeraScale 2 (VLIW5) TeraScale 3 (VLIW4) GCN prima gen GCN a doua gen GCN a treia gen GCN a 4-a gen GCN a 5-a gen ADNr ADNr 2
Tip Conductă fixă Conducte programabile pentru pixeli și vârfuri Model unificat de umbrire
Direct3D N / A 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 )
Modelul Shader N / A 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 N / A 1.1 1.2 1.3 2.1 3.3 4.5 (pe Linux: 4.5 (Mesa 3D 21.0)) 4.6 (pe Linux: 4.6 (Mesa 3D 20.0))
Vulkan N / A 1.0
( Win 7+ sau Mesa 17+ )
1.2 (Adrenalin 20.1, Linux Mesa 3D 20.0)
OpenCL N / A Aproape de Metal 1.1 (fără suport Mesa 3D) 1.2 (pe Linux : 1.1 (fără suport de imagine) cu Mesa 3D) 2.0 (driver Adrenalin pe Win7 + )
(pe Linux : 1.1 (fără suport de imagine) cu Mesa 3D, 2.0 cu drivere AMD sau AMD ROCm)
2.0 2.1
HSA N / A da ?
Decodare video ASIC N / A Avivo / UVD UVD + UVD 2 UVD 2.2 UVD 3 UVD 4 UVD 4.2 UVD 5.0 sau 6.0 UVD 6.3 UVD 7 VCN 2.0 VCN 3.0
Codificare video ASIC N / A VCE 1.0 VCE 2.0 VCE 3.0 sau 3.1 VCE 3.4 VCE 4.0
Mișcare fluidă ASIC Nu da Nu
Economisire de energie ? Joc de putere PowerTune PowerTune & ZeroCore Power ?
TrueAudio N / A Prin DSP dedicat Prin umbrere ?
FreeSync N / A 1
2
HDCP ? 1.4 1.4
2.2
1.4
2.2
2.3
?
JoacăReady N / A 3.0 Nu 3.0 ?
Afișaje acceptate 1-2 2 2–6 ?
Max. rezoluţie ? 2–6 ×
2560 × 1600
2–6 ×
4096 × 2160 @ 60 Hz
2–6 ×
5120 × 2880 @ 60 Hz
3 ×
7680 × 4320 @ 60 Hz
?
/drm/radeon da N / A
/drm/amdgpu N / A Experimental da

Suport pentru sistemul de operare

Nucleul VCE SIP trebuie să fie acceptat de driverul de dispozitiv . Driverul de dispozitiv oferă una sau mai multe interfețe , de exemplu OpenMAX IL . Una dintre aceste interfețe este apoi utilizată de software-ul utilizatorului final, cum ar fi GStreamer sau HandBrake (HandBrake a respins suportul VCE în decembrie 2016, dar l-a adăugat în decembrie 2018), pentru a accesa hardware-ul VCE și a-l utiliza.

AMD proprietare driver de dispozitiv AMD Catalyst este disponibil pentru sistemele de operare multiple și suport pentru VCE a fost adăugat la acesta. În plus, este disponibil un driver de dispozitiv gratuit . Acest driver acceptă și hardware-ul VCE.

Linux

Image
Suportul pentru VCE ASIC este conținut în driverul de dispozitiv kernel Linux amdgpu .

Windows

Software-ul „MediaShow Espresso Video Transcoding” pare să utilizeze VCE și UVD în cea mai mare măsură posibilă.

XSplit Broadcaster acceptă VCE de la versiunea 1.3.

Open Broadcaster Software (OBS Studio) acceptă VCE pentru înregistrare și streaming. Software-ul Open Broadcaster original (OBS) necesită o construcție a furcii pentru a activa VCE.

Software-ul AMD Radeon acceptă VCE cu captură de joc încorporată („Radeon ReLive”) și folosește AMD AMF / VCE pe APU sau pe placa grafică Radeon pentru a reduce pierderea FPS atunci când capturați conținut de joc sau video.

HandBrake a adăugat suportul Video Coding Engine în versiunea 1.2.0 în decembrie 2018.

Succesor

VCE a fost succedat de AMD Video Core Next în seria de APU-uri Raven Ridge lansată în octombrie 2017. VCN combină atât codificarea (VCE), cât și decodarea (UVD).

Vezi si

Referințe