# Nvidia PureVideo

PureVideo is Nvidia's hardware SIP core that performs video decoding. PureVideo is integrated into some of the Nvidia GPUs, and it supports hardware decoding of multiple video codec standards: MPEG-2, VC-1, H.264, HEVC, and AV1. PureVideo occupies a considerable amount of a GPU's die area and should not be confused with Nvidia NVENC. In addition to video decoding on chip, PureVideo offers features such as edge enhancement, noise reduction, deinterlacing, dynamic contrast enhancement and color enhancement.

## Operating system support

The PureVideo SIP core needs to be supported by the device driver, which provides one or more interfaces such as NVDEC, VDPAU, VAAPI or DXVA. One of these interfaces is then used by end-user software, for example VLC media player or GStreamer, to access the PureVideo hardware and make use of it.
Nvidia's proprietary device driver is available for multiple operating systems and support for PureVideo has been added to it. Additionally, a free device driver is available, which also supports the PureVideo hardware.

### Linux

Support for PureVideo has been available in Nvidia's proprietary driver version 180 since October 2008 through VDPAU. Since April 2013 nouveau also supports PureVideo hardware and provides access to it through VDPAU and partly through XvMC.

### Microsoft Windows

Microsoft's Windows Media Player, Windows Media Center and modern video players support PureVideo. Nvidia also sells PureVideo decoder software which can be used with media players which use DirectShow. Systems with dual GPU's either need to configure the codec or run the application on the Nvidia GPU to utilize PureVideo. Media players which use LAV, ffdshow or Microsoft Media Foundation codecs are able to utilize PureVideo capabilities.

### OS X

OS X was sold with Nvidia hardware, so support is probably available.

## PureVideo HD

PureVideo HD (see "naming confusions" below) is a label which identifies Nvidia graphics boards certified for HD DVD and Blu-ray Disc playback, to comply with the requirements for playing Blu-ray/HD DVDs on PC:
* End-to-end encryption (HDCP) for digital-displays (DVI-D/HDMI)
* Realtime decoding of H.264 high-profile L4.1, VC-1 Advanced Profile L3, and MPEG-2 MP@HL (1080p30) decoding @ 40 Mbit/s
* Realtime dual-video stream decoding for HD DVD/Blu-ray Picture-in-Picture (primary video @ 1080p, secondary video @ 480p)

### The first generation PureVideo HD

The original PureVideo engine was introduced with the GeForce 6 series. Based on the GeForce FX's video-engine (VPE), PureVideo re-used the MPEG-1/MPEG-2 decoding pipeline, and improved the quality of deinterlacing and overlay-resizing. Compatibility with DirectX 9's VMR9 renderer was also improved. Other VPE features, such as the MPEG-1/MPEG-2 decoding pipeline were left unchanged. Nvidia's press material cited hardware acceleration for VC-1 and H.264 video, but these features were not present at launch.
Starting with the release of the GeForce 6600, PureVideo added hardware acceleration for VC-1 and H.264 video, though the level of acceleration is limited when benchmarked side by side with MPEG-2 video. VPE (and PureVideo) offloads the MPEG-2 pipeline starting from the inverse discrete cosine transform leaving the CPU to perform the initial run-length decoding, variable-length decoding, and inverse quantization; whereas first-generation PureVideo offered limited VC-1 assistance (motion compensation and post processing).
The first generation PureVideo HD is sometimes called "PureVideo HD 1" or VP1, although this is not an official Nvidia designation.

### The second generation PureVideo HD

Starting with the G84/G86 GPUs (Tesla, sold as the GeForce 8400/8500/8600 series), Nvidia substantially re-designed the H.264 decoding block inside its GPUs. The second generation PureVideo HD added a dedicated bitstream processor (BSP) and enhanced video processor, which enabled the GPU to completely offload the H.264-decoding pipeline. VC-1 acceleration was also improved, with PureVideo HD now able to offload more of VC-1-decoding pipeline's backend (inverse discrete cosine transform (iDCT) and motion compensation stages). The frontend (bitstream) pipeline is still decoded by the host CPU. The second generation PureVideo HD enabled mainstream PCs to play HD DVD and Blu-ray movies, as the majority of the processing-intensive video-decoding was now offloaded to the GPU.
The second generation PureVideo HD is sometimes called "PureVideo HD 2" or VP2, although this is not an official Nvidia designation. It corresponds to Nvidia Feature Set A (or "VDPAU Feature Set A").
This is the earliest generation that Adobe Flash Player supports for hardware acceleration of H.264 video on Windows.

