Nvidia NVENC

Nvidia NVENC

Nvidia NVENC(Nvidia Encoder의 줄임말)는 비디오 인코딩을 실행하는 Nvidia 그래픽 카드 기능입니다.CPU에서 GPU의 전용 부품으로 처리 부하가 높은 태스크를 오프로드합니다.이 [1][2]기능은 2012년 3월에 Kepler 기반GeForce 600 시리즈와 함께 도입되었습니다.

이 인코더는 vMix, Wirecast, Open Broadcast Software(OBS), Bandicam 등의 라이브 스트리밍 및 녹화 프로그램과 Adobe Premiere Pro 또는 DaVinci Resolve 의 비디오 편집 애플리케이션에서 지원됩니다.또한 Nvidia의 GeForce Experience [3][4][5]소프트웨어에 포함된 Share 게임 캡처와 함께 작동합니다.

소비자 대상의 GeForce 그래픽 카드는 설치된 카드의 수에 관계없이 공식적으로 비디오 스트림을 3개까지만 동시에 인코딩할 수 있습니다., LinuxWindows 시스템에서는 드라이버에 비공식 패치를 적용함으로써 이 제한을 회피할 수 있습니다.또, NVIDIA Frame Buffer Capture(NVFBC)도 언락 됩니다.NVFBC는 GPU와 드라이버의 기능을 사용하여 캡처를 [6]고속화하는 고속 데스크톱 캡처 API입니다.프로페셔널카드는 카드 모델과 압축 [1]품질에 따라 카드당3 ~ 무제한 동시 스트림을 지원합니다.

Nvidia 칩에는 비디오 디코딩을 CPU에서 [1]GPU의 전용 부품으로 오프로드하기 위한 온보드 디코더인 NVDEC(Nvidia Decoder의 줄임말)도 탑재되어 있습니다.

버전

NVENC는 첫 번째 케플러 GPU(GK104)[7]에 도입된 이후 여러 하드웨어 리비전을 거쳤습니다.

NVENC의 개요[8][9]
GPU 하드웨어 H.264(AVC)

(H.264에서는 NVENC는 항상 B프레임 지원, 최대 해상도 4096x4096 및 최대 8비트 깊이)

H.265(HEVC)
NVENC 세대 GPU 코드명 칩당 NVENC 크로마 무손실 코딩 크로마 무손실 코딩 결의안 색심도 B 프레임
4:2:0 4:4:4 4:2:0 4:4:4
제1세대 GK110 1 Yes No No H.265는 지원되지 않습니다.
GK107
GK106
GK104
제2세대 GM108 0 사용 가능한 NVENC 인코더가 없습니다.
GM107 1 Yes Yes Yes H.265는 지원되지 않습니다.
제3세대 GM208 1 No No
GM206 Yes Yes Yes Y?[9] N?[8] Y?[9] N?[8] 4096 x 4096 8비트 No
GM204 2 No No
GM200
제4세대 GP108 0 사용 가능한 NVENC 인코더가 없습니다.
GP107 1 Yes Yes Yes Yes Yes Yes 8192 x 8192 10비트 No
GP106
GP104-2xx+ 2
GP104-1xx 1
GP102 2
GP100 3 4096 x 4096
제5세대 GV10x 8192 x 8192
TU117 1
제6세대 TU116 Yes
TU106 제7세대
TU104 Yes
TU102
제7세대 GA106 1 Yes Yes Yes Yes Yes Yes 8192 x 8192 10비트 Yes
GA104
GA102
GA100[10] 0 사용 가능한 NVENC 인코더가 없습니다.

1세대 케플러 GK1xx

1세대 NVENC는 모든 Kepler 기반 GPU에서 공유되며 H.264 하이 프로파일(YUV420, I/P/B 프레임, CAVLC/CABAC), H.264 SVC Temporal Encode VCE 및 Display Encode Mode(DEM)를 지원합니다.

NVidia의 문서에는 1920×1080 해상도에서 8×의 최대 인코더 처리량이 실시간으로 명시되어 있습니다(여기서 "1×"는 30Hz).실제 throughput은 선택한 사전 설정, 사용자가 제어하는 파라미터 및 설정, GPU/메모리 클럭 주파수에 따라 달라집니다.공개된 8× 정격은 압축 효율성과 인코더 처리량을 희생하는 NVENC 고성능 사전 설정을 통해 달성할 수 있습니다.고품질 사전 설정은 상당히 느리지만 압축 아티팩트가 적습니다.

2세대 Maxwell GM107

1세대 Maxwell 아키텍처와 함께 도입된 2세대 NVENC는 고성능 HP444 프로파일(YUV4:4:4, 예측 무손실 인코딩)에 대한 지원을 추가하고 고성능 사전 설정에서는 약 1080p @ 480Hz에 해당하는 인코더 스루풋을 최대 16배 실시간까지 향상시킵니다.

