Silnik kodowania wideo — Video Coding Engine

Video Code Engine ( VCE , wcześniej określany jako Video Coding Engine , Video Compression Engine lub Video Codec Engine w oficjalnej dokumentacji AMD) to kodowanie wideo AMD ASIC implementujące kodek wideo H.264/MPEG-4 AVC . Od 2012 roku jest zintegrowany ze wszystkimi ich procesorami graficznymi i APU z wyjątkiem Oland.

Video Coding Engine został wprowadzony wraz z Radeonem HD 7000 22 grudnia 2011 roku. VCE zajmuje znaczną część powierzchni matrycy i nie należy go mylić z Unified Video Decoder (UVD) AMD .

Od wersji Raven Ridge (wydanej w styczniu 2018 r.) VCE zostało zastąpione przez VCN .

Przegląd

Image
W trybie „full-fixed” całe obliczenia są wykonywane przez jednostkę VCE o stałej funkcji. Dostęp do trybu pełnoprawnego można uzyskać za pośrednictwem interfejsu API OpenMAX IL.
Image
Blok kodowania entropijnego VCE ASIC jest również dostępny oddzielnie, umożliwiając „tryb hybrydowy” . W „trybie hybrydowym” większość obliczeń jest wykonywana przez silnik 3D GPU. Korzystając z pakietu Accelerated Parallel Programming SDK i OpenCL firmy AMD, programiści mogą tworzyć hybrydowe kodery, które łączą niestandardowe szacowanie ruchu, odwrotną dyskretną transformację kosinusową i kompensację ruchu ze sprzętowym kodowaniem entropii, aby osiągnąć szybsze niż kodowanie w czasie rzeczywistym.

Obsługa danych wideo obejmuje obliczanie algorytmów kompresji danych i ewentualnie algorytmów przetwarzania wideo . Jak pokazuje szablon Metody kompresji, algorytmy stratnej kompresji wideo obejmują etapy: estymacja ruchu (ME), dyskretna transformacja kosinusowa (DCT) i kodowanie entropii (EC).

AMD Video Code Engine (VCE) to w pełni sprzętowa implementacja kodeka wideo H.264/MPEG-4 AVC. ASIC jest w stanie dostarczyć 1080p przy 60 klatkach/s. Ponieważ jego blok kodowania entropijnego jest również oddzielnie dostępnym silnikiem kodeków wideo, może działać w dwóch trybach: trybie full-fixed i hybrydowym.

Korzystając z AMD APP SDK , dostępnego dla systemów Linux i Microsoft Windows, programiści mogą tworzyć hybrydowe kodery, które łączą niestandardowe szacowanie ruchu, odwrotną dyskretną transformację kosinusową i kompensację ruchu ze sprzętowym kodowaniem entropii, aby osiągnąć szybsze niż kodowanie w czasie rzeczywistym. W trybie hybrydowym używany jest tylko blok kodowania entropijnego jednostki VCE, podczas gdy pozostałe obliczenia są odciążane do silnika 3D ( GCN ) GPU, dzięki czemu obliczenia skalują się wraz z liczbą dostępnych jednostek obliczeniowych (CU).

VCE 1.0

Od kwietnia 2014 roku istnieją dwie wersje VCE. Wersja 1.0 obsługuje H.264 YUV420 (ramki I & P), H.264 SVC Temporal Encode VCE i Display Encode Mode (DEM).

Można go znaleźć na:

  • Oparte na kafarach
    • APU Trinity (Ax-5xxx, np. A10-5800K)
    • APU Richland (Ax-6xxx, np. A10-6800K)
  • GPU generacji Southern Islands (GCN1: CAYMAN, ARUBA (Trinity/Richland), ZIELONY PRZYLĄDEK, PITCAIRN, TAHITI). To są
    • Seria Radeon HD 7700 (z wyjątkiem HD 7790 z VCE 2.0)
    • Seria Radeon HD 7800
    • Seria Radeon HD 7900
    • Radeon HD 8570 do 8990 (z wyjątkiem HD 8770 z VCE 2.0)
    • Radeon R7 250E, 250X, 265 / R9 270, 270X, 280, 280X
    • Radeon R7 360, 370, 455 / R9 370, 370X
    • Mobilny Radeon HD 77x0M do HD 7970M
    • Mobilna seria Radeon HD 8000
    • Seria Mobile Radeon Rx M2xx (z wyjątkiem R9 M280X z VCE 2.0 i R9 M295X z VCE 3.0)
    • Mobilny Radeon R5 M330 do R9 M390
    • Karty FirePro z GCN 1. generacji (GCN1) (z wyjątkiem W2100, czyli Oland XT)