### The third generation PureVideo HD

This implementation of PureVideo HD, VP3 added entropy hardware to offload VC-1 bitstream decoding with the G98 GPU (sold as GeForce 8400GS), as well as additional minor enhancements for the MPEG-2 decoding block. The functionality of the H.264-decoding pipeline was left unchanged. In essence, VP3 offers complete hardware-decoding for all 3 video codecs of the Blu-ray Disc format: MPEG-2, VC-1, and H.264.
All third generation PureVideo hardware (G98, MCP77, MCP78, MCP79MX, MCP7A) cannot decode H.264 for the following horizontal resolutions: 769–784, 849–864, 929–944, 1009–1024, 1793–1808, 1873–1888, 1953–1968 and 2033–2048 pixels.
The third generation PureVideo HD is sometimes called "PureVideo HD 3" or VP3, although this is not an official Nvidia designation. It corresponds to Nvidia Feature Set B (or "VDPAU Feature Set B").

### The fourth generation PureVideo HD

This implementation of PureVideo HD, VP4 added hardware to offload MPEG-4 Advanced Simple Profile (the compression format implemented by original DivX and Xvid) bitstream decoding with the GT215, GT216 and GT218 GPUs (sold as GeForce GT 240, GeForce GT 220 and GeForce 210/G210, respectively). The H.264-decoder no longer suffers the framesize restrictions of VP3, and adds hardware-acceleration for MVC, a H.264 extension used on 3D Blu-ray discs. MVC acceleration is OS dependent: it is fully supported in Microsoft Windows through the Microsoft DXVA and Nvidia CUDA APIs, but is not supported through Nvidia's VDPAU API.
The fourth generation PureVideo HD is sometimes called "PureVideo HD 4" or VP4, although this is not an official Nvidia designation. It corresponds to Nvidia Feature Set C (or "VDPAU Feature Set C").

### The fifth generation PureVideo HD

The fifth generation of PureVideo HD, introduced with the GeForce GT 520 (Fermi) and also included in the Nvidia GeForce 600/700 (Kepler) series GPUs has significantly improved performance when decoding H.264. It is also capable of decoding 2160p 4K Ultra-High Definition (UHD) resolution videos at 3840 × 2160 pixels (doubling the 1080p Full High Definition standard in both the vertical and horizontal dimensions) and, depending on the driver and the used codec, higher resolutions of up to 4032 × 4080 pixels.
The fifth generation PureVideo HD is sometimes called "PureVideo HD 5" or "VP5", although this is not an official Nvidia designation. This generation of PureVideo HD corresponds to Nvidia Feature Set D (or "VDPAU Feature Set D").

### The sixth generation PureVideo HD

The sixth generation of PureVideo HD, introduced with the Maxwell microarchitecture, e.g. in the GeForce GTX 750/GTX 750 Ti (GM107) and also included in the Maxwell-based GeForce 900 series GPUs has significantly improved performance when decoding H.264 and MPEG-2. It is also capable of decoding Digital Cinema Initiatives (DCI) 4K resolution videos at 4096 × 2160 pixels and, depending on the driver and the used codec, higher resolutions of up to 4096 × 4096 pixels. GPUs with Feature Set E support an enhanced error concealment mode which provides more robust error handling when decoding corrupted video streams. It supports partial hardware decoding for H.265 FHD.
The sixth generation PureVideo HD is sometimes called "PureVideo HD 6" or "VP6", although this is not an official Nvidia designation. This generation of PureVideo HD corresponds to Nvidia Feature Set E (or "VDPAU Feature Set E").

### The seventh generation PureVideo HD

