HIGH-PERFORMANCE GPU VIDEO ENCODING

HIGH-PERFORMANCE GPU
VIDEO ENCODING
ABHIJIT PATAIT
SR. MANAGER, NVIDIA
AGENDA
GPU Video Encoding Overview
NVIDIA Video Encoding Capabilities
Kepler, Maxwell Gen 1, Maxwell Gen 2
Software API
Performance & Quality
Roadmap
WHY GPU VIDEO ENCODING?
BENEFITS
Low power
Fixed function hardware, free CPU
Reduced memory transfers
Low latency
High performance
Higher density
Scalability
Automatic benefit from improvements in hardware
Ease of programming
Linux, Windows, C/C++, Application portability
NVIDIA VIDEO ENCODER CAPABILITIES
MAIN FEATURES
Feature
Benefits
H.264 base, main, high profiles
Wide range of use-cases
H.265/HEVC main profile
Lower bitrates at same quality
High performance (4K @ 60 fps)
“Blazing-speed” encoding
YUV 4:2:0 and 4:4:4 support
High quality encoding without chroma
subsampling
QP maps
Customizable quality, region of interest encoding
4K encoding in hardware
High resolution encode
API - NV Encode SDK & GRID SDK
Flexible, Win/Linux, DirectX/CUDA
Independent of CUDA
Use CUDA and encode simultaneously
FEATURE COMPARISON
Kepler
Maxwell Gen 1 (GM10x)
Maxwell Gen 2 (GM20x)
H.264 only
H.264 only
H.264 and HEVC/H.265
Planar 4:4:4 & proprietary
4:4:4; no lossless encoding
Standard 4:4:4 and H.264
lossless encoding
Standard 4:4:4 and H.264
lossless encoding
~240 fps 2-pass encoding @
720p
~500 fps 2-pass encoding @
720p
~900 fps 2-pass encoding @
720p
GRID K340/K520, K1/K2,
Quadro, Tesla K10/K20
Maxwell-based GRID & Quadro
products
TBA
GeForce – 2 full-speed encode
sessions/system
GeForce – 2 full-speed encode
sessions/system
GeForce – 2 full-speed encode
sessions/system
NV Encode SDK 1.0-5.0 (Now)
NV Encode SDK 4.0+ (Now)
NV Encode SDK 5.0+ (Now)
GRID SDK 1.x, 2.2, 2.3 (Now)
GRID SDK 3.0+ (Now)
In development
WHAT’S NEW – HARDWARE
HEVC
8-bit encoding
Main8 profile
Optimized for low-latency applications (I and P frames)
> 300 fps at very high quality 720p
H.264
Improved performance (~80% higher compared to 1st Gen Maxwell)
4:4:4 and lossless
WHAT’S NEW - SOFTWARE
NVENC SDK 5.0
NVIDIA GPU driver 347.18 and above
HEVC
Unified API for H.264 and HEVC
Linux & Windows
Intra refresh, ref-pic invalidation, etc. for H.264 and HEVC
Support for all NVENC hardware up to GM20x
Adaptive quantization
Quality improvements
All-new sample applications, including a performance application
SOFTWARE API
USING NVENC
•
•
•
•
•
No capture
Transcoding
Archiving
Video editing
CUDA pre-process +
encoding
• Granular encoder settings
• D3D, CUDA interop
Capture +
Encode
GRID SDK
NVENC SDK
Direct
Encode
• Capture + encode
• Optimized for low-latency
apps
• Capture + CUDA preprocess + encoding
• Encoder settings
optimized for streaming
• D3D, CUDA interop
DIRECT ENCODE (NVENC SDK)
Encoded
bitstream
Client application
Initialize, Configure, Encode
NVENC API
Configure HW
CUDA
Driver
NVENC
Driver
DirectX
Driver
HW Encode
NVENC firmware + hardware
CAPTURE & ENCODE (GRID SDK)
Client application
Encoded
Bitstream
DX/OGL Present
NvFBC/NvIFR
Capture
NVENC
Driver
YUV
DirectX/OGL
Driver
Encode
NVENC Hardware
GPU 3D Engine
NVENC SDK (1/2)
Available on NVIDIA developer zone
https://developer.nvidia.com/nvidia-video-codec-sdk
Current release: 5.0
Interface header, documentation, sample application
.dll/.so included in the driver
Unified API for Windows and Linux
Works on x86/x64
API’s, presets, rate control modes for
Low-latency streaming
Transcoding
Video conferencing
NVENC SDK (2/2)
Unified API for H.264 and HEVC
Flexibility
Dynamic resolution/bitrate change
Low-level encoder settings
Windows, Linux, DirectX, CUDA, OGL (via CUDA)
Works on GeForce (2 sessions/system)
Error concealment
Reference picture invalidation
Intra-refresh
Greater flexibility for quality/performance trade-off
Lossless encoding only in NVENC SDK
GRID SDK ENCODE
NDA only – older release available on NV developer zone
https://developer.nvidia.com/grid-app-game-streaming
Current release: 3.1 (Now – NDA), 2.3 (Public)
Interface header, documentation, sample apps
.dll/.so included in the driver
Windows and Linux
Works on x86/x64
Presets and API’s for
Remote graphics (Cloud gaming, remote desktop, capture & stream)
Optimized for low latency
QUALITY
H.264 QUALITY – 1-PASS ENCODING
H.264 quality with 1-pass rate control
46
44
PSNR (dB)
42
Default
LL-Default
40
HP
HQ
38
BD
LL-HQ
36
34
6
8
10
12
bitrate (Mbps)
15
18
20
H.264 QUALITY – 2-PASS ENCODING
H.264 quality with 2-pass rate control
46
44
PSNR (dB)
42
Default
LL-Default
40
HP
HQ
38
BD
LL-HQ
36
34
6
8
10
12
bitrate (Mbps)
15
18
20
COMPARISON: 1-PASS VS 2-PASS
H.264 quality comparison: 1-pass vs 2-pass
40.5
40
39
2-pass
1-pass
2-pass
1-pass
2-pass
1-pass
2-pass
1-pass
2-pass
1-pass
38
2-pass
38.5
1-pass
PSNR (dB)
39.5
37.5
Default
LL-Default
HP
HQ
Encoder preset
BD
LL-HQ
BITRATE SAVINGS
Bitrate savings - HQ preset
Bitrate savings - Default preset
9.8
9.7
8
8
6
6
5.8
33%
5.8
41.0 dB
25%
39.5 dB
42.0 dB
18%
Bitrate savings
33%
41.0 dB
26%
HEVC
H.264
HEVC
H.264
HEVC
H.264
HEVC
H.264
HEVC
3.9
H.264
HEVC
H.264
4
39.5 dB
7.9
7.8
42.0 dB
19%
H.264 VS HEVC
Courtesy: Vanguard video
H.264 VS HEVC
Courtesy: Vanguard video
PERFORMANCE
H.264 PERFORMANCE – GM20X
H.264 Performance (1080p)
500 fps
450 fps
400 fps
300 fps
250 fps
Single pass
HP
464 fps
LL-HP
342 fps
HQ
291 fps
LL-HQ
293 fps
Two pass
306 fps
246 fps
171 fps
181 fps
2 pass
2 pass
1 pass
1 pass
2 pass
2 pass
fps
1 pass
1 pass
50 fps
2 pass
2 pass
100 fps
1 pass
1 pass
150 fps
2 pass
2 pass
200 fps
1 pass
1 pass
Encode FPS
350 fps
1080p, GM20x
H.264/HEVC PERF COMPARISON
H.264/HEVC Performance: 2-pass
350 fps
300 fps
200 fps
150 fps
fps
H.264
HP
306 fps
LL-HP
246 fps
HQ
171 fps
LL-HQ
181 fps
H.265
220 fps
214 fps
102 fps
153 fps
HEVC
H.264
HEVC
H.264
HEVC
H.264
50 fps
HEVC
100 fps
H.264
Encode FPS
250 fps
PERFORMANCE - TREND
Performance
1800 fps
1600 fps
1400 fps
1200 fps
1000 fps
800 fps
600 fps
400 fps
200 fps
fps
Kepler (2011)
Maxwell Gen 1 (2013)
Maxwell Gen 2 (2014)
Future
ROADMAP
ROADMAP
Core GPU chip IP
Motion estimation only mode – 2H2015
SAO, 10/12-bit, HEVC B-frames
Lossless/4:4:4
Improved quality for screen content encoding
ME performance and quality enhancements
Today: 4K@60fps
Next: 8K@??
THANK YOU
[email protected]