Posted on 2018年12月04 by Administrator
In early versions of UVD, video post-processing is passed to the pixel shaders and OpenCL kernels. MPEG-2 decoding is not performed within UVD, but in the shader processors. The decoder meets the performance and profile requirements of Blu-ray and HD DVD, decoding H.264 bitstreams up to a bitrate of 40 Mbit/s. It has context-adaptive binary arithmetic coding (CABAC) support for H.264/AVC.
Unlike video acceleration blocks in previous generation GPUs, which demanded considerable host-CPU involvement, UVD offloads the entire video-decoder process for VC-1 and H.264 except for video post-processing, which is offloaded to the shaders. MPEG-2 decode is also supported, but the bitstream/entropy decode is not performed for MPEG-2 video in hardware. Previously, neither ATI Radeon R520 series' ATI Avivo nor NVidia Geforce 7 series' PureVideo assisted front-end bitstream/entropy decompression in VC-1 and H.264 - the host CPU performed this work. UVD handles VLC/CAVLC/CABAC, frequency transform, pixel prediction and inloop deblocking, but passes the post processing to the shaders. Post-processing includes denoising, de-interlacing, and scaling/resizing. AMD has also stated that the UVD component being incorporated into the GPU core only occupies 4.7 mm² in area on 65 nm fabrication process node.
The UVD saw a refresh with the release of the Radeon HD 4000 series products. The UVD 2 features full bitstream decoding of H.264/MPEG-4 AVC, VC-1, as well as iDCT level acceleration of MPEG2 video streams. Performance improvements allow dual video stream decoding and Picture-in-Picture mode. This makes UVD2 full BD-Live compliant.
The UVD 2.2 features a re-designed local memory interface and enhances the compatibility with MPEG2/H.264/VC-1 videos. However, it was marketed under the same alias as "UVD 2 Enhanced" as the "special core-logic, available in RV770 and RV730 series of GPUs, for hardware decoding of MPEG2, H.264 and VC-1 video with dual-stream decoding". The nature of UVD 2.2 being an incremental update to the UVD 2 can be accounted for this move.
UVD 3 adds support for additional hardware MPEG2 decoding (entropy decode), DivX and Xvid via MPEG-4 Part 2 decoding (entropy decode, inverse transform, motion compensation) and Blu-ray 3D via MVC (entropy decode, inverse transform, motion compensation, in-loop deblocking). along with 120 Hz stereo 3D support, and is optimized to utilize less CPU processing power. UVD 3 also adds support for Blu-ray 3D stereoscopic displays.
UVD 4 includes improved frame interpolation with H.264 decoder. UVD 4.2 was introduced with the AMD Radeon Rx 200 series and Kaveri APU."X.ORG Radeon UVD (Unified Video Decoder) Hardware-UVD4.2: KAVERI, KABINI, MULLINS, BONAIRE, HAWAII". May 2016.
UVD 5 was introduced with the AMD Radeon R9 285. New to UVD is full support for 4K H.264 video, up to level 5.2 (4Kp60).
The UVD 6.0 decoder and Video Coding Engine 3.1 encoder were reported to be first used in GPUs based on GCN 3, including Radeon R9 Fury series and "Carrizo"-APUs, followed by AMD Radeon Rx 300 Series (Pirate Islands GPU family) and AMD Radeon Rx 400 Series (Arctic Islands GPU family). The UVD version in "Fiji" and "Carrizo"-based graphics controller hardware is also announced to provide support for High Efficiency Video Coding (HEVC, H.265) hardware video decoding, up to 4K, 8-bits color (H.265 version 1, main profile); and there is support for the 10bit-color HDR both H.265 and VP9 video codec in the AMD Radeon 400 series with UVD 6.3.
Main article: Video Core Next
Starting with the integrated graphics of the Raven Ridge APU (Ryzen 2200/2400G), the former UVD and VCE have been replaced by the new "Video Core Next" (VCN). VCN 1.0 adds full hardware decoding for the VP9 codec.
As of April 2014, there are two versions of VCE. Version 1.0 supports H.264 YUV420 (I & P frames), H.264 SVC Temporal Encode VCE, and Display Encode Mode (DEM).
It can be found on
- Trinity APUs (Ax-5xxx, e.g. A10-5800K)
- Richland APUs (Ax-6xxx, e.g. A10-6800K)
- GPUs of the Southern Islands generation (GCN1: CAYMAN, ARUBA (Trinity/Richland), CAPE VERDE, PITCAIRN, TAHITI). These are
- Radeon HD 7700 series (except HD 7790 with VCE 2.0)
- Radeon HD 7800 series
- Radeon HD 7900 series
- Radeon HD 8570 to 8990 (except HD 8770 with 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 to HD 7970M
- Mobile Radeon HD 8000-Series
- Mobile Radeon Rx M2xx Series (except R9 M280X with VCE 2.0 and R9 M295X with VCE 3.0)
- Mobile Radeon R5 M330 to R9 M390
- FirePro cards with 1st Generation GCN (GCN1)
Compared to the first version, VCE 2.0 adds H.264 YUV444 (I-Frames), B-frames for H.264 YUV420, and improvements to the DEM (Display Encode Mode), which results in a better encoding quality.
It can be found on
- Kaveri APUs (Ax-7xxx, e.g. A10-7850K)
- Godavari APUs (Ax-7xxx, e.g. A10-7890K)
- Kabini APUs (e.g. Athlon 5350, Sempron 2650)
- Temash APUs (e.g. A6-1450, A4-1200)
- Beema and Mullins
- GPUs of the Sea Islands generation as well Bonaire or Hawaii GPUs (2nd Generation Graphics Core Next), such as
- 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 cards with 2nd Generation GCN (GCN2)
Video Coding Engine 3.0 (VCE 3.0) technology features a new high-quality video scaling, and will also support for High Efficiency Video Coding (HEVC, H.265, but As of May 2015, there are no announcements about VP9 video codec support.
It, together with UVD 6.0, can be found on 3rd generation of Graphics Core Next (GCN3) with "Tonga", "Fiji", "Iceland", and "Carrizo" (VCE 3.1) based graphics controller hardware, which is now used AMD Radeon Rx 300 Series (Pirate Islands GPU family) and VCE 3.4 by actual AMD Radeon Rx 400 Series and AMD Radeon 500 Series (both Polaris GPU family).
- 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)