The seventh generation of PureVideo HD, introduced with the GeForce GTX 960 and GTX 950, a second generation Maxwell GPU (GM206), adds full hardware-decode of H.265 HEVC Version 1 (Main and Main 10 profiles) to the GPU's video-engine. Feature Set F hardware decoder also supports full fixed function VP9 (video codec) hardware decoding.
Previous Maxwell GPUs implemented HEVC playback using a hybrid decoding solution, which involved both the host-CPU and the GPU's GPGPU array. The hybrid implementation is significantly slower than the dedicated hardware in VP7's video-engine.
The seventh generation PureVideo HD is sometimes called "PureVideo HD 7" or "VP7", although this is not an official Nvidia designation. This generation of PureVideo HD corresponds to Nvidia Feature Set F (or "VDPAU Feature Set F").

### The eighth generation PureVideo HD

The eighth generation of PureVideo HD, introduced with the Pascal-based GeForce 10 series, adds full hardware-decode of HEVC Version 2 Main 12 profile, and increases the resolution for VP9 and HEVC decoding to 8K, including 8K UHDTV and up to 8K fulldome 8192x8192.
Previous Maxwell GM200/GM204 GPUs implemented HEVC playback using a hybrid decoding solution, which involved both the host-CPU and the GPU's GPGPU array. The hybrid implementation is significantly slower than the dedicated hardware in VP8's video-engine.
The eighth generation PureVideo HD is sometimes called "PureVideo HD 8" or "VP8", although this is not an official Nvidia designation. This generation of PureVideo HD corresponds to Nvidia Feature Set H (or "VDPAU Feature Set H").

### The ninth generation PureVideo HD

The ninth generation of PureVideo HD was introduced with the Volta-based TITAN V. It is sometimes called "PureVideo HD 9" or "VP9", although this is not an official Nvidia designation. This generation of PureVideo HD corresponds to Nvidia Feature Set I (or "VDPAU Feature Set I").

### The tenth generation PureVideo HD

The tenth generation of PureVideo HD, introduced with the Turing-based GeForce RTX 20 and GeForce GTX 16 series, adds full hardware-decoding for three additional HEVC Version 2 profiles (Main 4:4:4, Main 4:4:4 10 and Main 4:4:4 12) to the GPU's video-engine.
The tenth generation PureVideo HD is sometimes called "PureVideo HD 10" or "VP10", although this is not an official Nvidia designation. This generation of PureVideo HD corresponds to Nvidia Feature Set J (or "VDPAU Feature Set J").

### The eleventh generation PureVideo HD

The eleventh generation of PureVideo HD, introduced with the Ampere-based GeForce RTX 30 series with fifth generation NVDEC, introduces 8K@60 hardware-decoding capability for AV1 Main profile (4:0:0 and 4:2:0 chroma subsampling with 8 or 10-bit depth) with resolution of up to 8192 x 8192 pixels to the GPU's video-engine.
The eleventh generation PureVideo HD is sometimes called "PureVideo HD 11" or "VP11", although this is not an official Nvidia designation. This generation of PureVideo HD corresponds to Nvidia Feature Set K (or "VDPAU Feature Set K").

### Naming confusion

Because the introduction and subsequent rollout of PureVideo technology was not synchronized with Nvidia's GPU release schedule, the exact capabilities of PureVideo technology and their supported Nvidia GPUs led to a considerable customer confusion. The first generation PureVideo GPUs (GeForce 6 series) spanned a wide range of capabilities. On the low-end of GeForce 6 series (6200), PureVideo was limited to standard-definition content (720×576). The mainstream and high-end of the GeForce 6 series was split between older products (6800 GT) which did not accelerate H.264/VC-1 at all, and newer products (6600 GT) with added VC-1/H.264 offloading capability.
In 2006, PureVideo HD was formally introduced with the launch of the GeForce 7900, which had the first generation PureVideo HD. In 2007, when the second generation PureVideo HD (VP2) hardware launched with the Geforce 8500 GT/8600 GT/8600 GTS, Nvidia expanded Purevideo HD to include both the first generation (retroactively called "PureVideo HD 1" or VP1) GPUs (Geforce 7900/8800 GTX) and newer VP2 GPUs. This led to a confusing product portfolio containing GPUs from two distinctly different generational capabilities: the newer VP2 based cores (Geforce 8500 GT/8600 GT/8600 GTS/8800 GT) and other older PureVideo HD 1 based cores (Geforce 7900/G80).
Nvidia claims that all GPUs carrying the PureVideo HD label fully support Blu-ray/HD DVD playback with the proper system components. For H.264/AVC content, VP1 offers markedly inferior acceleration compared to newer GPUs, placing a much greater burden on the host CPU. However, a sufficiently fast host CPU can play Blu-ray without any hardware assistance whatsoever.

