엔비디아 NVDEC
1. 개요
엔비디아 NVDEC는 비디오 디코딩 작업을 전용 하드웨어 또는 CUDA 소프트웨어를 통해 GPU에서 수행하는 기술이다. MPEG-2, VC-1, H.264, H.265, VP8, VP9, AV1 등 다양한 코덱을 지원하며, 윈도우와 리눅스 운영체제에서 사용할 수 있다. NVDEC는 엔비디아 CUDA 툴킷의 일부로 시작하여 엔비디아 비디오 코덱 SDK로 이전되었으며, GStreamer, FFmpeg, mpv 등 여러 애플리케이션과 라이브러리에서 지원한다. Fermi 또는 그 이후 세대의 GPU를 탑재한 엔비디아 지포스, 쿼드로, 테슬라, 그리드 제품에서 하드웨어 가속 디코딩이 가능하다.
이미지 준비중입니다.
| 유형 | 하드웨어 가속 |
|---|---|
| 개발사 | Nvidia |
| 최초 출시 | 2014년 |
| 최신 버전 | 9세대 |
| 설명 | 엔비디아의 하드웨어 기반 비디오 디코딩 가속 기능 |
|---|---|
| 지원 | CUDA |
| 특징 | 전력 효율적인 비디오 디코딩 |
| 지원 코덱 | H.264 HEVC (H.265) VP9 AV1 MPEG-1 MPEG-2 MPEG-4 (Visual) VC-1 Windows Media Video (WMV) |
| 활용 분야 | 비디오 재생 비디오 편집 비디오 스트리밍 화상 회의 |
| 아키텍처 | 엔비디아 GPU 아키텍처 기반 |
|---|---|
| API | NVIDIA 비디오 코덱 SDK CUDA |
| 성능 | GPU 모델에 따라 상이 |
| GPU | NVDEC 지원 Nvidia GPU |
|---|---|
| 드라이버 | 최신 엔비디아 드라이버 |
| 운영 체제 | Windows, Linux |
-
엔비디아 IP 코어 -
엔비디아 퓨어비디오
엔비디아 퓨어비디오는 엔비디아 그래픽 카드에 탑재된 비디오 재생 기술로, 하드웨어 가속을 통해 고화질 비디오의 부드러운 재생을 지원하며, 여러 세대에 걸쳐 다양한 비디오 코덱과 해상도를 지원하고, 다양한 운영체제에서 엔비디아 드라이버를 통해 활용 가능하다. -
엔비디아 IP 코어 -
사운드스톰
사운드스톰은 엔비디아가 개발한 오디오 기술로, 엔포스 칩셋을 사용하여 돌비 디지털 5.1 인코딩을 실시간으로 지원하며, 높은 음질을 보장한다. -
비디오 가속 -
비디오 코딩 엔진
-
비디오 가속 -
DirectX 비디오 가속
DirectX 비디오 가속(DXVA)은 마이크로소프트 DirectX의 API로, 소프트웨어 비디오 디코더가 하드웨어 가속 코덱을 활용해 비디오 처리 작업을 가속화하여 CPU 부담을 줄이고 비디오 재생 성능을 향상시키며, DDI를 통해 하드웨어 장치에 비디오 처리 작업을 위임하여 특정 연산을 가속화한다. -
하드웨어 가속 -
그래픽 처리 장치
그래픽 처리 장치(GPU)는 컴퓨터 그래픽 렌더링 및 표시를 가속화하는 전용 프로세서로, 아케이드 게임기에서 시작하여 개인용 컴퓨터의 초기 그래픽 디스플레이 프로세서, 하드웨어 가속 3D 그래픽을 거쳐 인공지능 및 딥러닝 분야에서도 활용되며 다양한 형태로 컴퓨터, 게임 콘솔, 모바일 기기 등 광범위한 분야에서 사용된다. -
하드웨어 가속 -
FPGA
FPGA(Field-Programmable Gate Array)는 사용자가 하드웨어 설계를 변경할 수 있는 집적 회로이며, CPLD에서 파생되어 다양한 제조 기술을 사용하고 디지털 신호 처리, 통신 등 여러 분야에 활용된다.
2. 기술
NVDEC는 비디오 디코딩 작업을 전용 하드웨어 디코딩 장치(Nvidia PureVideo)로 오프로드하거나, 전용 하드웨어를 사용할 수 없는 경우 CUDA 소프트웨어를 통해 GPU에서 (부분적으로) 디코딩할 수 있다.
GPU 아키텍처에 따라 다음 코덱이 지원된다.
* MPEG-2
* VC-1
* H.264 (AVC)
* H.265 (HEVC)
* VP8
* VP9
* AV1
3. 역사
NVCUVID는 원래 엔비디아 CUDA 툴킷의 일부로 배포되었다. 이후 NVDEC로 이름이 변경되었으며 엔비디아 비디오 코덱 SDK로 이전되었다.
4. 운영체제 지원
NVDEC는 윈도우와 리눅스 운영 체제에서 사용할 수 있다. NVDEC는 독점 소프트웨어 API (오픈 소스 VDPAU API와 반대)이므로, 리눅스에서는 독점 엔비디아 드라이버에서만 지원된다.
5. 애플리케이션 및 라이브러리 지원
* GStreamer는 2017년부터 NVDEC을 지원한다.
* FFmpeg는 2017년부터 NVDEC을 지원한다.
* mpv는 FFmpeg을 사용하여 2017년부터 NVDEC을 지원한다.
6. GPU 지원
NVDEC는 GPU 아키텍처에 따라 MPEG-2, VC-1, H.264 (AVC), H.265 (HEVC), VP8, VP9, AV1 코덱을 지원한다.
NVDEC는 비디오 디코딩 작업을 전용 하드웨어 디코딩 장치(Nvidia PureVideo)로 오프로드하거나, 전용 하드웨어를 사용할 수 없는 경우 CUDA 소프트웨어를 통해 GPU에서 (부분적으로) 디코딩할 수 있다.
하드웨어 가속 디코딩 및 인코딩은 Fermi 또는 그 이후 세대의 GPU를 탑재한 엔비디아 지포스(GeForce), 쿼드로(Quadro), 테슬라(Tesla), 그리드(GRID) 제품에서 지원된다.
6.1. 지원 GPU 목록
| 보드 | 칩 | 칩당 NVDEC | MPEG-2 | VC-1 | VP8 | VP9 | H.264 (AVCHD) (High 10 제외) | H.265 (HEVC) 4:2:0 | H.265 (HEVC) 4:4:4 | AV1 4:2:0 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8 비트 | 10 비트 | 12 비트 | 8 비트 | 10 비트 | 12 비트 | 8 비트 | 10 비트 | 12 비트 | 8 비트 | 10 비트 | |||||||
| 지포스 710A > 810A | GK208 | 1 | |||||||||||||||
| 지포스 GT 723A / 740A | |||||||||||||||||
| 지포스 GT 720M > 740M | |||||||||||||||||
| 지포스 GT 630 / 635 / 640 / 710 / 730 | |||||||||||||||||
| 지포스 710A / 810M / 820M | GK107 | ||||||||||||||||
| 지포스 GT 640M > 755M / GTX 660M | |||||||||||||||||
| 지포스 GT 630 - 640 지포스 GTX 650 지포스 GT 740 | |||||||||||||||||
| 지포스 GTX 645 - 650 Ti Boost 지포스 GT 740 | GK106 | ||||||||||||||||
| 지포스 GTX 660 - 690 지포스 GTX 760 - 770 | GK104 | ||||||||||||||||
| 지포스 GTX 760A/M > 880M | GK104 | ||||||||||||||||
| 지포스 GTX 680M/MX > 880M | |||||||||||||||||
| 지포스 GTX 780 - 780 Ti | GK110 | ||||||||||||||||
| 지포스 GTX Titan / Titan Black | |||||||||||||||||
| 지포스 GTX Titan Z | |||||||||||||||||
| 지포스 GTX 745 - 750 Ti | GM107 | ||||||||||||||||
| 지포스 840M / 845M / 940M / 940MX / 945M | |||||||||||||||||
| 지포스 GTX 850A > 960A | |||||||||||||||||
| 지포스 GTX 850M > 960M | |||||||||||||||||
| 지포스 830A > 945A | GM108 | 0 | |||||||||||||||
| 지포스 830M > 945M | |||||||||||||||||
| 지포스 GTX 920MX - 940MX | |||||||||||||||||
| 지포스 MX110 / MX130 | |||||||||||||||||
| 지포스 GTX 750 / 950 - 960 | GM206 | 1 | |||||||||||||||
| 지포스 GTX 965M | GM206 | ||||||||||||||||
| 지포스 GTX 910M / 920M / 920A | GM208B | ||||||||||||||||
| 지포스 GTX 980M / 980MX | GM204 | ||||||||||||||||
| 지포스 GTX 960 Ti / 970 / 980 | |||||||||||||||||
| 지포스 GTX 980 Ti | GM200 | ||||||||||||||||
| 지포스 GTX Titan X | |||||||||||||||||
| 지포스 MX150 | GP108 | 0 | |||||||||||||||
| 지포스 MX230 / MX250 / MX330 | |||||||||||||||||
| 지포스 GT 1030 | 1 | ||||||||||||||||
| 지포스 GTX 1050 / 1050 Ti / MX350 | GP107 | ||||||||||||||||
| 지포스 GTX 1050 / 1050 Ti | GP106 | ||||||||||||||||
| 지포스 GTX 1060 | |||||||||||||||||
| 지포스 GTX 1060 | GP104 | ||||||||||||||||
| 지포스 GTX 1070M / 1080M | GP104B | ||||||||||||||||
| 지포스 GTX 1070 / 1070 Ti / 1080 | GP104 | ||||||||||||||||
| 지포스 GTX 1080 Ti | GP102 | ||||||||||||||||
| 지포스 GTX Titan X / Titan Xp | |||||||||||||||||
| Titan V | GV100 | ||||||||||||||||
| 지포스 GTX 1650 / MX450 | TU117 | ||||||||||||||||
| 지포스 GTX 1660 Ti / 1660 / 1660 Super | TU116 | ||||||||||||||||
| 지포스 RTX 2060 / 2070 / 2060 Super | TU106 | ||||||||||||||||
| 지포스 RTX 2080 / 2070 Super / 2080 Super | TU104 | ||||||||||||||||
| 지포스 RTX 2080 Ti | TU102 | ||||||||||||||||
| Titan RTX | |||||||||||||||||
| A100 | GA100 | ||||||||||||||||
| 지포스 RTX 3050 Ti / RTX 3050 | GA107 | ||||||||||||||||
| 지포스 RTX 3060 | GA106 | ||||||||||||||||
| 지포스 RTX 3060 Ti / 3070 / 3070 Ti | GA104 | ||||||||||||||||
| 지포스 RTX 3080 / 3090 | GA102 | ||||||||||||||||
| 지포스 RTX 4090 | AD102 | 1 | |||||||||||||||