VCE 2.0

W porównaniu z pierwszą wersją, VCE 2.0 dodaje H.264 YUV444 (I-Frames), ramki B dla H.264 YUV420 oraz ulepszenia DEM (Display Encode Mode), co skutkuje lepszą jakością kodowania.

Można go znaleźć na:

  • Oparty na walcu parowym
    • APU Kaveri (Ax-7xxx, np. A10-7850K)
    • APU Godavari (Ax-7xxx, np. A10-7890K)
  • Na bazie Jaguara
    • Kabini APU (np. Athlon 5350, Sempron 2650)
    • APU Temash (np. A6-1450, A4-1200)
  • Oparta na pumie
    • Beema i Mullins
  • GPU generacji Sea Islands oraz procesory graficzne Bonaire lub Hawaii (2nd Generation Graphics Core Next), takie jak
    • Radeon HD 7790, 8770
    • Radeon R7 260, 260X / R9 290, 290X, 295X2
    • Radeon R7 360 / R9 390, 390X
    • Mobilny Radeon R9 M280X
    • Mobilny Radeon R9 M385, M385X
    • Mobilny Radeon R9 M470, M470X
    • Karty FirePro z GCN drugiej generacji (GCN2)

VCE 3.0

Technologia Video Code Engine 3.0 (VCE 3.0) oferuje nowe, wysokiej jakości skalowanie wideo i kodowanie wideo o wysokiej wydajności (HEVC/H.265).

Wraz z UVD 6.0 można go znaleźć na 3. generacji Graphics Core Next (GCN3) z kontrolerami graficznymi opartymi na "Tonga", "Fiji", "Iceland" i "Carrizo" (VCE 3.1), który jest obecnie używany AMD Radeon Rx 300 Series (rodzina GPU Pirate Islands) i VCE 3.4 od rzeczywistych AMD Radeon Rx 400 Series i AMD Radeon 500 Series (obie rodziny GPU Polaris).

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

VCE 4.0

Koder Video Code Engine 4.0 i dekoder UVD 7.0 są zawarte w procesorach graficznych opartych na Vega.

VCE 4.1

Procesor graficzny AMD Vega20, obecny w kartach Instinct Mi50, Instinct Mi60 i Radeon VII, zawiera VCE 4.1 i dwie instancje UVD 7.2.

Przegląd funkcji

APU

Poniższa tabela przedstawia funkcje systemu AMD „s APU (patrz też: Lista AMD przyspieszone jednostek przetwarzających ).