### Table of GPUs containing a PureVideo SIP block

| Graphic card brand name | GPU chip code name | PureVideo HD | VDPAU feature set | First release date | Notes |
| GeForce 6 series | NV4x | VP1 | Not Supported | | NV40-based models of the 6800 do not accelerate VC-1/H.264 |
| GeForce 7 series | G7x | VP1 | Not Supported | | - |
| GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB) | G80 | VP1 | Not Supported | November 2006 | - |
| GeForce 8400 GS, 8500 GT | G86 | VP2 | A | April 2007 | - |
| GeForce 8600 GT, 8600 GTS | G84 | VP2 | A | April 2007 | - |
| GeForce 8800 GS, 8800 GT, 8800 GTS (512 MB/1 GB), 9600 GSO, 9800 GT, 9800 GTX, 9800 GTX+, 9800 GX2, GTS 240 (OEM) | G92 | VP2 | A | October 2007 | - |
| GeForce 8400 GS Rev. 2 | G98 | VP3 | B | December 2007 | Earlier cards use G86 core type without VP3 support |
| GeForce 8200, 8300 | C77 | VP3 | B | January 2008 | Not suitable for running CUDA |
| GeForce 9600 GSO 512, 9600 GT | G94 | VP2 | A | February 2008 | - |
| GeForce 9600M GT | G96 | VP3 | A | June 2008 | - |
| GeForce GTX 260, GTX 275, GTX 280, GTX 285, GTX 295 | GT200 | VP2 | A | June 2008 | - |
| GeForce 9400 GT, 9500 GT | G96 | VP2 | A | July 2008 | - |
| GeForce 9300M GS, 9300 GS, 9300 GE | G98 | VP3 | B | October 2008 | Mostly found in laptops and on motherboards |
| Ion, Ion-LE (first-generation Ion) | C79 | VP3 | B | | - |
| Ion 2 (next-generation Ion) | GT218 | VP4 | C | | - |
| GeForce 205, 210/G210, 310, G210M, 305M, 310M, 8400 GS Rev. 3 | GT218 | VP4 | C | October 2009 (April 2009 for the 8400 GS Rev. 3) | Introduced decoding of MPEG-4 (Advanced) Simple Profile (Divx/Xvid) |
| GeForce GT 220, 315, GT 230M, GT 240M, GT 325M, GT 330M | GT216 | VP4 | C | October 2009 | - |
| GeForce GT 240, GT 320, GT 340, GTS 250M, GTS 260M, GT 335M, GTS 350M, GTS 360M | GT215 | VP4 | C | November 2009 | - |
| GeForce GTX 465, GTX 470, GTX 480, GTX 480M | GF100 | VP4 | C | March 2010 | - |
| GeForce GTX 460, GTX 470M, GTX 485M | GF104 | VP4 | C | July 2010 | - |
| GeForce GT 420 OEM, GT 430, GT 440, GT 620 (non-OEM), GT 630 (40 nm), GT 730 (DDR3), GT 415M, GT 420M, GT 425M, GT 435M, GT525M, GT 540M, GT 550M | GF108 | VP4 | C | September 2010 | - |
| GeForce GTS 450, GT 445M, GTX 460M, GT 555M | GF106 | VP4 | C | September 2010 | - |
| GeForce GTX 570, GTX 580, GTX 590 | GF110 | VP4 | C | November 2010 | - |
| GeForce GTX 560 Ti, GTX 570M, GTX 580M, GT 645 | GF114 | VP4 | C | January 2011 | - |
| GeForce GTX 550 Ti, GTX 560M, GT 640 (OEM) | GF116 | VP4 | C | March 2011 | - |
| GeForce 410M, GT 520MX, 510, GT 520, GT 610, GT 620 (OEM) | GF119 | VP5 | D | April 2011 | Introduced 4K UHD video decoding |
| GeForce GT 620M, GT 625M, GT 710M, GT 720M, GT 820M | GF117 | VP5 | D | April 2011 | - |
| GeForce GT 630 (28 nm), GT 640 (non-OEM), GTX 650, GT 730 (OEM), GT 640M, GT 645M, GT 650M, GTX 660M, GT 740M, GT 745M, GT 750M, GT 755M | GK107 | VP5 | D | March 2012 | - |
| GeForce GTX 660 (OEM), GTX 660 Ti, GTX 670, GTX 680, GTX 690, GTX 760, GTX 760 Ti, GTX 770, GTX 680M, GTX 680MX, GTX 775M, GTX 780M, GTX 860M, GTX 870M, GTX 880M | GK104 | VP5 | D | March 2012 | - |
| GeForce GTX 650 Ti, GTX 660, GTX 670MX, GTX 675MX, GTX 760M, GTX 765M, GTX 770M | GK106 | VP5 | D | September 2012 | - |
| GeForce GTX 780, GTX 780 Ti, GTX TITAN, GTX TITAN BLACK, GTX TITAN Z | GK110 | VP5 | D | February 2013 | - |
| GeForce GT 630 rev. 2, GT 635, GT 640 rev. 2, GT 710, GT 720, GT 730 (GDDR5), GT 730M, GT 735M, GT 740M | GK208 | VP5 | D | April 2013 | - |
| GeForce GTX 745, GTX 750, GTX 750 Ti, GTX 850M, GTX 860M, 945M, GTX950M, GTX960M | GM107 | VP6 | E | February 2014 | Introduced DCI 4K video decoding |
| GeForce 830M, 840M, 920MX, 930M, 930MX, 940M, 940MX, MX110, MX130 | GM108 | VP6 | E | March 2014 | - |
| GeForce GTX 970, GTX 980, GTX 970M, GTX 980M | GM204 | VP6 | E | September 2014 | - |
| GeForce GTX 750 SE, GTX 950, GTX 960 | GM206 | VP7 | F | January 2015 | Introduced VP9 and HEVC (Main and Main 10) video decoding |
| GeForce GTX TITAN X, GeForce GTX 980 Ti | GM200 | VP6 | E | March 2015 | |
| GeForce GTX 1070, GTX 1070 Ti, GTX 1080 | GP104 | VP8 | H | May 2016 | Introduced VP9 and HEVC decoding at 8K and HEVC Main 12 |
| GeForce GTX 1060 | GP106 | VP8 | H | July 2016 | |
| NVIDIA TITAN Xp, TITAN X, GeForce GTX 1080 Ti | GP102 | VP8 | H | August 2016 | |
| GeForce GTX 1050, GTX 1050 Ti | GP107 | VP8 | H | October 2016 | |
| GeForce GT 1030, MX150 | GP108 | VP8 | H | May 2017 | |
| Tesla V100-SXM2, V100-PCIE, NVIDIA TITAN V, Quadro GV100 | GV100 | VP9 | I | November 2017 | |
| NVIDIA TITAN RTX, GeForce RTX 2080 Ti | TU102 | VP10 | J | September 2018 | Introduced HEVC video decoding of 4:4:4 profiles |
| GeForce RTX 2080 Super, RTX 2080, RTX 2070 Super | TU104 | VP10 | J | September 2018 | |
| GeForce RTX 2060, RTX 2060 Super, RTX 2070 | TU106 | VP10 | J | October 2018 | |
| GeForce GTX 1650 Super, GTX 1660, GTX 1660 Super, GTX 1660 Ti | TU116 | VP10 | J | February 2019 | |
| GeForce GTX 1650 | TU117 | VP10 | J | April 2019 | |
| Nvidia A100 | GA100 | VP10 | J | May 2020 | |
| GeForce RTX 3090, RTX 3080 Ti, RTX 3080 | GA102 | VP11 | K | September 2020 | Introduced 8K@60 AV1 Main profile decoding |
| GeForce RTX 3070 Ti, RTX 3070, RTX 3060 Ti | GA104 | VP11 | K | October 2020 | |
| GeForce RTX 3060 | GA106 | VP11 | K | January 2021 | |
| GeForce RTX 3050 Ti, RTX 3050 | GA107 | VP11 | K | May 2021 | |
| GeForce RTX 4090 | AD102 | VP11 | K | Oct 2022 | |
| GeForce RTX 4080 | AD103 | VP11 | K | Nov 2022 | |
| GeForce RTX 4070, GeForce RTX 4070 Ti | AD104 | VP11 | K | Jan 2023 | |