Maxwell GM108은 NVENC 하드웨어 인코더를 지원하지 않습니다.

3세대 Maxwell GM20x

2세대 Maxwell 아키텍처와 함께 도입된 3세대 NVENC는 비디오 압축 알고리즘인 고효율 비디오 코딩(일명 "High Efficiency Video Coding")을 구현합니다.HEVC, H.265) 및 H.264 인코더의 throughput을 증가시켜 60Hz(2160p60)의 4K 해상도를 커버합니다.단, HEVC 부호화(I 프레임과 P 프레임만)에는 B 프레임을 지원하지 않습니다.NVENC HEVC 코딩 트리 유닛(CU)의 최대 사이즈는 32(HEVC 표준에서는 최대 64를 허용)이며, 최소 CU 사이즈는 8이다.

HEVC 부호화에는 샘플 Adaptive Offset(SAO; 적응 오프셋)도 없습니다.Nvidia Video Codec SDK [11]7 릴리즈에서는 적응형 양자화, 예측 레이트 제어, 적응형 B-프레임(H.264만) 및 적응형 GOP 기능이 추가되었습니다.이러한 기능은 하드웨어 액셀러레이션을 위해 CUDA 코어에 의존합니다.

SDK 7은 Spatial AQ(H.264 및 HEVC)와 Temporal AQ(H.264만)의 두 가지 형태의 적응 양자화를 지원합니다.

Nvidia의 컨슈머 그레이드(GeForce) 카드 및 일부 로우엔드 프로페셔널 쿼드로의 동시 인코딩 작업은 3개로 제한됩니다.하이엔드 쿼드로 카드에는 이 제한이 없습니다.

제4세대 Pascal GP10x

4세대 NVENC는 HEVC Main10 10비트하드웨어 인코딩을 실장하고 있습니다.또, 4K H.264 및 HEVC의 부호화 퍼포먼스는, 구세대의 NVENC에 비해 2배가 됩니다.HEVC 8K, 4:4:4 크로마 서브샘플링, 무손실 부호화 및 샘플 Adaptive Offset(SAO; 적응 오프셋)을 지원합니다.

Nvidia Video Codec SDK 8에는 Pascal 전용 가중치 예측 기능(CUDA 기반)이 추가되었습니다.인코딩 세션이 B 프레임(H.264)으로 설정되어 있는 경우 가중치 예측은 지원되지 않습니다.

HEVC 인코딩에 대한 B-Frame 지원은 없으며 최대 CU 사이즈는 32×32입니다.

NVIDIA GT 1030 및 Mobile Quadro P500은 NVENC [8]인코더를 지원하지 않는 GP108 칩입니다.

노트북 그래픽스에서 NVIDIA MX Graphics는 Maxwell 세대 GM108 또는 Pascal 세대 GP108 [12]칩을 기반으로 하기 때문에 NVENC를 포함하지 않습니다.GeForce MX350은 GP107 칩으로 제조 시 NVENC 인코더가 비활성화되어 있습니다.

제5세대 Volta GV10x/Turing TU117

Volta NVENC는 Pascal의 NVENC와 비슷한 성능을 발휘합니다. [1]

HEVC B 프레임은 지원되지 않습니다.

모바일 그래픽스에서는 다른 GeForce MX 시리즈 그래픽스와 마찬가지로 GeForce MX450은 제조 과정에서 하드웨어 인코더가 영구적으로 비활성화되어 있는 TU117 칩이기 때문에 NVENC를 지원하지 않습니다.

6세대, Turing TU10x/TU116

6세대 NVENC는 30FPS, HEVC B프레임 및 HEVC B프레임으로 HEVC 8K 인코딩을 (각 모드 및 중간[13] 모드 지원으로) 구현하여 HEVC에[14] 대해 최대 25%, H264에 대해 최대 15%의 비트레이트 절감을 제공합니다.그러나 Nvidia GeForce GTX 1650의 초기 출시는 튜링 대신 볼타 NVENC를 사용했기 때문에 이 세대에서 제외되었다.엔비디아는 2020년에 튜링 [15]엔진을 사용하기 위해 GTX 1650 카드의 NVENC 인코더를 업데이트했다.GTX 1650 [16]Super는 TU116을 기반으로 하기 때문에 Turing NVENC 엔진을 사용합니다.원래 GTX 1650에서는 TU117이 사용되고 있지 않습니다.

7세대, 암페어 GA10x

암페어는 본질적으로 [17]튜링과 같은 NVENC 생성 엔진을 가지고 있습니다.유일한 실질적인 차이는 NVDEC가 (필름 입자를 사용하여) AV1 디코딩을 지원받았다는 점입니다.

운영 체제 지원