Kryptonim serwer Podstawowy Toronto
Mikro Kioto
Pulpit Wydajność Renoir Cezanne
Główny nurt Llano Trójca Richland Kaveri Odświeżenie Kaveri (Godavari) Carrizo Bristol Ridge Raven Ridge Picasso
Wejście
Podstawowy Kabini
mobilny Wydajność Renoir Cezanne
Główny nurt Llano Trójca Richland Kaveri Carrizo Bristol Ridge Raven Ridge Picasso
Wejście Dalí
Podstawowy Desna, Ontario, Zacate Kabini, Temash Beema, Mullins Carrizo-L Kamienny Grzbiet
Osadzony Trójca łysy orzeł Merlin Falcon ,
Brown Falcon
Wielka Sowa Szary Jastrząb Ontario, Zacate Kabini Orzeł stepowy, orzeł w koronie ,
rodzina LX
Sokół preriowy Pustułka pręgowana
Platforma Wysoka, standardowa i niska moc Niska i bardzo niska moc
Wydany sie 2011 paź 2012 cze 2013 Styczeń 2014 2015 cze 2015 cze 2016 Październik 2017 sty 2019 Marzec 2020 sty 2021 sty 2011 maj 2013 kwi 2014 maj 2015 lut 2016 kwi 2019
Mikroarchitektura procesora K10 Kafar Walec parowy Koparka Koparka+ Zen Zen+ Zen 2 Zen 3 Ryś amerykański Jaguar Puma Puma+ Koparka+ Zen
JEST x86-64 x86-64
Gniazdo elektryczne Pulpit Wysokiej klasy Nie dotyczy Nie dotyczy
Główny nurt Nie dotyczy AM4
Wejście FM1 FM2 FM2+ Nie dotyczy
Podstawowy Nie dotyczy Nie dotyczy AM1 Nie dotyczy
Inne FS1 FS1+ , FP2 PR3 PR4 PR5 PR6 FT1 FT3 FT3b PR4 PR5
Wersja PCI Express 2,0 3,0 2,0 3,0
Super. ( nm ) GF 32SHP
( HKMG SOI )
GF 28SHP
(luzem HKMG)
GF 14LPP
( luzem FinFET )
GF 12LP
(luzem FinFET)
TSMC N7
(luzem FinFET)
TSMC N40
(luzem)
TSMC N28
(luzem HKMG)
GF 28SHP
(luzem HKMG)
GF 14LPP
( luzem FinFET )
Powierzchnia matrycy (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
Maks. TDP procesora (W) 100 95 65 18 25
Maksymalny zegar bazowy APU (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
Maksymalna liczba jednostek APU na węzeł 1 1
Maksymalna liczba rdzeni procesora na APU 4 8 2 4 2
Maksymalna liczba wątków na rdzeń procesora 1 2 1 2
Struktura liczb całkowitych 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 , NX bit , CMPXCHG16B, AMD-V , RVI , ABM i 64-bitowe LAHF/SAHF tak tak
IOMMU Nie dotyczy tak
BMI1 , AES-NI , CLMUL i F16C Nie dotyczy tak
MOVBE Nie dotyczy tak
AVIC , BMI2 i RDRAND Nie dotyczy tak
ADX , SHA , RDSEED , SMAP , SMEP , XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT i CLZERO Nie dotyczy tak Nie dotyczy tak
WBNOINVD, CLWB, RDPID, RDPRU i MCOMMIT Nie dotyczy tak Nie dotyczy
FPU na rdzeń 1 0,5 1 1 0,5 1
Rury na FPU 2 2
Szerokość rury FPU 128-bitowy 256-bitowy 80-bitowy 128-bitowy
Zestaw instrukcji procesora Poziom SIMD SSE4a AVX AVX2 SSSE3 AVX AVX2
3D teraz! 3DNteraz!+ Nie dotyczy Nie dotyczy
WSTĘPNE POBIERANIE/PREFETCHW tak tak
FMA4 , LWP, TBM i XOP Nie dotyczy tak Nie dotyczy Nie dotyczy tak Nie dotyczy
FMA3 tak tak
Pamięć podręczna danych L1 na rdzeń (KiB) 64 16 32 32
Asocjacja pamięci podręcznej danych L1 (sposoby) 2 4 8 8
Pamięć podręczna instrukcji L1 na rdzeń 1 0,5 1 1 0,5 1
Maksymalna całkowita pamięć podręczna instrukcji L1 APU (KiB) 256 128 192 256 512 64 128 96 128
L1 cache instrukcji asocjatywność (sposoby) 2 3 4 8 16 2 3 4
Pamięć podręczna L2 na rdzeń 1 0,5 1 1 0,5 1
Maksymalna całkowita pamięć podręczna L2 APU (MiB) 4 2 4 1 2 1
Asocjacja pamięci podręcznej L2 (sposoby) 16 8 16 8
Całkowita pamięć podręczna L3 APU (MiB) Nie dotyczy 4 8 16 Nie dotyczy 4
Asocjacja pamięci podręcznej APU L3 (sposoby) 16 16
Schemat pamięci podręcznej L3 Ofiara Nie dotyczy Ofiara Ofiara
Maksymalna zapasowa obsługa DRAM 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
Maksymalna liczba kanałów DRAM na APU 2 1 2
Maksymalna przepustowość DRAM (GB/s) na APU 29,866 34,132 38.400 46,932 68,256 ? 10,666 12.800 14,933 19.200 38.400
Mikroarchitektura GPU TeraScale 2 (VLIW5) TeraScale 3 (VLIW4) GCN 2. generacji GCN 3. generacji GCN 5. generacji TeraScale 2 (VLIW5) GCN 2. generacji GCN 3. generacji GCN 5. generacji
Zestaw instrukcji GPU Zestaw instrukcji TeraScale Zestaw instrukcji GCN Zestaw instrukcji TeraScale Zestaw instrukcji GCN
Maksymalny podstawowy zegar GPU (MHz) 600 800 844 866 1108 1250 1400 2100 2100 538 600 ? 847 900 1200
Maksymalna podstawowa podstawowa GPU GFLOPS 480 614,4 648.1 886,7 1134,5 1760 1971,2 2150.4 ? 86 ? ? ? 345,6 460,8
Silnik 3D Do 400:20:8 Do 384:24:6 Do 512:32:8 Do 704:44:16 Do 512:32:8 80:8:4 128:8:4 Do 192:?:? Do 192:?:?
IOMMUv1 IOMMUv2 IOMMUv1 ? IOMMUv2
Dekoder wideo 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
Koder wideo Nie dotyczy VCE 1.0 VCE 2.0 VCE 3.1 Nie dotyczy VCE 2.0 VCE 3.1
AMD Fluid Motion Nie tak Nie Nie tak Nie
Oszczędzanie energii GPU Mocne zagranie PowerTune Mocne zagranie PowerTune
TrueAudio Nie dotyczy tak Nie dotyczy tak
FreeSync 1
2
1
2
HDCP ? 1,4 1,4
2,2
? 1,4 1,4
2,2
PlayReady Nie dotyczy 3.0 jeszcze nie Nie dotyczy 3.0 jeszcze nie
Obsługiwane wyświetlacze 2-3 2–4 3 3 (komputer stacjonarny)
4 (mobilny, wbudowany)
4 2 3 4
/drm/radeon tak Nie dotyczy tak Nie dotyczy
/drm/amdgpu Nie dotyczy tak tak Nie dotyczy tak tak

GPU

Poniższa tabela przedstawia funkcje systemu AMD „s procesorów graficznych (patrz też: Lista AMD procesory graficzne ).

Nazwa serii GPU Zastanawiać się Mach Wściekłość 3D Wściekłość Pro Wściekłość 128 R100 R200 R300 R400 R500 R600 RV670 R700 Zimozielony
Wyspy Północne

Wyspy południowe

Wyspy morskie

Wyspy wulkaniczne
Arktyczne
wyspy/Polaris
Vega Nawigacja 1X Nawigacja 2X
Wydany 1986 1991 1996 1997 1998 kwi 2000 Sierpień 2001 wrz 2002 maj 2004 Październik 2005 maj 2007 lis 2007 cze 2008 wrzesień 2009 Październik 2010 sty 2012 wrz 2013 cze 2015 cze 2016 cze 2017 Lipiec 2019 lis 2020
Nazwa marketingowa Zastanawiać się Mach Wściekłość 3D Wściekłość Pro Wściekłość 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 (7nm) Radeon RX 5000 Radeon RX 6000
Wsparcie AMD Zakończony Aktualny
Uprzejmy 2D 3D
Zestaw instrukcji Nie jest publicznie znany Zestaw instrukcji TeraScale Zestaw instrukcji GCN Zestaw instrukcji RDNA
Mikroarchitektura TeraSkala 1 TeraScale 2 (VLIW5) TeraScale 3 (VLIW4) GCN 1. generacji GCN 2. generacji GCN 3. generacji GCN 4. generacji GCN 5. generacji RDNA RDNA 2
Rodzaj Naprawiono rurociąg Programowalne potoki pikseli i wierzchołków Zunifikowany model shadera
Direct3D Nie dotyczy 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 )
Model cieniowania Nie dotyczy 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 Nie dotyczy 1,1 1.2 1,3 2,1 3,3 4.5 (w systemie Linux: 4.5 (Mesa 3D 21.0)) 4.6 (w systemie Linux: 4.6 (Mesa 3D 20.0))
Vulkan Nie dotyczy 1.0
( Wygraj 7+ lub Mesa 17+ )
1.2 (Adrenalin 20.1, Linux Mesa 3D 20.0)
OpenCL Nie dotyczy Blisko metalu 1.1 (brak obsługi Mesa 3D) 1.2 (w systemie Linux : 1.1 (bez obsługi obrazów) z Mesa 3D) 2.0 (sterownik adrenaliny w Win7+ )
(w systemie Linux : 1.1 (bez obsługi obrazów) z Mesa 3D, 2.0 ze sterownikami AMD lub AMD ROCm)
2,0 2,1
HSA Nie dotyczy tak ?
Dekodowanie wideo ASIC Nie dotyczy Avivo / UVD UVD+ UVD 2 UVD 2,2 UVD 3 UVD 4 UVD 4,2 UVD 5.0 lub 6.0 UVD 6,3 UVD 7 VCN 2.0 VCN 3.0
Kodowanie wideo ASIC Nie dotyczy VCE 1.0 VCE 2.0 VCE 3.0 lub 3.1 VCE 3.4 VCE 4.0
Płynny ruch ASIC Nie tak Nie
Oszczędzanie energii ? Mocne zagranie PowerTune PowerTune i moc zerowego rdzenia ?
TrueAudio Nie dotyczy Za pośrednictwem dedykowanego procesora DSP Przez shadery ?
FreeSync Nie dotyczy 1
2
HDCP ? 1,4 1,4
2,2
1,4
2,2
2,3
?
PlayReady Nie dotyczy 3,0 Nie 3,0 ?
Obsługiwane wyświetlacze 1-2 2 2–6 ?
Maks. Rezolucja ? 2–6 ×
2560 × 1600
2–6 ×
4096 × 2160 @ 60 Hz
2–6 ×
5120 × 2880 @ 60 Hz
3 ×
7680 × 4320 przy 60 Hz
?
/drm/radeon tak Nie dotyczy
/drm/amdgpu Nie dotyczy Eksperymentalny tak

Obsługa systemu operacyjnego

Rdzeń VCE SIP musi być obsługiwany przez sterownik urządzenia . Sterownik urządzenia udostępnia jeden lub wiele interfejsów , np. OpenMAX IL . Jeden z tych interfejsów jest następnie używany przez oprogramowanie użytkownika końcowego, takie jak GStreamer lub HandBrake (HandBrake odrzucił obsługę VCE w grudniu 2016 r., ale dodał ją w grudniu 2018 r.), aby uzyskać dostęp do sprzętu VCE i korzystać z niego.

AMD własnościowy sterownik AMD Catalyst jest dostępny dla wielu systemów operacyjnych i wsparcia dla VCE został dodany do niego. Dodatkowo dostępny jest bezpłatny sterownik urządzenia . Ten sterownik obsługuje również sprzęt VCE.

Linux

Image
Wsparcie dla VCE ASIC jest zawarte w sterowniku urządzenia jądra Linux amdgpu .

Okna

Oprogramowanie „MediaShow Espresso Video Transcoding” wydaje się wykorzystywać VCE i UVD w możliwie najszerszym zakresie.

XSplit Broadcaster obsługuje VCE od wersji 1.3.

Oprogramowanie Open Broadcaster (OBS Studio) obsługuje VCE do nagrywania i przesyłania strumieniowego. Oryginalne oprogramowanie Open Broadcaster (OBS) wymaga kompilacji widełek w celu włączenia VCE.

Oprogramowanie AMD Radeon obsługuje VCE z wbudowanym przechwytywaniem gier ("Radeon ReLive") i używa AMD AMF/VCE na APU lub karcie graficznej Radeon, aby zmniejszyć spadek FPS podczas przechwytywania gier lub treści wideo.

HandBrake dodał obsługę Video Coding Engine w wersji 1.2.0 w grudniu 2018 roku.

Następca

VCE został zastąpiony przez AMD Video Core Next w serii APU Raven Ridge wydanej w październiku 2017 roku. VCN łączy zarówno kodowanie (VCE), jak i dekodowanie (UVD).

Zobacz też

Bibliografia