### Nvidia VDPAU Feature Sets

Nvidia VDPAU Feature Sets are different hardware generations of Nvidia GPU's supporting different levels of hardware decoding capabilities. For feature sets A, B and C, the maximum video width and height are 2048 pixels, minimum width and height 48 pixels, and all codecs are currently limited to a maximum of 8192 macroblocks (8190 for VC-1/WMV9). Partial acceleration means that VLD (bitstream) decoding is performed on the CPU, with the GPU only performing IDCT, motion compensation and deblocking. Complete acceleration means that the GPU performs all of VLD, IDCT, motion compensation and deblocking.

#### Feature Set A

    Supports complete acceleration for H.264 and partial acceleration for MPEG-1, MPEG-2, VC-1/WMV9

#### Feature Set B

    Supports complete acceleration for MPEG-1, MPEG-2, VC-1/WMV9 and H.264.
    Note that all Feature Set B hardware cannot decode H.264 for the following widths: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 pixels.

#### Feature Set C

    Supports complete acceleration for MPEG-1, MPEG-2, MPEG-4 Part 2 (a.k.a. MPEG-4 ASP), VC-1/WMV9 and H.264.
    Global motion compensation and Data Partitioning are not supported for MPEG-4 Part 2.

#### Feature Set D

    Similar to feature set C but added support for decoding H.264 with a resolution of up to 4032 × 4080 and MPEG-1/MPEG-2 with a resolution of up to 4032 × 4048 pixels.