Nvidia NVENC SIP 코어는 디바이스 드라이버에 의해 지원되어야 합니다.드라이버가 하나 이상의 인터페이스(: OpenMAX IL)를 NVENC에 제공합니다.NVENC SIP 코어는 오픈소스 VDPAU API와는 달리 독자적인 NVENC API를 통해서만 액세스할 수 있습니다.

Nvidia의 GeForce 드라이버와 함께 제공됩니다.

NVENC는 Windows 및 Linux 운영 [1]체제에서 사용할 수 있습니다.프리오픈 소스 nouveau 디바이스 드라이버는 Nvidia [18]NVENC를 지원하지 않습니다.

응용 프로그램 소프트웨어 지원

GPU 스루풋

인코딩[28][citation needed] 스루풋 비교

스트림 H.264 인코딩(1080p30)
GM204(Tesla M6) 18
GM107(Tesla M10) 28
GM200 (Tesla M40) 18
GM204(Tesla M60) 36
GP104(Tesla P4) 24
TU104(Tesla T4) 32
P100 36
V100 36

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c d "NVIDIA VIDEO CODEC SDK". NVIDIA Developer. Nvidia. Retrieved 2017-11-12.
  2. ^ "Maxwell's Feature Set: Kepler Refined". AnandTech. 2014-02-18.
  3. ^ "System Requirements for NVIDIA GeForce Experience GeForce GeForce". www.geforce.com. Retrieved 2016-08-17.
  4. ^ "Wirecast Tech Specs". telestream.net. Retrieved 2017-12-19.
  5. ^ "Open Broadcaster Software - Index". obsproject.com. Archived from the original on 2019-03-23. Retrieved 2016-08-17.
  6. ^ "nvidia-patch". GitHub.
  7. ^ "S5613 - High-Performance Video Encoding Using NVIDIA GPUs". Nvidia.
  8. ^ a b c d "Video Encode and Decode GPU Support Matrix". NVIDIA Developer. 2016-11-09. Retrieved 2020-08-22.
  9. ^ a b c "NVIDIA VIDEO CODEC SDK". NVIDIA Developer. 2016-11-09. Retrieved 2020-08-22.
  10. ^ "NVIDIA Ampere Architecture In-Depth". NVIDIA Developer Blog. 2020-05-14. Retrieved 2020-08-31.
  11. ^ http://on-demand.gputechconf.com/gtc/2016/presentation/s6226-abhijit-patait-high-performance-video.pdf[베어 URL PDF]
  12. ^ "NVIDIA GeForce MX250 i MX230 – dwie "nowe" grafiki do laptopów". Dobre Programy (in Polish). 2019-02-21.
  13. ^ "B-Frame reference mode flag in ffmpeg nvenc is bugged and doesn't work. · Issue #2374 · obsproject/obs-studio". GitHub. Retrieved 2021-03-24.
  14. ^ Harrison, John (2021-01-30), johnhe4/nvenc_h265_transparency, retrieved 2021-03-24
  15. ^ "NVIDIA GeForce GTX 1650 Graphics Card". NVIDIA. Retrieved 2021-03-24.
  16. ^ Walton, Jarred (2019-11-23). "Nvidia GeForce GTX 1650 Super review". PC Gamer. Retrieved 2021-03-24.
  17. ^ https://www.nvidia.com/content/dam/en-zz/Solutions/geforce/ampere/pdf/NVIDIA-ampere-GA102-GPU-Architecture-Whitepaper-V1.pdf[베어 URL PDF]
  18. ^ "Nouveau Feature Matrix". Freedesktop.org.
  19. ^ Tack, Stanley (2020-05-19). "Cut to the Video: Adobe Premiere Pro Helps Content Creators Work Faster with GPU-Accelerated Exports NVIDIA Blog". The Official NVIDIA Blog. Retrieved 2021-03-24.
  20. ^ AVIDemux Changelog
  21. ^ "Blackmagic Forum • View topic - Davinci studio 16, NVENC unavailable". forum.blackmagicdesign.com. Retrieved 2021-03-24.
  22. ^ "nvenc.c H.264 hardware encoding using nvidia nvenc".
  23. ^ "QUADRO DESKTOP/QUADRO NOTEBOOK DRIVER RELEASE 375".
  24. ^ HandBrake 1.2.0 출시
  25. ^ 소프트웨어가 인코더와 상호 작용하는 방식에 문제가 있다고 말하면서도 동시에 종료한다고 말하는 직원들에 의한 포럼 게시물
  26. ^ Casablanca Expert의 MacroSystem Arabesk 8 정보
  27. ^ "BRIDGE LIVE is a broadcast-quality, low-latency turnkey system".
  28. ^ "NVIDIA vGPU Resources for Design & VIrtualization". NVIDIA. Retrieved 2021-03-24.

외부 링크