#### Feature Set E

    Similar to feature set D but added support for decoding H.264 with a resolution of up to 4096 × 4096 and MPEG-1/MPEG-2 with a resolution of up to 4080 × 4080 pixels. GPUs with VDPAU feature set E support an enhanced error concealment mode which provides more robust error handling when decoding corrupted video streams. Cards with this feature set use a combination of the PureVideo hardware and software running on the shader array to decode HEVC (H.265) as partial/hybrid hardware video decoding.

#### Feature Set F

    Supports complete acceleration of HEVC Main (8-bit) & Main 10 (10-bit) and VP9 profile 0 (8-bit) with a resolution of up to 4096 × 2304 pixels.

#### Feature Set G

    Supports complete acceleration of HEVC Main 12 (12-bit) with a resolution of up to 4096 × 4096 pixels.

#### Feature Set H

    Supports complete acceleration of VP9 profile 2 (10-bit) and maximum resolution of up to 8192 x 8192 pixels (8k resolution) for all HEVC and VP9 profiles.

#### Feature Set I

    As feature set H with increased efficiency.

#### Feature Set J

    Supports complete acceleration of three additional HEVC Version 2 profiles (Main 4:4:4, Main 4:4:4 10 and Main 4:4:4 12).

#### Feature Set K

    As feature set J with increased efficiency. Initially, hardware AV1 decoding support was introduced only to the Nvidia's proprietary NVDEC API for the eleventh generation PureVideo HD GPUs. AV1 decoding was added to the open source VDPAU API feature set K more than a year later in January 2022.